7006c8e3aa
fix remaining tests
...
rename ripples
2018-06-29 22:56:49 +03:00
c8451d0048
create rubyx dir and move previous vool_compiler there
2018-06-29 22:46:39 +03:00
63dd6d9039
moved statements up one dir
2018-06-29 22:46:00 +03:00
7377522417
fix test ripples and minor parfait naming
...
Parfait ruby and boot names desynced, fixed that
2018-06-29 21:03:06 +03:00
ae35fed0ab
fix list to expand
...
prevously fixed max length list
now expanding on demand, using next
quite like binary_code, a pattern is emerging
2018-06-29 20:58:59 +03:00
5036dd68df
remove to_mom from ruby_to_vool
...
must have slipped in
affects mosty tests
2018-06-29 14:57:48 +03:00
6bd01fd55f
rename method_compiler
...
in line with other compiler XX_Compiler being the compiler for that layer
remove type from compiler as it is in method available
2018-06-29 14:48:52 +03:00
114dc95b60
move parfait boot into parfait
...
and out of risc
2018-06-29 14:36:11 +03:00
e6f01748ff
move adapter stuff around
2018-06-29 14:26:25 +03:00
86b1edb40c
add seperate builders
...
remove if with polymorphism for different builders
(easier to understand by naming)
2018-06-29 13:27:57 +03:00
3dffebed3f
rename a bit
2018-06-29 13:03:19 +03:00
d50893bb0f
rename risc_value to register_value
...
almost to register, but it still carries that value
2018-06-29 11:39:07 +03:00
606c7bf906
remove booted flag
...
just boot if needed
2018-06-29 11:36:14 +03:00
f1b09ac58d
move builtin boot to builtin module
2018-06-29 11:23:26 +03:00
75507c69b4
bundle update
2018-06-28 20:17:38 +03:00
18994d2b4b
start on yield statement
2018-06-28 20:15:24 +03:00
2e086a78e2
bit of refactoring
2018-06-27 17:09:50 +03:00
f0ba863721
remove to_mom / create_objects dichotomy
...
wsa supposed to be clearer, but even to me seems confusing now.
2018-06-26 20:46:58 +03:00
c6a903073a
start on blocks
2018-06-26 20:28:27 +03:00
4103da7490
small test fixes
2018-06-25 20:21:15 +03:00
67a6ef9f67
add rewriting of operator assignment
...
foo += 1 becomes foo = foo + 1 in vool
2018-06-25 16:32:20 +03:00
70d7e654c4
only check object file creation in efl
...
remote execution only per request
2018-06-25 00:39:13 +03:00
b804be5f70
fix dynamic call
...
which had the method in the regsiter, not the binary.
Single SlotToReg added (and some tests)
Which amazingly fixed all broken binary tests
2018-06-25 00:19:43 +03:00
068bda492c
implement DynamicJump for Arm
...
which is in fact the same as return (moving address into pc)
2018-06-24 19:13:55 +03:00
f83f52faa0
reusing ssh instance for arm
...
some speedup , but hoped for more
2018-06-24 17:44:02 +03:00
c8a903cd83
adds arm testing of same files
2018-06-24 17:10:39 +03:00
ae976c8fb9
generate mains test methods according to file name
2018-06-24 16:48:23 +03:00
8d369dbfa1
automate mains test more
...
move sources and include exit code and stdout in filename
2018-06-24 13:37:36 +03:00
563ed4647a
extract the ruby from mains tests
...
move up in directory
in preparation for arm tests
2018-06-24 11:56:10 +03:00
87be6bf9d5
add automated arm tests
2018-06-23 15:58:43 +03:00
ce79617875
fix the exit sequence
...
was returning wrong register (1, not 0)
also saving the message for test, which changes order as the return value destroys the message
2018-06-19 19:52:06 +03:00
5f7683efcf
pass return integer back out through exit
...
for testing of binaries later (and off course general correctness)
Some tests were using the fact that the interpreter was used, changed those to return ints rather than strings
2018-06-19 18:55:47 +03:00
db459fcd3d
fix label loading in arm
...
was still loading the integer address
instead of the return address's address
Hello World working
2018-06-19 17:35:00 +03:00
956c2ebe54
make arm use branch_lsteners
2018-06-19 10:51:03 +03:00
9fc7f9b528
fix arm write syscall
2018-06-19 10:49:53 +03:00
046617f8dc
add branch listener functionaliy
...
have to store the branches and loop again as labels
dont neccessarily have positions yet
2018-06-17 22:25:38 +03:00
3298651238
split create_binary into two phases
...
Which gives instructions a chance to check everything
and in Arms case check the constant loads/ instruction adding
So that during assembly no more change happens (and we don't have to reassemble)
2018-06-17 13:53:17 +03:00
c94f6eaa78
small maintanance
2018-06-16 21:01:15 +03:00
7543236f4f
objects didn't get positions
...
positions.empty? was wrong check
2018-06-16 10:58:54 +03:00
698c845297
seperate position create and register
...
many test fixes
2018-06-15 22:00:49 +03:00
9c93b38b8f
crete positions while collecting objects
...
clear two phase lifecycle for positions
always created invalid and set later
new does not auto add to cache
but create and get_or_create do
2018-06-15 21:54:21 +03:00
2c765c8f14
rename the objects accessor
...
and move to object keys, not object_id
2018-06-15 09:18:39 +03:00
3cc9175efa
start BranchListener
...
but on hold, since it needs positions before we have them
Must create them during collection phase
2018-06-14 21:29:34 +03:00
eaaf61c117
fix position test
2018-06-14 21:19:22 +03:00
5ec235d049
fixes outstanding misc, All green
...
Well. it's been a while, positioning is fixed (again)
apart from the upcoming BranchListener
2018-06-10 13:19:55 +03:00
e1683938ed
fix label positioning bug
...
where a label at the end of a binary code resulted in the
label actually taking up a position, instead of sharing it with it's next
2018-06-10 13:18:56 +03:00
0513cd504f
update return address in label
...
so return jumps go to the right address
2018-06-10 09:15:57 +03:00
c7ad1d98ca
introduce the LabeListener to move instructions along when first code position changes
2018-06-09 22:13:43 +03:00
ec1d38f5a6
reimplement instruction listeners with indexes
...
easier to understand, as indexes map to Binarycode indexes, and can thus later be used to assemble directoy into the code
Almost no change in tests (now only multiples of 4 addresses allowed)
2018-06-09 17:41:39 +03:00
cf94227b2c
fix code init bug
...
where initial pos wasnt propagated
2018-06-09 09:16:23 +03:00