Closed samth closed 3 years ago
Thanks so much for the help @samth. Could you rebase this pull request? I think I fixed what was making the CI script fail.
Rebased.
Ah, hmm, the errors this time are a bit more interesting.
ffi/unsafe/vm
doesn't exist. (I guess it was introduced in 7.6.) Could you add dynamic-require
to keep those versions working, @samth? If not, I can try to do it, or we could simply discontinue support for these old versions. (If I do, should I do a pull request on this pull request?)For the record, here's some more detail on the 7.9 issues. (They arise in unit tests that aren't hooked into the raco test
system, if you were wondering why they didn't show up for you.)
There are two tests in lib/tests/core-typing-test.arc that are overly coupled to the error message:
types.coerce.strings.string->int.coerce-positive-infinity-to-int failed: (details ex) should be "inexact->exact: no exact representation
number: +inf.0" but instead was "exact: no exact representation for +inf.0"
[...]
types.coerce.strings.string->int.coerce-negative-infinity-to-int failed: (details ex) should be "inexact->exact: no exact representation
number: -inf.0" but instead was "exact: no exact representation for -inf.0"
And there are two tests in arc.arc.t that are overly coupled to the hash iteration order (which I think changed in Racket 7.7 with its new HAMT-based implementation of hashes):
serialize.tables failed: (serialize (obj 1 2 3 4)) should be (tagged table ((3 4) (1 2))) but instead was (tagged table ((1 2) (3 4)))
[...]
serialize.nested-tables failed: (serialize (obj 1 (table) 2 3)) should be (tagged table ((2 3) (1 (tagged table nil)))) but instead was (tagged table ((1 (tagged table nil)) (2 3)))
Come to think of it, there used to be a bunch more dynamic-require
calls in the codebase, and not long ago these were all replaced with require
even though it meant bumping the Racket version. What do you think of bumping the version to 7.6, @akkartik, @zck, @kennethrapp, or anyone else with an active interest?
I'm in favor of anything that makes Anarki easier to work on, as long as it doesn't require especially onerous work on the part of users. And "update to a Racket version released nearly two years ago" is not too difficult.
EDIT: to be explicit, I'm in favor of bumping the required Racket version to 7.6 if it makes life easier.
In general in my own projects, I tend to weigh bumping version requirements against the benefit. If there's a one-line change that allows me to use an older version while remaining compatible with newer ones, it seems nice to be more accessible to someone on an older computer and so on.
However, my interest is not very active so I don't feel I have a vote :) I'm also sympathetic to using Anarki as a vehicle to keep up with goings-on in Racket-land.
Racket's pretty easy to reinstall, so personally having to upgrade doesn't feel like a big cost. I'd say 👍
Okay, could you rebase again, @samth? Thanks for your patience, and no rush.
I've updated the lowest supported version to 7.6... which I'm not sure will be quite high enough, since ffi/unsafe/vm
is documented as becoming available in 7.6.0.7. (I suppose I could've obtained 7.6 locally and tried it out....)
I've also set the HEAD builds so that they're "allowed failures," which is something I've been meaning to do for a while. This may be a little counterproductive for the purpose of this ticket; it means the build might appear to pass even if the version we're trying to support here turns out to be failing. Clicking through to the Travis CI status page will reveal whether the 7.9 [cs] build is passing.
I'm ok with bumping the Racket version.
Ah, indeed, 7.6 wasn't late enough. I've bumped up the minimum version to 7.7. This time I ran the tests locally on 7.7, and it seems to be working.
Could you rebase, @samth?
Thank you both!
Rebased again.
Thank you so much @samth. All the checks have passed! Gonna merge it. :)
Fixes test failure https://plt.eecs.northwestern.edu/pkg-build/server/built/test-fail/anarki.txt