Commit Graph

12 Commits

Author SHA1 Message Date
Kartik Agaram bfcc0f858a 6182 - start of support for safe handles
So far it's unclear how to do this in a series of small commits. Still
nibbling around the edges. In this commit we standardize some terminology:

The length of an array or stream is denominated in the high-level elements.
The _size_ is denominated in bytes.

The thing we encode into the type is always the size, not the length.

There's still an open question of what to do about the Mu `length` operator.
I'd like to modify it to provide the length. Currently it provides the
size. If I can't fix that I'll rename it.
2020-04-03 12:35:53 -07:00
Kartik Agaram 3ac95f6a40 6072
I just did an experiment, and test_apps is spending over half its time
(95 seconds that could be 40) redundantly clearing every stream before
every test. And some of those streams are _large_; the translators for
SubX and Mu use streams sizes pessimistically for the largest possible
program they can handle (1MB per segment).

A single test (the one in assort.subx) spends 24 seconds initializing 2
1MB-segments before processing a dozen lines of text in the blink of an
eye.

I'm not going to speed this up. But good to know.
2020-02-29 22:36:03 -08:00
Kartik Agaram 71eb22a5bf 5924 2020-01-27 00:36:44 -08:00
Kartik Agaram 6070c23e5e 5897 - rename comparison instructions
Signed and unsigned don't quite capture the essence of what the different
combinations of x86 flags are doing for SubX. The crucial distinction is
that one set of comparison operators is for integers and the second is
for addresses.
2020-01-16 18:31:12 -08:00
Kartik Agaram f1eade7286 5883 - drop the `ref` keyword
When I created it I was conflating two things:
a) needing to refer to just the start, rather than the whole, and
b) counting indirections.

Both are kinda ill-posed. Now Mu will have just `addr` and `handle` types.
Normal types will translate implicitly to `addr` types, while `handle`
will always require explicit handling.
2020-01-12 14:49:35 -08:00
Kartik Agaram 7e7a8a6eae 5876 - address -> addr 2020-01-03 01:36:34 -08:00
Kartik Agaram 2a2a5b1e43 5804
Try to make the comments consistent with the type system we'll eventually
have.
2019-12-08 23:31:05 -08:00
Kartik Agaram 5409743432 5700 2019-10-17 21:59:51 -07:00
Kartik Agaram 7a5832204a 5698
Thanks Andrew Owen for reporting this typo.
2019-10-15 19:35:19 -07:00
Kartik Agaram 6ecddbaa92 5666 - start of sugar for structured control flow 2019-09-19 00:33:21 -07:00
Kartik Agaram 333525360b 5592 - switch register names to lowercase 2019-08-26 11:59:21 -07:00
Kartik Agaram 6e1eeeebfb 5485 - promote SubX to top-level 2019-07-27 17:47:59 -07:00