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

SCM Repository

[smlnj] Annotation of /sml/trunk/src/runtime/c-libs/README
ViewVC logotype

Annotation of /sml/trunk/src/runtime/c-libs/README

Parent Directory Parent Directory | Revision Log Revision Log

Revision 2 - (view) (download)

1 : monnier 2 This is the root directory of the ML callable C library source.
2 :     Versions of SML/NJ up to 106, used a single monolithic library
3 :     of C functions that were callable from ML, with a single table
4 :     of C function bindings. This meant that to add a C function,
5 :     required changing the run-time system source. In the new scheme,
6 :     the runtime system supports an extensible set of libraries that
7 :     are configured at build time. Note, however, that since the run-
8 :     time system and ML heap images are separate files, one can extend
9 :     the run-time system with additional libraries and then use existing
10 :     ML heap images with the extended run-time system. See the file
11 :     HOWTO-ADD-C-CODE in the notes directory for more details.
12 :    
13 :     The decentralization of the libraries represents a first step in
14 :     an ongoing process to make the ML/C interface easier to extend.
15 :     There will be continue to be changes in the way that these
16 :     libraries are organized and supported. Here is a tentative list
17 :     of anticipated changes:
18 :    
19 :     1) as we move towards the new SML basis, the libraries will be
20 :     reorganized and redefined to reflect the new semantics.
21 :    
22 :     2) support for non UNIX systems (Windows NT, Windows 95, OS/2,
23 :     and MacOS), will result in different versions of libraries
24 :     for different systems.
25 :    
26 :     3) the generation of library interfaces will be automated. We plan
27 :     an extension to SML that we will feed into a preprocessor to
28 :     generate both the ML code that binds the C functions, and the
29 :     C function prototype declarations and library tables (the stuff
30 :     that is in "*/cfun-list.h" and "*/*-lib.c").
31 :    
32 :     4) support for dynamic loading of C libraries on machines that have
33 :     dynamic linking.
34 :    

ViewVC Help
Powered by ViewVC 1.0.0