Dec 28 19:17:27 <kj> don't think zcode is still being maintained(funny thing is that i wasn't even here at that time, cognominal reported it to me later on)
Dec 28 19:19:16 <rurban> Looks like so, yes.
Dec 28 19:19:27 <rurban> befunge being the worst.
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!
Thanks for the nice writeup.
ReplyDeleteIn languages/befunge I have also updated the README
and add a Configure.pl.
Regards,
Bernhard Schmalhofer