14

smlpkg - Generic package manager for Standard ML libraries and programs

 4 years ago
source link: https://github.com/diku-dk/smlpkg
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

smlpkg

This program constitutes a generic package manager for Standard ML libraries and programs. The package manager assumes nothing and knows nothing about the Standard ML compilers used and is thus quite generic.

The package manager is centered around the notion of semantic versioning and currently supports packages hosted on GitHub and GitLab .

The package manager takes care of downloading and upgrading dependent packages and works well with the use of MLB files supported by Standard ML compilers such as MLton , MLKit , and SMLtoJs .

Usage

Adding a package

$ smlpkg add github.com/diku-dk/sml-random

This modifies only sml.pkg .

Downloading required packages

$ smlpkg sync

This populates the lib directory based on the packages listed in sml.pkg .

Creating a new package

$ smlpkg init github.com/foo/bar

Put all code in the directory lib/github.com/foo/bar/ .

Releasing a package

$ git tag vX.Y.Z
$ git push --tags

Remember to follow semantic versioning .

Probably incomplete list of available packages

Design details

See this blog post on the design of the Futhark package manager .

Compilation

To compile the package manager, you need a Standard ML compiler such as MLton or MLKit .

Compilation using MLKit on macOS

$ brew install mlkit
$ make all

Compilation using MLton

$ MLCOMP=mlton make clean all

License

This software is distributed under the MIT LICENSE .

The package manager is almost a complete port of the Futhark package manager, designed, and implemented in Haskell by Troels Henriksen.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK