about summary refs log tree commit diff stats
path: root/subx/apps
Commit message (Collapse)AuthorAgeFilesLines
* 5153Kartik Agaram2019-05-117-0/+0
|
* 5151 - use mmap everywhere we need a heapKartik Agaram2019-05-1011-23/+99
| | | | | All tests passing now. Things are very explicit; before a program can `allocate` memory, it has to first obtain a segment from the OS using `new-segment`.
* 5145Kartik Agaram2019-05-047-0/+0
|
* 5135Kartik Agaram2019-05-047-0/+0
|
* 5127Kartik Agaram2019-04-261-1/+1
|
* 5124Kartik Agaram2019-04-232-2/+2
|
* 5123Kartik Agaram2019-04-231-4/+0
|
* 5118 - convert int to stringKartik Agaram2019-04-238-0/+0
|
* 5115Kartik Agaram2019-04-222-1/+1
|
* 5112Kartik Agaram2019-04-192-1/+63
|
* 5108Kartik Agaram2019-04-182-10/+10
|
* 5107Kartik Agaram2019-04-182-4/+281
|
* 5106Kartik Agaram2019-04-173-2/+147
|
* 5105Kartik Agaram2019-04-167-388/+200
| | | | | Pull in a _different_ function than `next-word` (commit 5092) into a shared file between phases. Let's see how this goes.
* 5104Kartik Agaram2019-04-162-18/+13
| | | | Don't forget metadata for string literals.
* 5103Kartik Agaram2019-04-162-61/+88
|
* 5102 - tokenize string literalsKartik Agaram2019-04-162-0/+582
| | | | | | Current plan: $ cat files.subx ... |dquotes |assort |pack |survey |hex > a.out
* 5101Kartik Agaram2019-04-161-1/+1
|
* 5100Kartik Agaram2019-04-161-1/+1
|
* 5098Kartik Agaram2019-04-161-6/+6
|
* 5097Kartik Agaram2019-04-162-8/+10
|
* 5092Kartik Agaram2019-04-155-251/+490
| | | | | | | Realization: 'next-word' can't be reused in converting string literals, because it has to understand string literals. Let's just keep each phase self-contained.
* 5090Kartik Agaram2019-04-1312-794/+154
| | | | | | | Start using the new newline escape in string literals everywhere. I could use it more aggressively, but it makes tests harder to read. So only one line of text per string for now.
* 5087Kartik Agaram2019-04-122-1/+2
| | | | | | | | Fix CI. For some reason allocating 4KB natively on Linux triggers a segfault. Temporarily reducing segment size to 256 bytes; that's large enough for the test. But it's not a long-term solution. Maybe I need to grow the heap with sbrk()?
* 5085 - 'assort' phase done!Kartik Agaram2019-04-122-407/+497
| | | | | | | | | | | | | | | | | Current plan for SubX translator: $ cat files.subx ... |assort |pack |survey |hex > a.out Higher-level notations will be inserted at the start of the pipeline. The first (and needed for bootstrapping) is for string literals. $ cat files.subx ... |string-literals |assort |pack |survey |hex > a.out Alternatively, we should check how often we use string literals and just convert them by hand. They're used all over in tests, and converting them would make tests hard (even harder) to read.
* 5080Kartik Agaram2019-04-116-110/+78
|
* 5076Kartik Agaram2019-04-101-0/+0
|
* 5075Kartik Agaram2019-04-101-0/+0
|
* 5074Kartik Agaram2019-04-1010-120/+185
| | | | | | | | | | | | | Fail early when writing to a fake file runs out of space. Makes debugging tests easier. Reads from files, on the other hand, are only buffering to a temporary stream, so it makes sense to silently stop when they run out of space. In the process I uncovered a testing bug in pack.subx: I was missing a trailing space in the expected result, but the test still passed because the space was getting truncated. Being principled about aborting on overflow by default will help avoid such issues.
* 5072Kartik Agaram2019-04-101-15/+1
|
* 5064Kartik Agaram2019-04-071-3/+2
|
* 5063Kartik Agaram2019-04-071-69/+0
|
* 5062Kartik Agaram2019-04-062-391/+460
|
* 5061Kartik Agaram2019-04-061-1/+1
|
* 5060Kartik Agaram2019-04-068-10/+221
|
* 5059Kartik Agaram2019-04-0510-33/+33
|
* 5058Kartik Agaram2019-04-053-245/+251
|
* 5057Kartik Agaram2019-04-051-1/+35
|
* 5056Kartik Agaram2019-04-056-0/+0
|
* 5055 - new phase: merge fragment of segmentsKartik Agaram2019-04-041-0/+1102
|
* 5054Kartik Agaram2019-04-032-4/+3
|
* 5053Kartik Agaram2019-04-037-40/+266
| | | | | | write-stream-buffered isn't a clean abstraction. Ignoring the 'read' index of a stream is a hack. It's just saving us the trouble of a rewind-stream. So make it a helper of pack.subx rather than part of the standard library.
* 5052Kartik Agaram2019-04-022-99/+127
|
* 5051 - done compiling SIB operandsKartik Agaram2019-04-022-3/+671
| | | | Done with pack.subx?!
* 5050 - compile ModR/M operandsKartik Agaram2019-04-022-1/+807
|
* 5049Kartik Agaram2019-04-021-100/+196
|
* 5048Kartik Agaram2019-04-011-12/+12
|
* 5047Kartik Agaram2019-04-011-3/+3
|
* 5046Kartik Agaram2019-04-012-72/+52
|
* 5045Kartik Agaram2019-04-011-8/+8
|