Commit Graph

69 Commits

Author SHA1 Message Date
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
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
4871a52d37 better error reporting for parser 2015-11-19 10:10:13 +02:00
Torsten Ruger
ac5a7ac4ca making parfait (both) use the new byte functions 2015-11-19 10:09:24 +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
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
cc9b515752 fix double label names 2015-11-14 22:53:01 +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
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
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
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
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
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
368263d5a5 rewrite of field access using on_name
much cleaner and revealed a bug
2015-11-09 23:26: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
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
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
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
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
50b03a5e94 load parfait soml files
No dir glob for precise order
2015-11-07 17:38:27 +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
4014ad27fe fix and test return
return was in the wrong message
better tests now
2015-11-05 12:22:48 +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
c940e25f91 other half of previous call change 2015-11-03 11:22:52 +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
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