about summary refs log tree commit diff stats
Commit message (Collapse)AuthorAgeFilesLines
* 5587Kartik Agaram2019-08-251-6/+0
| | | | No need for progress reports on ntranslate; it runs pretty fast.
* 5586 - bugfix: no desugar inside string literalsKartik Agaram2019-08-2510-434/+578
|
* 5585Kartik Agaram2019-08-253-123/+33
|
* 5584Kartik Agaram2019-08-252-2/+2
| | | | | Forgot to switch the knob when fixing the merge conflict between commits 5512 and 1a7b15aa3d.
* 5583Kartik Agaram2019-08-253-2085/+2429
| | | | Clean up some missing error messages.
* 5582Kartik Agaram2019-08-2565-11196/+16082
|
* 5581Kartik Agaram2019-08-251-1/+3
|
* Merge pull request #35 from akkartik/desugarKartik Agaram2019-08-2530-1134/+6315
|\ | | | | Desugaring pass
| * .Kartik Agaram2019-08-252-1/+183
| |
| * Merge branch 'master' into desugarKartik Agaram2019-08-2525-4839/+416
| |\ | |/ |/|
* | 5523Kartik Agaram2019-08-241-1/+1
| |
* | 5522 - example app: random number streamKartik Agaram2019-08-203-0/+186
| | | | | | | | Turns out Mu's kernel isn't populating /dev/random correctly.
* | 5521Kartik Agaram2019-08-1912-12/+12
| |
* | 5520 - move kernel.config to kernel repoKartik Agaram2019-08-182-4690/+0
| |
* | 5519Kartik Agaram2019-08-181-3/+5
| |
* | 5518Kartik Agaram2019-08-171-4/+5
| |
* | 5517Kartik Agaram2019-08-151-7/+6
| |
* | 5516 - record traces only when necessaryKartik Agaram2019-08-142-2/+4
| | | | | | | | ./translate now works fine for all apps on a server with 2GB RAM.
* | 5515Kartik Agaram2019-08-141-22/+22
| | | | | | | | Drop a bash-ism.
* | 5514 - disable emulated runs on LinuxKartik Agaram2019-08-141-60/+133
| |
* | 5513Kartik Agaram2019-08-141-22/+22
| |
* | 5512 - don't rebuild apps by defaultKartik Agaram2019-08-143-3/+6
| | | | | | | | | | We basically only want to rebuild phases of the self-hosted translator when we run the self-hosted translator.
* | 5511Kartik Agaram2019-08-141-34/+35
| |
* | 5510Kartik Agaram2019-08-142-2/+2
| | | | | | | | | | Stop supporting CFLAGS in CI scripts; they're now meaty enough that I never run them locally in debug mode.
| * .Kartik Agaram2019-08-251-1/+1
| |
| * desugar: more integration testsKartik Agaram2019-08-252-1/+206
| |
| * desugar: code-generation seems completeKartik Agaram2019-08-252-5/+291
| |
| * desugar: parsing seems completeKartik Agaram2019-08-253-39/+422
| |
| * skip building apps when running a single testKartik Agaram2019-08-252-4/+4
| | | | | | | | Environment variables allow me to have non-local effects inside scripts.
| * parsing *(reg-disp)Kartik Agaram2019-08-252-0/+66
| |
| * parsing *(reg+reg)Kartik Agaram2019-08-252-21/+150
| | | | | | | | | | | | | | | | | | Turns out there's an ambiguity even in this simple one-line language: when you see 'base+' you don't know whether the next token is the index or displacement. (Whereas a '-' would be unambiguous but is still not handled.) Fixing this ambiguity adds 15 instructions worth of complexity.
| * parsing *(reg+disp)Kartik Agaram2019-08-243-8/+549
| |
| * .Kartik Agaram2019-08-241-1/+1
| |
| * integration tests for desugaring indirect modeKartik Agaram2019-08-242-2/+211
| | | | | | | | They caught a logic error.
| * integration tests for desugaring direct modeKartik Agaram2019-08-242-0/+212
| |
| * use the results of parsing in emit-indirect-modeKartik Agaram2019-08-242-60/+33
| |
| * parsing *(reg)Kartik Agaram2019-08-242-0/+121
| |
| * build out all variants for skipping whitespaceKartik Agaram2019-08-2412-0/+270
| | | | | | | | skip {whitespace, non-whitespace} x {from stream, from slice}
| * .Kartik Agaram2019-08-231-0/+68
| | | | | | | | This is pretty complex, but I may not need any more registers.
| * .Kartik Agaram2019-08-232-4/+14
| |
| * .Kartik Agaram2019-08-232-4/+12
| | | | | | | | | | Some reorg as I realize I may have painted myself into a corner in this function. I have no registers left for the actual parsing.
| * parsing *regKartik Agaram2019-08-232-2/+102
| | | | | | | | Isn't used yet, but baby steps.
| * another error messageKartik Agaram2019-08-232-1/+64
| |
| * .Kartik Agaram2019-08-231-3/+3
| |
| * lexing complex expressions inside '*(...)'Kartik Agaram2019-08-233-21/+442
| |
| * couple of helpers for parsing expressions in parensKartik Agaram2019-08-222-0/+330
| |
| * .Kartik Agaram2019-08-161-2/+2
| |
| * sketch of a plan to implement indirect modeKartik Agaram2019-08-162-2/+60
| |
| * desugar: code-generate *regKartik Agaram2019-08-162-1/+244
| |
| * plan for supporting indirect modeKartik Agaram2019-08-162-22/+28
| | | | | | | | | | | | | | | | | | | | | | It may superficially seem like there's a simpler approach: - emit '3/mod' or '0/mod' depending on whether the character is '%' or '*' - increment the start of word-slice - look up the register and emit the appropriate /rm32 But that won't work for 1/mod or 2/mod. We're doing a little bit of upfront planning.