Compare commits

..

No commits in common. "b9d79a83bb05ff1de61c50141ef1539c596d2b69" and "780a61e3e891db0a29c1f33b3d02a0b39fbba2a0" have entirely different histories.

12 changed files with 54 additions and 62 deletions

View File

@ -1,6 +1,6 @@
# Changelog # Changelog
## v1.0.16-alpha - 2023-08-24 ## v1.0.16-alpha - 2023-08-22
### Removed ### Removed

View File

@ -71,36 +71,14 @@
Want to give some financial support? Have a look at the ways to sponsor below for more details. Want to give some financial support? Have a look at the ways to sponsor below for more details.
- [rvcas](https://github.com/sponsors/rvcas) - [rvcas](https://github.com/sponsors/rvcas/)
- [microproofs](https://github.com/sponsors/microproofs) - [microproofs](https://github.com/sponsors/microproofs/)
- [ktorz](https://github.com/sponsors/KtorZ)
Want to support with crypto? Want to support with crypto?
- Our Ada address is `addr1q83nlzwu4zjeu927m8t24xa68upgmwgt5w29ww5ka695hc5rez2r4q7gcvj7z0ma6d88w3j220szsqk05sn43ghcsn4szvuklq` - Our Ada address is `addr1q83nlzwu4zjeu927m8t24xa68upgmwgt5w29ww5ka695hc5rez2r4q7gcvj7z0ma6d88w3j220szsqk05sn43ghcsn4szvuklq`
- Our Ada handle is `$aiken_lang` - Our Ada handle is `$aiken_lang`
## Releasing
To be able to create a release you need to be on the [maintainers](https://github.com/orgs/aiken-lang/teams/maintainers) team.
This means that only core team members can create releases. We have a
[github action](https://github.com/aiken-lang/aiken/blob/main/.github/workflows/release.yml) for creating the binaries and a github release.
The process follows these steps:
1. `cargo release --execute`
2. After a release is created by the github action fill in the release notes. Try to tag contributors so that they show up in the release.
3. Screenshot the result of `aikup` and post on twitter saying "We've just released vx.x.x". [example](https://twitter.com/aiken_eng/status/1693084816931987930?s=20)
> `cargo release` takes arguments and flags to tell it how to bump the version number. Examples include `cargo release 1.0.16-alpha` and `cargo release major`.
>
> The root `Cargo.toml` in the repo contains this configuration for `cargo release`:
>
> ```toml
> [workspace.metadata.release]
> shared-version = true
> tag-name = "v{{version}}"
> ```
## About Issues ## About Issues
### :bug: How To Report A Bug ### :bug: How To Report A Bug

10
Cargo.lock generated vendored
View File

@ -81,7 +81,7 @@ dependencies = [
[[package]] [[package]]
name = "aiken-lang" name = "aiken-lang"
version = "1.0.16-alpha" version = "1.0.15-alpha"
dependencies = [ dependencies = [
"chumsky", "chumsky",
"hex", "hex",
@ -102,7 +102,7 @@ dependencies = [
[[package]] [[package]]
name = "aiken-lsp" name = "aiken-lsp"
version = "1.0.16-alpha" version = "1.0.15-alpha"
dependencies = [ dependencies = [
"aiken-lang", "aiken-lang",
"aiken-project", "aiken-project",
@ -123,7 +123,7 @@ dependencies = [
[[package]] [[package]]
name = "aiken-project" name = "aiken-project"
version = "1.0.16-alpha" version = "1.0.15-alpha"
dependencies = [ dependencies = [
"aiken-lang", "aiken-lang",
"askama", "askama",
@ -858,7 +858,7 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80"
[[package]] [[package]]
name = "flat-rs" name = "flat-rs"
version = "1.0.16-alpha" version = "1.0.15-alpha"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"proptest", "proptest",
@ -2992,7 +2992,7 @@ checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
[[package]] [[package]]
name = "uplc" name = "uplc"
version = "1.0.16-alpha" version = "1.0.15-alpha"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"cryptoxide", "cryptoxide",

View File

@ -1,6 +1,5 @@
[workspace] [workspace]
members = ["crates/*"] members = ["crates/*"]
resolver = "2"
[profile.release] [profile.release]
strip = true strip = true

View File

@ -1,7 +1,7 @@
[package] [package]
name = "aiken-lang" name = "aiken-lang"
description = "The Aiken compiler" description = "The Aiken compiler"
version = "1.0.16-alpha" version = "1.0.15-alpha"
edition = "2021" edition = "2021"
repository = "https://github.com/aiken-lang/aiken" repository = "https://github.com/aiken-lang/aiken"
homepage = "https://github.com/aiken-lang/aiken" homepage = "https://github.com/aiken-lang/aiken"
@ -24,7 +24,7 @@ owo-colors = { version = "3.5.0", features = ["supports-colors"] }
strum = "0.24.1" strum = "0.24.1"
thiserror = "1.0.39" thiserror = "1.0.39"
vec1 = "1.10.1" vec1 = "1.10.1"
uplc = { path = '../uplc', version = "1.0.16-alpha" } uplc = { path = '../uplc', version = "1.0.15-alpha" }
num-bigint = "0.4.3" num-bigint = "0.4.3"
[target.'cfg(not(target_family="wasm"))'.dependencies] [target.'cfg(not(target_family="wasm"))'.dependencies]

View File

@ -1,6 +1,6 @@
[package] [package]
name = "aiken-lsp" name = "aiken-lsp"
version = "1.0.16-alpha" version = "1.0.15-alpha"
edition = "2021" edition = "2021"
description = "Cardano smart contract language and toolchain" description = "Cardano smart contract language and toolchain"
repository = "https://github.com/aiken-lang/aiken" repository = "https://github.com/aiken-lang/aiken"
@ -24,5 +24,5 @@ tracing = "0.1.37"
url = "2.3.1" url = "2.3.1"
urlencoding = "2.1.2" urlencoding = "2.1.2"
aiken-lang = { path = '../aiken-lang', version = "1.0.16-alpha" } aiken-lang = { path = '../aiken-lang', version = "1.0.15-alpha" }
aiken-project = { path = '../aiken-project', version = "1.0.16-alpha" } aiken-project = { path = '../aiken-project', version = "1.0.15-alpha" }

View File

@ -1,15 +1,15 @@
[package] [package]
name = "aiken-project" name = "aiken-project"
description = "Aiken project utilities" description = "Aiken project utilities"
version = "1.0.16-alpha" version = "1.0.15-alpha"
edition = "2021" edition = "2021"
repository = "https://github.com/aiken-lang/aiken/crates/project" repository = "https://github.com/aiken-lang/aiken/crates/project"
homepage = "https://github.com/aiken-lang/aiken" homepage = "https://github.com/aiken-lang/aiken"
license = "Apache-2.0" license = "Apache-2.0"
authors = [ authors = [
"Lucas Rosa <x@rvcas.dev>", "Lucas Rosa <x@rvcas.dev>",
"Kasey White <kwhitemsg@gmail.com>", "Kasey White <kwhitemsg@gmail.com>",
"KtorZ <matthias.benkort@gmail.com>", "KtorZ <matthias.benkort@gmail.com>",
] ]
rust-version = "1.66.1" rust-version = "1.66.1"
@ -42,8 +42,9 @@ toml = "0.7.2"
walkdir = "2.3.2" walkdir = "2.3.2"
zip = "0.6.4" zip = "0.6.4"
aiken-lang = { path = "../aiken-lang", version = "1.0.16-alpha" } aiken-lang = { path = "../aiken-lang", version = "1.0.15-alpha" }
uplc = { path = '../uplc', version = "1.0.16-alpha" } uplc = { path = '../uplc', version = "1.0.15-alpha" }
[dev-dependencies] [dev-dependencies]
proptest = "1.1.0" proptest = "1.1.0"

View File

@ -6,22 +6,13 @@ edition = "2021"
repository = "https://github.com/aiken-lang/aiken" repository = "https://github.com/aiken-lang/aiken"
homepage = "https://github.com/aiken-lang/aiken" homepage = "https://github.com/aiken-lang/aiken"
license = "Apache-2.0" license = "Apache-2.0"
authors = [ authors = ["Lucas Rosa <x@rvcas.dev>", "Kasey White <kwhitemsg@gmail.com>", "KtorZ <matthias.benkort@gmail.com>"]
"Lucas Rosa <x@rvcas.dev>",
"Kasey White <kwhitemsg@gmail.com>",
"KtorZ <matthias.benkort@gmail.com>",
]
rust-version = "1.66.1" rust-version = "1.66.1"
build = "build.rs" build = "build.rs"
[dependencies] [dependencies]
anyhow = "1.0.69" anyhow = "1.0.69"
clap = { version = "4.1.8", features = [ clap = { version = "4.1.8", features = ["derive", "wrap_help", "unicode", "string"] }
"derive",
"wrap_help",
"unicode",
"string",
] }
hex = "0.4.3" hex = "0.4.3"
ignore = "0.4.20" ignore = "0.4.20"
indoc = "2.0" indoc = "2.0"
@ -36,10 +27,10 @@ regex = "1.7.1"
serde_json = "1.0.94" serde_json = "1.0.94"
thiserror = "1.0.39" thiserror = "1.0.39"
aiken-lang = { path = "../aiken-lang", version = "1.0.16-alpha" } aiken-lang = { path = "../aiken-lang", version = "1.0.15-alpha" }
aiken-lsp = { path = "../aiken-lsp", version = "1.0.16-alpha" } aiken-lsp = { path = "../aiken-lsp", version = "1.0.15-alpha" }
aiken-project = { path = '../aiken-project', version = "1.0.16-alpha" } aiken-project = { path = '../aiken-project', version = "1.0.15-alpha" }
uplc = { path = '../uplc', version = "1.0.16-alpha" } uplc = { path = '../uplc', version = "1.0.15-alpha" }
clap_complete = "4.3.2" clap_complete = "4.3.2"
inquire = "0.6.2" inquire = "0.6.2"
num-bigint = "0.4.3" num-bigint = "0.4.3"

View File

@ -98,12 +98,12 @@ fn print_success_message(package_name: &PackageName) {
fn create_lib(root: &Path, package_name: &PackageName) -> miette::Result<()> { fn create_lib(root: &Path, package_name: &PackageName) -> miette::Result<()> {
let lib = root.join("lib").join(&package_name.repo); let lib = root.join("lib").join(&package_name.repo);
fs::create_dir_all(lib).into_diagnostic() fs::create_dir_all(&lib).into_diagnostic()
} }
fn create_validators(root: &Path) -> miette::Result<()> { fn create_validators(root: &Path) -> miette::Result<()> {
let validators = root.join("validators"); let validators = root.join("validators");
fs::create_dir_all(validators).into_diagnostic() fs::create_dir_all(&validators).into_diagnostic()
} }
fn readme(root: &Path, project_name: &str) -> miette::Result<()> { fn readme(root: &Path, project_name: &str) -> miette::Result<()> {

View File

@ -1,7 +1,7 @@
[package] [package]
name = "flat-rs" name = "flat-rs"
description = "Flat codec" description = "Flat codec"
version = "1.0.16-alpha" version = "1.0.15-alpha"
edition = "2021" edition = "2021"
repository = "https://github.com/aiken-lang/aiken/crates/flat" repository = "https://github.com/aiken-lang/aiken/crates/flat"
homepage = "https://github.com/aiken-lang/aiken" homepage = "https://github.com/aiken-lang/aiken"

View File

@ -1,7 +1,7 @@
[package] [package]
name = "uplc" name = "uplc"
description = "Utilities for working with Untyped Plutus Core" description = "Utilities for working with Untyped Plutus Core"
version = "1.0.16-alpha" version = "1.0.15-alpha"
edition = "2021" edition = "2021"
repository = "https://github.com/aiken-lang/aiken/crates/uplc" repository = "https://github.com/aiken-lang/aiken/crates/uplc"
homepage = "https://github.com/aiken-lang/aiken" homepage = "https://github.com/aiken-lang/aiken"
@ -33,7 +33,7 @@ serde_json = "1.0.94"
strum = "0.24.1" strum = "0.24.1"
strum_macros = "0.24.3" strum_macros = "0.24.3"
thiserror = "1.0.39" thiserror = "1.0.39"
flat-rs = { path = "../flat-rs", version = "1.0.16-alpha" } flat-rs = { path = "../flat-rs", version = "1.0.15-alpha" }
[target.'cfg(not(target_family="wasm"))'.dependencies] [target.'cfg(not(target_family="wasm"))'.dependencies]
secp256k1 = { version = "0.26.0" } secp256k1 = { version = "0.26.0" }

View File

@ -378,4 +378,27 @@ impl Term<Name> {
.lambda(CONSTR_GET_FIELD), .lambda(CONSTR_GET_FIELD),
) )
} }
pub fn assert_on_list(self) -> Self {
self.lambda(EXPECT_ON_LIST)
.apply(Term::var(EXPECT_ON_LIST).apply(Term::var(EXPECT_ON_LIST)))
.lambda(EXPECT_ON_LIST)
.apply(
Term::var("__list_to_check")
.delayed_choose_list(
Term::unit(),
Term::var("__check_with")
.apply(Term::head_list().apply(Term::var("__list_to_check")))
.choose_unit(
Term::var(EXPECT_ON_LIST)
.apply(Term::var(EXPECT_ON_LIST))
.apply(Term::tail_list().apply(Term::var("__list_to_check")))
.apply(Term::var("__check_with")),
),
)
.lambda("__check_with")
.lambda("__list_to_check")
.lambda(EXPECT_ON_LIST),
)
}
} }