内容简介: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 notio
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
- github.com/diku-dk/sml-hashtable
- github.com/diku-dk/sml-regexp
- github.com/diku-dk/sml-random
- github.com/diku-dk/sml-setmap
- github.com/diku-dk/sml-sort
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.
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。