Torsten Ruger
a4b0666c8c
makes method_statements body always a scope_statement
2017-04-12 11:51:29 +03:00
Torsten Ruger
0d96f5e35f
rearranges test helper modules
2017-04-10 16:12:15 +03:00
Torsten Ruger
0233e91355
basic mom directory structure and a readme
2017-04-10 11:47:18 +03:00
Torsten Ruger
b2775455e1
more class creation tests
2017-04-09 10:14:28 +03:00
Torsten Ruger
397eca541a
fix class statements to always have Statements as body
...
not sometimes an array, which sits badly in the tree of statements
2017-04-09 09:59:21 +03:00
Torsten Ruger
af196c17d3
test correct instance_type creation
...
so ivar collection happens
and a type is created from the names
2017-04-08 19:20:11 +03:00
Torsten Ruger
c7978c22d4
improves method compiler tests
2017-04-08 17:29:53 +03:00
Torsten Ruger
f8b3fa1877
creates methods from method statement
2017-04-08 17:22:53 +03:00
Torsten Ruger
b0e3978b15
starts on local variable collection
...
500 tests (in under 2 seconds), yippie
2017-04-08 12:28:31 +03:00
Torsten Ruger
ea41f9cae9
fixes ivar collection
2017-04-08 12:18:10 +03:00
Torsten Ruger
d00fbb233e
adds ivar collection with tests
2017-04-08 12:11:52 +03:00
Torsten Ruger
8942f42310
adds collect for the statements
2017-04-08 12:10:42 +03:00
Torsten Ruger
db8f99409b
move vool statements into own directory
...
also tests for guard to work
2017-04-06 19:11:11 +03:00
Torsten Ruger
b9caad937a
rename bools compiler to ruby_compiler
...
as that is what is does, compile ruby strings into vool st
2017-04-06 15:36:41 +03:00
Torsten Ruger
3683aa8976
vool method fix
2017-04-06 14:02:18 +03:00
Torsten Ruger
bc0b71d0cd
test local variables
...
need the assignenment first in the same scope so parser knows its a lvar
2017-04-05 14:03:36 +03:00
Torsten Ruger
de8b48975b
adds logical statements to vool
2017-04-04 18:35:15 +03:00
Torsten Ruger
d6e346d9c0
adds instance assignment to vool
2017-04-04 18:10:28 +03:00
Torsten Ruger
73964aeb6e
adds modules to vool
2017-04-04 18:00:21 +03:00
Torsten Ruger
5f70067fa0
adds instance and class variables to vool
2017-04-04 14:04:35 +03:00
Torsten Ruger
83ab197d03
fix and test vool return statement
2017-04-04 10:42:20 +03:00
Torsten Ruger
c545bfdfc6
adds while statement to vool
2017-04-03 11:49:21 +03:00
Torsten Ruger
5335d08408
more condition tests
2017-04-02 22:52:31 +03:00
Torsten Ruger
ffbe39d571
order test requires
...
easier to spot missed tests (when guard and cmd-line differ)
2017-04-02 22:42:51 +03:00
Torsten Ruger
16a55d9f95
include same directory helpers
...
(not one above as falsely was)
2017-04-02 19:13:14 +03:00
Torsten Ruger
f343ad934c
a start on conditionals
2017-04-02 19:12:42 +03:00
Torsten Ruger
443fd13980
adds super
...
with and without args
current thinking is to fill the name of the method later as we carry no
context currently, but this may change
2017-04-02 18:42:52 +03:00
Torsten Ruger
ac7b9138ff
bit of cleaning
2017-04-02 18:25:30 +03:00
Torsten Ruger
539ab692a3
add scope and kwbegin
...
scope is just a list of statements
2017-04-02 13:24:09 +03:00
Torsten Ruger
27e4e9f501
add assignment and self
2017-04-02 12:59:07 +03:00
Torsten Ruger
d62e996f7c
add send statement
2017-04-02 12:57:05 +03:00
Torsten Ruger
93f9d16209
add vool hashes
2017-04-02 10:57:39 +03:00
Torsten Ruger
d5af6dad42
adds arrays to vool
...
also symbols and some cleanup
2017-04-02 10:43:22 +03:00
Torsten Ruger
8f03d98330
adds basic values (bools ints strings)
2017-04-02 09:44:56 +03:00
Torsten Ruger
34fdf7b2cd
adds method_statement to vool
2017-04-01 16:27:32 +03:00
Torsten Ruger
295782d9e6
start on vool, the virtual oo language
...
start with syntax tree, not linked into existing code until finished
2017-04-01 15:57:39 +03:00
Torsten Ruger
b756d275e4
update collector to estimate bootstrap size
2017-01-19 09:08:59 +02:00
Torsten Ruger
aa79e41d1c
rename register to risc
...
seems to fit the layer much better as we really have a very reduced
instruction set
2017-01-19 09:02:29 +02:00
Torsten Ruger
da5823a1a0
move parfait up one, as per its module structure
2017-01-18 20:09:43 +02:00
Torsten Ruger
7abd777d05
rename melon to rubyx
...
melon was still from the salama days and rubyx describes it much better
2017-01-18 00:05:36 +02:00
Torsten Ruger
48d32a2b8e
hello world in ruby works
...
doesnt do much dynamic things though
2017-01-17 21:27:20 +02:00
Torsten Ruger
10d75e136f
defining constants in melon to match classes in vm
2017-01-17 21:26:28 +02:00
Torsten Ruger
9c83423e50
bug hunting for class recreation
2017-01-17 21:25:58 +02:00
Torsten Ruger
cd211f970f
make method creation class methods in MethodCompiler
...
and pass the wish to use main explicitly, which is really a test
feature
2017-01-17 21:23:58 +02:00
Torsten Ruger
0c64e367d5
rename compiler test accrding to convention
2017-01-17 21:22:53 +02:00
Torsten Ruger
7223ca9a1c
clean and refactor
2017-01-16 17:44:34 +02:00
Torsten Ruger
091900ef1c
move test helpers up, so they can be used in Melon too
2017-01-16 17:43:39 +02:00
Torsten Ruger
4ba182a822
rename compilers to passses
2017-01-16 17:24:32 +02:00
Torsten Ruger
8dbbffd58e
fix tests for NameExpression split
...
also necessitates giving method name without the wrapping expression
which is simpler anyway
2017-01-16 09:34:47 +02:00
Torsten Ruger
96f19d18c0
starting on ruby send
2017-01-15 20:30:47 +02:00
Torsten Ruger
cf0a123866
boot_function test
2017-01-15 20:04:52 +02:00
Torsten Ruger
fc96f1d2da
checking classes don't get created twice
2017-01-15 16:59:29 +02:00
Torsten Ruger
83f2459a8a
implement ivar assignment
2017-01-15 14:44:23 +02:00
Torsten Ruger
85eec2f3cb
adding instance variables to class
2017-01-15 14:21:57 +02:00
Torsten Ruger
8b364eb566
fixing tests for assignment split
2017-01-15 13:01:44 +02:00
Torsten Ruger
a0cf5bffc0
small rename to align has_locals and has_arguments
...
for semantic and code unification
2017-01-15 12:59:03 +02:00
Torsten Ruger
4095bb397f
starting to create vm_method from ruby_method
...
issues galore though
2017-01-15 12:10:37 +02:00
Torsten Ruger
9eeb9f65f3
add normalizing and method compilation phases (empty)
2017-01-14 20:30:19 +02:00
Torsten Ruger
1c2b6d103c
move one more test file
2017-01-14 20:10:34 +02:00
Torsten Ruger
2e62c5bbb6
create compilers directory, found and renamed salama.rb
2017-01-14 20:05:58 +02:00
Torsten Ruger
01fe3b4b04
small rename
2017-01-14 19:52:16 +02:00
Torsten Ruger
bd78a2d555
renames Typed to Vm
2017-01-14 19:28:44 +02:00
Torsten Ruger
75c7ca950e
bit more method collector/creation testing
2017-01-13 22:16:06 +02:00
Torsten Ruger
3f6c1bc3a3
manage to create ruby methods
2017-01-12 20:38:04 +02:00
Torsten Ruger
89f5badc16
putting melon tests into module and splitting to one per file
2017-01-11 19:18:04 +02:00
Torsten Ruger
83d943afa5
Fix for call changes and helper changes
2017-01-04 21:38:38 +02:00
Torsten Ruger
0084406cfd
let check return and assert in main test
...
so one can better locale the error
(the assert in the helper does not give stack trace)
a shot at keeping the calling handshake out of the asserts failed
2017-01-04 21:38:03 +02:00
Torsten Ruger
49da77f996
fix interpreter tests to use classes (not strings)
...
and fix for the change in call sequence
2017-01-04 21:36:46 +02:00
Torsten Ruger
3f24409093
us the actual classes for expected results
...
If i remember strings were only used to shorten the names
Now in register module this is not neccessary
2017-01-04 21:35:50 +02:00
Torsten Ruger
f2c4e542ac
rename to to array function to to_arr
2017-01-04 21:32:09 +02:00
Torsten Ruger
88eae0e6f0
add colour output to tests
2017-01-04 21:31:03 +02:00
Torsten Ruger
8aee761b73
putting tests into module
2017-01-03 22:42:40 +02:00
Torsten Ruger
da58ce30e3
put arm tests in arm module
2017-01-03 22:37:55 +02:00
Torsten Ruger
a14a0de9d1
put everything into register module (avoid clashes)
2017-01-03 22:37:25 +02:00
Torsten Ruger
d94af2a724
align method compiler test names
2017-01-03 22:32:34 +02:00
Torsten Ruger
66f359a14f
move expression tests to standard dir for guard
2017-01-03 22:18:41 +02:00
Torsten Ruger
3b0c5c00ce
move tests to correct directory for guard to pick them up
2017-01-03 22:10:58 +02:00
Torsten Ruger
82ff8244cf
thougth i'd got that one
2017-01-02 01:02:07 +02:00
Torsten Ruger
7602fd0af4
fix positioned tests
...
thanks to codeclimate
the broken tests were still raising errors, just the wrong ones, but
coverage shoed it!
2017-01-02 00:53:28 +02:00
Torsten Ruger
cd474f66f6
stop including positioned
2017-01-01 21:52:35 +02:00
Torsten Ruger
b8b387d498
some extra assembler tests
2017-01-01 21:51:23 +02:00
Torsten Ruger
06cfbdf066
minor
2017-01-01 21:50:54 +02:00
Torsten Ruger
b7147b3dd4
simple collector test
2016-12-31 21:05:19 +02:00
Torsten Ruger
86dafccb04
stop including padding
...
use it as a helper module
2016-12-31 20:08:33 +02:00
Torsten Ruger
dccd097fef
remove collecting from the machine
...
use as stand alone module
2016-12-31 19:54:18 +02:00
Torsten Ruger
113b349af5
unlinking the objects collection from the machine
...
passing it around instead
2016-12-31 18:46:17 +02:00
Torsten Ruger
7bb1c361a5
small word test
2016-12-31 15:17:45 +02:00
Torsten Ruger
a2ece04b6d
a little more minimal elf tests
2016-12-31 15:08:32 +02:00
Torsten Ruger
b9073d0c88
redid the type hashing
...
account for the class the type is for
by adding it to the hash code, so even the ivars are identical the
types are not
2016-12-31 14:51:06 +02:00
Torsten Ruger
0fa7f54bcc
found and fixed hashing bug
2016-12-31 14:04:04 +02:00
Torsten Ruger
d6c503ecf4
inlined indexed into list
...
which was the only one using it.
A whole lot simpler, considering it will have to be bootstrapped someday
2016-12-30 21:00:18 +02:00
Torsten Ruger
e80d028f7b
test to check that types are types
...
which led to dictionary bug
2016-12-30 20:48:14 +02:00
Torsten Ruger
7f06e00ccd
making types private in space
...
turned out to be unnecessary, but still better
2016-12-30 20:47:28 +02:00
Torsten Ruger
ef66a87527
fixed silly dictionary bug
...
also finally duplicating keys and values and not handing them out
2016-12-30 20:46:18 +02:00
Torsten Ruger
83b6628f1a
whitespace and code style
2016-12-30 19:17:15 +02:00
Torsten Ruger
a82c9e8fb1
minor whitespace and renaming
2016-12-30 18:39:49 +02:00
Torsten Ruger
f0350601a7
Move the space instance to the parfait module
...
A better fit, maybe even a pattern for singletons
2016-12-30 14:10:49 +02:00
Torsten Ruger
a00f6be3ba
remove the space instance from register machine
...
bad design, probably from the booting
2016-12-30 14:04:59 +02:00
Torsten Ruger
ef872edd7a
rename instance_methods to just methods
2016-12-30 13:33:07 +02:00
Torsten Ruger
631038dfbd
add another test (still failing)
2016-12-30 13:15:08 +02:00