Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Diff of /sml/trunk/src/ml-lex/export-lex.sml
ViewVC logotype

Diff of /sml/trunk/src/ml-lex/export-lex.sml

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

sml/branches/SMLNJ/src/ml-lex/export-lex.sml revision 498, Tue Dec 7 15:44:50 1999 UTC sml/trunk/src/ml-lex/export-lex.sml revision 652, Tue Jun 6 02:14:56 2000 UTC
# Line 1  Line 1 
1  (* export-lex.sml  (* export-lex.sml
2   *   *
3   * $Log$   * $Log$
4     * Revision 1.4  2000/06/06 02:14:54  blume
5     * merging changes from devel branch; new boot files
6     *
7     * Revision 1.2.2.1  2000/06/02 08:11:06  blume
8     * added several appendices to CM manual;
9     * merged recent changes to main trunk into devel branch
10     *
11     * Revision 1.3  2000/06/01 18:33:42  monnier
12     * bring revisions from the vendor branch to the trunk
13     *
14     * Revision 1.2  2000/03/07 04:01:05  blume
15     * - size info in BOOTLIST
16     *      * no fixed upper limits for number of bootfiles or length of
17     *        bootfile names in runtime
18     *      * falling back to old behavior if no BOOTLIST size info found
19     * - allocation size heuristics in .run-sml
20     *      * tries to read cache size from /proc/cpuinfo (this is important for
21     *         small-cache Celeron systems!)
22     * - install.sh robustified
23     * - CM manual updates
24     * - paranoid mode
25     *      * no more CMB.deliver() (i.e., all done by CMB.make())
26     *      * can re-use existing sml.boot.* files
27     *      * init.cmi now treated as library
28     *      * library stamps for consistency checks
29     * - sml.boot.<arch>-<os>/PIDMAP file
30     *      * This file is read by the CM startup code.  This is used to minimize
31     *        the amount of dynamic state that needs to be stowed away for the
32     *        purpose of sharing between interactive system and user code.
33     * - CM.Anchor.anchor instead of CM.Anchor.{set,cancel}
34     *      * Upon request by Elsa.  Anchors now controlled by get-set-pair
35     *        like most other CM state variables.
36     * - Compiler.CMSA eliminated
37     *      * No longer supported by CM anyway.
38     * - fixed bugs in pickler that kept biting Stefan
39     *      * past refs to past refs (was caused by the possibility that
40     *        ad-hoc sharing is more discriminating than hash-cons sharing)
41     *      * integer overflow on LargeInt.minInt
42     * - ml-{lex,yacc} build scripts now use new mechanism
43     *   for building standalone programs
44     * - fixed several gcc -Wall warnings that were caused by missing header
45     *   files, missing initializations, etc., in runtime (not all warnings
46     *   eliminated, though)
47     *
48     * Revision 1.1.1.9.4.1  2000/02/20 14:44:33  blume
49     * CMB.deliver merged with CMB.make; runtime boot code made more flexible
50     *
51   * Revision 1.1.1.9  1999/12/07 15:40:25  monnier   * Revision 1.1.1.9  1999/12/07 15:40:25  monnier
52   * version 110.25   * version 110.25
53   *   *
# Line 24  Line 71 
71   *)   *)
72    
73  structure ExportLexGen : sig  structure ExportLexGen : sig
   
     val export : string -> unit  
74      val lexGen : (string * string list) -> OS.Process.status      val lexGen : (string * string list) -> OS.Process.status
   
75    end = struct    end = struct
76    
77      exception Interrupt      exception Interrupt
# Line 53  Line 97 
97      fun err msg = TextIO.output(TextIO.stdErr, String.concat msg)      fun err msg = TextIO.output(TextIO.stdErr, String.concat msg)
98    
99      fun lexGen (name, args) = let      fun lexGen (name, args) = let
100            fun lex_gen () = (case args          fun lex_gen () =
101                   of [] => (              case args of
102                        err [name, ": missing filename\n"];                  [] => (err [name, ": missing filename\n"];
103                        OS.Process.exit OS.Process.failure)                        OS.Process.exit OS.Process.failure)
104                    | files => List.app LexGen.lexGen files                    | files => List.app LexGen.lexGen files
                 (* end case *))  
105            in            in
106              (handleInterrupt lex_gen; OS.Process.success)              (handleInterrupt lex_gen; OS.Process.success)
107                handle Interrupt => (          handle Interrupt => (err [name, ": Interrupt\n"]; OS.Process.failure)
108                          err [name, ": Interrupt\n"];               | any => (err [name, ": uncaught exception ",
109                          OS.Process.failure)                              exnMessage any, "\n"];
                    | any => (  
                         err [  
                             name, ": uncaught exception ", exnMessage any, "\n"  
                           ];  
110                          OS.Process.failure)                          OS.Process.failure)
111            end            end
   
     fun export name = SMLofNJ.exportFn (name, lexGen);  
112    end    end

Legend:
Removed from v.498  
changed lines
  Added in v.652

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0