Talk:Trinity in Trouble

From Freepascal Amiga wiki
Jump to: navigation, search

untyped Pointer in structures

Notice to: "structure TWindow field WScreen" and all the others of this kind: You will find dozens of this kind in any kind of structures. The reason are recursive type definitions which does work little bit strange in Pascal. Forwarding of types only within the same Block. So this works:

type
  PScreen = ^TScreen;
  PWindow = ^TWindow;

  TWindow = record
    WScreen: PScreen
  end;
  
  TScreen = record
    FirstWindow: PWindow;   
  end;
const
  IDCMP_NEWSIZE = 1 shl 1;

and this does not work:

type
  PScreen = ^TScreen;
  PWindow = ^TWindow;

  TWindow = record
    WScreen: PScreen
  end;

const
  IDCMP_NEWSIZE = 1 shl 1;   

type
  TScreen = record
    FirstWindow: PWindow;   
  end;

So a complete Rewrite/Resort of the complete unit is needed, as I did for AROS. I will not do that for MorphOS/Amiga again. --ALB42 (talk) 13:03, 27 September 2015 (CEST)

Hi ALB42,
Yups, i am aware this is indeed the case.Please forgive me for just adding things as i go along and run into them, as it should perhaps be easier to just check the individual units one at a time. My goal is just to list everything i encounter, and at a later point in time start doing something about it. Hopefully it will also point out that writing source for multi-platform is a pita. ATM and imho there are bigger fish to fry to make things a bit more multi-platform compatible, such as the auto opening of libraries in general and intuition for MorphOS in particular. the different varargs implementations are also a pita to work with.I would be happy if the procedures/functions are getting a bit more compatible and on same par as well as remove/fix some of the most obvious and most encountered incompatibilities. Most things i can 'solve' temporary with using unit trinity, but some things can't be fixed that way (or very difficult). Thanks for paying attention, which i presume means it's not all in vain :-) --Molly (talk) 14:55, 27 September 2015 (CEST)
oh do not missunderstand this as critics (thats the reason its only as comment on Discussion) just a side note, and because there are some cases, maybe would be better to make an own part for this cases. (P.S. I reformated your entry to a std. Wiki discussion entry) --ALB42 (talk) 17:28, 27 September 2015 (CEST)
okidoki, no problem :-) thanks for the formatting, as i had no idea how todo that. BTW: i'm offline working on a complete unit table, so that it would be easier to see in one go what units are missing for what platform (or which units still needs attention). IBesides that i wanted to use the table to link to individual list entries (which would then be categorized per unit). It's taking me a bit longer than anticipated. --Molly (talk) 19:37, 27 September 2015 (CEST)

other (obvious) conflicting types

What to do with things like TPoint, TRectangle etc. ? Should we list then, do we ignore those ? ATM i do not have been able to find a satisfactory answer for myself. Maybe one of you guys have ? --Molly (talk) 19:20, 30 September 2015 (CEST)

What is "Isrvstr"?

Isrvstr seems not present in the AROS SDK

You are correct. It indeed is not, but should be there (at least for AROS 68k).
it is a structure representing an interrupt server chain, e.g. used to 'link' in your code to the interrupt list.
Currently (only) used in AddTOF() and RemTOF()
Choice of existence: whether we implement (or can be implemented) AddTOF() and RemTOF() functionality.

Not up to date items

I noticed "ASLRequestTags already in AROS a while" which is true, so apologies. It is a bit 'difficult' to keep 3.0 and 3.1 separated so am happy with any correction. fwiw: i try to keep trinity compatible for 3.0, and intended to maintain compatibility with 3.1 trunk in future -> recent changes might render that impossible (unless duplicating a lot of existing code within trinity unit(s)), so i'm currently leaning towards keeping trinity in comparison to 3.0, and work on 3.1 to get on par. In that regards your array of const changes came a bit too soon ;-p BTW: unit amigalib is as clean as possible (not having current changes for array of const though), and could be copied 1:1 to aros repository when done -> no weird types used as far as possible.

eh, no I just forget to mark it as done, I did it long time before, when rewriting the ASL unit, I didn't check
against the wiki list again.
too soon? for me more already too later, sadly not in 3.0, same for Amiga, I planed to tell you but you was not online
in IRC last WE, so I thought you will see it in the commit message and/or wiki changes. ALB42 (talk) 18:05, 25 January 2016 (CET)