exercism / gnu-apl

Exercism exercises in GNU APL.
https://exercism.org/tracks/gnu-apl
MIT License
13 stars 11 forks source link

Unit Test Harness may not be compatible with GNU/APL 1.7 #18

Closed NewForester closed 1 year ago

NewForester commented 7 years ago

With all Exercism exercises I have with GNU/APL 1.7:

***** TEST LOG *****

VALENCE ERROR
test¯read_unicode[1]  unicode←19 ⎕CR ⎕FIO[26]filename
                              ^              ^
)SI not cleared at the end of hello-world.tc:
test¯read_unicode[1]  unicode←19 ⎕CR ⎕FIO[26]filename
                              ^              ^
test∆show_log[3]  test¯warn test¯read_unicode filename
                  ^
⋆  test∆show_log log
   ^

This did not occur with GNU/APL 1.6.

The error is not a failing test case but appears to come directly from the unit test harness' _showlog function.

marnen commented 7 years ago

That's bizarre. (I haven't actually tried this with 1.7 yet, but I don't see why the syntax would be any different than it is for 1.6.) Does putting parentheses around ⎕FIO[26]filename make a difference?

marnen commented 7 years ago

Aha! Just found http://lists.gnu.org/archive/html/bug-apl/2017-01/msg00109.html, which does suggest that parentheses will do the trick. Try it and let me know!

AtelesPaniscus commented 7 years ago

The parentheses do do the trick. Looks like another GNU/APL bug but I'm not counting.

A pertinent question is where is your test.apl going to reside post-launch ? I'm using a copy I grabbed from a repository because I'm not using a clone yet. How do you intend to install it two directory levels up for everyone who wants to try the exercises on this track ?

Over on the Erlang track, each exercise has a subdirectory that contains a single file that is the same for every exercise. Sounds dumb but it is simple and it works.

marnen commented 7 years ago

@AtelesPaniscus:

The parentheses do do the trick. Looks like another GNU/APL bug but I'm not counting.

Not quite a bug; rather, according to that link I posted, the semantics of ⎕FIO had a breaking change in 1.7.

A pertinent question is where is your test.apl going to reside post-launch ?

Excellent question indeed, since APL has no package management system like Gem/Stack/Yarn/whatever. @kytrinyx is apparently planning some new tooling that will help this, if I understand correctly; see https://github.com/exercism/gnu-apl/pull/6#issuecomment-322094924 for more discussion.

marnen commented 7 years ago

Normally I'd ask one of you to make a pull request for the parentheses; however, in this case, I think I want to rewrite this a bit. I'll post here again when the new version is ready to test on 1.7.

marnen commented 7 years ago

OK, see #19 for the new version. I'm going to try to get Travis testing on GNU APL 1.7 as well as 1.6, but in the meantime, I'd appreciate feedback.

AtelesPaniscus commented 7 years ago

I already gave feedback on this and it did not work. Let me know when there is a new version to test.

The GNU documentation is most unhelpful. There appear to be no release notes or anything resembling them. The change log refers you to the repository and the change log there is about as useful as a 'map' that comprises just a list of post codes.

The documentation does say that ⎕FIO is new in GNU APL 1.6 so a breaking change in 1.7 does not sound like this is stable (although that does not mean to say that is not).

marnen commented 7 years ago

The GNU APL documentation is terribly organized, but it does exist. As for a changelog, the SVN commit messages seem to be at least moderately useful.

The mailing list seems to be pretty active; I don't subscribe but do read the public archives. Also worth knowing: GNU APL works very similarly to APLX, which has much better documentation.