From 5a3ed0c41ef39732738cd69e0e8fed34cf89d4a9 Mon Sep 17 00:00:00 2001 From: sanjin Date: Fri, 22 May 2026 19:27:39 +0200 Subject: [PATCH] Release 1.0.0-beta.9 collection generic reservation --- ...IAS_UNIFICATION_AND_GENERIC_RESERVATION.md | 62 ++++ .llm/ROADMAP_TO_STABLE.md | 4 +- .llm/reviews/BETA_9_RELEASE_REVIEW.md | 50 +++ README.md | 30 +- compiler/Cargo.lock | 2 +- compiler/Cargo.toml | 2 +- compiler/src/check.rs | 35 +- compiler/src/formatter.rs | 211 +++++++++++ compiler/src/lower.rs | 340 ++++++++++++++---- compiler/tests/diagnostics_contract.rs | 63 +++- compiler/tests/formatter.rs | 97 +++++ compiler/tests/project_mode.rs | 35 ++ compiler/tests/promotion_gate.rs | 6 + compiler/tests/result_based_host_errors.rs | 2 +- compiler/tests/result_helpers_alpha.rs | 2 +- docs/POST_BETA_ROADMAP.md | 26 +- docs/compiler/RELEASE_NOTES.md | 35 +- docs/compiler/ROADMAP.md | 35 +- docs/language/RELEASE_NOTES.md | 39 +- docs/language/ROADMAP.md | 18 +- docs/language/SPEC-v1.md | 40 ++- docs/language/STANDARD_RUNTIME.md | 33 +- docs/language/STDLIB_API.md | 2 +- docs/language/examples/README.md | 2 + docs/papers/GLAGOL_COMPILER_MANIFEST.pdf | Bin 73657 -> 73657 bytes docs/papers/GLAGOL_WHITEPAPER.md | 37 +- docs/papers/GLAGOL_WHITEPAPER.pdf | Bin 384308 -> 387361 bytes docs/papers/SLOVO_MANIFEST.pdf | Bin 161096 -> 161096 bytes docs/papers/SLOVO_WHITEPAPER.md | 43 ++- docs/papers/SLOVO_WHITEPAPER.pdf | Bin 440973 -> 444038 bytes .../std-layout-local-option/src/option.slo | 126 ++++--- .../std-layout-local-result/src/result.slo | 140 +++++--- .../src/vec_bool.slo | 88 ++--- .../std-layout-local-vec_f64/src/vec_f64.slo | 88 ++--- .../std-layout-local-vec_i32/src/option.slo | 6 +- .../std-layout-local-vec_i32/src/vec_i32.slo | 94 ++--- .../std-layout-local-vec_i64/src/vec_i64.slo | 114 +++--- .../src/vec_string.slo | 88 ++--- lib/std/option.slo | 126 ++++--- lib/std/result.slo | 140 +++++--- lib/std/vec_bool.slo | 88 ++--- lib/std/vec_f64.slo | 88 ++--- lib/std/vec_i32.slo | 94 ++--- lib/std/vec_i64.slo | 80 +++-- lib/std/vec_string.slo | 88 ++--- tests/std-result-map-unsupported.diag | 8 +- tests/std-vec-empty-generic-unsupported.diag | 15 + tests/unsupported-generic-function.diag | 15 + tests/unsupported-generic-type-alias.diag | 15 + tests/unsupported-generic-type-parameter.diag | 15 + tests/unsupported-generic-vec-type.diag | 7 +- tests/unsupported-map-type.diag | 15 + tests/unsupported-set-type.diag | 15 + tests/unsupported-type-alias-target.diag | 10 +- 54 files changed, 1972 insertions(+), 842 deletions(-) create mode 100644 .llm/BETA_9_COLLECTION_ALIAS_UNIFICATION_AND_GENERIC_RESERVATION.md create mode 100644 .llm/reviews/BETA_9_RELEASE_REVIEW.md create mode 100644 tests/std-vec-empty-generic-unsupported.diag create mode 100644 tests/unsupported-generic-function.diag create mode 100644 tests/unsupported-generic-type-alias.diag create mode 100644 tests/unsupported-generic-type-parameter.diag create mode 100644 tests/unsupported-map-type.diag create mode 100644 tests/unsupported-set-type.diag diff --git a/.llm/BETA_9_COLLECTION_ALIAS_UNIFICATION_AND_GENERIC_RESERVATION.md b/.llm/BETA_9_COLLECTION_ALIAS_UNIFICATION_AND_GENERIC_RESERVATION.md new file mode 100644 index 0000000..ab2999c --- /dev/null +++ b/.llm/BETA_9_COLLECTION_ALIAS_UNIFICATION_AND_GENERIC_RESERVATION.md @@ -0,0 +1,62 @@ +# 1.0.0-beta.9 Collection Alias Unification And Generic Reservation + +Status: release scope for `1.0.0-beta.9`. + +`1.0.0-beta.9` is a Slovo stdlib/docs slice on top of the beta.8 concrete +alias foundation. It applies transparent aliases to the repeated concrete +collection and value-family facades without changing the public helper surface +or executable semantics. + +## Source Surface + +Current source-authored facades may declare module-local aliases such as: + +```slo +(type VecBool (vec bool)) +(type OptionString (option string)) +(type ResultU64 (result u64 i32)) +``` + +The aliases are used only inside their defining module. Exported helper names +and helper meanings remain concrete, and importers observe normalized concrete +types. + +## Applied Scope + +- `lib/std/vec_i32.slo` +- `lib/std/vec_i64.slo` +- `lib/std/vec_f64.slo` +- `lib/std/vec_bool.slo` +- `lib/std/vec_string.slo` +- `lib/std/option.slo` +- `lib/std/result.slo` + +The vector facades use one local alias for the concrete vector family. The +option and result facades use local aliases for the current concrete option and +result families. + +## Contract + +- Current vectors remain concrete families: `(vec i32)`, `(vec i64)`, + `(vec f64)`, `(vec bool)`, and `(vec string)`. +- Current options and results remain concrete families over the explicitly + promoted payload shapes. +- Aliases are transparent, module-local, and erased before typed-core lowering, + backend layout, ABI decisions, runtime behavior, and cross-module signatures. +- Public helper names, exports, constructors, runtime calls, and behavior are + preserved. +- Public API documentation must not turn these local aliases into imported + public type names; the semantic contract is the normalized concrete target + type. + +## Deferrals + +This release does not add executable generics, generic aliases, parameterized +aliases, maps, sets, traits, inference, monomorphization, iterators, new +compiler-known runtime names, stable ABI/layout promises, or a stable +standard-library API freeze. + +The generic/map/set direction is reserved through diagnostics and design +language only. Future work must define syntax, typed-core representation, +lowering, conformance gates, compatibility policy, and stdlib migration rules +before any executable generic collection surface is promoted. diff --git a/.llm/ROADMAP_TO_STABLE.md b/.llm/ROADMAP_TO_STABLE.md index 3599e86..e542422 100644 --- a/.llm/ROADMAP_TO_STABLE.md +++ b/.llm/ROADMAP_TO_STABLE.md @@ -35,7 +35,9 @@ implementation scope. option/result, array, JSON, and resource-handle signatures can be named without changing runtime representation (released in `1.0.0-beta.8`). 9. Design generics and collection unification from real stdlib duplication - pressure. + pressure by first applying concrete aliases to existing collection/value + facades and reserving generic/map/set directions without executable + semantics (released in `1.0.0-beta.9`). 10. Add editor-facing diagnostics, watch mode, and generated documentation improvements. 11. Freeze migration/deprecation policy and cut stable only after beta feedback. diff --git a/.llm/reviews/BETA_9_RELEASE_REVIEW.md b/.llm/reviews/BETA_9_RELEASE_REVIEW.md new file mode 100644 index 0000000..98a18c2 --- /dev/null +++ b/.llm/reviews/BETA_9_RELEASE_REVIEW.md @@ -0,0 +1,50 @@ +# 1.0.0-beta.9 Release Review + +Status: ready for publication after the controller release gate. + +## Verdict + +No blocking issues found after integrating the Slovo stdlib/docs worker and +the Glagol compiler/test worker. + +## Scope Checked + +- `lib/std/vec_i32.slo`, `lib/std/vec_i64.slo`, `lib/std/vec_f64.slo`, + `lib/std/vec_bool.slo`, `lib/std/vec_string.slo`, `lib/std/option.slo`, and + `lib/std/result.slo` now use module-local concrete aliases without exporting + alias names. +- Compiler diagnostics reserve generic functions, parameterized aliases, + uppercase single-letter generic type parameters in unsupported positions, + map/set type forms, and future generic stdlib calls. +- Formatter diagnostics mirror the compiler rejection path for reserved + generic/map/set syntax. +- Docs and whitepapers describe beta9 as alias-backed collection cleanup and + diagnostic reservation only. They do not claim executable generics, maps, + sets, traits, inference, monomorphization, iterators, stable ABI/layout, or a + stable stdlib API freeze. + +## Verification + +- `cargo fmt --check` +- `cargo test --test diagnostics_contract current_negative_cases_match_machine_diagnostic_snapshots` +- `cargo test --test formatter formatter_re` +- `cargo test --test project_mode` +- `cargo test --test concrete_type_aliases_beta` +- `cargo test --test promotion_gate` +- `cargo test standard_` +- `./scripts/render-stdlib-api-doc.sh` +- `./scripts/render-doc-pdfs.sh` +- `git diff --check` +- `./scripts/release-gate.sh` + +Final gate result: passed. The release gate completed docs, generated stdlib +API catalog, formatter, default tests, ignored promotion checks, binary smoke, +and LLVM smoke checks. + +## Residual Risk + +Beta9 intentionally reserves generics without implementing them. Future +generic work still needs typed-core representation, monomorphization policy, +project/import semantics, formatter stability, stdlib migration rules, and +explicit compatibility gates before any executable generic collection surface +is promoted. diff --git a/README.md b/README.md index 4c4c061..9519f31 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ This repository is the canonical public monorepo for the language design, standard library source, compiler, runtime, examples, benchmarks, and technical documents. -Current release: `1.0.0-beta.8`. +Current release: `1.0.0-beta.9`. ## Repository Layout @@ -24,15 +24,16 @@ scripts/ local release and document tooling ## Beta Scope -`1.0.0-beta.8` keeps the `1.0.0-beta` language baseline, includes the +`1.0.0-beta.9` keeps the `1.0.0-beta` language baseline, includes the `1.0.0-beta.1` tooling/install hardening slice, the `1.0.0-beta.2` runtime/resource foundation bundle, the `1.0.0-beta.3` standard-library stabilization bundle, the `1.0.0-beta.4` language-usability diagnostics bundle, the `1.0.0-beta.5` local package/workspace discipline bundle, and the `1.0.0-beta.6` loopback networking foundation, plus the `1.0.0-beta.7` serialization/data-interchange foundation and the `1.0.0-beta.8` concrete type -alias foundation. The language baseline supports practical local command-line, -file, and loopback-network programs with: +alias foundation, and the `1.0.0-beta.9` collection alias unification and +generic reservation slice. The language baseline supports practical local +command-line, file, and loopback-network programs with: - modules, explicit imports, packages, and local workspaces - `new`, `check`, `fmt`, `test`, `doc`, and `build` @@ -50,10 +51,11 @@ Still deferred before stable: generics, maps/sets, broad package registry semantics, DNS/TLS/async networking, LSP/watch/debug-adapter guarantees, stable ABI and layout, and a stable standard-library compatibility freeze. -The next likely language slice is `1.0.0-beta.9`, focused on the first -generics and collection-unification design pressure. It should build on the -alias foundation without adding maps/sets or standard-library API freeze claims -until the contract and gates are explicit. +The next likely language slice after `1.0.0-beta.9` should continue from the +reserved generic and collection diagnostics without claiming executable +generics, maps, sets, traits, inference, monomorphization, iterators, ABI +stability, or a standard-library API freeze until the contract and gates are +explicit. ## Build And Test @@ -216,6 +218,18 @@ use aliases see the resolved concrete target type. Alias exports, imports, re-exports, generic aliases, parameterized aliases, maps/sets, and new compiler-known runtime names remain out of scope. +## 1.0.0-beta.9 Collection Alias Unification And Generic Reservation + +The `1.0.0-beta.9` release applies beta.8 concrete aliases inside the current +source-authored collection/value-family facades. The public helper names and +runtime behavior remain concrete: current vectors, options, and results are +still concrete families, and the local aliases are erased before lowering. + +This release also reserves the generic/map/set direction through diagnostics +and documentation only. It does not implement executable generics, maps, sets, +traits, inference, monomorphization, iterators, stable ABI/layout promises, or +a stable standard-library API freeze. + ## Documentation - [Language Manifest](docs/language/MANIFEST.md) diff --git a/compiler/Cargo.lock b/compiler/Cargo.lock index 65fea67..c49dc87 100644 --- a/compiler/Cargo.lock +++ b/compiler/Cargo.lock @@ -4,4 +4,4 @@ version = 3 [[package]] name = "glagol" -version = "1.0.0-beta.8" +version = "1.0.0-beta.9" diff --git a/compiler/Cargo.toml b/compiler/Cargo.toml index c274425..bdad071 100644 --- a/compiler/Cargo.toml +++ b/compiler/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "glagol" -version = "1.0.0-beta.8" +version = "1.0.0-beta.9" edition = "2021" description = "Glagol, the first compiler for the Slovo language" license = "MIT OR Apache-2.0" diff --git a/compiler/src/check.rs b/compiler/src/check.rs index 0eca950..be1e5e1 100644 --- a/compiler/src/check.rs +++ b/compiler/src/check.rs @@ -847,6 +847,10 @@ fn resolve_alias_target_type( Some(Type::Named(name.clone())) } Type::Named(name) => { + if is_generic_type_parameter_name(name) { + errors.push(unsupported_generic_type_parameter(file, span, name)); + return None; + } errors.push( Diagnostic::new( file, @@ -1009,7 +1013,7 @@ fn unsupported_type_alias_target(file: &str, span: Span, ty: &Type) -> Diagnosti Diagnostic::new( file, "UnsupportedTypeAliasTarget", - "type alias target type is not supported in beta.8", + "type alias target type is not supported in the current beta", ) .with_span(span) .expected("i32, i64, u32, u64, f64, bool, string, known struct, known enum, supported array, supported option, supported result, or supported vec") @@ -2653,6 +2657,10 @@ fn check_local_type( } fn unknown_named_type(file: &str, span: Span, name: &str, context: &str) -> Diagnostic { + if is_generic_type_parameter_name(name) { + return unsupported_generic_type_parameter(file, span, name); + } + Diagnostic::new( file, "UnknownStructType", @@ -5503,6 +5511,12 @@ fn check_vector_type(file: &str, ty: &Type, span: Span) -> Result<(), Diagnostic return Ok(()); }; + if let Type::Named(name) = &**inner { + if is_generic_type_parameter_name(name) { + return Err(unsupported_generic_type_parameter(file, span, name)); + } + } + if **inner != Type::I32 && **inner != Type::I64 && **inner != Type::F64 @@ -5523,6 +5537,25 @@ fn check_vector_type(file: &str, ty: &Type, span: Span) -> Result<(), Diagnostic Ok(()) } +fn unsupported_generic_type_parameter(file: &str, span: Span, name: &str) -> Diagnostic { + Diagnostic::new( + file, + "UnsupportedGenericTypeParameter", + format!( + "generic type parameter `{}` is reserved but not supported in beta.9", + name + ), + ) + .with_span(span) + .expected("concrete supported type") + .found(name.to_string()) + .hint("use a concrete promoted type such as `i32`, `string`, or `(vec i32)`") +} + +fn is_generic_type_parameter_name(name: &str) -> bool { + name.len() == 1 && name.bytes().all(|byte| byte.is_ascii_uppercase()) +} + fn array_index_range(len: usize) -> String { if len == 1 { "0".to_string() diff --git a/compiler/src/formatter.rs b/compiler/src/formatter.rs index 712bf3e..81956e4 100644 --- a/compiler/src/formatter.rs +++ b/compiler/src/formatter.rs @@ -267,6 +267,14 @@ impl Formatter<'_> { return; }; + if matches!(items.get(2).and_then(list_head), Some("type_params")) { + self.errors.push(unsupported_generic_type_alias( + self.file, + items.get(2).map_or(form.span, |item| item.span), + )); + return; + } + if items.len() != 3 { self.errors.push( Diagnostic::new( @@ -657,6 +665,12 @@ impl Formatter<'_> { return; } + if matches!(items.get(2).and_then(list_head), Some("type_params")) { + self.errors + .push(unsupported_generic_function(self.file, items[2].span)); + return; + } + let Some(name) = expect_ident(&items[1]) else { self.errors.push( Diagnostic::new( @@ -908,6 +922,8 @@ impl Formatter<'_> { || self.type_alias_names.contains(name) { name.to_string() + } else if self.push_reserved_type_error(&pair[1]) { + continue; } else { self.errors.push( Diagnostic::new( @@ -932,6 +948,8 @@ impl Formatter<'_> { } else if let Some(text) = render_supported_vec_type(items, &self.type_alias_names) { text + } else if self.push_reserved_type_error(&pair[1]) { + continue; } else { self.errors.push( Diagnostic::new( @@ -1017,6 +1035,10 @@ impl Formatter<'_> { } } + if self.push_reserved_type_error(form) { + return None; + } + let Some(items) = expect_list(form) else { self.errors.push( Diagnostic::new( @@ -1046,6 +1068,10 @@ impl Formatter<'_> { return Some(text); } + if self.push_reserved_type_error(form) { + return None; + } + self.errors.push( Diagnostic::new( self.file, @@ -1067,6 +1093,10 @@ impl Formatter<'_> { return Some(text); } + if self.push_reserved_type_error(form) { + return None; + } + let Some(items) = expect_list(form) else { self.errors.push( Diagnostic::new( @@ -1097,6 +1127,10 @@ impl Formatter<'_> { return Some(text); } + if self.push_reserved_type_error(form) { + return None; + } + self.errors.push( Diagnostic::new( self.file, @@ -1281,6 +1315,14 @@ impl Formatter<'_> { Some(format!("({})", name)) } } + other if is_unsupported_generic_standard_library_call(other) => { + self.errors.push(unsupported_generic_standard_library_call( + self.file, + items[0].span, + other, + )); + None + } other if std_runtime::is_standard_path(other) => { self.errors .push(std_runtime::unsupported_standard_library_call( @@ -1448,6 +1490,10 @@ impl Formatter<'_> { } } + if self.push_reserved_type_error(form) { + return None; + } + let Some(items) = expect_list(form) else { self.errors.push( Diagnostic::new( @@ -1474,6 +1520,10 @@ impl Formatter<'_> { }); } + if self.push_reserved_type_error(form) { + return None; + } + if items.len() != 3 || !is_ident(&items[0], "array") { self.errors.push( Diagnostic::new( @@ -1492,6 +1542,9 @@ impl Formatter<'_> { &self.enum_names, &self.type_alias_names, ) else { + if self.push_reserved_type_error(&items[1]) { + return None; + } self.errors.push( Diagnostic::new( self.file, @@ -1559,6 +1612,10 @@ impl Formatter<'_> { } } + if self.push_reserved_type_error(form) { + return None; + } + let Some(items) = expect_list(form) else { self.errors.push( Diagnostic::new( @@ -1588,6 +1645,10 @@ impl Formatter<'_> { return Some(text); } + if self.push_reserved_type_error(form) { + return None; + } + self.errors.push( Diagnostic::new( self.file, @@ -2251,6 +2312,9 @@ impl Formatter<'_> { } let Some(payload_type) = render_payload_type_atom(&items[1], &self.type_alias_names) else { + if self.push_reserved_type_error(&items[1]) { + return None; + } self.errors.push( Diagnostic::new( self.file, @@ -2293,6 +2357,9 @@ impl Formatter<'_> { } let Some(ok_ty) = render_payload_type_atom(&items[1], &self.type_alias_names) else { + if self.push_reserved_type_error(&items[1]) { + return None; + } self.errors.push( Diagnostic::new( self.file, @@ -2304,6 +2371,9 @@ impl Formatter<'_> { return None; }; let Some(err_ty) = render_result_err_type_atom(&items[2], &self.type_alias_names) else { + if self.push_reserved_type_error(&items[2]) { + return None; + } self.errors.push( Diagnostic::new( self.file, @@ -2354,6 +2424,15 @@ impl Formatter<'_> { Some(output) } + fn push_reserved_type_error(&mut self, form: &SExpr) -> bool { + if let Some(diagnostic) = unsupported_reserved_type_diagnostic(self.file, form) { + self.errors.push(diagnostic); + true + } else { + false + } + } + fn write_indented_rendered(&mut self, indent: &str, rendered: &str) { push_indented(&mut self.output, indent, rendered); } @@ -2417,6 +2496,138 @@ struct RenderedMatchPattern<'a> { text: String, } +fn unsupported_reserved_type_diagnostic(file: &str, form: &SExpr) -> Option { + if let Some(name) = expect_ident(form) { + if is_generic_type_parameter_name(name) { + return Some(unsupported_generic_type_parameter(file, form.span, name)); + } + } + + let items = expect_list(form)?; + let head = items.first().and_then(expect_ident)?; + match head { + "map" => Some( + Diagnostic::new( + file, + "UnsupportedMapType", + "`map` types are reserved but not supported in beta.9", + ) + .with_span(form.span) + .expected("supported concrete type") + .found(render_type_form(form)) + .hint( + "use current concrete arrays, vectors, option/result, structs, enums, or scalars", + ), + ), + "set" => Some( + Diagnostic::new( + file, + "UnsupportedSetType", + "`set` types are reserved but not supported in beta.9", + ) + .with_span(form.span) + .expected("supported concrete type") + .found(render_type_form(form)) + .hint( + "use current concrete arrays, vectors, option/result, structs, enums, or scalars", + ), + ), + "vec" if items.len() != 2 => Some( + Diagnostic::new( + file, + "UnsupportedGenericTypeParameter", + "generic vector syntax is reserved but not supported in beta.9", + ) + .with_span(form.span) + .expected("(vec i32), (vec i64), (vec f64), (vec bool), or (vec string)") + .found(render_type_form(form)) + .hint("choose one current concrete vector family explicitly"), + ), + _ => items + .iter() + .find_map(|item| unsupported_reserved_type_diagnostic(file, item)), + } +} + +fn unsupported_generic_function(file: &str, span: Span) -> Diagnostic { + Diagnostic::new( + file, + "UnsupportedGenericFunction", + "generic function declarations are reserved but not supported in beta.9", + ) + .with_span(span) + .expected("(fn name ((arg ConcreteType) ...) -> ConcreteType body...)") + .found("(type_params ...)") + .hint("write a concrete function for each currently supported type family") +} + +fn unsupported_generic_type_alias(file: &str, span: Span) -> Diagnostic { + Diagnostic::new( + file, + "UnsupportedGenericTypeAlias", + "parameterized type aliases are reserved but not supported in beta.9", + ) + .with_span(span) + .expected("(type Alias ConcreteType)") + .found("(type_params ...)") + .hint("aliases remain transparent names for concrete supported target types") +} + +fn unsupported_generic_type_parameter(file: &str, span: Span, name: &str) -> Diagnostic { + Diagnostic::new( + file, + "UnsupportedGenericTypeParameter", + format!( + "generic type parameter `{}` is reserved but not supported in beta.9", + name + ), + ) + .with_span(span) + .expected("concrete supported type") + .found(name.to_string()) + .hint("use a concrete promoted type such as `i32`, `string`, or `(vec i32)`") +} + +fn unsupported_generic_standard_library_call(file: &str, span: Span, name: &str) -> Diagnostic { + Diagnostic::new( + file, + "UnsupportedGenericStandardLibraryCall", + format!( + "generic standard-library call `{}` is reserved but not supported in beta.9", + name + ), + ) + .with_span(span) + .expected("promoted concrete standard-library function") + .found(name.to_string()) + .hint("use current concrete families such as `std.vec.i32.empty`") +} + +fn is_unsupported_generic_standard_library_call(name: &str) -> bool { + matches!(name, "std.vec.empty" | "std.result.map") +} + +fn is_generic_type_parameter_name(name: &str) -> bool { + name.len() == 1 && name.bytes().all(|byte| byte.is_ascii_uppercase()) +} + +fn render_type_form(form: &SExpr) -> String { + match &form.kind { + SExprKind::Atom(Atom::Ident(name)) => name.clone(), + SExprKind::Atom(Atom::Int(value)) => value.to_string(), + SExprKind::Atom(Atom::I64(value)) => format!("{}i64", value), + SExprKind::Atom(Atom::U32(value)) => format!("{}u32", value), + SExprKind::Atom(Atom::U64(value)) => format!("{}u64", value), + SExprKind::Atom(Atom::Float(value)) => value.to_string(), + SExprKind::Atom(Atom::String(value)) => format!("{:?}", value), + SExprKind::Atom(Atom::Arrow) => "->".to_string(), + SExprKind::List(items) => { + let parts = items.iter().map(render_type_form).collect::>(); + format!("({})", parts.join(" ")) + } + } +} + fn collect_function_names(forms: &[SExpr]) -> HashSet { let mut names = HashSet::new(); for form in forms { diff --git a/compiler/src/lower.rs b/compiler/src/lower.rs index 43cba05..9daab13 100644 --- a/compiler/src/lower.rs +++ b/compiler/src/lower.rs @@ -623,6 +623,13 @@ fn lower_type_alias(file: &str, form: &SExpr) -> Result Result ty, None => { - errors.push( - Diagnostic::new( - file, - "InvalidTypeAliasTarget", - "type alias target type is invalid", - ) - .with_span(items[2].span) - .expected("concrete type"), - ); + errors.push(invalid_type_diagnostic( + file, + &items[2], + "InvalidTypeAliasTarget", + "type alias target type is invalid", + Some("concrete type"), + None, + )); Type::Unit } }; @@ -751,10 +757,14 @@ fn lower_struct(file: &str, form: &SExpr) -> Result> }; let Some(ty) = lower_type(&pair[1]) else { - errors.push( - Diagnostic::new(file, "InvalidStructFieldType", "invalid struct field type") - .with_span(pair[1].span), - ); + errors.push(invalid_type_diagnostic( + file, + &pair[1], + "InvalidStructFieldType", + "invalid struct field type", + None, + None, + )); continue; }; @@ -858,15 +868,14 @@ fn lower_enum(file: &str, form: &SExpr) -> Result> { }; let Some(payload_ty) = lower_type(&variant_items[1]) else { - errors.push( - Diagnostic::new( - file, - "InvalidEnumVariant", - "enum variant payload type is invalid", - ) - .with_span(variant_items[1].span) - .expected("i32"), - ); + errors.push(invalid_type_diagnostic( + file, + &variant_items[1], + "InvalidEnumVariant", + "enum variant payload type is invalid", + Some("i32"), + None, + )); continue; }; @@ -918,6 +927,10 @@ fn lower_function( .hint("expected `(fn name ((arg Type) ...) -> ReturnType body...)`")]); } + if matches!(items.get(2).and_then(list_head), Some("type_params")) { + return Err(vec![unsupported_generic_function(file, items[2].span)]); + } + let name = match expect_ident(&items[1]) { Some(name) => name.to_string(), None => { @@ -955,10 +968,14 @@ fn lower_function( } Some(ty) => ty, None => { - errors.push( - Diagnostic::new(file, "InvalidReturnType", "invalid return type") - .with_span(items[4].span), - ); + errors.push(invalid_type_diagnostic( + file, + &items[4], + "InvalidReturnType", + "invalid return type", + None, + None, + )); Type::Unit } }; @@ -1055,10 +1072,14 @@ fn lower_c_import(file: &str, form: &SExpr) -> Result ty, None => { - errors.push( - Diagnostic::new(file, "MalformedCImport", "invalid C import return type") - .with_span(items[4].span), - ); + errors.push(invalid_type_diagnostic( + file, + &items[4], + "MalformedCImport", + "invalid C import return type", + None, + None, + )); Type::Unit } }; @@ -1164,10 +1185,14 @@ fn lower_c_import_params(file: &str, form: &SExpr) -> Result, Vec Result, Vec> }; let Some(ty) = lower_type(&pair[1]) else { - errors.push( - Diagnostic::new(file, "InvalidParamType", "invalid parameter type") - .with_span(pair[1].span), - ); + errors.push(invalid_type_diagnostic( + file, + &pair[1], + "InvalidParamType", + "invalid parameter type", + None, + None, + )); continue; }; @@ -1400,6 +1429,8 @@ fn is_reserved_type_name(name: &str) -> bool { | "result" | "array" | "vec" + | "map" + | "set" ) } @@ -1710,6 +1741,9 @@ fn lower_expr( span: form.span, }) } + name if is_unsupported_generic_standard_library_call(name) => Err( + unsupported_generic_standard_library_call(file, items[0].span, name), + ), name => { let mut args = Vec::new(); for item in &items[1..] { @@ -2084,13 +2118,14 @@ fn lower_array_init( } let Some(elem_ty) = lower_type(&items[1]) else { - return Err(Diagnostic::new( + return Err(invalid_type_diagnostic( file, + &items[1], "InvalidArrayElementType", "array constructor element type is invalid", - ) - .with_span(items[1].span) - .hint("fixed arrays use direct scalar `i32`, `i64`, `f64`, `bool`, `string`, known enum, or known non-recursive struct elements")); + None, + Some("fixed arrays use direct scalar `i32`, `i64`, `f64`, `bool`, `string`, known enum, or known non-recursive struct elements"), + )); }; let mut elements = Vec::new(); @@ -2126,13 +2161,14 @@ fn lower_option_some( } let Some(payload_ty) = lower_type(&items[1]) else { - return Err(Diagnostic::new( + return Err(invalid_type_diagnostic( file, + &items[1], "InvalidOptionPayloadType", "option constructor payload type is invalid", - ) - .with_span(items[1].span) - .hint("first-pass options use `i32` payloads")); + None, + Some("first-pass options use `i32` payloads"), + )); }; Ok(Expr { @@ -2157,13 +2193,14 @@ fn lower_option_none(file: &str, form: &SExpr, items: &[SExpr]) -> Result, + fallback_expected: Option<&str>, + fallback_hint: Option<&str>, +) -> Diagnostic { + if let Some(diagnostic) = unsupported_reserved_type_diagnostic(file, form) { + return diagnostic; + } + + let mut diagnostic = + Diagnostic::new(file, fallback_code, fallback_message).with_span(form.span); + if let Some(expected) = fallback_expected { + diagnostic = diagnostic.expected(expected); + } + if let Some(hint) = fallback_hint { + diagnostic = diagnostic.hint(hint); + } + diagnostic +} + +fn unsupported_reserved_type_diagnostic(file: &str, form: &SExpr) -> Option { + if let Some(name) = expect_ident(form) { + if is_generic_type_parameter_name(name) { + return Some(unsupported_generic_type_parameter(file, form.span, name)); + } + } + + let items = expect_list(form)?; + let head = items.first().and_then(expect_ident)?; + match head { + "map" => Some( + Diagnostic::new( + file, + "UnsupportedMapType", + "`map` types are reserved but not supported in beta.9", + ) + .with_span(form.span) + .expected("supported concrete type") + .found(render_type_form(form)) + .hint( + "use current concrete arrays, vectors, option/result, structs, enums, or scalars", + ), + ), + "set" => Some( + Diagnostic::new( + file, + "UnsupportedSetType", + "`set` types are reserved but not supported in beta.9", + ) + .with_span(form.span) + .expected("supported concrete type") + .found(render_type_form(form)) + .hint( + "use current concrete arrays, vectors, option/result, structs, enums, or scalars", + ), + ), + "vec" if items.len() != 2 => Some( + Diagnostic::new( + file, + "UnsupportedGenericTypeParameter", + "generic vector syntax is reserved but not supported in beta.9", + ) + .with_span(form.span) + .expected("(vec i32), (vec i64), (vec f64), (vec bool), or (vec string)") + .found(render_type_form(form)) + .hint("choose one current concrete vector family explicitly"), + ), + _ => items + .iter() + .find_map(|item| unsupported_reserved_type_diagnostic(file, item)), + } +} + +fn unsupported_generic_function(file: &str, span: Span) -> Diagnostic { + Diagnostic::new( + file, + "UnsupportedGenericFunction", + "generic function declarations are reserved but not supported in beta.9", + ) + .with_span(span) + .expected("(fn name ((arg ConcreteType) ...) -> ConcreteType body...)") + .found("(type_params ...)") + .hint("write a concrete function for each currently supported type family") +} + +fn unsupported_generic_type_alias(file: &str, span: Span) -> Diagnostic { + Diagnostic::new( + file, + "UnsupportedGenericTypeAlias", + "parameterized type aliases are reserved but not supported in beta.9", + ) + .with_span(span) + .expected("(type Alias ConcreteType)") + .found("(type_params ...)") + .hint("aliases remain transparent names for concrete supported target types") +} + +fn unsupported_generic_type_parameter(file: &str, span: Span, name: &str) -> Diagnostic { + Diagnostic::new( + file, + "UnsupportedGenericTypeParameter", + format!( + "generic type parameter `{}` is reserved but not supported in beta.9", + name + ), + ) + .with_span(span) + .expected("concrete supported type") + .found(name.to_string()) + .hint("use a concrete promoted type such as `i32`, `string`, or `(vec i32)`") +} + +fn unsupported_generic_standard_library_call(file: &str, span: Span, name: &str) -> Diagnostic { + Diagnostic::new( + file, + "UnsupportedGenericStandardLibraryCall", + format!( + "generic standard-library call `{}` is reserved but not supported in beta.9", + name + ), + ) + .with_span(span) + .expected("promoted concrete standard-library function") + .found(name.to_string()) + .hint("use current concrete families such as `std.vec.i32.empty`") +} + +fn is_unsupported_generic_standard_library_call(name: &str) -> bool { + matches!(name, "std.vec.empty" | "std.result.map") +} + +fn is_generic_type_parameter_name(name: &str) -> bool { + name.len() == 1 && name.bytes().all(|byte| byte.is_ascii_uppercase()) +} + +fn render_type_form(form: &SExpr) -> String { + match &form.kind { + SExprKind::Atom(Atom::Ident(name)) => name.clone(), + SExprKind::Atom(Atom::Int(value)) => value.to_string(), + SExprKind::Atom(Atom::I64(value)) => format!("{}i64", value), + SExprKind::Atom(Atom::U32(value)) => format!("{}u32", value), + SExprKind::Atom(Atom::U64(value)) => format!("{}u64", value), + SExprKind::Atom(Atom::Float(value)) => value.to_string(), + SExprKind::Atom(Atom::String(value)) => format!("{:?}", value), + SExprKind::Atom(Atom::Arrow) => "->".to_string(), + SExprKind::List(items) => { + let parts = items.iter().map(render_type_form).collect::>(); + format!("({})", parts.join(" ")) + } + } +} + fn list_head(form: &SExpr) -> Option<&str> { let items = expect_list(form)?; let first = items.first()?; diff --git a/compiler/tests/diagnostics_contract.rs b/compiler/tests/diagnostics_contract.rs index 19d2659..5aab05a 100644 --- a/compiler/tests/diagnostics_contract.rs +++ b/compiler/tests/diagnostics_contract.rs @@ -175,6 +175,56 @@ const CASES: &[DiagnosticCase] = &[ "#, snapshot: "../tests/cyclic-type-alias.diag", }, + DiagnosticCase { + name: "unsupported-generic-function", + source: r#" +(module main) + +(fn id (type_params T) ((value T)) -> T + value) +"#, + snapshot: "../tests/unsupported-generic-function.diag", + }, + DiagnosticCase { + name: "unsupported-generic-type-alias", + source: r#" +(module main) + +(type VecOf (type_params T) (vec T)) +"#, + snapshot: "../tests/unsupported-generic-type-alias.diag", + }, + DiagnosticCase { + name: "unsupported-generic-type-parameter", + source: r#" +(module main) + +(fn main () -> i32 + (let xs (vec T) (std.vec.i32.empty)) + 0) +"#, + snapshot: "../tests/unsupported-generic-type-parameter.diag", + }, + DiagnosticCase { + name: "unsupported-map-type", + source: r#" +(module main) + +(fn main () -> (map string i32) + 0) +"#, + snapshot: "../tests/unsupported-map-type.diag", + }, + DiagnosticCase { + name: "unsupported-set-type", + source: r#" +(module main) + +(fn main () -> (set string) + 0) +"#, + snapshot: "../tests/unsupported-set-type.diag", + }, DiagnosticCase { name: "enum-empty", source: r#" @@ -2143,11 +2193,22 @@ const CASES: &[DiagnosticCase] = &[ (module main) (fn main () -> i32 - (std.result.map (ok string i32 "a")) + (std.result.map (ok string i32 "a") mapper) 0) "#, snapshot: "../tests/std-result-map-unsupported.diag", }, + DiagnosticCase { + name: "std-vec-empty-generic-unsupported", + source: r#" +(module main) + +(fn main () -> i32 + (std.vec.empty i32) + 0) +"#, + snapshot: "../tests/std-vec-empty-generic-unsupported.diag", + }, DiagnosticCase { name: "std-package-load-unsupported", source: r#" diff --git a/compiler/tests/formatter.rs b/compiler/tests/formatter.rs index a8bd604..4e51474 100644 --- a/compiler/tests/formatter.rs +++ b/compiler/tests/formatter.rs @@ -334,6 +334,103 @@ fn formatter_reports_unsupported_standard_library_calls() { } } +#[test] +fn formatter_rejects_reserved_generic_collection_syntax() { + let compiler = env!("CARGO_BIN_EXE_glagol"); + let cases = [ + ( + "generic-function", + r#" +(module main) + +(fn id (type_params T) ((value T)) -> T + value) +"#, + "UnsupportedGenericFunction", + ), + ( + "generic-type-alias", + r#" +(module main) + +(type VecOf (type_params T) (vec T)) +"#, + "UnsupportedGenericTypeAlias", + ), + ( + "generic-type-parameter", + r#" +(module main) + +(fn main () -> i32 + (let xs (vec T) (std.vec.i32.empty)) + 0) +"#, + "UnsupportedGenericTypeParameter", + ), + ( + "map-type", + r#" +(module main) + +(fn main () -> (map string i32) + 0) +"#, + "UnsupportedMapType", + ), + ( + "set-type", + r#" +(module main) + +(fn main () -> (set string) + 0) +"#, + "UnsupportedSetType", + ), + ( + "generic-std-call", + r#" +(module main) + +(fn main () -> i32 + (std.vec.empty i32) + 0) +"#, + "UnsupportedGenericStandardLibraryCall", + ), + ]; + + for (name, source, code) in cases { + let fixture = write_fixture(name, source); + let output = run_formatter(compiler, &fixture); + let stdout = String::from_utf8_lossy(&output.stdout); + let stderr = String::from_utf8_lossy(&output.stderr); + + assert!( + !output.status.success(), + "formatter unexpectedly accepted reserved generic syntax `{}`\nstdout:\n{}\nstderr:\n{}", + name, + stdout, + stderr, + ); + assert!( + stdout.is_empty(), + "formatter emitted stdout for reserved generic syntax `{}`\nstdout:\n{}\nstderr:\n{}", + name, + stdout, + stderr, + ); + assert!( + stderr.contains(code), + "formatter stderr did not contain {} for `{}`\nstderr:\n{}", + code, + name, + stderr, + ); + } +} + #[test] fn formatter_preserves_full_line_comments_inside_function_bodies() { let compiler = env!("CARGO_BIN_EXE_glagol"); diff --git a/compiler/tests/project_mode.rs b/compiler/tests/project_mode.rs index 6285822..3122ed3 100644 --- a/compiler/tests/project_mode.rs +++ b/compiler/tests/project_mode.rs @@ -1336,6 +1336,41 @@ fn type_aliases_are_local_across_project_visibility() { assert_stderr_contains("alias import duplicate", &duplicate_output, "DuplicateName"); } +#[test] +fn project_rejects_exported_generic_alias_and_function_before_visibility_leakage() { + let generic_function = write_project( + "generic-function-export", + &[( + "ids", + "(module ids (export id))\n\n(fn id (type_params T) ((value T)) -> T\n value)\n", + )], + "(module main)\n", + ); + let function_output = run_glagol(["check".as_ref(), generic_function.as_os_str()]); + assert_exit_code("generic function export", &function_output, 1); + assert_stderr_contains( + "generic function export", + &function_output, + "UnsupportedGenericFunction", + ); + + let generic_alias = write_project( + "generic-alias-export", + &[( + "types", + "(module types (export VecOf))\n\n(type VecOf (type_params T) (vec T))\n", + )], + "(module main)\n", + ); + let alias_output = run_glagol(["check".as_ref(), generic_alias.as_os_str()]); + assert_exit_code("generic alias export", &alias_output, 1); + assert_stderr_contains( + "generic alias export", + &alias_output, + "UnsupportedGenericTypeAlias", + ); +} + #[test] fn project_diagnostic_families_have_json_golden_coverage() { let duplicate = write_project( diff --git a/compiler/tests/promotion_gate.rs b/compiler/tests/promotion_gate.rs index 08364c1..b78a7e4 100644 --- a/compiler/tests/promotion_gate.rs +++ b/compiler/tests/promotion_gate.rs @@ -166,6 +166,7 @@ const DIAGNOSTIC_SNAPSHOTS: &[&str] = &[ "std-random-string-unsupported.diag", "std-random-uuid-unsupported.diag", "std-result-map-unsupported.diag", + "std-vec-empty-generic-unsupported.diag", "std-string-concat-arity.diag", "std-string-concat-helper-shadow.diag", "std-string-concat-result-context.diag", @@ -324,8 +325,13 @@ const DIAGNOSTIC_SNAPSHOTS: &[&str] = &[ "unsupported-array-print.diag", "unsupported-array-signature-element-type.diag", "unsupported-float-literal.diag", + "unsupported-generic-function.diag", + "unsupported-generic-type-alias.diag", + "unsupported-generic-type-parameter.diag", "unsupported-generic-vec-type.diag", + "unsupported-map-type.diag", "unsupported-signature-type.diag", + "unsupported-set-type.diag", "unsupported-result-parameter-payload-type.diag", "unsupported-result-return-payload-type.diag", "unsupported-unit-parameter-signature.diag", diff --git a/compiler/tests/result_based_host_errors.rs b/compiler/tests/result_based_host_errors.rs index 29666ff..da1933f 100644 --- a/compiler/tests/result_based_host_errors.rs +++ b/compiler/tests/result_based_host_errors.rs @@ -354,7 +354,7 @@ fn exp10_diagnostics_cover_promoted_and_deferred_boundaries() { (std.result.map (ok string i32 "a")) 0) "#, - "UnsupportedStandardLibraryCall", + "UnsupportedGenericStandardLibraryCall", ), ( "promoted-name-shadow", diff --git a/compiler/tests/result_helpers_alpha.rs b/compiler/tests/result_helpers_alpha.rs index 18e6d25..88769ed 100644 --- a/compiler/tests/result_helpers_alpha.rs +++ b/compiler/tests/result_helpers_alpha.rs @@ -94,7 +94,7 @@ fn result_helpers_alpha_rejects_deferred_and_misused_std_names() { (std.result.map (ok i32 i32 1)) 0) "#, - "UnsupportedStandardLibraryCall", + "UnsupportedGenericStandardLibraryCall", ), ( "unwrap-or-deferred", diff --git a/docs/POST_BETA_ROADMAP.md b/docs/POST_BETA_ROADMAP.md index a2caa27..82c3385 100644 --- a/docs/POST_BETA_ROADMAP.md +++ b/docs/POST_BETA_ROADMAP.md @@ -227,18 +227,28 @@ Why eighth: concrete aliases remove real noise from current stdlib and fixture code while deliberately postponing generic type parameters until the compiler and standard library have stronger design pressure. -### 9. Generics And Collection Unification +### 9. Collection Alias Unification And Generic Reservation -Goal: stop duplicating every helper across concrete vector, option, and result -families. +Goal: apply concrete aliases to the existing collection/value facades and +reserve the generic/map/set direction without changing executable semantics. Work: -- design generic function syntax and typed-core representation -- gate generic stdlib helpers behind conformance tests -- migrate repeated concrete helpers only after compatibility policy is written -- add generic arrays/vectors first, then maps and sets -- keep stable ABI/layout promises deferred until after real beta use +- use beta.8 concrete aliases sparingly inside current vector, option, and + result source facades to reduce repeated long concrete types +- preserve all public helper names, exports, imports, runtime calls, and + concrete cross-module signatures +- document that current vectors/options/results are still concrete families + and that local aliases erase before lowering +- reserve executable generics, maps, sets, traits, inference, + monomorphization, iterators, and ABI stability for later gated releases + +Released in `1.0.0-beta.9`: the concrete `std.vec_i32`, `std.vec_i64`, +`std.vec_f64`, `std.vec_bool`, `std.vec_string`, `std.option`, and +`std.result` facades now use module-local transparent aliases internally. +The exported helper surface remains concrete after alias normalization. +The release does not implement executable generics, maps, sets, traits, +inference, monomorphization, iterators, or stable ABI/layout promises. Why ninth: generics are important, but they should be introduced after the compiler, docs, tests, and stdlib have enough real pressure to validate the diff --git a/docs/compiler/RELEASE_NOTES.md b/docs/compiler/RELEASE_NOTES.md index 704161e..3bcda4d 100644 --- a/docs/compiler/RELEASE_NOTES.md +++ b/docs/compiler/RELEASE_NOTES.md @@ -10,12 +10,41 @@ integration/readiness release, not the first real beta. ## Unreleased -Next scoped Glagol work is expected to use the `1.0.0-beta.9` release line. -Generics and collection unification are the likely next design pressure, but -remain unreleased until their contracts and gates are explicit. +Next scoped Glagol work is expected to continue after the `1.0.0-beta.9` +reservation update. No unreleased compiler scope is committed here yet. +## 1.0.0-beta.9 + +Release label: `1.0.0-beta.9` + +Release date: 2026-05-22 + +Release state: compiler generic and collection reservation update + +### Summary + +Glagol `1.0.0-beta.9` reserves generic-shaped collection and stdlib syntax +with explicit diagnostics instead of letting future-looking forms degrade into +unknown-name or generic type errors. + +- Reject generic function declarations such as `(fn id (type_params T) ...)` + with `UnsupportedGenericFunction`. +- Reject parameterized aliases such as `(type VecOf (type_params T) ...)` with + `UnsupportedGenericTypeAlias`. +- Reject generic type-parameter use in concrete type positions, map types, + set types, and future generic stdlib calls with focused diagnostic codes. +- Mirror the rejection in `glagol fmt` and promotion-gate inventory. +- Keep runtime, backend, ABI, and current concrete collection behavior + unchanged. + +### Explicit Deferrals + +This release does not implement generics, generic aliases, generic stdlib +dispatch, generic vectors, maps, sets, iterators, collection unification, +stable collection ABI/layout, or new standard-library APIs. + ## 1.0.0-beta.8 Release label: `1.0.0-beta.8` diff --git a/docs/compiler/ROADMAP.md b/docs/compiler/ROADMAP.md index b1d26f0..4d640e5 100644 --- a/docs/compiler/ROADMAP.md +++ b/docs/compiler/ROADMAP.md @@ -22,24 +22,25 @@ general-purpose beta release. A Glagol feature is done only when it has parser/lowerer support, checker behavior, diagnostics for invalid forms, backend behavior or explicit unsupported diagnostics, and tests. -Current stage: `1.0.0-beta.8`, released on 2026-05-22 as the first post-beta -concrete type alias foundation update. It keeps the `1.0.0-beta` language/compiler -support baseline and includes the `1.0.0-beta.1` tooling hardening release, the -`1.0.0-beta.2` runtime/resource foundation release, the `1.0.0-beta.3` -standard-library stabilization release, the `1.0.0-beta.4` -language-usability diagnostics release, the `1.0.0-beta.5` package/workspace -discipline release, and the `1.0.0-beta.6` compiler-known `std.net` loopback -TCP runtime family with focused lowering, interpreter, diagnostics, -source-facade, promotion, and hosted smoke coverage, plus the `1.0.0-beta.7` -compiler-known `std.json.quote_string` runtime family with matching -source-facade, test-runner, hosted smoke, and benchmark-scaffold coverage, plus -top-level `(type Alias TargetType)` parsing, checking, formatting, lowering -inspection, project import normalization, and diagnostics coverage for concrete -aliases. +Current stage: `1.0.0-beta.9`, released on 2026-05-22 as a compiler +reservation update for generic-shaped collection and stdlib syntax. It keeps +the `1.0.0-beta` language/compiler support baseline and includes the +`1.0.0-beta.1` tooling hardening release, the `1.0.0-beta.2` runtime/resource +foundation release, the `1.0.0-beta.3` standard-library stabilization release, +the `1.0.0-beta.4` language-usability diagnostics release, the +`1.0.0-beta.5` package/workspace discipline release, the `1.0.0-beta.6` +compiler-known `std.net` loopback TCP runtime family with focused lowering, +interpreter, diagnostics, source-facade, promotion, and hosted smoke coverage, +the `1.0.0-beta.7` compiler-known `std.json.quote_string` runtime family with +matching source-facade, test-runner, hosted smoke, and benchmark-scaffold +coverage, the `1.0.0-beta.8` concrete type alias foundation update, and +focused diagnostics/formatter/project-mode gates for reserved generic +functions, parameterized aliases, generic type parameters, maps, sets, and +future generic stdlib calls. -Next stage target: `1.0.0-beta.9`, likely generics and collection -unification. The exact compiler-side contract must be frozen from the manifest -and roadmap before implementation. +Next stage target: post-`1.0.0-beta.9` collection/generic planning. Generic +vectors, maps, sets, generic stdlib dispatch, and collection unification remain +unimplemented until a later scoped contract promotes them explicitly. The final experimental precursor scope is `exp-125`. Its unsigned direct-value flow, parse/format runtime lanes, and matching staged stdlib helper breadth diff --git a/docs/language/RELEASE_NOTES.md b/docs/language/RELEASE_NOTES.md index 6669dbe..ce0ea5a 100644 --- a/docs/language/RELEASE_NOTES.md +++ b/docs/language/RELEASE_NOTES.md @@ -8,7 +8,7 @@ Historical `exp-*` releases listed here are experimental maturity milestones. The pushed tag `v2.0.0-beta.1` is historical. It is now documented as an experimental integration/readiness release, not as a beta maturity claim. -The current release is `1.0.0-beta.8`, published on 2026-05-22. It keeps the +The current release is `1.0.0-beta.9`, published on 2026-05-22. It keeps the `1.0.0-beta` language surface, includes the first post-beta tooling/install hardening bundle from `1.0.0-beta.1`, and adds the first runtime/resource foundation bundle from `1.0.0-beta.2` plus the first standard-library @@ -17,16 +17,43 @@ diagnostics bundle from `1.0.0-beta.4`, and the first local package/workspace discipline bundle from `1.0.0-beta.5`, plus the first loopback networking foundation bundle from `1.0.0-beta.6`, and the first serialization/data-interchange foundation bundle from `1.0.0-beta.7`, and the -first concrete type alias foundation from `1.0.0-beta.8`. +first concrete type alias foundation from `1.0.0-beta.8`, plus the first +collection alias unification and generic reservation slice from +`1.0.0-beta.9`. ## Unreleased -Next scoped Slovo-side work is expected to use the `1.0.0-beta.9` release -line. Generics and collection unification are the likely next design pressure, -but remain unreleased until their contracts and gates are explicit. - No unreleased language scope is committed here yet. +## 1.0.0-beta.9 + +Release label: `1.0.0-beta.9` + +Release name: Collection Alias Unification And Generic Reservation + +Release date: 2026-05-22 + +Status: released beta collection-alias documentation/source update on the +`1.0.0-beta` language baseline. + +`1.0.0-beta.9` applies beta.8 transparent concrete aliases sparingly inside +the source-authored collection and value-family facades: + +- `std.vec_i32`, `std.vec_i64`, `std.vec_f64`, `std.vec_bool`, and + `std.vec_string` name their local concrete vector family once and reuse that + alias through helper signatures. +- `std.option` and `std.result` name the current concrete option/result helper + families once and reuse those local aliases through their facade signatures. +- Public helper names, imports, exports, constructors, runtime calls, and + behavior stay concrete. Cross-module users still see normalized concrete + types such as `(vec bool)`, `(option string)`, and `(result u64 i32)`. + +This release does not add executable generics, generic aliases, parameterized +aliases, maps, sets, traits, inference, monomorphization, iterators, new +compiler-known runtime names, stable ABI/layout promises, or a stable +standard-library API freeze. The generic/map/set direction is reserved for +future diagnostics and design work only. + ## 1.0.0-beta.8 Release label: `1.0.0-beta.8` diff --git a/docs/language/ROADMAP.md b/docs/language/ROADMAP.md index 84df965..dffae0c 100644 --- a/docs/language/ROADMAP.md +++ b/docs/language/ROADMAP.md @@ -10,8 +10,8 @@ Long-horizon planning lives in release train from the historical `v2.0.0-beta.1` tag toward and beyond the first real general-purpose beta Slovo contract. -Current stage: `1.0.0-beta.8`, released on 2026-05-22 as the first post-beta -concrete type alias foundation update. It keeps the `1.0.0-beta` language contract and +Current stage: `1.0.0-beta.9`, released on 2026-05-22 as the first post-beta +collection alias unification and generic reservation update. It keeps the `1.0.0-beta` language contract and includes the `1.0.0-beta.1` tooling hardening release, the `1.0.0-beta.2` runtime/resource foundation release, the `1.0.0-beta.3` standard-library stabilization release, the `1.0.0-beta.4` language-usability diagnostics @@ -19,15 +19,17 @@ release, the `1.0.0-beta.5` package/workspace discipline release, and a narrow `std.net` source facade for blocking loopback TCP client/server primitives over opaque `i32` handles and concrete `result` families, plus a narrow `std.json` source facade for compact JSON text construction, plus top-level module-local -transparent aliases for supported concrete target types. JSON parsing, -recursive JSON values, generic aliases, parameterized aliases, cross-module -alias visibility, maps/sets, DNS, TLS, UDP, async IO, non-loopback binding, +transparent aliases for supported concrete target types, plus local alias use +inside the current concrete vector, option, and result facades. JSON parsing, +recursive JSON values, executable generics, generic aliases, parameterized +aliases, cross-module alias visibility, maps/sets, traits, inference, +monomorphization, iterators, DNS, TLS, UDP, async IO, non-loopback binding, HTTP frameworks, rich host-error ADTs, stable ABI/layout, and a stable standard-library API freeze remain deferred. -Next stage target: `1.0.0-beta.9`, likely generics and collection -unification. The exact scope must be frozen from the manifest and roadmap -before implementation. +Next stage target: continue from the reserved generic/map/set diagnostics and +collection-unification design pressure without claiming executable generics +until the exact scope is frozen from the manifest and roadmap. The final experimental precursor scope is `exp-125`, defined in `.llm/EXP_125_UNSIGNED_U32_U64_NUMERIC_AND_STDLIB_BREADTH_ALPHA.md`. Its diff --git a/docs/language/SPEC-v1.md b/docs/language/SPEC-v1.md index 72b9fb2..efbf8d9 100644 --- a/docs/language/SPEC-v1.md +++ b/docs/language/SPEC-v1.md @@ -114,20 +114,28 @@ Current v1 release surface and explicit experimental targets: aliases, alias exports/imports/re-exports, cross-module alias visibility, maps/sets, or runtime changes are included, once the matching Glagol gates pass +- `1.0.0-beta.9` collection alias unification and generic reservation target: + existing concrete vector, option, and result source facades may use + module-local concrete aliases internally while exported helper behavior and + cross-module types remain concrete; executable generics, maps, sets, traits, + inference, monomorphization, iterators, and stable ABI/layout remain deferred - `exp-1` owned runtime strings: compiler-known `std.string.concat` accepts two `string` values and returns an immutable runtime-owned `string`; existing string equality, length, printing, locals, parameters, returns, and calls work over both literal-backed and runtime-owned strings - `exp-2` collections alpha plus `exp-94` vec-i64 baseline, `exp-99` - vec-string baseline, and `exp-103` vec-f64 baseline: concrete growable - vector types `(vec i32)`, `(vec i64)`, `(vec f64)`, and `(vec string)`, + vec-string baseline, `exp-103` vec-f64 baseline, and `exp-104` vec-bool + baseline: concrete growable vector types `(vec i32)`, `(vec i64)`, + `(vec f64)`, `(vec bool)`, and `(vec string)`, compiler-known `std.vec.i32.empty`, `std.vec.i32.append`, `std.vec.i32.len`, `std.vec.i32.index`, compiler-known `std.vec.i64.empty`, `std.vec.i64.append`, `std.vec.i64.len`, and `std.vec.i64.index`, compiler-known `std.vec.f64.empty`, `std.vec.f64.append`, - `std.vec.f64.len`, and `std.vec.f64.index`, + `std.vec.f64.len`, and `std.vec.f64.index`, compiler-known + `std.vec.bool.empty`, `std.vec.bool.append`, `std.vec.bool.len`, and + `std.vec.bool.index`, compiler-known `std.vec.string.empty`, `std.vec.string.append`, `std.vec.string.len`, and `std.vec.string.index`, vector equality with `=` on same-family operands, and immutable vector flow through locals, @@ -1180,6 +1188,32 @@ alias imports, import aliases, glob imports, maps/sets, alias-driven overloads, implicit casts, new runtime helpers, standard-runtime names, stable ABI/layout promises, or a stable standard-library API freeze. +### 4.4.7 Post-Beta Collection Alias Unification And Generic Reservation + +Status: released in `1.0.0-beta.9` as a Slovo stdlib/docs contract update on +top of the beta.8 alias semantics. + +`1.0.0-beta.9` applies beta.8 concrete aliases to the source-authored +collection/value-family facades where they remove repeated concrete type +spellings: + +- `std.vec_i32`, `std.vec_i64`, `std.vec_f64`, `std.vec_bool`, and + `std.vec_string` use one module-local alias for their concrete vector family. +- `std.option` and `std.result` use module-local aliases for the current + concrete option/result helper families. + +These aliases are not public standard-library API names. They are normalized to +their concrete targets for imports, typed-core lowering, backend layout, ABI +decisions, runtime behavior, and generated cross-module signatures. Current +vectors, options, and results remain concrete families such as `(vec bool)`, +`(option string)`, and `(result u64 i32)`. + +This target reserves generic and collection-unification spelling space through +diagnostics and documentation only. It does not add executable generics, +generic aliases, parameterized aliases, maps, sets, traits, inference, +monomorphization, iterators, new runtime helpers, stable ABI/layout promises, +or a stable standard-library API freeze. + ## 4.5 v2.0.0-beta.1 Experimental Integration Readiness Status: current experimental Slovo-side release contract, released 2026-05-17. diff --git a/docs/language/STANDARD_RUNTIME.md b/docs/language/STANDARD_RUNTIME.md index d219631..e148967 100644 --- a/docs/language/STANDARD_RUNTIME.md +++ b/docs/language/STANDARD_RUNTIME.md @@ -1,14 +1,16 @@ # Slovo Standard Runtime Catalog -Status: standard-runtime catalog through exp-101 over the released exp-14 +Status: standard-runtime catalog through exp-104 over the released exp-14 conformance baseline. The latest Slovo experimental alpha release is -`exp-101`, Standard Vec String Option And Transform Helpers Alpha. exp-29, exp-30, exp-32, +`exp-104`, Standard Vec Bool Baseline Alpha. exp-29, exp-30, exp-32, exp-33, and exp-35 through exp-93 add no compiler-known `std.*` names; exp-31 adds exactly one checked numeric conversion name; exp-34 adds exactly one strict bool parse name; exp-94 adds exactly four concrete `(vec i64)` -vector names; exp-95 through exp-98 add no compiler-known `std.*` names; and -exp-99 adds exactly four concrete `(vec string)` vector names. exp-100 and -exp-101 add no new compiler-known `std.*` names. +vector names; exp-95 through exp-98 add no compiler-known `std.*` names; +exp-99 adds exactly four concrete `(vec string)` vector names; exp-100 and +exp-101 add no new compiler-known `std.*` names; exp-103 adds exactly four +concrete `(vec f64)` vector names; and exp-104 adds exactly four concrete +`(vec bool)` vector names. This document catalogs promoted compiler-known `std.*` operations only. It does not add source syntax, runtime APIs, standard library functions, manifest @@ -32,7 +34,7 @@ The `1.0.0-beta.7` serialization/data-interchange foundation release adds deterministic compact JSON string quoting before source-level string scanning, slicing, maps, or recursive JSON values are available. -The exp-era catalog is closed to names promoted through exp-101. exp-29, +The exp-era catalog is closed to names promoted through exp-104. exp-29, exp-30, exp-32, exp-33, and exp-35 through exp-93 add no new standard-runtime operation names. exp-32/exp-39/exp-56/exp-57 `std/math.slo` helpers, exp-33/exp-35 `std/result.slo` helpers, exp-36 `std/option.slo` helpers, @@ -49,7 +51,10 @@ entries; exp-99 adds `std.vec.string.empty`, `std.vec.string.append`, `std.vec.string.len`, and `std.vec.string.index`; exp-100 broadens option language/source-helper support only and adds no new catalog entries; exp-101 broadens vec-string source-helper support only and adds no new catalog -entries. +entries; exp-103 adds `std.vec.f64.empty`, `std.vec.f64.append`, +`std.vec.f64.len`, and `std.vec.f64.index`; and exp-104 adds +`std.vec.bool.empty`, `std.vec.bool.append`, `std.vec.bool.len`, and +`std.vec.bool.index`. Legacy compatibility aliases such as `print_i32`, `print_string`, `print_bool`, and `string_len` are not `std.*` names and are therefore excluded from this catalog. Legacy @@ -77,15 +82,23 @@ source-level result helper names are the `std.result.*` names cataloged below. | `std.string.len` | `(string) -> i32` | v1.5 | `examples/supported/standard-runtime.slo` | Returns the existing decoded byte-count length used by legacy `string_len`. | Uses existing standard-runtime usage recording if present; no schema change. | Unicode scalar/grapheme length, slicing, indexing, stable string ABI/layout. | | `std.string.concat` | `(string, string) -> string` | exp-1 | `examples/supported/owned-string-concat.slo` | Returns an immutable runtime-owned string; allocation failure traps as `slovo runtime error: string allocation failed`. | Uses existing standard-runtime usage recording if present; no concat-specific schema field. | Mutable strings, string containers, user-visible allocation/deallocation, stable string ABI/layout. | | `std.json.quote_string` | `(string) -> string` | `1.0.0-beta.7` | `examples/projects/std-layout-local-json` | Returns a compact JSON string literal for the input text, including surrounding quotes; it escapes quote, backslash, newline, tab, carriage return, backspace, form feed, and other control bytes as JSON escapes. Allocation failure traps as `slovo runtime error: string allocation failed`. | Uses existing standard-runtime usage recording if present; no schema change. | JSON parsing, recursive JSON values, maps/sets, streaming encoders, schema validation, Unicode normalization, embedded NUL support in the current null-terminated string ABI, stable helper ABI/layout/ownership. | -| `std.vec.i32.empty` | `() -> (vec i32)` | exp-2 | `examples/supported/vec-i32.slo` | Returns an empty immutable runtime-owned `(vec i32)`. | Uses existing standard-runtime usage recording if present; no vector-specific schema field. | Generic vectors, element families beyond `i32`, `i64`, and `string`, vector mutation, stable vector ABI/layout. | +| `std.vec.i32.empty` | `() -> (vec i32)` | exp-2 | `examples/supported/vec-i32.slo` | Returns an empty immutable runtime-owned `(vec i32)`. | Uses existing standard-runtime usage recording if present; no vector-specific schema field. | Generic vectors, element families beyond current concrete vector families, vector mutation, stable vector ABI/layout. | | `std.vec.i32.append` | `((vec i32), i32) -> (vec i32)` | exp-2 | `examples/supported/vec-i32.slo` | Returns a new immutable vector containing the input elements and appended value; allocation failure traps with the exp-2 vector allocation message. | Uses existing standard-runtime usage recording if present; no vector-specific schema field. | Mutation, `push`, capacity APIs, user deallocation, stable vector ABI/layout. | | `std.vec.i32.len` | `((vec i32)) -> i32` | exp-2 | `examples/supported/vec-i32.slo` | Returns vector length as `i32`. | Uses existing standard-runtime usage recording if present; no vector-specific schema field. | Generic length APIs and stable vector ABI/layout. | | `std.vec.i32.index` | `((vec i32), i32) -> i32` | exp-2 | `examples/supported/vec-i32.slo` | Returns the indexed value; out-of-bounds access traps with the exp-2 vector bounds message. | Uses existing standard-runtime usage recording if present; no vector-specific schema field. | Slices/views, iterators, mutation, stable vector ABI/layout. | -| `std.vec.i64.empty` | `() -> (vec i64)` | exp-94 | `examples/supported/vec-i64.slo` | Returns an empty immutable runtime-owned `(vec i64)`. | Uses existing standard-runtime usage recording if present; no vector-specific schema field. | Generic vectors, element families beyond `i32`, `i64`, and `string`, vector mutation, stable vector ABI/layout. | +| `std.vec.i64.empty` | `() -> (vec i64)` | exp-94 | `examples/supported/vec-i64.slo` | Returns an empty immutable runtime-owned `(vec i64)`. | Uses existing standard-runtime usage recording if present; no vector-specific schema field. | Generic vectors, element families beyond current concrete vector families, vector mutation, stable vector ABI/layout. | | `std.vec.i64.append` | `((vec i64), i64) -> (vec i64)` | exp-94 | `examples/supported/vec-i64.slo` | Returns a new immutable vector containing the input elements and appended value; allocation failure traps with the existing vector allocation message. | Uses existing standard-runtime usage recording if present; no vector-specific schema field. | Mutation, `push`, capacity APIs, user deallocation, stable vector ABI/layout. | | `std.vec.i64.len` | `((vec i64)) -> i32` | exp-94 | `examples/supported/vec-i64.slo` | Returns vector length as `i32`. | Uses existing standard-runtime usage recording if present; no vector-specific schema field. | Generic length APIs and stable vector ABI/layout. | | `std.vec.i64.index` | `((vec i64), i32) -> i64` | exp-94 | `examples/supported/vec-i64.slo` | Returns the indexed value; out-of-bounds access traps with the existing vector bounds message. | Uses existing standard-runtime usage recording if present; no vector-specific schema field. | Slices/views, iterators, mutation, stable vector ABI/layout. | -| `std.vec.string.empty` | `() -> (vec string)` | exp-99 | `examples/supported/vec-string.slo` | Returns an empty immutable runtime-owned `(vec string)`. | Uses existing standard-runtime usage recording if present; no vector-specific schema field. | Generic vectors, element families beyond `i32`, `i64`, and `string`, vector mutation, stable vector ABI/layout. | +| `std.vec.f64.empty` | `() -> (vec f64)` | exp-103 | `examples/supported/vec-f64.slo` | Returns an empty immutable runtime-owned `(vec f64)`. | Uses existing standard-runtime usage recording if present; no vector-specific schema field. | Generic vectors, element families beyond current concrete vector families, vector mutation, stable vector ABI/layout. | +| `std.vec.f64.append` | `((vec f64), f64) -> (vec f64)` | exp-103 | `examples/supported/vec-f64.slo` | Returns a new immutable vector containing the input elements and appended value; allocation failure traps with the existing vector allocation message. | Uses existing standard-runtime usage recording if present; no vector-specific schema field. | Mutation, `push`, capacity APIs, user deallocation, stable vector ABI/layout. | +| `std.vec.f64.len` | `((vec f64)) -> i32` | exp-103 | `examples/supported/vec-f64.slo` | Returns vector length as `i32`. | Uses existing standard-runtime usage recording if present; no vector-specific schema field. | Generic length APIs and stable vector ABI/layout. | +| `std.vec.f64.index` | `((vec f64), i32) -> f64` | exp-103 | `examples/supported/vec-f64.slo` | Returns the indexed value; out-of-bounds access traps with the existing vector bounds message. | Uses existing standard-runtime usage recording if present; no vector-specific schema field. | Slices/views, iterators, mutation, stable vector ABI/layout. | +| `std.vec.bool.empty` | `() -> (vec bool)` | exp-104 | `examples/supported/vec-bool.slo` | Returns an empty immutable runtime-owned `(vec bool)`. | Uses existing standard-runtime usage recording if present; no vector-specific schema field. | Generic vectors, element families beyond current concrete vector families, vector mutation, stable vector ABI/layout. | +| `std.vec.bool.append` | `((vec bool), bool) -> (vec bool)` | exp-104 | `examples/supported/vec-bool.slo` | Returns a new immutable vector containing the input elements and appended value; allocation failure traps with the existing vector allocation message. | Uses existing standard-runtime usage recording if present; no vector-specific schema field. | Mutation, `push`, capacity APIs, user deallocation, stable vector ABI/layout. | +| `std.vec.bool.len` | `((vec bool)) -> i32` | exp-104 | `examples/supported/vec-bool.slo` | Returns vector length as `i32`. | Uses existing standard-runtime usage recording if present; no vector-specific schema field. | Generic length APIs and stable vector ABI/layout. | +| `std.vec.bool.index` | `((vec bool), i32) -> bool` | exp-104 | `examples/supported/vec-bool.slo` | Returns the indexed value; out-of-bounds access traps with the existing vector bounds message. | Uses existing standard-runtime usage recording if present; no vector-specific schema field. | Slices/views, iterators, mutation, stable vector ABI/layout. | +| `std.vec.string.empty` | `() -> (vec string)` | exp-99 | `examples/supported/vec-string.slo` | Returns an empty immutable runtime-owned `(vec string)`. | Uses existing standard-runtime usage recording if present; no vector-specific schema field. | Generic vectors, element families beyond current concrete vector families, vector mutation, stable vector ABI/layout. | | `std.vec.string.append` | `((vec string), string) -> (vec string)` | exp-99 | `examples/supported/vec-string.slo` | Returns a new immutable vector containing the input elements and appended string; allocation failure traps with the existing vector allocation message. | Uses existing standard-runtime usage recording if present; no vector-specific schema field. | Mutation, `push`, capacity APIs, user deallocation, stable vector ABI/layout. | | `std.vec.string.len` | `((vec string)) -> i32` | exp-99 | `examples/supported/vec-string.slo` | Returns vector length as `i32`. | Uses existing standard-runtime usage recording if present; no vector-specific schema field. | Generic length APIs and stable vector ABI/layout. | | `std.vec.string.index` | `((vec string), i32) -> string` | exp-99 | `examples/supported/vec-string.slo` | Returns the indexed value; out-of-bounds access traps with the existing vector bounds message. | Uses existing standard-runtime usage recording if present; no vector-specific schema field. | Slices/views, iterators, mutation, stable vector ABI/layout. | diff --git a/docs/language/STDLIB_API.md b/docs/language/STDLIB_API.md index ce2df53..0b94a6f 100644 --- a/docs/language/STDLIB_API.md +++ b/docs/language/STDLIB_API.md @@ -6,7 +6,7 @@ Do not edit this file by hand. ## Stability Tiers - `beta-supported`: exported from `lib/std` and covered by source-search, promotion, or facade gates in the current beta line. -- `experimental`: not used for exported `lib/std` helpers in `1.0.0-beta.8`; future releases may mark new helpers this way before they graduate. +- `experimental`: not used for exported `lib/std` helpers in `1.0.0-beta.9`; future releases may mark new helpers this way before they graduate. - `internal`: helper names that are not exported from their module; they are intentionally omitted from this catalog. The catalog is a beta compatibility aid, not a stable `1.0.0` API freeze. diff --git a/docs/language/examples/README.md b/docs/language/examples/README.md index 2e585ce..7f58cd6 100644 --- a/docs/language/examples/README.md +++ b/docs/language/examples/README.md @@ -14,6 +14,8 @@ catalog and the checked `projects/stdlib-composition/` example. `projects/std-layout-local-json/` examples for compact JSON text construction. `1.0.0-beta.8` reuses those JSON projects for local `JsonText`/`JsonField` concrete type alias fixtures. +`1.0.0-beta.9` keeps the existing explicit std-import projects concrete while +the underlying vector, option, and result facades use module-local aliases. The language baseline absorbs the final exp-125 unsigned precursor scope alongside the already promoted project/package, stdlib-source, collection, composite-data, diff --git a/docs/papers/GLAGOL_COMPILER_MANIFEST.pdf b/docs/papers/GLAGOL_COMPILER_MANIFEST.pdf index e2798518b74007d2357a54fa6170878bd616f134..a779905a3c5af6f547ce6bda22ce15bdf3211f1f 100644 GIT binary patch delta 26 fcmdnFpJnHMmI;Z>=0;`{Qxrf{WBb;2Mk9Fug!u^B delta 26 fcmdnFpJnHMmI;Z>W~RmyQxrf{WBb;2Mk9Fugyaa< diff --git a/docs/papers/GLAGOL_WHITEPAPER.md b/docs/papers/GLAGOL_WHITEPAPER.md index a61bfbf..d421c23 100644 --- a/docs/papers/GLAGOL_WHITEPAPER.md +++ b/docs/papers/GLAGOL_WHITEPAPER.md @@ -5,7 +5,7 @@ Sanjin Gumbarevic
hermeticum_lab@protonmail.com -Publication release: `1.0.0-beta.8` +Publication release: `1.0.0-beta.9` Technical behavior baseline: compiler and language support through `1.0.0-beta`; tooling and install workflow through `1.0.0-beta.1`; @@ -14,13 +14,14 @@ stabilization through `1.0.0-beta.3`; language-usability diagnostics through `1.0.0-beta.4`; package/workspace discipline through `1.0.0-beta.5`; loopback networking foundation through `1.0.0-beta.6`; serialization/data-interchange foundation through `1.0.0-beta.7`; -concrete type alias foundation through `1.0.0-beta.8` +concrete type alias foundation through `1.0.0-beta.8`; +generic and collection reservation diagnostics through `1.0.0-beta.9` Date: 2026-05-22 -Evidence source: paired local Slovo/Glagol monorepo verification and benchmark -reruns from a local checkout; beta.8 release-gate verification from the public -monorepo +Evidence source: paired Slovo/Glagol monorepo verification and benchmark +reruns from the public source tree; beta.9 release-gate verification from the +public monorepo Maturity: beta @@ -31,26 +32,29 @@ Slovo. It exists to make the language support boundary inspectable: tokens, S-expression tree, AST, typed AST, LLVM IR, hosted native executable, tests, diagnostics, and release documents should agree. -The current publication release, `1.0.0-beta.8`, keeps the first real +The current publication release, `1.0.0-beta.9`, keeps the first real general-purpose beta toolchain baseline from `1.0.0-beta` and records the first post-beta tooling/install hardening update plus the first runtime/resource foundation update plus the first standard-library stabilization update plus the first language-usability diagnostics update and the first local package/workspace discipline update plus the first loopback networking foundation update plus the first serialization/data-interchange -foundation update plus the first concrete type alias foundation. The beta +foundation update plus the first concrete type alias foundation and the first +generic/collection reservation diagnostic update. The beta baseline includes the completed `u32` / `u64` unsigned compiler and stdlib breadth scope, the narrow `std.net` loopback TCP runtime family, the narrow `std.json.quote_string` runtime family, transparent concrete alias parsing and -erasure, and the current ten-scaffold benchmark suite. This paper records the +erasure, explicit beta9 diagnostics for reserved generic/map/set shapes, and +the current ten-scaffold benchmark suite. This paper records the current beta implementation surface, the benchmark method and results, the distinction between Glagol and Lisp-family implementations, the beta.1 tooling update, the beta.2 runtime/resource foundation, the beta.3 standard-library stabilization slice, the beta.4 diagnostics usability slice, the beta.5 package discipline slice, the beta.6 networking foundation slice, the beta.7 serialization -foundation slice, the beta.8 concrete alias foundation slice, and the compiler -path from beta to stable. +foundation slice, the beta.8 concrete alias foundation slice, the beta.9 +generic/collection reservation slice, and the compiler path from beta to +stable. ## 1. Compiler Thesis @@ -310,8 +314,10 @@ standard-library catalog and composition coverage, `1.0.0-beta.4` improves diagnostics, `1.0.0-beta.5` tightens package/workspace discipline, and `1.0.0-beta.6` adds a narrow loopback networking foundation, and `1.0.0-beta.7` adds a narrow JSON construction foundation, and -`1.0.0-beta.8` adds transparent concrete type aliases. None of these post-beta -slices claims changed benchmark performance. The beta.7 `json-quote-loop` +`1.0.0-beta.8` adds transparent concrete type aliases, and `1.0.0-beta.9` +adds focused diagnostics for reserved generic, map, set, and future generic +stdlib forms. None of these post-beta slices claims changed benchmark +performance. The beta.7 `json-quote-loop` scaffold is present for local follow-up timing and is not part of the exp-123 nine-row result table below. @@ -401,15 +407,16 @@ coverage and compatibility: - package behavior becoming stable before dependency, manifest, and versioning rules are precise -## 9. Path Beyond `1.0.0-beta.8` +## 9. Path Beyond `1.0.0-beta.9` Glagol now implements the first real beta Slovo contract, the first post-beta tooling/install hardening release, the first runtime/resource foundation release, the first standard-library stabilization release, and the first diagnostics usability release, the first package/workspace discipline release, the first loopback networking foundation release, and the first -serialization/data-interchange foundation release, and the first concrete type -alias foundation release. The remaining path is from beta to stable. +serialization/data-interchange foundation release, the first concrete type +alias foundation release, and the first generic/collection reservation +diagnostic release. The remaining path is from beta to stable. Recommended compiler sequence: diff --git a/docs/papers/GLAGOL_WHITEPAPER.pdf b/docs/papers/GLAGOL_WHITEPAPER.pdf index a7bff57bfcc632fdce172462091a4e971dadb206..87d207fcc17d89925d17e9f0f40f2898f5ae3176 100644 GIT binary patch delta 151937 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 delta 148573 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 delta 33 kcmX@{iu1%P&IyUEW~Ro578BFtAdJS&)=tK)olN^n0M=9tApigX diff --git a/docs/papers/SLOVO_WHITEPAPER.md b/docs/papers/SLOVO_WHITEPAPER.md index 1650968..d0cd68a 100644 --- a/docs/papers/SLOVO_WHITEPAPER.md +++ b/docs/papers/SLOVO_WHITEPAPER.md @@ -5,7 +5,7 @@ Sanjin Gumbarevic
hermeticum_lab@protonmail.com -Publication release: `1.0.0-beta.8` +Publication release: `1.0.0-beta.9` Technical behavior baseline: language surface through `1.0.0-beta`; tooling and install workflow through `1.0.0-beta.1`; runtime/resource foundation through @@ -13,13 +13,14 @@ and install workflow through `1.0.0-beta.1`; runtime/resource foundation through language-usability diagnostics through `1.0.0-beta.4`; package/workspace discipline through `1.0.0-beta.5`; loopback networking foundation through `1.0.0-beta.6`; serialization/data-interchange foundation through -`1.0.0-beta.7`; concrete type alias foundation through `1.0.0-beta.8` +`1.0.0-beta.7`; concrete type alias foundation through `1.0.0-beta.8`; +collection alias unification and generic reservation through `1.0.0-beta.9` Date: 2026-05-22 -Evidence source: paired local Slovo/Glagol monorepo verification and benchmark -reruns from a local checkout; beta.8 release-gate verification from the public -monorepo +Evidence source: paired Slovo/Glagol monorepo verification and benchmark +reruns from the public source tree; beta.9 release-gate verification from the +public monorepo Maturity: beta @@ -33,15 +34,16 @@ explicit types, explicit failure through `option` and `result`, lexical `unsafe`, and native compilation through the Glagol compiler to LLVM IR and hosted executables. -The current publication release, `1.0.0-beta.8`, keeps the first real +The current publication release, `1.0.0-beta.9`, keeps the first real general-purpose beta language baseline from `1.0.0-beta` and records the first post-beta tooling/install hardening update plus the first runtime/resource foundation update, the first standard-library stabilization update, and the first language-usability diagnostics update, plus the first local package/workspace discipline update, the first loopback networking foundation update, the first serialization/data-interchange foundation update, and the -first concrete type alias foundation. The beta baseline includes the completed -`u32` / `u64` +first concrete type alias foundation plus the first collection alias +unification and generic-reservation update. The beta baseline includes the +completed `u32` / `u64` unsigned scope, the staged stdlib breadth that makes ordinary command-line programs practical, the current narrow `std.net` loopback TCP surface, the current narrow `std.json` text-construction surface, module-local transparent @@ -52,15 +54,15 @@ benchmark methodology, the beta.1 tooling update, the beta.2 runtime/resource foundation, the beta.3 standard-library stabilization slice, the beta.4 diagnostics usability slice, the beta.5 package discipline slice, the beta.6 networking foundation slice, the beta.7 serialization foundation slice, and -the beta.8 concrete alias foundation slice, and the remaining path from beta -to stable. +the beta.8 concrete alias foundation slice, the beta.9 collection alias and +generic-reservation slice, and the remaining path from beta to stable. ## 1. Scope This document is a technical state paper for the current beta baseline. It -summarizes the behavior represented by the paired local Slovo and Glagol -workspaces, with `1.0.0-beta` as the current language-surface baseline and -`1.0.0-beta.8` as the current publication baseline. +summarizes the behavior represented by the paired Slovo and Glagol source +tree, with `1.0.0-beta` as the current language-surface baseline and +`1.0.0-beta.9` as the current publication baseline. The support rule remains strict: @@ -72,7 +74,7 @@ The support rule remains strict: - partial parser recognition or speculative examples do not count as support Historical `exp-*` releases remain experimental alpha maturity. The current -publication accompanies `1.0.0-beta.8`. +publication accompanies `1.0.0-beta.9`. ## 2. Design Thesis @@ -384,8 +386,10 @@ standard-library catalog and composition coverage, `1.0.0-beta.4` improves diagnostics, `1.0.0-beta.5` tightens package/workspace discipline, and `1.0.0-beta.6` adds a narrow loopback networking foundation, and `1.0.0-beta.7` adds a narrow JSON construction foundation, and -`1.0.0-beta.8` adds transparent concrete type aliases. None of these post-beta -slices claims changed benchmark performance. The beta.7 `json-quote-loop` +`1.0.0-beta.8` adds transparent concrete type aliases, and `1.0.0-beta.9` +applies those aliases inside current collection/value-family facades while +reserving generic, map, and set syntax through diagnostics. None of these +post-beta slices claims changed benchmark performance. The beta.7 `json-quote-loop` scaffold is present for local follow-up timing and is not part of the exp-123 nine-row result table below. @@ -508,7 +512,7 @@ Major remaining gaps before `1.0.0`: - semantic versioning and deprecation policy - a clear separation between stable and experimental features -## 10. Path Beyond `1.0.0-beta.8` +## 10. Path Beyond `1.0.0-beta.9` The beta threshold is now real. The next work should treat `1.0.0-beta` as the language compatibility-governed baseline, `1.0.0-beta.1` as the first @@ -518,8 +522,9 @@ stabilization point, and `1.0.0-beta.4` as the first diagnostics usability point, and `1.0.0-beta.5` as the first package/workspace discipline point, and `1.0.0-beta.6` as the first loopback networking foundation point, and `1.0.0-beta.7` as the first serialization/data-interchange foundation point, -and `1.0.0-beta.8` as the first concrete type alias foundation point, then -move deliberately toward stable general-purpose status. +`1.0.0-beta.8` as the first concrete type alias foundation point, and +`1.0.0-beta.9` as the first collection alias unification and generic +reservation point, then move deliberately toward stable general-purpose status. Recommended sequence: diff --git a/docs/papers/SLOVO_WHITEPAPER.pdf b/docs/papers/SLOVO_WHITEPAPER.pdf index 092f7e8a44a56fff7ea525d3e649b82c6925b795..e71e038a81eb05b90f400dbd8d28bb774e6e21f4 100644 GIT binary patch delta 250902 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 H)BD7*R|T!HXi11duwAOhRz_#XUQc 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

    C;MHQ0GD8&$Zv^vWm5mhHxmbGr9O@^(=59=URQ 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%0DhZiS*Bd2ky(C2*1Vb8wWmUcyIJ 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 U|2a(W`?8-HP@Ai(`(HmcuZXq&B>(^b delta 247983 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�!pFYZ$ML!k_}ca3&xil(Rr|*)_}|~hx2Ns5 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

    B263g2pL=z;uBh(n(3Dcci;1Sud4ac5U! zg9yhY14NQqab1Cn+)+^YRtbC%$}BGK3M&*^4O$RhMnL)}M1uZ_};I|`^owNsY1}Ss8NvuoPu${;WLT~}O zj0pDIU@j0FM7|Hw2{sN{PUPbd+H*xXZ9sL>ApDp~nT=>6P9)?YV1*HjEGKej(Do4S z3ztzN`0a`{SSW*kw>TKPlIT>ZrvwLzWt2$4!_qxymujbsa6K!cpQu-lQ2q1=-) zVgSRplvRUM6CM%hgwRUX9g+K{)?B#}b_1iLL(q(;-G>w0ROF%f(GpK#MVU#J!IE|e^ z@**>a@I)XD1G&q+P1RkB29az^91ODF3u}ye#5#g9Y!mXWk`Ki=K;%-;Cg*03$a@_w zA`Qxn=3-^W$o@tKgOnMhW7wPwpytqmMa>9l7cW$Tj*KG&WhaoafVhaWv*4hGltJ4O z%dAM7B9=iUvIxu(k|x5M#fny|Xg5MVC6Tmo&{jg7Q7=lA+EA7(a_Gzvg-YfrV}sBl zjo<>bASjV7hL~*v8H72LZ>a&wWeG<>G64+&1qt>?D#=ES1BCEIkQGJrTP4mw_|}eo z{dk#MamHXA>|F=21z6d|RX_k1S!(cbf_I3UBK?E1koF+nkaAZQc`mn{Q!0T&N3!{Gaz$ng0g0eJ1PTIG99EF_9F{Oqpu~)c0Dv+p z^Xr1u;&E^S#2q-&C1noEjvY#>G$Sw^L^eQIDNszX4Fw|&tK|$AZ4cO3N}f|=CouPr z{pJMi5(n+nAOd7(lxQkLbtRjdFizvP<6R+Z z7NH+d=?JahLIa@{s7O`@R~x19v69ZnFqjC)Kb|x|owpJZvqZ5M8xEo6} za{!P^E<0m`5ah&_fv6*jq(D(hdr;3MO6I6YjQ=Pjr`Eh45jBzAi-+|I10=?Oe5+() zL_H4?5|@AøVIA9g=0|J_;=;5XaC104aW1uX73}EPqpW$p;H*+=#S#s^n-rZb) z1$Q?Gz{gOS0uoM>#lrjzS--;`L$N-}# z0wIMqorn^NYy=ZrA&m40VjZH@=~}?5OdF(x3#5mz6v$;1BXM{{)(2^6EN#WvA(IQ~ z7=kvzG)zRK;^1yX-#}gfwzUUmrGyP{RwTnj{63TuHX z1bPx@oDb90f}x0@3FH*A`VfX_C&cFn1GF2|T$T1fJE5b7OOHDBvlppdIXZ4(vEen3s2euGd}?<#8?pu5lC-J zJE0l|cRC^+BHl|YLhcZm3ba~ZA7gU&f%&n6Wi?2s}g9g~rMfuRz}z(!5mQ?l=R ze9P$^%$gz%g4|DJ2yTy{ohUi|JQ@s#TB&3X6U&GQ0lnEu)K_pjqBud+C9DF1JRwrx zYlQVc8X^iF7Z-K>$fzqsAZHNA&h<6tcfqp%W+B zfUvI+^#Wrd`^sW1qok-aq7P1g$dbVERNPpA6&u+fT#X!ma4^zU0B;fLG~8arlMcWU zev!g9#9ayc9!_2?&=_T<0YZ;LNJQjgCB2w&j>vLA2a^KOkkf_?1{ondVZoOW#&>d5 ziZXJ}%IgtX63Pl;yKq|*P2KpG9G{}h>7siW_6D*E1YWET8Yj0Rv_Mq}WMC2(NiDEb zlaV~Q8bnml4HsyP(U4A*oIAm35}0?rPEWY}?V>-jPN z7NlFJP;LSR&uD^2NES{9V~ZkO4FWjbEZp;0>=^up4hEw^0@yi_Sur30f3Bw&3~{ z5z}$7Ma+hCx8qC>(=+XxlQgVEYGUeV*14^JCQ4y>#JBV}%NJ7{Luw7*zo@@brpu}_l z0l>Y4`nHFrOIFazeI-TU@(2b}mVAiK+f&#AZp2sSwYTc z#KBl1!zk_mf&_$CD{C_h4yaVXh8RFBOt>YAEgO!-r4}ykS4-do>>_XiOhlr>U2W;N z#0d-pK;w#r#l=~fNHS58D33UAAp#KYxFQB};17}I5%^(%ySli@6ic=V;!DW3LxNYb zK#|mz2{$9UW#G9cLI%xIO%@b@5)c>-$Y5X~px`HQBe;Ml1uO-%RVU)X^8tNAT5;tU zF)na_ACcVR+8|2PQ#csmZr6q-2K+HX#Knks4^uY*H7=DQdj=QA7#ig5!GVQ93-`nj zXxZSqP8&=CTX8E48H|k{4{xW*_WY}*PiPrW@i7vqvP0V}R~@EgTH4aH+73b%!m zC>e|s?nSdF@sxB7=0K!ND2bFVLU5$*8GY)z^4Y;tkm&R{>?VpC&Krnd0cbwiZwMhIoDv~~ zY{nP>9OfqhkOU`SwNjVv&^~DKuL)fy=Rkl_EZc;uw;K&X}l>L(kP!hy#=^G7Nael4-%+ zhD-~FTrw^AvC=ZloMu309Bzp89Z92!q5%&+ihWSn=%C@)C+<}^aC(AHMQ3nk+A)ca zv>-_}k$1s5h*}01kh2IJmC)^hD_E{fQb?r8YhWuR(gIeU9O^(iCcFl8+$bz^l)-Is z1U}dg3Q|}1B$1d7S!wuw5G=9NlUI-}+(*@DqB%dmX{Jp)W=4H?;BQ2E1!zC%6z-)2 zy{IcGXk`ja6p;hUYz^oIj|zegFoBSjhcrT{AWpCd4m+vT3ImxzA+MlpDBN=<&IB4O z!D}cc#CD4`z3kl-0FuO4aEL=@0%1bjJUmoDM0R92Cd2>^B(y!Oi@5qA zbR_Z~x0vC6J%PFanTQn@>JHJg02gAff+9#1XV~X7ONj^DK_Q_+$Zkw17)Ulz8j!t% z7{NUE}|IXzF9)kaQ7^sX_y?LX;CTo2;#n4B0k{UM5Ae*NQi(`Len5-kR^dP z5rGWY3Bd(e24T z2X_&&?QHNaHbM&r9q^qcq5zPeSl)2WuyO6MbUY@>*dTXPgza8{piRA7(y*Lx0*)ZZ z_uRQx1T}Uig#ve}Ae}e}#k8fM$N~4=1`GE=2joS9!8RCYMeK+B3Bd)}6{v6shDrvA z8_0$BTu8YB#{qFBP>9L8gZCP?4hKKtQN^u@b4{Y)!_|Q(XfWh~_Hg>=vBf~(2+xO@ zLKG?(gBMQ$xZmf;Uip@lGWG0AyBON2?mDF>lFhHa$5bMD%?I}Ad z>u=%qZqf-DjQFt)jE&Z#J~ePaN})YO{0Vf%9`2%{FEAr}j*xFjn0M#^aUz{UgLHsA z5Q28B4G{BpgWnG1Cl&eOusCW&l8I1&$(9)G5aLA`5%g_CdmR1<{-EP3=r2okxt-uP5Qv$v0BeV{)5X1Ar>f0 zp+Oo`fpajz6|qNBXipd*;BSE!2_0by?#etX3z-SdFv*NzEur;N7$8Iq;-(HqbHXIR znh1-A1V^Z&Jq7a_aulY}p4(q8S^k5OCWQv6=RT5Z(FP&d5h&PF7$A0{u^!|WJ)tgnZ+4-r*D-U0_3`4PrTsqsE}|N7mS$!T@0?q4kmn z=$8M$hiHQiYX7z)u?=YuzQN)Ep)XTn#*@$(x4R3WJ|tl!Z2LH^FjhnvQgD(oIgA_kXt0lBjgr-TC}|s6cZQRzf)+Cq`iY1S_%V%mjIa^&Ync@LmPf|wR_299g*^4~nKYn0CW`~@xq7{Stz>+0Fu18TV2ksN&rUUA> zC-^!2LoG;;;;4b@WH9h>A^RPeM4^RIi|xTaNhgBrAEeNUU{&%l$-RP;KM3@+9vvVo zsD>Hy2}9k}%974INVfepC^%oa}>cl zR3vzZeM{__+}oUX0>hR#7@WX*ZZvOBTi|VubgakLnG1N?tn4QKBXbeqtFSE*gD@O1 zDKf!jguo9JGKDgVOt5P zC^NuV;fY91NeHVGG7gyuqFzKo&4Uog?D$EqI6$1%ifj$BgoTNu2hvD)5zY`J*uD)s zy(E#wkfEHSA^cuxZ^)A%jtVji*%1&;2zbGHlrqD5A<+hbFU-20+ez6?u!7Sv6|W6w z4N^hYAJ$sWGIhNWNl)O*Eox+T)B_&DB@}}2E+LSCMU9qOT;v1}K_hg>BV!x^Ay&zA zCJJPr#S4((fg~vmP(PONkYRY9R5D{ItE3ZX_Oy&TctiCi2QdgzGGaX7&%<9RdP9UK z;DWqJpa8D}I%ot}iA%@j2C)oG54YU|aGtb~vuaYNVXL7Y+^=ap%A7!PXvgl8;ba*G z`V%pP-~^LWCdf6kW6hn`FhHVI0T;xxaM(~Wd(i-fGHA}m*`bU$HKUBgOu-kD>=M)? z4v4%xl3o&pB$5VJ>~N8RpdJZP;PpgbSd>B25+?##N1vQ-!$L(8W{xr<2cV3|0lX8D zNTH0J3ZaZdp+F9R^g{M5kCG;%_B?x1FOPwDm3Tx5@FU@v_$@+*Xc^psf@>JCA0HFX zWt743m^4UEdr%MYzuO=J5M3FsNJb9GKbW}KERQ}TWe|5r8Js>znHF&E!BWr(lADo= z#8V0Nh**F!avp;+B9EZV=upO43P>)53bA7-DP(rk`i#gr5|e>4J!ynnY*QljNFUB9 zmq;EU8d^nl2JQp6PC^(UoZti%2a5!aOGHI3zl-4K=SnJ9NM*a`f)=*LD7 zatI=03#ge9J+U9@x9}S=5bTQlV;ts?QNztlL?rGVLCWB!U}4V^k&FO|Pz_D1nDCZxpzej0L>CTw}9J3xkef8 zB@&i|hp3B~2N6XKU;w!R3FY5KXRW3l4P7n|%811usYxM&i8Fyoi%f(cbc*$$YZ##b;S|OcQ4K>Gu}wq!APLA& zMhvS!OA@((GAa;2gNK*1FhU$}6TZj2y2b6u)pc=;@hB2;#yAZn$cm6!Hzjlnr_l8Y za^WgLA~*6Ya!AJjpvdTv?L<6?g#Z*Ko`tv&kBcL25eockQf5@EIo|-iB%~S#`h+>b z)l$@?5Xy_L1qVA65@$;*#!Q$Kd|ipO8wKO2h=kz%qQxI}u!v+cpLW2CLSxV%pB=nB z2?0sL%M+##q_`BI1@|>kx#hvegc9OvBm~5XAA=!?O9H48{D2DsA-CLpP{ajz4-#UA ze6Ac96#nlPKoF@+^hAgd!kz_W02&e0aO(CHEC4`WkK{{(O6|#r)B{#H{nIsuI4m08 zv9XQOCcG2Km7@BMGNLV`42K~Cq#Z7ZQX=^IX_5$j%whX95wimNYlBax40yr3S^hSH_vm4mGuYtz=jt)0sSVO zAlyl${RmqoGynlgqPGYa^@+Uh42LEoc8sGag2CL@PwIhgiI9PF2SH4pLROpzH$)Tp z4}l_t5y7-Wh!1!oogF7}0tDg1M>rs?JqG^5;g2vK>_+ipa6r-^KLiu&@u`q9LLDJU z8P*-$hI8Qxsh*7=Bd!3VqF4sMKw+04YMa;$PzDMjev6m}fnjlJO;h-*yRjdIh}j?? z8_q`h_G#0lTZcaBN|!ECugl;L$_2dXO4RMyvu`lMwxU?`ljhtRAmZ5^=?WC6R4XRk F{{i`QSPK9E diff --git a/examples/projects/std-layout-local-option/src/option.slo b/examples/projects/std-layout-local-option/src/option.slo index 1076cfd..bb8def1 100644 --- a/examples/projects/std-layout-local-option/src/option.slo +++ b/examples/projects/std-layout-local-option/src/option.slo @@ -1,176 +1,204 @@ (module option (export some_i32 none_i32 is_some_i32 is_none_i32 unwrap_some_i32 unwrap_or_i32 some_or_err_i32 some_u32 none_u32 is_some_u32 is_none_u32 unwrap_some_u32 unwrap_or_u32 some_or_err_u32 some_i64 none_i64 is_some_i64 is_none_i64 unwrap_some_i64 unwrap_or_i64 some_or_err_i64 some_u64 none_u64 is_some_u64 is_none_u64 unwrap_some_u64 unwrap_or_u64 some_or_err_u64 some_f64 none_f64 is_some_f64 is_none_f64 unwrap_some_f64 unwrap_or_f64 some_or_err_f64 some_bool none_bool is_some_bool is_none_bool unwrap_some_bool unwrap_or_bool some_or_err_bool some_string none_string is_some_string is_none_string unwrap_some_string unwrap_or_string some_or_err_string)) -(fn some_i32 ((value i32)) -> (option i32) +(type OptionI32 (option i32)) + +(type ResultI32 (result i32 i32)) + +(type OptionU32 (option u32)) + +(type ResultU32 (result u32 i32)) + +(type OptionI64 (option i64)) + +(type ResultI64 (result i64 i32)) + +(type OptionU64 (option u64)) + +(type ResultU64 (result u64 i32)) + +(type OptionF64 (option f64)) + +(type ResultF64 (result f64 i32)) + +(type OptionBool (option bool)) + +(type ResultBool (result bool i32)) + +(type OptionString (option string)) + +(type ResultString (result string i32)) + +(fn some_i32 ((value i32)) -> OptionI32 (some i32 value)) -(fn none_i32 () -> (option i32) +(fn none_i32 () -> OptionI32 (none i32)) -(fn is_some_i32 ((value (option i32))) -> bool +(fn is_some_i32 ((value OptionI32)) -> bool (is_some value)) -(fn is_none_i32 ((value (option i32))) -> bool +(fn is_none_i32 ((value OptionI32)) -> bool (is_none value)) -(fn unwrap_some_i32 ((value (option i32))) -> i32 +(fn unwrap_some_i32 ((value OptionI32)) -> i32 (unwrap_some value)) -(fn unwrap_or_i32 ((value (option i32)) (fallback i32)) -> i32 +(fn unwrap_or_i32 ((value OptionI32) (fallback i32)) -> i32 (if (is_some value) (unwrap_some value) fallback)) -(fn some_or_err_i32 ((value (option i32)) (err_code i32)) -> (result i32 i32) +(fn some_or_err_i32 ((value OptionI32) (err_code i32)) -> ResultI32 (if (is_some value) (ok i32 i32 (unwrap_some value)) (err i32 i32 err_code))) -(fn some_u32 ((value u32)) -> (option u32) +(fn some_u32 ((value u32)) -> OptionU32 (some u32 value)) -(fn none_u32 () -> (option u32) +(fn none_u32 () -> OptionU32 (none u32)) -(fn is_some_u32 ((value (option u32))) -> bool +(fn is_some_u32 ((value OptionU32)) -> bool (is_some value)) -(fn is_none_u32 ((value (option u32))) -> bool +(fn is_none_u32 ((value OptionU32)) -> bool (is_none value)) -(fn unwrap_some_u32 ((value (option u32))) -> u32 +(fn unwrap_some_u32 ((value OptionU32)) -> u32 (unwrap_some value)) -(fn unwrap_or_u32 ((value (option u32)) (fallback u32)) -> u32 +(fn unwrap_or_u32 ((value OptionU32) (fallback u32)) -> u32 (if (is_some value) (unwrap_some value) fallback)) -(fn some_or_err_u32 ((value (option u32)) (err_code i32)) -> (result u32 i32) +(fn some_or_err_u32 ((value OptionU32) (err_code i32)) -> ResultU32 (if (is_some value) (ok u32 i32 (unwrap_some value)) (err u32 i32 err_code))) -(fn some_i64 ((value i64)) -> (option i64) +(fn some_i64 ((value i64)) -> OptionI64 (some i64 value)) -(fn none_i64 () -> (option i64) +(fn none_i64 () -> OptionI64 (none i64)) -(fn is_some_i64 ((value (option i64))) -> bool +(fn is_some_i64 ((value OptionI64)) -> bool (is_some value)) -(fn is_none_i64 ((value (option i64))) -> bool +(fn is_none_i64 ((value OptionI64)) -> bool (is_none value)) -(fn unwrap_some_i64 ((value (option i64))) -> i64 +(fn unwrap_some_i64 ((value OptionI64)) -> i64 (unwrap_some value)) -(fn unwrap_or_i64 ((value (option i64)) (fallback i64)) -> i64 +(fn unwrap_or_i64 ((value OptionI64) (fallback i64)) -> i64 (if (is_some value) (unwrap_some value) fallback)) -(fn some_or_err_i64 ((value (option i64)) (err_code i32)) -> (result i64 i32) +(fn some_or_err_i64 ((value OptionI64) (err_code i32)) -> ResultI64 (if (is_some value) (ok i64 i32 (unwrap_some value)) (err i64 i32 err_code))) -(fn some_u64 ((value u64)) -> (option u64) +(fn some_u64 ((value u64)) -> OptionU64 (some u64 value)) -(fn none_u64 () -> (option u64) +(fn none_u64 () -> OptionU64 (none u64)) -(fn is_some_u64 ((value (option u64))) -> bool +(fn is_some_u64 ((value OptionU64)) -> bool (is_some value)) -(fn is_none_u64 ((value (option u64))) -> bool +(fn is_none_u64 ((value OptionU64)) -> bool (is_none value)) -(fn unwrap_some_u64 ((value (option u64))) -> u64 +(fn unwrap_some_u64 ((value OptionU64)) -> u64 (unwrap_some value)) -(fn unwrap_or_u64 ((value (option u64)) (fallback u64)) -> u64 +(fn unwrap_or_u64 ((value OptionU64) (fallback u64)) -> u64 (if (is_some value) (unwrap_some value) fallback)) -(fn some_or_err_u64 ((value (option u64)) (err_code i32)) -> (result u64 i32) +(fn some_or_err_u64 ((value OptionU64) (err_code i32)) -> ResultU64 (if (is_some value) (ok u64 i32 (unwrap_some value)) (err u64 i32 err_code))) -(fn some_f64 ((value f64)) -> (option f64) +(fn some_f64 ((value f64)) -> OptionF64 (some f64 value)) -(fn none_f64 () -> (option f64) +(fn none_f64 () -> OptionF64 (none f64)) -(fn is_some_f64 ((value (option f64))) -> bool +(fn is_some_f64 ((value OptionF64)) -> bool (is_some value)) -(fn is_none_f64 ((value (option f64))) -> bool +(fn is_none_f64 ((value OptionF64)) -> bool (is_none value)) -(fn unwrap_some_f64 ((value (option f64))) -> f64 +(fn unwrap_some_f64 ((value OptionF64)) -> f64 (unwrap_some value)) -(fn unwrap_or_f64 ((value (option f64)) (fallback f64)) -> f64 +(fn unwrap_or_f64 ((value OptionF64) (fallback f64)) -> f64 (if (is_some value) (unwrap_some value) fallback)) -(fn some_or_err_f64 ((value (option f64)) (err_code i32)) -> (result f64 i32) +(fn some_or_err_f64 ((value OptionF64) (err_code i32)) -> ResultF64 (if (is_some value) (ok f64 i32 (unwrap_some value)) (err f64 i32 err_code))) -(fn some_bool ((value bool)) -> (option bool) +(fn some_bool ((value bool)) -> OptionBool (some bool value)) -(fn none_bool () -> (option bool) +(fn none_bool () -> OptionBool (none bool)) -(fn is_some_bool ((value (option bool))) -> bool +(fn is_some_bool ((value OptionBool)) -> bool (is_some value)) -(fn is_none_bool ((value (option bool))) -> bool +(fn is_none_bool ((value OptionBool)) -> bool (is_none value)) -(fn unwrap_some_bool ((value (option bool))) -> bool +(fn unwrap_some_bool ((value OptionBool)) -> bool (unwrap_some value)) -(fn unwrap_or_bool ((value (option bool)) (fallback bool)) -> bool +(fn unwrap_or_bool ((value OptionBool) (fallback bool)) -> bool (if (is_some value) (unwrap_some value) fallback)) -(fn some_or_err_bool ((value (option bool)) (err_code i32)) -> (result bool i32) +(fn some_or_err_bool ((value OptionBool) (err_code i32)) -> ResultBool (if (is_some value) (ok bool i32 (unwrap_some value)) (err bool i32 err_code))) -(fn some_string ((value string)) -> (option string) +(fn some_string ((value string)) -> OptionString (some string value)) -(fn none_string () -> (option string) +(fn none_string () -> OptionString (none string)) -(fn is_some_string ((value (option string))) -> bool +(fn is_some_string ((value OptionString)) -> bool (is_some value)) -(fn is_none_string ((value (option string))) -> bool +(fn is_none_string ((value OptionString)) -> bool (is_none value)) -(fn unwrap_some_string ((value (option string))) -> string +(fn unwrap_some_string ((value OptionString)) -> string (unwrap_some value)) -(fn unwrap_or_string ((value (option string)) (fallback string)) -> string +(fn unwrap_or_string ((value OptionString) (fallback string)) -> string (if (is_some value) (unwrap_some value) fallback)) -(fn some_or_err_string ((value (option string)) (err_code i32)) -> (result string i32) +(fn some_or_err_string ((value OptionString) (err_code i32)) -> ResultString (if (is_some value) (ok string i32 (unwrap_some value)) (err string i32 err_code))) diff --git a/examples/projects/std-layout-local-result/src/result.slo b/examples/projects/std-layout-local-result/src/result.slo index 4a7b77b..8f497bb 100644 --- a/examples/projects/std-layout-local-result/src/result.slo +++ b/examples/projects/std-layout-local-result/src/result.slo @@ -1,199 +1,227 @@ (module result (export ok_i32 err_i32 is_ok_i32 is_err_i32 unwrap_ok_i32 unwrap_err_i32 unwrap_or_i32 ok_or_none_i32 ok_u32 err_u32 is_ok_u32 is_err_u32 unwrap_ok_u32 unwrap_err_u32 unwrap_or_u32 ok_or_none_u32 ok_i64 err_i64 is_ok_i64 is_err_i64 unwrap_ok_i64 unwrap_err_i64 unwrap_or_i64 ok_or_none_i64 ok_u64 err_u64 is_ok_u64 is_err_u64 unwrap_ok_u64 unwrap_err_u64 unwrap_or_u64 ok_or_none_u64 ok_string err_string is_ok_string is_err_string unwrap_ok_string unwrap_err_string unwrap_or_string ok_or_none_string ok_f64 err_f64 is_ok_f64 is_err_f64 unwrap_ok_f64 unwrap_err_f64 unwrap_or_f64 ok_or_none_f64 ok_bool err_bool is_ok_bool is_err_bool unwrap_ok_bool unwrap_err_bool unwrap_or_bool ok_or_none_bool)) -(fn ok_i32 ((value i32)) -> (result i32 i32) +(type ResultI32 (result i32 i32)) + +(type OptionI32 (option i32)) + +(type ResultU32 (result u32 i32)) + +(type OptionU32 (option u32)) + +(type ResultI64 (result i64 i32)) + +(type OptionI64 (option i64)) + +(type ResultU64 (result u64 i32)) + +(type OptionU64 (option u64)) + +(type ResultString (result string i32)) + +(type OptionString (option string)) + +(type ResultF64 (result f64 i32)) + +(type OptionF64 (option f64)) + +(type ResultBool (result bool i32)) + +(type OptionBool (option bool)) + +(fn ok_i32 ((value i32)) -> ResultI32 (ok i32 i32 value)) -(fn err_i32 ((code i32)) -> (result i32 i32) +(fn err_i32 ((code i32)) -> ResultI32 (err i32 i32 code)) -(fn is_ok_i32 ((value (result i32 i32))) -> bool +(fn is_ok_i32 ((value ResultI32)) -> bool (std.result.is_ok value)) -(fn is_err_i32 ((value (result i32 i32))) -> bool +(fn is_err_i32 ((value ResultI32)) -> bool (std.result.is_err value)) -(fn unwrap_ok_i32 ((value (result i32 i32))) -> i32 +(fn unwrap_ok_i32 ((value ResultI32)) -> i32 (std.result.unwrap_ok value)) -(fn unwrap_err_i32 ((value (result i32 i32))) -> i32 +(fn unwrap_err_i32 ((value ResultI32)) -> i32 (std.result.unwrap_err value)) -(fn unwrap_or_i32 ((value (result i32 i32)) (fallback i32)) -> i32 +(fn unwrap_or_i32 ((value ResultI32) (fallback i32)) -> i32 (if (std.result.is_ok value) (std.result.unwrap_ok value) fallback)) -(fn ok_or_none_i32 ((value (result i32 i32))) -> (option i32) +(fn ok_or_none_i32 ((value ResultI32)) -> OptionI32 (if (std.result.is_ok value) (some i32 (std.result.unwrap_ok value)) (none i32))) -(fn ok_u32 ((value u32)) -> (result u32 i32) +(fn ok_u32 ((value u32)) -> ResultU32 (ok u32 i32 value)) -(fn err_u32 ((code i32)) -> (result u32 i32) +(fn err_u32 ((code i32)) -> ResultU32 (err u32 i32 code)) -(fn is_ok_u32 ((value (result u32 i32))) -> bool +(fn is_ok_u32 ((value ResultU32)) -> bool (std.result.is_ok value)) -(fn is_err_u32 ((value (result u32 i32))) -> bool +(fn is_err_u32 ((value ResultU32)) -> bool (std.result.is_err value)) -(fn unwrap_ok_u32 ((value (result u32 i32))) -> u32 +(fn unwrap_ok_u32 ((value ResultU32)) -> u32 (std.result.unwrap_ok value)) -(fn unwrap_err_u32 ((value (result u32 i32))) -> i32 +(fn unwrap_err_u32 ((value ResultU32)) -> i32 (std.result.unwrap_err value)) -(fn unwrap_or_u32 ((value (result u32 i32)) (fallback u32)) -> u32 +(fn unwrap_or_u32 ((value ResultU32) (fallback u32)) -> u32 (if (std.result.is_ok value) (std.result.unwrap_ok value) fallback)) -(fn ok_or_none_u32 ((value (result u32 i32))) -> (option u32) +(fn ok_or_none_u32 ((value ResultU32)) -> OptionU32 (if (std.result.is_ok value) (some u32 (std.result.unwrap_ok value)) (none u32))) -(fn ok_i64 ((value i64)) -> (result i64 i32) +(fn ok_i64 ((value i64)) -> ResultI64 (ok i64 i32 value)) -(fn err_i64 ((code i32)) -> (result i64 i32) +(fn err_i64 ((code i32)) -> ResultI64 (err i64 i32 code)) -(fn is_ok_i64 ((value (result i64 i32))) -> bool +(fn is_ok_i64 ((value ResultI64)) -> bool (std.result.is_ok value)) -(fn is_err_i64 ((value (result i64 i32))) -> bool +(fn is_err_i64 ((value ResultI64)) -> bool (std.result.is_err value)) -(fn unwrap_ok_i64 ((value (result i64 i32))) -> i64 +(fn unwrap_ok_i64 ((value ResultI64)) -> i64 (std.result.unwrap_ok value)) -(fn unwrap_err_i64 ((value (result i64 i32))) -> i32 +(fn unwrap_err_i64 ((value ResultI64)) -> i32 (std.result.unwrap_err value)) -(fn unwrap_or_i64 ((value (result i64 i32)) (fallback i64)) -> i64 +(fn unwrap_or_i64 ((value ResultI64) (fallback i64)) -> i64 (if (std.result.is_ok value) (std.result.unwrap_ok value) fallback)) -(fn ok_or_none_i64 ((value (result i64 i32))) -> (option i64) +(fn ok_or_none_i64 ((value ResultI64)) -> OptionI64 (if (std.result.is_ok value) (some i64 (std.result.unwrap_ok value)) (none i64))) -(fn ok_u64 ((value u64)) -> (result u64 i32) +(fn ok_u64 ((value u64)) -> ResultU64 (ok u64 i32 value)) -(fn err_u64 ((code i32)) -> (result u64 i32) +(fn err_u64 ((code i32)) -> ResultU64 (err u64 i32 code)) -(fn is_ok_u64 ((value (result u64 i32))) -> bool +(fn is_ok_u64 ((value ResultU64)) -> bool (std.result.is_ok value)) -(fn is_err_u64 ((value (result u64 i32))) -> bool +(fn is_err_u64 ((value ResultU64)) -> bool (std.result.is_err value)) -(fn unwrap_ok_u64 ((value (result u64 i32))) -> u64 +(fn unwrap_ok_u64 ((value ResultU64)) -> u64 (std.result.unwrap_ok value)) -(fn unwrap_err_u64 ((value (result u64 i32))) -> i32 +(fn unwrap_err_u64 ((value ResultU64)) -> i32 (std.result.unwrap_err value)) -(fn unwrap_or_u64 ((value (result u64 i32)) (fallback u64)) -> u64 +(fn unwrap_or_u64 ((value ResultU64) (fallback u64)) -> u64 (if (std.result.is_ok value) (std.result.unwrap_ok value) fallback)) -(fn ok_or_none_u64 ((value (result u64 i32))) -> (option u64) +(fn ok_or_none_u64 ((value ResultU64)) -> OptionU64 (if (std.result.is_ok value) (some u64 (std.result.unwrap_ok value)) (none u64))) -(fn ok_string ((value string)) -> (result string i32) +(fn ok_string ((value string)) -> ResultString (ok string i32 value)) -(fn err_string ((code i32)) -> (result string i32) +(fn err_string ((code i32)) -> ResultString (err string i32 code)) -(fn is_ok_string ((value (result string i32))) -> bool +(fn is_ok_string ((value ResultString)) -> bool (std.result.is_ok value)) -(fn is_err_string ((value (result string i32))) -> bool +(fn is_err_string ((value ResultString)) -> bool (std.result.is_err value)) -(fn unwrap_ok_string ((value (result string i32))) -> string +(fn unwrap_ok_string ((value ResultString)) -> string (std.result.unwrap_ok value)) -(fn unwrap_err_string ((value (result string i32))) -> i32 +(fn unwrap_err_string ((value ResultString)) -> i32 (std.result.unwrap_err value)) -(fn unwrap_or_string ((value (result string i32)) (fallback string)) -> string +(fn unwrap_or_string ((value ResultString) (fallback string)) -> string (match value ((ok payload) payload) ((err code) fallback))) -(fn ok_or_none_string ((value (result string i32))) -> (option string) +(fn ok_or_none_string ((value ResultString)) -> OptionString (if (std.result.is_ok value) (some string (std.result.unwrap_ok value)) (none string))) -(fn ok_f64 ((value f64)) -> (result f64 i32) +(fn ok_f64 ((value f64)) -> ResultF64 (ok f64 i32 value)) -(fn err_f64 ((code i32)) -> (result f64 i32) +(fn err_f64 ((code i32)) -> ResultF64 (err f64 i32 code)) -(fn is_ok_f64 ((value (result f64 i32))) -> bool +(fn is_ok_f64 ((value ResultF64)) -> bool (std.result.is_ok value)) -(fn is_err_f64 ((value (result f64 i32))) -> bool +(fn is_err_f64 ((value ResultF64)) -> bool (std.result.is_err value)) -(fn unwrap_ok_f64 ((value (result f64 i32))) -> f64 +(fn unwrap_ok_f64 ((value ResultF64)) -> f64 (std.result.unwrap_ok value)) -(fn unwrap_err_f64 ((value (result f64 i32))) -> i32 +(fn unwrap_err_f64 ((value ResultF64)) -> i32 (std.result.unwrap_err value)) -(fn unwrap_or_f64 ((value (result f64 i32)) (fallback f64)) -> f64 +(fn unwrap_or_f64 ((value ResultF64) (fallback f64)) -> f64 (if (std.result.is_ok value) (std.result.unwrap_ok value) fallback)) -(fn ok_or_none_f64 ((value (result f64 i32))) -> (option f64) +(fn ok_or_none_f64 ((value ResultF64)) -> OptionF64 (if (std.result.is_ok value) (some f64 (std.result.unwrap_ok value)) (none f64))) -(fn ok_bool ((value bool)) -> (result bool i32) +(fn ok_bool ((value bool)) -> ResultBool (ok bool i32 value)) -(fn err_bool ((code i32)) -> (result bool i32) +(fn err_bool ((code i32)) -> ResultBool (err bool i32 code)) -(fn is_ok_bool ((value (result bool i32))) -> bool +(fn is_ok_bool ((value ResultBool)) -> bool (std.result.is_ok value)) -(fn is_err_bool ((value (result bool i32))) -> bool +(fn is_err_bool ((value ResultBool)) -> bool (std.result.is_err value)) -(fn unwrap_ok_bool ((value (result bool i32))) -> bool +(fn unwrap_ok_bool ((value ResultBool)) -> bool (std.result.unwrap_ok value)) -(fn unwrap_err_bool ((value (result bool i32))) -> i32 +(fn unwrap_err_bool ((value ResultBool)) -> i32 (std.result.unwrap_err value)) -(fn unwrap_or_bool ((value (result bool i32)) (fallback bool)) -> bool +(fn unwrap_or_bool ((value ResultBool) (fallback bool)) -> bool (if (std.result.is_ok value) (std.result.unwrap_ok value) fallback)) -(fn ok_or_none_bool ((value (result bool i32))) -> (option bool) +(fn ok_or_none_bool ((value ResultBool)) -> OptionBool (if (std.result.is_ok value) (some bool (std.result.unwrap_ok value)) (none bool))) diff --git a/examples/projects/std-layout-local-vec_bool/src/vec_bool.slo b/examples/projects/std-layout-local-vec_bool/src/vec_bool.slo index bc08933..4ea8796 100644 --- a/examples/projects/std-layout-local-vec_bool/src/vec_bool.slo +++ b/examples/projects/std-layout-local-vec_bool/src/vec_bool.slo @@ -1,120 +1,122 @@ (module vec_bool (export empty append len at singleton append2 append3 pair triple is_empty index_or first_or last_or index_option first_option last_option index_of_option last_index_of_option contains count_of concat take starts_with without_prefix ends_with without_suffix drop reverse subvec insert_at insert_range replace_at replace_range remove_at remove_range)) -(fn empty () -> (vec bool) +(type VecBool (vec bool)) + +(fn empty () -> VecBool (std.vec.bool.empty)) -(fn append ((values (vec bool)) (value bool)) -> (vec bool) +(fn append ((values VecBool) (value bool)) -> VecBool (std.vec.bool.append values value)) -(fn len ((values (vec bool))) -> i32 +(fn len ((values VecBool)) -> i32 (std.vec.bool.len values)) -(fn at ((values (vec bool)) (position i32)) -> bool +(fn at ((values VecBool) (position i32)) -> bool (std.vec.bool.index values position)) -(fn singleton ((value bool)) -> (vec bool) +(fn singleton ((value bool)) -> VecBool (append (empty) value)) -(fn append2 ((values (vec bool)) (first bool) (second bool)) -> (vec bool) +(fn append2 ((values VecBool) (first bool) (second bool)) -> VecBool (append (append values first) second)) -(fn append3 ((values (vec bool)) (first bool) (second bool) (third bool)) -> (vec bool) +(fn append3 ((values VecBool) (first bool) (second bool) (third bool)) -> VecBool (append (append2 values first second) third)) -(fn pair ((first bool) (second bool)) -> (vec bool) +(fn pair ((first bool) (second bool)) -> VecBool (append2 (empty) first second)) -(fn triple ((first bool) (second bool) (third bool)) -> (vec bool) +(fn triple ((first bool) (second bool) (third bool)) -> VecBool (append3 (empty) first second third)) -(fn is_empty ((values (vec bool))) -> bool +(fn is_empty ((values VecBool)) -> bool (= (len values) 0)) -(fn index_or ((values (vec bool)) (position i32) (fallback bool)) -> bool +(fn index_or ((values VecBool) (position i32) (fallback bool)) -> bool (if (< position 0) fallback (if (< position (len values)) (at values position) fallback))) -(fn first_or ((values (vec bool)) (fallback bool)) -> bool +(fn first_or ((values VecBool) (fallback bool)) -> bool (index_or values 0 fallback)) -(fn last_or ((values (vec bool)) (fallback bool)) -> bool +(fn last_or ((values VecBool) (fallback bool)) -> bool (if (is_empty values) fallback (at values (- (len values) 1)))) -(fn index_option ((values (vec bool)) (position i32)) -> (option bool) +(fn index_option ((values VecBool) (position i32)) -> (option bool) (if (< position 0) (none bool) (if (< position (len values)) (some bool (at values position)) (none bool)))) -(fn first_option ((values (vec bool))) -> (option bool) +(fn first_option ((values VecBool)) -> (option bool) (index_option values 0)) -(fn last_option ((values (vec bool))) -> (option bool) +(fn last_option ((values VecBool)) -> (option bool) (if (is_empty values) (none bool) (some bool (at values (- (len values) 1))))) -(fn index_of_option_loop ((values (vec bool)) (target bool) (position i32) (values_len i32)) -> (option i32) +(fn index_of_option_loop ((values VecBool) (target bool) (position i32) (values_len i32)) -> (option i32) (if (< position values_len) (if (= (at values position) target) (some i32 position) (index_of_option_loop values target (+ position 1) values_len)) (none i32))) -(fn index_of_option ((values (vec bool)) (target bool)) -> (option i32) +(fn index_of_option ((values VecBool) (target bool)) -> (option i32) (index_of_option_loop values target 0 (len values))) -(fn last_index_of_option_loop ((values (vec bool)) (target bool) (position i32) (values_len i32) (found_position (option i32))) -> (option i32) +(fn last_index_of_option_loop ((values VecBool) (target bool) (position i32) (values_len i32) (found_position (option i32))) -> (option i32) (if (< position values_len) (last_index_of_option_loop values target (+ position 1) values_len (if (= (at values position) target) (some i32 position) found_position)) found_position)) -(fn last_index_of_option ((values (vec bool)) (target bool)) -> (option i32) +(fn last_index_of_option ((values VecBool) (target bool)) -> (option i32) (last_index_of_option_loop values target 0 (len values) (none i32))) -(fn contains_loop ((values (vec bool)) (target bool) (position i32) (values_len i32)) -> bool +(fn contains_loop ((values VecBool) (target bool) (position i32) (values_len i32)) -> bool (if (< position values_len) (if (= (at values position) target) true (contains_loop values target (+ position 1) values_len)) false)) -(fn contains ((values (vec bool)) (target bool)) -> bool +(fn contains ((values VecBool) (target bool)) -> bool (contains_loop values target 0 (len values))) -(fn count_of_loop ((values (vec bool)) (target bool) (position i32) (values_len i32) (hits i32)) -> i32 +(fn count_of_loop ((values VecBool) (target bool) (position i32) (values_len i32) (hits i32)) -> i32 (if (< position values_len) (count_of_loop values target (+ position 1) values_len (+ hits (if (= (at values position) target) 1 0))) hits)) -(fn count_of ((values (vec bool)) (target bool)) -> i32 +(fn count_of ((values VecBool) (target bool)) -> i32 (count_of_loop values target 0 (len values) 0)) -(fn concat_loop ((result (vec bool)) (right (vec bool)) (position i32) (right_len i32)) -> (vec bool) +(fn concat_loop ((result VecBool) (right VecBool) (position i32) (right_len i32)) -> VecBool (if (< position right_len) (concat_loop (append result (at right position)) right (+ position 1) right_len) result)) -(fn concat ((left (vec bool)) (right (vec bool))) -> (vec bool) +(fn concat ((left VecBool) (right VecBool)) -> VecBool (let right_len i32 (len right)) (concat_loop left right 0 right_len)) -(fn take_loop ((values (vec bool)) (position i32) (limit i32) (result (vec bool))) -> (vec bool) +(fn take_loop ((values VecBool) (position i32) (limit i32) (result VecBool)) -> VecBool (if (< position limit) (take_loop values (+ position 1) limit (append result (at values position))) result)) -(fn take ((values (vec bool)) (count i32)) -> (vec bool) +(fn take ((values VecBool) (count i32)) -> VecBool (let values_len i32 (len values)) (if (< count 0) (empty) @@ -122,35 +124,35 @@ (take_loop values 0 count (empty)) values))) -(fn starts_with ((values (vec bool)) (prefix (vec bool))) -> bool +(fn starts_with ((values VecBool) (prefix VecBool)) -> bool (let prefix_len i32 (len prefix)) (if (< (len values) prefix_len) false (= (take values prefix_len) prefix))) -(fn without_prefix ((values (vec bool)) (prefix (vec bool))) -> (vec bool) +(fn without_prefix ((values VecBool) (prefix VecBool)) -> VecBool (if (starts_with values prefix) (drop values (len prefix)) values)) -(fn ends_with ((values (vec bool)) (suffix (vec bool))) -> bool +(fn ends_with ((values VecBool) (suffix VecBool)) -> bool (let values_len i32 (len values)) (let suffix_len i32 (len suffix)) (if (< values_len suffix_len) false (= (drop values (- values_len suffix_len)) suffix))) -(fn without_suffix ((values (vec bool)) (suffix (vec bool))) -> (vec bool) +(fn without_suffix ((values VecBool) (suffix VecBool)) -> VecBool (if (ends_with values suffix) (take values (- (len values) (len suffix))) values)) -(fn drop_loop ((values (vec bool)) (position i32) (values_len i32) (result (vec bool))) -> (vec bool) +(fn drop_loop ((values VecBool) (position i32) (values_len i32) (result VecBool)) -> VecBool (if (< position values_len) (drop_loop values (+ position 1) values_len (append result (at values position))) result)) -(fn drop ((values (vec bool)) (count i32)) -> (vec bool) +(fn drop ((values VecBool) (count i32)) -> VecBool (let values_len i32 (len values)) (if (< count 0) values @@ -158,22 +160,22 @@ (drop_loop values count values_len (empty)) (empty)))) -(fn reverse_loop ((values (vec bool)) (position i32) (result (vec bool))) -> (vec bool) +(fn reverse_loop ((values VecBool) (position i32) (result VecBool)) -> VecBool (if (< position 0) result (reverse_loop values (- position 1) (append result (at values position))))) -(fn reverse ((values (vec bool))) -> (vec bool) +(fn reverse ((values VecBool)) -> VecBool (reverse_loop values (- (len values) 1) (empty))) -(fn subvec ((values (vec bool)) (start i32) (end_exclusive i32)) -> (vec bool) +(fn subvec ((values VecBool) (start i32) (end_exclusive i32)) -> VecBool (if (< start 0) (empty) (if (< start end_exclusive) (take (drop values start) (- end_exclusive start)) (empty)))) -(fn insert_at ((values (vec bool)) (position i32) (value bool)) -> (vec bool) +(fn insert_at ((values VecBool) (position i32) (value bool)) -> VecBool (let values_len i32 (len values)) (if (< position 0) values @@ -183,7 +185,7 @@ (append values value) values)))) -(fn insert_range ((values (vec bool)) (position i32) (inserted (vec bool))) -> (vec bool) +(fn insert_range ((values VecBool) (position i32) (inserted VecBool)) -> VecBool (let values_len i32 (len values)) (if (< position 0) values @@ -193,14 +195,14 @@ (concat values inserted) values)))) -(fn replace_at ((values (vec bool)) (position i32) (replacement bool)) -> (vec bool) +(fn replace_at ((values VecBool) (position i32) (replacement bool)) -> VecBool (if (< position 0) values (if (< position (len values)) (concat (append (take values position) replacement) (drop values (+ position 1))) values))) -(fn replace_range ((values (vec bool)) (start i32) (end_exclusive i32) (replacement (vec bool))) -> (vec bool) +(fn replace_range ((values VecBool) (start i32) (end_exclusive i32) (replacement VecBool)) -> VecBool (let values_len i32 (len values)) (if (< start 0) values @@ -210,14 +212,14 @@ values) values))) -(fn remove_at ((values (vec bool)) (position i32)) -> (vec bool) +(fn remove_at ((values VecBool) (position i32)) -> VecBool (if (< position 0) values (if (< position (len values)) (concat (take values position) (drop values (+ position 1))) values))) -(fn remove_range ((values (vec bool)) (start i32) (end_exclusive i32)) -> (vec bool) +(fn remove_range ((values VecBool) (start i32) (end_exclusive i32)) -> VecBool (let values_len i32 (len values)) (if (< start 0) values diff --git a/examples/projects/std-layout-local-vec_f64/src/vec_f64.slo b/examples/projects/std-layout-local-vec_f64/src/vec_f64.slo index 0b36953..8e8f6ef 100644 --- a/examples/projects/std-layout-local-vec_f64/src/vec_f64.slo +++ b/examples/projects/std-layout-local-vec_f64/src/vec_f64.slo @@ -1,118 +1,120 @@ (module vec_f64 (export empty append len at singleton append2 append3 pair triple is_empty index_or first_or last_or index_option first_option last_option index_of_option last_index_of_option contains sum concat take starts_with without_prefix ends_with without_suffix drop reverse subvec insert_at insert_range replace_at replace_range remove_at remove_range)) -(fn empty () -> (vec f64) +(type VecF64 (vec f64)) + +(fn empty () -> VecF64 (std.vec.f64.empty)) -(fn append ((values (vec f64)) (value f64)) -> (vec f64) +(fn append ((values VecF64) (value f64)) -> VecF64 (std.vec.f64.append values value)) -(fn len ((values (vec f64))) -> i32 +(fn len ((values VecF64)) -> i32 (std.vec.f64.len values)) -(fn at ((values (vec f64)) (position i32)) -> f64 +(fn at ((values VecF64) (position i32)) -> f64 (std.vec.f64.index values position)) -(fn singleton ((value f64)) -> (vec f64) +(fn singleton ((value f64)) -> VecF64 (append (empty) value)) -(fn append2 ((values (vec f64)) (first f64) (second f64)) -> (vec f64) +(fn append2 ((values VecF64) (first f64) (second f64)) -> VecF64 (append (append values first) second)) -(fn append3 ((values (vec f64)) (first f64) (second f64) (third f64)) -> (vec f64) +(fn append3 ((values VecF64) (first f64) (second f64) (third f64)) -> VecF64 (append (append2 values first second) third)) -(fn pair ((first f64) (second f64)) -> (vec f64) +(fn pair ((first f64) (second f64)) -> VecF64 (append2 (empty) first second)) -(fn triple ((first f64) (second f64) (third f64)) -> (vec f64) +(fn triple ((first f64) (second f64) (third f64)) -> VecF64 (append3 (empty) first second third)) -(fn is_empty ((values (vec f64))) -> bool +(fn is_empty ((values VecF64)) -> bool (= (len values) 0)) -(fn index_or ((values (vec f64)) (position i32) (fallback f64)) -> f64 +(fn index_or ((values VecF64) (position i32) (fallback f64)) -> f64 (if (< position 0) fallback (if (< position (len values)) (at values position) fallback))) -(fn first_or ((values (vec f64)) (fallback f64)) -> f64 +(fn first_or ((values VecF64) (fallback f64)) -> f64 (index_or values 0 fallback)) -(fn last_or ((values (vec f64)) (fallback f64)) -> f64 +(fn last_or ((values VecF64) (fallback f64)) -> f64 (if (is_empty values) fallback (at values (- (len values) 1)))) -(fn index_option ((values (vec f64)) (position i32)) -> (option f64) +(fn index_option ((values VecF64) (position i32)) -> (option f64) (if (< position 0) (none f64) (if (< position (len values)) (some f64 (at values position)) (none f64)))) -(fn first_option ((values (vec f64))) -> (option f64) +(fn first_option ((values VecF64)) -> (option f64) (index_option values 0)) -(fn last_option ((values (vec f64))) -> (option f64) +(fn last_option ((values VecF64)) -> (option f64) (if (is_empty values) (none f64) (some f64 (at values (- (len values) 1))))) -(fn index_of_option_loop ((values (vec f64)) (target f64) (position i32) (values_len i32)) -> (option i32) +(fn index_of_option_loop ((values VecF64) (target f64) (position i32) (values_len i32)) -> (option i32) (if (< position values_len) (if (= (at values position) target) (some i32 position) (index_of_option_loop values target (+ position 1) values_len)) (none i32))) -(fn index_of_option ((values (vec f64)) (target f64)) -> (option i32) +(fn index_of_option ((values VecF64) (target f64)) -> (option i32) (index_of_option_loop values target 0 (len values))) -(fn last_index_of_option_loop ((values (vec f64)) (target f64) (position i32) (values_len i32) (found_position (option i32))) -> (option i32) +(fn last_index_of_option_loop ((values VecF64) (target f64) (position i32) (values_len i32) (found_position (option i32))) -> (option i32) (if (< position values_len) (last_index_of_option_loop values target (+ position 1) values_len (if (= (at values position) target) (some i32 position) found_position)) found_position)) -(fn last_index_of_option ((values (vec f64)) (target f64)) -> (option i32) +(fn last_index_of_option ((values VecF64) (target f64)) -> (option i32) (last_index_of_option_loop values target 0 (len values) (none i32))) -(fn contains_loop ((values (vec f64)) (target f64) (position i32) (values_len i32)) -> bool +(fn contains_loop ((values VecF64) (target f64) (position i32) (values_len i32)) -> bool (if (< position values_len) (if (= (at values position) target) true (contains_loop values target (+ position 1) values_len)) false)) -(fn contains ((values (vec f64)) (target f64)) -> bool +(fn contains ((values VecF64) (target f64)) -> bool (contains_loop values target 0 (len values))) -(fn sum_loop ((values (vec f64)) (position i32) (values_len i32) (total f64)) -> f64 +(fn sum_loop ((values VecF64) (position i32) (values_len i32) (total f64)) -> f64 (if (< position values_len) (sum_loop values (+ position 1) values_len (+ total (at values position))) total)) -(fn sum ((values (vec f64))) -> f64 +(fn sum ((values VecF64)) -> f64 (sum_loop values 0 (len values) 0.0)) -(fn concat_loop ((result (vec f64)) (right (vec f64)) (position i32) (right_len i32)) -> (vec f64) +(fn concat_loop ((result VecF64) (right VecF64) (position i32) (right_len i32)) -> VecF64 (if (< position right_len) (concat_loop (append result (at right position)) right (+ position 1) right_len) result)) -(fn concat ((left (vec f64)) (right (vec f64))) -> (vec f64) +(fn concat ((left VecF64) (right VecF64)) -> VecF64 (let right_len i32 (len right)) (concat_loop left right 0 right_len)) -(fn take_loop ((values (vec f64)) (position i32) (limit i32) (result (vec f64))) -> (vec f64) +(fn take_loop ((values VecF64) (position i32) (limit i32) (result VecF64)) -> VecF64 (if (< position limit) (take_loop values (+ position 1) limit (append result (at values position))) result)) -(fn take ((values (vec f64)) (count i32)) -> (vec f64) +(fn take ((values VecF64) (count i32)) -> VecF64 (let values_len i32 (len values)) (if (< count 0) (empty) @@ -120,35 +122,35 @@ (take_loop values 0 count (empty)) values))) -(fn starts_with ((values (vec f64)) (prefix (vec f64))) -> bool +(fn starts_with ((values VecF64) (prefix VecF64)) -> bool (let prefix_len i32 (len prefix)) (if (< (len values) prefix_len) false (= (take values prefix_len) prefix))) -(fn without_prefix ((values (vec f64)) (prefix (vec f64))) -> (vec f64) +(fn without_prefix ((values VecF64) (prefix VecF64)) -> VecF64 (if (starts_with values prefix) (drop values (len prefix)) values)) -(fn ends_with ((values (vec f64)) (suffix (vec f64))) -> bool +(fn ends_with ((values VecF64) (suffix VecF64)) -> bool (let values_len i32 (len values)) (let suffix_len i32 (len suffix)) (if (< values_len suffix_len) false (= (drop values (- values_len suffix_len)) suffix))) -(fn without_suffix ((values (vec f64)) (suffix (vec f64))) -> (vec f64) +(fn without_suffix ((values VecF64) (suffix VecF64)) -> VecF64 (if (ends_with values suffix) (take values (- (len values) (len suffix))) values)) -(fn drop_loop ((values (vec f64)) (position i32) (values_len i32) (result (vec f64))) -> (vec f64) +(fn drop_loop ((values VecF64) (position i32) (values_len i32) (result VecF64)) -> VecF64 (if (< position values_len) (drop_loop values (+ position 1) values_len (append result (at values position))) result)) -(fn drop ((values (vec f64)) (count i32)) -> (vec f64) +(fn drop ((values VecF64) (count i32)) -> VecF64 (let values_len i32 (len values)) (if (< count 0) values @@ -156,22 +158,22 @@ (drop_loop values count values_len (empty)) (empty)))) -(fn reverse_loop ((values (vec f64)) (position i32) (result (vec f64))) -> (vec f64) +(fn reverse_loop ((values VecF64) (position i32) (result VecF64)) -> VecF64 (if (< position 0) result (reverse_loop values (- position 1) (append result (at values position))))) -(fn reverse ((values (vec f64))) -> (vec f64) +(fn reverse ((values VecF64)) -> VecF64 (reverse_loop values (- (len values) 1) (empty))) -(fn subvec ((values (vec f64)) (start i32) (end_exclusive i32)) -> (vec f64) +(fn subvec ((values VecF64) (start i32) (end_exclusive i32)) -> VecF64 (if (< start 0) (empty) (if (< start end_exclusive) (take (drop values start) (- end_exclusive start)) (empty)))) -(fn insert_at ((values (vec f64)) (position i32) (value f64)) -> (vec f64) +(fn insert_at ((values VecF64) (position i32) (value f64)) -> VecF64 (let values_len i32 (len values)) (if (< position 0) values @@ -181,7 +183,7 @@ (append values value) values)))) -(fn insert_range ((values (vec f64)) (position i32) (inserted (vec f64))) -> (vec f64) +(fn insert_range ((values VecF64) (position i32) (inserted VecF64)) -> VecF64 (let values_len i32 (len values)) (if (< position 0) values @@ -191,14 +193,14 @@ (concat values inserted) values)))) -(fn replace_at ((values (vec f64)) (position i32) (replacement f64)) -> (vec f64) +(fn replace_at ((values VecF64) (position i32) (replacement f64)) -> VecF64 (if (< position 0) values (if (< position (len values)) (concat (append (take values position) replacement) (drop values (+ position 1))) values))) -(fn replace_range ((values (vec f64)) (start i32) (end_exclusive i32) (replacement (vec f64))) -> (vec f64) +(fn replace_range ((values VecF64) (start i32) (end_exclusive i32) (replacement VecF64)) -> VecF64 (let values_len i32 (len values)) (if (< start 0) values @@ -208,14 +210,14 @@ values) values))) -(fn remove_at ((values (vec f64)) (position i32)) -> (vec f64) +(fn remove_at ((values VecF64) (position i32)) -> VecF64 (if (< position 0) values (if (< position (len values)) (concat (take values position) (drop values (+ position 1))) values))) -(fn remove_range ((values (vec f64)) (start i32) (end_exclusive i32)) -> (vec f64) +(fn remove_range ((values VecF64) (start i32) (end_exclusive i32)) -> VecF64 (let values_len i32 (len values)) (if (< start 0) values diff --git a/examples/projects/std-layout-local-vec_i32/src/option.slo b/examples/projects/std-layout-local-vec_i32/src/option.slo index 20baf8f..99e227b 100644 --- a/examples/projects/std-layout-local-vec_i32/src/option.slo +++ b/examples/projects/std-layout-local-vec_i32/src/option.slo @@ -1,7 +1,9 @@ (module option (export some_i32 none_i32)) -(fn some_i32 ((value i32)) -> (option i32) +(type OptionI32 (option i32)) + +(fn some_i32 ((value i32)) -> OptionI32 (some i32 value)) -(fn none_i32 () -> (option i32) +(fn none_i32 () -> OptionI32 (none i32)) diff --git a/examples/projects/std-layout-local-vec_i32/src/vec_i32.slo b/examples/projects/std-layout-local-vec_i32/src/vec_i32.slo index 43a052b..346e3a0 100644 --- a/examples/projects/std-layout-local-vec_i32/src/vec_i32.slo +++ b/examples/projects/std-layout-local-vec_i32/src/vec_i32.slo @@ -2,97 +2,99 @@ (import option (some_i32 none_i32)) -(fn empty () -> (vec i32) +(type VecI32 (vec i32)) + +(fn empty () -> VecI32 (std.vec.i32.empty)) -(fn append ((values (vec i32)) (value i32)) -> (vec i32) +(fn append ((values VecI32) (value i32)) -> VecI32 (std.vec.i32.append values value)) -(fn len ((values (vec i32))) -> i32 +(fn len ((values VecI32)) -> i32 (std.vec.i32.len values)) -(fn at ((values (vec i32)) (position i32)) -> i32 +(fn at ((values VecI32) (position i32)) -> i32 (std.vec.i32.index values position)) -(fn singleton ((value i32)) -> (vec i32) +(fn singleton ((value i32)) -> VecI32 (append (empty) value)) -(fn append2 ((values (vec i32)) (first i32) (second i32)) -> (vec i32) +(fn append2 ((values VecI32) (first i32) (second i32)) -> VecI32 (append (append values first) second)) -(fn append3 ((values (vec i32)) (first i32) (second i32) (third i32)) -> (vec i32) +(fn append3 ((values VecI32) (first i32) (second i32) (third i32)) -> VecI32 (append (append2 values first second) third)) -(fn pair ((first i32) (second i32)) -> (vec i32) +(fn pair ((first i32) (second i32)) -> VecI32 (append2 (empty) first second)) -(fn triple ((first i32) (second i32) (third i32)) -> (vec i32) +(fn triple ((first i32) (second i32) (third i32)) -> VecI32 (append3 (empty) first second third)) -(fn repeat_loop ((value i32) (remaining i32) (result (vec i32))) -> (vec i32) +(fn repeat_loop ((value i32) (remaining i32) (result VecI32)) -> VecI32 (if (< remaining 1) result (repeat_loop value (- remaining 1) (append result value)))) -(fn repeat ((value i32) (count i32)) -> (vec i32) +(fn repeat ((value i32) (count i32)) -> VecI32 (if (< count 1) (empty) (repeat_loop value count (empty)))) -(fn range_from_zero_loop ((current i32) (count i32) (result (vec i32))) -> (vec i32) +(fn range_from_zero_loop ((current i32) (count i32) (result VecI32)) -> VecI32 (if (< current count) (range_from_zero_loop (+ current 1) count (append result current)) result)) -(fn range_loop ((current i32) (end_exclusive i32) (result (vec i32))) -> (vec i32) +(fn range_loop ((current i32) (end_exclusive i32) (result VecI32)) -> VecI32 (if (< current end_exclusive) (range_loop (+ current 1) end_exclusive (append result current)) result)) -(fn range ((start i32) (end_exclusive i32)) -> (vec i32) +(fn range ((start i32) (end_exclusive i32)) -> VecI32 (if (< start end_exclusive) (range_loop start end_exclusive (empty)) (empty))) -(fn range_from_zero ((count i32)) -> (vec i32) +(fn range_from_zero ((count i32)) -> VecI32 (if (< count 1) (empty) (range_from_zero_loop 0 count (empty)))) -(fn is_empty ((values (vec i32))) -> bool +(fn is_empty ((values VecI32)) -> bool (= (len values) 0)) -(fn index_or ((values (vec i32)) (position i32) (fallback i32)) -> i32 +(fn index_or ((values VecI32) (position i32) (fallback i32)) -> i32 (if (< position 0) fallback (if (< position (len values)) (at values position) fallback))) -(fn first_or ((values (vec i32)) (fallback i32)) -> i32 +(fn first_or ((values VecI32) (fallback i32)) -> i32 (index_or values 0 fallback)) -(fn last_or ((values (vec i32)) (fallback i32)) -> i32 +(fn last_or ((values VecI32) (fallback i32)) -> i32 (if (is_empty values) fallback (at values (- (len values) 1)))) -(fn index_option ((values (vec i32)) (position i32)) -> (option i32) +(fn index_option ((values VecI32) (position i32)) -> (option i32) (if (< position 0) (none_i32) (if (< position (len values)) (some_i32 (at values position)) (none_i32)))) -(fn first_option ((values (vec i32))) -> (option i32) +(fn first_option ((values VecI32)) -> (option i32) (index_option values 0)) -(fn last_option ((values (vec i32))) -> (option i32) +(fn last_option ((values VecI32)) -> (option i32) (if (is_empty values) (none_i32) (some_i32 (at values (- (len values) 1))))) -(fn index_of_option ((values (vec i32)) (target i32)) -> (option i32) +(fn index_of_option ((values VecI32) (target i32)) -> (option i32) (var position i32 0) (var found_position i32 -1) (while (and (< position (len values)) (< found_position 0)) @@ -104,7 +106,7 @@ (none_i32) (some_i32 found_position))) -(fn last_index_of_option ((values (vec i32)) (target i32)) -> (option i32) +(fn last_index_of_option ((values VecI32) (target i32)) -> (option i32) (var position i32 0) (var found_position i32 -1) (while (< position (len values)) @@ -116,7 +118,7 @@ (none_i32) (some_i32 found_position))) -(fn count_of ((values (vec i32)) (target i32)) -> i32 +(fn count_of ((values VecI32) (target i32)) -> i32 (var position i32 0) (var hits i32 0) (while (< position (len values)) @@ -126,7 +128,7 @@ (set position (+ position 1))) hits) -(fn contains ((values (vec i32)) (target i32)) -> bool +(fn contains ((values VecI32) (target i32)) -> bool (var position i32 0) (var hits i32 0) (while (< position (len values)) @@ -136,7 +138,7 @@ (set position (+ position 1))) (> hits 0)) -(fn sum ((values (vec i32))) -> i32 +(fn sum ((values VecI32)) -> i32 (var position i32 0) (var total i32 0) (while (< position (len values)) @@ -144,21 +146,21 @@ (set position (+ position 1))) total) -(fn concat_loop ((result (vec i32)) (right (vec i32)) (position i32) (right_len i32)) -> (vec i32) +(fn concat_loop ((result VecI32) (right VecI32) (position i32) (right_len i32)) -> VecI32 (if (< position right_len) (concat_loop (append result (at right position)) right (+ position 1) right_len) result)) -(fn concat ((left (vec i32)) (right (vec i32))) -> (vec i32) +(fn concat ((left VecI32) (right VecI32)) -> VecI32 (let right_len i32 (len right)) (concat_loop left right 0 right_len)) -(fn take_loop ((values (vec i32)) (position i32) (limit i32) (result (vec i32))) -> (vec i32) +(fn take_loop ((values VecI32) (position i32) (limit i32) (result VecI32)) -> VecI32 (if (< position limit) (take_loop values (+ position 1) limit (append result (at values position))) result)) -(fn take ((values (vec i32)) (count i32)) -> (vec i32) +(fn take ((values VecI32) (count i32)) -> VecI32 (let values_len i32 (len values)) (if (< count 0) (empty) @@ -166,35 +168,35 @@ (take_loop values 0 count (empty)) values))) -(fn starts_with ((values (vec i32)) (prefix (vec i32))) -> bool +(fn starts_with ((values VecI32) (prefix VecI32)) -> bool (let prefix_len i32 (len prefix)) (if (< (len values) prefix_len) false (= (take values prefix_len) prefix))) -(fn without_prefix ((values (vec i32)) (prefix (vec i32))) -> (vec i32) +(fn without_prefix ((values VecI32) (prefix VecI32)) -> VecI32 (if (starts_with values prefix) (drop values (len prefix)) values)) -(fn ends_with ((values (vec i32)) (suffix (vec i32))) -> bool +(fn ends_with ((values VecI32) (suffix VecI32)) -> bool (let values_len i32 (len values)) (let suffix_len i32 (len suffix)) (if (< values_len suffix_len) false (= (drop values (- values_len suffix_len)) suffix))) -(fn without_suffix ((values (vec i32)) (suffix (vec i32))) -> (vec i32) +(fn without_suffix ((values VecI32) (suffix VecI32)) -> VecI32 (if (ends_with values suffix) (take values (- (len values) (len suffix))) values)) -(fn drop_loop ((values (vec i32)) (position i32) (values_len i32) (result (vec i32))) -> (vec i32) +(fn drop_loop ((values VecI32) (position i32) (values_len i32) (result VecI32)) -> VecI32 (if (< position values_len) (drop_loop values (+ position 1) values_len (append result (at values position))) result)) -(fn drop ((values (vec i32)) (count i32)) -> (vec i32) +(fn drop ((values VecI32) (count i32)) -> VecI32 (let values_len i32 (len values)) (if (< count 0) values @@ -202,22 +204,22 @@ (drop_loop values count values_len (empty)) (empty)))) -(fn reverse_loop ((values (vec i32)) (position i32) (result (vec i32))) -> (vec i32) +(fn reverse_loop ((values VecI32) (position i32) (result VecI32)) -> VecI32 (if (< position 0) result (reverse_loop values (- position 1) (append result (at values position))))) -(fn reverse ((values (vec i32))) -> (vec i32) +(fn reverse ((values VecI32)) -> VecI32 (reverse_loop values (- (len values) 1) (empty))) -(fn subvec ((values (vec i32)) (start i32) (end_exclusive i32)) -> (vec i32) +(fn subvec ((values VecI32) (start i32) (end_exclusive i32)) -> VecI32 (if (< start 0) (empty) (if (< start end_exclusive) (take (drop values start) (- end_exclusive start)) (empty)))) -(fn insert_at ((values (vec i32)) (position i32) (value i32)) -> (vec i32) +(fn insert_at ((values VecI32) (position i32) (value i32)) -> VecI32 (if (< position 0) values (if (< position (len values)) @@ -226,7 +228,7 @@ (append values value) values)))) -(fn insert_range ((values (vec i32)) (position i32) (inserted (vec i32))) -> (vec i32) +(fn insert_range ((values VecI32) (position i32) (inserted VecI32)) -> VecI32 (if (< position 0) values (if (< position (len values)) @@ -235,14 +237,14 @@ (concat values inserted) values)))) -(fn replace_at ((values (vec i32)) (position i32) (replacement i32)) -> (vec i32) +(fn replace_at ((values VecI32) (position i32) (replacement i32)) -> VecI32 (if (< position 0) values (if (< position (len values)) (concat (append (take values position) replacement) (drop values (+ position 1))) values))) -(fn replace_range ((values (vec i32)) (start i32) (end_exclusive i32) (replacement (vec i32))) -> (vec i32) +(fn replace_range ((values VecI32) (start i32) (end_exclusive i32) (replacement VecI32)) -> VecI32 (let values_len i32 (len values)) (if (< start 0) values @@ -252,14 +254,14 @@ values) values))) -(fn remove_at ((values (vec i32)) (position i32)) -> (vec i32) +(fn remove_at ((values VecI32) (position i32)) -> VecI32 (if (< position 0) values (if (< position (len values)) (concat (take values position) (drop values (+ position 1))) values))) -(fn remove_range ((values (vec i32)) (start i32) (end_exclusive i32)) -> (vec i32) +(fn remove_range ((values VecI32) (start i32) (end_exclusive i32)) -> VecI32 (let values_len i32 (len values)) (if (< start 0) values diff --git a/examples/projects/std-layout-local-vec_i64/src/vec_i64.slo b/examples/projects/std-layout-local-vec_i64/src/vec_i64.slo index 7327e52..7feeece 100644 --- a/examples/projects/std-layout-local-vec_i64/src/vec_i64.slo +++ b/examples/projects/std-layout-local-vec_i64/src/vec_i64.slo @@ -1,118 +1,120 @@ (module vec_i64 (export empty append len at singleton append2 append3 pair triple is_empty index_or first_or last_or index_option first_option last_option index_of_option last_index_of_option contains sum concat take drop reverse subvec insert_at insert_range replace_at replace_range remove_at remove_range)) -(fn empty () -> (vec i64) +(type VecI64 (vec i64)) + +(fn empty () -> VecI64 (std.vec.i64.empty)) -(fn append ((values (vec i64)) (value i64)) -> (vec i64) +(fn append ((values VecI64) (value i64)) -> VecI64 (std.vec.i64.append values value)) -(fn len ((values (vec i64))) -> i32 +(fn len ((values VecI64)) -> i32 (std.vec.i64.len values)) -(fn at ((values (vec i64)) (position i32)) -> i64 +(fn at ((values VecI64) (position i32)) -> i64 (std.vec.i64.index values position)) -(fn singleton ((value i64)) -> (vec i64) +(fn singleton ((value i64)) -> VecI64 (append (empty) value)) -(fn append2 ((values (vec i64)) (first i64) (second i64)) -> (vec i64) +(fn append2 ((values VecI64) (first i64) (second i64)) -> VecI64 (append (append values first) second)) -(fn append3 ((values (vec i64)) (first i64) (second i64) (third i64)) -> (vec i64) +(fn append3 ((values VecI64) (first i64) (second i64) (third i64)) -> VecI64 (append (append2 values first second) third)) -(fn pair ((first i64) (second i64)) -> (vec i64) +(fn pair ((first i64) (second i64)) -> VecI64 (append2 (empty) first second)) -(fn triple ((first i64) (second i64) (third i64)) -> (vec i64) +(fn triple ((first i64) (second i64) (third i64)) -> VecI64 (append3 (empty) first second third)) -(fn is_empty ((values (vec i64))) -> bool +(fn is_empty ((values VecI64)) -> bool (= (len values) 0)) -(fn index_or ((values (vec i64)) (position i32) (fallback i64)) -> i64 +(fn index_or ((values VecI64) (position i32) (fallback i64)) -> i64 (if (< position 0) fallback (if (< position (len values)) (at values position) fallback))) -(fn first_or ((values (vec i64)) (fallback i64)) -> i64 +(fn first_or ((values VecI64) (fallback i64)) -> i64 (index_or values 0 fallback)) -(fn last_or ((values (vec i64)) (fallback i64)) -> i64 +(fn last_or ((values VecI64) (fallback i64)) -> i64 (if (is_empty values) fallback (at values (- (len values) 1)))) -(fn index_option ((values (vec i64)) (position i32)) -> (option i64) +(fn index_option ((values VecI64) (position i32)) -> (option i64) (if (< position 0) (none i64) (if (< position (len values)) (some i64 (at values position)) (none i64)))) -(fn first_option ((values (vec i64))) -> (option i64) +(fn first_option ((values VecI64)) -> (option i64) (index_option values 0)) -(fn last_option ((values (vec i64))) -> (option i64) +(fn last_option ((values VecI64)) -> (option i64) (if (is_empty values) (none i64) (some i64 (at values (- (len values) 1))))) -(fn index_of_option_loop ((values (vec i64)) (target i64) (position i32) (values_len i32)) -> (option i32) +(fn index_of_option_loop ((values VecI64) (target i64) (position i32) (values_len i32)) -> (option i32) (if (< position values_len) (if (= (at values position) target) (some i32 position) (index_of_option_loop values target (+ position 1) values_len)) (none i32))) -(fn index_of_option ((values (vec i64)) (target i64)) -> (option i32) +(fn index_of_option ((values VecI64) (target i64)) -> (option i32) (index_of_option_loop values target 0 (len values))) -(fn last_index_of_option_loop ((values (vec i64)) (target i64) (position i32) (values_len i32) (found (option i32))) -> (option i32) +(fn last_index_of_option_loop ((values VecI64) (target i64) (position i32) (values_len i32) (found_position (option i32))) -> (option i32) (if (< position values_len) - (if (= (at values position) target) - (last_index_of_option_loop values target (+ position 1) values_len (some i32 position)) - (last_index_of_option_loop values target (+ position 1) values_len found)) - found)) + (last_index_of_option_loop values target (+ position 1) values_len (if (= (at values position) target) + (some i32 position) + found_position)) + found_position)) -(fn last_index_of_option ((values (vec i64)) (target i64)) -> (option i32) +(fn last_index_of_option ((values VecI64) (target i64)) -> (option i32) (last_index_of_option_loop values target 0 (len values) (none i32))) -(fn contains_loop ((values (vec i64)) (target i64) (position i32) (values_len i32)) -> bool +(fn contains_loop ((values VecI64) (target i64) (position i32) (values_len i32)) -> bool (if (< position values_len) (if (= (at values position) target) true (contains_loop values target (+ position 1) values_len)) false)) -(fn contains ((values (vec i64)) (target i64)) -> bool +(fn contains ((values VecI64) (target i64)) -> bool (contains_loop values target 0 (len values))) -(fn sum_loop ((values (vec i64)) (position i32) (values_len i32) (total i64)) -> i64 +(fn sum_loop ((values VecI64) (position i32) (values_len i32) (total i64)) -> i64 (if (< position values_len) (sum_loop values (+ position 1) values_len (+ total (at values position))) total)) -(fn sum ((values (vec i64))) -> i64 +(fn sum ((values VecI64)) -> i64 (sum_loop values 0 (len values) 0i64)) -(fn concat_loop ((built (vec i64)) (right (vec i64)) (position i32) (right_len i32)) -> (vec i64) +(fn concat_loop ((result VecI64) (right VecI64) (position i32) (right_len i32)) -> VecI64 (if (< position right_len) - (concat_loop (append built (at right position)) right (+ position 1) right_len) - built)) + (concat_loop (append result (at right position)) right (+ position 1) right_len) + result)) -(fn concat ((left (vec i64)) (right (vec i64))) -> (vec i64) +(fn concat ((left VecI64) (right VecI64)) -> VecI64 (let right_len i32 (len right)) (concat_loop left right 0 right_len)) -(fn take_loop ((values (vec i64)) (position i32) (limit i32) (built (vec i64))) -> (vec i64) +(fn take_loop ((values VecI64) (position i32) (limit i32) (result VecI64)) -> VecI64 (if (< position limit) - (take_loop values (+ position 1) limit (append built (at values position))) - built)) + (take_loop values (+ position 1) limit (append result (at values position))) + result)) -(fn take ((values (vec i64)) (count i32)) -> (vec i64) +(fn take ((values VecI64) (count i32)) -> VecI64 (let values_len i32 (len values)) (if (< count 0) (empty) @@ -120,12 +122,12 @@ (take_loop values 0 count (empty)) values))) -(fn drop_loop ((values (vec i64)) (position i32) (values_len i32) (built (vec i64))) -> (vec i64) +(fn drop_loop ((values VecI64) (position i32) (values_len i32) (result VecI64)) -> VecI64 (if (< position values_len) - (drop_loop values (+ position 1) values_len (append built (at values position))) - built)) + (drop_loop values (+ position 1) values_len (append result (at values position))) + result)) -(fn drop ((values (vec i64)) (count i32)) -> (vec i64) +(fn drop ((values VecI64) (count i32)) -> VecI64 (let values_len i32 (len values)) (if (< count 0) values @@ -133,47 +135,49 @@ (drop_loop values count values_len (empty)) (empty)))) -(fn reverse_loop ((values (vec i64)) (position i32) (built (vec i64))) -> (vec i64) +(fn reverse_loop ((values VecI64) (position i32) (result VecI64)) -> VecI64 (if (< position 0) - built - (reverse_loop values (- position 1) (append built (at values position))))) + result + (reverse_loop values (- position 1) (append result (at values position))))) -(fn reverse ((values (vec i64))) -> (vec i64) +(fn reverse ((values VecI64)) -> VecI64 (reverse_loop values (- (len values) 1) (empty))) -(fn subvec ((values (vec i64)) (start i32) (end_exclusive i32)) -> (vec i64) +(fn subvec ((values VecI64) (start i32) (end_exclusive i32)) -> VecI64 (if (< start 0) (empty) (if (< start end_exclusive) (take (drop values start) (- end_exclusive start)) (empty)))) -(fn insert_at ((values (vec i64)) (position i32) (value i64)) -> (vec i64) +(fn insert_at ((values VecI64) (position i32) (value i64)) -> VecI64 + (let values_len i32 (len values)) (if (< position 0) values - (if (< position (len values)) + (if (< position values_len) (concat (append (take values position) value) (drop values position)) - (if (= position (len values)) + (if (= position values_len) (append values value) values)))) -(fn insert_range ((values (vec i64)) (position i32) (inserted (vec i64))) -> (vec i64) +(fn insert_range ((values VecI64) (position i32) (inserted VecI64)) -> VecI64 + (let values_len i32 (len values)) (if (< position 0) values - (if (< position (len values)) + (if (< position values_len) (concat (concat (take values position) inserted) (drop values position)) - (if (= position (len values)) + (if (= position values_len) (concat values inserted) values)))) -(fn replace_at ((values (vec i64)) (position i32) (replacement i64)) -> (vec i64) +(fn replace_at ((values VecI64) (position i32) (replacement i64)) -> VecI64 (if (< position 0) values (if (< position (len values)) (concat (append (take values position) replacement) (drop values (+ position 1))) values))) -(fn replace_range ((values (vec i64)) (start i32) (end_exclusive i32) (replacement (vec i64))) -> (vec i64) +(fn replace_range ((values VecI64) (start i32) (end_exclusive i32) (replacement VecI64)) -> VecI64 (let values_len i32 (len values)) (if (< start 0) values @@ -183,14 +187,14 @@ values) values))) -(fn remove_at ((values (vec i64)) (position i32)) -> (vec i64) +(fn remove_at ((values VecI64) (position i32)) -> VecI64 (if (< position 0) values (if (< position (len values)) (concat (take values position) (drop values (+ position 1))) values))) -(fn remove_range ((values (vec i64)) (start i32) (end_exclusive i32)) -> (vec i64) +(fn remove_range ((values VecI64) (start i32) (end_exclusive i32)) -> VecI64 (let values_len i32 (len values)) (if (< start 0) values diff --git a/examples/projects/std-layout-local-vec_string/src/vec_string.slo b/examples/projects/std-layout-local-vec_string/src/vec_string.slo index d72c4b5..e92607d 100644 --- a/examples/projects/std-layout-local-vec_string/src/vec_string.slo +++ b/examples/projects/std-layout-local-vec_string/src/vec_string.slo @@ -1,120 +1,122 @@ (module vec_string (export empty append len at singleton append2 append3 pair triple is_empty index_or first_or last_or index_option first_option last_option index_of_option last_index_of_option contains count_of concat take starts_with without_prefix ends_with without_suffix drop reverse subvec insert_at insert_range replace_at replace_range remove_at remove_range)) -(fn empty () -> (vec string) +(type VecString (vec string)) + +(fn empty () -> VecString (std.vec.string.empty)) -(fn append ((values (vec string)) (value string)) -> (vec string) +(fn append ((values VecString) (value string)) -> VecString (std.vec.string.append values value)) -(fn len ((values (vec string))) -> i32 +(fn len ((values VecString)) -> i32 (std.vec.string.len values)) -(fn at ((values (vec string)) (position i32)) -> string +(fn at ((values VecString) (position i32)) -> string (std.vec.string.index values position)) -(fn singleton ((value string)) -> (vec string) +(fn singleton ((value string)) -> VecString (append (empty) value)) -(fn append2 ((values (vec string)) (first string) (second string)) -> (vec string) +(fn append2 ((values VecString) (first string) (second string)) -> VecString (append (append values first) second)) -(fn append3 ((values (vec string)) (first string) (second string) (third string)) -> (vec string) +(fn append3 ((values VecString) (first string) (second string) (third string)) -> VecString (append (append2 values first second) third)) -(fn pair ((first string) (second string)) -> (vec string) +(fn pair ((first string) (second string)) -> VecString (append2 (empty) first second)) -(fn triple ((first string) (second string) (third string)) -> (vec string) +(fn triple ((first string) (second string) (third string)) -> VecString (append3 (empty) first second third)) -(fn is_empty ((values (vec string))) -> bool +(fn is_empty ((values VecString)) -> bool (= (len values) 0)) -(fn index_or ((values (vec string)) (position i32) (fallback string)) -> string +(fn index_or ((values VecString) (position i32) (fallback string)) -> string (if (< position 0) fallback (if (< position (len values)) (at values position) fallback))) -(fn first_or ((values (vec string)) (fallback string)) -> string +(fn first_or ((values VecString) (fallback string)) -> string (index_or values 0 fallback)) -(fn last_or ((values (vec string)) (fallback string)) -> string +(fn last_or ((values VecString) (fallback string)) -> string (if (is_empty values) fallback (at values (- (len values) 1)))) -(fn index_option ((values (vec string)) (position i32)) -> (option string) +(fn index_option ((values VecString) (position i32)) -> (option string) (if (< position 0) (none string) (if (< position (len values)) (some string (at values position)) (none string)))) -(fn first_option ((values (vec string))) -> (option string) +(fn first_option ((values VecString)) -> (option string) (index_option values 0)) -(fn last_option ((values (vec string))) -> (option string) +(fn last_option ((values VecString)) -> (option string) (if (is_empty values) (none string) (some string (at values (- (len values) 1))))) -(fn index_of_option_loop ((values (vec string)) (target string) (position i32) (values_len i32)) -> (option i32) +(fn index_of_option_loop ((values VecString) (target string) (position i32) (values_len i32)) -> (option i32) (if (< position values_len) (if (= (at values position) target) (some i32 position) (index_of_option_loop values target (+ position 1) values_len)) (none i32))) -(fn index_of_option ((values (vec string)) (target string)) -> (option i32) +(fn index_of_option ((values VecString) (target string)) -> (option i32) (index_of_option_loop values target 0 (len values))) -(fn last_index_of_option_loop ((values (vec string)) (target string) (position i32) (values_len i32) (found (option i32))) -> (option i32) +(fn last_index_of_option_loop ((values VecString) (target string) (position i32) (values_len i32) (found (option i32))) -> (option i32) (if (< position values_len) (if (= (at values position) target) (last_index_of_option_loop values target (+ position 1) values_len (some i32 position)) (last_index_of_option_loop values target (+ position 1) values_len found)) found)) -(fn last_index_of_option ((values (vec string)) (target string)) -> (option i32) +(fn last_index_of_option ((values VecString) (target string)) -> (option i32) (last_index_of_option_loop values target 0 (len values) (none i32))) -(fn contains_loop ((values (vec string)) (target string) (position i32) (values_len i32)) -> bool +(fn contains_loop ((values VecString) (target string) (position i32) (values_len i32)) -> bool (if (< position values_len) (if (= (at values position) target) true (contains_loop values target (+ position 1) values_len)) false)) -(fn contains ((values (vec string)) (target string)) -> bool +(fn contains ((values VecString) (target string)) -> bool (contains_loop values target 0 (len values))) -(fn count_of_loop ((values (vec string)) (target string) (position i32) (values_len i32) (hits i32)) -> i32 +(fn count_of_loop ((values VecString) (target string) (position i32) (values_len i32) (hits i32)) -> i32 (if (< position values_len) (count_of_loop values target (+ position 1) values_len (+ hits (if (= (at values position) target) 1 0))) hits)) -(fn count_of ((values (vec string)) (target string)) -> i32 +(fn count_of ((values VecString) (target string)) -> i32 (count_of_loop values target 0 (len values) 0)) -(fn concat_loop ((built (vec string)) (right (vec string)) (position i32) (right_len i32)) -> (vec string) +(fn concat_loop ((built VecString) (right VecString) (position i32) (right_len i32)) -> VecString (if (< position right_len) (concat_loop (append built (at right position)) right (+ position 1) right_len) built)) -(fn concat ((left (vec string)) (right (vec string))) -> (vec string) +(fn concat ((left VecString) (right VecString)) -> VecString (let right_len i32 (len right)) (concat_loop left right 0 right_len)) -(fn take_loop ((values (vec string)) (position i32) (limit i32) (built (vec string))) -> (vec string) +(fn take_loop ((values VecString) (position i32) (limit i32) (built VecString)) -> VecString (if (< position limit) (take_loop values (+ position 1) limit (append built (at values position))) built)) -(fn take ((values (vec string)) (count i32)) -> (vec string) +(fn take ((values VecString) (count i32)) -> VecString (let values_len i32 (len values)) (if (< count 0) (empty) @@ -122,35 +124,35 @@ (take_loop values 0 count (empty)) values))) -(fn starts_with ((values (vec string)) (prefix (vec string))) -> bool +(fn starts_with ((values VecString) (prefix VecString)) -> bool (let prefix_len i32 (len prefix)) (if (< (len values) prefix_len) false (= (take values prefix_len) prefix))) -(fn without_prefix ((values (vec string)) (prefix (vec string))) -> (vec string) +(fn without_prefix ((values VecString) (prefix VecString)) -> VecString (if (starts_with values prefix) (drop values (len prefix)) values)) -(fn ends_with ((values (vec string)) (suffix (vec string))) -> bool +(fn ends_with ((values VecString) (suffix VecString)) -> bool (let values_len i32 (len values)) (let suffix_len i32 (len suffix)) (if (< values_len suffix_len) false (= (drop values (- values_len suffix_len)) suffix))) -(fn without_suffix ((values (vec string)) (suffix (vec string))) -> (vec string) +(fn without_suffix ((values VecString) (suffix VecString)) -> VecString (if (ends_with values suffix) (take values (- (len values) (len suffix))) values)) -(fn drop_loop ((values (vec string)) (position i32) (values_len i32) (built (vec string))) -> (vec string) +(fn drop_loop ((values VecString) (position i32) (values_len i32) (built VecString)) -> VecString (if (< position values_len) (drop_loop values (+ position 1) values_len (append built (at values position))) built)) -(fn drop ((values (vec string)) (count i32)) -> (vec string) +(fn drop ((values VecString) (count i32)) -> VecString (let values_len i32 (len values)) (if (< count 0) values @@ -158,22 +160,22 @@ (drop_loop values count values_len (empty)) (empty)))) -(fn reverse_loop ((values (vec string)) (position i32) (built (vec string))) -> (vec string) +(fn reverse_loop ((values VecString) (position i32) (built VecString)) -> VecString (if (< position 0) built (reverse_loop values (- position 1) (append built (at values position))))) -(fn reverse ((values (vec string))) -> (vec string) +(fn reverse ((values VecString)) -> VecString (reverse_loop values (- (len values) 1) (empty))) -(fn subvec ((values (vec string)) (start i32) (end_exclusive i32)) -> (vec string) +(fn subvec ((values VecString) (start i32) (end_exclusive i32)) -> VecString (if (< start 0) (empty) (if (< start end_exclusive) (take (drop values start) (- end_exclusive start)) (empty)))) -(fn insert_at ((values (vec string)) (position i32) (value string)) -> (vec string) +(fn insert_at ((values VecString) (position i32) (value string)) -> VecString (let values_len i32 (len values)) (if (< position 0) values @@ -183,7 +185,7 @@ (append values value) values)))) -(fn insert_range ((values (vec string)) (position i32) (inserted (vec string))) -> (vec string) +(fn insert_range ((values VecString) (position i32) (inserted VecString)) -> VecString (let values_len i32 (len values)) (if (< position 0) values @@ -193,14 +195,14 @@ (concat values inserted) values)))) -(fn replace_at ((values (vec string)) (position i32) (replacement string)) -> (vec string) +(fn replace_at ((values VecString) (position i32) (replacement string)) -> VecString (if (< position 0) values (if (< position (len values)) (concat (append (take values position) replacement) (drop values (+ position 1))) values))) -(fn replace_range ((values (vec string)) (start i32) (end_exclusive i32) (replacement (vec string))) -> (vec string) +(fn replace_range ((values VecString) (start i32) (end_exclusive i32) (replacement VecString)) -> VecString (let values_len i32 (len values)) (if (< start 0) values @@ -210,14 +212,14 @@ values) values))) -(fn remove_at ((values (vec string)) (position i32)) -> (vec string) +(fn remove_at ((values VecString) (position i32)) -> VecString (if (< position 0) values (if (< position (len values)) (concat (take values position) (drop values (+ position 1))) values))) -(fn remove_range ((values (vec string)) (start i32) (end_exclusive i32)) -> (vec string) +(fn remove_range ((values VecString) (start i32) (end_exclusive i32)) -> VecString (let values_len i32 (len values)) (if (< start 0) values diff --git a/lib/std/option.slo b/lib/std/option.slo index 1076cfd..bb8def1 100644 --- a/lib/std/option.slo +++ b/lib/std/option.slo @@ -1,176 +1,204 @@ (module option (export some_i32 none_i32 is_some_i32 is_none_i32 unwrap_some_i32 unwrap_or_i32 some_or_err_i32 some_u32 none_u32 is_some_u32 is_none_u32 unwrap_some_u32 unwrap_or_u32 some_or_err_u32 some_i64 none_i64 is_some_i64 is_none_i64 unwrap_some_i64 unwrap_or_i64 some_or_err_i64 some_u64 none_u64 is_some_u64 is_none_u64 unwrap_some_u64 unwrap_or_u64 some_or_err_u64 some_f64 none_f64 is_some_f64 is_none_f64 unwrap_some_f64 unwrap_or_f64 some_or_err_f64 some_bool none_bool is_some_bool is_none_bool unwrap_some_bool unwrap_or_bool some_or_err_bool some_string none_string is_some_string is_none_string unwrap_some_string unwrap_or_string some_or_err_string)) -(fn some_i32 ((value i32)) -> (option i32) +(type OptionI32 (option i32)) + +(type ResultI32 (result i32 i32)) + +(type OptionU32 (option u32)) + +(type ResultU32 (result u32 i32)) + +(type OptionI64 (option i64)) + +(type ResultI64 (result i64 i32)) + +(type OptionU64 (option u64)) + +(type ResultU64 (result u64 i32)) + +(type OptionF64 (option f64)) + +(type ResultF64 (result f64 i32)) + +(type OptionBool (option bool)) + +(type ResultBool (result bool i32)) + +(type OptionString (option string)) + +(type ResultString (result string i32)) + +(fn some_i32 ((value i32)) -> OptionI32 (some i32 value)) -(fn none_i32 () -> (option i32) +(fn none_i32 () -> OptionI32 (none i32)) -(fn is_some_i32 ((value (option i32))) -> bool +(fn is_some_i32 ((value OptionI32)) -> bool (is_some value)) -(fn is_none_i32 ((value (option i32))) -> bool +(fn is_none_i32 ((value OptionI32)) -> bool (is_none value)) -(fn unwrap_some_i32 ((value (option i32))) -> i32 +(fn unwrap_some_i32 ((value OptionI32)) -> i32 (unwrap_some value)) -(fn unwrap_or_i32 ((value (option i32)) (fallback i32)) -> i32 +(fn unwrap_or_i32 ((value OptionI32) (fallback i32)) -> i32 (if (is_some value) (unwrap_some value) fallback)) -(fn some_or_err_i32 ((value (option i32)) (err_code i32)) -> (result i32 i32) +(fn some_or_err_i32 ((value OptionI32) (err_code i32)) -> ResultI32 (if (is_some value) (ok i32 i32 (unwrap_some value)) (err i32 i32 err_code))) -(fn some_u32 ((value u32)) -> (option u32) +(fn some_u32 ((value u32)) -> OptionU32 (some u32 value)) -(fn none_u32 () -> (option u32) +(fn none_u32 () -> OptionU32 (none u32)) -(fn is_some_u32 ((value (option u32))) -> bool +(fn is_some_u32 ((value OptionU32)) -> bool (is_some value)) -(fn is_none_u32 ((value (option u32))) -> bool +(fn is_none_u32 ((value OptionU32)) -> bool (is_none value)) -(fn unwrap_some_u32 ((value (option u32))) -> u32 +(fn unwrap_some_u32 ((value OptionU32)) -> u32 (unwrap_some value)) -(fn unwrap_or_u32 ((value (option u32)) (fallback u32)) -> u32 +(fn unwrap_or_u32 ((value OptionU32) (fallback u32)) -> u32 (if (is_some value) (unwrap_some value) fallback)) -(fn some_or_err_u32 ((value (option u32)) (err_code i32)) -> (result u32 i32) +(fn some_or_err_u32 ((value OptionU32) (err_code i32)) -> ResultU32 (if (is_some value) (ok u32 i32 (unwrap_some value)) (err u32 i32 err_code))) -(fn some_i64 ((value i64)) -> (option i64) +(fn some_i64 ((value i64)) -> OptionI64 (some i64 value)) -(fn none_i64 () -> (option i64) +(fn none_i64 () -> OptionI64 (none i64)) -(fn is_some_i64 ((value (option i64))) -> bool +(fn is_some_i64 ((value OptionI64)) -> bool (is_some value)) -(fn is_none_i64 ((value (option i64))) -> bool +(fn is_none_i64 ((value OptionI64)) -> bool (is_none value)) -(fn unwrap_some_i64 ((value (option i64))) -> i64 +(fn unwrap_some_i64 ((value OptionI64)) -> i64 (unwrap_some value)) -(fn unwrap_or_i64 ((value (option i64)) (fallback i64)) -> i64 +(fn unwrap_or_i64 ((value OptionI64) (fallback i64)) -> i64 (if (is_some value) (unwrap_some value) fallback)) -(fn some_or_err_i64 ((value (option i64)) (err_code i32)) -> (result i64 i32) +(fn some_or_err_i64 ((value OptionI64) (err_code i32)) -> ResultI64 (if (is_some value) (ok i64 i32 (unwrap_some value)) (err i64 i32 err_code))) -(fn some_u64 ((value u64)) -> (option u64) +(fn some_u64 ((value u64)) -> OptionU64 (some u64 value)) -(fn none_u64 () -> (option u64) +(fn none_u64 () -> OptionU64 (none u64)) -(fn is_some_u64 ((value (option u64))) -> bool +(fn is_some_u64 ((value OptionU64)) -> bool (is_some value)) -(fn is_none_u64 ((value (option u64))) -> bool +(fn is_none_u64 ((value OptionU64)) -> bool (is_none value)) -(fn unwrap_some_u64 ((value (option u64))) -> u64 +(fn unwrap_some_u64 ((value OptionU64)) -> u64 (unwrap_some value)) -(fn unwrap_or_u64 ((value (option u64)) (fallback u64)) -> u64 +(fn unwrap_or_u64 ((value OptionU64) (fallback u64)) -> u64 (if (is_some value) (unwrap_some value) fallback)) -(fn some_or_err_u64 ((value (option u64)) (err_code i32)) -> (result u64 i32) +(fn some_or_err_u64 ((value OptionU64) (err_code i32)) -> ResultU64 (if (is_some value) (ok u64 i32 (unwrap_some value)) (err u64 i32 err_code))) -(fn some_f64 ((value f64)) -> (option f64) +(fn some_f64 ((value f64)) -> OptionF64 (some f64 value)) -(fn none_f64 () -> (option f64) +(fn none_f64 () -> OptionF64 (none f64)) -(fn is_some_f64 ((value (option f64))) -> bool +(fn is_some_f64 ((value OptionF64)) -> bool (is_some value)) -(fn is_none_f64 ((value (option f64))) -> bool +(fn is_none_f64 ((value OptionF64)) -> bool (is_none value)) -(fn unwrap_some_f64 ((value (option f64))) -> f64 +(fn unwrap_some_f64 ((value OptionF64)) -> f64 (unwrap_some value)) -(fn unwrap_or_f64 ((value (option f64)) (fallback f64)) -> f64 +(fn unwrap_or_f64 ((value OptionF64) (fallback f64)) -> f64 (if (is_some value) (unwrap_some value) fallback)) -(fn some_or_err_f64 ((value (option f64)) (err_code i32)) -> (result f64 i32) +(fn some_or_err_f64 ((value OptionF64) (err_code i32)) -> ResultF64 (if (is_some value) (ok f64 i32 (unwrap_some value)) (err f64 i32 err_code))) -(fn some_bool ((value bool)) -> (option bool) +(fn some_bool ((value bool)) -> OptionBool (some bool value)) -(fn none_bool () -> (option bool) +(fn none_bool () -> OptionBool (none bool)) -(fn is_some_bool ((value (option bool))) -> bool +(fn is_some_bool ((value OptionBool)) -> bool (is_some value)) -(fn is_none_bool ((value (option bool))) -> bool +(fn is_none_bool ((value OptionBool)) -> bool (is_none value)) -(fn unwrap_some_bool ((value (option bool))) -> bool +(fn unwrap_some_bool ((value OptionBool)) -> bool (unwrap_some value)) -(fn unwrap_or_bool ((value (option bool)) (fallback bool)) -> bool +(fn unwrap_or_bool ((value OptionBool) (fallback bool)) -> bool (if (is_some value) (unwrap_some value) fallback)) -(fn some_or_err_bool ((value (option bool)) (err_code i32)) -> (result bool i32) +(fn some_or_err_bool ((value OptionBool) (err_code i32)) -> ResultBool (if (is_some value) (ok bool i32 (unwrap_some value)) (err bool i32 err_code))) -(fn some_string ((value string)) -> (option string) +(fn some_string ((value string)) -> OptionString (some string value)) -(fn none_string () -> (option string) +(fn none_string () -> OptionString (none string)) -(fn is_some_string ((value (option string))) -> bool +(fn is_some_string ((value OptionString)) -> bool (is_some value)) -(fn is_none_string ((value (option string))) -> bool +(fn is_none_string ((value OptionString)) -> bool (is_none value)) -(fn unwrap_some_string ((value (option string))) -> string +(fn unwrap_some_string ((value OptionString)) -> string (unwrap_some value)) -(fn unwrap_or_string ((value (option string)) (fallback string)) -> string +(fn unwrap_or_string ((value OptionString) (fallback string)) -> string (if (is_some value) (unwrap_some value) fallback)) -(fn some_or_err_string ((value (option string)) (err_code i32)) -> (result string i32) +(fn some_or_err_string ((value OptionString) (err_code i32)) -> ResultString (if (is_some value) (ok string i32 (unwrap_some value)) (err string i32 err_code))) diff --git a/lib/std/result.slo b/lib/std/result.slo index 4a7b77b..8f497bb 100644 --- a/lib/std/result.slo +++ b/lib/std/result.slo @@ -1,199 +1,227 @@ (module result (export ok_i32 err_i32 is_ok_i32 is_err_i32 unwrap_ok_i32 unwrap_err_i32 unwrap_or_i32 ok_or_none_i32 ok_u32 err_u32 is_ok_u32 is_err_u32 unwrap_ok_u32 unwrap_err_u32 unwrap_or_u32 ok_or_none_u32 ok_i64 err_i64 is_ok_i64 is_err_i64 unwrap_ok_i64 unwrap_err_i64 unwrap_or_i64 ok_or_none_i64 ok_u64 err_u64 is_ok_u64 is_err_u64 unwrap_ok_u64 unwrap_err_u64 unwrap_or_u64 ok_or_none_u64 ok_string err_string is_ok_string is_err_string unwrap_ok_string unwrap_err_string unwrap_or_string ok_or_none_string ok_f64 err_f64 is_ok_f64 is_err_f64 unwrap_ok_f64 unwrap_err_f64 unwrap_or_f64 ok_or_none_f64 ok_bool err_bool is_ok_bool is_err_bool unwrap_ok_bool unwrap_err_bool unwrap_or_bool ok_or_none_bool)) -(fn ok_i32 ((value i32)) -> (result i32 i32) +(type ResultI32 (result i32 i32)) + +(type OptionI32 (option i32)) + +(type ResultU32 (result u32 i32)) + +(type OptionU32 (option u32)) + +(type ResultI64 (result i64 i32)) + +(type OptionI64 (option i64)) + +(type ResultU64 (result u64 i32)) + +(type OptionU64 (option u64)) + +(type ResultString (result string i32)) + +(type OptionString (option string)) + +(type ResultF64 (result f64 i32)) + +(type OptionF64 (option f64)) + +(type ResultBool (result bool i32)) + +(type OptionBool (option bool)) + +(fn ok_i32 ((value i32)) -> ResultI32 (ok i32 i32 value)) -(fn err_i32 ((code i32)) -> (result i32 i32) +(fn err_i32 ((code i32)) -> ResultI32 (err i32 i32 code)) -(fn is_ok_i32 ((value (result i32 i32))) -> bool +(fn is_ok_i32 ((value ResultI32)) -> bool (std.result.is_ok value)) -(fn is_err_i32 ((value (result i32 i32))) -> bool +(fn is_err_i32 ((value ResultI32)) -> bool (std.result.is_err value)) -(fn unwrap_ok_i32 ((value (result i32 i32))) -> i32 +(fn unwrap_ok_i32 ((value ResultI32)) -> i32 (std.result.unwrap_ok value)) -(fn unwrap_err_i32 ((value (result i32 i32))) -> i32 +(fn unwrap_err_i32 ((value ResultI32)) -> i32 (std.result.unwrap_err value)) -(fn unwrap_or_i32 ((value (result i32 i32)) (fallback i32)) -> i32 +(fn unwrap_or_i32 ((value ResultI32) (fallback i32)) -> i32 (if (std.result.is_ok value) (std.result.unwrap_ok value) fallback)) -(fn ok_or_none_i32 ((value (result i32 i32))) -> (option i32) +(fn ok_or_none_i32 ((value ResultI32)) -> OptionI32 (if (std.result.is_ok value) (some i32 (std.result.unwrap_ok value)) (none i32))) -(fn ok_u32 ((value u32)) -> (result u32 i32) +(fn ok_u32 ((value u32)) -> ResultU32 (ok u32 i32 value)) -(fn err_u32 ((code i32)) -> (result u32 i32) +(fn err_u32 ((code i32)) -> ResultU32 (err u32 i32 code)) -(fn is_ok_u32 ((value (result u32 i32))) -> bool +(fn is_ok_u32 ((value ResultU32)) -> bool (std.result.is_ok value)) -(fn is_err_u32 ((value (result u32 i32))) -> bool +(fn is_err_u32 ((value ResultU32)) -> bool (std.result.is_err value)) -(fn unwrap_ok_u32 ((value (result u32 i32))) -> u32 +(fn unwrap_ok_u32 ((value ResultU32)) -> u32 (std.result.unwrap_ok value)) -(fn unwrap_err_u32 ((value (result u32 i32))) -> i32 +(fn unwrap_err_u32 ((value ResultU32)) -> i32 (std.result.unwrap_err value)) -(fn unwrap_or_u32 ((value (result u32 i32)) (fallback u32)) -> u32 +(fn unwrap_or_u32 ((value ResultU32) (fallback u32)) -> u32 (if (std.result.is_ok value) (std.result.unwrap_ok value) fallback)) -(fn ok_or_none_u32 ((value (result u32 i32))) -> (option u32) +(fn ok_or_none_u32 ((value ResultU32)) -> OptionU32 (if (std.result.is_ok value) (some u32 (std.result.unwrap_ok value)) (none u32))) -(fn ok_i64 ((value i64)) -> (result i64 i32) +(fn ok_i64 ((value i64)) -> ResultI64 (ok i64 i32 value)) -(fn err_i64 ((code i32)) -> (result i64 i32) +(fn err_i64 ((code i32)) -> ResultI64 (err i64 i32 code)) -(fn is_ok_i64 ((value (result i64 i32))) -> bool +(fn is_ok_i64 ((value ResultI64)) -> bool (std.result.is_ok value)) -(fn is_err_i64 ((value (result i64 i32))) -> bool +(fn is_err_i64 ((value ResultI64)) -> bool (std.result.is_err value)) -(fn unwrap_ok_i64 ((value (result i64 i32))) -> i64 +(fn unwrap_ok_i64 ((value ResultI64)) -> i64 (std.result.unwrap_ok value)) -(fn unwrap_err_i64 ((value (result i64 i32))) -> i32 +(fn unwrap_err_i64 ((value ResultI64)) -> i32 (std.result.unwrap_err value)) -(fn unwrap_or_i64 ((value (result i64 i32)) (fallback i64)) -> i64 +(fn unwrap_or_i64 ((value ResultI64) (fallback i64)) -> i64 (if (std.result.is_ok value) (std.result.unwrap_ok value) fallback)) -(fn ok_or_none_i64 ((value (result i64 i32))) -> (option i64) +(fn ok_or_none_i64 ((value ResultI64)) -> OptionI64 (if (std.result.is_ok value) (some i64 (std.result.unwrap_ok value)) (none i64))) -(fn ok_u64 ((value u64)) -> (result u64 i32) +(fn ok_u64 ((value u64)) -> ResultU64 (ok u64 i32 value)) -(fn err_u64 ((code i32)) -> (result u64 i32) +(fn err_u64 ((code i32)) -> ResultU64 (err u64 i32 code)) -(fn is_ok_u64 ((value (result u64 i32))) -> bool +(fn is_ok_u64 ((value ResultU64)) -> bool (std.result.is_ok value)) -(fn is_err_u64 ((value (result u64 i32))) -> bool +(fn is_err_u64 ((value ResultU64)) -> bool (std.result.is_err value)) -(fn unwrap_ok_u64 ((value (result u64 i32))) -> u64 +(fn unwrap_ok_u64 ((value ResultU64)) -> u64 (std.result.unwrap_ok value)) -(fn unwrap_err_u64 ((value (result u64 i32))) -> i32 +(fn unwrap_err_u64 ((value ResultU64)) -> i32 (std.result.unwrap_err value)) -(fn unwrap_or_u64 ((value (result u64 i32)) (fallback u64)) -> u64 +(fn unwrap_or_u64 ((value ResultU64) (fallback u64)) -> u64 (if (std.result.is_ok value) (std.result.unwrap_ok value) fallback)) -(fn ok_or_none_u64 ((value (result u64 i32))) -> (option u64) +(fn ok_or_none_u64 ((value ResultU64)) -> OptionU64 (if (std.result.is_ok value) (some u64 (std.result.unwrap_ok value)) (none u64))) -(fn ok_string ((value string)) -> (result string i32) +(fn ok_string ((value string)) -> ResultString (ok string i32 value)) -(fn err_string ((code i32)) -> (result string i32) +(fn err_string ((code i32)) -> ResultString (err string i32 code)) -(fn is_ok_string ((value (result string i32))) -> bool +(fn is_ok_string ((value ResultString)) -> bool (std.result.is_ok value)) -(fn is_err_string ((value (result string i32))) -> bool +(fn is_err_string ((value ResultString)) -> bool (std.result.is_err value)) -(fn unwrap_ok_string ((value (result string i32))) -> string +(fn unwrap_ok_string ((value ResultString)) -> string (std.result.unwrap_ok value)) -(fn unwrap_err_string ((value (result string i32))) -> i32 +(fn unwrap_err_string ((value ResultString)) -> i32 (std.result.unwrap_err value)) -(fn unwrap_or_string ((value (result string i32)) (fallback string)) -> string +(fn unwrap_or_string ((value ResultString) (fallback string)) -> string (match value ((ok payload) payload) ((err code) fallback))) -(fn ok_or_none_string ((value (result string i32))) -> (option string) +(fn ok_or_none_string ((value ResultString)) -> OptionString (if (std.result.is_ok value) (some string (std.result.unwrap_ok value)) (none string))) -(fn ok_f64 ((value f64)) -> (result f64 i32) +(fn ok_f64 ((value f64)) -> ResultF64 (ok f64 i32 value)) -(fn err_f64 ((code i32)) -> (result f64 i32) +(fn err_f64 ((code i32)) -> ResultF64 (err f64 i32 code)) -(fn is_ok_f64 ((value (result f64 i32))) -> bool +(fn is_ok_f64 ((value ResultF64)) -> bool (std.result.is_ok value)) -(fn is_err_f64 ((value (result f64 i32))) -> bool +(fn is_err_f64 ((value ResultF64)) -> bool (std.result.is_err value)) -(fn unwrap_ok_f64 ((value (result f64 i32))) -> f64 +(fn unwrap_ok_f64 ((value ResultF64)) -> f64 (std.result.unwrap_ok value)) -(fn unwrap_err_f64 ((value (result f64 i32))) -> i32 +(fn unwrap_err_f64 ((value ResultF64)) -> i32 (std.result.unwrap_err value)) -(fn unwrap_or_f64 ((value (result f64 i32)) (fallback f64)) -> f64 +(fn unwrap_or_f64 ((value ResultF64) (fallback f64)) -> f64 (if (std.result.is_ok value) (std.result.unwrap_ok value) fallback)) -(fn ok_or_none_f64 ((value (result f64 i32))) -> (option f64) +(fn ok_or_none_f64 ((value ResultF64)) -> OptionF64 (if (std.result.is_ok value) (some f64 (std.result.unwrap_ok value)) (none f64))) -(fn ok_bool ((value bool)) -> (result bool i32) +(fn ok_bool ((value bool)) -> ResultBool (ok bool i32 value)) -(fn err_bool ((code i32)) -> (result bool i32) +(fn err_bool ((code i32)) -> ResultBool (err bool i32 code)) -(fn is_ok_bool ((value (result bool i32))) -> bool +(fn is_ok_bool ((value ResultBool)) -> bool (std.result.is_ok value)) -(fn is_err_bool ((value (result bool i32))) -> bool +(fn is_err_bool ((value ResultBool)) -> bool (std.result.is_err value)) -(fn unwrap_ok_bool ((value (result bool i32))) -> bool +(fn unwrap_ok_bool ((value ResultBool)) -> bool (std.result.unwrap_ok value)) -(fn unwrap_err_bool ((value (result bool i32))) -> i32 +(fn unwrap_err_bool ((value ResultBool)) -> i32 (std.result.unwrap_err value)) -(fn unwrap_or_bool ((value (result bool i32)) (fallback bool)) -> bool +(fn unwrap_or_bool ((value ResultBool) (fallback bool)) -> bool (if (std.result.is_ok value) (std.result.unwrap_ok value) fallback)) -(fn ok_or_none_bool ((value (result bool i32))) -> (option bool) +(fn ok_or_none_bool ((value ResultBool)) -> OptionBool (if (std.result.is_ok value) (some bool (std.result.unwrap_ok value)) (none bool))) diff --git a/lib/std/vec_bool.slo b/lib/std/vec_bool.slo index bc08933..4ea8796 100644 --- a/lib/std/vec_bool.slo +++ b/lib/std/vec_bool.slo @@ -1,120 +1,122 @@ (module vec_bool (export empty append len at singleton append2 append3 pair triple is_empty index_or first_or last_or index_option first_option last_option index_of_option last_index_of_option contains count_of concat take starts_with without_prefix ends_with without_suffix drop reverse subvec insert_at insert_range replace_at replace_range remove_at remove_range)) -(fn empty () -> (vec bool) +(type VecBool (vec bool)) + +(fn empty () -> VecBool (std.vec.bool.empty)) -(fn append ((values (vec bool)) (value bool)) -> (vec bool) +(fn append ((values VecBool) (value bool)) -> VecBool (std.vec.bool.append values value)) -(fn len ((values (vec bool))) -> i32 +(fn len ((values VecBool)) -> i32 (std.vec.bool.len values)) -(fn at ((values (vec bool)) (position i32)) -> bool +(fn at ((values VecBool) (position i32)) -> bool (std.vec.bool.index values position)) -(fn singleton ((value bool)) -> (vec bool) +(fn singleton ((value bool)) -> VecBool (append (empty) value)) -(fn append2 ((values (vec bool)) (first bool) (second bool)) -> (vec bool) +(fn append2 ((values VecBool) (first bool) (second bool)) -> VecBool (append (append values first) second)) -(fn append3 ((values (vec bool)) (first bool) (second bool) (third bool)) -> (vec bool) +(fn append3 ((values VecBool) (first bool) (second bool) (third bool)) -> VecBool (append (append2 values first second) third)) -(fn pair ((first bool) (second bool)) -> (vec bool) +(fn pair ((first bool) (second bool)) -> VecBool (append2 (empty) first second)) -(fn triple ((first bool) (second bool) (third bool)) -> (vec bool) +(fn triple ((first bool) (second bool) (third bool)) -> VecBool (append3 (empty) first second third)) -(fn is_empty ((values (vec bool))) -> bool +(fn is_empty ((values VecBool)) -> bool (= (len values) 0)) -(fn index_or ((values (vec bool)) (position i32) (fallback bool)) -> bool +(fn index_or ((values VecBool) (position i32) (fallback bool)) -> bool (if (< position 0) fallback (if (< position (len values)) (at values position) fallback))) -(fn first_or ((values (vec bool)) (fallback bool)) -> bool +(fn first_or ((values VecBool) (fallback bool)) -> bool (index_or values 0 fallback)) -(fn last_or ((values (vec bool)) (fallback bool)) -> bool +(fn last_or ((values VecBool) (fallback bool)) -> bool (if (is_empty values) fallback (at values (- (len values) 1)))) -(fn index_option ((values (vec bool)) (position i32)) -> (option bool) +(fn index_option ((values VecBool) (position i32)) -> (option bool) (if (< position 0) (none bool) (if (< position (len values)) (some bool (at values position)) (none bool)))) -(fn first_option ((values (vec bool))) -> (option bool) +(fn first_option ((values VecBool)) -> (option bool) (index_option values 0)) -(fn last_option ((values (vec bool))) -> (option bool) +(fn last_option ((values VecBool)) -> (option bool) (if (is_empty values) (none bool) (some bool (at values (- (len values) 1))))) -(fn index_of_option_loop ((values (vec bool)) (target bool) (position i32) (values_len i32)) -> (option i32) +(fn index_of_option_loop ((values VecBool) (target bool) (position i32) (values_len i32)) -> (option i32) (if (< position values_len) (if (= (at values position) target) (some i32 position) (index_of_option_loop values target (+ position 1) values_len)) (none i32))) -(fn index_of_option ((values (vec bool)) (target bool)) -> (option i32) +(fn index_of_option ((values VecBool) (target bool)) -> (option i32) (index_of_option_loop values target 0 (len values))) -(fn last_index_of_option_loop ((values (vec bool)) (target bool) (position i32) (values_len i32) (found_position (option i32))) -> (option i32) +(fn last_index_of_option_loop ((values VecBool) (target bool) (position i32) (values_len i32) (found_position (option i32))) -> (option i32) (if (< position values_len) (last_index_of_option_loop values target (+ position 1) values_len (if (= (at values position) target) (some i32 position) found_position)) found_position)) -(fn last_index_of_option ((values (vec bool)) (target bool)) -> (option i32) +(fn last_index_of_option ((values VecBool) (target bool)) -> (option i32) (last_index_of_option_loop values target 0 (len values) (none i32))) -(fn contains_loop ((values (vec bool)) (target bool) (position i32) (values_len i32)) -> bool +(fn contains_loop ((values VecBool) (target bool) (position i32) (values_len i32)) -> bool (if (< position values_len) (if (= (at values position) target) true (contains_loop values target (+ position 1) values_len)) false)) -(fn contains ((values (vec bool)) (target bool)) -> bool +(fn contains ((values VecBool) (target bool)) -> bool (contains_loop values target 0 (len values))) -(fn count_of_loop ((values (vec bool)) (target bool) (position i32) (values_len i32) (hits i32)) -> i32 +(fn count_of_loop ((values VecBool) (target bool) (position i32) (values_len i32) (hits i32)) -> i32 (if (< position values_len) (count_of_loop values target (+ position 1) values_len (+ hits (if (= (at values position) target) 1 0))) hits)) -(fn count_of ((values (vec bool)) (target bool)) -> i32 +(fn count_of ((values VecBool) (target bool)) -> i32 (count_of_loop values target 0 (len values) 0)) -(fn concat_loop ((result (vec bool)) (right (vec bool)) (position i32) (right_len i32)) -> (vec bool) +(fn concat_loop ((result VecBool) (right VecBool) (position i32) (right_len i32)) -> VecBool (if (< position right_len) (concat_loop (append result (at right position)) right (+ position 1) right_len) result)) -(fn concat ((left (vec bool)) (right (vec bool))) -> (vec bool) +(fn concat ((left VecBool) (right VecBool)) -> VecBool (let right_len i32 (len right)) (concat_loop left right 0 right_len)) -(fn take_loop ((values (vec bool)) (position i32) (limit i32) (result (vec bool))) -> (vec bool) +(fn take_loop ((values VecBool) (position i32) (limit i32) (result VecBool)) -> VecBool (if (< position limit) (take_loop values (+ position 1) limit (append result (at values position))) result)) -(fn take ((values (vec bool)) (count i32)) -> (vec bool) +(fn take ((values VecBool) (count i32)) -> VecBool (let values_len i32 (len values)) (if (< count 0) (empty) @@ -122,35 +124,35 @@ (take_loop values 0 count (empty)) values))) -(fn starts_with ((values (vec bool)) (prefix (vec bool))) -> bool +(fn starts_with ((values VecBool) (prefix VecBool)) -> bool (let prefix_len i32 (len prefix)) (if (< (len values) prefix_len) false (= (take values prefix_len) prefix))) -(fn without_prefix ((values (vec bool)) (prefix (vec bool))) -> (vec bool) +(fn without_prefix ((values VecBool) (prefix VecBool)) -> VecBool (if (starts_with values prefix) (drop values (len prefix)) values)) -(fn ends_with ((values (vec bool)) (suffix (vec bool))) -> bool +(fn ends_with ((values VecBool) (suffix VecBool)) -> bool (let values_len i32 (len values)) (let suffix_len i32 (len suffix)) (if (< values_len suffix_len) false (= (drop values (- values_len suffix_len)) suffix))) -(fn without_suffix ((values (vec bool)) (suffix (vec bool))) -> (vec bool) +(fn without_suffix ((values VecBool) (suffix VecBool)) -> VecBool (if (ends_with values suffix) (take values (- (len values) (len suffix))) values)) -(fn drop_loop ((values (vec bool)) (position i32) (values_len i32) (result (vec bool))) -> (vec bool) +(fn drop_loop ((values VecBool) (position i32) (values_len i32) (result VecBool)) -> VecBool (if (< position values_len) (drop_loop values (+ position 1) values_len (append result (at values position))) result)) -(fn drop ((values (vec bool)) (count i32)) -> (vec bool) +(fn drop ((values VecBool) (count i32)) -> VecBool (let values_len i32 (len values)) (if (< count 0) values @@ -158,22 +160,22 @@ (drop_loop values count values_len (empty)) (empty)))) -(fn reverse_loop ((values (vec bool)) (position i32) (result (vec bool))) -> (vec bool) +(fn reverse_loop ((values VecBool) (position i32) (result VecBool)) -> VecBool (if (< position 0) result (reverse_loop values (- position 1) (append result (at values position))))) -(fn reverse ((values (vec bool))) -> (vec bool) +(fn reverse ((values VecBool)) -> VecBool (reverse_loop values (- (len values) 1) (empty))) -(fn subvec ((values (vec bool)) (start i32) (end_exclusive i32)) -> (vec bool) +(fn subvec ((values VecBool) (start i32) (end_exclusive i32)) -> VecBool (if (< start 0) (empty) (if (< start end_exclusive) (take (drop values start) (- end_exclusive start)) (empty)))) -(fn insert_at ((values (vec bool)) (position i32) (value bool)) -> (vec bool) +(fn insert_at ((values VecBool) (position i32) (value bool)) -> VecBool (let values_len i32 (len values)) (if (< position 0) values @@ -183,7 +185,7 @@ (append values value) values)))) -(fn insert_range ((values (vec bool)) (position i32) (inserted (vec bool))) -> (vec bool) +(fn insert_range ((values VecBool) (position i32) (inserted VecBool)) -> VecBool (let values_len i32 (len values)) (if (< position 0) values @@ -193,14 +195,14 @@ (concat values inserted) values)))) -(fn replace_at ((values (vec bool)) (position i32) (replacement bool)) -> (vec bool) +(fn replace_at ((values VecBool) (position i32) (replacement bool)) -> VecBool (if (< position 0) values (if (< position (len values)) (concat (append (take values position) replacement) (drop values (+ position 1))) values))) -(fn replace_range ((values (vec bool)) (start i32) (end_exclusive i32) (replacement (vec bool))) -> (vec bool) +(fn replace_range ((values VecBool) (start i32) (end_exclusive i32) (replacement VecBool)) -> VecBool (let values_len i32 (len values)) (if (< start 0) values @@ -210,14 +212,14 @@ values) values))) -(fn remove_at ((values (vec bool)) (position i32)) -> (vec bool) +(fn remove_at ((values VecBool) (position i32)) -> VecBool (if (< position 0) values (if (< position (len values)) (concat (take values position) (drop values (+ position 1))) values))) -(fn remove_range ((values (vec bool)) (start i32) (end_exclusive i32)) -> (vec bool) +(fn remove_range ((values VecBool) (start i32) (end_exclusive i32)) -> VecBool (let values_len i32 (len values)) (if (< start 0) values diff --git a/lib/std/vec_f64.slo b/lib/std/vec_f64.slo index 0b36953..8e8f6ef 100644 --- a/lib/std/vec_f64.slo +++ b/lib/std/vec_f64.slo @@ -1,118 +1,120 @@ (module vec_f64 (export empty append len at singleton append2 append3 pair triple is_empty index_or first_or last_or index_option first_option last_option index_of_option last_index_of_option contains sum concat take starts_with without_prefix ends_with without_suffix drop reverse subvec insert_at insert_range replace_at replace_range remove_at remove_range)) -(fn empty () -> (vec f64) +(type VecF64 (vec f64)) + +(fn empty () -> VecF64 (std.vec.f64.empty)) -(fn append ((values (vec f64)) (value f64)) -> (vec f64) +(fn append ((values VecF64) (value f64)) -> VecF64 (std.vec.f64.append values value)) -(fn len ((values (vec f64))) -> i32 +(fn len ((values VecF64)) -> i32 (std.vec.f64.len values)) -(fn at ((values (vec f64)) (position i32)) -> f64 +(fn at ((values VecF64) (position i32)) -> f64 (std.vec.f64.index values position)) -(fn singleton ((value f64)) -> (vec f64) +(fn singleton ((value f64)) -> VecF64 (append (empty) value)) -(fn append2 ((values (vec f64)) (first f64) (second f64)) -> (vec f64) +(fn append2 ((values VecF64) (first f64) (second f64)) -> VecF64 (append (append values first) second)) -(fn append3 ((values (vec f64)) (first f64) (second f64) (third f64)) -> (vec f64) +(fn append3 ((values VecF64) (first f64) (second f64) (third f64)) -> VecF64 (append (append2 values first second) third)) -(fn pair ((first f64) (second f64)) -> (vec f64) +(fn pair ((first f64) (second f64)) -> VecF64 (append2 (empty) first second)) -(fn triple ((first f64) (second f64) (third f64)) -> (vec f64) +(fn triple ((first f64) (second f64) (third f64)) -> VecF64 (append3 (empty) first second third)) -(fn is_empty ((values (vec f64))) -> bool +(fn is_empty ((values VecF64)) -> bool (= (len values) 0)) -(fn index_or ((values (vec f64)) (position i32) (fallback f64)) -> f64 +(fn index_or ((values VecF64) (position i32) (fallback f64)) -> f64 (if (< position 0) fallback (if (< position (len values)) (at values position) fallback))) -(fn first_or ((values (vec f64)) (fallback f64)) -> f64 +(fn first_or ((values VecF64) (fallback f64)) -> f64 (index_or values 0 fallback)) -(fn last_or ((values (vec f64)) (fallback f64)) -> f64 +(fn last_or ((values VecF64) (fallback f64)) -> f64 (if (is_empty values) fallback (at values (- (len values) 1)))) -(fn index_option ((values (vec f64)) (position i32)) -> (option f64) +(fn index_option ((values VecF64) (position i32)) -> (option f64) (if (< position 0) (none f64) (if (< position (len values)) (some f64 (at values position)) (none f64)))) -(fn first_option ((values (vec f64))) -> (option f64) +(fn first_option ((values VecF64)) -> (option f64) (index_option values 0)) -(fn last_option ((values (vec f64))) -> (option f64) +(fn last_option ((values VecF64)) -> (option f64) (if (is_empty values) (none f64) (some f64 (at values (- (len values) 1))))) -(fn index_of_option_loop ((values (vec f64)) (target f64) (position i32) (values_len i32)) -> (option i32) +(fn index_of_option_loop ((values VecF64) (target f64) (position i32) (values_len i32)) -> (option i32) (if (< position values_len) (if (= (at values position) target) (some i32 position) (index_of_option_loop values target (+ position 1) values_len)) (none i32))) -(fn index_of_option ((values (vec f64)) (target f64)) -> (option i32) +(fn index_of_option ((values VecF64) (target f64)) -> (option i32) (index_of_option_loop values target 0 (len values))) -(fn last_index_of_option_loop ((values (vec f64)) (target f64) (position i32) (values_len i32) (found_position (option i32))) -> (option i32) +(fn last_index_of_option_loop ((values VecF64) (target f64) (position i32) (values_len i32) (found_position (option i32))) -> (option i32) (if (< position values_len) (last_index_of_option_loop values target (+ position 1) values_len (if (= (at values position) target) (some i32 position) found_position)) found_position)) -(fn last_index_of_option ((values (vec f64)) (target f64)) -> (option i32) +(fn last_index_of_option ((values VecF64) (target f64)) -> (option i32) (last_index_of_option_loop values target 0 (len values) (none i32))) -(fn contains_loop ((values (vec f64)) (target f64) (position i32) (values_len i32)) -> bool +(fn contains_loop ((values VecF64) (target f64) (position i32) (values_len i32)) -> bool (if (< position values_len) (if (= (at values position) target) true (contains_loop values target (+ position 1) values_len)) false)) -(fn contains ((values (vec f64)) (target f64)) -> bool +(fn contains ((values VecF64) (target f64)) -> bool (contains_loop values target 0 (len values))) -(fn sum_loop ((values (vec f64)) (position i32) (values_len i32) (total f64)) -> f64 +(fn sum_loop ((values VecF64) (position i32) (values_len i32) (total f64)) -> f64 (if (< position values_len) (sum_loop values (+ position 1) values_len (+ total (at values position))) total)) -(fn sum ((values (vec f64))) -> f64 +(fn sum ((values VecF64)) -> f64 (sum_loop values 0 (len values) 0.0)) -(fn concat_loop ((result (vec f64)) (right (vec f64)) (position i32) (right_len i32)) -> (vec f64) +(fn concat_loop ((result VecF64) (right VecF64) (position i32) (right_len i32)) -> VecF64 (if (< position right_len) (concat_loop (append result (at right position)) right (+ position 1) right_len) result)) -(fn concat ((left (vec f64)) (right (vec f64))) -> (vec f64) +(fn concat ((left VecF64) (right VecF64)) -> VecF64 (let right_len i32 (len right)) (concat_loop left right 0 right_len)) -(fn take_loop ((values (vec f64)) (position i32) (limit i32) (result (vec f64))) -> (vec f64) +(fn take_loop ((values VecF64) (position i32) (limit i32) (result VecF64)) -> VecF64 (if (< position limit) (take_loop values (+ position 1) limit (append result (at values position))) result)) -(fn take ((values (vec f64)) (count i32)) -> (vec f64) +(fn take ((values VecF64) (count i32)) -> VecF64 (let values_len i32 (len values)) (if (< count 0) (empty) @@ -120,35 +122,35 @@ (take_loop values 0 count (empty)) values))) -(fn starts_with ((values (vec f64)) (prefix (vec f64))) -> bool +(fn starts_with ((values VecF64) (prefix VecF64)) -> bool (let prefix_len i32 (len prefix)) (if (< (len values) prefix_len) false (= (take values prefix_len) prefix))) -(fn without_prefix ((values (vec f64)) (prefix (vec f64))) -> (vec f64) +(fn without_prefix ((values VecF64) (prefix VecF64)) -> VecF64 (if (starts_with values prefix) (drop values (len prefix)) values)) -(fn ends_with ((values (vec f64)) (suffix (vec f64))) -> bool +(fn ends_with ((values VecF64) (suffix VecF64)) -> bool (let values_len i32 (len values)) (let suffix_len i32 (len suffix)) (if (< values_len suffix_len) false (= (drop values (- values_len suffix_len)) suffix))) -(fn without_suffix ((values (vec f64)) (suffix (vec f64))) -> (vec f64) +(fn without_suffix ((values VecF64) (suffix VecF64)) -> VecF64 (if (ends_with values suffix) (take values (- (len values) (len suffix))) values)) -(fn drop_loop ((values (vec f64)) (position i32) (values_len i32) (result (vec f64))) -> (vec f64) +(fn drop_loop ((values VecF64) (position i32) (values_len i32) (result VecF64)) -> VecF64 (if (< position values_len) (drop_loop values (+ position 1) values_len (append result (at values position))) result)) -(fn drop ((values (vec f64)) (count i32)) -> (vec f64) +(fn drop ((values VecF64) (count i32)) -> VecF64 (let values_len i32 (len values)) (if (< count 0) values @@ -156,22 +158,22 @@ (drop_loop values count values_len (empty)) (empty)))) -(fn reverse_loop ((values (vec f64)) (position i32) (result (vec f64))) -> (vec f64) +(fn reverse_loop ((values VecF64) (position i32) (result VecF64)) -> VecF64 (if (< position 0) result (reverse_loop values (- position 1) (append result (at values position))))) -(fn reverse ((values (vec f64))) -> (vec f64) +(fn reverse ((values VecF64)) -> VecF64 (reverse_loop values (- (len values) 1) (empty))) -(fn subvec ((values (vec f64)) (start i32) (end_exclusive i32)) -> (vec f64) +(fn subvec ((values VecF64) (start i32) (end_exclusive i32)) -> VecF64 (if (< start 0) (empty) (if (< start end_exclusive) (take (drop values start) (- end_exclusive start)) (empty)))) -(fn insert_at ((values (vec f64)) (position i32) (value f64)) -> (vec f64) +(fn insert_at ((values VecF64) (position i32) (value f64)) -> VecF64 (let values_len i32 (len values)) (if (< position 0) values @@ -181,7 +183,7 @@ (append values value) values)))) -(fn insert_range ((values (vec f64)) (position i32) (inserted (vec f64))) -> (vec f64) +(fn insert_range ((values VecF64) (position i32) (inserted VecF64)) -> VecF64 (let values_len i32 (len values)) (if (< position 0) values @@ -191,14 +193,14 @@ (concat values inserted) values)))) -(fn replace_at ((values (vec f64)) (position i32) (replacement f64)) -> (vec f64) +(fn replace_at ((values VecF64) (position i32) (replacement f64)) -> VecF64 (if (< position 0) values (if (< position (len values)) (concat (append (take values position) replacement) (drop values (+ position 1))) values))) -(fn replace_range ((values (vec f64)) (start i32) (end_exclusive i32) (replacement (vec f64))) -> (vec f64) +(fn replace_range ((values VecF64) (start i32) (end_exclusive i32) (replacement VecF64)) -> VecF64 (let values_len i32 (len values)) (if (< start 0) values @@ -208,14 +210,14 @@ values) values))) -(fn remove_at ((values (vec f64)) (position i32)) -> (vec f64) +(fn remove_at ((values VecF64) (position i32)) -> VecF64 (if (< position 0) values (if (< position (len values)) (concat (take values position) (drop values (+ position 1))) values))) -(fn remove_range ((values (vec f64)) (start i32) (end_exclusive i32)) -> (vec f64) +(fn remove_range ((values VecF64) (start i32) (end_exclusive i32)) -> VecF64 (let values_len i32 (len values)) (if (< start 0) values diff --git a/lib/std/vec_i32.slo b/lib/std/vec_i32.slo index c2705f9..69d27d0 100644 --- a/lib/std/vec_i32.slo +++ b/lib/std/vec_i32.slo @@ -2,97 +2,99 @@ (import std.option (some_i32 none_i32)) -(fn empty () -> (vec i32) +(type VecI32 (vec i32)) + +(fn empty () -> VecI32 (std.vec.i32.empty)) -(fn append ((values (vec i32)) (value i32)) -> (vec i32) +(fn append ((values VecI32) (value i32)) -> VecI32 (std.vec.i32.append values value)) -(fn len ((values (vec i32))) -> i32 +(fn len ((values VecI32)) -> i32 (std.vec.i32.len values)) -(fn at ((values (vec i32)) (position i32)) -> i32 +(fn at ((values VecI32) (position i32)) -> i32 (std.vec.i32.index values position)) -(fn singleton ((value i32)) -> (vec i32) +(fn singleton ((value i32)) -> VecI32 (append (empty) value)) -(fn append2 ((values (vec i32)) (first i32) (second i32)) -> (vec i32) +(fn append2 ((values VecI32) (first i32) (second i32)) -> VecI32 (append (append values first) second)) -(fn append3 ((values (vec i32)) (first i32) (second i32) (third i32)) -> (vec i32) +(fn append3 ((values VecI32) (first i32) (second i32) (third i32)) -> VecI32 (append (append2 values first second) third)) -(fn pair ((first i32) (second i32)) -> (vec i32) +(fn pair ((first i32) (second i32)) -> VecI32 (append2 (empty) first second)) -(fn triple ((first i32) (second i32) (third i32)) -> (vec i32) +(fn triple ((first i32) (second i32) (third i32)) -> VecI32 (append3 (empty) first second third)) -(fn repeat_loop ((value i32) (remaining i32) (result (vec i32))) -> (vec i32) +(fn repeat_loop ((value i32) (remaining i32) (result VecI32)) -> VecI32 (if (< remaining 1) result (repeat_loop value (- remaining 1) (append result value)))) -(fn repeat ((value i32) (count i32)) -> (vec i32) +(fn repeat ((value i32) (count i32)) -> VecI32 (if (< count 1) (empty) (repeat_loop value count (empty)))) -(fn range_from_zero_loop ((current i32) (count i32) (result (vec i32))) -> (vec i32) +(fn range_from_zero_loop ((current i32) (count i32) (result VecI32)) -> VecI32 (if (< current count) (range_from_zero_loop (+ current 1) count (append result current)) result)) -(fn range_loop ((current i32) (end_exclusive i32) (result (vec i32))) -> (vec i32) +(fn range_loop ((current i32) (end_exclusive i32) (result VecI32)) -> VecI32 (if (< current end_exclusive) (range_loop (+ current 1) end_exclusive (append result current)) result)) -(fn range ((start i32) (end_exclusive i32)) -> (vec i32) +(fn range ((start i32) (end_exclusive i32)) -> VecI32 (if (< start end_exclusive) (range_loop start end_exclusive (empty)) (empty))) -(fn range_from_zero ((count i32)) -> (vec i32) +(fn range_from_zero ((count i32)) -> VecI32 (if (< count 1) (empty) (range_from_zero_loop 0 count (empty)))) -(fn is_empty ((values (vec i32))) -> bool +(fn is_empty ((values VecI32)) -> bool (= (len values) 0)) -(fn index_or ((values (vec i32)) (position i32) (fallback i32)) -> i32 +(fn index_or ((values VecI32) (position i32) (fallback i32)) -> i32 (if (< position 0) fallback (if (< position (len values)) (at values position) fallback))) -(fn first_or ((values (vec i32)) (fallback i32)) -> i32 +(fn first_or ((values VecI32) (fallback i32)) -> i32 (index_or values 0 fallback)) -(fn last_or ((values (vec i32)) (fallback i32)) -> i32 +(fn last_or ((values VecI32) (fallback i32)) -> i32 (if (is_empty values) fallback (at values (- (len values) 1)))) -(fn index_option ((values (vec i32)) (position i32)) -> (option i32) +(fn index_option ((values VecI32) (position i32)) -> (option i32) (if (< position 0) (none_i32) (if (< position (len values)) (some_i32 (at values position)) (none_i32)))) -(fn first_option ((values (vec i32))) -> (option i32) +(fn first_option ((values VecI32)) -> (option i32) (index_option values 0)) -(fn last_option ((values (vec i32))) -> (option i32) +(fn last_option ((values VecI32)) -> (option i32) (if (is_empty values) (none_i32) (some_i32 (at values (- (len values) 1))))) -(fn index_of_option ((values (vec i32)) (target i32)) -> (option i32) +(fn index_of_option ((values VecI32) (target i32)) -> (option i32) (var position i32 0) (var found_position i32 -1) (while (and (< position (len values)) (< found_position 0)) @@ -104,7 +106,7 @@ (none_i32) (some_i32 found_position))) -(fn last_index_of_option ((values (vec i32)) (target i32)) -> (option i32) +(fn last_index_of_option ((values VecI32) (target i32)) -> (option i32) (var position i32 0) (var found_position i32 -1) (while (< position (len values)) @@ -116,7 +118,7 @@ (none_i32) (some_i32 found_position))) -(fn count_of ((values (vec i32)) (target i32)) -> i32 +(fn count_of ((values VecI32) (target i32)) -> i32 (var position i32 0) (var hits i32 0) (while (< position (len values)) @@ -126,7 +128,7 @@ (set position (+ position 1))) hits) -(fn contains ((values (vec i32)) (target i32)) -> bool +(fn contains ((values VecI32) (target i32)) -> bool (var position i32 0) (var hits i32 0) (while (< position (len values)) @@ -136,7 +138,7 @@ (set position (+ position 1))) (> hits 0)) -(fn sum ((values (vec i32))) -> i32 +(fn sum ((values VecI32)) -> i32 (var position i32 0) (var total i32 0) (while (< position (len values)) @@ -144,21 +146,21 @@ (set position (+ position 1))) total) -(fn concat_loop ((result (vec i32)) (right (vec i32)) (position i32) (right_len i32)) -> (vec i32) +(fn concat_loop ((result VecI32) (right VecI32) (position i32) (right_len i32)) -> VecI32 (if (< position right_len) (concat_loop (append result (at right position)) right (+ position 1) right_len) result)) -(fn concat ((left (vec i32)) (right (vec i32))) -> (vec i32) +(fn concat ((left VecI32) (right VecI32)) -> VecI32 (let right_len i32 (len right)) (concat_loop left right 0 right_len)) -(fn take_loop ((values (vec i32)) (position i32) (limit i32) (result (vec i32))) -> (vec i32) +(fn take_loop ((values VecI32) (position i32) (limit i32) (result VecI32)) -> VecI32 (if (< position limit) (take_loop values (+ position 1) limit (append result (at values position))) result)) -(fn take ((values (vec i32)) (count i32)) -> (vec i32) +(fn take ((values VecI32) (count i32)) -> VecI32 (let values_len i32 (len values)) (if (< count 0) (empty) @@ -166,35 +168,35 @@ (take_loop values 0 count (empty)) values))) -(fn starts_with ((values (vec i32)) (prefix (vec i32))) -> bool +(fn starts_with ((values VecI32) (prefix VecI32)) -> bool (let prefix_len i32 (len prefix)) (if (< (len values) prefix_len) false (= (take values prefix_len) prefix))) -(fn without_prefix ((values (vec i32)) (prefix (vec i32))) -> (vec i32) +(fn without_prefix ((values VecI32) (prefix VecI32)) -> VecI32 (if (starts_with values prefix) (drop values (len prefix)) values)) -(fn ends_with ((values (vec i32)) (suffix (vec i32))) -> bool +(fn ends_with ((values VecI32) (suffix VecI32)) -> bool (let values_len i32 (len values)) (let suffix_len i32 (len suffix)) (if (< values_len suffix_len) false (= (drop values (- values_len suffix_len)) suffix))) -(fn without_suffix ((values (vec i32)) (suffix (vec i32))) -> (vec i32) +(fn without_suffix ((values VecI32) (suffix VecI32)) -> VecI32 (if (ends_with values suffix) (take values (- (len values) (len suffix))) values)) -(fn drop_loop ((values (vec i32)) (position i32) (values_len i32) (result (vec i32))) -> (vec i32) +(fn drop_loop ((values VecI32) (position i32) (values_len i32) (result VecI32)) -> VecI32 (if (< position values_len) (drop_loop values (+ position 1) values_len (append result (at values position))) result)) -(fn drop ((values (vec i32)) (count i32)) -> (vec i32) +(fn drop ((values VecI32) (count i32)) -> VecI32 (let values_len i32 (len values)) (if (< count 0) values @@ -202,22 +204,22 @@ (drop_loop values count values_len (empty)) (empty)))) -(fn reverse_loop ((values (vec i32)) (position i32) (result (vec i32))) -> (vec i32) +(fn reverse_loop ((values VecI32) (position i32) (result VecI32)) -> VecI32 (if (< position 0) result (reverse_loop values (- position 1) (append result (at values position))))) -(fn reverse ((values (vec i32))) -> (vec i32) +(fn reverse ((values VecI32)) -> VecI32 (reverse_loop values (- (len values) 1) (empty))) -(fn subvec ((values (vec i32)) (start i32) (end_exclusive i32)) -> (vec i32) +(fn subvec ((values VecI32) (start i32) (end_exclusive i32)) -> VecI32 (if (< start 0) (empty) (if (< start end_exclusive) (take (drop values start) (- end_exclusive start)) (empty)))) -(fn insert_at ((values (vec i32)) (position i32) (value i32)) -> (vec i32) +(fn insert_at ((values VecI32) (position i32) (value i32)) -> VecI32 (if (< position 0) values (if (< position (len values)) @@ -226,7 +228,7 @@ (append values value) values)))) -(fn insert_range ((values (vec i32)) (position i32) (inserted (vec i32))) -> (vec i32) +(fn insert_range ((values VecI32) (position i32) (inserted VecI32)) -> VecI32 (if (< position 0) values (if (< position (len values)) @@ -235,14 +237,14 @@ (concat values inserted) values)))) -(fn replace_at ((values (vec i32)) (position i32) (replacement i32)) -> (vec i32) +(fn replace_at ((values VecI32) (position i32) (replacement i32)) -> VecI32 (if (< position 0) values (if (< position (len values)) (concat (append (take values position) replacement) (drop values (+ position 1))) values))) -(fn replace_range ((values (vec i32)) (start i32) (end_exclusive i32) (replacement (vec i32))) -> (vec i32) +(fn replace_range ((values VecI32) (start i32) (end_exclusive i32) (replacement VecI32)) -> VecI32 (let values_len i32 (len values)) (if (< start 0) values @@ -252,14 +254,14 @@ values) values))) -(fn remove_at ((values (vec i32)) (position i32)) -> (vec i32) +(fn remove_at ((values VecI32) (position i32)) -> VecI32 (if (< position 0) values (if (< position (len values)) (concat (take values position) (drop values (+ position 1))) values))) -(fn remove_range ((values (vec i32)) (start i32) (end_exclusive i32)) -> (vec i32) +(fn remove_range ((values VecI32) (start i32) (end_exclusive i32)) -> VecI32 (let values_len i32 (len values)) (if (< start 0) values diff --git a/lib/std/vec_i64.slo b/lib/std/vec_i64.slo index d041e3e..7feeece 100644 --- a/lib/std/vec_i64.slo +++ b/lib/std/vec_i64.slo @@ -1,118 +1,120 @@ (module vec_i64 (export empty append len at singleton append2 append3 pair triple is_empty index_or first_or last_or index_option first_option last_option index_of_option last_index_of_option contains sum concat take drop reverse subvec insert_at insert_range replace_at replace_range remove_at remove_range)) -(fn empty () -> (vec i64) +(type VecI64 (vec i64)) + +(fn empty () -> VecI64 (std.vec.i64.empty)) -(fn append ((values (vec i64)) (value i64)) -> (vec i64) +(fn append ((values VecI64) (value i64)) -> VecI64 (std.vec.i64.append values value)) -(fn len ((values (vec i64))) -> i32 +(fn len ((values VecI64)) -> i32 (std.vec.i64.len values)) -(fn at ((values (vec i64)) (position i32)) -> i64 +(fn at ((values VecI64) (position i32)) -> i64 (std.vec.i64.index values position)) -(fn singleton ((value i64)) -> (vec i64) +(fn singleton ((value i64)) -> VecI64 (append (empty) value)) -(fn append2 ((values (vec i64)) (first i64) (second i64)) -> (vec i64) +(fn append2 ((values VecI64) (first i64) (second i64)) -> VecI64 (append (append values first) second)) -(fn append3 ((values (vec i64)) (first i64) (second i64) (third i64)) -> (vec i64) +(fn append3 ((values VecI64) (first i64) (second i64) (third i64)) -> VecI64 (append (append2 values first second) third)) -(fn pair ((first i64) (second i64)) -> (vec i64) +(fn pair ((first i64) (second i64)) -> VecI64 (append2 (empty) first second)) -(fn triple ((first i64) (second i64) (third i64)) -> (vec i64) +(fn triple ((first i64) (second i64) (third i64)) -> VecI64 (append3 (empty) first second third)) -(fn is_empty ((values (vec i64))) -> bool +(fn is_empty ((values VecI64)) -> bool (= (len values) 0)) -(fn index_or ((values (vec i64)) (position i32) (fallback i64)) -> i64 +(fn index_or ((values VecI64) (position i32) (fallback i64)) -> i64 (if (< position 0) fallback (if (< position (len values)) (at values position) fallback))) -(fn first_or ((values (vec i64)) (fallback i64)) -> i64 +(fn first_or ((values VecI64) (fallback i64)) -> i64 (index_or values 0 fallback)) -(fn last_or ((values (vec i64)) (fallback i64)) -> i64 +(fn last_or ((values VecI64) (fallback i64)) -> i64 (if (is_empty values) fallback (at values (- (len values) 1)))) -(fn index_option ((values (vec i64)) (position i32)) -> (option i64) +(fn index_option ((values VecI64) (position i32)) -> (option i64) (if (< position 0) (none i64) (if (< position (len values)) (some i64 (at values position)) (none i64)))) -(fn first_option ((values (vec i64))) -> (option i64) +(fn first_option ((values VecI64)) -> (option i64) (index_option values 0)) -(fn last_option ((values (vec i64))) -> (option i64) +(fn last_option ((values VecI64)) -> (option i64) (if (is_empty values) (none i64) (some i64 (at values (- (len values) 1))))) -(fn index_of_option_loop ((values (vec i64)) (target i64) (position i32) (values_len i32)) -> (option i32) +(fn index_of_option_loop ((values VecI64) (target i64) (position i32) (values_len i32)) -> (option i32) (if (< position values_len) (if (= (at values position) target) (some i32 position) (index_of_option_loop values target (+ position 1) values_len)) (none i32))) -(fn index_of_option ((values (vec i64)) (target i64)) -> (option i32) +(fn index_of_option ((values VecI64) (target i64)) -> (option i32) (index_of_option_loop values target 0 (len values))) -(fn last_index_of_option_loop ((values (vec i64)) (target i64) (position i32) (values_len i32) (found_position (option i32))) -> (option i32) +(fn last_index_of_option_loop ((values VecI64) (target i64) (position i32) (values_len i32) (found_position (option i32))) -> (option i32) (if (< position values_len) (last_index_of_option_loop values target (+ position 1) values_len (if (= (at values position) target) (some i32 position) found_position)) found_position)) -(fn last_index_of_option ((values (vec i64)) (target i64)) -> (option i32) +(fn last_index_of_option ((values VecI64) (target i64)) -> (option i32) (last_index_of_option_loop values target 0 (len values) (none i32))) -(fn contains_loop ((values (vec i64)) (target i64) (position i32) (values_len i32)) -> bool +(fn contains_loop ((values VecI64) (target i64) (position i32) (values_len i32)) -> bool (if (< position values_len) (if (= (at values position) target) true (contains_loop values target (+ position 1) values_len)) false)) -(fn contains ((values (vec i64)) (target i64)) -> bool +(fn contains ((values VecI64) (target i64)) -> bool (contains_loop values target 0 (len values))) -(fn sum_loop ((values (vec i64)) (position i32) (values_len i32) (total i64)) -> i64 +(fn sum_loop ((values VecI64) (position i32) (values_len i32) (total i64)) -> i64 (if (< position values_len) (sum_loop values (+ position 1) values_len (+ total (at values position))) total)) -(fn sum ((values (vec i64))) -> i64 +(fn sum ((values VecI64)) -> i64 (sum_loop values 0 (len values) 0i64)) -(fn concat_loop ((result (vec i64)) (right (vec i64)) (position i32) (right_len i32)) -> (vec i64) +(fn concat_loop ((result VecI64) (right VecI64) (position i32) (right_len i32)) -> VecI64 (if (< position right_len) (concat_loop (append result (at right position)) right (+ position 1) right_len) result)) -(fn concat ((left (vec i64)) (right (vec i64))) -> (vec i64) +(fn concat ((left VecI64) (right VecI64)) -> VecI64 (let right_len i32 (len right)) (concat_loop left right 0 right_len)) -(fn take_loop ((values (vec i64)) (position i32) (limit i32) (result (vec i64))) -> (vec i64) +(fn take_loop ((values VecI64) (position i32) (limit i32) (result VecI64)) -> VecI64 (if (< position limit) (take_loop values (+ position 1) limit (append result (at values position))) result)) -(fn take ((values (vec i64)) (count i32)) -> (vec i64) +(fn take ((values VecI64) (count i32)) -> VecI64 (let values_len i32 (len values)) (if (< count 0) (empty) @@ -120,12 +122,12 @@ (take_loop values 0 count (empty)) values))) -(fn drop_loop ((values (vec i64)) (position i32) (values_len i32) (result (vec i64))) -> (vec i64) +(fn drop_loop ((values VecI64) (position i32) (values_len i32) (result VecI64)) -> VecI64 (if (< position values_len) (drop_loop values (+ position 1) values_len (append result (at values position))) result)) -(fn drop ((values (vec i64)) (count i32)) -> (vec i64) +(fn drop ((values VecI64) (count i32)) -> VecI64 (let values_len i32 (len values)) (if (< count 0) values @@ -133,22 +135,22 @@ (drop_loop values count values_len (empty)) (empty)))) -(fn reverse_loop ((values (vec i64)) (position i32) (result (vec i64))) -> (vec i64) +(fn reverse_loop ((values VecI64) (position i32) (result VecI64)) -> VecI64 (if (< position 0) result (reverse_loop values (- position 1) (append result (at values position))))) -(fn reverse ((values (vec i64))) -> (vec i64) +(fn reverse ((values VecI64)) -> VecI64 (reverse_loop values (- (len values) 1) (empty))) -(fn subvec ((values (vec i64)) (start i32) (end_exclusive i32)) -> (vec i64) +(fn subvec ((values VecI64) (start i32) (end_exclusive i32)) -> VecI64 (if (< start 0) (empty) (if (< start end_exclusive) (take (drop values start) (- end_exclusive start)) (empty)))) -(fn insert_at ((values (vec i64)) (position i32) (value i64)) -> (vec i64) +(fn insert_at ((values VecI64) (position i32) (value i64)) -> VecI64 (let values_len i32 (len values)) (if (< position 0) values @@ -158,7 +160,7 @@ (append values value) values)))) -(fn insert_range ((values (vec i64)) (position i32) (inserted (vec i64))) -> (vec i64) +(fn insert_range ((values VecI64) (position i32) (inserted VecI64)) -> VecI64 (let values_len i32 (len values)) (if (< position 0) values @@ -168,14 +170,14 @@ (concat values inserted) values)))) -(fn replace_at ((values (vec i64)) (position i32) (replacement i64)) -> (vec i64) +(fn replace_at ((values VecI64) (position i32) (replacement i64)) -> VecI64 (if (< position 0) values (if (< position (len values)) (concat (append (take values position) replacement) (drop values (+ position 1))) values))) -(fn replace_range ((values (vec i64)) (start i32) (end_exclusive i32) (replacement (vec i64))) -> (vec i64) +(fn replace_range ((values VecI64) (start i32) (end_exclusive i32) (replacement VecI64)) -> VecI64 (let values_len i32 (len values)) (if (< start 0) values @@ -185,14 +187,14 @@ values) values))) -(fn remove_at ((values (vec i64)) (position i32)) -> (vec i64) +(fn remove_at ((values VecI64) (position i32)) -> VecI64 (if (< position 0) values (if (< position (len values)) (concat (take values position) (drop values (+ position 1))) values))) -(fn remove_range ((values (vec i64)) (start i32) (end_exclusive i32)) -> (vec i64) +(fn remove_range ((values VecI64) (start i32) (end_exclusive i32)) -> VecI64 (let values_len i32 (len values)) (if (< start 0) values diff --git a/lib/std/vec_string.slo b/lib/std/vec_string.slo index d72c4b5..e92607d 100644 --- a/lib/std/vec_string.slo +++ b/lib/std/vec_string.slo @@ -1,120 +1,122 @@ (module vec_string (export empty append len at singleton append2 append3 pair triple is_empty index_or first_or last_or index_option first_option last_option index_of_option last_index_of_option contains count_of concat take starts_with without_prefix ends_with without_suffix drop reverse subvec insert_at insert_range replace_at replace_range remove_at remove_range)) -(fn empty () -> (vec string) +(type VecString (vec string)) + +(fn empty () -> VecString (std.vec.string.empty)) -(fn append ((values (vec string)) (value string)) -> (vec string) +(fn append ((values VecString) (value string)) -> VecString (std.vec.string.append values value)) -(fn len ((values (vec string))) -> i32 +(fn len ((values VecString)) -> i32 (std.vec.string.len values)) -(fn at ((values (vec string)) (position i32)) -> string +(fn at ((values VecString) (position i32)) -> string (std.vec.string.index values position)) -(fn singleton ((value string)) -> (vec string) +(fn singleton ((value string)) -> VecString (append (empty) value)) -(fn append2 ((values (vec string)) (first string) (second string)) -> (vec string) +(fn append2 ((values VecString) (first string) (second string)) -> VecString (append (append values first) second)) -(fn append3 ((values (vec string)) (first string) (second string) (third string)) -> (vec string) +(fn append3 ((values VecString) (first string) (second string) (third string)) -> VecString (append (append2 values first second) third)) -(fn pair ((first string) (second string)) -> (vec string) +(fn pair ((first string) (second string)) -> VecString (append2 (empty) first second)) -(fn triple ((first string) (second string) (third string)) -> (vec string) +(fn triple ((first string) (second string) (third string)) -> VecString (append3 (empty) first second third)) -(fn is_empty ((values (vec string))) -> bool +(fn is_empty ((values VecString)) -> bool (= (len values) 0)) -(fn index_or ((values (vec string)) (position i32) (fallback string)) -> string +(fn index_or ((values VecString) (position i32) (fallback string)) -> string (if (< position 0) fallback (if (< position (len values)) (at values position) fallback))) -(fn first_or ((values (vec string)) (fallback string)) -> string +(fn first_or ((values VecString) (fallback string)) -> string (index_or values 0 fallback)) -(fn last_or ((values (vec string)) (fallback string)) -> string +(fn last_or ((values VecString) (fallback string)) -> string (if (is_empty values) fallback (at values (- (len values) 1)))) -(fn index_option ((values (vec string)) (position i32)) -> (option string) +(fn index_option ((values VecString) (position i32)) -> (option string) (if (< position 0) (none string) (if (< position (len values)) (some string (at values position)) (none string)))) -(fn first_option ((values (vec string))) -> (option string) +(fn first_option ((values VecString)) -> (option string) (index_option values 0)) -(fn last_option ((values (vec string))) -> (option string) +(fn last_option ((values VecString)) -> (option string) (if (is_empty values) (none string) (some string (at values (- (len values) 1))))) -(fn index_of_option_loop ((values (vec string)) (target string) (position i32) (values_len i32)) -> (option i32) +(fn index_of_option_loop ((values VecString) (target string) (position i32) (values_len i32)) -> (option i32) (if (< position values_len) (if (= (at values position) target) (some i32 position) (index_of_option_loop values target (+ position 1) values_len)) (none i32))) -(fn index_of_option ((values (vec string)) (target string)) -> (option i32) +(fn index_of_option ((values VecString) (target string)) -> (option i32) (index_of_option_loop values target 0 (len values))) -(fn last_index_of_option_loop ((values (vec string)) (target string) (position i32) (values_len i32) (found (option i32))) -> (option i32) +(fn last_index_of_option_loop ((values VecString) (target string) (position i32) (values_len i32) (found (option i32))) -> (option i32) (if (< position values_len) (if (= (at values position) target) (last_index_of_option_loop values target (+ position 1) values_len (some i32 position)) (last_index_of_option_loop values target (+ position 1) values_len found)) found)) -(fn last_index_of_option ((values (vec string)) (target string)) -> (option i32) +(fn last_index_of_option ((values VecString) (target string)) -> (option i32) (last_index_of_option_loop values target 0 (len values) (none i32))) -(fn contains_loop ((values (vec string)) (target string) (position i32) (values_len i32)) -> bool +(fn contains_loop ((values VecString) (target string) (position i32) (values_len i32)) -> bool (if (< position values_len) (if (= (at values position) target) true (contains_loop values target (+ position 1) values_len)) false)) -(fn contains ((values (vec string)) (target string)) -> bool +(fn contains ((values VecString) (target string)) -> bool (contains_loop values target 0 (len values))) -(fn count_of_loop ((values (vec string)) (target string) (position i32) (values_len i32) (hits i32)) -> i32 +(fn count_of_loop ((values VecString) (target string) (position i32) (values_len i32) (hits i32)) -> i32 (if (< position values_len) (count_of_loop values target (+ position 1) values_len (+ hits (if (= (at values position) target) 1 0))) hits)) -(fn count_of ((values (vec string)) (target string)) -> i32 +(fn count_of ((values VecString) (target string)) -> i32 (count_of_loop values target 0 (len values) 0)) -(fn concat_loop ((built (vec string)) (right (vec string)) (position i32) (right_len i32)) -> (vec string) +(fn concat_loop ((built VecString) (right VecString) (position i32) (right_len i32)) -> VecString (if (< position right_len) (concat_loop (append built (at right position)) right (+ position 1) right_len) built)) -(fn concat ((left (vec string)) (right (vec string))) -> (vec string) +(fn concat ((left VecString) (right VecString)) -> VecString (let right_len i32 (len right)) (concat_loop left right 0 right_len)) -(fn take_loop ((values (vec string)) (position i32) (limit i32) (built (vec string))) -> (vec string) +(fn take_loop ((values VecString) (position i32) (limit i32) (built VecString)) -> VecString (if (< position limit) (take_loop values (+ position 1) limit (append built (at values position))) built)) -(fn take ((values (vec string)) (count i32)) -> (vec string) +(fn take ((values VecString) (count i32)) -> VecString (let values_len i32 (len values)) (if (< count 0) (empty) @@ -122,35 +124,35 @@ (take_loop values 0 count (empty)) values))) -(fn starts_with ((values (vec string)) (prefix (vec string))) -> bool +(fn starts_with ((values VecString) (prefix VecString)) -> bool (let prefix_len i32 (len prefix)) (if (< (len values) prefix_len) false (= (take values prefix_len) prefix))) -(fn without_prefix ((values (vec string)) (prefix (vec string))) -> (vec string) +(fn without_prefix ((values VecString) (prefix VecString)) -> VecString (if (starts_with values prefix) (drop values (len prefix)) values)) -(fn ends_with ((values (vec string)) (suffix (vec string))) -> bool +(fn ends_with ((values VecString) (suffix VecString)) -> bool (let values_len i32 (len values)) (let suffix_len i32 (len suffix)) (if (< values_len suffix_len) false (= (drop values (- values_len suffix_len)) suffix))) -(fn without_suffix ((values (vec string)) (suffix (vec string))) -> (vec string) +(fn without_suffix ((values VecString) (suffix VecString)) -> VecString (if (ends_with values suffix) (take values (- (len values) (len suffix))) values)) -(fn drop_loop ((values (vec string)) (position i32) (values_len i32) (built (vec string))) -> (vec string) +(fn drop_loop ((values VecString) (position i32) (values_len i32) (built VecString)) -> VecString (if (< position values_len) (drop_loop values (+ position 1) values_len (append built (at values position))) built)) -(fn drop ((values (vec string)) (count i32)) -> (vec string) +(fn drop ((values VecString) (count i32)) -> VecString (let values_len i32 (len values)) (if (< count 0) values @@ -158,22 +160,22 @@ (drop_loop values count values_len (empty)) (empty)))) -(fn reverse_loop ((values (vec string)) (position i32) (built (vec string))) -> (vec string) +(fn reverse_loop ((values VecString) (position i32) (built VecString)) -> VecString (if (< position 0) built (reverse_loop values (- position 1) (append built (at values position))))) -(fn reverse ((values (vec string))) -> (vec string) +(fn reverse ((values VecString)) -> VecString (reverse_loop values (- (len values) 1) (empty))) -(fn subvec ((values (vec string)) (start i32) (end_exclusive i32)) -> (vec string) +(fn subvec ((values VecString) (start i32) (end_exclusive i32)) -> VecString (if (< start 0) (empty) (if (< start end_exclusive) (take (drop values start) (- end_exclusive start)) (empty)))) -(fn insert_at ((values (vec string)) (position i32) (value string)) -> (vec string) +(fn insert_at ((values VecString) (position i32) (value string)) -> VecString (let values_len i32 (len values)) (if (< position 0) values @@ -183,7 +185,7 @@ (append values value) values)))) -(fn insert_range ((values (vec string)) (position i32) (inserted (vec string))) -> (vec string) +(fn insert_range ((values VecString) (position i32) (inserted VecString)) -> VecString (let values_len i32 (len values)) (if (< position 0) values @@ -193,14 +195,14 @@ (concat values inserted) values)))) -(fn replace_at ((values (vec string)) (position i32) (replacement string)) -> (vec string) +(fn replace_at ((values VecString) (position i32) (replacement string)) -> VecString (if (< position 0) values (if (< position (len values)) (concat (append (take values position) replacement) (drop values (+ position 1))) values))) -(fn replace_range ((values (vec string)) (start i32) (end_exclusive i32) (replacement (vec string))) -> (vec string) +(fn replace_range ((values VecString) (start i32) (end_exclusive i32) (replacement VecString)) -> VecString (let values_len i32 (len values)) (if (< start 0) values @@ -210,14 +212,14 @@ values) values))) -(fn remove_at ((values (vec string)) (position i32)) -> (vec string) +(fn remove_at ((values VecString) (position i32)) -> VecString (if (< position 0) values (if (< position (len values)) (concat (take values position) (drop values (+ position 1))) values))) -(fn remove_range ((values (vec string)) (start i32) (end_exclusive i32)) -> (vec string) +(fn remove_range ((values VecString) (start i32) (end_exclusive i32)) -> VecString (let values_len i32 (len values)) (if (< start 0) values diff --git a/tests/std-result-map-unsupported.diag b/tests/std-result-map-unsupported.diag index 1682179..179efe5 100644 --- a/tests/std-result-map-unsupported.diag +++ b/tests/std-result-map-unsupported.diag @@ -2,14 +2,14 @@ (schema slovo.diagnostic) (version 1) (severity error) - (code UnsupportedStandardLibraryCall) - (message "standard library call `std.result.map` is not supported") + (code UnsupportedGenericStandardLibraryCall) + (message "generic standard-library call `std.result.map` is reserved but not supported in beta.9") (file "") (span (bytes 38 52) (range 5 4 5 18) ) - (expected "std.io.print_i32, std.io.print_u32, std.io.print_i64, std.io.print_u64, std.io.print_f64, std.io.print_string, std.io.print_bool, std.io.eprint, std.io.read_stdin_result, std.string.len, std.string.concat, std.string.parse_i32_result, std.string.parse_u32_result, std.string.parse_i64_result, std.string.parse_u64_result, std.string.parse_f64_result, std.string.parse_bool_result, std.json.quote_string, std.process.argc, std.process.arg, std.process.arg_result, std.env.get, std.env.get_result, std.fs.read_text, std.fs.read_text_result, std.fs.write_text, std.fs.write_text_result, std.fs.exists, std.fs.is_file, std.fs.is_dir, std.fs.remove_file_result, std.fs.create_dir_result, std.fs.open_text_read_result, std.fs.read_open_text_result, std.fs.close_result, std.vec.i32.empty, std.vec.i32.append, std.vec.i32.len, std.vec.i32.index, std.vec.i64.empty, std.vec.i64.append, std.vec.i64.len, std.vec.i64.index, std.vec.f64.empty, std.vec.f64.append, std.vec.f64.len, std.vec.f64.index, std.vec.bool.empty, std.vec.bool.append, std.vec.bool.len, std.vec.bool.index, std.vec.string.empty, std.vec.string.append, std.vec.string.len, std.vec.string.index, std.time.monotonic_ms, std.time.sleep_ms, std.random.i32, std.num.i32_to_i64, std.num.i32_to_f64, std.num.i64_to_f64, std.num.i64_to_i32_result, std.num.f64_to_i32_result, std.num.f64_to_i64_result, std.num.i32_to_string, std.num.u32_to_string, std.num.i64_to_string, std.num.u64_to_string, std.num.f64_to_string, std.result.is_ok, std.result.is_err, std.result.unwrap_ok, or std.result.unwrap_err") + (expected "promoted concrete standard-library function") (found "std.result.map") - (hint "use a promoted standard-runtime name or a legacy intrinsic alias") + (hint "use current concrete families such as `std.vec.i32.empty`") ) diff --git a/tests/std-vec-empty-generic-unsupported.diag b/tests/std-vec-empty-generic-unsupported.diag new file mode 100644 index 0000000..7b9812a --- /dev/null +++ b/tests/std-vec-empty-generic-unsupported.diag @@ -0,0 +1,15 @@ +(diagnostic + (schema slovo.diagnostic) + (version 1) + (severity error) + (code UnsupportedGenericStandardLibraryCall) + (message "generic standard-library call `std.vec.empty` is reserved but not supported in beta.9") + (file "") + (span + (bytes 38 51) + (range 5 4 5 17) + ) + (expected "promoted concrete standard-library function") + (found "std.vec.empty") + (hint "use current concrete families such as `std.vec.i32.empty`") +) diff --git a/tests/unsupported-generic-function.diag b/tests/unsupported-generic-function.diag new file mode 100644 index 0000000..7401330 --- /dev/null +++ b/tests/unsupported-generic-function.diag @@ -0,0 +1,15 @@ +(diagnostic + (schema slovo.diagnostic) + (version 1) + (severity error) + (code UnsupportedGenericFunction) + (message "generic function declarations are reserved but not supported in beta.9") + (file "") + (span + (bytes 23 38) + (range 4 8 4 23) + ) + (expected "(fn name ((arg ConcreteType) ...) -> ConcreteType body...)") + (found "(type_params ...)") + (hint "write a concrete function for each currently supported type family") +) diff --git a/tests/unsupported-generic-type-alias.diag b/tests/unsupported-generic-type-alias.diag new file mode 100644 index 0000000..03c4b2e --- /dev/null +++ b/tests/unsupported-generic-type-alias.diag @@ -0,0 +1,15 @@ +(diagnostic + (schema slovo.diagnostic) + (version 1) + (severity error) + (code UnsupportedGenericTypeAlias) + (message "parameterized type aliases are reserved but not supported in beta.9") + (file "") + (span + (bytes 28 43) + (range 4 13 4 28) + ) + (expected "(type Alias ConcreteType)") + (found "(type_params ...)") + (hint "aliases remain transparent names for concrete supported target types") +) diff --git a/tests/unsupported-generic-type-parameter.diag b/tests/unsupported-generic-type-parameter.diag new file mode 100644 index 0000000..c607a33 --- /dev/null +++ b/tests/unsupported-generic-type-parameter.diag @@ -0,0 +1,15 @@ +(diagnostic + (schema slovo.diagnostic) + (version 1) + (severity error) + (code UnsupportedGenericTypeParameter) + (message "generic type parameter `T` is reserved but not supported in beta.9") + (file "") + (span + (bytes 42 44) + (range 5 8 5 10) + ) + (expected "concrete supported type") + (found "T") + (hint "use a concrete promoted type such as `i32`, `string`, or `(vec i32)`") +) diff --git a/tests/unsupported-generic-vec-type.diag b/tests/unsupported-generic-vec-type.diag index 9df613b..d0b810a 100644 --- a/tests/unsupported-generic-vec-type.diag +++ b/tests/unsupported-generic-vec-type.diag @@ -2,11 +2,14 @@ (schema slovo.diagnostic) (version 1) (severity error) - (code InvalidReturnType) - (message "invalid return type") + (code UnsupportedGenericTypeParameter) + (message "generic vector syntax is reserved but not supported in beta.9") (file "") (span (bytes 31 36) (range 4 16 4 21) ) + (expected "(vec i32), (vec i64), (vec f64), (vec bool), or (vec string)") + (found "(vec)") + (hint "choose one current concrete vector family explicitly") ) diff --git a/tests/unsupported-map-type.diag b/tests/unsupported-map-type.diag new file mode 100644 index 0000000..ee8661d --- /dev/null +++ b/tests/unsupported-map-type.diag @@ -0,0 +1,15 @@ +(diagnostic + (schema slovo.diagnostic) + (version 1) + (severity error) + (code UnsupportedMapType) + (message "`map` types are reserved but not supported in beta.9") + (file "") + (span + (bytes 31 47) + (range 4 16 4 32) + ) + (expected "supported concrete type") + (found "(map string i32)") + (hint "use current concrete arrays, vectors, option/result, structs, enums, or scalars") +) diff --git a/tests/unsupported-set-type.diag b/tests/unsupported-set-type.diag new file mode 100644 index 0000000..ec68a3f --- /dev/null +++ b/tests/unsupported-set-type.diag @@ -0,0 +1,15 @@ +(diagnostic + (schema slovo.diagnostic) + (version 1) + (severity error) + (code UnsupportedSetType) + (message "`set` types are reserved but not supported in beta.9") + (file "") + (span + (bytes 31 43) + (range 4 16 4 28) + ) + (expected "supported concrete type") + (found "(set string)") + (hint "use current concrete arrays, vectors, option/result, structs, enums, or scalars") +) diff --git a/tests/unsupported-type-alias-target.diag b/tests/unsupported-type-alias-target.diag index 5169128..cca0620 100644 --- a/tests/unsupported-type-alias-target.diag +++ b/tests/unsupported-type-alias-target.diag @@ -3,7 +3,7 @@ (version 1) (severity error) (code UnsupportedTypeAliasTarget) - (message "type alias target type is not supported in beta.8") + (message "type alias target type is not supported in the current beta") (file "") (span (bytes 50 59) @@ -19,7 +19,7 @@ (version 1) (severity error) (code UnsupportedTypeAliasTarget) - (message "type alias target type is not supported in beta.8") + (message "type alias target type is not supported in the current beta") (file "") (span (bytes 132 151) @@ -35,7 +35,7 @@ (version 1) (severity error) (code UnsupportedTypeAliasTarget) - (message "type alias target type is not supported in beta.8") + (message "type alias target type is not supported in the current beta") (file "") (span (bytes 77 88) @@ -51,7 +51,7 @@ (version 1) (severity error) (code UnsupportedTypeAliasTarget) - (message "type alias target type is not supported in beta.8") + (message "type alias target type is not supported in the current beta") (file "") (span (bytes 30 34) @@ -67,7 +67,7 @@ (version 1) (severity error) (code UnsupportedTypeAliasTarget) - (message "type alias target type is not supported in beta.8") + (message "type alias target type is not supported in the current beta") (file "") (span (bytes 104 113)

    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�dA40(;8;&Up8L9_T#-4 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¬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