mastodon.gamedev.place is one of the many independent Mastodon servers you can use to participate in the fediverse.
Mastodon server focused on game development and related topics.

Server stats:

5.6K
active users

#compsci

48 posts28 participants8 posts today
Replied in thread

@KingmaYpe

Late follow up on some questions I didn't fully/explicitly address:

First off, thanks again for all the thoughtful input — really appreciate you engaging with this.

  • 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.

  • 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.

So thanks for putting that thought on the table.

iual 0.0.1

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.

UPDATE

The main ual project is here:
github.com/ha1tch/ual/

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.
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.

#ual#forth#compsci

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.
github.com/ha1tch/ual/tree/mai

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.

Here's more about the main ual project:

github.com/ha1tch/ual
#ual #forth #programming #compsci #rustlang #golang #retrodev #retrocomputing

iual 0.0.1

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.
github.com/ha1tch/ual/tree/mai
it features int, float, and string stacks, plus concurrency, and script execution using a simplified version of the @spawn stack of the ual specification.

build with:

go build iual.go
ual is a stack-oriented programming language for small systems with a unified approach to program safety. - ha1tch/ual
GitHubual/examples/trivial_iual at main · ha1tch/ualual is a stack-oriented programming language for small systems with a unified approach to program safety. - ha1tch/ual

Unified Hashed Stack Perspectives

github.com/ha1tch/ual/blob/mai
With this new addition we introduce key-based access as a perspective on stack containers rather than a separate data structure or data type.

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.

The perspective changes, the rest of the guarantees of safety and assurances remain the same.

This is based on the earlier work published here:
github.com/ha1tch/ual/blob/mai

This approach simplifies the programming model while maintaining type safety, genericity, ownership, and explicit context.

I wrote a little blog post about the project I give to my Object Oriented Programming students; a relatively big codebase for Shopazon (an amalgamation of Amazon and other common apps), and how imitating real world development kind of thwarts (at least some) students' attempts to use GenAI to get through their assignments.

teacher-rachelwilshasingh-9f34