Commit Graph

5924 Commits

Author SHA1 Message Date
Kartik Agaram 71eb22a5bf 5924 2020-01-27 00:36:44 -08:00
Kartik Agaram 1a65c3af0f 5923 - start work on code-generation for 'var' 2020-01-27 00:20:21 -08:00
Kartik Agaram 810b0f67fa 5922 2020-01-26 23:46:37 -08:00
Kartik Agaram f39eeb3af3 5921 2020-01-26 23:44:40 -08:00
Kartik Agaram 0c1f023acf 5920 2020-01-26 15:09:57 -08:00
Kartik Agaram 9a4631af77 5919 2020-01-26 15:07:55 -08:00
Kartik Agaram d1b94adc39 5918 2020-01-26 15:05:12 -08:00
Kartik Agaram 5b4f4d63bd 5917 2020-01-22 23:47:33 -08:00
Kartik Agaram e4dec37372 5916 2020-01-22 23:47:24 -08:00
Kartik Agaram e2d73d037c 5915 2020-01-21 00:58:34 -08:00
Kartik Agaram 6c8642f647 5914 2020-01-21 00:46:48 -08:00
Kartik Agaram 6915c2774c 5913 2020-01-20 03:14:26 -08:00
Kartik Agaram f833e0a0e7 5912 2020-01-20 03:09:06 -08:00
Kartik Agaram 73e6c9a389 5911 - support for compound types 2020-01-20 03:09:01 -08:00
Kartik Agaram 75bb5e4ab1 5910
Trace browser: Don't let the background color get too light, and cycle
back to darker shades so I'm not squinting at low depths.
2020-01-20 02:58:31 -08:00
Kartik Agaram 9ed9188a39 5909
Draft 5.
2020-01-20 02:42:08 -08:00
Kartik Agaram ad1b89e280 5908
Now parse-type passes, but some outer test is failing. The result is not
being consumed right by `type-equal?`.
2020-01-20 02:27:07 -08:00
Kartik Agaram efd3681e19 5907
Draft 3.

Getting close. Now the tree structure seems right.
2020-01-20 02:21:56 -08:00
Kartik Agaram cad99482cc 5906
Draft 2.
2020-01-20 02:08:12 -08:00
Kartik Agaram f5387ede3a 5905
Draft of my first, incorrect attempt at parsing s-expressions.

No matter how many times I've done this, I never get it right the first
time.
2020-01-20 01:51:01 -08:00
Kartik Agaram 41e4cfc33f 5904 2020-01-19 23:38:06 -08:00
Kartik Agaram 33258e0ad2 5903 2020-01-19 21:58:32 -08:00
Kartik Agaram bd92759047 5902 2020-01-19 20:43:24 -08:00
Kartik Agaram 1008059f1f 5901 2020-01-19 17:55:59 -08:00
Kartik Agaram b89ce8e455 5900 2020-01-19 17:53:06 -08:00
Kartik Agaram ab837e8f6c 5899 2020-01-19 17:52:25 -08:00
Kartik Agaram 622f1be099 5898 - strengthen slice-empty? check
Anytime we create a slice, the first check tends to be whether it's empty.
If we handle ill-formed slices here where start > end, that provides a
measure of safety.

In the Mu translator (mu.subx) we often check for a trailing ':' or ','
and decrement slice->end to ignore it. But that could conceivably yield
ill-formed slices if the slice started out empty. Now we make sure we never
operate on such ill-formed slices.
2020-01-19 17:37:11 -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 5a6601aba9 5896 2020-01-16 18:10:42 -08:00
Kartik Agaram 01e88c8833 5895 2020-01-16 18:10:42 -08:00
Kartik Agaram 675fa93ded 5894 2020-01-16 18:10:42 -08:00
Kartik Agaram c504ca5661 5893 2020-01-14 01:52:54 -08:00
Kartik Agaram 5c368edcb2 5892 2020-01-14 01:52:54 -08:00
Kartik Agaram 564ced70fd 5891 2020-01-14 01:52:54 -08:00
Kartik Agaram 928f71d294 5890 2020-01-14 01:52:54 -08:00
Kartik Agaram 8fa32599bb 5889 2020-01-14 01:52:54 -08:00
Kartik Agaram 468d8bb9b2 5888 2020-01-14 01:52:54 -08:00
Kartik Agaram 51858e5d46 5887 - reorganize library
Layers 0-89 are used in self-hosting SubX.
Layers 90-99 are not needed for self-hosting SubX, and therefore could
use transitional levels of syntax sugar.
Layers 100 and up use all SubX syntax sugar.
2020-01-14 01:52:54 -08:00
Kartik Agaram 730e689467 5886 2020-01-12 21:30:29 -08:00
Kartik Agaram 271f26d791 5885
Finalize design for type trees.
2020-01-12 20:25:11 -08:00
Kartik Agaram fa786ea791 5884 2020-01-12 14:52:07 -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 e064f1bbfd 5882 2020-01-10 10:35:48 -08:00
Kartik Agaram 194d100792 5881 2020-01-10 10:35:17 -08:00
Kartik Agaram 0bcfe6e5cf 5880 2020-01-10 10:35:17 -08:00
Kartik Agaram a5010b1b37 5879 2020-01-10 10:35:13 -08:00
Kartik Agaram 2f899b3b2c 5878
The current prototype doesn't really use floating point; drop the
guardrails there.
2020-01-03 22:12:28 -08:00
Kartik Agaram 68071dca1e 5877 2020-01-03 02:17:53 -08:00
Kartik Agaram 7e7a8a6eae 5876 - address -> addr 2020-01-03 01:36:34 -08:00
Kartik Agaram c9bda4d13e 5875 2020-01-02 15:23:01 -08:00