User Tools

Site Tools


portability

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
portability [2010/05/19 07:45]
vidarh
portability [2011/03/20 15:05] (current)
vidarh old revision restored
Line 3: Line 3:
 ===== Checklist ===== ===== Checklist =====
  
-  * Endianness: If you want to target AROS, which can run on x86, you need to ensure you don't depend on the in-memory structure of types larger than 1 byte. For example this means never casting a long to char[4]. It also means being careful about how you read/write binary data from/to disk, or the files you write may not be possible to move over to other systems. ​TODO: Macros to handle this efficiently in the default case.+  * Endianness: If you want to target AROS, which can run on x86, you need to ensure you don't depend on the in-memory structure of types larger than 1 byte. For example this means never casting a long to char[4]. It also means being careful about how you read/write binary data from/to disk, or the files you write may not be possible to move over to other systems. ​FIXME: Macros to handle this efficiently in the default case.
   * Test on at least AmigaOS 3.1. AROS, MorphOS and the various incarnations of AmigaOS are all mostly backwards compatible with 3.1, or try to. If you test on 3.1 frequently you are likely to run into far fewer compatibility issues with the other platforms (of course ideally you'd test on all the ones you want to support all the time)   * Test on at least AmigaOS 3.1. AROS, MorphOS and the various incarnations of AmigaOS are all mostly backwards compatible with 3.1, or try to. If you test on 3.1 frequently you are likely to run into far fewer compatibility issues with the other platforms (of course ideally you'd test on all the ones you want to support all the time)
   * Verify library availability and fall back when possible. For functionality that is not vital, make use of the fact that AmigaOS libraries are loaded "​manually"​ to check for their existence and instead of refusing to run, warn the user about what functionality will not be available if they don't install a specific library. Good practice is to ask the user whether or not to suppress the warning in the future, and save/​remember that choice.   * Verify library availability and fall back when possible. For functionality that is not vital, make use of the fact that AmigaOS libraries are loaded "​manually"​ to check for their existence and instead of refusing to run, warn the user about what functionality will not be available if they don't install a specific library. Good practice is to ask the user whether or not to suppress the warning in the future, and save/​remember that choice.
Line 19: Line 19:
 ===== Resources ===== ===== Resources =====
  
-[[http://​amigadev.free.fr/​files/​PortableCode-en.pdf|Guide to portable Amiga programming (English version; PDF)]] + * [[http://​sourceforge.net/​projects/​sditools/​|SDI Tools]] A set of header files that hides a lot of compiler differences for the Amiga 
- + ​* ​[[http://​amigadev.free.fr/​files/​PortableCode-en.pdf|Guide to portable Amiga programming (English version; PDF)]] 
-[[http://​amigadev.free.fr/​files/​ProgrammationAmigaOS.pdf|Guide to portable Amiga programming (French version; PDF)]]+ [[http://​amigadev.free.fr/​files/​ProgrammationAmigaOS.pdf|Guide to portable Amiga programming (French version; PDF)]]
  
  
portability.1274255155.txt.gz · Last modified: 2010/05/19 07:45 by vidarh