使用SML/NJ系统

本页涵盖了如何使用SML/NJ系统的一些基本问题。

如何启动SML?

在Unix下,应该确保bin目录包含sml命令位于路径中(由path shell变量定义)。如果将SMLHOME定义为安装SML/NJ的目录,那么sml命令将是$SMLHOME/bin/sml。另一个常见位置sml命令可能安装在/usr/local/bin目录中。您可以通过提供完整的文件名来调用sml

/usr/local/bin/sml
或者,如果sml命令位于路径中的目录中,只需键入:
sml公司

在Windows下,双击SML图标即可运行SML/NJ。或者。。。

如何退出SML?

在交互式顶层键入EOF字符将退出sml。EOF键在Unix下通常为ctrl-D,在Windows下为ctrl-Z,您需要按return/enter键才能完成效果。另一种方法是调用函数操作系统。流程.退出:

操作系统。进程退出(OS.Process.success);
中定义的两个状态值操作系统。过程成功失败.请参阅操作系统。过程文档。这个操作系统。处理退出函数是从程序中退出sml的适当方式。

如何从文件加载程序?

功能

使用:字符串->单位
在顶层定义,并将加载包含SML源的文件如果应用于包含文件名的字符串(即主机操作系统语法中的文件路径名)。对于实例
使用“../lib/sort.sml”;
将导致文件内容“../lib/sort.sml“(假设Unix文件名语法)加载到顶级交互系统就好像它被输入或粘贴到顶级交互循环。

函数名称使用是的顶级同义词功能 编译器。交互.useFile.

这个使用功能方便,适合休闲使用,但这不是加载整个多文件的推荐方式程序。对于认真的程序开发,最好使用编译管理器的功能,厘米.

如何加载库?

这取决于你所说的“负载”是什么意思。蛮力方法是确定库和加载的源代码的路径名带有“use”命令的源代码,但不建议这样做。更好的方法是使用厘米,内置的编译管理器。

如果要将库用作CM管理程序的一部分,然后您只需在自己的文件中列出库的描述文件项目的描述文件。

如果希望能够访问库导出的绑定在交互式提示符下,则必须发出以下命令:

CM.make’(“<library-description-file>”,false);
或者,如果您正在使用SML/NJ的最新“工作”版本(110.9或更高版本):
CM.make'{group=“<library-description-file>”,force_relink=false};
当然,您必须替换占位符<库描述文件>路径名为库的描述文件(注意CM使用shell环境变量CM_PATH)。如果路径名库的名称恰好是“sources.cm”,那么您不需要来指定它。在这种情况下,只需说
CM.make();

CM还提供了自动加载功能,导致选中在中提到库模块时自动加载它们交互系统。默认情况下当SML/NJ系统已构建。这意味着如果您引用这些库中的任何一个输入交互系统的代码中的模块(直接或通过函数使用),它们将由自动加载CM.最初注册自动加载的库是由config/targets文件中设置的变量决定,但用户可以使用CM.自动加载功能。

请参阅CM手册了解更多信息。

如何确定SML进程的当前目录?

功能操作系统。文件系统.getDir返回当前值交互式循环或调用它的SML程序的目录。

如何更改SML进程的当前目录?

功能操作系统。文件系统.chDir设置当前交互式循环或调用它的SML程序的目录。

如何保存SML图像?

要保存SML/NJ交互系统的堆映像,请使用函数

  导出ML:string->bool
定义在SMLofNJ公司结构。呼叫,如
exportML“图像”
使堆映像另存为图像。弓形虫病哪里弓形虫病指定体系结构和操作系统(例如。图像.sparc-solaris). 原件呼叫导出ML返回false。

如何运行保存的SML映像?

例如,创建了堆图像文件图像。弓形虫病使用导出ML函数,您可以运行图像,从中恢复交互式循环此处的点导出ML通过执行调用

sml@SMLload=图像。弓形虫病
(其中弓形虫病将是一个特殊的体系结构、操作系统组合,如"sparc-solaris公司“),或只是
sml@SMLload=图像
自从sml公司可以找出正确的弓形虫病后缀。执行将在以下地点继续导出ML返回,返回值为表示我们处于恢复图像中。

如何创建独立SML应用程序?

要创建独立应用程序,请使用函数

  导出Fn:(string*((string*string-list)->操作系统。进程状态)->单元
定义在SMLofNJ公司结构。此函数还生成一个堆图像文件,该文件必须作为@SML负载参数到sml公司要运行。如果要创建简单的可执行映像,请参阅以下问题.

如何为SML/NJ应用程序创建可执行映像?

可以将堆映像与SML/NJ运行时相结合,以使用Lorenz Huelsbergen的heap2exec实用程序。


|SML/NJ文档主页|
|SML/NJ主页|

将您的意见或问题发送至.
创建者大卫·麦奎因1997年4月9日星期三。
上次修改时间:1999年2月19日星期五16:24:23 EST
版权所有©1997,朗讯科技;贝尔实验室.