Commit Graph

73 Commits

Author SHA1 Message Date
dc560aaa5e move main to space 2015-11-30 16:09:12 +02:00
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
4871a52d37 better error reporting for parser 2015-11-19 10:10:13 +02:00
dffa3fbf42 adding word functions for byte access 2015-11-19 10:08:41 +02:00
5369dc3d52 rename get/set internal
to _word , because _byte versions are coming
2015-11-18 15:36:43 +02:00
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
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
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
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
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
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
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
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
834266e11e improve label names a bit 2015-11-01 19:13:40 +02:00
7e24f63327 polish sources 2015-10-29 22:31:28 +02:00
191be8d2f6 use compiler to generate methods and their instructions 2015-10-28 21:37:42 +02:00
c245272e52 don't export current 2015-10-28 14:37:40 +02:00
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
72b790c107 remove method source receiver
no harm done it seems
2015-10-28 14:24:14 +02:00
7e0778dc70 remove return_type
soon to be obsolete with multi returns
2015-10-28 12:19:10 +02:00
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
6754518daf prune builtin
will need much less, many more things can be expressed in soml
2015-10-23 15:13:05 +03:00
e0c5bc4c11 rename phisol to soml 2015-10-23 14:22:55 +03:00
dcbd3c7091 fold last of the virtual into register 2015-10-22 18:16:29 +03:00
d767caf479 remove MethodCall and thus all virtual instructions 2015-10-18 19:27:46 +03:00
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
3d83f203ca fixing and testing operators 2015-10-15 09:32:47 +03:00
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
d899d542a4 checking return type is a type 2015-10-14 14:02:34 +03:00
dd3381e38b move type to phial and add type to reg_ref 2015-10-10 19:14:27 +03:00
99098951ca rename bosl to phisol 2015-10-07 15:22:47 +03:00
e669489419 went over the various readmes 2015-10-07 11:32:48 +03:00
18935366fe introducing class variable and typed arguments 2015-09-27 14:30:41 +03:00
9fe01c7b31 remove unknown type 2015-09-23 18:35:37 +03:00
4e56056b62 better test for add 2015-08-09 00:53:04 +03:00
ca14ef8914 fix test result, but not test yet 2015-08-07 16:46:55 +03:00
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
8560f15c87 plus function, indentation 2015-08-05 18:49:37 +03:00
21b0702154 fix tests (just using local gem) 2015-08-04 22:01:20 +03:00
9680ff2a71 fxes for add test 2015-08-04 21:46:33 +03:00
36f635f7c1 adding sources to register instructions 2015-07-27 12:13:39 +03:00
2f409ea4e1 more dead code goes 2015-07-21 20:24:31 +03:00
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
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
b61c73acdd renamed info to MethodSource 2015-07-03 20:13:03 +03:00
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
7136450bde move put string to string where it belongs 2015-07-01 21:45:41 +03:00
8f0fd30ef3 small name update 2015-07-01 21:42:31 +03:00
135fcaa8fa static message chain
Rewrote Message + frame, only static linked list needed, not dynamic
frames either
2015-07-01 19:27:18 +03:00
fb67f550ec more index fixes, this time arguments 2015-07-01 09:48:20 +03:00