about summary refs log tree commit diff stats
path: root/subx/apps/dquotes
Commit message (Collapse)AuthorAgeFilesLines
* 5437Kartik Agaram2019-07-211-0/+0
| | | | Break a dependency from `print-int32` to `from-hex-char`.
* 5436 - support newlines in dquotesKartik Agaram2019-07-211-0/+0
|
* 5434Kartik Agaram2019-07-211-0/+0
|
* 5433Kartik Agaram2019-07-211-0/+0
|
* 5429Kartik Agaram2019-07-201-0/+0
| | | | Fix CI.
* 5426Kartik Agaram2019-07-201-0/+0
|
* 5422Kartik Agaram2019-07-191-0/+0
| | | | | Various buffer sizes needed to be grown for ex11. But the next bottleneck is that we need to code-generate run-tests.
* 5408Kartik Agaram2019-07-161-0/+0
| | | | | | | | | | | | Bugfix ten: type error in `convert`. I was calling `rewind-stream` on a `buffered-file`. examples/ex1 is now just one nibble off the canonical. I *have* found one missing feature in the self-hosted translator, though: dquotes doesn't support newlines in strings, even though the C++ version does. dquotes parses them right, but the value initialized in the data segment is wrong.
* .Kartik Agaram2019-07-131-0/+0
|
* .Kartik Agaram2019-07-131-0/+0
|
* start distinguishing table lookups from insertsKartik Agaram2019-07-101-0/+0
|
* zero out new rows returned by get-or-insertKartik Agaram2019-07-101-0/+0
|
* .Kartik Agaram2019-07-101-0/+0
| | | | | Another batch of incorrectly signed conditional jumps. (Follow-up to commit 5180.)
* mostly done with emit-outputKartik Agaram2019-07-091-0/+0
| | | | | Some nooks and crannies will need light final debugging with xxd, but emit-hex-output covers most of the logic.
* pull a couple more functions into subx-commonKartik Agaram2019-07-081-0/+0
|
* .Kartik Agaram2019-07-081-0/+0
| | | | | | Move test slice variables out of the data segment and close to their usages. Makes tests a little easier to read even if we spend a few more instructions each time.
* preserve truthiness of non-booleansKartik Agaram2019-07-081-0/+0
| | | | | Everywhere we check if something is true, we check it by comparing against 0, not 1.
* .Kartik Agaram2019-07-081-0/+0
| | | | style tweaks
* .Kartik Agaram2019-07-071-0/+0
| | | | reorg in subx-common.subx
* move `is-label?` to `subx-common`Kartik Agaram2019-07-071-0/+0
|
* Merge branch 'master' into surveyKartik Agaram2019-07-031-0/+0
|\ | | | | | | | | | | High time we pulled in the final changes to dquotes. In the process we fix one recently introduced duplicate symbol.
| * 5218Kartik Agaram2019-05-221-0/+0
| |
| * Merge branch 'dquotes-3'Kartik Agaram2019-05-201-0/+0
|/|
| * clean up a redundant primitiveKartik Agaram2019-05-201-0/+0
| |
| * .Kartik Agaram2019-05-201-0/+0
| |
| * dquotes now doneKartik Agaram2019-05-201-0/+0
| | | | | | | | | | We need yet another helper for computing the lengths of strings, while checking for escape sequences.
| * standardize the loop in skip-string-in-sliceKartik Agaram2019-05-201-0/+0
| | | | | | | | | | | | We're going to be cloning it for the length computation. Anytime we do something non-standard it's invariably short-lived.
| * support string literals in emit-string-literal-dataKartik Agaram2019-05-201-0/+0
| | | | | | | | As expected, almost all tests now passing.
| * support string literals in emit-metadataKartik Agaram2019-05-201-0/+0
| |
| * move local variable up following conventionsKartik Agaram2019-05-191-0/+0
| | | | | | | | | | More importantly, don't mix reclaiming locals with discarding args after a call.
| * convention: source arg in ESIKartik Agaram2019-05-191-0/+0
| | | | | | | | I _think_ we'll need to use it below. But may be wrong.
| * handle words with just metadataKartik Agaram2019-05-191-0/+0
| | | | | | | | | | Kind of a pathological case, but makes our loop follow a standard format, and provides some error checking at low cost.
| * minor style tweaks for emit-metadataKartik Agaram2019-05-191-0/+0
| |
| * skip-string: fix a bug in computing in->readKartik Agaram2019-05-181-0/+0
| | | | | | | | I was missing a test to catch this.
| * minor style cleanupKartik Agaram2019-05-181-0/+0
| | | | | | | | | | | | | | | | | | | | | | | | I like to be able to jump between functions and tests using '}' in Vim :) We also shouldn't put the wrong argument types in the tabular columns. Just make it obvious they're not in use when instructions don't have a ModR/M byte. End-of-line comments are really only useful for instructions with a ModR/M byte.
| * add a bounds checkKartik Agaram2019-05-181-0/+0
| |
| * another failing testKartik Agaram2019-05-171-0/+0
| | | | | | | | This one should make `emit-metadata` string-aware.
| * dquotes: failing tests for parsing string literalsKartik Agaram2019-05-161-0/+0
| | | | | | | | Plan: https://github.com/akkartik/mu/commit/d4a244268841e8e912c98f4587095b701aa5c292#commitcomment-33558279
* | another phase that supports the new segment syntaxKartik Agaram2019-05-171-0/+0
| | | | | | | | | | | | | | | | | | | | Current state: ✓ hex.subx (no changes required) survey.subx ✓ pack.subx (fixed here) assort.subx ✓ dquotes.subx (has failing tests for other reasons)
* | 5181Kartik Agaram2019-05-171-0/+0
|/ | | | Test for the bugfix of commit 2f49a27504.
* 5180Kartik Agaram2019-05-161-0/+0
| | | | | | | Clean up some old TODOs related to our pre-mmap limitations. Also caught another case of using the wrong comparison. When comparing addresses, one must always use unsigned rather than signed jump instructions.
* complete the skeleton of dquotes.subxKartik Agaram2019-05-151-0/+0
| | | | | | | | | | | | | | | | Still some failing tests: - emit-string-literal-data doesn't ignore metadata when computing the length of literal strings - emit-string-literal-data doesn't handle escape sequences One issue doesn't have a failing test: - emit-metadata doesn't handle string literals containing '/' All these open issues involve a common design question: how to parse a 'word' that includes a string literal that may include spaces. For everything else I know words can't contain spaces and datums can't contain slashes. But for string literals things are tougher.
* .Kartik Agaram2019-05-141-0/+0
|
* fix a stale register value in dquotes.subxKartik Agaram2019-05-141-0/+0
| | | | | | | | | | | | | How did things seem to be working until now? - We were saving an address from the stack to stream.read - When we read this address in skip-chars-matching:loop, we used to stop early But now we've moved the stack to a larger address, one where the most significant byte is set. When the stack address now gets to skip-chars-matching:loop, it's treated as a negative number and we proceed through the loop. At which point we try to index into the array using it. No real test to be written to protect against this :(
* Merge branch 'dquotes' into dquotes-1Kartik Agaram2019-05-131-0/+0
|\ | | | | | | | | dquotes.subx is now segfaulting after this merge. Seems to be trying to use addresses from the old stack.
| * Merge branch 'master' into dquotesKartik Agaram2019-05-101-0/+0
| |\ | | | | | | | | | apps/dquotes still segfaulting on native run.
| | * 5151 - use mmap everywhere we need a heapKartik Agaram2019-05-101-0/+0
| | | | | | | | | | | | | | | 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`.
* | | dquotes - emit data segment - no escapesKartik Agaram2019-05-031-0/+0
| | | | | | | | | | | | Convert raw literal strings (no escape sequences) to the data segment.
* | | standardize function namesKartik Agaram2019-05-021-0/+0
|/ / | | | | | | | | Operations on buffered-file now always include the word 'buffered'. More verbose, but hopefully this highlights holes in the library.
* / new failing test in dquotes phaseKartik Agaram2019-04-281-0/+0
|/ | | | | | | | | | | | | | | I'm switching to a more exposed working dynamic after chatting with Charles Saternos (https://github.com/akkartik/mu/pull/19). From now on I'll start a new branch for big features. Branches won't always pass all their tests. Phases have gone weeks in the past before being committed all at once. Developing in a branch gives others the opportunity to see more current progress and jump in more easily. Some 'kata' branches for new contributors to start at: * add two numbers: https://github.com/akkartik/mu/pull/21 * write a string to a byte stram: https://github.com/akkartik/mu/pull/22 * print a number in decimal to a byte stream: https://github.com/akkartik/mu/pull/20