{"id":24865186,"url":"https://github.com/diku-dk/smlpkg","last_synced_at":"2025-09-02T21:37:47.956Z","repository":{"id":49211524,"uuid":"245812577","full_name":"diku-dk/smlpkg","owner":"diku-dk","description":"Generic package manager for Standard ML libraries and programs","archived":false,"fork":false,"pushed_at":"2025-01-23T13:24:09.000Z","size":90,"stargazers_count":165,"open_issues_count":2,"forks_count":6,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-04-13T00:53:18.869Z","etag":null,"topics":["sml","smlpkg","standard-ml"],"latest_commit_sha":null,"homepage":null,"language":"Standard ML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/diku-dk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-03-08T12:44:48.000Z","updated_at":"2025-01-23T15:49:10.000Z","dependencies_parsed_at":"2023-09-22T03:56:09.708Z","dependency_job_id":null,"html_url":"https://github.com/diku-dk/smlpkg","commit_stats":{"total_commits":38,"total_committers":4,"mean_commits":9.5,"dds":"0.13157894736842102","last_synced_commit":"3b4b039d88632fe1668d61790b0429e49ef1daef"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diku-dk%2Fsmlpkg","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diku-dk%2Fsmlpkg/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diku-dk%2Fsmlpkg/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diku-dk%2Fsmlpkg/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/diku-dk","download_url":"https://codeload.github.com/diku-dk/smlpkg/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248650439,"owners_count":21139672,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["sml","smlpkg","standard-ml"],"created_at":"2025-01-31T23:58:03.899Z","updated_at":"2025-04-13T00:53:27.280Z","avatar_url":"https://github.com/diku-dk.png","language":"Standard ML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# smlpkg [![CI](https://github.com/diku-dk/smlpkg/workflows/CI/badge.svg)](https://github.com/diku-dk/smlpkg/actions)\n\nThis program constitutes a generic package manager for Standard ML\nlibraries and programs. The package manager assumes nothing and knows\nnothing about the Standard ML compilers used and is thus quite\ngeneric.\n\nThe package manager is centered around the notion of [semantic versioning](https://semver.org/) and currently supports packages\nhosted on [GitHub](https://github.com/) and\n[GitLab](https://about.gitlab.com/).\n\nThe package manager takes care of downloading and upgrading dependent\npackages and works well with the use of MLB files supported by\nStandard ML compilers such as [MLton](http://mlton.org/),\n[MLKit](http://elsman.com/mlkit/), and\n[SMLtoJs](http://www.smlserver.org/smltojs/).\n\n# Usage\n\n## Adding a package\n\n```\n$ smlpkg add github.com/diku-dk/sml-random\n```\n\nThis command modifies only `sml.pkg` and creates it if it does not already exist.\n\n## Downloading required packages\n\n```\n$ smlpkg sync\n```\n\nThis command populates the `lib` directory based on the packages listed in `sml.pkg`.\n\n## Creating a new package\n\n```\n$ smlpkg init github.com/foo/bar\n```\n\nThis command creates a file `sml.pkg` and initiates it with the given\npackage name (`foo` should be a github user name or an organisation\nname and `bar` should be a repository name). You can now add code in the\ndirectory `lib/github.com/foo/bar/`.\n\n## Releasing a package\n\n```\n$ git tag vX.Y.Z\n$ git push --tags\n```\n\nRemember to follow [semantic versioning](https://semver.org). Once a\npackage has been released, other packages can safely add the package\nto their own source code tree using `smlpkg add` (see above).\n\n## Probably incomplete list of available packages\n\n* [![CI](https://github.com/diku-dk/futhark-data-sml/workflows/CI/badge.svg)](https://github.com/diku-dk/futhark-data-sml/actions) [github.com/diku-dk/futhark-data-sml](https://github.com/diku-dk/futhark-data-sml)\n* [![CI](https://github.com/diku-dk/futhark-server-sml/workflows/CI/badge.svg)](https://github.com/diku-dk/futhark-server-sml/actions) [github.com/diku-dk/futhark-server-sml](https://github.com/diku-dk/futhark-server-sml)\n* [![CI](https://github.com/diku-dk/sml-aplparse/workflows/CI/badge.svg)](https://github.com/diku-dk/sml-aplparse/actions)\n  [github.com/diku-dk/sml-aplparse](https://github.com/diku-dk/sml-aplparse)\n* [![CI](https://github.com/diku-dk/sml-base64/workflows/CI/badge.svg)](https://github.com/diku-dk/sml-base64/actions)\n  [github.com/diku-dk/sml-base64](https://github.com/diku-dk/sml-base64)\n* [![CI](https://github.com/diku-dk/sml-complex/workflows/CI/badge.svg)](https://github.com/diku-dk/sml-complex/actions)\n  [github.com/diku-dk/sml-complex](https://github.com/diku-dk/sml-complex)\n* [![CI](https://github.com/diku-dk/sml-cstring/workflows/CI/badge.svg)](https://github.com/diku-dk/sml-cstring/actions)\n  [github.com/diku-dk/sml-cstring](https://github.com/diku-dk/sml-cstring)\n* [![CI](https://github.com/diku-dk/sml-hashtable/workflows/CI/badge.svg)](https://github.com/diku-dk/sml-hashtable/actions)\n  [github.com/diku-dk/sml-hashtable](https://github.com/diku-dk/sml-hashtable)\n* [![CI](https://github.com/diku-dk/sml-http/workflows/CI/badge.svg)](https://github.com/diku-dk/sml-http/actions)\n  [github.com/diku-dk/sml-http](https://github.com/diku-dk/sml-http)\n* [![CI](https://github.com/diku-dk/sml-json/workflows/CI/badge.svg)](https://github.com/diku-dk/sml-json/actions)\n  [github.com/diku-dk/sml-json](https://github.com/diku-dk/sml-json)\n* [![CI](https://github.com/diku-dk/sml-matrix/workflows/CI/badge.svg)](https://github.com/diku-dk/sml-matrix/actions)\n  [github.com/diku-dk/sml-matrix](https://github.com/diku-dk/sml-matrix)\n* [![CI](https://github.com/diku-dk/sml-md5/workflows/CI/badge.svg)](https://github.com/diku-dk/sml-md5/actions)\n  [github.com/diku-dk/sml-md5](https://github.com/diku-dk/sml-md5)\n* [![CI](https://github.com/diku-dk/sml-getopt/workflows/CI/badge.svg)](https://github.com/diku-dk/sml-getopt/actions)\n  [github.com/diku-dk/sml-getopt](https://github.com/diku-dk/sml-getopt)\n* [![CI](https://github.com/diku-dk/sml-parse/workflows/CI/badge.svg)](https://github.com/diku-dk/sml-parse/actions)\n  [github.com/diku-dk/sml-parse](https://github.com/diku-dk/sml-parse)\n* [![CI](https://github.com/diku-dk/sml-pickle/workflows/CI/badge.svg)](https://github.com/diku-dk/sml-pickle/actions)\n  [github.com/diku-dk/sml-pickle](https://github.com/diku-dk/sml-pickle)\n* [![CI](https://github.com/diku-dk/sml-pretty/workflows/CI/badge.svg)](https://github.com/diku-dk/sml-pretty/actions)\n  [github.com/diku-dk/sml-pretty](https://github.com/diku-dk/sml-pretty)\n* [![CI](https://github.com/diku-dk/sml-regexp/workflows/CI/badge.svg)](https://github.com/diku-dk/sml-regexp/actions)\n  [github.com/diku-dk/sml-regexp](https://github.com/diku-dk/sml-regexp)\n* [![CI](https://github.com/diku-dk/sml-random/workflows/CI/badge.svg)](https://github.com/diku-dk/sml-random/actions)\n  [github.com/diku-dk/sml-random](https://github.com/diku-dk/sml-random)\n* [![CI](https://github.com/diku-dk/sml-server/workflows/CI/badge.svg)](https://github.com/diku-dk/sml-server/actions)\n  [github.com/diku-dk/sml-server](https://github.com/diku-dk/sml-server)\n* [![CI](https://github.com/diku-dk/sml-setmap/workflows/CI/badge.svg)](https://github.com/diku-dk/sml-setmap/actions)\n  [github.com/diku-dk/sml-setmap](https://github.com/diku-dk/sml-setmap)\n* [![CI](https://github.com/diku-dk/sml-sort/workflows/CI/badge.svg)](https://github.com/diku-dk/sml-sort/actions)\n  [github.com/diku-dk/sml-sort](https://github.com/diku-dk/sml-sort)\n* [![CI](https://github.com/diku-dk/sml-sha256/workflows/CI/badge.svg)](https://github.com/diku-dk/sml-sha256/actions)\n  [github.com/diku-dk/sml-sha256](https://github.com/diku-dk/sml-sha256)\n* [![CI](https://github.com/diku-dk/sml-sobol/workflows/CI/badge.svg)](https://github.com/diku-dk/sml-sobol/actions)\n  [github.com/diku-dk/sml-sobol](https://github.com/diku-dk/sml-sobol)\n* [![CI](https://github.com/diku-dk/sml-unicode/workflows/CI/badge.svg)](https://github.com/diku-dk/sml-unicode/actions)\n  [github.com/diku-dk/sml-unicode](https://github.com/diku-dk/sml-unicode)\n* [![CI](https://github.com/diku-dk/sml-uref/workflows/CI/badge.svg)](https://github.com/diku-dk/sml-uref/actions)\n  [github.com/diku-dk/sml-uref](https://github.com/diku-dk/sml-uref)\n* [github.com/pzel/assert-polyml](https://github.com/pzel/assert-polyml)\n* [github.com/pzel/sml-either](https://github.com/pzel/sml-either)\n* [github.com/pzel/sqlite3-polyml](https://github.com/pzel/sqlite3-polyml)\n* [github.com/shwestrick/sml-audio](https://github.com/shwestrick/sml-audio)\n* [github.com/shwestrick/sml-uri](https://github.com/shwestrick/sml-uri)\n* [github.com/shwestrick/sml-parseq](https://github.com/shwestrick/sml-parseq)\n\n\n## Design details\n\nSee this [blog post on the design of the Futhark package\nmanager](https://futhark-lang.org/blog/2018-08-03-the-present-futhark-package-manager.html).\n\n# Compilation\n\nTo compile the package manager, you need a Standard ML compiler such\nas [MLton](http://mlton.org/) or [MLKit](http://elsman.com/mlkit/).\n\n## Compilation using MLKit on macOS\n\n```\n$ brew install mlkit\n$ make all\n```\n\n## Compilation using MLton\n\n```\n$ MLCOMP=mlton make clean all\n```\n\n# License\n\nThis software is distributed under the [MIT LICENSE](LICENSE).\n\nThe package manager is almost a complete port of the Futhark\npackage manager, designed, and implemented in Haskell by Troels\nHenriksen.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdiku-dk%2Fsmlpkg","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdiku-dk%2Fsmlpkg","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdiku-dk%2Fsmlpkg/lists"}