Home My Page Projects Code Snippets Project Openings diderot
Summary Activity Tracker Tasks SCM

SCM Repository

[diderot] Annotation of /branches/vis15/src/compiler/cxx-util/cxx-names.sml
ViewVC logotype

Annotation of /branches/vis15/src/compiler/cxx-util/cxx-names.sml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3900 - (view) (download)
Original Path: branches/vis15/src/compiler/cxx-util/runtime-names.sml

1 : jhr 3810 (* runtime-names.sml
2 :     *
3 :     * This code is part of the Diderot Project (http://diderot-language.cs.uchicago.edu)
4 :     *
5 :     * COPYRIGHT (c) 2016 The University of Chicago
6 :     * All rights reserved.
7 :     *)
8 :    
9 : jhr 3900 structure RuntimeNames : sig
10 : jhr 3810
11 : jhr 3900 (* the base type of the world struct *)
12 :     val worldBaseTyName : string
13 : jhr 3810
14 : jhr 3900 (* the world type *)
15 :     val worldTyName : string
16 :     val worldPtrTy : CLang.ty
17 :    
18 :     (* the global variables struct *)
19 :     val globalTyName : string
20 :     val globalPtrTy : CLang.ty
21 :    
22 :     (* the pointer to the command-line options struct *)
23 :     val optionsPtrTy : CodeGenEnv.t -> CLang.ty
24 :    
25 : jhr 3810 (* Run-time system functions for dynamic sequences *)
26 : jhr 3900 val loadDynSeq : APITypes.t -> string
27 :     val loadDynSeqFromFile : APITypes.t -> string
28 :    
29 :     end = struct
30 :    
31 :     structure CL = CLang
32 :     structure Env = CodeGenEnv
33 :    
34 :     (* the base type of the world struct *)
35 :     val worldBaseTyName = "world_base"
36 :    
37 :     (* the world type *)
38 :     val worldTyName = "world"
39 :     val worldPtrTy = CL.T_Ptr(CL.T_Named worldTyName)
40 :    
41 :     (* the global variables struct *)
42 :     val globalTyName = "globals"
43 :     val globalPtrTy = CL.T_Ptr(CL.T_Named globalTyName)
44 :    
45 :     (* the pointer to the command-line options struct *)
46 :     fun optionsPtrTy env =
47 :     CL.T_Ptr(CL.T_Template("options", [Env.realTy env, Env.intTy env]))
48 :    
49 :     (* Run-time system functions for dynamic sequences *)
50 : jhr 3810 (* FIXME: should these be DynSeqLoad<ty>? *)
51 :     fun loadDynSeq ty = (case ty
52 : jhr 3900 of APITypes.BoolTy => "diderot::DynSeqLoadBool"
53 :     | APITypes.IntTy => "diderot::DynSeqLoadInt"
54 :     | APITypes.TensorTy _ => "diderot::DynSeqLoadReal"
55 : jhr 3810 | ty => raise Fail("unsupported sequence type " ^ APITypes.toString ty)
56 :     (* end case *))
57 :    
58 :     fun loadDynSeqFromFile ty = (case ty
59 : jhr 3900 of APITypes.BoolTy => "diderot::DynSeqLoadBoolFromFile"
60 :     | APITypes.IntTy => "diderot::DynSeqLoadIntFromFile"
61 :     | APITypes.TensorTy _ => "diderot::DynSeqLoadRealFromFile"
62 : jhr 3810 | ty => raise Fail("unsupported sequence type " ^ APITypes.toString ty)
63 :     (* end case *))
64 :    
65 :     end

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