fosstodon.org is one of the many independent Mastodon servers you can use to participate in the fediverse.
Fosstodon is an invite only Mastodon instance that is open to those who are interested in technology; particularly free & open source software. If you wish to join, contact us for an invite.

Administered by:

Server stats:

10K
active users

#ual

0 posts0 participants0 posts today
@haitchfive<p><a href="https://oldbytes.space/tags/ual" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ual</span></a></p>
@haitchfive<p>Computer-sciencey once more:</p><p><strong>The Composition-Oriented ual Way</strong></p><p><strong>Part 2: Perspectives - Unified Access Patterns</strong></p><p><a href="https://github.com/ha1tch/ual/blob/main/doc/ual-composition/ual-composition-02.md" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/ha1tch/ual/blob/mai</span><span class="invisible">n/doc/ual-composition/ual-composition-02.md</span></a></p><p>In ual, traditional data structures like stacks, queues, and dictionaries are seen as different views, implementations, and interfaces which were historically separated into categories that deep down are fundamentally made of the same axiomatic principles. Instead of treating these as separate entities with different operations, ual proposes a unified "perspective system" where these are simply different ways of accessing the same underlying container. This approach offers greater flexibility by allowing programmers to switch between different access patterns without changing the underlying code structure. The system simplifies programming by reducing conceptual overhead and enabling more adaptable algorithms through a more unified approach to data organization and access.</p><p>Part 2 of 6, the rest of the series is here:<br><a href="https://github.com/ha1tch/ual/tree/main/doc/ual-composition" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/ha1tch/ual/tree/mai</span><span class="invisible">n/doc/ual-composition</span></a></p><p><a href="https://oldbytes.space/tags/ual" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ual</span></a> <a href="https://oldbytes.space/tags/rustlang" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>rustlang</span></a> <a href="https://oldbytes.space/tags/golang" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>golang</span></a> <a href="https://oldbytes.space/tags/forth" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>forth</span></a> <a href="https://oldbytes.space/tags/compsci" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>compsci</span></a> <a href="https://oldbytes.space/tags/programming" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>programming</span></a> <a href="https://oldbytes.space/tags/retrodev" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>retrodev</span></a> <a href="https://oldbytes.space/tags/retrofuturism" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>retrofuturism</span></a> <a href="https://oldbytes.space/tags/retrocomputing" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>retrocomputing</span></a></p>
@haitchfive<p><strong>ual update:</strong></p><ul><li>ual for Rust devs<ul><li><a href="https://github.com/ha1tch/ual/blob/main/doc/primer/ual-primer-04-rust.md" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/ha1tch/ual/blob/mai</span><span class="invisible">n/doc/primer/ual-primer-04-rust.md</span></a></li></ul></li></ul><p><strong>I added two new intros to the "Primers" collection, one is a general intro, the other a specific one for Rust developers.</strong></p><p><strong>ual primer collection</strong></p><p><a href="https://github.com/ha1tch/ual/tree/main/doc/primer" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/ha1tch/ual/tree/mai</span><span class="invisible">n/doc/primer</span></a></p><ul><li>00 Intro <ul><li><a href="https://github.com/ha1tch/ual/blob/main/doc/primer/ual-primer-00-intro.md" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/ha1tch/ual/blob/mai</span><span class="invisible">n/doc/primer/ual-primer-00-intro.md</span></a></li></ul></li><li><p>01 Mainstream devs</p><ul><li><a href="https://github.com/ha1tch/ual/blob/main/doc/primer/ual-primer-01-mainstream.md" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/ha1tch/ual/blob/mai</span><span class="invisible">n/doc/primer/ual-primer-01-mainstream.md</span></a></li></ul></li><li><p>02 Embedded devs </p><ul><li> <a href="https://github.com/ha1tch/ual/blob/main/doc/primer/ual-primer-02-embedded.md" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/ha1tch/ual/blob/mai</span><span class="invisible">n/doc/primer/ual-primer-02-embedded.md</span></a></li></ul></li><li><p>03 Retro/minimalist devs</p><ul><li><a href="https://github.com/ha1tch/ual/blob/main/doc/primer/ual-primer-03-retro-minimalist.md" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/ha1tch/ual/blob/mai</span><span class="invisible">n/doc/primer/ual-primer-03-retro-minimalist.md</span></a></li></ul></li><li><p>04 Rust devs</p><ul><li><a href="https://github.com/ha1tch/ual/blob/main/doc/primer/ual-primer-04-rust.md" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/ha1tch/ual/blob/mai</span><span class="invisible">n/doc/primer/ual-primer-04-rust.md</span></a></li></ul></li></ul><p><a href="https://oldbytes.space/tags/ual" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ual</span></a> <a href="https://oldbytes.space/tags/forth" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>forth</span></a> <a href="https://oldbytes.space/tags/rustlang" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>rustlang</span></a> <a href="https://oldbytes.space/tags/golang" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>golang</span></a> <a href="https://oldbytes.space/tags/programming" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>programming</span></a> <a href="https://oldbytes.space/tags/compsci" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>compsci</span></a> <a href="https://oldbytes.space/tags/foss" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>foss</span></a></p>
@haitchfive<p><strong>ual updates</strong></p><ul><li><em>new</em> Enhanced Execution Mechanics - Pull and Value Handling<ul><li>Several refinements addressing inconsistencies between ual's way and Forth-like behaviour</li><li><a href="https://github.com/ha1tch/ual/blob/main/spec/incoming/ual-1.9-PROPOSAL-enhanced-exec-mechanics.md" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/ha1tch/ual/blob/mai</span><span class="invisible">n/spec/incoming/ual-1.9-PROPOSAL-enhanced-exec-mechanics.md</span></a></li></ul></li><li><em>new</em> A renewed effort towards a more cohesive grammar that encompases all/most improvements from the proposals since the 1.3 spec.<ul><li><a href="https://github.com/ha1tch/ual/blob/main/spec/incoming/ual-1.9-PROPOSAL-consolidated-grammar-spec.md" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/ha1tch/ual/blob/mai</span><span class="invisible">n/spec/incoming/ual-1.9-PROPOSAL-consolidated-grammar-spec.md</span></a></li><li>tentative ebnf draft <a href="https://github.com/ha1tch/ual/blob/main/spec/incoming/ual-0.1.9-preview.ebnf" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/ha1tch/ual/blob/mai</span><span class="invisible">n/spec/incoming/ual-0.1.9-preview.ebnf</span></a></li><li>Rust + Chumsky-based incomplete parser preview based on the preliminary ebnf 1.9 description<ul><li> <a href="https://github.com/ha1tch/ual/blob/main/rualc/rualc-1.9-chumsky.rs" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/ha1tch/ual/blob/mai</span><span class="invisible">n/rualc/rualc-1.9-chumsky.rs</span></a></li></ul></li></ul></li></ul><p><strong>This is the ual way:</strong></p><p><strong>ual 1.3 spec</strong></p><ul><li>P1:<a href="https://github.com/ha1tch/ual/blob/main/spec/current/ual-1.3-spec-P1.md" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/ha1tch/ual/blob/mai</span><span class="invisible">n/spec/current/ual-1.3-spec-P1.md</span></a></li><li>P2: <a href="https://github.com/ha1tch/ual/blob/main/spec/current/ual-1.3-spec-P2.md" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/ha1tch/ual/blob/mai</span><span class="invisible">n/spec/current/ual-1.3-spec-P2.md</span></a></li></ul><p><strong>Error Stack Mechanism</strong></p><ul><li><a href="https://github.com/ha1tch/ual/blob/main/spec/incoming/ual-1.4-PROPOSAL-error-stack.md" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/ha1tch/ual/blob/mai</span><span class="invisible">n/spec/incoming/ual-1.4-PROPOSAL-error-stack.md</span></a></li></ul><p><strong>Typed Stacks</strong></p><ul><li>P1: <a href="https://github.com/ha1tch/ual/blob/main/spec/incoming/ual-1.4-PROPOSAL-typed-stacks-01.md" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/ha1tch/ual/blob/mai</span><span class="invisible">n/spec/incoming/ual-1.4-PROPOSAL-typed-stacks-01.md</span></a></li><li>P2: <a href="https://github.com/ha1tch/ual/blob/main/spec/incoming/ual-1.4-PROPOSAL-typed-stacks-02.md" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/ha1tch/ual/blob/mai</span><span class="invisible">n/spec/incoming/ual-1.4-PROPOSAL-typed-stacks-02.md</span></a></li></ul><p><strong>Ownership Mechanism</strong></p><ul><li><a href="https://github.com/ha1tch/ual/blob/main/spec/incoming/ual-1.5-PROPOSAL-ownership-system.md" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/ha1tch/ual/blob/mai</span><span class="invisible">n/spec/incoming/ual-1.5-PROPOSAL-ownership-system.md</span></a></li></ul><p><strong>Defer Stack Mechanism</strong></p><ul><li><a href="https://github.com/ha1tch/ual/blob/main/spec/incoming/ual-1.5-PROPOSAL-defer.md" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/ha1tch/ual/blob/mai</span><span class="invisible">n/spec/incoming/ual-1.5-PROPOSAL-defer.md</span></a></li></ul><p><strong>Stack Perspectives</strong></p><ul><li><a href="https://github.com/ha1tch/ual/blob/main/spec/incoming/ual-1.5-PROPOSAL-stack-perspectives.md" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/ha1tch/ual/blob/mai</span><span class="invisible">n/spec/incoming/ual-1.5-PROPOSAL-stack-perspectives.md</span></a></li></ul><p><strong>Concurrency Model</strong></p><ul><li>P1: <a href="https://github.com/ha1tch/ual/blob/main/spec/incoming/ual-1.5-PROPOSAL-concurrency-model-01.md" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/ha1tch/ual/blob/mai</span><span class="invisible">n/spec/incoming/ual-1.5-PROPOSAL-concurrency-model-01.md</span></a></li><li>P2: <a href="https://github.com/ha1tch/ual/blob/main/spec/incoming/ual-1.5-PROPOSAL-concurrency-model-02.md" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/ha1tch/ual/blob/mai</span><span class="invisible">n/spec/incoming/ual-1.5-PROPOSAL-concurrency-model-02.md</span></a></li></ul><p><strong>Stack Slicing and Segment Borrowing</strong></p><ul><li><a href="https://github.com/ha1tch/ual/blob/main/spec/incoming/ual-1.6-PROPOSAL-slice-borrowing.md" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/ha1tch/ual/blob/mai</span><span class="invisible">n/spec/incoming/ual-1.6-PROPOSAL-slice-borrowing.md</span></a></li></ul><p><a href="https://oldbytes.space/tags/ual" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ual</span></a> <a href="https://oldbytes.space/tags/forth" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>forth</span></a> <a href="https://oldbytes.space/tags/rustlang" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>rustlang</span></a> <a href="https://oldbytes.space/tags/golang" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>golang</span></a> <a href="https://oldbytes.space/tags/programming" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>programming</span></a> <a href="https://oldbytes.space/tags/compsci" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>compsci</span></a> <a href="https://oldbytes.space/tags/foss" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>foss</span></a></p>
@haitchfive<p><strong>Crosstacks are Orthogonal Stack Views</strong></p><p><a href="https://github.com/ha1tch/ual/blob/main/spec/incoming/ual-1.8-PROPOSAL-crosstacks.md" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/ha1tch/ual/blob/mai</span><span class="invisible">n/spec/incoming/ual-1.8-PROPOSAL-crosstacks.md</span></a><br>Crosstacks are a new ual kind of element that provides orthogonal views across multiple stacks (think: a row of a spreadsheet that traverses several stack columns).<br>This extension lets you work with data in both vertical (traditional stack) and horizontal (cross-stack) directions with equal efficiency. With crosstacks, you can elegantly express complex operations on multi-dimensional data without specialized syntax. Tailored for matrix operations, image processing, and tensor calculations while maintaining ual's philosophy of explicit, efficient operations.</p><p><strong>HA-HT</strong></p><p><a href="https://github.com/ha1tch/ual/blob/main/doc/compiler/crosstack-implementation/haht.md" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/ha1tch/ual/blob/mai</span><span class="invisible">n/doc/compiler/crosstack-implementation/haht.md</span></a><br>Under the hood, crosstacks use a Hybrid Adaptive Hash-Tree structure that combines direct addressing with specialized data structures. The first two levels provide O(1) access to positions, while the third level adapts between five different implementations based on actual usage patterns. This approach delivers consistent performance for both vertical and horizontal access while efficiently handling sparse data and diverse workloads. At this time this is our best candidate implementation.</p><p><a href="https://oldbytes.space/tags/ual" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ual</span></a> <a href="https://oldbytes.space/tags/compsci" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>compsci</span></a> <a href="https://oldbytes.space/tags/programming" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>programming</span></a> <a href="https://oldbytes.space/tags/rustlang" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>rustlang</span></a> <a href="https://oldbytes.space/tags/golang" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>golang</span></a> <a href="https://oldbytes.space/tags/foss" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>foss</span></a> <a href="https://oldbytes.space/tags/forth" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>forth</span></a> <a href="https://oldbytes.space/tags/retrocomputing" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>retrocomputing</span></a> <a href="https://oldbytes.space/tags/retrodev" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>retrodev</span></a></p>
@haitchfive<p>And here I go computer-sciencey again:</p><p><strong>The Composition-Oriented ual Way</strong></p><p><strong>Part 1: Foundations - Container-Centric Thinking</strong></p><p><a href="https://github.com/ha1tch/ual/blob/main/doc/ual-composition/ual-composition-01.md" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/ha1tch/ual/blob/mai</span><span class="invisible">n/doc/ual-composition/ual-composition-01.md</span></a></p><p>ual is a programming language that places containers, not values, at the center of its design. Part 1 explores container-centric thinking and how focusing on where values live rather than what they are creates interesting new approaches to code organization and algorithm design.</p><p>Part 1 of 6, the rest of the series is here:<br><a href="https://github.com/ha1tch/ual/tree/main/doc/ual-composition" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/ha1tch/ual/tree/mai</span><span class="invisible">n/doc/ual-composition</span></a></p><p><a href="https://oldbytes.space/tags/ual" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ual</span></a> <a href="https://oldbytes.space/tags/rustlang" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>rustlang</span></a> <a href="https://oldbytes.space/tags/golang" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>golang</span></a> <a href="https://oldbytes.space/tags/forth" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>forth</span></a> <a href="https://oldbytes.space/tags/compsci" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>compsci</span></a> <a href="https://oldbytes.space/tags/programming" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>programming</span></a> <a href="https://oldbytes.space/tags/retrodev" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>retrodev</span></a> <a href="https://oldbytes.space/tags/retrofuturism" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>retrofuturism</span></a> <a href="https://oldbytes.space/tags/retrocomputing" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>retrocomputing</span></a></p>
@haitchfive<p>This is nowhere near useful yet, but I thought I'd let you know.<br><a href="https://github.com/ha1tch/ual/blob/main/rualc/rualc-1.9-chumsky.rs" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/ha1tch/ual/blob/mai</span><span class="invisible">n/rualc/rualc-1.9-chumsky.rs</span></a></p><p><a href="https://oldbytes.space/tags/ual" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ual</span></a> <a href="https://oldbytes.space/tags/compsci" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>compsci</span></a> <a href="https://oldbytes.space/tags/rustlang" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>rustlang</span></a> <a href="https://oldbytes.space/tags/forth" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>forth</span></a> <a href="https://oldbytes.space/tags/programming" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>programming</span></a> <a href="https://oldbytes.space/tags/retrodev" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>retrodev</span></a> <a href="https://oldbytes.space/tags/retrocomputing" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>retrocomputing</span></a> <a href="https://oldbytes.space/tags/retrofuturism" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>retrofuturism</span></a> <a href="https://oldbytes.space/tags/golang" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>golang</span></a></p>
@haitchfive<p><span class="h-card" translate="no"><a href="https://mastodon.green/@KingmaYpe" class="u-url mention" rel="nofollow noopener noreferrer" target="_blank">@<span>KingmaYpe</span></a></span> </p><p><strong>Late follow up on some questions I didn't fully/explicitly address:</strong></p><p>First off, thanks again for all the thoughtful input — really appreciate you engaging with this. </p><ul><li><p>You're absolutely right about ual's potential as a learning and onboarding tool for embedded developers who may not want to dive into the full depth of Rust right away. That's very much in line with my thinking. Part of what motivates ual is exactly that: creating a way to teach ownership, borrowing, and safety concepts explicitly and visibly, without needing to wrestle with lifetimes, traits, or complex generics right out of the gate. So, yes, I think it could be a stepping stone for people who want Rust-like safety but in a smaller, simpler package. Many projects might benefit from rapid prototyping at worst.</p></li><li><p>Also, I think your idea about implementing ual as a front end to the Rust compiler is really interesting — and I hadn’t fully considered it in those exact terms before! Right now, my Rust proof-of-concept (iual) is more of a "manual mapping" to see how the concepts translate, but the idea of a more integrated approach — like a proper front end — is something I'd definitely like to explore further. Especially if it means getting the benefits of Rust's mature backend (like LLVM integration, tooling, etc., although we are already getting some of that through TinyGo, a Go compiler for embedded systems) while keeping ual’s stack-oriented, explicit model.</p></li></ul><p>So thanks for putting that thought on the table.</p><p><a href="https://oldbytes.space/tags/ual" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ual</span></a> <a href="https://oldbytes.space/tags/rustlang" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>rustlang</span></a> <a href="https://oldbytes.space/tags/programming" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>programming</span></a> <a href="https://oldbytes.space/tags/compsci" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>compsci</span></a> <a href="https://oldbytes.space/tags/foss" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>foss</span></a></p>
@haitchfive<p>Since some have asked why I'd bring up Rust when talking about <em>ual</em>, I want to clarify why I think this is relevant — especially for Rust developers interested in ownership, borrowing, generics, embedded systems, and language design. </p><p>Here are the key reasons why <em>ual</em> should probably be of interest to the Rust community, or at the very least to Rust leaders and Rust designers, even if that's not immediately obvious to new Rust developers: </p> <p><strong>1. An Explicit Alternative to Ownership and Borrowing (No Lifetimes Needed)</strong> </p><ul><li>ual proposes an ownership and borrowing system that is <strong>fully explicit</strong> and doesn't rely on lifetimes.<br></li><li>Ownership is treated as a <strong>relationship between containers and values</strong>, not something inferred by the compiler.<br></li><li>Borrowing is <strong>explicit and scoped in code</strong>, so there’s <strong>no hidden inference</strong> or guessing what the borrow checker wants.<br></li><li>You can <strong>see exactly when a value moves, is borrowed, or is returned</strong>, instead of it being deduced from subtle rules.<br></li><li>For Rust developers who are used to working around lifetime issues or fighting the borrow checker, ual offers <strong>a visible, container-based model that may be simpler in some contexts</strong>.<br></li></ul> <p><strong>2. Container-Centric Genericity as a Lightweight Alternative to Traits</strong> </p><ul><li>Rust’s trait system is powerful but can be <strong>complex and heavy</strong>, especially for embedded systems or low-overhead code.<br></li><li>ual focuses on <strong>generic algorithms operating on containers (stacks)</strong> rather than individual type parameters.<br></li><li>It uses <strong>explicit type-switching and <code>bring</code> operations</strong> instead of abstract trait bounds and impls.<br></li><li>This allows <strong>reusable, type-safe algorithms</strong> without needing to engage with the full machinery of Rust's generics.<br></li><li>For embedded and systems developers who often find traits overkill for simple cases, this is <strong>a fresh alternative to achieve reuse safely and explicitly</strong>.<br></li></ul> <p><strong>3. Borrowing Slices, Made Explicit and Visual</strong> </p><ul><li>Rust slices (<code>&amp;[T]</code>, <code>&amp;mut [T]</code>) are powerful but frequently cause <strong>borrowing and lifetime headaches</strong> in complex code.<br></li><li>ual introduces <strong>borrowed stack segments</strong>, which are fully explicit in code and scope:<br><ul><li>You <strong>clearly mark and control</strong> what part of a container is borrowed.<br></li><li>You <strong>explicitly see</strong> what’s borrowed and for how long — no guesswork, no inference.<br></li><li>Mutability and read-only access are <strong>controlled through syntax and scopes</strong>, avoiding subtle conflicts.<br></li></ul></li><li>This is <strong>directly relevant to Rust devs</strong> frustrated by slice-related borrow checker issues, offering <strong>a more visual and controlled borrowing model</strong>.<br></li></ul> <p><strong>4. A Philosophical Cousin to Rust — Explicitness, Safety, and Responsibility</strong> </p><ul><li>Like Rust, ual is concerned with <strong>memory safety, resource correctness, and predictable control of side effects</strong>.<br></li><li>ual emphasizes <strong>making everything explicit</strong> — no hidden drops, no implicit borrowing, no magic.<br></li><li>Safety is treated as an <strong>ethical responsibility</strong>, not just a technical constraint, which aligns with Rust’s philosophy but makes the <strong>mechanics visible and teachable</strong>.<br></li><li>If you care about Rust’s focus on <strong>preventing errors by design and explicit resource handling</strong>, ual explores <strong>similar goals through a different lens</strong>.<br></li></ul> <p><strong>5. Embedded Systems Focus — Shared Goals, Different Answers</strong> </p><ul><li>Rust has a strong embedded systems community focused on <strong>safe, low-level control</strong> and <strong>resource-constrained environments</strong>.<br></li><li>ual is designed from the start for <strong>embedded and resource-conscious systems</strong>, with:<br><ul><li>Explicit stack management for <strong>predictable resource use</strong>.<br></li><li>Minimal runtime, aligned with <strong>no_std-like constraints</strong>.<br></li><li>Safety guarantees without introducing heavy compile-time machinery that can be difficult in embedded contexts.<br></li></ul></li></ul><p><strong>- For embedded Rust developers pushing against compile-time limits or seeking alternatives for resource handling, ual may <strong>offer new ways of thinking about ownership and control</strong>. </strong></p><p><strong>B... But... What the $%·$% does ual have to do with Rust?</strong> </p><p>Because <em>ual</em> aims to address <strong>some of the same fundamental problems Rust does</strong> — ownership, borrowing, generics, resource safety, embedded programming — but <strong>through a model based on explicit containers and stack flows</strong>. </p><p>For Rust developers who: </p><ul><li>Care about <strong>ownership and borrowing</strong> but are curious about alternatives to lifetimes.<br></li><li>Have struggled with <strong>complex traits and generics</strong>, especially in embedded contexts.<br></li><li>Want to explore <strong>explicit slice/borrowing models</strong> that avoid hidden inference.<br></li><li>Value <strong>explicitness, responsibility, and safety</strong> in system design.<br></li><li>Work in <strong>embedded systems</strong> and care about <strong>resource efficiency and control</strong>.<br></li></ul><p>— ual is <strong>highly relevant</strong>, even if its design is very different. </p><p>If any Rustaceans are interested in discussing these ideas — how they compare, where they overlap, and where they differ — I’m happy to talk!</p><p>I am: h (AT) ual.fi</p><p><a href="https://oldbytes.space/tags/ual" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ual</span></a> <a href="https://oldbytes.space/tags/rustlang" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>rustlang</span></a></p>
@haitchfive<p>What seemed like theoretical language features are just straightforward code. Stack perspectives are merely a mode flag that changes how operations work, and "bring" is simply "take from one stack, convert if needed, put in another." By making these patterns explicit rather than hiding them, ual creates clarity without complexity. </p><p>It's a reminder that good language design isn't about inventing complications, or outrageous temples of the mind, but about revealing the structures that were there all along in accessible ways.</p><p><a href="https://oldbytes.space/tags/ual" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ual</span></a></p>
@haitchfive<p><strong>Re: The Purpose of the iual interpreters</strong></p><p>The practical demonstration of a theoretical model, particularly one as novel as ual's @spawn stack approach to concurrency, provides several significant forms of value:</p><ol><li><p><strong>Validation of conceptual integrity</strong>: It proves that the ideas aren't just philosophically interesting but actually implementable. Many elegant theoretical models break down when implemented due to unforeseen complications or edge cases.</p></li><li><p><strong>Discovery of practical challenges</strong>: Implementation reveals real-world issues that theory might overlook. For example, how synchronization actually works across shared stacks, or how task lifecycle management handles edge cases.</p></li><li><p><strong>Credibility within the programming language community</strong>: Working implementations carry more weight than pure theory. The programming language community tends to value practical demonstrations over theoretical papers.</p></li><li><p><strong>Developer accessibility</strong>: A running implementation makes it easier for others to understand and experiment with the model. Seeing code in action is more convincing than reading formal descriptions.</p></li><li><p><strong>Pathway to refinement</strong>: Real implementations provide feedback that can improve the theoretical model. For instance, you might discover that certain operations need additional constraints to be safe in concurrent contexts.</p></li><li><p><strong>Attracting collaborators</strong>: Working code attracts other developers who might contribute to the project. Many are more willing to engage with something they can run and experiment with.</p></li></ol><p>For the specific case of the @spawn stack model, demonstrating that stack-based concurrency can work effectively challenges conventional wisdom about how concurrency should be structured. Most languages treat concurrency as fundamentally different from sequential code, requiring special constructs. Showing that stacks—already used for sequential computation—can elegantly extend to concurrent computation represents a potentially significant contribution to programming language design.</p><p>The working implementation of iual, even in its limited form proves that unifying these paradigms is not just theoretically elegant but practically viable, which could influence future language designs, in addition to other ual implementations.</p><p><a href="https://oldbytes.space/tags/ual" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ual</span></a></p>
@haitchfive<p><strong>iual 0.0.1</strong></p><p>iual is a tiny interactive interpreter implementing a small subset of the ual language that combines Forth‑like stack manipulation with a container‑centric design.</p><p><strong>UPDATE</strong></p><ul><li>iual 0.0.1 is a C-based implementation<ul><li><a href="https://github.com/ha1tch/ual/tree/main/iual/iual" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/ha1tch/ual/tree/mai</span><span class="invisible">n/iual/iual</span></a></li></ul></li><li>iual-go is a Go-based implementation<ul><li><a href="https://github.com/ha1tch/ual/tree/main/iual/iual-go" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/ha1tch/ual/tree/mai</span><span class="invisible">n/iual/iual-go</span></a></li></ul></li></ul><p>The main ual project is here:<br><a href="https://github.com/ha1tch/ual/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">github.com/ha1tch/ual/</span><span class="invisible"></span></a></p><p>The plain C version of the iual interactive interpreter is currently a bit more polished in terms of stack handling, and the Go version demonstrates more advanced concurrency features that can be tested interactively.<br>Of course, most devs already have a C compiler installed and the C iual implementation using pthreads and the C99 standard prototypes and conventions will be directly accessible on Linux and most Unix platforms. If you don't know how to handle POSIX threads on Windows, it's more straightforward to use the Go version on that platform instead.</p><p><a href="https://oldbytes.space/tags/ual" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ual</span></a> <a href="https://oldbytes.space/tags/forth" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>forth</span></a> <a href="https://oldbytes.space/tags/compsci" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>compsci</span></a> <a href="https://oldbytes.space/tags/programming" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>programming</span></a> <a href="https://oldbytes.space/tags/retrodev" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>retrodev</span></a> <a href="https://oldbytes.space/tags/retrocomputing" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>retrocomputing</span></a> <a href="https://oldbytes.space/tags/retrodev" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>retrodev</span></a> <a href="https://oldbytes.space/tags/rustlang" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>rustlang</span></a> <a href="https://oldbytes.space/tags/golang" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>golang</span></a> <a href="https://oldbytes.space/tags/foss" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>foss</span></a></p>
@haitchfive<p><a href="https://oldbytes.space/tags/ual" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ual</span></a></p>
@haitchfive<p>iual is a tiny interactive interpreter implementing a small subset of the ual language that combines Forth‑like stack manipulation with a container‑centric design.<br><a href="https://github.com/ha1tch/ual/tree/main/iual/iual" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/ha1tch/ual/tree/mai</span><span class="invisible">n/iual/iual</span></a></p><p>iual is not yet compliant with the ual spec and it only implements a small subset of its features. It's meant as an educative tool and a playground to test new ideas.</p><p><strong>Here's more about the main ual project:</strong></p><p><a href="https://github.com/ha1tch/ual" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">github.com/ha1tch/ual</span><span class="invisible"></span></a><br><a href="https://oldbytes.space/tags/ual" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ual</span></a> <a href="https://oldbytes.space/tags/forth" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>forth</span></a> <a href="https://oldbytes.space/tags/programming" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>programming</span></a> <a href="https://oldbytes.space/tags/compsci" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>compsci</span></a> <a href="https://oldbytes.space/tags/rustlang" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>rustlang</span></a> <a href="https://oldbytes.space/tags/golang" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>golang</span></a> <a href="https://oldbytes.space/tags/retrodev" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>retrodev</span></a> <a href="https://oldbytes.space/tags/retrocomputing" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>retrocomputing</span></a></p>
@haitchfive<p>iual 0.0.1 </p><p>iual is an exceedingly trivial toy interpreter meant to test and model ideas that will be featured later in the reference implementation of the ual compiler.<br><a href="https://github.com/ha1tch/ual/tree/main/examples/trivial_iual" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/ha1tch/ual/tree/mai</span><span class="invisible">n/examples/trivial_iual</span></a><br>it features int, float, and string stacks, plus concurrency, and script execution using a simplified version of the @spawn stack of the ual specification.</p><p>build with:</p><pre><code>go build iual.go<br></code></pre><p><a href="https://oldbytes.space/tags/ual" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ual</span></a> <a href="https://oldbytes.space/tags/forth" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>forth</span></a> <a href="https://oldbytes.space/tags/programming" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>programming</span></a> <a href="https://oldbytes.space/tags/compsci" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>compsci</span></a> <a href="https://oldbytes.space/tags/retrocomputing" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>retrocomputing</span></a> <a href="https://oldbytes.space/tags/retrodev" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>retrodev</span></a></p>
@haitchfive<p><strong>Unified Hashed Stack Perspectives</strong></p><p><a href="https://github.com/ha1tch/ual/blob/main/spec/ual-1.7-PROPOSAL-hashed-stack-perspectives.md" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/ha1tch/ual/blob/mai</span><span class="invisible">n/spec/ual-1.7-PROPOSAL-hashed-stack-perspectives.md</span></a><br>With this new addition we introduce key-based access as a perspective on stack containers rather than a separate data structure or data type. </p><p>If a stack perspective describes how we access the contents of a data structure, then popping from a stack, or a queue is not, deep down, fundamentally different from requesting an element from a map.</p><p>The perspective changes, the rest of the guarantees of safety and assurances remain the same.</p><p>This is based on the earlier work published here:<br><a href="https://github.com/ha1tch/ual/blob/main/spec/ual-1.5-PROPOSAL-stack-perspectives.md" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/ha1tch/ual/blob/mai</span><span class="invisible">n/spec/ual-1.5-PROPOSAL-stack-perspectives.md</span></a></p><p>This approach simplifies the programming model while maintaining type safety, genericity, ownership, and explicit context. </p><p><a href="https://oldbytes.space/tags/ual" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ual</span></a> <a href="https://oldbytes.space/tags/rustlang" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>rustlang</span></a> <a href="https://oldbytes.space/tags/golang" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>golang</span></a> <a href="https://oldbytes.space/tags/forth" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>forth</span></a> <a href="https://oldbytes.space/tags/rust" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>rust</span></a> <a href="https://oldbytes.space/tags/programming" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>programming</span></a> <a href="https://oldbytes.space/tags/compsci" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>compsci</span></a> <a href="https://oldbytes.space/tags/retrodev" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>retrodev</span></a> <a href="https://oldbytes.space/tags/retrocomputing" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>retrocomputing</span></a></p>
@haitchfive<p>UPDATE: This is the ual way.</p><p><strong>ual 1.3 spec</strong></p><ul><li>P1: <a href="https://github.com/ha1tch/ual/blob/main/spec/ual-1.3-spec-P1.md" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/ha1tch/ual/blob/mai</span><span class="invisible">n/spec/ual-1.3-spec-P1.md</span></a></li><li>P2: <a href="https://github.com/ha1tch/ual/blob/main/spec/ual-1.3-spec-P2.md" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/ha1tch/ual/blob/mai</span><span class="invisible">n/spec/ual-1.3-spec-P2.md</span></a></li></ul><p><strong>Proposals:</strong></p><p><strong>Error Stack Mechanism</strong></p><ul><li><a href="https://github.com/ha1tch/ual/blob/main/spec/ual-1.4-PROPOSAL-error-stack.md" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/ha1tch/ual/blob/mai</span><span class="invisible">n/spec/ual-1.4-PROPOSAL-error-stack.md</span></a></li></ul><p><strong>Typed Stacks</strong></p><ul><li>P1: <a href="https://github.com/ha1tch/ual/blob/main/spec/ual-1.4-PROPOSAL-typed-stacks-01.md" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/ha1tch/ual/blob/mai</span><span class="invisible">n/spec/ual-1.4-PROPOSAL-typed-stacks-01.md</span></a></li><li>P2: <a href="https://github.com/ha1tch/ual/blob/main/spec/ual-1.4-PROPOSAL-typed-stacks-02.md" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/ha1tch/ual/blob/mai</span><span class="invisible">n/spec/ual-1.4-PROPOSAL-typed-stacks-02.md</span></a></li></ul><p><strong>Ownership Mechanism</strong></p><ul><li><a href="https://github.com/ha1tch/ual/blob/main/spec/ual-1.5-PROPOSAL-ownership-system.md" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/ha1tch/ual/blob/mai</span><span class="invisible">n/spec/ual-1.5-PROPOSAL-ownership-system.md</span></a></li></ul><p><strong>Defer Stack Mechanism</strong></p><ul><li><a href="https://github.com/ha1tch/ual/blob/main/spec/ual-1.5-PROPOSAL-defer.md" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/ha1tch/ual/blob/mai</span><span class="invisible">n/spec/ual-1.5-PROPOSAL-defer.md</span></a></li></ul><p><strong>Stack Perspectives</strong></p><ul><li><a href="https://github.com/ha1tch/ual/blob/main/spec/ual-1.5-PROPOSAL-stack-perspectives.md" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/ha1tch/ual/blob/mai</span><span class="invisible">n/spec/ual-1.5-PROPOSAL-stack-perspectives.md</span></a></li></ul><p><strong>Concurrency Model</strong></p><ul><li>P1: <a href="https://github.com/ha1tch/ual/blob/main/spec/ual-1.5-PROPOSAL-concurrency-model-01.md" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/ha1tch/ual/blob/mai</span><span class="invisible">n/spec/ual-1.5-PROPOSAL-concurrency-model-01.md</span></a></li><li>P2: <a href="https://github.com/ha1tch/ual/blob/main/spec/ual-1.5-PROPOSAL-concurrency-model-02.md" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/ha1tch/ual/blob/mai</span><span class="invisible">n/spec/ual-1.5-PROPOSAL-concurrency-model-02.md</span></a></li></ul><p><strong>Stack Slicing and Segment Borrowing</strong></p><ul><li><a href="https://github.com/ha1tch/ual/blob/main/spec/ual-1.6-PROPOSAL-slice-borrowing.md" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/ha1tch/ual/blob/mai</span><span class="invisible">n/spec/ual-1.6-PROPOSAL-slice-borrowing.md</span></a></li></ul><p><a href="https://oldbytes.space/tags/ual" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ual</span></a></p>
@haitchfive<p><strong>Stack Slicing and Borrowed Stack Segments</strong></p><p>Being able to borrow segments from other stacks, and to treat those segments as stacks themselves is an incredibly powerful language feature. Rust can do this, and it even has a few more deep and powerful tools in this regard, but in a much less intuitive, expressible, or readable way.<br>Meanwhile for ual, this means you can represent a wide range of traditional data structures assembled from stacks and stack segments only. (whilst simultaneously gaining type safety, genericity, concurrency and stack perspectives, with no extra effort)</p><p><a href="https://github.com/ha1tch/ual/blob/main/spec/ual-1.6-PROPOSAL-slice-borrowing.md" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/ha1tch/ual/blob/mai</span><span class="invisible">n/spec/ual-1.6-PROPOSAL-slice-borrowing.md</span></a></p><p><a href="https://oldbytes.space/tags/ual" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ual</span></a></p>
@haitchfive<p>I took a stroll down memory lane and I remembered how Niklaus Wirth implemented enums, and it just made sense to me that we bring them back explicitly.</p><p><strong>Enhanced Enums</strong></p><p><a href="https://github.com/ha1tch/ual/blob/main/spec/ual-1.6-PROPOSAL-enhanced-enums.md" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/ha1tch/ual/blob/mai</span><span class="invisible">n/spec/ual-1.6-PROPOSAL-enhanced-enums.md</span></a></p><p>This document proposes integrating enumerated types into the ual language with an enhanced bitmap-based matching system. This design enables efficient representation of discrete value sets while providing powerful compile-time optimizations for small systems.</p><p>Truth values for a single switch_case statement can be computed in one single binary operation using enums, which is great for systems with lots of such constructs, especially those with substantial FSMs and other decision trees.</p><p><a href="https://oldbytes.space/tags/ual" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ual</span></a></p>
@haitchfive<p>Here I go a bit more computer-science-ish</p><p><strong>To Stack or not to Stack, Queue is the Question</strong></p><p>How ual reimagines data structures with perspectives: one container, many possibilities.<br><a href="https://github.com/ha1tch/ual/blob/main/blog/stacks/tostack-or-not_queue-is-the-question.md" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/ha1tch/ual/blob/mai</span><span class="invisible">n/blog/stacks/tostack-or-not_queue-is-the-question.md</span></a></p><p>In traditional computer science, stacks, queues, priority queues, and other sequential containers are taught as distinct data structures. The ual programming language takes a fundamentally different approach through its stack perspectives model, which unifies these seemingly disparate structures under a single container abstraction.</p><p><a href="https://oldbytes.space/tags/ual" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ual</span></a> <a href="https://oldbytes.space/tags/forth" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>forth</span></a> <a href="https://oldbytes.space/tags/programming" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>programming</span></a> <a href="https://oldbytes.space/tags/compsci" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>compsci</span></a> <a href="https://oldbytes.space/tags/rustlang" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>rustlang</span></a> <a href="https://oldbytes.space/tags/golang" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>golang</span></a> <a href="https://oldbytes.space/tags/rust" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>rust</span></a> <a href="https://oldbytes.space/tags/retrodev" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>retrodev</span></a> <a href="https://oldbytes.space/tags/embedded" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>embedded</span></a></p>