#introductions Researching new ways to write software that make it easier for newcomers to understand rather than for insiders to maintain. Systems that build easy, reward curiosity. http://akkartik.name/about
#BarbarianProgrammer. Ethos: ship with all deps, gradually streamline their code for own situation, get ideas for improvements, send patches upstream. Implies: can't have too many deps!
TFW you read about societies that existed 10k years ago and you find things like:
- "no obvious public buildings" (ie. no centralised power or religion)
- "Households looked to their neighbors for help, trade, and possible marriage for their children" (ie. mutualism)
- "(...) we see that men and women had the same social status" (ie. no patriarchy)
All stuff that liberals decry as "impossible" or "utopian" in the XXI century...
The reason why I a) keep looking for minimalist programming languages and b) dislike compilation
is that I keep looking for a 'language' that would allow me to express concepts, or knowledge, in a way that can be portable between machines / environments
Eg, say you start with, let's say, JSON, as a data representation language. It's okay, ish, until you want to 'point to something'.
Once you add some kind of idea of a 'link', you are very close to being a Turing-complete language.
As my notes currently indicate, if TDD was a key enabler for Extreme Programming, then DItI is a key enabler for Ascetic Programming. :)
@rain1 I have resources scattered around the web; it's all very disorganized, I'm afraid.
This website is old and out-dated, but provides motivations: https://kestrelcomputer.github.io/kestrel
This website is the currently active repository (I no longer rely on Github for development): http://chiselapp.com/user/kc5tja/repository/kestrel-3/index
If these sites do not answer any questions you have, I'm happy to answer them here and update one of the sites accordingly.
@yumaikas @akkartik @h @haitch @freakazoid @rain1 To be effective for compile-time checking, you'd need to embed stack depth checking in the compiler itself and arity information within the dictionary. Doable, but inconvenient.
Most Forth systems actually have stack checking at interpret-time; however, by the time it detects a depth imbalance, it's often too late.
@akkartik @h @haitch @yumaikas @freakazoid @rain1 I can honestly say that the #kestrel3 project would not still be going ahead like it is now had I not read Chuck Moore's Programming a Problem-Oriented Language.
I can confirm that Forth is a language that, in the general case and if you keep things simple, can be bootstrapped from raw assembly.
My Kestrel-3/E2 port of DX-Forth is less than 10KB of code too.
(It'll get larger when I implement limited 9P support for it though.)
Even if Windows is out of the scope, flatassembler also includes support for win32 calls and generation of PE32 binaries, so that's not a limitation (although @vertigo is right about Windows being a massive dynamic linking annoyance, with no officially published kernel apis)
Microblog challenge: An ounce of identity is worth a pound of economic security in motivating behavior. Agree or disagree in 1 toot.
@h Hmm, the socket syscalls are implemented differently on different platforms. That's dismaying. I'd been hoping to use a set of primitives so tiny that programs for it would work on all modern, extant *nixes. Now I probably need to start testing on Linux (top priority) and all the different *BSDs including Darwin (which is what I develop on).
Trolling like a Sufragette
SubX now supports basic file operation syscalls: http://akkartik.github.io/mu/html/subx/ex8.subx.html
I've also made labels a little safer, so you can't call to inside a function, or jump to within a different function: http://akkartik.github.io/mu/html/subx/037label_types.cc.html
Next stop: socket syscalls! @h
Today's favourite French word: chiffrement
(a synonym for 'encryption', although it's etymologically a bit more like 'encoding')
if more men posted better selfies i would be more bi https://medium.com/@aanand/take-better-selfies-26089b2b3e4e
This page describes the mastodon.social instance - wondering what Mastodon is? Check out joinmastodon.org instead! In essence, Mastodon is a decentralized, open source social network. This is just one part of the network, run by the main developers of the project It is not focused on any particular niche interest - everyone is welcome as long as you follow our code of conduct!
Hero image by @b_cavello