about summary refs log tree commit diff stats
path: root/apps
Commit message (Collapse)AuthorAgeFilesLines
...
* 7302 - tile: at long last, divisionKartik Agaram2020-11-292-1/+21
| | | | | | Also square roots. But there's a bug in rendering floats without precision.
* 7301 - tile: float computations now workingKartik Agaram2020-11-292-3/+6
|
* 7300 - bugfix in type-checking float returnsKartik Agaram2020-11-292-0/+69
|
* 7299 - bug in code-generating float returnsKartik Agaram2020-11-292-54/+122
|
* 7297 - tile: use floats everywhereKartik Agaram2020-11-298-124/+131
|
* 7295Kartik Agaram2020-11-292-12/+11
|
* 7294Kartik Agaram2020-11-282-16/+16
|
* 7292 - mu.subx: loosen copy-byte checks a bitKartik Agaram2020-11-272-125/+31
| | | | | | | Without this there's no way to convert an int to a byte. And that feels too restrictive, and gives up a lot of safe things one might want to do with bytes. (Such as divide a number by 10 and emit the remainder as a byte.)
* 7291Kartik Agaram2020-11-272-12/+11
|
* 7290Kartik Agaram2020-11-271-2/+4
| | | | | | | I've wrestled for a long time with how to support integer division with its hard-coded registers. The answer's always been staring me in the face: just turn it into a function! We already expect function outputs to go to hard-coded registers.
* 7288Kartik Agaram2020-11-271-4/+4
|
* 7287Kartik Agaram2020-11-272-0/+34
| | | | | Regression: I'd broken compare on bytes. Apparently I took away support for bytes from numberlike-output even though I didn't need to by the end.
* 7286 - mu.subx: isolate bytes from previous valuesKartik Agaram2020-11-272-13/+66
|
* 7285Kartik Agaram2020-11-262-12/+1042
|
* 7284Kartik Agaram2020-11-262-12/+188
|
* 7283Kartik Agaram2020-11-262-98/+12
|
* 7282Kartik Agaram2020-11-262-0/+86
|
* 7281Kartik Agaram2020-11-262-7/+24
|
* 7280Kartik Agaram2020-11-262-9/+9
|
* 7279Kartik Agaram2020-11-262-1/+44
|
* 7278 - typo in mu.subxKartik Agaram2020-11-262-2/+2
|
* 7269Kartik Agaram2020-11-213-55/+45
|
* 7267 - mu.subx: type-check 'convert' statementsKartik Agaram2020-11-202-0/+637
|
* 7261 - mu.subx: array bounds-checking doneKartik Agaram2020-11-172-98/+236
|
* 7260Kartik Agaram2020-11-172-15/+11
| | | | This seems to preserve the intent of commit 6555.
* 7258Kartik Agaram2020-11-172-9/+9
|
* 7257 - partially undo commit 7253Kartik Agaram2020-11-172-8/+8
| | | | I don't need to pass the function pointer quite so low. I think..
* 7256Kartik Agaram2020-11-171-6/+6
|
* 7253 - mu.subx: starting to bounds-check 'index'Kartik Agaram2020-11-162-50/+51
| | | | | First step: start passing the function name into code-generation functions. We're going to need it for the error message.
* 7251Kartik Agaram2020-11-162-2/+2
|
* 7250Kartik Agaram2020-11-161-1/+1
|
* 7248 - mu.subx: new primitive 'clear-object'Kartik Agaram2020-11-154-17/+152
|
* 7246 - tile: segment each function's areaKartik Agaram2020-11-151-2/+14
|
* 7245 - tile: right-align functionsKartik Agaram2020-11-153-13/+102
|
* 7244 - tile: new layout for primitivesKartik Agaram2020-11-151-16/+48
|
* 7243 - tile: starting to make functions editableKartik Agaram2020-11-151-14/+24
|
* 7242Kartik Agaram2020-11-151-1/+1
|
* 7241 - mu.subx: check float registersKartik Agaram2020-11-152-0/+148
|
* 7240Kartik Agaram2020-11-152-20/+34
|
* 7239Kartik Agaram2020-11-152-7/+114
|
* 7238 - mu.subx: final restrictions on 'addr'Kartik Agaram2020-11-1515-12/+344
| | | | I had to tweak one app that wasn't following the rules.
* 7237Kartik Agaram2020-11-141-2/+0
| | | | | | | Minor tweaks to get Mu shell running nicely on a Linux console atop Qemu. We also need to switch a few 256-color codes to 8-color mode. I'm not sure whether/how to patch the repo for those.
* 7232 - mu.subx: more checks for byte typesKartik Agaram2020-11-122-11/+149
|
* 7231Kartik Agaram2020-11-123-3/+47
|
* 7230 - mu.subx: some more checks for stmt outputsKartik Agaram2020-11-122-10/+153
|
* 7229 - tile: fix ctrl-eKartik Agaram2020-11-122-7/+20
|
* 7228Kartik Agaram2020-11-121-3/+7
|
* 7226Kartik Agaram2020-11-114-81/+0
|
* 7225Kartik Agaram2020-11-1133-60/+217
| | | | | | | Both manual tests described in commit 7222 now work. To make them work I had to figure out how to copy a file. It requires a dependency on a new syscall: lseek.
* 7222Kartik Agaram2020-11-103-43/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Ok, I found a failing manual test for files as well. Here are the two steelman tests, one for screens and one for files: 1. 5 5 fake-screen =s s 1 down 1 right ctrl-d foo expand final state: s foo foo s 1 down 1 right ⇗ ┌─────┐ ┌─────┐ ┌─────┐ 1 ┌─────┐ 1 ┌─────┐ │ ┌─────┐ │ ┌─────┐ │ ─ │ │ │ │ ─ └─────┘ └─────┘ └─────┘ └─────┘ └─────┘ └─────┘ └─────┘ 2. "x" open =f f read f read ctrl-d read2 expand final state: f read2 read2 f read f read ⇗ FILE ❝def❞ FILE ❝abc❞ FILE ❝❞ ❝def❞ ❝ghi❞ In both cases there are 3 levels of issues: - getting a single-line expression to work - getting a single-line expression to work when operating on a binding defined in a previous line - getting an expanded function call to work The third is where the rub is right now. And what both examples above share is that the function performs 2 mutations to the screen/file. So we need a deep copy after all. And it's not very clear how to copy a file descriptor including the seek location. Linux's dup() syscall creates an alias to the file descriptor. And opening /proc seems awfully Linux-specific: https://stackoverflow.com/questions/54727231/duplicating-file-descriptor-and-seeking-through-both-of-them-independently/54727424#54727424