Skip to content

Create new a6hk and ta6hk machine types for haiku#1034

Open
tealeg wants to merge 3 commits intocisco:mainfrom
tealeg:add-haiku-machine-types
Open

Create new a6hk and ta6hk machine types for haiku#1034
tealeg wants to merge 3 commits intocisco:mainfrom
tealeg:add-haiku-machine-types

Conversation

@tealeg
Copy link
Copy Markdown

@tealeg tealeg commented Apr 15, 2026

This PR defines two new machine types for building Chez on the x86_64 variant of the Haiku operating system:

  • a6hk
  • ta6hk

These are essentially the same patches I applied to build the Haikuports package that is already available on the platform. It makes sense to me to push this upstream and and maintain the machine types here, on the upstream project rather than juts re-creating them for each new release. I'm quite happy to take responsibility for maintaining them.

Haiku isn't fully POSIX compliant, so there are some variations from the behaviour of UNIX like systems, reflected in the tests.

Looking forward to any feedback / ideas.

@mflatt
Copy link
Copy Markdown
Contributor

mflatt commented Apr 16, 2026

Thanks for this port!

Most of these changes make sense to me, but I worry about having to disable all the "file exists" expected-error tests (where "file or directory already exists" is the message on Haiku). I'll propose a different approach, which is to rewrite the error message as captured in tests to normalize it as "file exists" .

I don't see why some other test changes would be needed, such as disabling the ((lambda (x) (and (or (fixnum? x) (bignum? x)) (>= x 0))) (time-second $time-t8)) test. Maybe that was needed for an intermediate point during porting?

I think you probably included for changes than needed in install.zuo. It looks like the change was meant to be about hard links being unavailable on BeFS, and it seems like the adjustment to the ln-f function is all that is needed in the end.

Here's an additional commit that reverts/adjusts some changes along those lines:

mflatt@ff3b6f6

With these changes, make test-one-safe passes in a build for me (on a Haiku installation in a VM), and make install still works. Does it still work on your machine?

@mflatt
Copy link
Copy Markdown
Contributor

mflatt commented Apr 17, 2026

FWIW, I also experimented with using this patch to build Racket (enough to start, but more is needed on the Racket side to work properly): https://github.com/mflatt/racket/tree/haiku

@tealeg
Copy link
Copy Markdown
Author

tealeg commented Apr 18, 2026

@mflatt - funnily enough, I also started work in that direction, but didn't get far yet.

@tealeg
Copy link
Copy Markdown
Author

tealeg commented Apr 18, 2026

@mflatt thanks also for the suggestions. I'll bring up my build server on Sunday and give it a go.

@tealeg
Copy link
Copy Markdown
Author

tealeg commented Apr 19, 2026

@mflatt I've cherry-picked in your patch and tested. Everything is passing. Thank you so very much!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants