Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uunet!mcsun!ukc!stc!stl!skp From: skp@stl.stc.co.uk (Steve Perryman ) Newsgroups: comp.lang.lisp Subject: Preserving case for LISP symbol names Message-ID: <3186@stl.stc.co.uk> Date: 5 Jul 90 13:11:06 GMT Sender: news@stl.stc.co.uk Reply-To: "Steve Perryman " Distribution: comp.lang.lisp,uk.lisp Organization: STC Technology Limited, London Road, Harlow, Essex, UK Lines: 40 I have a problem which my lack of LISP knowledge prevents me from solving. I have implemented a CLOS architecture which allows CLOS users to access Objective-C objects in a distributed environment. I have special CLOS objects which when called fail but since these objects override "no-applicable-method" as defined in the CLOS system, they request the objective-C service via the Internet. For example: Calling (objective_C_Op obj 1) in CLOS calls [obj objective_C_Op: 1] in Objective-C The problem is that the Objective-C method naming convention is case sensitive, and that the print value in LISP for the symbol objective_C_Op is OBJECTIVE_C_OP. My comms protocol will encode this as the string "OBJECTIVE_C_OP" (as it uses princ-to-string) and the objective-C environment decodes it as OBJECTIVE_C_OP. So [obj OBJECTIVE_C_OP: 1] is called, which may not exist. What I need in LISP is a way to make sure that my special "no-applicable-method" method gets passed the symbol whose print value is objective_C_Op and not OBJECTIVE_C_OP. If I can do this I can encode the method name correctly and everything works. Going from Objective-C to CLOS is not a problem. It is very urgent that I get this one sorted out quickly as it is preventing me from integration testing, so I'd be extremely grateful to hear from all you gurus who know the answer. Thanks in advance, Steven Perryman (skp@stl.stc.co.uk)