Mode | Name | Size | |
---|---|---|---|
-rw-r--r-- | mymodule.nim | 245 | log stats plain blame |
-rw-r--r-- | t5296.nim | 187 | log stats plain blame |
-rw-r--r-- | t6279.nim | 231 | log stats plain blame |
-rw-r--r-- | t6756.nim | 258 | log stats plain blame |
-rw-r--r-- | t7079.nim | 151 | log stats plain blame |
-rw-r--r-- | taddhigh.nim | 217 | log stats plain blame |
-rw-r--r-- | tarray_equality.nim | 159 | log stats plain blame |
-rw-r--r-- | tbug1081.nim | 741 | log stats plain blame |
-rw-r--r-- | tcapture_static.nim | 168 | log stats plain blame |
-rw-r--r-- | tccgen1.nim | 1646 | log stats plain blame |
-rw-r--r-- | tcgbug.nim | 435 | log stats plain blame |
-rw-r--r-- | tclosureeq.nim | 263 | log stats plain blame |
-rw-r--r-- | tcodegenbug1.nim | 2428 | log stats plain blame |
-rw-r--r-- | tconstobj.nim | 274 | log stats plain blame |
-rw-r--r-- | tcvarargs.nim | 414 | log stats plain blame |
-rw-r--r-- | tdeepcopy_addr_rval.nim | 175 | log stats plain blame |
-rw-r--r-- | tescaping_temps.nim | 641 | log stats plain blame |
-rw-r--r-- | tforward_decl_only.nim | 614 | log stats plain blame |
-rw-r--r-- | tgeneric_closure.nim | 456 | log stats plain blame |
-rw-r--r-- | tgeneric_smallobj_asgn_opt.nim | 512 | log stats plain blame |
-rw-r--r-- | tinefficient_const_table.nim | 494 | log stats plain blame |
-rw-r--r-- | tmangle_field.nim | 235 | log stats plain blame |
-rw-r--r-- | tmarkerproc_regression.nim | 1036 | log stats plain blame |
-rw-r--r-- | debugging SubX
programs.
Mu programs build natively either on Linux or on Windows using WSL 2. For Macs and other Unix-like systems, use the (much slower) emulator:
Mu programs can be written for two very different environments:
The largest program built in Mu today is its prototyping environment for writing slow, interpreted programs in a Lisp-based high-level language. (For more details, see the While I currently focus on programs without an OS, the SyntaxThe entire stack shares certain properties and conventions. Programs consist
of functions and functions consist of statements, each performing a single
operation. Operands to statements are always variables or constants. You can't
perform Here's an example program in Mu: More resources on Mu:
Here's an example program in SubX:
More resources on SubX:
Mirrors and ForksUpdates to Mu can be downloaded from the following mirrors: * https://github.com/akkartik/mu * https://repo.or.cz/mu.git * https://codeberg.org/akkartik/mu * https://tildegit.org/akkartik/mu * https://git.tilde.institute/akkartik/mu * https://git.sr.ht/~akkartik/mu Forks of Mu are encouraged. If you don't like something about this repo, feel free to make a fork. If you show it to me, I'll link to it here. I might even pull features upstream!
DesiderataIf you're still reading, here are some more things to check out:
CreditsMu builds on many ideas that have come before, especially:
On a more tactical level, this project has made progress in a series of bursts as I discovered the following resources. In autobiographical order, with no claims of completeness: - “Bootstrapping a compiler from nothing” by Edmund Grimley-Evans. - StoneKnifeForth by Kragen Sitaker, including a tiny sketch of an ELF loader. - “Creating tiny ELF executables” by Brian Raiter. - Single-page cheatsheet for the x86 ISA by Daniel Plohmann (cached local copy) - Minimal Linux Live for teaching how to create a bootable disk image using the syslinux bootloader. - “Writing a bootloader from scratch” by Nick Blundell. - Wikipedia on BIOS interfaces: Int 10h, Int 13h. - Some tips on programming bootloaders by Michael Petch. - xv6, the port of Unix Version 6 to x86 processors - Some tips on handling keyboard interrupts by Alex Dzyoba and Michael Petch. s/trefseqsort.nim?h=devel&id=963f4314431c99aa352fd1e69690b199086f5410'>plain blame | ||
-rw-r--r-- | tresult_of_array.nim | 584 | log stats plain blame |
-rw-r--r-- | tret_arg_init.nim | 300 | log stats plain blame |
-rw-r--r-- | tsighash_typename_regression.nim | 128 | log stats plain blame |
-rw-r--r-- | tstringslice.nim | 338 | log stats plain blame |
-rw-r--r-- | tunsafeaddr.nim | 455 | log stats plain blame |
-rw-r--r-- | tuple_canon.nim | 2838 | log stats plain blame |
-rw-r--r-- | tuplecast.nim | 119 | log stats plain blame |
-rw-r--r-- | tweakopenarray.nim | 147 | log stats plain blame |
-rw-r--r-- | twrong_discriminant_check.nim | 405 | log stats plain blame |
-rw-r--r-- | twrong_method.nim | 539 | log stats plain blame |
-rw-r--r-- | twrong_rc_for_refarray.nim | 398 | log stats plain blame |
-rw-r--r-- | twrong_setconstr.nim | 7437 | log stats plain blame |
-rw-r--r-- | twrong_string_asgn.nim | 239 | log stats plain blame |
-rw-r--r-- | twrong_tupleconv.nim | 433 | log stats plain blame |
-rw-r--r-- | twrongrefcounting.nim | 414 | log stats plain blame |