Torsten Ruger
a7207a9984
wrap parfait tests in module and boot
2018-04-26 12:31:37 +03:00
Torsten Ruger
30ba626cf9
fix knock ons
2018-04-24 20:16:50 +03:00
Torsten Ruger
04359546b7
implement greater than
2018-04-19 22:57:31 +03:00
Torsten Ruger
9e21719aeb
generalise the operator handling
...
ie passing them through
implementing more
2018-04-19 22:13:52 +03:00
Torsten Ruger
33ffcf1d88
move resolve_method code from word to mom
...
rather make resolve an instruction.
Since it was coded in risc anyway, we not only save the setup and call
But also makes the mom instruction flow clearer
The method really came from not wanting to code it in risc, but with
the Builder, that is now surprisingly painless
2018-04-08 18:55:17 +03:00
Torsten Ruger
ee0a1ca823
renaming methods args and frame
...
to arguments_type and frame_type, because that is what they are
In honour of setup bug, where the types of those types were loaded,
instead of just them types
2018-04-05 12:22:14 +03:00
Torsten Ruger
b9f85f9d2e
use instance_variable_set/get instead of eval
...
opal doesn’t like eval anymore
2018-04-03 19:33:36 +03:00
Torsten Ruger
52d389cdbf
auto extend binary code
...
final solution will need repositioning
2018-04-03 15:07:36 +03:00
Torsten Ruger
9fafbe4e96
remove Kernel class for clarification
...
since it was a class it was fake anyway
moved methods to object
2018-04-02 17:06:31 +03:00
Torsten Ruger
87eee0b66e
add object method missing as sys exit
...
functions get added twice and thus removed once
remove restriction for now
2018-04-02 16:49:30 +03:00
Torsten Ruger
fb29fb6431
linked list of methods instead of list of methods
...
api changes slightly, especially for each, but mostly sama sama
2018-04-02 16:36:43 +03:00
Torsten Ruger
3a9539a071
adds multiplication
...
without overflow testing, like the others
2018-04-01 21:18:08 +03:00
Torsten Ruger
b1376e83bd
add integer minus
...
rework plus to make that easy
2018-04-01 15:26:53 +03:00
Torsten Ruger
5c89884df9
fix binary code mixup
...
mixed get_word with get_internal_word
2018-04-01 12:13:14 +03:00
Torsten Ruger
15d2b585e6
fix integer and data object get/set word
...
instance variables first, then raw data
keep value reader for now
2018-04-01 11:56:04 +03:00
Torsten Ruger
4725b81270
get those integers crated and used
2018-03-31 20:21:27 +03:00
Torsten Ruger
cb9f6973d9
fix true false and nil constant
...
going from mom to parfait
basics in place, more ripples to fix
2018-03-31 13:47:02 +03:00
Torsten Ruger
1956f18faa
add an integer plus
...
not correctly handling integer objects yet
2018-03-30 17:09:02 +03:00
Torsten Ruger
e012f16d7f
fix positioning and the assembly works
2018-03-29 18:03:21 +03:00
Torsten Ruger
00be522419
each word for binary
2018-03-29 17:38:59 +03:00
Torsten Ruger
85ddf53429
create methods with binaries and extend them later
...
Binary is new jump target for function call
2018-03-28 12:49:17 +03:00
Torsten Ruger
3fcb4b74c7
fix binary code set_char bug
2018-03-26 19:41:30 +03:00
Torsten Ruger
a9d5e144ca
get/set word for binary code
2018-03-26 18:14:52 +03:00
Torsten Ruger
1e21177b35
just keep binary code payload at 13 for now
...
there is an extra in there at the last of the last, but ok
2018-03-26 14:37:55 +03:00
Torsten Ruger
60617ca632
some binary code tests
2018-03-26 14:04:13 +03:00
Torsten Ruger
2c6ea7ea46
finish truth check (green again)
...
some (basic) if tests
2018-03-20 13:30:38 +05:30
Torsten Ruger
8c53b4ab67
fix more api ripples from typed method
2018-03-18 22:37:43 +05:30
Torsten Ruger
559a797100
rename locals to frame
2018-03-14 20:24:47 +05:30
Torsten Ruger
2aa7d37a83
rename locals to frame
...
includes temps and tradition
2018-03-14 17:39:04 +05:30
Torsten Ruger
d6a2ea4cfc
fix dynamic resolve
...
patch more like, real resolve method will have to be written
and put in there
2018-03-10 19:01:38 +05:30
Torsten Ruger
47683817ee
implements resolve_method on parfait type
...
with associated changes to class
adds note about the not being the final version
2017-04-25 09:06:49 +03:00
Torsten Ruger
e387bdb5f2
fixes parfait/type tests place and guard file accordingly
...
test were in old directory and guard file broken accordingly
2017-04-23 18:43:32 +03:00
Torsten Ruger
21b436c476
update parfait message according to boot
...
most of the attributes are not used at compile time ,
so they did not get updated. But the compiler uses the attribute
names (which are correct as they are set in boot), so it’s nice
to actually see them in ruby too.
2017-04-14 11:13:47 +03:00
Torsten Ruger
73b7e2b22f
remove all test_all
...
Stop manually creating the list of tests (and searching missing).
Main level test_all does a search for all test_*
also possible to run by command line with starts
2017-04-13 17:00:56 +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
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
18f9ea019e
move parfait tests to some
...
after renaming compiler to soml
it’s where they wanna be
also will allow for unifying test helpers and testing fragments
remotely too
2015-11-18 12:14:31 +02:00
Torsten Ruger
2bc2d4486f
move interpreter to register
...
seems more where it belongs, since it interprets the register machine
instructions
2015-11-18 12:00:30 +02:00
Torsten Ruger
aa30864fcb
typo
2015-11-18 11:30:39 +02:00
Torsten Ruger
ac620f8ea0
unroll loops in tests
...
to get one executable per test (before they were overwritten)
2015-11-18 11:29:37 +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
bc3042a466
use rye to test remotely
...
via ssh , no config yet
2015-11-16 23:23:08 +02:00
Torsten Ruger
f92ea36fe5
minor fixes
2015-11-16 18:02:13 +02:00
Torsten Ruger
278eccbed5
derive binary code form word
...
long ago hacked the binary code to use integers (thus forsaking correct
arm binaries)
Finally fix by deriving from Word which now has correct binary access
Dumped binary.name in the process, that is available from the method
2015-11-14 15:04:04 +02:00
Torsten Ruger
8fa92515b5
update arm and small arm fixes
...
constants in arm chunks, needs better solution
2015-11-14 13:05:49 +02:00
Torsten Ruger
12e210fdf5
no to slow tests to a halt
...
also the high low code isn’t even used in the current version, no need
to test too much
2015-11-13 20:50:33 +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
c190f718ec
fix fibs test to 32 bit maxs
2015-11-13 20:44:18 +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
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
8528fae785
add the new tests
2015-11-10 19:12:50 +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
b2de1c6d79
minor fixes
2015-11-08 23:58:54 +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
6cd95ee933
more layout tests, seeing class names on stdout
2015-11-08 00:55:37 +02:00
Torsten Ruger
ab7e517e9e
slightly tighter parfait tests
2015-11-07 22:26:06 +02:00
Torsten Ruger
7523bac80a
add layout and class accessor and test
2015-11-07 19:38:52 +02:00
Torsten Ruger
8aabff6b37
get layout test
...
start of copying the ruby parfait tests
lots can be done with string output and return value
2015-11-07 17:39:17 +02:00
Torsten Ruger
d878ce00d8
framework for parfait runtime testing
...
with interpreter for now
later with arm exec support
2015-11-07 17:37:41 +02:00
Torsten Ruger
c9c0f66d79
rename test/parfait
...
to then write parfait test on the runtime
2015-11-07 14:04:38 +02:00
Torsten Ruger
204200b92a
metaclass is back
...
this time with a real purpose and implementation as the intermediary
As the interface to the layout and for replacing an edited layout
2015-11-07 00:11:56 +02:00
Torsten Ruger
aad50021fe
more messages for recursive fibs
2015-11-05 12:23:11 +02:00
Torsten Ruger
23e09b7149
more dubious test hacking
2015-11-02 17:32:06 +02:00
Torsten Ruger
0094a89707
fix spurious test
...
or maybe hack is more correct
2015-11-02 11:34:08 +02:00
Torsten Ruger
7d7b7ca995
adding types to layout
...
so we can test assignment
2015-10-29 12:45:29 +02:00
Torsten Ruger
79cf59c4e2
still finding index errors
2015-10-27 18:45:56 +02:00
Torsten Ruger
444ad75e1e
some message tests, all ok
2015-10-27 18:08:40 +02:00
Torsten Ruger
bd171d091a
fix tests for indexed messages and frames
...
index_length changes index a bit
but from now on changes to layouts should push the index automatically
just have to set the index while calling now
2015-10-27 16:05:50 +02:00
Torsten Ruger
abaa56fbba
add create_method for layout too
...
as for class, same signature
some more test for behavior
2015-10-26 17:24:28 +02:00
Torsten Ruger
9d0b264b79
minors
2015-10-26 17:23:35 +02:00
Torsten Ruger
55dd5f74fc
fixed layout inspect bug
2015-10-26 15:07:59 +02:00
Torsten Ruger
885aa765d6
still fixing index bugs
...
the indexed_length got written wrong
which is why the layout methods didn’t work
Now all indexes are 1 based, even fake men, where we just ignore 0
2015-10-26 14:33:36 +02:00
Torsten Ruger
9f4952b5ac
create behavior module
...
behavior handles instance methods (add/remove/find)
and shall be included in layout later too
2015-10-26 13:27:56 +02:00
Torsten Ruger
4cadfc9ea9
shortening some methods, removing object prefix
2015-10-26 12:58:38 +02:00
Torsten Ruger
d2c670b31a
fixing offset bug
...
found by tests that overwrite the attribute
2015-10-26 12:57:54 +02:00
Torsten Ruger
96f43dcfda
also giving word it's length
...
still hacked as char per word, but should be easy enough to fix when…
2015-10-26 12:23:52 +02:00
Torsten Ruger
979ebb7612
fixing indexed stuff
...
layout returns layout as first name (offsets indexes)
object internal length is gone into layouts functionality
2015-10-26 12:22:32 +02:00
Torsten Ruger
df62b75c6f
adding an instance for the length of lists
2015-10-25 20:44:03 +02:00
Torsten Ruger
c1ee67038c
internally objects stop changing size
2015-10-25 20:43:13 +02:00
Torsten Ruger
60098257e9
use include so we can test with is_a
...
using the well documented included/extend trick
2015-10-25 19:16:12 +02:00
Torsten Ruger
b7d0ee8f99
wit metaclass and class functions
...
needs to go back to arrays first
2015-10-25 15:40:12 +02:00
Torsten Ruger
0d001ec0fc
rename super_clsas to super_class_name
...
as it should have been
2015-10-25 15:32:38 +02:00
Torsten Ruger
99870c92d8
linking new tests in
2015-10-25 14:03:47 +02:00
Torsten Ruger
7de2f913a0
more class tests
2015-10-25 13:19:18 +02: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
dcbd3c7091
fold last of the virtual into register
2015-10-22 18:16:29 +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
dc3920580b
bit more cleaning of testing
2015-10-16 18:34:54 +03:00
Torsten Ruger
0c8be466df
fix parfait test
2015-10-14 21:36:51 +03:00
Torsten Ruger
80d58ee03c
fixed simple layout offset bug in layout
2015-10-13 14:46:07 +03:00
Torsten Ruger
259b0afa96
improve tests
2015-09-27 20:28:34 +03:00
Torsten Ruger
252c0ccdca
finish typing variables
2015-09-27 16:06:48 +03:00
Torsten Ruger
5d838056fa
small rename and new test for layout
2015-08-08 18:08:47 +03:00
Torsten Ruger
c0071c947d
bit more testing
2015-08-06 18:26:59 +03:00
Torsten Ruger
8ab9a417aa
minors
2015-07-30 19:18:41 +03:00
Torsten Ruger
3fb08acf3f
better tests to find sneaky module bug
2015-07-28 16:19:10 +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
08e1852e5f
test get class
2015-07-19 21:22:29 +03:00
Torsten Ruger
7451493193
rearranging tests a little
2015-07-19 10:54:36 +03:00
Torsten Ruger
ac9d5eaf5a
fix tests by reordering (hmm)
2015-07-19 10:45:12 +03:00
Torsten Ruger
4f2f56fff8
minors
2015-07-02 13:49:33 +03:00
Torsten Ruger
caa4ae1cf0
new tests for space
...
finds the bug in message creation!
2015-07-02 11:09:23 +03:00
Torsten Ruger
db5c958d2e
fix lists first
2015-05-31 13:26:47 +03:00
Torsten Ruger
96a20ff554
add delete to list
2015-05-30 14:22:33 +03:00
Torsten Ruger
1170761922
fix classic index bug
2015-05-24 15:05:58 +03:00
Torsten Ruger
b4eb14e639
found bug and more tests
2015-05-21 21:50:39 +03:00
Torsten Ruger
d71547ea01
copy and other improvements for word
...
more tests reveal a bug (fixed) and more docs
2015-05-20 13:50:25 +03:00
Torsten Ruger
d348e7afe7
more parfait ripples
...
changes due to previous changes in parfait api
2015-05-18 10:10:31 +03:00
Torsten Ruger
cff827ad42
final word fix
...
that does the parfait
2015-05-17 15:34:45 +03:00
Torsten Ruger
e70bfb9f7a
many minor parfait fixes
2015-05-17 15:34:29 +03:00
Torsten Ruger
3bdba119c8
fix the list after object fixes
...
start index at 1, but don’t overwrite layout,
so add one
2015-05-17 14:56:06 +03:00
Torsten Ruger
3b268df920
init with nil layout
...
making the default length 1 (the nil layout)
2015-05-17 14:55:10 +03:00
Torsten Ruger
701b0bc011
fix object grow
...
and write a test (and another one …)
2015-05-17 14:44:48 +03:00
Torsten Ruger
8fa501fb91
fix object compiletime
...
and write some tests for it
2015-05-17 14:38:25 +03:00
Torsten Ruger
a46dd9f6bf
more word tests
2015-05-15 20:31:43 +03:00
Torsten Ruger
0731a6061a
fix word implementation and tests
...
much better, though wasteful implementation
breaks a few tests, but ploughing on first
2015-05-15 16:45:36 +03:00
Torsten Ruger
dd41758dea
renamed array and hash to list and dictionary
...
Since these are not the ruby classes, we don’t need
the old names. They are misleading.
An Array is a military term, we mean list
And a Hash is an implementation of a Dictionary,
or LookupTable
2015-05-12 19:10:45 +03:00
Torsten Ruger
a94ce51c58
also test array
...
minor (ahm) fixes to array logic
2015-05-12 19:03:14 +03:00
Torsten Ruger
398516a596
fixes parfaits hash by implementing array
...
basic concept holds up as parfaits hash is now
working on parfaits own array
2015-05-12 18:52:01 +03:00
Torsten Ruger
d94ec6c72c
fix parfait test
2014-09-04 14:22:28 +03:00
Torsten Ruger
0271045ff4
corrected unit name
2014-08-30 20:46:38 +03:00