[fpc-devel] FPC + Haiku: how good is it?

Olivier Coursiere olivier.coursiere at laposte.net
Wed May 12 23:00:48 CEST 2010


Hi,

Matt Emson a écrit :
>
> Graeme Geldenhuys wrote:
>
>> Anyway, I saw that FPC 2.4.0 has a Haiku release (I was quite 
>> surprised -
>> kudos to the FPC developers!). 
> FPC supported BeOS since FPC 2.0. I believe the first port was by 
> Pavel Kasselberger (sp?) for his Pixel image editor. I used to be 
> involved in the effort to port some kind of API mapping, so I can give 
> a little info.
If i remember correctly, the BeOS port was started in the 1.x series.

Now, FPC 2.4 should be pretty much complete under Haiku. All packages 
are not heavily tested though. Some bugs probably remains here and 
there. The text mode IDE even work with mouse and debugging support.
>
>> How mature/stable is FPC on Haiku? Is it
>> usable, or is it still very experimental?
>>   
> The BeAPI (the API that Haiku has inherited) is C++ based and 
> *heavily* multithreaded. As such, it is (was) pretty laborious to get 
> any GUI apps working. I wrote some simple wrappers, which worked okay. 
> They are probably still available in the Be FPC Source Forge repo. The 
> other guys on the project started to write a real API wrapper, and at 
> that point I sort of dropped out of the loop, so I'm unsure exactly 
> how far they got. I remember the API having a lot of circular 
> dependencies and modelling it in the same way as the BeAPI layed out 
> files was pretty impossible. That was the last I spoke to them.
>
> Your biggest issue is not C++, it is multithreading. In BeOS, every 
> app has a thread (as normal) and every window has a separate Thread 
> (actually, more than one, as there is one or more in the app_server 
> for every one in the executable, but at the simplest level, the one 
> per window is fairly accurate.)  BeOS used B as a prefix, much like 
> Borland's T. So you get a BLooper (a "thread"), then BMessenger 
> (Postbox/message sender) and BHandler (a "message" handler), a BWindow 
> inherits from both (IIRC) and IPC is done via an object based system 
> comprising of BMessages that contain lists of values (basic data 
> types, instances of class/structures, pointers etc.) The whole system 
> is extremely client/server. Sending a message between two applications 
> is trivial. This is all pretty easy to wrap with a little thought. 
> However, some controls need to be created in the right thread context, 
> so it starts getting messy. Anyway, I'm working on 10 year old 
> information, but Haiku is modelled very much after the original BeOS. 
> Mind you, Haiku now has a QT 4.x port, so you might find that is 
> simpler to get going?
This has not changed under Haiku. The GUI API is the same 
(http://www.haiku-os.org/legacy-docs/bebook/). Haiku is just more POSIX 
than BeOS. The wrapper is still in the same state. But i plan to rework 
on this in the future now that the compiler side is pretty much 
complete. Maybe the first step should be to switch to svn as i am not 
sure i still remember how to use cvs. At least, befpc still compile and 
work under Haiku. I have even found a bug in Haiku using the sample 
program (http://dev.haiku-os.org/ticket/1651).

Olivier




More information about the fpc-devel mailing list