Take 2.
On Tue, Mar 25, 2014 at 3:12 AM, Faré fahree@gmail.com wrote:
...
Problems I found: 1- you look for encodings in #p"SYS:ENCODINGS;" (upper case, as per the standard), which is mapped to .../lib/mkcl-1.1.8/encodings/ (lower case, as customary on Unix, thus as per the standard). However, the directory and its files have upper case names, and are therefore not found. This breaks asdf-encodings and thus the test-encodings.script test. Note: you need to download the latest version of asdf-encodings for this test to work.
The fix should be in the MKCL git repo master head now.
2- even assuming SYS:ENCODINGS; were found, it is not obvious at all what is the right way to detect the presence of an encoding. i.e. given the keyword :latin-2, what is the recommended way to detect if an encoding is supported and/or to list supported encodings? e.g. check (si::make-encoding :latin-2), or see that mk-ext::latin-2 in bound to a keyword?
#'si::make-encoding returns NIL on failure plus a string as secondary value to explain the failure, it returns non-NIL on success. But that is surely awkward for your purpose. There is (si::all-encodings) that return a list of keywords each of which names a valid encoding. So I think that (member :latin-2 (si::all-encodings)) will do what you want.
BTW, the gimmick of binding symbols in package :mk-ext (not to a keyword but to a hashtable) is a part of that legacy code that is going away soon (MKCL 1.2.0), so please do not rely on it. Use #'si::all-encodings instead.
3- if I uncomment the lines: ;;(unless (or #+ecl (use-ecl-byte-compiler-p)) ;; (setf *load-system-operation* 'load-bundle-op)) I get an error in test-logical-pathname, with the .fasb apparently mapped to the wrong directory.
I am still scratching my head on this one. It feels so much like an optimization concern of questionable wisdom... Is it the fear of hitting some wall I am unaware of, like the 1024 file descriptor one, or something else I haven't seen yet? Is it some concern about memory consumption in a development environment where memory use is through the roof already anyway? I don't get it, and I am ready to wait until this becomes a real/confirmed problem before I address it (I bet it will take a very long time to see that happen). Can't we just drop this one?