mecrisp-ice on my iCEBreaker FPGA board. So cool. The first time synthesizing my own Forth CPU.
Thanks to Matthias for the Mecrisp project.
@Mecrisp
mecrisp-ice on my iCEBreaker FPGA board. So cool. The first time synthesizing my own Forth CPU.
Thanks to Matthias for the Mecrisp project.
@Mecrisp
#ThingUmbrella #ReleaseTuesday... New package (initial alpha release):
https://thi.ng/block-fs provides highly customizable & extensible block-based storage with an optional hierarchical filesystem layer. This is useful everywhere you might need virtual filesystem, though the storage providers can also be used without the filesystem layer (e.g. for #Forth-style block data/editors).
The default configuration provides:
- arbitrarily nested directories
- filenames (UTF-8) of max. 31 bytes per directory level
- max. 32 owner IDs
- file locking
- creation/modification timestamps (64 bit)
- efficient append writes
Currently included storage providers: TypedArray-based in-memory and host filesystem based file storage (one block per file). More are planned (e.g. IndexedDB, remote endpoint)...
The readme is currently still lacking various diagrams to illustrate the filesystem internals. I will add those ASAP...
It's barely been one year and I'm back on my bullshit with yet another toy #Forth nobody needs, but it was fun to make and taught me a few things: https://felix.plesoianu.ro/languages/forth/flower/
#forth ehe? Haven't heard about that in a very long time. Is there anyone doing FORTH these days? The problem with this guy's assumption is that the artictecture documentation will still be around. FORTH is more universal because its bytecode-ish but nothing's better than #assmbler and many have tried and failed. I enjoy doing "cross stiich" projects on my tablet in assembler because the language is so compact. #coding #doomsday #programming https://www.wired.com/story/forth-collapse-os-apocalypse-programming-language/
The Best Programming Language for the End of the World
https://www.wired.com/story/forth-collapse-os-apocalypse-programming-language/
#forth
I'm extremely late, but I finally got a video-only capture of me working on the #Forth screen editor.
SIgh.
Now I have to edit it and record a voice-over. More time spent.
I think the idea of a YouTube channel is basically going to be dead on arrival. Sorry folks, it's just not happening. Despite being completely unemployed, I still have way too many demands on my time.
That said, I will continue to produce content as time permits. I definitely want to do some more things in the Forth space, and I have some wild ideas coming up.
I was only trying to learn a new programming language by porting Ripen #Forth over. Came up with a better, simpler architecture: it only takes one kind of word, none of that mess with variables, aliases or sigils.
Я спросил gpt:
Почему мне постоянно кажется что без forth и лисп, их понимания, в программировании делать нечего.
И gpt, объяснив мне, почему я так думаю, так же убедительно отметил:
"Если ты понимаешь Форт и Лисп, ты можешь писать на чём угодно. Но если знаешь только Python, C# или JavaScript — ты просто используешь то, что тебе дали."
#forth #lisp
!
> Forsp: A #Forth+#Lisp Hybrid #LambdaCalculus Language
https://xorvoid.com/forsp.html
Computer-sciencey once more:
The Composition-Oriented ual Way
Part 2: Perspectives - Unified Access Patterns
https://github.com/ha1tch/ual/blob/main/doc/ual-composition/ual-composition-02.md
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.
Part 2 of 6, the rest of the series is here:
https://github.com/ha1tch/ual/tree/main/doc/ual-composition
ual update:
I added two new intros to the "Primers" collection, one is a general intro, the other a specific one for Rust developers.
ual primer collection
https://github.com/ha1tch/ual/tree/main/doc/primer
01 Mainstream devs
02 Embedded devs
03 Retro/minimalist devs
04 Rust devs
@neauoire @chrisamaphone Have you ever played around with L-Systems (I bet you did :)? It seems there's a lot of conceptual overlap here, even though they don't offer much in terms of control flow or Turing completeness. I just think they generally still remain somewhat under exposed/explored (beyond the traditional Turtle graphics applications). If you attach different kinds of interpreters, they can be pushed pretty far... In the past I have used them for genetic programming, text & code generation, music composition, and even basic stack machines (where the L-System acts as an iterative macro expansion stage)...
A couple of FizzBuzz examples (incl. a super basic Forth-like VM) using https://thi.ng/lsys...
https://gist.github.com/postspectacular/7d0ae7d90e0eafb69e60fb97e2838221
ual updates
This is the ual way:
ual 1.3 spec
Error Stack Mechanism
Typed Stacks
Ownership Mechanism
Defer Stack Mechanism
Stack Perspectives
Concurrency Model
Stack Slicing and Segment Borrowing
Crosstacks are Orthogonal Stack Views
https://github.com/ha1tch/ual/blob/main/spec/incoming/ual-1.8-PROPOSAL-crosstacks.md
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).
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.
HA-HT
https://github.com/ha1tch/ual/blob/main/doc/compiler/crosstack-implementation/haht.md
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.
And here I go computer-sciencey again:
The Composition-Oriented ual Way
Part 1: Foundations - Container-Centric Thinking
https://github.com/ha1tch/ual/blob/main/doc/ual-composition/ual-composition-01.md
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.
Part 1 of 6, the rest of the series is here:
https://github.com/ha1tch/ual/tree/main/doc/ual-composition
This is nowhere near useful yet, but I thought I'd let you know.
https://github.com/ha1tch/ual/blob/main/rualc/rualc-1.9-chumsky.rs