openfirmware
forth
Our great sponsors
openfirmware | forth | |
---|---|---|
6 | 3 | |
92 | 89 | |
- | - | |
0.0 | 0.0 | |
over 8 years ago | about 8 years ago | |
Forth | Assembly | |
- | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
openfirmware
-
Thinking Forth
OpenFirmware has some code for paging! ;)
purpose: Set up page tables and turn on paging
https://github.com/openbios/openfirmware/blob/master/cpu/x86...
-
Hypertext '87 (1987) [pdf]
NeWS didn't use FORTH. But HyperTIES used both FORTH and NeWS because there were a lot of things that FORTH could do that NeWS couldn't, like link and call C code. The FORTH I used was Mitch Bradley's "Sun Forth", which evolved into OpenFirmware, and which was once defined by an IEEE standard, "IEEE 1275-1994", but it was withdrawn because the standard was not reaffirmed:
https://en.wikipedia.org/wiki/Open_Firmware
>Open Firmware is described by IEEE standard IEEE 1275-1994, which was not reaffirmed by the Open Firmware Working Group (OFWG) since 1998 and has therefore been officially withdrawn by IEEE.
It's still alive and maintained and used for many things. Here's the source code, called OpenBIOS:
- What to Learn
-
Moving Forth (1993)
Some Forth systems even have a "metacompiler" that lets one FORTH system compile another FORTH system for the same or different CPU, word size, byte order, threading model, etc, from the same source code!
OpenFirmware (the FORTH burnt into boot roms of SPARC, PowerPC, OLPC, and other systems) is a great example:
openfirmware/forth/kernel/metacompile.fth
https://github.com/openbios/openfirmware/blob/d5cc657ce81c0f...
- PostScript Language Reference [pdf]
forth
-
Developers spend most of their time figuring the system out
>You don't write README.md, ARCHITECTURE.md, JavaDocs, etc, at all?
Maybe? Not sure - haven't worked on enough big projects to declare answer
>A new developer is supposed to go through all the codebases and figure out for himself?
Yes to this bit - code should have very clear structure to it with appropriate comments attached, whether that's literate style as JonesForth<https://github.com/phf/forth/blob/master/x86/jonesforth.S> shows, small section header comment or whatever.
It should be very clear what section exploring does - tiny example but cat <http://9p.io/sources/plan9/sys/src/cmd/cat.c> from plan 9 very simple segmented code - deals with file opening in main loop and cat function just reads and prints text
-
Useful minimal languages
JONESFORTH is good read if want source to explore
-
PostScript Language Reference [pdf]
You're very welcome.
For later exploration, JonesForth <https://github.com/phf/forth/tree/master/x86> is excellent exploration of Forth's internals.
What are some alternatives?
sbcl - Mirror of Steel Bank Common Lisp (SBCL)'s official repository
qpdf - QPDF: A content-preserving PDF document transformer
maths132-notes - Notes I wrote for Lee White's Maths 132 Differential Equations course, University of Melbourne, 1995-96