~ chicken-core (chicken-5) 6ab0b9f6b99c230f52a040d26a460ab6d99dc4ef
commit 6ab0b9f6b99c230f52a040d26a460ab6d99dc4ef
Author: felix <felix@call-with-current-continuation.org>
AuthorDate: Wed Dec 8 05:08:07 2010 -0500
Commit: felix <felix@call-with-current-continuation.org>
CommitDate: Wed Dec 8 05:08:07 2010 -0500
added -M/-module option
diff --git a/batch-driver.scm b/batch-driver.scm
index 9650dfda..0d6372c8 100644
--- a/batch-driver.scm
+++ b/batch-driver.scm
@@ -92,6 +92,7 @@
(dumpnodes #f)
(start-time #f)
(upap #f)
+ (wrap-module (memq 'module options))
(ssize (or (memq 'nursery options) (memq 'stack-size options))) )
(define (cputime) (current-milliseconds))
@@ -423,7 +424,13 @@
(set! ##sys#explicit-library-modules
(append ##sys#explicit-library-modules uses-units))
(set! forms (cons `(declare (uses ,@uses-units)) forms)) )
- (let* ([exps0 (map canonicalize-expression (append initforms forms))]
+ (let* ((exps0 (map canonicalize-expression
+ (let ((forms (append initforms forms)))
+ (if wrap-module
+ `((##core#module main ()
+ (import scheme chicken)
+ ,@forms))
+ forms))))
[pvec (gensym)]
[plen (length profile-lambda-list)]
[exps (append
diff --git a/c-platform.scm b/c-platform.scm
index 94ec7d37..ae4a52a4 100644
--- a/c-platform.scm
+++ b/c-platform.scm
@@ -89,7 +89,7 @@
disable-stack-overflow-checks raw
emit-external-prototypes-first release local inline-global
analyze-only dynamic scrutinize no-argc-checks no-procedure-checks
- no-procedure-checks-for-toplevel-bindings
+ no-procedure-checks-for-toplevel-bindings module
no-bound-checks no-procedure-checks-for-usual-bindings no-compiler-syntax
no-parentheses-synonyms no-symbol-escape r5rs-syntax emit-all-import-libraries
setup-mode unboxing no-module-registration) )
diff --git a/csc.scm b/csc.scm
index 55407855..4067ea07 100644
--- a/csc.scm
+++ b/csc.scm
@@ -140,7 +140,7 @@
-no-symbol-escape -no-parentheses-synonyms -r5rs-syntax
-no-argc-checks -no-bound-checks -no-procedure-checks -no-compiler-syntax
-emit-all-import-libraries -setup-mode -unboxing -no-elevation -no-module-registration
- -no-procedure-checks-for-usual-bindings
+ -no-procedure-checks-for-usual-bindings -module
-no-procedure-checks-for-toplevel-bindings))
(define-constant complex-options
@@ -150,12 +150,15 @@
-disable-warning ; OBSOLETE
-emit-inline-file -types
-feature -debug-level -heap-growth -heap-shrinkage -heap-initial-size -consult-inline-file
- -emit-import-library -static-extension -no-feature))
+ -emit-import-library
+ -static-extension ; DEPRECATED
+ -no-feature))
(define-constant shortcuts
'((-h "-help")
(-s "-shared")
(-S "-scrutinize")
+ (-M "-module")
(|-P| "-check-syntax")
(|-V| "-version")
(-f "-fixnum-arithmetic")
@@ -322,11 +325,11 @@ Usage: #{csc} FILENAME | OPTION ...
Syntax related options:
-i -case-insensitive don't preserve case of read symbols
- -K -keyword-style STYLE enable alternative keyword-syntax
+ -K -keyword-style STYLE enable alternative keyword-syntax
(prefix, suffix or none)
- -no-parentheses-synonyms disables list delimiter synonyms
- -no-symbol-escape disables support for escaped symbols
- -r5rs-syntax disables the Chicken extensions to
+ -no-parentheses-synonyms disables list delimiter synonyms
+ -no-symbol-escape disables support for escaped symbols
+ -r5rs-syntax disables the Chicken extensions to
R5RS syntax
-compile-syntax macros are made available at run-time
-j -emit-import-library MODULE write compile-time module information into
@@ -334,6 +337,7 @@ Usage: #{csc} FILENAME | OPTION ...
-J -emit-all-import-libraries emit import-libraries for all defined modules
-no-module-registration do not generate module registration code
-no-compiler-syntax disable expansion of compiler-macros
+ -M -module wrap compiled code into implicit module
Translation options:
@@ -432,8 +436,6 @@ Usage: #{csc} FILENAME | OPTION ...
-static-libs link with static CHICKEN libraries
-static generate completely statically linked
executable
- -static-extension NAME link extension NAME statically
- (if available)
-F<DIR> pass \"-F<DIR>\" to C compiler
(add framework header path on Mac OS X)
-framework NAME passed to linker on Mac OS X
@@ -626,7 +628,7 @@ EOF
(set! required-extensions (append required-extensions (list (car rest))))
(t-options "-require-extension" (car rest))
(set! rest (cdr rest)) ]
- [(-static-extension)
+ [(-static-extension) ;DEPRECATED
(check s rest)
(set! static-extensions (append static-extensions (list (car rest))))
(t-options "-static-extension" (car rest))
diff --git a/manual/Unit library b/manual/Unit library
index e807986d..baf5d34b 100644
--- a/manual/Unit library
+++ b/manual/Unit library
@@ -408,11 +408,11 @@ Returns a keyword with the name {{STRING}}.
<procedure>(argv)</procedure>
-Return a list of all supplied command-line arguments. The first item in
-the list is a string containing the name of the executing program. The
-other items are the arguments passed to the application. This list is
-freshly created on every invocation of {{(argv)}}. It depends on
-the host-shell whether arguments are expanded ('globbed') or not.
+Return a list of all supplied command-line arguments. The first item
+in the list is a string containing the name of the executing
+program. The other items are the arguments passed to the
+application. It depends on the host-shell whether arguments are
+expanded ('globbed') or not.
==== exit
diff --git a/manual/Using the compiler b/manual/Using the compiler
index 0a515c41..ebbff6f5 100644
--- a/manual/Using the compiler
+++ b/manual/Using the compiler
@@ -119,6 +119,8 @@ the source text should be read from standard input.
; -local : Assume toplevel variables defined in the current compilation unit are not externally modified. This gives the compiler more opportunities for inlining. Note that this may result in counter-intuitive and non-standard behaviour: an asssignment to an exported toplevel variable executed in a different compilation unit or in evaluated code will possibly not be seen by code executing in the current compilation unit.
+; -module : wraps the compiled code in an implicit module named {{main}}, importing the {{scheme}} and {{chicken}} modules.
+
; -no-argc-checks : disable argument count checks
; -no-bound-checks : disable bound variable checks
diff --git a/support.scm b/support.scm
index 76c91760..da244319 100644
--- a/support.scm
+++ b/support.scm
@@ -1256,6 +1256,7 @@ Usage: chicken FILENAME OPTION ...
-emit-all-import-libraries emit import-libraries for all defined modules
-no-module-registration do not generate module registration code
-no-compiler-syntax disable expansion of compiler-macros
+ -module wrap compiled code into implicit module
Translation options:
@@ -1326,8 +1327,6 @@ Usage: chicken FILENAME OPTION ...
-epilogue FILENAME include file after main source file
-dynamic compile as dynamically loadable code
-require-extension NAME require and import extension NAME
- -static-extension NAME import extension NAME but link statically
- (if available)
Obscure options:
Trap