Hello, guest. We have noticed that you are not registered at this bug tracker. Your experience will be greatly enhanced if you log in. To do so, you first must register by clicking on the Register tab at the top. If you are already registered, you can login at the Login tab.
Syndicate Syndicate Listing New Display Search Login/Register
Bug Id ?
Reporter ?
dherring
Product/Version ?
LibCL Website / 0.1
Status ?
Confirmed
Severity ?
Enhancement
Duplicate Of ?
- none -
Summary ?
add portability guidelines for authors
Report Time ?
January 16, 2010 10:36:47 PM
Assignment ?
- none -
Resolution ?
Open
Priority ?
Normal
Dependencies ?
- none -


Votes
For: 0 (0%)
Against: 0 (0%)
Total: 0

January 16, 2010 10:36:47 PM dherring
The website (and tarballs?) should collect common portability gotchas.

A few to start with:
- Don't use #+nil; there are reasonable ways to get :nil in *features*. Use #-(and) or #+(or) instead.
- Encode source files in ASCII or UTF-8 (i.e. not Latin-1).
- Don't use a LOOP variable-clause after a main-clause (e.g. FOR after WHILE); it isn't portable (e.g. ECL).
- Use TYPE in compound declarations. Example: (declare (type (array * (2)) x)) not (declare ((array * (2)) x))
- Be sensitive of implementations where 'x is lowercase and 'X is uppercase. Use symbols instead of strings.
- The third argument to DEFINE-MODIFY-MACRO is a symbol, not a lambda expression.

February 26, 2010 09:01:43 PM dherring
New note: don't forget to (:use) in a defpackage that should import nothing. If not specified, an implementation-specific default can be imported (often including nonstandard stuff). Re-occuring issue; just hit ASDF.

April 8, 2010 12:48:05 AM dherring
not all numeric types can be specialized in generic functions