I seem to run into some issues with Hunchentoot on ACL due to case sensitivity. When I turn case sensitivity off using '(set-case-mode :case-insensitive-upper)', everything behaves as expected. However, when I run in ACL's default mode, some things don't seem to work. Here is a list of issues I run into without the case-mode fix:
1. Loading Hunchentoot with asdf throws me into a debugger saying I need a newer version of TRIVIAL-GRAY-STREAMS. If I choose to continue at this point, I get another error in the debugger saying "Package :flexi-streams does not exist." When I choose an option to create it anyway, Hunchentoot loads fine.
2. (request-method) function returns symbols in the "incorrect" case - :GET and :POST, intead of :get and :post. This means it's not possible to simply compare symbols (using ecase, for example) - it becomes necessary to compare their names (with a case insensitive string comparison). Franz gives guidelines on how to write software that runs both on case sensitive and case insensitive implementations here: http://www.franz.com/support/documentation/5.0.1/doc/cl/case.htm. Are these being used by Hunchentoot?
3. Sessions/parameters don't seem to work properly. URL rewriting works, however it looks like the cookie functionality does not work. Additionally, (post-parameters) always returns nil on POST requests - effectively it's only possible to operate in GET mode.
I'm not sure if Hunchentoot is meant to support ACL in its default reader mode, so I thought I'd report these issues.
Regards, - Slava Akhmechet
Hi,
On Wed, 16 May 2007 09:26:53 -0400, "Vyacheslav Akhmechet" coffeemug@gmail.com wrote:
Franz gives guidelines on how to write software that runs both on case sensitive and case insensitive implementations here: http://www.franz.com/support/documentation/5.0.1/doc/cl/case.htm. Are these being used by Hunchentoot?
No.
I'm not sure if Hunchentoot is meant to support ACL in its default reader mode, so I thought I'd report these issues.
Currently it is not. My take on this is that AllegroCL's "modern mode" is not ANSI-compliant and thus nothing to lose sleep over. I have never used it and probably never will.
I'd be willing to accept clean[*] patches to make Hunchentoot work with "modern mode", but only if they don't make the code more complicated or less flexible and general.
Cheers, Edi.