[haiku-development] Re: [haiku] Re: Future releases? Recommend nightlies? gcc2?

  • From: kallisti5 <kallisti5@xxxxxxxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Fri, 02 Dec 2016 14:33:38 -0600

On 2016-12-02 10:48, Axel Dörfler wrote:

Am 01.12.2016 um 17:08 schrieb Adrien Destugues:
R1a4 was 32bit only, but I think we can make beta1 the first release
to officially support 64bit. This kind of solves the gcc2 problem by
itself.

Have you really thought this through yet?
Anyway, I guess I cannot just miss out on such a discussion :-)

I've been waiting for you to chime in :-D

I think we need to clearly plan our ABI future and changes, before
doing anything different from what we're doing now (slooowly working
towards R1, that is).

We have the general options (Compatibility is maintained between
releases unless otherwise mentioned):
1) Use gcc2 as stable ABI, anything else is experimental (and that
would therefore also include the x86_64 ABI). gcc2h is the default
release.
2) Like 1, but the default release would be gcc5h -- IOW the
replicants/screensaver/etc. ABI would not be stable.
3) Declare current gcc5 as our stable ABI, but keep gcc2 around for
compatibility, ie. gcc5h, too.

Definitely down with 2 or 3.  1 is more classical what we've been
targeting...  PulkoMandy talked me back to gcc2h a bit in IRC...

https://s18.postimg.org/71fez7mk9/ABI.png

From a branding perspective 1 does make sense, however we're just
so very, very late to the party.

4) Declare current gcc5 as our stable ABI, and ditch gcc2 completely, ie. gcc5.

Nah. We've put so much work in on ABI compliance, i'd hate to see us toss it
completely.

5) Declare both gcc2, and gcc5 stable. This would require us to
maintain another compatibility layer in the future. gcc2h.

Nah.  I think 2 is enough.

6) Like 5, but with gcc5h instead.
7) Like 5 or 6, but only maintain binary compatibility between major
releases. This is pretty much how the Linux world works.

Each option has its own set of advantages and disadvantages.

1) was our answer to this question so far; personally I wouldn't mind
much between 1) and 2). I find having a current ffmpeg and libraw
quite tempting, at least.

And llvmpipe opengl which can actually handle some low-end 3d games :-)

I'm still doing my taxes with Gobe Productive, so I'm very interested
in keeping gcc2 alive as long as possible :-) Perhaps until a valid
successor becomes available on Haiku, though.

But no matter how we decide, some options require more work than others.

Also, I would like to examine our options to make our packages more
ABI agnostic so that you can use the same package no matter if you're
using gcc2h or gcc5h. That would make us a lot more flexible with
regards to that stuff.

Yeah, having to target packages to a secondary ABI has always been... weird.

If we could compile the packages natively and they would install to the
correct prefix automatically all of these choices would be a lot easier.

We could "compile a gcc2 Haiku" hpkg, and drop it on an gcc5/6/7/8... system
at a later date to add BeOS binary support... sexy.


So... where does that leave us for R1? Those improvements are all R2+ sounding.

 -- Alex

Other related posts: