Commit Graph

1049 Commits

Author SHA1 Message Date
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