Commit Graph

1294 Commits

Author SHA1 Message Date
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
c190f718ec fix fibs test to 32 bit maxs 2015-11-13 20:44:18 +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
8528fae785 add the new tests 2015-11-10 19:12:50 +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
da9dacffb2 shorten fibo test a bit 2015-11-10 11:44:55 +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
ede7639861 forgot to link tests in
so code climate complained, oh now
2015-11-08 17:09:28 +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
cf05e7553a rework interpreter test framework
remove lots of copy paste
2015-11-08 14:30:28 +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
6cd95ee933 more layout tests, seeing class names on stdout 2015-11-08 00:55:37 +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
ab7e517e9e slightly tighter parfait tests 2015-11-07 22:26:06 +02:00
Torsten Ruger
f11e8f0a13 fix all the test
many are off course affected by call sequence changes
2015-11-07 22:20:21 +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