mirror of
https://github.com/anoma/juvix.git
synced 2024-12-12 14:28:08 +03:00
20a95ec42d
This PR creates a new package that's bundled with the compiler in a similar way to the stdlib and the package description package. ## The `package-base` Package This package is called [package-base](ab4376cf9e/include/package-base
) and contains the minimal set of definitions required to load a Package file. The [`Juvix.Builtin`](ab4376cf9e/include/package-base/Juvix/Builtin/V1.juvix
) module contains: ``` module Juvix.Builtin.V1; import Juvix.Builtin.V1.Nat open public; import Juvix.Builtin.V1.Trait.Natural open public; import Juvix.Builtin.V1.String open public; import Juvix.Builtin.V1.Bool open public; import Juvix.Builtin.V1.Maybe open public; import Juvix.Builtin.V1.List open public; import Juvix.Builtin.V1.Fixity open public; ``` `Juvix.Builtin.V1.Bool` is required to support backend primitive integers `Juvix.Builtin.V1.Trait.Natural` is required to support numeric literals. ## The `PackageDescription.V2` module This PR also adds a new [`PackageDescription.V2`](ab4376cf9e/include/package/PackageDescription/V2.juvix
) type that uses the `package-base`. This is to avoid breaking existing Package files. The Packages files in the repo (except those that test `PackageDescription.V1`) have also been updated. ## Updating the stdlib The standard library will be updated to use `Juvix.Builtin.*` modules in a subsequent PR. * Part of https://github.com/anoma/juvix/issues/2511
7 lines
82 B
YAML
7 lines
82 B
YAML
dependencies:
|
|
- git:
|
|
url: url
|
|
name: name
|
|
ref: ref2
|
|
dependencies: []
|