Skip to main content

Search

Items tagged with: forth


Cool. I had a Sunfire V100 (I think that was what it was called). It had the UltraSparc. I ran OpenBSD on it. The LOM console was in #FORTH, as I recall.


Content warning: screenshot of a computer screen


Not very seriously, but I am thinking about a toki pona forth, meant to almost exclusively use sitelen pona hieroglyphics.
I'm having trouble deciding if this is absurd. #tokipona #forth


http://collapseos.org/ is pretty cool, I need to get better at #Forth. This space of simple, low requirements computing is super interesting to me, do you know any more resources? Also some that are hardware based?


Here's the final article: "Adding a READ ... DATA like functionality to Forth"

maybe the more experienced #Forth #coders would like to comment on it?

https://ufud.org/posts/2024-02-06-data-command-in-forth/


"Assembly Nights Season 2" is done! I present the conclusion of Meow5, my "thought experiment taken too far". 🐱🐱🐱🐱🐱

https://www.ratfactor.com/meow5/done

#concatenativeProgramming #forth #assemblyLanguage


this sounds like the second good reason to take a closer look at #forth i've found within a week:

"I'm starting a series of articles that aims to hand-hold my former self, a regular web developer, into the rabbit hole leading to the wonderful world of low level programming. Hopefully, I can hand-hold you too.

The general goal is to broaden your perspectives on the subject of computing. I intend do to that through story arcs leading, step by step, to some nice and shiny objective. I also intend to work into a gimmick where in each episode, I get to tell one corny joke."

http://tumbleforth.hardcoded.net/


At the SVFIG #Forth day in November 2023, I will be giving a talk on the #j1 family of processors.

https://www.meetup.com/sv-fig/events/296503788/

#fpga


Running an exported #curto ROM in mGBA! #forth


I am interested in building a #uxn cpu on an #fpga.
I have already built #Mecrisp #Forth on the #PicoIce.
A Uxn cpu is just a slightly different stack machine.
Maybe I will eventually build an entire Varvara computer on an FPGA.

@neauoire
@rek

https://forth.pythonlinks.info/hana-uxn


