chiark / gitweb /
src/final.lisp, src/frontend.lisp: Compile methods before dumping.
[sod] / src / frontend.lisp
index e7b515a0683dc24b86f239d2334a2bd4d6a3dac3..26afbfc4d9a9d8e7737a9010a3968aec63aa4298 100644 (file)
@@ -29,6 +29,12 @@ (cl:defpackage #:sod-frontend
 
 (cl:in-package #:sod-frontend)
 
 
 (cl:in-package #:sod-frontend)
 
+;;;--------------------------------------------------------------------------
+;;; Preparation for dumping.
+
+(make-builtin-module)
+(exercise)
+
 ;;;--------------------------------------------------------------------------
 ;;; The main program.
 
 ;;;--------------------------------------------------------------------------
 ;;; The main program.
 
@@ -81,11 +87,11 @@ (defun main ()
     ;; Option definitions.
     (define-program
       :help "Process SOD input files to produce (e.g.) C output."
     ;; Option definitions.
     (define-program
       :help "Process SOD input files to produce (e.g.) C output."
-      :version "0.1.0"
+      :version *sod-version*
       :usage "SOURCES..."
       :options (options
                (help-options :short-version #\V)
       :usage "SOURCES..."
       :options (options
                (help-options :short-version #\V)
-               "Crazy options"
+               "Translator options"
                (#\I "include" (:arg "DIR")
                     ("Search DIR for module imports.")
                     (list *module-dirs* 'string))
                (#\I "include" (:arg "DIR")
                     ("Search DIR for module imports.")
                     (list *module-dirs* 'string))
@@ -110,9 +116,6 @@     (define-program
                 (or builtinsp args))
       (die-usage))
 
                 (or builtinsp args))
       (die-usage))
 
-    ;; Prepare the builtins.
-    (make-builtin-module)
-
     ;; Do the main parsing job.
     (multiple-value-bind (hunoz nerror nwarn)
        (count-and-report-errors ()
     ;; Do the main parsing job.
     (multiple-value-bind (hunoz nerror nwarn)
        (count-and-report-errors ()
@@ -169,12 +172,10 @@     (define-program
              ;; If we're writing the builtin module then now seems like a
              ;; good time to do that.
              (when builtinsp
              ;; If we're writing the builtin module then now seems like a
              ;; good time to do that.
              (when builtinsp
-               (clear-the-decks)
                (hack-module *builtin-module*))
 
              ;; Parse and write out the remaining modules.
              (dolist (arg args)
                (hack-module *builtin-module*))
 
              ;; Parse and write out the remaining modules.
              (dolist (arg args)
-               (clear-the-decks)
                (hack-module (read-module arg))))))
 
       ;; Report on how well everything worked.
                (hack-module (read-module arg))))))
 
       ;; Report on how well everything worked.