seanmcl / sml-ext

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

(* -------------------------------------------------------------------------- *)
(*  SML-Ext                                                                   *)
(* -------------------------------------------------------------------------- *)

SML-Ext is a small library of useful functions for Standard ML.  It builds
under MLton and SML/NJ.  

(* -------------------------------------------------------------------------- *)
(*  Contents                                                                  *)
(* -------------------------------------------------------------------------- *)

arith     - structures for abstract arithmetic 
basis     - extensions to the SML basis library
devel     - projects in development
float     - IEEE floating point number utilities
lp        - linear programming
mlton     - extensions to the MLton structure
opt       - nonlinear optimization
parse     - parsing
pp        - pretty printing
regexp    - regular expressions
smlnj-lib - extensions to the SML/NJ library
stream    - streams
test      - tests for SML-Ext
unit-test - unit testing
util      - miscellaneous useful structures
word      - arbitrary size machine words

(* -------------------------------------------------------------------------- *)
(*  Usage                                                                     *)
(* -------------------------------------------------------------------------- *)

MLton: Make a file sources.mlb that refers only to the parts you need.
SML/NJ: import sources.cm

(* -------------------------------------------------------------------------- *)
(*  Conventions                                                               *)
(* -------------------------------------------------------------------------- *)

The general syntactic conventions follow

http://mlton.org/StyleGuide

If you add to or edit this code, please follow the MLton guidelines.

Some additional rules:

  1) In signatures, comments go *before* the val declaration

  2) If you are extending an existing structure or functor, use
     transparent ascription.  Otherwise use opaque ascription and
     either 'sharing' or 'where type' constraints.  

     Exception: If a functor uses its arguments to satisfy
     structure constraints, using opaque ascription will force
     a "where type" clause for every type defined in the input
     structure.  Avoid opaque ascription in these cases.  See,
     e.g., the MLton source.

Note: The conventions are evolving.  Thus, there is probably a lot of
code in the library that doesn't follow them.  If you see something
that doesn't fit the guidelines, please change it.  This file is the
authority for syntactic conventions. 

(* -------------------------------------------------------------------------- *)
(*  SVN                                                                       *)
(* -------------------------------------------------------------------------- *)

This is the content of the global-ignores for this project.

global-ignores = *.aux *.log *.dvi .depend *.vo CVS *.so *.a *.o *.lo *.la *.cmo *.cmi *.cma *.cmx *.cmxa .cm *.dump .*.rej *.rej .*~ *~ *.bbl *.blg .DS_Store .gdb_history _log _build *.native *.byte *.d.native *.p.byte *.LNK *.LCK #*# .#* gmon.out a.out mlmon.out *.toc *.idx .mlton.du

Please don't add anything to the project that would be filtered by this list!

(* -------------------------------------------------------------------------- *)
(*  Testing                                                                   *)
(* -------------------------------------------------------------------------- *)

To run all tests that are not in FFI, cd to unit-tests and:

make test
runtests

To run ffi tests, cd to the library directory you need and:

make test
runtests

About


Languages

Language:Standard ML 86.1%Language:Haskell 11.0%Language:C 2.5%Language:OCaml 0.4%