On Tue, 18 Nov 2014, Andrea Bolognani wrote:

Beef's focus is on flexibilty rather than performance: as you noticed,
previous versions were not among the fastest Brainfuck interpreters
...

Then perhaps you should document where it's a flexible interpreter because
at the moment I'm not seeing anything.

I suppose I might look for, at first, things like changing the cell size
at run time: 8/16/32 bits, maybe 64, 128 or unlimited bits, maybe ONE
bit for 'boolfuck'.  That could lead onto variations in the front end
processing; perhaps a macro language, perhaps variant syntaxes like
"Ook", "Blub" and "fuckfuck". Other things could include variations
on the I/O, reading from a string (Looks like you have the ability to
'fdreopen' the standard in from a file, though I'm not sure why, after
all shell redirection works fine and is well known) mixing reading the
program and data from the stdin, either in the traditional compile style
(with a "!", but obviously that's a comment character so it should be
possible to disable it) or the scrablmed 'easy' style. You have EOF
processing, but you missed the 'abort on EOF' variation. Things that can
apply to both I/O might include ASCII vs Binary and Unicode vs Decimal,
perhaps the EsoAPI you have a wishlist for. In the middle you can have
optimisations, there's the short list of 'brainfuck' optimisations:
RLE, SetZero, RailRunners, RailCleaners, CopyLoops, "Simple" (what I
would call MaAd) loops and so forth. Then there's the more traditional
optimisations starting with constant folding. Next there's how you run
it, obviously a plain interpreter is one option. Then there are lots
of languages you could convert it to ... Assembler, B, C, D, E, F#,
Go, Haskell ... Perl, php, Python ... Ruby, Scheme, TCL ... Lua, Ksh,
Julia ... fuckfuck ... that list is endless. Other features might relate
to debugging, breakpoints, tracing, profiling, conditional breakpoints
and more. Finally, there are language variations, extra commands, Forks,
Files, Functions, Math and Boolean operations, Stack support, Clocks,
timers and events ... this list is also endless.

Some of these will be slow, or really slow, but BF is such a small
language that nothing stops you including multiple interpreters; one
with every bell an whistle you can think of and other smaller, much
faster ones.

I look forward to your next version, but, seriously, this version should
be withdrawn until it's performance is better. I'd accept "sort of okay",
after all it'd be a lot better than now.

How about a little starter ... with the rather appropriate/inappropriate
name of 'deadbeef'

https://gist.github.com/rdebath/a12653a3c167cf93ab6a

--
Rob.                          (Robert de Bath <robert$ @ debath.co.uk>)
                                             <http://www.debath.co.uk/>

--
Andrea Bolognani <e...@kiyuko.org>
Resistance is futile, you will be garbage collected.



--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to