On Sun, 7 Jul 2002 11:13:55 +0200, [EMAIL PROTECTED] wrote:

>> > new files, though - I probably wouldn't like to commit them to the
>> >FPC RTL with those {$IFNDEF FPC} and {IFDEF OVERLOADSUPPORTED}, etc.
>> >directives. Do you think it can be solved somehow? Or should I take
>> >it it's just a temporary solution until you have everything moved
>> >from SPCC to FPC and these will only be modified for FPC only and
>> >committed to the FPC CVS tree afterwards?
>> Various IFDEFs is temporary until we finish porting to FPC.
>> OVERLOADSUPPORTED and IFDEF FPC(or something like)  will be removed
>> after succes compilation of Sibyl by FPC..
>
> OK, fine. Anyway - those two versions of DosGetInfoBlocks can't be 
>supported at the same time (I seem to remember I already told you 
>about this problem?),
Hm... Compiler doesn't talk something about this.

BTW, this is pointers only problem? If I want declare such function:
function lalala(x: longint): Longint;
function lalala(x: longword): Longword;

will it be problem?

>so you'll have to comment the other (Sibyl 
>compatible?) and modify the calls within the IDE once the porting is 
>done. Your version doesn't make it possible to pass one pointer as 
>null (in case you only need one of those two information blocks).
Hm... Ok. So, I must correct things like this
{$IFDEF OS2}
VAR tib:PTIB;
    pib:PPIB;
{$ENDIF}
BEGIN
     result:=AppQueueHandleIntern;

     {$IFDEF OS2}
     tib:=NIL;
     pib:=NIL;
     DosGetInfoBlocks(tib,pib);
     IF ((tib<>NIL)AND(tib^.tib_ptib2<>NIL)AND(pib<>NIL)) THEN
       IF tib^.tib_ptib2^.tib2_ultid>1 THEN //not for main thread

to

{$IFDEF OS2}
VAR tib:PTIB;
    pib:PPIB;
{$ENDIF}
BEGIN
     result:=AppQueueHandleIntern;

     {$IFDEF OS2}
     tib:=NIL;
     pib:=NIL;
     DosGetInfoBlocks(@tib,@pib);
     IF ((tib<>NIL)AND(tib^.tib_ptib2<>NIL)AND(pib<>NIL)) THEN
       IF tib^.tib_ptib2^.tib2_ultid>1 THEN //not for main thread

And comment second declaration of dosgetinfoblocks in doscalls.inc. Right?

> The comment about Delta before the DosSetPriority call was correct 
>(and your is not!) - the _resulting_ priority must be in 0..31 (as it 
>appears in DosCalls). The _Delta_ values must be in -31..31 (I'm 
>adding this to DosCalls to avoid any possible misunderstanding in the 
>future).
Ups... Sorry. My mistake. Yes, delta in -31..31 range and priority itself in 0..31.

> More comments to come... (I'm just integrating your changes into the 
>FPC tree).
Ok. I'm waiting...

[cut]
>> But still problem with AppHandleIntern (Which initialized
>> only for pm applications by InitPM call) and with ApplicationType
>> which initialized by compiler (=1 for PM).
> It should be possible to recognize this without "compiler magic" 
>somehow, shouldn't it?
Hm... Application type can be taken from the header of exe. But all FPC binaries 
compiled as vio application.

>> And I don't know at&t asm.
>> So this work not for me.
>
> I can try to do the translation myself, if needed (I don't know the 
>AT&T syntax very well either, but can do something and ask about the 
>rest). The main question is, where it will be stored. I'd probably 
>prefer moving it to the initialization routines.
Yep.

>> I'm planning to use C functions instead of FPC implementations if
>> USE_LIBC defined. This is subject to discuss. But, as example, lot of
>> code in strings unit already presented in LIBCM.DLL(LIBCS.DLL). Why
> The same is true for many other routines, and every platform. In 
>spite of this we (FPC) decided to avoid using libc after a thorough 
>discussion.
Hmm... Strange...

>> not use this code? I don't agree with rejecting libc. Yes, dependance
>> on libc is bad, but don't make libc only routines. Do something like
>> this:
>> 
>> function val: integer;
>> {$ifdef use_libc}
>>    ...
>>   .... {lot of independed code}
>>   ....
>> {$else}
>>    result:=libc_val;
>> {$endif}
>
> No. Take it this way - we distribute a compiler (with a RTL). We are 
>expected to deliver as bugfree product as possible (this includes all 
>functions in our interface routines - including versions compiled 
>with supported IFDEFs). But we can't guarantee anything if we use 3rd 
>party products, and can't fix possible incompatibilities ourselves 
>either.
??? You using doscalls/pmwin like stuff but don't want use other standard things? 
Strange....

> Remember the known conflict between programs using EMXLIBCM 
>and EMXLIBCS (you can't run programs using EMXLIBCM and EMXLIBCS 
>simultaneously) as an example.
Yes. I know (and fix is presented)

>> > You can achieve smaller binary sizes by creating our own DLL with
>> > FPC RTL 
>> >once DLL creating is ready for FPC.
>> :) spliting one file to two don't make program smaller. But this is
>> also solution if more than one program.
> Yes, that (common use from more than program) is what I'm talking 
>about. BTW, the libc DLL size counts as well in your example, so 
>you're in (almost) exactly the same situation (with the "splitted 
>file"). Why do presume every Warp 4 user must have full EMX runtime 
>installed? This is only true under eComStation, IMHO! It's clear 
>really _many_ OS/2 users have full EMXRT installed now, but it 
>doesn't mean the same is true for everybody.
Wait, wait... I don't talk about emxlibc. I'm about native libc.



-----------
To unsubscribe yourself from this list, send the following message
to [EMAIL PROTECTED]

     unsubscribe sibyl
     end

Reply via email to