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
Torsten Ruger
5369dc3d52
rename get/set internal
...
to _word , because _byte versions are coming
2015-11-18 15:36:43 +02:00
Torsten Ruger
979660f282
move parfait into register
...
register layer uses parfait models to generate object space
so parfait should be part of register (not above it)
2015-11-18 12:04:25 +02:00
Torsten Ruger
2bc2d4486f
move interpreter to register
...
seems more where it belongs, since it interprets the register machine
instructions
2015-11-18 12:00:30 +02:00
Torsten Ruger
40d81681b5
move parfait adapter into parfait ruby
...
in the future parfait will be coded in some and translated back into
ruby to “adapt”
until then, all ruby code is the adapter
2015-11-18 11:55:29 +02:00
Torsten Ruger
0643b96641
update arm
...
and small code changes from the fact that just loading a variable does
not change status flags
2015-11-17 02:28:47 +02:00
Torsten Ruger
303b7eb1f8
putstring unfolds length
...
which means sys call doesn’t need to
and also interpreter sometimes gets a symbol length
2015-11-16 18:03:29 +02:00
Torsten Ruger
f50d7b57a4
fix the putstring sys call indexing
...
index 0 is the marker word , so like in some, all indexes 1 based
works :-)
2015-11-15 22:03:06 +02:00
Torsten Ruger
8e82da0b61
fix arm (assembled) indexing
...
by having a dummy 0 index in salaam. when assembled
2015-11-15 20:42:07 +02:00
Torsten Ruger
9a2fe42167
change assembly order
...
first objects, then methods.
methods change length, so at least this way objects stay
did mean hacking the arm code (something for later)
2015-11-15 16:24:43 +02:00
Torsten Ruger
458610b970
implement string length
2015-11-15 11:28:16 +02:00
Torsten Ruger
1633bf1289
fix position check
...
as programs get bigger the distance gets bigger
needs better approach
2015-11-15 00:38:23 +02:00
Torsten Ruger
9602acf3d2
fix label positions
2015-11-15 00:36:15 +02:00
Torsten Ruger
cea60f202a
small label changes
2015-11-15 00:35:43 +02:00
Torsten Ruger
b30cf21bbd
fix arm indexes
...
needs rethought
fixed for static use, but what about dynamic
2015-11-15 00:35:12 +02:00
Torsten Ruger
cc9b515752
fix double label names
2015-11-14 22:53:01 +02:00
Torsten Ruger
278eccbed5
derive binary code form word
...
long ago hacked the binary code to use integers (thus forsaking correct
arm binaries)
Finally fix by deriving from Word which now has correct binary access
Dumped binary.name in the process, that is available from the method
2015-11-14 15:04:04 +02:00
Torsten Ruger
8fa92515b5
update arm and small arm fixes
...
constants in arm chunks, needs better solution
2015-11-14 13:05:49 +02:00
Torsten Ruger
dbcd39c277
helper do get the register no as int for arm
2015-11-14 00:22:23 +02:00
Torsten Ruger
6e7c6d814a
long const avoidance
...
arm can only load 10 bits and some funny logic
so for now avoid big fffffff const
2015-11-14 00:21:24 +02:00
Torsten Ruger
6127d92ca9
implement arm branches
...
which backfired into interpreter as
plus actually means 0 or plus in arm
may still change back but for now
2015-11-14 00:20:03 +02:00
Torsten Ruger
9ab3de234d
some helper functions
...
for when i started the assembler div10
in the end i did the div10 in some, so no need
2015-11-13 20:47:08 +02:00
Torsten Ruger
4a8bb32039
serious bit fiddling, div10 using shift magic
...
forgot that arm has no division (or respectively only later models have)
many magic formulae out there, none seem to work 1000% on the
interpreter. some big 0 ending numbers are 1 off.
2015-11-13 20:46:27 +02:00
Torsten Ruger
f779b5d15f
fix interpreter to simulate 32 bit machine
2015-11-13 20:31:35 +02:00
Torsten Ruger
5c862111b9
remove div and add div10
...
general division is for another day, the 10 version is manageable
also same code produces mod10
wip
2015-11-12 20:03:57 +02:00
Torsten Ruger
a5afca10f6
don't pass machine around, its global
2015-11-12 20:02:44 +02:00
Torsten Ruger
6f0d6d831e
update arm and implement most operators
...
multiplication wasn’t implemented
and division isn’t part if arm
neither is rotate by register
2015-11-12 20:02:14 +02:00
Torsten Ruger
787f727974
simplify i to_s
2015-11-11 20:45:40 +02:00
Torsten Ruger
6137833140
change args argument to create method to be hash
...
was array and didn’t carry types and names
2015-11-11 20:41:02 +02:00
Torsten Ruger
351a747bfd
mod and div for int
2015-11-11 20:36:40 +02:00
Torsten Ruger
1e7935bf85
implement byte access for some word
...
wouldn’t have been possible without the ruby version
2015-11-11 20:36:07 +02:00
Torsten Ruger
9bfc9cf6c2
implementing missing operators
2015-11-11 20:34:49 +02:00
Torsten Ruger
d870553a1f
make ruby word byte size
...
was hacked as int
interestingly zero change to tests
2015-11-11 19:11:08 +02:00
Torsten Ruger
93ff44bb6f
improve reinit of interpreter
2015-11-10 19:28:31 +02:00
Torsten Ruger
1efa36ed4f
string sometimes gets to_s in equal while half cooked
...
during debugger register change or update to be precise.
without the debugger there would be no access to the word
at that point and no need for this hack
2015-11-10 19:16:38 +02:00
Torsten Ruger
daffa0579e
another opal hack
...
in opal 13 / 10 = 1.3 whereas in ruby its 1
2015-11-10 19:10:11 +02:00
Torsten Ruger
c92814440f
fix integer to_s and put, with tests
2015-11-10 19:09:17 +02:00
Torsten Ruger
760a4beb86
fix some word with tests
2015-11-10 19:08:48 +02:00
Torsten Ruger
6c2ce66bfc
fix old warning
2015-11-10 11:48:53 +02:00
Torsten Ruger
a730dd0c99
fix some, return missing
...
must write no return error code
2015-11-09 23:29:35 +02:00
Torsten Ruger
70f912f94c
allow message as keyword to access current message
...
the ultimate in meta-programming
2015-11-09 23:29:14 +02:00
Torsten Ruger
a20f1570ee
temporary word hack to make it look liked indexed
2015-11-09 23:28:40 +02:00
Torsten Ruger
5d80c38c87
correct register types
2015-11-09 23:28:10 +02:00
Torsten Ruger
9ab7b476d5
opal fix and minor
2015-11-09 23:27:15 +02:00
Torsten Ruger
368263d5a5
rewrite of field access using on_name
...
much cleaner and revealed a bug
2015-11-09 23:26:37 +02:00
Torsten Ruger
dd7973875c
fix interpreter to handle registers in set
2015-11-09 23:25:34 +02:00
Torsten Ruger
9075f1af37
fixes yet another order dependant bug in the test (not the code)
2015-11-09 10:04:37 +02:00
Torsten Ruger
b2de1c6d79
minor fixes
2015-11-08 23:58:54 +02:00
Torsten Ruger
f746218765
reinstate word creation and use for strings
...
so string constants become words, so we can fiddle with them
2015-11-08 23:58:35 +02:00
Torsten Ruger
c8fa5238ee
stdout word too
2015-11-08 23:57:38 +02:00
Torsten Ruger
6b9c472bec
refactor load_parfait
...
so debugger can grab and wire it easily
2015-11-08 18:35:10 +02:00
Torsten Ruger
6f69995284
stab at inter to string
...
wip
2015-11-08 17:11:03 +02:00
Torsten Ruger
c38775e933
add set_internal
...
and the set_slot with register
very much like the get_slot for get_internal
2015-11-08 17:10:36 +02:00
Torsten Ruger
64d99d5e68
didn't need big decimal require
2015-11-08 15:18:39 +02:00
Torsten Ruger
d6108e7b3a
fix interpreter overflow issue
...
flag set for bigness, result reduced
tests for + and *
fixed fibs tests
2015-11-08 15:15:55 +02:00
Torsten Ruger
6ea698d397
save some to_s code
2015-11-08 14:30:42 +02:00
Torsten Ruger
37564d9c2e
implement message pseudo variable (like self)
...
too easy
also simplified some tests
2015-11-08 13:55:38 +02:00
Torsten Ruger
69918c8e88
add some message and remove fields
...
those fields are already present in the classes
(in the future they should be defined in some and integrated to ruby,
but that would mean parsing to boot and parsing doesn’t yet work on
opal)
2015-11-08 13:54:58 +02:00
Torsten Ruger
502cfa357d
implement and test field access
2015-11-08 13:39:13 +02:00
Torsten Ruger
b443103ea4
using class fields
...
instead of internal_get
2015-11-08 01:02:47 +02:00
Torsten Ruger
9fd7c79cfb
mixed up class and meta, fixed
2015-11-08 00:55:10 +02:00
Torsten Ruger
bcc366f8fd
bit more soml
2015-11-08 00:54:47 +02:00
Torsten Ruger
3e4dcd35c7
better no method no super handling
...
also revealed bug in booting
2015-11-08 00:54:24 +02:00
Torsten Ruger
5ddc96718b
slight call logic modification
...
simplification, new model is such that the upon start the method:
has a message in r0, works on it and returns to the return address.
Everything else is up to the caller
2015-11-07 21:59:39 +02:00
Torsten Ruger
f2c7ed827d
simplify the __init
...
admittedly more source code, but half the runtime
mainly just using message (not new)
made possible by call sequence change
2015-11-07 21:58:19 +02:00
Torsten Ruger
2315ad6920
minor cleaning
2015-11-07 21:55:04 +02:00
Torsten Ruger
8c68ffc7a4
fixing indexes makes test work
...
forgot my own rule: all parfait works in 1 based lists
2015-11-07 20:10:55 +02:00
Torsten Ruger
a1aa6b58ac
resolve methods, don't just get them
...
i.e. down the ladder we go
2015-11-07 19:39:15 +02:00
Torsten Ruger
7523bac80a
add layout and class accessor and test
2015-11-07 19:38:52 +02:00
Torsten Ruger
484e2d19d4
allow for registers in get slot
2015-11-07 19:38:03 +02:00
Torsten Ruger
1d07c1fb95
fix super class with name mixup
2015-11-07 19:37:38 +02:00
Torsten Ruger
37928b8591
rename internal get/set functions
...
mainly because the salaam parser chokes on internal…
2015-11-07 17:40:59 +02:00
Torsten Ruger
50b03a5e94
load parfait soml files
...
No dir glob for precise order
2015-11-07 17:38:27 +02:00
Torsten Ruger
d878ce00d8
framework for parfait runtime testing
...
with interpreter for now
later with arm exec support
2015-11-07 17:37:41 +02:00
Torsten Ruger
708cdace17
implement indexed object access
...
one of the few functions that can’t be coded
(or the design specifically is such that it can’t, in c it would be
self[index],
or, worse *(self + index) )
2015-11-07 17:36:28 +02:00
Torsten Ruger
35afe88ede
allow get_slot with two registers
...
before was register and number, but for runtime that doesn’t work
2015-11-07 17:34:41 +02:00
Torsten Ruger
9ebe28450b
add global variable space
...
could in the long run move spaces functionality to the class
and since the class is global anyway, wouldn’t need this
2015-11-07 12:19:04 +02:00
Torsten Ruger
fd7e4afb2f
small meta related changes
2015-11-07 00:14:10 +02:00
Torsten Ruger
46e1a112ab
metaclass moves down to object
2015-11-07 00:12:17 +02:00
Torsten Ruger
204200b92a
metaclass is back
...
this time with a real purpose and implementation as the intermediary
As the interface to the layout and for replacing an edited layout
2015-11-07 00:11:56 +02:00
Torsten Ruger
ebcc15d314
testing fibo
2015-11-06 14:24:57 +02:00
Torsten Ruger
4eb3d9029a
use logger
2015-11-05 16:50:00 +02:00
Torsten Ruger
13d0747b45
test the log_level too
2015-11-05 14:05:12 +02:00
Torsten Ruger
aad50021fe
more messages for recursive fibs
2015-11-05 12:23:11 +02:00
Torsten Ruger
4014ad27fe
fix and test return
...
return was in the wrong message
better tests now
2015-11-05 12:22:48 +02:00
Torsten Ruger
ff759bf0c1
increase message size
...
message size is somewhat like stack size,
but 1-1 related to how deep it can be, now 50 calls
2015-11-05 12:12:15 +02:00
Torsten Ruger
642dcb065a
fix while statement
...
logic was broken, or inversed
had to lay the code out a bit funny, but it works and makes sense
2015-11-04 20:23:26 +02:00
Torsten Ruger
ab2c73f42c
right name for return label makes interpreter work
2015-11-04 20:22:28 +02:00
Torsten Ruger
691ae96d71
fix names of branch codes
...
also store objects in register, avoid the whole object_id thing which
just lead to unclarity about class
2015-11-04 20:22:03 +02:00
Torsten Ruger
428faad25f
opal fix for indexes
2015-11-04 16:11:25 +02:00
Torsten Ruger
b5e733cd11
finally simple logging
...
instead of commenting puts
2015-11-04 11:48:51 +02:00
Torsten Ruger
2236065d02
position filling after the padding changes, works again
2015-11-04 10:34:58 +02:00
Torsten Ruger
c87682b77f
fix padding
...
used to be that type and layout were hidden
now type is gone and layout is an explicit instance, so 0 overhead
2015-11-04 10:34:03 +02:00
Torsten Ruger
5bddbfbb62
rename word_length to padded length
...
with word_length i was never sure if it was the padded version or not
2015-11-04 10:33:10 +02:00
Torsten Ruger
6ada815735
first stab at fixing the assembly
...
lots of length fiddling
wip
2015-11-03 16:24:12 +02:00
Torsten Ruger
0f8f0a681c
fix padding to only consider layout (1 word)
2015-11-03 16:22:50 +02:00
Torsten Ruger
ca1dc36e3d
method marking for labels
2015-11-03 16:22:24 +02:00
Torsten Ruger
6882f39645
fixing lengths
2015-11-03 16:21:50 +02:00
Torsten Ruger
c15445a958
let labels be constants
2015-11-03 16:20:25 +02:00
Torsten Ruger
5a8d7d313f
little more tests
2015-11-03 11:23:15 +02:00
Torsten Ruger
c940e25f91
other half of previous call change
2015-11-03 11:22:52 +02:00
Torsten Ruger
1be5d1862f
need to collect labels for return
...
so the interpreter can find the object
2015-11-03 11:22:26 +02:00
Torsten Ruger
bc414fd3e8
function call now saves the return address before calling
...
that means SaveReturn is obsolete (breaks loads of tests)
first step towards multi - return which obviously can not have the
callee save return address.
In fact this would make FunctionCall redundant too, as it is really
just a branch
2015-11-03 11:20:49 +02:00
Torsten Ruger
cffbc91821
fix field_def to new syntax
2015-11-02 21:27:37 +02:00
Torsten Ruger
45bd4bfdc6
remove save return
2015-11-02 20:11:12 +02:00
Torsten Ruger
ddb1df7362
start to fix the link issue
...
that came from removing SaveReturn
2015-11-02 20:10:48 +02:00
Torsten Ruger
86b0030f15
refactor on_call
2015-11-02 17:32:21 +02:00
Torsten Ruger
834266e11e
improve label names a bit
2015-11-01 19:13:40 +02:00
Torsten Ruger
d3a7809746
use . to mark methods
2015-10-30 00:01:28 +02:00
Torsten Ruger
7e24f63327
polish sources
2015-10-29 22:31:28 +02:00
Torsten Ruger
7d7b7ca995
adding types to layout
...
so we can test assignment
2015-10-29 12:45:29 +02:00
Torsten Ruger
e4201143b3
last fixes from source change
2015-10-28 21:40:48 +02:00
Torsten Ruger
e6743c7216
(string) source knockoffs
2015-10-28 21:39:59 +02:00
Torsten Ruger
c426f4a6d5
some of the sources methods belonged to method really
2015-10-28 21:38:52 +02:00
Torsten Ruger
bdb4a40f9c
only string and ast allowed as source
2015-10-28 21:38:23 +02:00
Torsten Ruger
191be8d2f6
use compiler to generate methods and their instructions
2015-10-28 21:37:42 +02:00
Torsten Ruger
99a695907c
move method_source functionality into compiler
...
the source was there long before the compiler (sis language) came along
and was basically doing the same
Much clearer concept with using compiler to generate methods and code
Also move compile method to method
2015-10-28 21:36:41 +02:00
Torsten Ruger
c245272e52
don't export current
2015-10-28 14:37:40 +02:00
Torsten Ruger
ef6cb2a069
use instruction steam from message
...
had been attached there last week, but was still used mainly through
the source (which i’m trying to remove)
2015-10-28 14:33:38 +02:00
Torsten Ruger
72b790c107
remove method source receiver
...
no harm done it seems
2015-10-28 14:24:14 +02:00
Torsten Ruger
e75517ff05
move constants to machine
2015-10-28 13:00:23 +02:00
Torsten Ruger
7e0778dc70
remove return_type
...
soon to be obsolete with multi returns
2015-10-28 12:19:10 +02:00
Torsten Ruger
142c36a374
fix return statement to actually return
...
fix a million tests
2015-10-27 21:04:46 +02:00
Torsten Ruger
79cf59c4e2
still finding index errors
2015-10-27 18:45:56 +02:00
Torsten Ruger
444ad75e1e
some message tests, all ok
2015-10-27 18:08:40 +02:00
Torsten Ruger
bb908dcf76
adding arg length to call sequence
...
and fix all the tests that affects
2015-10-27 16:21:11 +02:00
Torsten Ruger
bd171d091a
fix tests for indexed messages and frames
...
index_length changes index a bit
but from now on changes to layouts should push the index automatically
just have to set the index while calling now
2015-10-27 16:05:50 +02:00
Torsten Ruger
50029711ff
make frame and message indexed
...
also auto generate a replacement for previous offset class method (dry)
2015-10-27 16:04:36 +02:00
Torsten Ruger
fdc7f8b39c
small opal fix
...
the return didn’t work
but couldn’t reproduce in opal try
2015-10-27 12:44:53 +02:00
Torsten Ruger
638c367e00
more class methods
2015-10-26 22:23:06 +02:00
Torsten Ruger
5b7c98f50b
order requires
2015-10-26 22:22:38 +02:00
Torsten Ruger
abaa56fbba
add create_method for layout too
...
as for class, same signature
some more test for behavior
2015-10-26 17:24:28 +02:00
Torsten Ruger
9d0b264b79
minors
2015-10-26 17:23:35 +02:00
Torsten Ruger
a0944266c5
hack weird instantiation bug
...
self.instance_methods is not always set. tried but didn’t find why
any instantiating to circumvent
2015-10-26 17:23:02 +02:00
Torsten Ruger
624699f8ed
minor
2015-10-26 15:14:38 +02:00
Torsten Ruger
55dd5f74fc
fixed layout inspect bug
2015-10-26 15:07:59 +02:00
Torsten Ruger
885aa765d6
still fixing index bugs
...
the indexed_length got written wrong
which is why the layout methods didn’t work
Now all indexes are 1 based, even fake men, where we just ignore 0
2015-10-26 14:33:36 +02:00
Torsten Ruger
9f4952b5ac
create behavior module
...
behavior handles instance methods (add/remove/find)
and shall be included in layout later too
2015-10-26 13:27:56 +02:00
Torsten Ruger
b76c140d32
some class field tests
2015-10-26 13:08:40 +02:00
Torsten Ruger
dc58dbe2fe
little clean
2015-10-26 13:02:08 +02:00
Torsten Ruger
4cadfc9ea9
shortening some methods, removing object prefix
2015-10-26 12:58:38 +02:00
Torsten Ruger
d2c670b31a
fixing offset bug
...
found by tests that overwrite the attribute
2015-10-26 12:57:54 +02:00
Torsten Ruger
1a236aa50e
make binary code indexed (not derive from word)
...
still some work to be done there, as we should really have a byte buffer
2015-10-26 12:24:47 +02:00
Torsten Ruger
96f43dcfda
also giving word it's length
...
still hacked as char per word, but should be easy enough to fix when…
2015-10-26 12:23:52 +02:00
Torsten Ruger
979ebb7612
fixing indexed stuff
...
layout returns layout as first name (offsets indexes)
object internal length is gone into layouts functionality
2015-10-26 12:22:32 +02:00
Torsten Ruger
bb3d211c04
layout moves to 0
...
no more type word, only layout
2015-10-25 20:44:30 +02:00
Torsten Ruger
df62b75c6f
adding an instance for the length of lists
2015-10-25 20:44:03 +02:00
Torsten Ruger
c1ee67038c
internally objects stop changing size
2015-10-25 20:43:13 +02:00
Torsten Ruger
92fe12a0d1
move methods back to the module
...
easier to read and debug
2015-10-25 19:32:36 +02:00
Torsten Ruger
60098257e9
use include so we can test with is_a
...
using the well documented included/extend trick
2015-10-25 19:16:12 +02:00
Torsten Ruger
3318b5026c
externalizing list functionality
...
redefining it with define_method and adding it dynamically to the list
gotta love ruby for it
2015-10-25 18:40:17 +02:00
Torsten Ruger
b7d0ee8f99
wit metaclass and class functions
...
needs to go back to arrays first
2015-10-25 15:40:12 +02:00
Torsten Ruger
0d001ec0fc
rename super_clsas to super_class_name
...
as it should have been
2015-10-25 15:32:38 +02:00
Torsten Ruger
f22eca053d
split create method
...
to allow class methods to use the other half
2015-10-25 15:04:40 +02:00
Torsten Ruger
7de2f913a0
more class tests
2015-10-25 13:19:18 +02:00
Torsten Ruger
12e31f28c2
fix and test class definition
2015-10-25 12:31:35 +02:00
Torsten Ruger
7a690cd38d
fix to_s
2015-10-25 12:10:56 +02:00
Torsten Ruger
0921073025
remove last block occurrences
...
fixed.
2015-10-25 12:03:31 +02:00
Torsten Ruger
471329917b
most of the length and assembly stuff fixed
2015-10-25 10:54:19 +02:00
Torsten Ruger
405a6935d4
lots of stuff to move to linked lists
...
and remove the blocks
more position stuff coming, but the list part should be ok
2015-10-24 17:12:36 +03:00
Torsten Ruger
3774f8a5a2
use translator and remove passes
...
the only passes that were left were reg -> arm
those are almost completely one to one, so the idea of passes didn’t fit
2015-10-24 17:11:18 +03:00
Torsten Ruger
a871f96630
remove passes and achieve the same by translating
2015-10-24 11:42:36 +03:00
Torsten Ruger
57f37ec023
removed blocks and moved to labels
...
somewhat easier to understand the code as a linked list
relatively painless change, considering
2015-10-23 21:27:36 +03:00
Torsten Ruger
f1f56f0d4e
remove parfait module
...
which was only there because ruby has it
the concept is flawed and should be split into namespace and aspect
2015-10-23 15:20:02 +03:00
Torsten Ruger
6754518daf
prune builtin
...
will need much less, many more things can be expressed in soml
2015-10-23 15:13:05 +03:00
Torsten Ruger
897e11ce80
store three versions of the code in method
...
source, instructions and binary
2015-10-23 14:41:47 +03:00
Torsten Ruger
e0c5bc4c11
rename phisol to soml
2015-10-23 14:22:55 +03:00
Torsten Ruger
991cc0519f
create add_code helper and some cleaning
2015-10-23 14:08:12 +03:00
Torsten Ruger
dcbd3c7091
fold last of the virtual into register
2015-10-22 18:16:29 +03:00
Torsten Ruger
f658ecf425
bit of cleaning, updated readme
2015-10-22 17:38:49 +03:00
Torsten Ruger
6ac339d998
catching empty blocks
...
should really clean those away
2015-10-22 15:34:47 +03:00
Torsten Ruger
83670079c3
resetting registers to prevent overflow
2015-10-22 14:50:58 +03:00
Torsten Ruger
2842c903e1
fix integers and clock reset
2015-10-22 14:42:23 +03:00
Torsten Ruger
3895ac624c
fix offsets, debugging revealed them to be 1 off
2015-10-22 11:48:03 +03:00
Torsten Ruger
4ca15449be
test and fix arg passing offset too
2015-10-22 11:32:37 +03:00
Torsten Ruger
ede0fe5f16
fix indexing when accessing locals or args
...
Was missing the offset of object variables
2015-10-22 11:02:46 +03:00
Torsten Ruger
a44b88f570
trigger on state change
...
also make states symbols
2015-10-21 14:07:29 +03:00
Torsten Ruger
db5c37bc55
fix while syntax and test
2015-10-19 16:37:12 +03:00
Torsten Ruger
99cff3aa32
fix the if syntax and branches
2015-10-19 16:22:24 +03:00
Torsten Ruger
1fd937927c
adjust branch names
...
IsXXX with xxx as condition, same as after if_xxx
AlwaysBranch is back to Branch
2015-10-19 16:08:00 +03:00
Torsten Ruger
50379a1fea
update to new syntax and patch tests
...
basic semantics remain, but have to improve test for new functionality
that has to be written for new branch types
2015-10-19 15:31:48 +03:00
Torsten Ruger
bdcd0f297d
first interpreted tests, fix branch issues
...
whole branch logic wobbly
better syntax needed, but working(ish) for now
2015-10-19 14:46:12 +03:00
Torsten Ruger
d767caf479
remove MethodCall and thus all virtual instructions
2015-10-18 19:27:46 +03:00
Torsten Ruger
15b570f5cf
removing passes (before arm)
...
collector becomes a function
minimizer unused
2015-10-18 19:27:02 +03:00
Torsten Ruger
fa4949fc80
remove MethodEnter Instructions
...
only resolved to SaveReturn anyway
also Halt instruction wasn’t used, gone
passes changed to start at register
2015-10-18 17:39:35 +03:00
Torsten Ruger
8bf1337043
Remove MethodReturn instruction
...
and pass
and fix all tests
move towards removing all vm instructions
2015-10-18 17:32:32 +03:00
Torsten Ruger
ae21feb6dc
minor
2015-10-18 17:20:25 +03:00
Torsten Ruger
6c7e4c0fe2
stop pinning self and frame
...
before: r0-message , r1-self , r2-frame , r3-new_message , r4 + tmps
now: r0-message , r1-new_message , r2 + tmps
programs got smaller, less fuss
also fix in return implementation that got the address from the wrong
message
2015-10-18 17:20:19 +03:00
Torsten Ruger
da5502e301
minor
2015-10-17 19:36:00 +03:00
Torsten Ruger
13eb017394
small to_s changes
2015-10-17 10:03:56 +03:00
Torsten Ruger
4ce4775902
fix layout
...
amazing at this stage, but yet another index error
the strange (and wonderful) thing is that changing the return
of the one function just shifts the variables and everything else
stays intact. Thus are the wonders of object orientation
2015-10-17 10:03:39 +03:00
Torsten Ruger
3e79e5cf8e
fix code duplication
2015-10-16 19:18:37 +03:00
Torsten Ruger
dc3920580b
bit more cleaning of testing
2015-10-16 18:34:54 +03:00
Torsten Ruger
aaaef6e3d7
there go the slots
...
addressing them now directly in get/set slot
idea is still valid, but express objects not needed/used anymore
2015-10-16 18:16:39 +03:00
Torsten Ruger
64a92fb9f4
remove dead code
...
was only used by now removed set instruction
2015-10-16 18:07:17 +03:00
Torsten Ruger
3a622efe9a
remove virtual new_frame instruction
...
resolved to one register instruction, not worth the hassle
2015-10-16 17:58:42 +03:00
Torsten Ruger
9ae850e3b2
remove unused set instruction
2015-10-16 17:45:24 +03:00
Torsten Ruger
bd2bf612ac
fixed last test
...
back in the green
2015-10-16 17:13:08 +03:00
Torsten Ruger
a6712fc4f9
add call statement tests
2015-10-16 13:20:21 +03:00
Torsten Ruger
0cf0b35853
remove call_site value dependency
...
Revisit for optimization, now irrelevant
2015-10-16 13:13:56 +03:00
Torsten Ruger
349352faa9
minor
2015-10-16 13:12:52 +03:00
Torsten Ruger
6f856315d7
fix and test assign
...
also fix field def and
externalized assign
2015-10-15 13:08:53 +03:00
Torsten Ruger
0179638f0e
cleaning
2015-10-15 10:27:06 +03:00
Torsten Ruger
f8efdd910c
basic if statement tests
2015-10-15 09:47:11 +03:00
Torsten Ruger
3d83f203ca
fixing and testing operators
2015-10-15 09:32:47 +03:00
Torsten Ruger
e436581ce8
adds value to used regs and test for it
2015-10-15 09:07:47 +03:00
Torsten Ruger
f105b1eb3c
fix name expression
2015-10-14 21:34:18 +03:00
Torsten Ruger
1141ed9c99
type now means class name
...
update reader (with new type definition)
remove type class (now symbol)
update all types to class name symbols
2015-10-14 16:16:03 +03:00
Torsten Ruger
d8a5dc147b
new function test and scoping fix
2015-10-14 15:17:33 +03:00
Torsten Ruger
d899d542a4
checking return type is a type
2015-10-14 14:02:34 +03:00
Torsten Ruger
e33a20dd41
minor housekeeping
2015-10-14 13:48:42 +03:00
Torsten Ruger
5b95319191
almost rewritten the call site
...
statements resolve to nothing and use all registers
expressions return register and allocate those with use_reg
2015-10-14 13:48:21 +03:00
Torsten Ruger
82d6ebf392
giving the register_value it's value
...
though not used yet
2015-10-14 13:45:46 +03:00
Torsten Ruger
5122137a33
start new elf testing category (and minors)
2015-10-13 17:30:39 +03:00
Torsten Ruger
f506f95cbf
fixing basic and field access to return register
...
as that is the new way, drop a layer, code to registers
2015-10-13 16:42:53 +03:00
Torsten Ruger
80d58ee03c
fixed simple layout offset bug in layout
2015-10-13 14:46:07 +03:00
Torsten Ruger
aa20f2ca77
renamed reg ref to reg val
...
more appropriate
alas, salaam-arm will break for a sec
2015-10-10 21:38:55 +03:00
Torsten Ruger
dd3381e38b
move type to phial and add type to reg_ref
2015-10-10 19:14:27 +03:00
Torsten Ruger
cb306c09f0
stash unused
2015-10-10 12:39:09 +03:00
Torsten Ruger
20ccf58e7c
move and remove unused from stream reader/writer
2015-10-10 12:24:43 +03:00
Torsten Ruger
3d342f7d88
remove new_message instruction
2015-10-10 12:04:34 +03:00
Torsten Ruger
c3eb295f4e
remove set optimization
...
will become obsolete soon anyway
2015-10-10 11:52:54 +03:00
Torsten Ruger
8642207158
remove instance_get instruction
2015-10-10 11:17:04 +03:00
Torsten Ruger
4334b68736
remove virtual main instruction
...
on a quest to remove all virtual instructions
2015-10-10 11:14:31 +03:00
Torsten Ruger
4b8a4d4ef5
improve tmp register usage
2015-10-10 11:05:55 +03:00
Torsten Ruger
024e6cb389
ion out last changes from grammar update
...
surprisingly painless, considering it was more or less a rewrite
2015-10-09 18:06:00 +03:00
Torsten Ruger
4c17ed2e6e
update the reader rewrite and reflect name changes
2015-10-09 17:51:14 +03:00
Torsten Ruger
02e9975ad6
fix case (from replace)
2015-10-07 15:25:11 +03:00
Torsten Ruger
99098951ca
rename bosl to phisol
2015-10-07 15:22:47 +03:00
Torsten Ruger
e669489419
went over the various readmes
2015-10-07 11:32:48 +03:00
Torsten Ruger
cd96e78e2d
small fix
2015-10-07 10:22:45 +03:00
Torsten Ruger
83ef902b55
better calcite and operator to expand the interpreter test
2015-10-07 10:05:34 +03:00
Torsten Ruger
cc89e49a43
renames SelfSlot to SelfsSlot
...
in the hope to make a little more distinction
2015-10-07 10:04:00 +03:00
Torsten Ruger
f0611e52db
work on branches
...
the concept is different in bosl, move appropriate to virtual
2015-10-07 10:02:51 +03:00
Torsten Ruger
4e26166dff
fix type in call issue
2015-10-06 15:26:57 +03:00
Torsten Ruger
f4a4ccb98e
several larger changes came together, bit of cleaning too
...
- all code must be in functions (which must be in classes).
— changes a fair few tests
— also changes api, as method is not recursive, not passed around
- all state in instance vars in compiler (no accessors)
- class is another such variable, surely more coming
all green again
2015-10-06 00:27:13 +03:00
Torsten Ruger
501da4d922
ignore 1.9.3
...
something with the integer encodings doesn’t quite sync
2015-09-27 22:56:20 +03:00
Torsten Ruger
4186405930
new i_to_s test
2015-09-27 22:39:10 +03:00
Torsten Ruger
259b0afa96
improve tests
2015-09-27 20:28:34 +03:00
Torsten Ruger
6e009cc6df
remove send instruction
2015-09-27 19:18:36 +03:00
Torsten Ruger
eb57eb4d41
minor send fixes
2015-09-27 19:07:56 +03:00
Torsten Ruger
bb8a57f5a5
remove send , move into call_site (resolve to calls)
2015-09-27 19:07:12 +03:00
Torsten Ruger
252c0ccdca
finish typing variables
2015-09-27 16:06:48 +03:00
Torsten Ruger
26c6db17b1
better inspect
2015-09-27 16:06:11 +03:00
Torsten Ruger
18935366fe
introducing class variable and typed arguments
2015-09-27 14:30:41 +03:00
Torsten Ruger
94c08f7129
small clean
2015-09-27 14:07:02 +03:00
Torsten Ruger
dba94827ec
remove tmp variables
...
sadly without having to touch tests
2015-09-27 14:00:24 +03:00
Torsten Ruger
5a2a857485
finish the field access
...
now that fields can be defined
2015-09-27 12:59:50 +03:00
Torsten Ruger
964abe1e32
small cleans
2015-09-27 12:59:26 +03:00
Torsten Ruger
6bdbfcde60
update reader and implement class field
2015-09-27 12:58:54 +03:00
Torsten Ruger
b99b392481
new field access code and test. wip as field def broken
2015-09-27 11:28:06 +03:00
Torsten Ruger
c4f89441e2
cleaning
2015-09-27 11:27:30 +03:00
Torsten Ruger
4d9d67af5c
move ast code/patch here
2015-09-27 11:26:53 +03:00
Torsten Ruger
9fe01c7b31
remove unknown type
2015-09-23 18:35:37 +03:00
Torsten Ruger
b1cab4f395
compiler test back up
2015-09-20 17:33:05 +03:00
Torsten Ruger
5f628744d6
more test working
...
operator wip
2015-09-20 16:52:26 +03:00
Torsten Ruger
77f0a08060
update and fix class compilation
2015-09-20 16:30:39 +03:00
Torsten Ruger
f2fc9c5f89
new field def compiles, fix test
2015-09-20 16:30:07 +03:00
Torsten Ruger
bc70c1efe5
temporarily disabling test that haven't been fixed yet
2015-09-19 22:24:57 +03:00
Torsten Ruger
775bca50ac
switching to ast::processor
...
using instance methods instead of context
2015-09-19 18:56:18 +03:00
Torsten Ruger
3a885a8e46
more expressions and if test
2015-09-19 17:57:44 +03:00
Torsten Ruger
9bacb07f1c
add some ast sugar
2015-09-19 17:57:31 +03:00
Torsten Ruger
2061097e88
move compiler to bosl and get first test working (adjusting syntax as i go)
2015-09-19 16:28:41 +03:00
Torsten Ruger
df95b8b54d
trigger index for object changed
2015-08-23 02:14:16 +02:00
Torsten Ruger
c039f3d6e6
fix the string warning raises
2015-08-17 02:37:07 +03:00
Torsten Ruger
4e56056b62
better test for add
2015-08-09 00:53:04 +03:00
Torsten Ruger
bae7f5dcb1
better to_s for load constant
2015-08-09 00:52:47 +03:00
Torsten Ruger
db31ff7021
implement adding in interpreter
2015-08-09 00:52:27 +03:00
Torsten Ruger
5d838056fa
small rename and new test for layout
2015-08-08 18:08:47 +03:00
Torsten Ruger
ca14ef8914
fix test result, but not test yet
2015-08-07 16:46:55 +03:00
Torsten Ruger
4afd7f78ca
fix the plus method that sneaked into arm
2015-08-06 18:55:08 +03:00
Torsten Ruger
9ebe6eb5b7
move to clss names as types
...
so as not to mix ruby class names into parfait code
2015-08-06 18:28:40 +03:00
Torsten Ruger
75c43d1b03
add fixnum as constant (was buggy)
2015-08-06 18:28:09 +03:00
Torsten Ruger
2f39f707f0
better naming
2015-08-06 18:27:35 +03:00
Torsten Ruger
2c6ca7b4f2
small checks
2015-08-06 18:27:25 +03:00
Torsten Ruger
8560f15c87
plus function, indentation
2015-08-05 18:49:37 +03:00
Torsten Ruger
21b0702154
fix tests (just using local gem)
2015-08-04 22:01:20 +03:00
Torsten Ruger
9680ff2a71
fxes for add test
2015-08-04 21:46:33 +03:00
Torsten Ruger
96c7b7133d
no more partial boots, always full reboot
...
otherwise tests are not indepant
2015-07-30 19:19:37 +03:00
Torsten Ruger
8ab9a417aa
minors
2015-07-30 19:18:41 +03:00
Torsten Ruger
7216300452
add interpreter here (moved from debugger)
2015-07-30 19:18:12 +03:00
Torsten Ruger
3fb08acf3f
better tests to find sneaky module bug
2015-07-28 16:19:10 +03:00
Torsten Ruger
5fd04ee0c5
shuffling and rename dummy
2015-07-28 16:18:32 +03:00
Torsten Ruger
36f635f7c1
adding sources to register instructions
2015-07-27 12:13:39 +03:00
Torsten Ruger
f91c9fabe8
fix block initialization
2015-07-26 18:28:39 +03:00
Torsten Ruger
e7b8f2fcc8
critical bug from array/list mix up
2015-07-26 18:27:54 +03:00
Torsten Ruger
b0c78479ff
clearer to_s s
2015-07-25 09:30:58 +03:00
Torsten Ruger
772212bad9
fix the reg test (one off)
2015-07-24 17:23:44 +03:00
Torsten Ruger
139b0174d8
to_s for reg instructions
2015-07-24 13:23:56 +03:00
Torsten Ruger
fa552bf751
opal only bug, deleting while iterating over array
2015-07-23 17:15:07 +03:00
Torsten Ruger
2f409ea4e1
more dead code goes
2015-07-21 20:24:31 +03:00
Torsten Ruger
074f3af174
uncomment dead code
...
it’s dead, unfair to say it’s untested.
percentage wise i mean
2015-07-21 19:57:38 +03:00
Torsten Ruger
e3577d18af
fix that silly mistake that made the percentage plummet
...
mostly due to the fact that object is a hash now,
not array. Took a while though
2015-07-21 19:41:30 +03:00
Torsten Ruger
2d0424a370
turned out to be a rewrite of boot process
...
and also attribute handling and fake_memory
luckily there are tests and all is green again
2015-07-21 15:40:25 +03:00
Torsten Ruger
f8cb33ec5e
test ivar name list
2015-07-20 13:20:43 +03:00
Torsten Ruger
2c1c38716b
move from new_object to normal new
2015-07-20 13:01:15 +03:00
Torsten Ruger
d7c9245bb3
more fragment tests
2015-07-19 13:31:13 +03:00
Torsten Ruger
31d825df7b
fix and test basic and name expressions
2015-07-19 13:20:34 +03:00
Torsten Ruger
48d090f19c
test return. remove some dead code
2015-07-19 13:03:21 +03:00
Torsten Ruger
db17a9b696
fix function and class compile
...
also fix misconception: methods do not have to be added to class by
called
that is a side effect from compiling a method
2015-07-19 12:34:23 +03:00
Torsten Ruger
849a92a909
splitting out the compile_name expression
2015-07-19 12:31:35 +03:00
Torsten Ruger
cbff41b61d
test name expr
2015-07-19 11:15:38 +03:00
Torsten Ruger
0a09477dc6
fix and test compiling classes
2015-07-19 10:36:06 +03:00
Torsten Ruger
ae7350bd57
redefining a methods is not an error
...
and happens in tests
2015-07-19 10:35:45 +03:00
Torsten Ruger
a554762da8
fix the compile while test
2015-07-18 19:02:54 +03:00
Torsten Ruger
3d8fc8819c
fix rebooting by clearing our main
2015-07-18 16:12:50 +03:00
Torsten Ruger
b83f50c57c
rebooting tests for small compiles
2015-07-18 15:28:57 +03:00
Torsten Ruger
7b1e89effb
get fragment tests back online
...
the 58% REALLY doesn’t look good
and things have settle down, so no more excuses
2015-07-18 14:33:09 +03:00
Torsten Ruger
f4f703975b
removed arm and use as gem
2015-07-18 14:12:20 +03:00
Torsten Ruger
e1c19dee80
remove old to_asm
...
very strange that is was called in 1.9 but not 2.0
2.0 seems to delay interpolating strings
2015-07-18 12:15:07 +03:00
Torsten Ruger
46de0f278e
fix the boot
...
was broken for unknown reason really
2015-07-18 11:53:04 +03:00
Torsten Ruger
f5136b6b68
minor formatting
2015-07-18 11:52:30 +03:00
Torsten Ruger
53d8f4b163
add source to instruction
...
for debug
2015-07-18 11:21:49 +03:00
Torsten Ruger
50da6a40f2
Move the Main instruction from register to virtual
...
also needs a branch in register.
This way the register level is self sufficient
(noticed while writing debugger)
2015-07-17 13:21:57 +03:00
Torsten Ruger
60d09ab057
fix for opal
...
in opal string and symbol is the same.
2015-07-17 11:40:40 +03:00
Torsten Ruger
9a48ab1330
fix eval for opal consumption
2015-07-17 11:39:20 +03:00
Torsten Ruger
b670e058a9
fixes to get opal to work
...
opal has bug with << and |=, but changing syntax works
2015-07-12 10:01:45 +03:00
Torsten Ruger
ae97425918
reminder
2015-07-04 14:34:51 +03:00
Torsten Ruger
b61c73acdd
renamed info to MethodSource
2015-07-03 20:13:03 +03:00
Torsten Ruger
e959c5b0f5
fixed wrong exit code
...
no wonder it was set faulting, duh
2015-07-02 13:50:13 +03:00
Torsten Ruger
4f2f56fff8
minors
2015-07-02 13:49:33 +03:00
Torsten Ruger
69781fb505
remoe sys call message
...
and rely on linux to restore all registers
save message in r8
2015-07-02 13:48:32 +03:00
Torsten Ruger
9a6c5d9ea8
wordlnegth is not +1 for string as no trailing 0
2015-07-02 13:47:46 +03:00
Torsten Ruger
caa4ae1cf0
new tests for space
...
finds the bug in message creation!
2015-07-02 11:09:23 +03:00
Torsten Ruger
9ca5ddf7c0
fix all tests
...
some had to be disabled
since stability is coming back more test are coming too
2015-07-02 10:26:48 +03:00
Torsten Ruger
3195d800e9
fix putstring file descriptor
2015-07-02 09:49:52 +03:00
Torsten Ruger
11997ef354
had to revert name method change
...
method is not known when message is created
2015-07-02 09:48:41 +03:00
Torsten Ruger
7136450bde
move put string to string where it belongs
2015-07-01 21:45:41 +03:00
Torsten Ruger
f8ba77dff7
fix require
2015-07-01 21:45:21 +03:00
Torsten Ruger
1b791dc0d0
putstring was missing the steam id
2015-07-01 21:42:59 +03:00
Torsten Ruger
8f0fd30ef3
small name update
2015-07-01 21:42:31 +03:00
Torsten Ruger
6a23ef8b26
storing method, not just name in message
...
goes with a rename and other admin
2015-07-01 19:39:23 +03:00
Torsten Ruger
5e85d0781f
have to retry in assembler
...
can raise several times, calling once was not enough
tbr: to be revisited
2015-07-01 19:36:18 +03:00
Torsten Ruger
60fe0dfd1c
separate New frame and message
...
and also much much shorter now, as all is static
2015-07-01 19:27:52 +03:00
Torsten Ruger
135fcaa8fa
static message chain
...
Rewrote Message + frame, only static linked list needed, not dynamic
frames either
2015-07-01 19:27:18 +03:00
Torsten Ruger
fb67f550ec
more index fixes, this time arguments
2015-07-01 09:48:20 +03:00
Torsten Ruger
4c315a8115
fix the autocomplete
2015-07-01 09:47:37 +03:00
Torsten Ruger
047c77e186
fixed that darn method address bug
2015-07-01 09:47:10 +03:00
Torsten Ruger
9541712af8
fixing all the indexes
...
with the type word and layout
but the list starting at 1, indexes still need 1 added
and for arm x 4.
Tried to get all that into one function, resolve_index
2015-06-30 18:38:56 +03:00
Torsten Ruger
88f45cbf15
weird 4 to add for call works
2015-06-30 18:36:57 +03:00
Torsten Ruger
c0f11d70f1
rephrased the retry, didnt find the bug though
2015-06-30 18:35:37 +03:00
Torsten Ruger
b9e2d4dd21
remove some debug
2015-06-30 10:22:54 +03:00
Torsten Ruger
7e9b940890
add init_message to space
...
so kernel::__init can use that and the first next_message does not need
to be reused
2015-06-30 09:52:17 +03:00
Torsten Ruger
df2a080bd0
move register_machine to register
2015-06-30 09:46:11 +03:00
Torsten Ruger
ee2294ded7
remove unused reference
2015-06-30 09:45:45 +03:00
Torsten Ruger
60c8f8ef73
move generator functions to the instructions they generate
2015-06-30 09:43:50 +03:00
Torsten Ruger
bd77db656a
remove class_eval on slots to map registers
...
Use their class names (or for now called object names)
these are the same that Register helper functions accept already anyway
2015-06-30 09:39:45 +03:00
Torsten Ruger
c4502c5030
get rid of the last constants
...
return them by method, nicer code
2015-06-30 09:38:32 +03:00
Torsten Ruger
b8090e0ecd
fix init to load into new message
2015-06-30 09:37:25 +03:00
Torsten Ruger
3a6d3143c5
change method debug format for gdb autocomplete
2015-06-30 09:37:01 +03:00
Torsten Ruger
0f2c8e4201
finally scoping builtin to register
...
had put this off because it breaks history
but now the references to register stuff which
builtin is off course full of, become much shorter
2015-06-29 21:03:58 +03:00
Torsten Ruger
a03dcecbbd
fix namespacing and remove indexes
2015-06-29 20:58:52 +03:00
Torsten Ruger
553f30c874
more ripples from removing index constants
2015-06-29 20:58:06 +03:00
Torsten Ruger
1e18db00c9
add set_slot and save_return
...
as functions to generate instructions
2015-06-29 20:57:16 +03:00
Torsten Ruger
a24e96efbc
asserts to debug
2015-06-29 20:56:11 +03:00
Torsten Ruger
218fafca05
renames
2015-06-29 20:55:45 +03:00
Torsten Ruger
5ce7b6c7c9
removing those ugly slot index constants
...
The constants were bad enough,
but they were also at the wrong level
Now register level is defining mappings from
symbol names to indexes, by using the layout
2015-06-29 10:55:22 +03:00
Torsten Ruger
06b5d24729
fixing require order
...
so Register stuff is defined when builtin is loaded
2015-06-29 10:53:27 +03:00
Torsten Ruger
a16abeb3e6
giving the method to return and save
...
so they can make decisions
like wether to create a frame or not
2015-06-28 22:03:21 +03:00
Torsten Ruger
02615db508
minor
2015-06-28 22:02:27 +03:00
Torsten Ruger
8674c322c4
correctly linking frames and messages
2015-06-28 22:02:07 +03:00
Torsten Ruger
31635d9747
fixing index issues
2015-06-28 22:01:13 +03:00
Torsten Ruger
99b59d920c
constant fixes
2015-06-28 10:52:02 +03:00
Torsten Ruger
a00a49ecdb
fix frame indexes
2015-06-28 10:50:47 +03:00
Torsten Ruger
ef42abe611
unifying register comstants
...
were in several files with different names
many files touched, but just renames
2015-06-27 21:16:46 +03:00
Torsten Ruger
97b4c469f8
fixing register order in some instructions
...
and their use
Arm is confusing as it has result as first arg
we use forward logic, i.e. from -> to
2015-06-27 20:09:21 +03:00
Torsten Ruger
add79e5157
use sod names for debug info
2015-06-27 20:08:07 +03:00
Torsten Ruger
294ea8de4f
fix the move, correct for funny pipeline
2015-06-27 20:07:42 +03:00
Torsten Ruger
485d6566ad
write object refs at offset
...
that is (only) the linux/arm offset off course
2015-06-27 15:17:15 +03:00
Torsten Ruger
d0d857bbe0
fix object loading
...
by (ahem) copying the code from MoveInst.
2015-06-26 20:36:00 +03:00
Torsten Ruger
5539d8fe32
just a little more precise
2015-06-26 20:35:16 +03:00
Torsten Ruger
e20fba61d9
allowing for relinking to add more instructions
2015-06-26 20:34:40 +03:00
Torsten Ruger
55b7ca83e1
fixing load constant
...
which needs to add to pc to get an object reference
2015-06-26 20:01:52 +03:00
Torsten Ruger
108cc8af45
minor cleanup
2015-06-26 20:00:50 +03:00
Torsten Ruger
37403f1139
fix misunderstood mov usage
...
When moving a reference (pointer) to a register
one needs to ADD to the pc
i.e. one needs an add, not mov instruction
2015-06-26 20:00:33 +03:00
Torsten Ruger
32e1903884
finished init routine
...
and better implemented sys calls
2015-06-25 16:31:09 +03:00
Torsten Ruger
cedc6e1b61
Fix parfait bug for word_length
2015-06-24 16:08:06 +03:00
Torsten Ruger
59188105ba
finish syscall
...
works, even had to fix parfait bug to see
2015-06-24 16:07:27 +03:00
Torsten Ruger
1a82ebcd69
mor on sys call implementation
2015-06-23 19:55:54 +03:00
Torsten Ruger
2aba926f1f
start on reworking sys calls
2015-06-22 22:48:42 +03:00
Torsten Ruger
9c21f4274d
better names for index constants
2015-06-21 21:09:15 +03:00
Torsten Ruger
836089a249
clean up Get/SetSlot
...
document and make arguments consistent
2015-06-21 21:00:16 +03:00
Torsten Ruger
f3ee11fca5
simple set optimisation
...
the price of having simple code (generation) is that
it is sometimes stupid code that gets generated
Filter some of the really daft stuff out
2015-06-21 17:25:27 +03:00
Torsten Ruger
aafb179c61
move frame_impl to register
2015-06-21 17:23:15 +03:00
Torsten Ruger
3fe35e34ec
fix slot constant access
2015-06-21 17:22:51 +03:00
Torsten Ruger
cdf17a73b2
changed Set order
...
from to seems more logical than to,from
2015-06-21 13:29:27 +03:00
Torsten Ruger
6867175bd1
slot docs and rename
2015-06-21 00:21:42 +03:00
Torsten Ruger
eeaf2d97de
starting to clear up slots
...
mostly docs
2015-06-20 23:49:30 +03:00
Torsten Ruger
7551a16b6e
pretty names for references
2015-06-19 19:50:53 +03:00
Torsten Ruger
a2bfaf1b2c
remove memory from sod but keep layout
2015-06-19 13:11:40 +03:00
Torsten Ruger
87143091ca
moved sod write method to module
2015-06-19 12:29:41 +03:00
Torsten Ruger
1baece99c7
split the pass runs to debug
2015-06-12 18:52:06 +03:00
Torsten Ruger
54c71fa216
split pass runs for debug in-between
2015-06-11 17:04:18 +02:00
Torsten Ruger
a1848a051d
don't print binary codes in sof
...
keeps more readable and binary is really only useful with decompiler
2015-06-11 07:05:39 +02:00
Torsten Ruger
9b89f6cb16
move the pass running out of elf
...
and leave it up to user
later partial running planned
2015-06-11 07:04:55 +02:00
Torsten Ruger
ee6f9d733b
rename Mystery
...
just unknown, mystery should be more difficult to find out.
After all we keep run time info, so just need unknown at compile time
2015-06-11 07:04:14 +02:00
Torsten Ruger
d8fa266b5d
fix method call addresses
...
was jumping to the method
but needs to jump to the code of the method
2015-06-10 11:10:46 +02:00
Torsten Ruger
6f111a5ae0
fix the initial jump
2015-06-10 10:43:50 +02:00
Torsten Ruger
c9ec6e2f39
fix debug
2015-06-09 11:38:03 +02:00
Torsten Ruger
20b28077a1
we have executables again
...
they are missing their initial jump, but reassemble fi
2015-06-09 11:37:32 +02:00
Torsten Ruger
7818059734
remove dead code
2015-06-08 12:24:28 +02:00
Torsten Ruger
f8688cbe17
it actually assembles again
2015-06-08 12:19:53 +02:00
Torsten Ruger
0122585b3b
fixed, nay, hacked list problem
...
lists were in object space but not liked due to
equality returning true
2015-06-08 11:52:56 +02:00
Torsten Ruger
5b3045e42a
remove positioned copy paste
2015-06-08 11:37:20 +02:00
Torsten Ruger
575d19cb02
assembling layout
2015-06-07 10:06:08 +02:00
Torsten Ruger
13ab029cc5
word length fixes
2015-06-06 18:46:53 +02:00
Torsten Ruger
1c29fcfd43
mem_length to word/byte length
...
be more specific, and don’t include padding
2015-06-05 09:20:43 +03:00
Torsten Ruger
30d9aaf61b
extract padding functions to module
...
and finally TEST them
its especially the brain bending stuff that needs tests
2015-06-04 08:22:38 +03:00
Torsten Ruger
4ddfcc4900
assembles more already
2015-06-03 10:01:59 +03:00
Torsten Ruger
3cdb3d513c
move to basic types (not wrapped)
2015-06-02 09:05:27 +03:00
Torsten Ruger
aea8f20be5
more symbol related fixes
2015-06-01 17:31:35 +03:00
Torsten Ruger
5726d2c181
move machine to module level
...
makes for shorter, more concise, access
also remove one more bug possibility
(reinitiation)
2015-06-01 08:40:17 +03:00
Torsten Ruger
336e6c18de
register reference creation got more complicated
2015-06-01 08:34:17 +03:00
Torsten Ruger
66f5dcf152
method stores constants
2015-06-01 08:33:51 +03:00
Torsten Ruger
f08d9659fc
getting the symbols to work
2015-06-01 08:33:23 +03:00
Torsten Ruger
bee73801eb
revert to symbols
...
Parfait::Words were nice, but endless problems with the fact that when
you write “String” you get a string.
Symbols take care of uniqueness at the same time
2015-05-31 18:34:18 +03:00
Torsten Ruger
5d870ef154
got it down to string equality/identity
2015-05-31 17:54:36 +03:00
Torsten Ruger
1509e7ba2f
better assembly
...
but bug is still scuttling around there in
link/assembly process
2015-05-31 14:45:28 +03:00
Torsten Ruger
7a5cf03d73
minor fixes
2015-05-31 14:44:26 +03:00
Torsten Ruger
db5c958d2e
fix lists first
2015-05-31 13:26:47 +03:00
Torsten Ruger
03bdc16810
fixed layouts
...
also moved objects to machine, from space
space has a list of objects, but implicit,
not as an explicit array
2015-05-31 13:02:29 +03:00
Torsten Ruger
aaa206fbca
debugging missing layout
2015-05-31 11:07:49 +03:00
Torsten Ruger
deaa062062
start to minimize
...
filter unused methods
Filter works, need to remove still
2015-05-30 14:49:47 +03:00
Torsten Ruger
079306dbf8
move main to object (from kernel)
2015-05-30 14:49:10 +03:00
Torsten Ruger
24259fa18b
fix method list (was still array)
2015-05-30 14:47:56 +03:00
Torsten Ruger
96a20ff554
add delete to list
2015-05-30 14:22:33 +03:00
Torsten Ruger
e651b57d08
homing in on line length 100
2015-05-30 12:20:39 +03:00
Torsten Ruger
33d464f032
minor
2015-05-30 11:56:47 +03:00
Torsten Ruger
bea10cc560
fix bug where layout wasn't initialized
2015-05-30 11:55:46 +03:00
Torsten Ruger
3e9e650764
fix arm tests
2015-05-29 12:47:49 +03:00
Torsten Ruger
73e5ec550a
small fixes
2015-05-29 12:33:59 +03:00
Torsten Ruger
a46b2d5c56
update to use parfait not virtual
...
more ripples
reverting to integers (not virtual::integer)
2015-05-29 12:33:40 +03:00
Torsten Ruger
c28430698c
get binary code to work
2015-05-28 21:10:27 +03:00
Torsten Ruger
5845bde33a
binary code to its own class
...
makes linking easier
2015-05-26 20:17:43 +03:00
Torsten Ruger
96c59ac144
fixing assembly (wip)
...
main entry is the main problem, still polishing
2015-05-26 20:17:03 +03:00
Torsten Ruger
8413f6b470
smaller clean-ups
2015-05-25 18:48:35 +03:00
Torsten Ruger
4d0773ebae
misc
2015-05-24 20:00:11 +03:00
Torsten Ruger
5670f07eac
bit more on booting of the space
2015-05-24 19:59:19 +03:00
Torsten Ruger
2ccbea04b9
fixing assembly
...
position code changed and linking too
passes not working
2015-05-24 18:05:20 +03:00
Torsten Ruger
95ac024421
fix old tests again
2015-05-24 16:55:03 +03:00
Torsten Ruger
29a34b4d24
no need to keep object list in linker (use space)
2015-05-24 16:25:17 +03:00
Torsten Ruger
3e18694be7
code for method
2015-05-24 16:24:57 +03:00
Torsten Ruger
38cb9f7d3c
get words to compare to strings
2015-05-24 15:31:44 +03:00
Torsten Ruger
b58bba3fc4
register access fixes
...
since the constants moved
2015-05-24 15:31:30 +03:00