You have to take care for the differences on the following subjects:
The library code is aware of it but on the user side there are still too much silent wrong assumptions.
Don't abuse system directories, provide your own subtree structure.
Don't abuse ACAD.LSP
for dozens of aliases!
Never modify Acad specific support files besides the ones which are intended to be customized (acad.rx
, acad.lsp
, acad.fmp, acad.pgp
but not acad.mnl
, acad.mnu,acadr14.lsp, ai_utils.lsp
and such). If you change those files make backups and provide uninstallers.
Provide a special profile or configuration files and directories for your app and think of special startup methods (desktop icons, start batches)
Provide installers and uninstallers to make life easy. There are free and simple windows installers around. You don't have to use InstallShield and its overboarding functionality and size.
Even private extensions might attract your colleague. This can get annoying so be warned and take care.
Use filesystem predicates.
Think of
Never use hardcoded paths if even if they may be faster!
Not in lisp code and not in menu code. This will work on your system but not on every other system worldwide. Only some unix based systems (System V) provide a systematic approach of standard file locations but on other systems this will vary.
Use the features provided to read and store variables in inifiles, configuration files or the registry or use other portable ways to get the location of the needed file.
You might use registry entries to locate some common files, such as MS Office applications, libraries or files.
Use platform predicates,
Keep it backwards and forwards compatible for various AutoCAD releases and clones.
Use release predicates. Check for
Use lisp system predicates.
Think of special code for new and omitted lisp specific features such as:
*MAX-RECURSION-STACK*
*MAX-ARGS-LIMIT*
std-functionp
EQ
speciality on acompATOMS-FAMILY
workaround in STDINIT.LSP
for SMALL