catseye / Funge-98

MIRROR of https://codeberg.org/catseye/Funge-98 : The Funge-98 specification in all its gory
https://catseye.tc/node/Funge-98
32 stars 2 forks source link

Inconsistent delta for high/low #10

Open cwesson opened 4 years ago

cwesson commented 4 years ago

The program flow section states that h is delta <- (0,0,1) and l is delta <- (0,0,-1), whereas the quick reference states the opposite.

j4james commented 4 years ago

I can't believe I've never noticed that before. And unfortunately that has resulted in some inconsistency in the various Trefunge implementations. It looks like Rc/Funge and Fungi interpret h as (0,0,1) and l as (0,0,-1), while PyFunge has them the other way around.

cwesson commented 4 years ago

BeQunge also uses h as (0,0,1), which I noticed while implementing BeQunge compatibility on by own interpreter, which uses h as (0,0,-1).

LunarLambda commented 3 years ago

Running into this with my own interpreter right now. Even going back to the initial commit (HTML spec dated 2004) the inconsistency exists. FBBI never implemented trefunge, and I don't think mycology covers trefunge either.

How fun. I'll see if I can dig up an even older version of the spec somewhere. Update: RcFunge has the 1998 version, and it has the same inconsistency: https://www.rcfunge98.com/spec98.html Somehow I doubt Chris will let us know which one he originally meant :stuck_out_tongue:

h being +z would be more probable if we assume the quick reference was an afterthought, but h being -z would also make sense if we consider 'go low' analogous to 'go down'.

The description and quick reference for m (High-Low If) is consistent with h = -z, l = +z, so I'm inclined to go with that, however if RcFunge does it the other way around, it seems some sort of switch to flip the z axis might be appropriate.

cpressey commented 3 years ago

Somehow I doubt Chris will let us know which one he originally meant :stuck_out_tongue:

"he"? "meant"?? What is this gibberish? Funge-98 was strictly a committee effort; any supposed intent on behalf of any individual was efficiently eliminated by the sheer, pummeling bureaucracy of the specification process.

If it helps, I do think that one can, in general, reasonably assume that anything calling itself a "quick reference" is more or less advertising itself as having been distilled from something else, rather than having been the basis for something else.

And if the goal is to be compatible with the millions and millions of lines of mission-critical legacy Trefunge code out there in the wild, then yes, implementing a command-line switch or similar contrivance to support both possibilities is indeed a prudent notion.

LunarLambda commented 3 years ago

what is this gibberish

unfortunately I don't have access to who the rest of the Funge-98 Standards committee was, and where to talk to them :p

cheers!

On Tue, 22 Jun 2021, 17:00 Chris Pressey, @.***> wrote:

Somehow I doubt Chris will let us know which one he originally meant 😛

"he"? "meant"?? What is this gibberish? Funge-98 was strictly a committee effort; any supposed intent on behalf of any individual was efficiently eliminated by the sheer, pummeling bureaucracy of the specification process.

If it helps, I do think that one can, in general, reasonably assume that anything calling itself a "quick reference" is more or less advertising itself as having been distilled from something else, rather than having been the basis for something else.

And if the goal is to be compatible with the millions and millions of lines of mission-critical legacy Trefunge code out there in the wild, then yes, implementing a command-line switch or similar contrivance to support both possibilities is indeed a prudent notion.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/catseye/Funge-98/issues/10#issuecomment-866060160, or unsubscribe https://github.com/notifications/unsubscribe-auth/AJI55IQGP4N2VHISM54FHPTTUCQSLANCNFSM4M46DNPA .