diff --git a/lib/ikarus.boot b/lib/ikarus.boot index 4d6c6ab..08b3096 100644 Binary files a/lib/ikarus.boot and b/lib/ikarus.boot differ diff --git a/lib/libtoplevel.ss b/lib/libtoplevel.ss index 8252c33..5caa1a6 100644 --- a/lib/libtoplevel.ss +++ b/lib/libtoplevel.ss @@ -54,20 +54,28 @@ (putprop '|#system| '*sc-expander* sysmod) (putprop 'scheme '*sc-expander* schmod)))) -(let-values ([(files args) +(let-values ([(files script? args) (let f ([args (command-line-arguments)]) (cond - [(null? args) (values '() '())] + [(null? args) (values '() #f '())] [(string=? (car args) "--") - (values '() (cdr args))] + (values '() #f (cdr args))] + [(string=? (car args) "--script") + (let-values ([(f* _ a*) (f (cdr args))]) + (values f* #t a*))] [else - (let-values ([(f* a*) (f (cdr args))]) - (values (cons (car args) f*) a*))]))]) + (let-values ([(f* script? a*) (f (cdr args))]) + (values (cons (car args) f*) script? a*))]))]) (current-eval compile) (command-line-arguments args) - (printf "Ikarus Scheme (Build ~a)\n" (compile-time-date-string)) - (display "Copyright (c) 2006 Abdulaziz Ghuloum\n\n") - (for-each load files) - (new-cafe)) + (cond + [script? ; no greeting, no cafe + (for-each load files) + (exit 0)] + [else + (printf "Ikarus Scheme (Build ~a)\n" (compile-time-date-string)) + (display "Copyright (c) 2006 Abdulaziz Ghuloum\n\n") + (for-each load files) + (new-cafe)])) diff --git a/lib/libwriter.ss b/lib/libwriter.ss index 4f8f010..d7017c8 100644 --- a/lib/libwriter.ss +++ b/lib/libwriter.ss @@ -486,9 +486,8 @@ (make-parameter (lambda args (apply print-error args) - (display "exiting\n" (console-output-port)) (flush-output-port (console-output-port)) - (exit -100)) + (exit -1)) (lambda (x) (if (procedure? x) x