Anyone knows Haskell?

Branching off from this thread. Despite making some progress, I couldn’t make Reform compile with current Haskell tools. I created a repository here in case anyone wants to help out.

Most errors are of the type Could not deduce (Data.Array.Base.IArray X e) arising from a use of ‘X’.

3 Likes

I don’t know about Haskell, but I have a version of Reform for win32 from 2004-02-26. I think I found it on the net with help of “The Wayback Mahine”, but I don’t remember any details on what site even though I guess it was the homepage for Reform.

Anyway, It’s enclosed below…

reform_win32.zip (223.9 KB)

2 Likes

Thanks! I’d still like a version that runs on ARM64 and macOS, though.

1 Like

Can’t help you there. Sorry.

1 Like

I had made some progress yesterday, to the point where I got it to compile but came up with a different runtime error about reading the story file out of bounds. (Which may or may not be a separate issue I introduced with my changes.)

reform_updated_src.zip (57.0 KB)

(Build with cabal build, run with cabal run reform -- args.)

4 Likes

That’s excellent!

Any idea about this error?

% cabal build
Resolving dependencies...
Error: cabal: Could not resolve dependencies:
[__0] trying: reform-7.2023 (user goal)
[__1] next goal: base (dependency of reform)
[__1] rejecting: base-4.16.4.0/installed-4.16.4.0 (conflict: reform =>
base>=4.14 && <4.15)
[__1] skipping: base-4.18.0.0, base-4.17.0.0, base-4.16.4.0, base-4.16.3.0,
base-4.16.2.0, base-4.16.1.0, base-4.16.0.0, base-4.15.1.0, base-4.15.0.0 (has
the same characteristics that caused the previous version to fail: excluded by
constraint '>=4.14 && <4.15' from 'reform')
[__1] rejecting: base-4.14.3.0, base-4.14.2.0, base-4.14.1.0, base-4.14.0.0,
base-4.13.0.0, base-4.12.0.0, base-4.11.1.0, base-4.11.0.0, base-4.10.1.0,
base-4.10.0.0, base-4.9.1.0, base-4.9.0.0, base-4.8.2.0, base-4.8.1.0,
base-4.8.0.0, base-4.7.0.2, base-4.7.0.1, base-4.7.0.0, base-4.6.0.1,
base-4.6.0.0, base-4.5.1.0, base-4.5.0.0, base-4.4.1.0, base-4.4.0.0,
base-4.3.1.0, base-4.3.0.0, base-4.2.0.2, base-4.2.0.1, base-4.2.0.0,
base-4.1.0.0, base-4.0.0.0, base-3.0.3.2, base-3.0.3.1 (constraint from
non-upgradeable package requires installed instance)
[__1] fail (backjumping, conflict set: base, reform)
After searching the rest of the dependency tree exhaustively, these were the
goals I've had most trouble fulfilling: base, reform

EDIT: It means I need an older version, right?

1 Like

Basically it’s saying that your version of base (the standard library package) that came bundled with your installation of GHC is newer than the one I was using.

You can hopefully just go into reform.cabal and change the line

base >=4.14 && <4.15,

to instead read

base ^>=4.14,

and it should hopefully work unless they rearranged their namespaces again or some nonsense.

(If that fails, you’ll need to use something like GHCup (haskell.org) to install a compiler from the GHC 8.10 line.)

3 Likes

I updated the reform.cabal file to fix the dependencies, but got a different error about missing ffi.h, even after re-installing libffi.

However, simply running make and then ./reform seemed to work just fine, so I guess it’s all good.

EDIT: I took the liberty of updating the repository at https://github.com/angstsmurf/reform with your changes.

4 Likes