|
|
||
|---|---|---|
| arch | ||
| imgs | ||
| vm | ||
| .gitignore | ||
| LICENSE | ||
| README.org | ||
| ROADMAP.org | ||
| SPECIFICATION.org | ||
| build | ||
README.org
Undâr Programming Language
[ᚢ ᛫ ᛫ ᛫
᛫ ᚾ ᛫ ᛫
᛫ ᛫ ᛞ ᛫
᛫ ᛫ ᛫ ᚱ]
Philosophy
Undâr conforms to permacomputing principles.
Permacomputing as defined by the xxiivv wiki: "permacomputing encourages the maximization of hardware lifespan, minimization of energy usage and focuses on the use of already available computational resources. it values maintenance and refactoring of systems to keep them efficient, instead of planned obsolescence, permacomputing practices planned longevity. it is about using computation only when it has a strengthening effect on ecosystems."
Undâr is designed to ensure that programs will last indefinitly, but it is likely they will only last 'a very long time'.
The VM specification is the core of the language. It should be able to fit on a napkin and be able to be implemented in a weekend.
This implementation of the VM is written in freestanding C89 to maximize the chance that obscure C compilers will be able to compile it.
Once the VM is implemented it can be integrated into a architecutre specific code.
Undâr is intended to run on anything with a C compiler. From constrained systems like: retro consoles, microcontrollers to the web using emscripten.
Getting Started
Requirements
Main
- Git
- POSIX compliant shell (sh)
- C compiler that supports C89
Optional
- C compiler that supports ANSI C or later
-
SDL2
- For GUI linux and web versions
-
Emscripten
- For building the web version
Build
Note: the linux version is the default (for now)
git clone https://git.alfrescocavern.com/zongor/undar-lang.git
cd undar-lang && ./build
Build commands
- clean deletes the build files for that arch
- run runs that arch
Build settings
ARCH
- linux
- web
MODE
- debug
- release
UI
- tui
- gui
License
Inspirations
- Plan 9 : 9P, Unified I/O, Tunnels.
- Lisp : REPL, introspection.
- Fortran : Array semantics.
- C / Zig : Efficentcy, simplicity.
- Lua - Friendly syntax, portable, and minimalism.
- Lox - The start of my programming language creation journey.
- Uxn - Major inspiration, espeically around the design for devices.
- Dusk OS - A much better system for doing permacomputing.
- Dis VM - Ideas on VM structure
- Retro Systems - N64, PS1, Mac Classic, Windows 95, Especially Classic MacOS UI esthetics