Torsten Ruger
6f9955a726
more auto guard rules
...
and related renaming of files
2016-12-16 01:14:09 +02:00
Torsten Ruger
516bbd10b7
little fat of meta class
...
meta is firmly in the ruby world, not implemented in type world
2016-12-16 00:57:10 +02:00
Torsten Ruger
f7e01ff05e
remove the value class
...
more of an idea, had no impact on implementation
2016-12-16 00:56:25 +02:00
Torsten Ruger
fd519314cb
strip down compare instruction
...
not really used, using conditional branches instead.
(in arm any instruction can execute conditionally)
2016-12-16 00:41:37 +02:00
Torsten Ruger
ed0900df7f
extracting to_s from getter and setter
2016-12-16 00:30:26 +02:00
Torsten Ruger
bc22c40101
Get Byte interpreter test
2016-12-15 22:15:58 +02:00
Torsten Ruger
886220d388
remove unused variable class
2016-12-15 19:43:53 +02:00
Torsten Ruger
dc56274940
refactor also building word
...
obviously created by copy/paste, more refactoring possible
2016-12-15 19:31:39 +02:00
Torsten Ruger
5ea6bfed27
refactor builtin object, some machine too
2016-12-15 19:20:54 +02:00
Torsten Ruger
94c423c2b3
whittling arm_translator
2016-12-15 18:21:08 +02:00
Torsten Ruger
e2c006b5ad
minor
2016-12-15 18:08:55 +02:00
Torsten Ruger
884bf23e5f
fix elf test
2016-12-15 17:57:45 +02:00
Torsten Ruger
1571c796bb
remove unused from type
2016-12-15 14:00:34 +02:00
Torsten Ruger
2b3f9c398e
add find method to indexed
2016-12-15 14:00:03 +02:00
Torsten Ruger
b93f207638
some common instruction extration
2016-12-15 12:38:22 +02:00
Torsten Ruger
fdefb8e7a5
more refactoring on compare
2016-12-15 12:38:03 +02:00
Torsten Ruger
ec2b0a563e
bunch of method extraction on instructions
2016-12-14 21:53:26 +02:00
Torsten Ruger
55c108a8d7
refactor move_instruction a bit
2016-12-14 21:13:41 +02:00
Torsten Ruger
b3eeb7db21
memory instruction refactor (small)
2016-12-14 21:05:24 +02:00
Torsten Ruger
6eea3f2b2a
refactor logic instruction
2016-12-14 20:31:37 +02:00
Torsten Ruger
c1d23a8d48
whitespace round plusses
2016-12-14 19:57:09 +02:00
Torsten Ruger
27e7a362db
comment unused code
2016-12-14 19:52:08 +02:00
Torsten Ruger
56bf875f36
refactor call_instruction
2016-12-14 19:07:03 +02:00
Torsten Ruger
bf4ddd16ee
remove dead code
2016-12-14 19:06:48 +02:00
Torsten Ruger
456e9b1ec0
folded salama-arm in
2016-12-14 13:43:13 +02:00
Torsten Ruger
9a0e2bcb11
typed methods now for type only
2016-12-14 13:24:42 +02:00
Torsten Ruger
b3a9d8b1bc
register and boot consequences of typed method
2016-12-14 13:23:46 +02:00
Torsten Ruger
021fab31db
small things
2016-12-14 13:22:47 +02:00
Torsten Ruger
bd875be023
move typed method's home to type
...
class should in the future have ruby_methods
2016-12-14 13:21:55 +02:00
Torsten Ruger
012b5d683c
change method locals to type object too (same as args)
2016-12-13 19:18:17 +02:00
Torsten Ruger
16b3a77350
fixes from the method argument change
...
Affects
method creation
argument manipulation
compiler / to_code
2016-12-13 18:49:45 +02:00
Torsten Ruger
c346260bde
change method arguments to be a type instance
...
where is was a list of variables (half baked)
variables also having values (not applicable)
2016-12-13 18:47:44 +02:00
Torsten Ruger
1c28926c6b
improve type tests
2016-12-13 18:46:03 +02:00
Torsten Ruger
357490ff5f
add little bit docs
2016-12-13 11:02:53 +02:00
Torsten Ruger
17023fdeb1
rename method to typed_method
2016-12-12 23:38:55 +02:00
Torsten Ruger
4ff684b6a4
even more refactoring for assembler
2016-12-11 16:48:01 +02:00
Torsten Ruger
fffe814205
more assembler refactor
2016-12-11 16:12:39 +02:00
Torsten Ruger
90a808b1c5
assebler refactor
2016-12-11 14:48:12 +02:00
Torsten Ruger
6bb23eac56
small interpreter refactor
2016-12-11 14:19:24 +02:00
Torsten Ruger
e479b00b29
introduce base class for get_slot and get_byte called getter
2016-12-11 14:12:35 +02:00
Torsten Ruger
ef285a146f
add abstract base class for set_byte and set_slot called setter
2016-12-11 14:06:09 +02:00
Torsten Ruger
1dbd8c86e0
remove parslet dependency
2016-12-11 14:05:43 +02:00
Torsten Ruger
f3248462cc
remove references to soml
2016-12-11 12:55:03 +02:00
Torsten Ruger
3715eb94ed
uncomment unused code for now
2016-12-11 12:18:11 +02:00
Torsten Ruger
b6fdb51ed1
fix statement list compilation
2016-12-11 12:13:42 +02:00
Torsten Ruger
661911de0a
comment unused fluff
2016-12-10 23:45:24 +02:00
Torsten Ruger
e82c86f6c1
fix class def tests and code
2016-12-10 22:41:49 +02:00
Torsten Ruger
6d4347c7ba
finish assignment tests
...
and related code fixes
2016-12-10 18:48:18 +02:00
Torsten Ruger
f49b0c7356
fix assignment
...
tests paying off
2016-12-10 18:08:21 +02:00
Torsten Ruger
87693112d4
small fix
2016-12-10 18:07:38 +02:00
Torsten Ruger
4054b61752
fix more expression tests
2016-12-10 15:18:37 +02:00
Torsten Ruger
de5d87cde7
add basic compiler expression tests (back)
2016-12-10 04:01:47 +02:00
Torsten Ruger
5c2f545f8e
tests for ast to code converter
2016-12-10 03:43:44 +02:00
Torsten Ruger
29fb2a50f5
refactor while statement
2016-12-09 14:29:06 +02:00
Torsten Ruger
da4a1af074
modulize return and list
2016-12-09 14:19:22 +02:00
Torsten Ruger
99132a92b6
modulize operator_expression
2016-12-09 14:17:01 +02:00
Torsten Ruger
037fd722df
clean up function definition, now function statement
2016-12-09 14:12:41 +02:00
Torsten Ruger
059fb38f08
modulize field_access and field_def
2016-12-09 14:04:06 +02:00
Torsten Ruger
4da13c3867
move ast to tree, remove seperate helper file
2016-12-09 13:56:13 +02:00
Torsten Ruger
bab2fe32df
modulize class_field and class_statement
2016-12-09 13:46:26 +02:00
Torsten Ruger
2b008dd3da
modulize basic_value
2016-12-09 13:40:10 +02:00
Torsten Ruger
fa14e35a50
refactor if_statement
2016-12-09 13:38:07 +02:00
Torsten Ruger
1e7093c63f
remodel assignment a bit
2016-12-09 13:20:48 +02:00
Torsten Ruger
395fd2d701
refoactor call site some
2016-12-09 12:22:37 +02:00
Torsten Ruger
224670e449
refactor name expression for compiler
2016-12-09 12:13:33 +02:00
Torsten Ruger
ca4bdcc528
gets rid of soml-parser completely
2016-12-08 20:13:08 +02:00
Torsten Ruger
e2236cf703
move soml ast here, now called type as the language is going
2016-12-08 19:38:50 +02:00
Torsten Ruger
da553f996f
move compiler to typed
...
starting to get rid of soml, bit by bit
2016-12-08 15:25:20 +02:00
Torsten Ruger
c3a28d2abc
small collector change
2016-12-08 15:19:37 +02:00
Torsten Ruger
a31f75fe93
basic immutability for type
...
add_instance_variable now uses global type list to check
adds hash and to_has functions
use backdoor (send) for booting
2016-12-08 12:50:25 +02:00
Torsten Ruger
137d3c9231
add each_with_index to indexed
2016-12-08 12:48:39 +02:00
Torsten Ruger
ad91c0a4bf
add inspect method to dictionary
2016-12-08 12:48:08 +02:00
Torsten Ruger
2741f35380
add a each_pair to indexed and use in types
2016-12-07 23:35:51 +02:00
Torsten Ruger
266a04040b
add types hash to space
2016-12-07 23:34:45 +02:00
Torsten Ruger
bcba3ed3b2
move parfait to new module
2016-12-06 16:50:54 +02:00
Torsten Ruger
3ed0c4829a
log test
2016-12-06 16:44:04 +02:00
Torsten Ruger
adca8b21c1
move soml tests out, small cleanup
2016-12-06 15:08:29 +02:00
Torsten Ruger
5ac14ddccc
update gems and fix tests
2016-12-06 12:08:18 +02:00
Torsten Ruger
4b05b48197
some docs
2016-12-06 11:38:09 +02:00
Torsten Ruger
229f5896c6
update to use new ast
...
soml was updated to have a typed ast layer to make programatic creation
easier
this brings LOTS of syntax change with it, that does not really mean
anything at all
All tests pass again so back to the same
2016-03-07 11:55:28 +02:00
Torsten Ruger
d7b210d63a
update parser
2016-03-06 10:48:14 +02:00
Torsten Ruger
a8b815117f
rename object_type to instance_type
...
for better distinction that it is not every object
but only instances of the class
2016-02-25 12:16:13 -08:00
Torsten Ruger
278d71b56c
fix docs for rename
2016-02-25 12:03:11 -08:00
Torsten Ruger
d32b51c67b
rename layout to type
...
this one goes to caleb for pointing it out.
Much better word
2016-02-25 11:50:10 -08:00
Torsten Ruger
3480b97eaa
rename variable type to value_type
...
in preparation for next rename
2016-02-25 11:41:03 -08:00
Torsten Ruger
afe16868b5
more some tests
2015-11-30 16:10:08 +02:00
Torsten Ruger
dc560aaa5e
move main to space
2015-11-30 16:09:12 +02:00
Torsten Ruger
d0b655d05f
implement the div10 as assembler
...
easy after the some version worked
because it’s not arm it probably twice as long as need be
better (any?) optimisation would take care of that
still, nice to see it works
2015-11-21 14:20:25 +02:00
Torsten Ruger
ffc69fd2a5
add the hackers delight version of div10
...
better test too
remove remnants of 64bit multiplication
2015-11-21 14:19:07 +02:00
Torsten Ruger
91a0365c2e
fix register shortcuts
2015-11-21 14:17:54 +02:00
Torsten Ruger
96972dab29
thats most of the benchmarking
...
strange about the puts in soml, hard to see where a factor of 10 would
come from
2015-11-20 23:51:58 +02:00
Torsten Ruger
da4003c30a
ruby fibs versions and tests for them
2015-11-20 19:12:58 +02:00
Torsten Ruger
02d9a063b0
fix both parfait words to have same indexing
2015-11-20 13:25:49 +02:00
Torsten Ruger
aabde4b9a6
fix word indexes on arm
...
which affected offsets in the ruby side too
the hidden dead word needed accounting for
2015-11-19 16:40:00 +02:00
Torsten Ruger
a8453c126d
use arm shift at runtime
...
arm indexes are in bytes (x4) at compile time
but at runtime we only have the array indexes, iw word indexes
arm has the nice barrel shifter to save us an extra instruction
2015-11-19 12:48:13 +02:00
Torsten Ruger
4871a52d37
better error reporting for parser
2015-11-19 10:10:13 +02:00
Torsten Ruger
249f43ad34
translate and interpret new instructions
2015-11-19 10:09:55 +02:00
Torsten Ruger
ac5a7ac4ca
making parfait (both) use the new byte functions
2015-11-19 10:09:24 +02:00
Torsten Ruger
dffa3fbf42
adding word functions for byte access
2015-11-19 10:08:41 +02:00
Torsten Ruger
ff65952a3e
add get/set byte instructions
...
it seems all cpus have them anyway so best use them
it was a pain to do this on word level, hard to write, hard to debug and
quite unnecessarily slow
2015-11-19 10:07:27 +02:00