I grew to like markdeep (https://casual-effects.com/markdeep/) until I can escape POSIX full-stack for something #FORTH -ish, but I also seemingly care less and less about scalability anymore as I long for decentralized/self-hosted/bespoke or whatever.


Branch es of my fork working in spanish. No docs yet. UF #forth en español para todes mis ñoñes!!! 😁


Felix has release UF8 #forth! It makes use of the recent improvements to Varvara. UF is a graphics capable forth implementation in a 4kb kernel.
http://www.call-with-current-continuation.org/uf/uf.html


Implementing the recent changes to Varvara in Oquonie, I noticed how many single-purpose labels I used merely to hop over short lengths of code, enough that having ran out of ideas for names to called them, I would default to like &skip, &ok, or &continue. The solution was to create anonymous labels, and as to be capable of nesting them, I ended up inadvertently adding lambdas to Uxntal.

Just stumbled on "Adding Lambda Expressions to #Forth"

http://www.euroforth.org/ef06/lynas-stoddart06.pdf

Too little too late.


@aw I'm having fantasies about a kind of block sharing club. It's so delightfull to create interactive stuff with access to all varvara's devices in #forth .


I'm excited to announce the completion of "Forth: The programming language that writes itself: The Web Page (Charles H. Moore and the pursuit of simplicity.)" :squee:

Recommended for fans of: historical computing, programming languages, and space technology.

http://ratfactor.com/forth/the_programming_language_that_writes_itself.html

#forth #RetroComputing #history



I'm happy to report that Shoehorn V2.0 is now pushed to my SourceHut repo.

Shoehorn is a #Forth subset bootstrap compiler for use in bringing up new hardware completely from scratch.

I'm currently using it to write my own Forth interpreter/compiler for my homebrew 65816-based computer design, proving that it's not just a toy. (If you are lost figuring out where to start, look in mkdisk0 and sysf.f)

This version introduces support for CREATE, DO/?DO, LOOP/+LOOP, and a new way of supporting primitives that allows them to be linked into the dictionary hash chain.


And here it is, at long last. A rough, preliminary sketch of the new instruction set architecture for a next-generation successor to my S16X4 #stack CPU family.

This is a proper #Forth CPU ISA design. A bit CISCy, though, but I think it's usable.

http://falvotech.com/tmp-blog/20230619.html

attn @neauoire, @requiem



I would apologize for posting what at first appears to be another "tech toot"...but since I churned out almost 40 drawings for this talk on the Forth programming language, I don't feel bad about it at all. Here's the slides:

http://ratfactor.com/forth/forth_talk_2023.html

I happen to know some of you enjoy space ships, calculators, and old computers as much as I do.

#MastoArt #RetroComputing #Forth #ConfusedCat


I am finally working on running the RetroForth/ilo on the couple of microcontrollers I have.

It's mostly functional on the Teensy 4.1. I still have some issues with the block words and testing the serial console, but I can make an LED blink, and the rest of the system is working.

I've also started working on getting it to run on a Raspberry Pi Pico. It'll need at least some adjustments to fit into the memory of the RP2040 (probably will need to sacrifice a little of the vm image RAM, unless I decide to wire up something for external memory.)

#forth #programming


Houndsforth
The two different patterns are produced by alternating the upper and lowercase #PETSCII graphics sets. It's fascinating that something inherent to this classic weaving pattern can produce a tartan pattern under different settings. #forth #c64 #genuary12 #genuary


Inspired by Brad Nelson's classic #Forth Haiku Salon (http://www.forthsalon.appspot.com/) and wanting to put my own "North" (as in Forth-but-Not-Forth) implementation more through its paces, I wrote a Forth-to-GLSL transpiler (in Forth), which you can see in action here (demo from ~2:04)

Btw. More examples and the full source code for the VM, the REPL & transpiler and demos can all be found here:

https://github.com/thi-ng/charlie

3/4


Also in 2015, aka my year of #Forth, I started writing a modular #synth (first graph-based, then stack-based), including another Forth-like VM with a bunch of audio & music-theory related syntax additions, all with the aim of creating a livecoding env for #STM32. The VM is written in C11 and (should be) platform independent. It automatically does word inlining, peephole optimizations, supports floating point ops, disassembly etc.

The attached image shows some Forth source code defining an 2-oscillator DSP stack for a bass synth (with FX) and a semi-randomized sequencer...

Project repo:
https://github.com/thi-ng/synstack

6mins live performance (using a polyphonic graph based version of the synth running on an STM32F746 board, with the Korg Nanocontrol used as sequencer and for param/effect control):

https://www.youtube.com/watch?v=41FKE3PYjnE

2/4


8 years ago I partially started going back to my roots to begin working on a number of #Forth based DSLs & REPLs for livecoding... not just for audio/music, but also #GenerativeArt, #shaders, #geometry and GUI/layout generation. Even today, I still think Forth-like #concatenative languages have unique potential & freedoms and are severely under-explored in all of those domains mentioned. Even though all of the examples in this thread are early, pretty rough prototypes, I'd like to share some videos/screenrecs of my previous research, maybe also to inspire others exploring this approach of programming more...

First off, a #WebAudio prototype from 2015, made in the browser REPL at http://forth.thi.ng (audio starts at ~2:15)

There's only a single audio buffer used here (boilerplate setup for that in the first 2 mins of the video) and all subsequent operations just write to that buffer or manipulate its contents...

1/4


Concatenation of words in #Forth is same as functional composition. Wanting to experiment with more concatenative concepts & operators directly from within #TypeScript, I took a somewhat unusual approach to first create a (dual-)stack-based, but otherwise functional, embedded DSL, providing a pretty large core vocab (~160 words) as normal TypeScript functions and then added an optional separate layer for the actual Forth syntax, parser & runtime.

https://thi.ng/pointfree
https://thi.ng/pointfree-lang

(Btw. Both packages have pretty extensive readmes...)

This setup then made it very easy to create new syntax additions & language extensions, both harnessing other JS/TS packages. The example shown in the video (from 2020) is a short #livecoding session demonstrating a custom vocab to generate complex 2D geometries, using https://thi.ng/geom under the hood...

4/4


DSSP was not invented. It was found. That is why DSSP has not
versions, but only extensions. #forth is created by practice.
DSSP is created by theory. But they are similar and it is a
fact of great importance.
http://wiki.xxiivv.com/docs/dssp.txt


@d6 Ah yes ... I should look at Joy some more. The Wikipedia description is intriguing.

https://en.wikipedia.org/wiki/Joy_(programming_language)

@d6 is right - Factor was originally on the JVM but isn't any more.

https://en.wikipedia.org/wiki/Joy_(programming_language)

But I still want a true interactive macro-assembler - a subroutine-threaded #Forth with inline CODE word capabilities.


Lichen, my ultra-minimal web CMS based on #gemtext, is now rebuilt as #Forth CGI scripts!
- No more PHP
- Simpler server config
- Works as static site generator if you desire

https://lichen.sensorstation.co/


It is arity. It's also what I've been adding for some of my #forth environments. I only implemented it as opt-in feature and used `::` instead of `:` to define such guarded words. The stack comments (e.g. `( a b c -- n )` for those words are then also mandatory and parsed to ensure behavior. Internally, `::` just defines a second hidden "normal" word of the main code, which is then wrapped with the pre & post guards based on the stack comment. Still wanted to experiment with adding types to that system, but even without it was already a vast improvement over "standard" Forth, esp. when sketching out code in the REPL... 👍


#Forth Stack comments! They are indeed comments only. A Forth compiler could build validity checks using them, but I don't know of any that do.

vmgen, a sub-project of gforth, has a compiler that uses them in code generation.

https://www.complang.tuwien.ac.at/anton/vmgen/


So I had this idea a few days ago, which I likely do not have the computery words to explain properly, but it goes something like this:

So, #forth has this syntax to define words which is just a comment saying what goes in, and what comes out. And I was wondering if I could use this in conjunction with the actual body of the routine while counting how many items are expected at the end of the routine, and throwing a warning when it doesn't match.

Is it arity validator?

https://en.m.wikipedia.org/wiki/Arity


Hey #forth people, does the stack effect spacer in word definitions have a name?



Content warning: re: advent of forth, 2022, day #2

Lo, thar be cookies on this site to keep track of your login. By clicking 'okay', you are CONSENTING to this.