X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=OPTIMIZATIONS;h=81ab61d49ce42c5fdcc8f169b5bd5af39626daa1;hb=3fa2feb10ab827fc6cc2a85287e78b6e66b7bf4d;hp=581291c1e5a49d9e981412a5e9ba490db8986cf5;hpb=e840f481796d191997a47421d60cd039cd260613;p=sbcl.git diff --git a/OPTIMIZATIONS b/OPTIMIZATIONS index 581291c..81ab61d 100644 --- a/OPTIMIZATIONS +++ b/OPTIMIZATIONS @@ -405,3 +405,23 @@ can be transformed into which allows compiler-macro-expansion for FOO. (Only constant arguments can be moved inside the new lambda -- otherwise evaluation order is altered.) + +-------------------------------------------------------------------------------- +#41 + +The unibyte external formats are written in a very generic way. Three +optimizations immediately applicable that could be automatically +generated: + +(a) if the external format merely permutes the first 256 characters, a + constant-time lookup (rather than a binary search) could be + performed on output. This applies at least to EBCDIC, which + currently has a hand-rolled mapper instead. + +(b) if there are no undefined characters corresponding to the 256 + codes, then no error checking need be done on input. + +(c) if there is a way to use particular bits of the exceptional + characters, constant-time output (rather than binary search) can + still be achieved as used to be done by the latin-9 external + format before 1.0.31.