about summary refs log tree commit diff stats
Commit message (Collapse)AuthorAgeFilesLines
* literal macrosKartik K. Agaram2021-05-061-0/+28
| | | | | | | | | | | Current plan: - some way to define macros. For now: (def f (litmac litfn () (a b) `(+ ,a , b))) - macroexpand will expand calls by passing them through the cdr (f 3 4) macroexpand: ((litfn () (a b) `(+ ,a ,b)) 3 4) => (+ 3 4) eval: (+ 3 4) => 7
* .Kartik K. Agaram2021-05-061-2/+15
|
* back to macros; switch macroexpand to operate in placeKartik K. Agaram2021-05-062-20/+9
|
* belatedly migrate stale example definitionsKartik K. Agaram2021-05-064-93/+99
| | | | | Also bare-bones syntax highlighting for .limg files. Doesn't work when .limg file is first file opened with Vim.
* .Kartik K. Agaram2021-05-061-4/+21
|
* .Kartik K. Agaram2021-05-042-0/+41
|
* .Kartik K. Agaram2021-05-042-3/+25
|
* .Kartik K. Agaram2021-05-041-1/+1
|
* shell: start implementing macrosKartik K. Agaram2021-05-042-1/+7
|
* .Kartik K. Agaram2021-05-041-6/+6
|
* shell: unquote spliceKartik K. Agaram2021-05-042-1/+121
|
* shell: unquoteKartik K. Agaram2021-05-041-2/+78
|
* shell: start evaluating backquoteKartik K. Agaram2021-05-031-0/+146
|
* .Kartik K. Agaram2021-05-031-0/+1
|
* .Kartik K. Agaram2021-05-031-63/+63
|
* .Kartik K. Agaram2021-05-031-0/+21
|
* .Kartik K. Agaram2021-05-031-1/+1
|
* reading and printing backquotes and unquotesKartik K. Agaram2021-05-033-26/+255
|
* printing quoted expressionsKartik K. Agaram2021-05-021-0/+14
|
* .Kartik K. Agaram2021-05-021-5/+5
|
* .Kartik Agaram2021-05-021-1/+44
|
* .Kartik Agaram2021-05-0121-6684/+7950
|
* tool: compute nearby colors in default paletteKartik K. Agaram2021-05-012-1/+235
|
* primitive: convert r/g/b to h/s/lKartik K. Agaram2021-05-011-0/+234
|
* primitive: read r/g/b for colorKartik K. Agaram2021-05-012-0/+329
|
* .Kartik K. Agaram2021-05-012-4/+4
| | | | Clean up menus.
* cleaner rendering of fake screens and keyboardsKartik K. Agaram2021-05-012-117/+10
| | | | | | I don't understand why a second line in the keyboard is visible now where it wasn't before. That whole aspect has unclear desires. What exactly do I want to happen on newlines?
* .Kartik K. Agaram2021-05-012-50/+64
| | | | Use sandbox background in the top line on the right.
* .Kartik K. Agaram2021-05-012-4/+4
| | | | Clean up trace colors.
* move color scheme closer to Solarized darkKartik K. Agaram2021-05-018-143/+143
| | | | | | | | | | | | | sed -i 's,0x12/bg=almost-black,0xdc/bg=green-bg,g' shell/*.mu sed -i 's, 0/bg, 0xc5/bg=blue-bg,g' shell/*.mu sed -i 's, 7/fg=trace, 0x38/fg=trace,g' shell/*.mu sed -i 's, 7/bg=grey, 0x5c/bg=black,g' shell/*.mu Still a few issues. Thanks Adrian Cochrane and Zach DeCook. https://floss.social/@alcinnz/106152068473019933 https://social.librem.one/@zachdecook/106159988837603417
* support color comparison in the palette docKartik Agaram2021-05-011-257/+265
| | | | It's intended to be used with a browser's inspector.
* shell: squeeze menuKartik K. Agaram2021-04-301-11/+13
|
* shell: allow 'def' to overwriteKartik K. Agaram2021-04-292-14/+7
|
* shell: commentsKartik K. Agaram2021-04-291-0/+47
|
* .Kartik K. Agaram2021-04-291-1/+0
|
* adjust fake screen aspect ratio for verisimilitudeKartik K. Agaram2021-04-291-1/+1
|
* keep the temporary progress screen off the keyboardKartik K. Agaram2021-04-291-1/+1
|
* make pixel borders of screen clearKartik K. Agaram2021-04-291-16/+20
|
* make matching parens pop againKartik K. Agaram2021-04-291-1/+1
|
* render definitions in 2 columnsKartik K. Agaram2021-04-292-10/+29
|
* white text everywhere by defaultKartik K. Agaram2021-04-291-1/+1
|
* tweak colors for definitionsKartik K. Agaram2021-04-291-1/+1
|
* render in a narrow columnKartik K. Agaram2021-04-291-1/+1
|
* load large definitionsKartik K. Agaram2021-04-291-1/+1
|
* adjust some colors and paddingKartik K. Agaram2021-04-295-85/+102
|
* extremely threadbare null-pointer protectionKartik K. Agaram2021-04-281-0/+6
| | | | | | | | | | | | | This protects us from reading null arrays, but not null structs. It also doesn't protect us from writes to address 0 itself. It is also incredibly unsafe. According to https://wiki.osdev.org/Memory_Map_(x86), address 0 contains the real-mode IVT. Am I sure it'll never ever get used after I switch to protected mode? I really need a page table, something minimal to protect the first 4KB of physical memory or something. I wonder what other languages/OSs do to protect against really large struct definitions.
* bugfix: initialize gap buffers before using themKartik K. Agaram2021-04-282-2/+5
| | | | | | | I keep running into one hole in Mu's memory-safety since dropping the Linux dependency: null pointers no longer error when dereferenced. Here the problem manifests as aliasing: lots of gap buffers share the same exact data near address 0, because it was never initialized.
* fix renderingKartik K. Agaram2021-04-281-1/+1
|
* shell: load/store from/to disk with indentKartik K. Agaram2021-04-282-25/+82
| | | | | Once I came up with the right approach, this worked on the first try once I got the types and registers to line up!
* .Kartik K. Agaram2021-04-281-3/+1
|