about summary refs log tree commit diff stats
path: root/apps
Commit message (Collapse)AuthorAgeFilesLines
* 6779Kartik Agaram2020-09-141-0/+0
| | | | Looks like Linux turns reads from stdout/stderr into stdin!
* 6778Kartik Agaram2020-09-141-1/+1
|
* 6777Kartik Agaram2020-09-142-9/+8
| | | | Print answers in decimal in apps/arith.mu
* 6776 - new app: a programming environmentKartik Agaram2020-09-133-0/+426
| | | | This will take a while.
* 6775Kartik Agaram2020-09-111-0/+11
|
* 6773 - markdown browser now seems fully testedKartik Agaram2020-09-111-0/+56
|
* 6772 - test for markdown headersKartik Agaram2020-09-111-4/+24
|
* 6771 - first passing test for the browser itselfKartik Agaram2020-09-112-21/+160
| | | | In the process I had to go back and redo the `done-drawing?` logic everywhere.
* 6770Kartik Agaram2020-09-101-70/+140
|
* 6769 - support for creating fake files in Mu testsKartik Agaram2020-09-101-0/+0
|
* 6767Kartik Agaram2020-09-101-3/+49
|
* 6766Kartik Agaram2020-09-101-24/+24
|
* 6765Kartik Agaram2020-09-101-0/+22
| | | | Starting to gain confidence.
* 6764Kartik Agaram2020-09-101-168/+0
|
* 6763Kartik Agaram2020-09-101-0/+83
|
* 6762Kartik Agaram2020-09-101-8/+210
|
* 6761Kartik Agaram2020-09-081-1/+1
|
* 6760Kartik Agaram2020-09-081-0/+0
| | | | | | | | Fix a couple of subtle bugs. - the VM was conditionally reading from the instruction stream, so that other bugs got masked by decoding errors. - push-n-bytes was clobbering eax.
* 6759 - first test for app/browse/Kartik Agaram2020-09-071-6/+21
|
* 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-072-24/+23
| | | | | 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.
* 6742 - support for formatting in fake screensKartik Agaram2020-09-072-0/+61
| | | | | We still need a few primitives, but we can implement these as needed. I'm ready to call the fake screen done.
* 6733 - read utf-8 'grapheme' from byte streamKartik Agaram2020-08-2813-0/+0
| | | | | | 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.
* 6727 - bugfix in a multiply instructionKartik Agaram2020-08-222-3/+4
| | | | 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
|
* 6722Kartik Agaram2020-08-222-24/+123
|
* 6721Kartik Agaram2020-08-221-1/+2
|
* 6720Kartik Agaram2020-08-223-6/+6
|
* 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-161-0/+0
|
* 6717Kartik Agaram2020-08-151-0/+10
|
* 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.
* 6706 - support utf-8Kartik Agaram2020-08-022-0/+2
| | | | | | | | | | | | | | For example: fn main -> r/ebx: int { var x/eax: grapheme <- copy 0x9286e2 # code point 0x2192 in utf-8 print-grapheme-to-real-screen x print-string-to-real-screen "\n" } Graphemes must fit in 4 bytes (21 bits for code points). Unclear what we should do for longer clusters since graphemes are a fixed-size type at the moment.
* 6704Kartik Agaram2020-08-021-0/+0
| | | | | This is stupid; all this while I've been writing escape sequences to the screen they've been going out on stderr.
* 6703 - new types: code-point and graphemeKartik Agaram2020-08-025-4/+8
| | | | | | | | | | Both have the same size: 4 bytes. So far I've just renamed print-byte to print-grapheme, but it still behaves the same. I'm going to support printing code-points next, but grapheme 'clusters' spanning multiple code-points won't be supported for some time.
* 6702Kartik Agaram2020-08-022-3/+18
|
* 6701Kartik Agaram2020-08-022-2/+4
|
* 6699 - start building out fake screenKartik Agaram2020-08-015-35/+35
| | | | | We now have all existing apps and prototypes going through the dependency-injected wrapper, even though it doesn't actually implement the fake screen yet.
* 6691 - start building a fake screenKartik Agaram2020-07-312-6/+98
| | | | There was a bug in defining types containing other user-defined types.
* 6687 - stream-empty? and stream-full?Kartik Agaram2020-07-302-1/+65
|