This archive/directory contains a binary distribution of Mosml.NET, a port of Moscow ML v2.0 to .NET by Niels Jørgen Kokholm (kokholm@itu.dk) and Peter Sestoft (sestoft@dina.kvl.dk). This distribution should be considered an alpha release. Please consult http://www.dina.kvl.dk/~sestoft/mosml/ for information on Moscow ML. Mosml.NET has been developed and tested mainly on a pc with MS .NET Framework SDK 1.0 SP1 (http://msdn.microsoft.com/netframework/) and running MS Windows XP Pro. Mosml.NET might work with just an MS .NET Framework 1.0 redistributable installed or with the version 1.1 SDK but that has not been tested. As of this writing, the batch compiler can be run under Mono (http://www.go-mono.org) and many programs compiled with Mosml.NET will run under Mono. The interactive system does not run under Mono yet. CONTENTS of this distibution: ============================ README.BIN : this file bin/ : Contains the executables mosmlnet.exe, mosmlnetc.exe and mosmlnetlex.exe, corresponding to Moscow ML's mosml, mosmlc and mosmllex commands. There is no mosmlnetyac, but the the parsing support in Mosml.NET is compatible with files generated by the C-based mosmlyac from Moscow ML 2.0. The directory also contains a number of support assemblies, Mosml.xxx.dll, with the actual code of the compiler, libraries etc. lib/ : Contains the signature files (.sig) and compiled signatures (.ui) for the parts of the Moscow ML library ported so far. It also contains two files for installing the support assemblies into the global assembly cache, gaci.bat and gaciall.bat. Moreover the interactive help database helpsigs.val. Currently, the following libraries from Moscow ML 2.0 is missing in Mosml.NET: Regex, Socket, Dynlib, Gdbm, Gdimage, Mysql, Polygdbm, Postgres, Signal, Unix and Callback. doc/ : Contains the user's manual and internals paper as pdf files and the html library documentation. RUNNING Mosml.NET: ================= To install Mosml.NET, You just need to unpack this archive to your local hard disk (Mosml.NET will not run from a network drive if you use the default security configuration the .NET Framework). You may choose to add the bin subdirectory to your execution PATH. The startup time of the batch compiler and interactive system will be quite substantial unless you install the above mentioned support assemblies into the global assembly cache and precompile them with the "ngen" utility of the MS .NET SDK. This can be achieved conveniently by running the "lib\gaciall.bat" script. You may need to be logged in as an administrator to successfully run the script. WARNING: the "gaciall.bat" script will remove *every* assembly with a name matching Mosml.* from the global assembly and ngen caches before installing new versions (we doubt anyone would want to run several versions of Mosml.NET side by side). The interactive system mosmlnet.exe and the batch compiler mosmlnetc.exe support almost the same command line formats as mosml and mosmlc from Moscow ML 2.0. If you do not supply the "-stdlib" flag or use "-P none", you must supply the path to the lib directory in the environment variable MOSMLNETLIB. By default the batch compiler will create a .il file to be assembled by the MS .NET SDK ilasm utility. You may create an assembly directly by adding the "-rtcg" flag to the command line. By default, the compiled file will be in .exe format, but you can create .dll and .netmodule format files with the flags "-target dll" respectively "-target netmodule". The compiled files willuse the Mosml.Runtime.dll support assembly and normally also Mosml.Library.dll; preferably loadable from the global assembly cache, alternatively by copying the support assemblies to the directory of the compiled file.