befunge on parrot now working (again)
Jerome Quelin
jquelin at gmail.com
Fri Jan 9 13:28:04 UTC 2009
hi,
it all started with a discussion on #parrot:
Dec 28 19:17:27 don't think zcode is still being maintained
Dec 28 19:19:16 Looks like so, yes.
Dec 28 19:19:27 befunge being the worst.
(funny thing is that i wasn't even here at that time, cognominal
reported it to me later on)
as befunge on parrot author, it hurted my pride. i could stand that
befunge wasn't the best parrot language implemented, but being the
worst... i had to do something!
so, after some time to compile parrot (didn't did that for 3 years, it's
now way easier!), getting up to speed to groak parrot error messages, i
started porting befunge on recent parrot.
i took the opportunity to move from pasm to pir, using neat addons such
as subs (even with parameters and return values!), named vars, random
pmc (instead of pseudo random stuff using mod and chicken sacrifying)
and other welcome stuff that were not available in 2002 when i first
implemented befunge on parrot.
the result is a working befunge-93 implementation on top of parrot, and
befunge now passes its tests:
$ make test
../../parrot -o befunge.pbc befunge.pir
cd .. && /usr/bin/perl5.10.0 t/harness --languages=befunge
befunge/t/basic....ok
All tests successful.
Files=1, Tests=1, 1 wallclock secs ( 0.06 cusr + 0.01 csys = 0.07 CPU)
i also checked this implementation with mycology, and it seems to work:
* plain mycology: reports a failure on sgml-mode, but that's a bug
in mycology
* mycouser: success, before jumping to befunge-98 library semantics,
where it fails (of course)
* mycorand: success
so, all in all, befunge on parrot is once again alive and kicking!
enjoy,
jérôme
--
jquelin at gmail.com
More information about the parrot-dev
mailing list