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