Path: utzoo!utgpu!utstat!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!cs.utexas.edu!oakhill!dover!fullmer From: fullmer@dover.uucp (Glen Fullmer) Newsgroups: comp.sys.amiga.tech Subject: CBM, Why did you make it so hard? Keywords: Graphics Libraries, reentrancy Message-ID: <913@dover.uucp> Date: 13 Mar 89 14:13:56 GMT Reply-To: fullmer@dover.UUCP (Glen Fullmer) Organization: Motorola CAD Mesa, AZ {dover} Lines: 45 I have a friend that has ported a generic graphics package to the Amiga. He is uses the Aztec C compiler, and I use the Lattice compiler. This means that I cannot link my graphics program to his Aztec C graphics object library. So he thought he would fix that and create a graphics Amiga-shared library that anyone can call at run time. That was fine. After a number of weeks trying to track down all that has been written about Amiga-shared libraries (which is precious little) and "ripping off" as much public-domain code that he could find, has written a single-user-at-a-time graphics library. I, being as helpful as usual, suggested that a single-user-at-a-time graphics library is not very useful, especially if one wants to write a generic widowing system with his library (which I do). I suggested that he rewrite his graphics library so that it is re-executable and reentrant (being the helpful person that I am). Given that history, we have a number of questions: 1. Why didn't the developers of the C compilers agree on a common linkable format? 2. How does one make a generic package, like his graphics package, both reexecutable and reentrant? Does it require specific register allocation via assembler programming? Or is there an easier way? A different global hook that can be used to hang environments on? 3. How does one restore the environment, for example, after an interrupt? 4. Is making a package that must retain context both over the life of a call and the life of the session different than "pure" residentable code? If so, how are they different, and what are the coding differences? 5. How did CBM do this for their libraries? 6. Why isn't it simpler? Granted, a lot of this is probably very naive for some of you guys, but where does one learn it? References? Thanks, in advance, for your support. -- _____ _ "For a successful technology, reality must take precedence" {____/ // "over public relations, for Nature cannot be fooled." \ // _ __Richard P. Feynman, Appendix F of Shuttle Disaster Report {____/