about summary refs log tree commit diff stats
Commit message (Collapse)AuthorAgeFilesLines
* 6758Kartik Agaram2020-09-072-14/+30
|
* 6757Kartik Agaram2020-09-071-2/+3
|
* 6756Kartik Agaram2020-09-071-1/+29
|
* 6755Kartik Agaram2020-09-071-82/+95
|
* 6754Kartik Agaram2020-09-072-6/+13
|
* 6753Kartik Agaram2020-09-072-57/+126
|
* 6752Kartik Agaram2020-09-072-24/+26
|
* 6751Kartik Agaram2020-09-074-25/+93
| | | | | More copypasta. I'd be able to remove this duplication if we had first-class functions, but they involve an accessibility cost.
* 6750Kartik Agaram2020-09-072-58/+15
|
* 6749 - plumb screen through in a few placesKartik Agaram2020-09-071-25/+25
|
* 6748 - promote browser prototype an app with testsKartik Agaram2020-09-075-183/+498
| | | | Now that we have a fake screen we can start testing it.
* 6747Kartik Agaram2020-09-071-3/+3
|
* 6746Kartik Agaram2020-09-0738-15685/+16856
|
* 6745Kartik Agaram2020-09-071-8/+300
| | | | So copypasta, much wow.
* 6744Kartik Agaram2020-09-071-10/+83
|
* 6743Kartik Agaram2020-09-071-4/+6
|
* 6742 - support for formatting in fake screensKartik Agaram2020-09-078-10/+240
| | | | | We still need a few primitives, but we can implement these as needed. I'm ready to call the fake screen done.
* 6741 - fake screen now scrolls correctlyKartik Agaram2020-09-061-10/+73
|
* 6740Kartik Agaram2020-09-061-0/+19
|
* 6739Kartik Agaram2020-09-061-9/+3
|
* 6738Kartik Agaram2020-09-061-5/+17
|
* 6737Kartik Agaram2020-09-062-10/+133
|
* 6736Kartik Agaram2020-09-021-13/+13
|
* 6735 - print unicode string to fake screenKartik Agaram2020-09-021-0/+29
|
* 6734 - first test for text-mode screen primitivesKartik Agaram2020-09-021-4/+37
|
* 6733 - read utf-8 'grapheme' from byte streamKartik Agaram2020-08-2816-1/+189
| | | | | | No support for combining characters. Graphemes are currently just utf-8 encodings of a single Unicode code-point. No support for code-points that require more than 32 bits in utf-8.
* 6732Kartik Agaram2020-08-281-2/+2
|
* 6731Kartik Agaram2020-08-282-3/+3
|
* 6730Kartik Agaram2020-08-281-2/+2
|
* 6729Kartik Agaram2020-08-281-19/+25
|
* 6728 - new skeleton for screen primitivesKartik Agaram2020-08-221-1/+132
| | | | Finally this compiles.
* 6727 - bugfix in a multiply instructionKartik Agaram2020-08-225-6/+10
| | | | Also more error-detection for this case all across the toolchain.
* 6726Kartik Agaram2020-08-222-2/+2
|
* 6725 - support negative literalsKartik Agaram2020-08-222-9/+27
|
* 6724Kartik Agaram2020-08-2212-18009/+19237
|
* 6723Kartik Agaram2020-08-221-3/+4
|
* 6722Kartik Agaram2020-08-222-24/+123
|
* 6721Kartik Agaram2020-08-221-1/+2
|
* 6720Kartik Agaram2020-08-2239-106/+106
|
* 6719 - error-checking for 'index' instructionsKartik Agaram2020-08-2113-5/+1219
| | | | | | | | 1000+ LoC spent; just 300+ excluding tests. Still one known gap; we don't check the entirety of an array's element type if it's a compound. So far we just check if say both sides start with 'addr'. Obviously that's not good enough.
* 6718Kartik Agaram2020-08-163-0/+14
|
* 6717Kartik Agaram2020-08-152-0/+82
|
* 6716Kartik Agaram2020-08-1512-21538/+22310
|
* 6715Kartik Agaram2020-08-032-0/+7
| | | | | | | | | | | | | | | | | | | | | | | There's a question of how we should match array types with a capacity on ones without. For now we're going to do the simplest possible thing and just make type-match? more robust. It'll always return false if the types don't match exactly. For ignoring capacity we'll rely on the checks of the `address` operation (which don't exist yet). This means we should do this to pass an address to an array to a function f with signature `f (addr array int)`: var a: (array int 3) var b/eax: (addr array int) <- address a f b rather than this: var a: (array int 3) var b/eax: (addr array int 3) <- address a f b Similar reasoning applies to stream types. Arrays and streams are currently the only types that can have an optional capacity.
* 6714Kartik Agaram2020-08-021-0/+3
|
* 6713 - move-cursor on fake screenKartik Agaram2020-08-021-0/+9
|
* 6712 - new prototype with cleaner box shapesKartik Agaram2020-08-021-0/+437
|
* 6711Kartik Agaram2020-08-021-21/+0
|
* 6710 - utf-8 encodingKartik Agaram2020-08-021-54/+34
| | | | | | | | | | | | | | | | Example program: fn main -> r/ebx: int { var x/eax: code-point <- copy 0x2192 # unicode character 'rightwards arrow' print-code-point 0, x print-string 0, "\n" r <- copy 0 } Run: $ ./translate_mu x.mu && ./a.elf → $
* snapshot: encoding code-points to utf-8Kartik Agaram2020-08-022-0/+183
| | | | | I have it partly working, but just realized I've been reversing the output bytes.