1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
* Build improvements
+ Add a make realclean to cross compiler Makefile to nuke debug files
* WIP: gcc warnings cleanup
+ WIP: -Wall
- DONE: -Wparentheses
- DONE: -Wreturn-type
. All are in src/6model/reprs.c, because of exception-throwing stubs; may
have to explicitly ignore this using the second (granular) method of:
http://dbp-consulting.com/tutorials/SuppressingGCCWarnings.html
- -Wpointer-sign
. A lot of this is in correct handling of encoded string buffers;
use MVMuint8* for this
- -Wimplicit-function-declaration
. Header fixes?
- -Wunused-but-set-variable
- -Wunused-function
- -Wunused-variable
+ -Wall -Wextra
+ -Wall -Wextra -pedantic
+ Turn on -Werror -pedantic-error
* Make sure that all visible names have an MVM or MVM_ prefix, except for those
intended to be the same across all NQP backends
* Review type checking of MoarVM bytecode validator
* Document ops
+ Write oplist / docs merging program
- =op copies oplist info into doc
- multiple ops can (e.g. type variants) can have one description
- checks for undocumented ops or no-longer-supported ops
+ Document, document, document ....
* Compare interpreter performance v. SSVM:
+ Original SSVM version:
- my $a = 100_000_000; my $b = 3; my $c = 6; while ($a--) { $c += $b }; say $c;
- MoarVM is 1.96x -> 4.16x slower at tight loop raw opt dispatch,
depending on gcc opt settings (-O3 -> no opt)
- compare with and without 'inc' and other SSVM tricks
+ jnthn++'s 2013-01-28 version:
- nqp -e "sub foo() { }; my $i := 0; while $i++ < 100000000 { foo() }; say($i)"
|