<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">From a quick look at the CLIM code, I see only one place where the symbol compile-file gets passed as an environment:<div class=""><br class=""></div><div class="">ptypes1.lisp (defmacro define-presentation-type (name parameters ...)</div><div class=""><br class=""></div><div class="">...</div><div class=""><br class=""></div><div class=""><div class=""> ;; Can't just put the environment here, since macro</div><div class=""> ;; expansion environments have dynamic extent</div><div class=""> ',(and (compile-file-environment-p environment)</div><div class=""><span class="Apple-tab-span" style="white-space:pre"> </span>#-(and allegro (version>= 7 0)) 'compile-file</div><div class=""><span class="Apple-tab-span" style="white-space:pre"> </span>#+(and allegro (version>= 7 0))</div><div class=""><span class="Apple-tab-span" style="white-space:pre"> </span>(sys:augment-environment environment))))</div><div class="">...</div><div class=""><br class=""></div><div class="">Since Clozure CL has CCL:AUGMENT-ENVIRONMENT, you might want to try to use that for CCL.</div><div class="">Looks like the Allegro CL version creates a new environment, based on the existing one.</div><div class="">From the comment it seems also that it needs a new one.</div><div class="">Passing compile-file means that the environment will be looked up, for example by some dynamic variable.</div><div class=""><br class=""></div><div class="">Options:</div><div class=""><br class=""></div><div class="">1) maybe CCL:AUGMENT-ENVIRONMENT works</div><div class=""><br class=""></div><div class="">2) maybe there is a way to get the current environment?</div><div class=""> Similar to the old ccl::*fcomp-compilation-environment* </div><div class=""><br class=""></div><div class="">3) maybe one can have a custom CCL function to fully copy an environment, as a replacement for (CCL:AUGMENT-ENVIRONMENT ...). </div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">Regards,</div><div class=""><br class=""></div><div class="">Rainer Joswig</div><div class=""><br class=""></div><br class=""><div class=""><br class=""></div><div class=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">Am 05.08.2016 um 00:05 schrieb Craig Lanning <<a href="mailto:craig.t.lanning@gmail.com" class="">craig.t.lanning@gmail.com</a>>:</div><br class="Apple-interchange-newline"><div class=""><span style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">On Thu, 2016-08-04 at 22:09 +0200, Rainer Joswig wrote:</span><br style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><blockquote type="cite" style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">If you look at the function find-presentation-type-class , it<br class="">gets called with an environment compile-file (a symbol).<br class="">That kind of environment is not in standard Common Lisp.<br class="">The code calls FIND-CLASS with this environment then, where it then<br class="">fails.<br class=""><br class="">As you can see, there is code for allegro, which changes the<br class="">environment, first:<br class=""><br class="">#+allegro (setq environment (compile-file-environment-p environment))<br class=""></blockquote><br style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">I arranged for the code to call ccl::compile-file-environment-p, but</span><br style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">that function expects the environment to be a #<CCL::LEXICAL-</span><br style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">ENVIRONMENT> object. Somehow the environment that is coming in is the</span><br style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">symbol COMPILE-FILE. CLIM Utils defines a function COMPILE-FILE-</span><br style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">ENVIRONMENT-P which returns T when it sees COMPILE-FILE. T doesn't</span><br style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">work either.</span><br style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">The question now is: How do I get the compile time environment when it</span><br style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">was not passed in? The symbol COMPILE-FILE was passed instead. The</span><br style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">only global variable which includes the word ENVIRONMENT in its name is</span><br style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">ccl::*fcomp-load-forms-environment*, but that one doesn't seem to help.</span><br style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">Does CCL pass the symbol COMPILE-FILE as the environment at any time?</span><br style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">Or should I be looking in the CLIM code for something that passes</span><br style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">'COMPILE-FILE</span><br style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><blockquote type="cite" style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">I would guess that all ANSI CL implementation would need to do that,<br class="">given a useful implementation of the function compile-file-<br class="">environment-p.<br class=""><br class="">What you want: FIND-CLASS should find the right class object in the<br class="">right environment. The symbol COMPILE-FILE is not an<br class="">environment for Clozure CL, so you need to call (setq environment<br class="">(compile-file-environment-p environment)) to set it to a useful<br class="">value.<br class=""><br class="">Regards,<br class=""><br class="">Rainer<br class=""><br class=""><br class="">(defun find-presentation-type-class (name &optional (errorp t)<br class="">environment)<br class=""> <span class="Apple-converted-space"> </span>#+Genera (declare (inline compile-file-environment-p))<br class=""> <span class="Apple-converted-space"> </span>#+allegro (setq environment (compile-file-environment-p<br class="">environment))<br class=""> <span class="Apple-converted-space"> </span>(macrolet ((not-found (name)<br class=""> `(if (gethash name *presentation-type-abbreviation-<br class="">table*)<br class=""> (error "~S is a presentation type abbreviation,<br class="">not the name of a presentation type" ,name)<br class=""> (error "~S is not the name of a presentation<br class="">type" ,name))))<br class=""> (typecase name<br class=""> (symbol<br class=""> (let ((compile-file-environment-p (compile-file-environment-p<span class="Apple-converted-space"> </span><br class="">environment)))<br class=""> (or (and (eq name (first *presentation-type-being-<br class="">defined*))<br class=""> (second *presentation-type-being-defined*))<br class=""> (if compile-file-environment-p<br class=""> (compile-time-property name 'presentation-type-<br class="">class)<br class=""> (gethash name *presentation-type-class-table*))<br class=""> (let ((class (find-class name nil<br class="">environment))) ; <- fails probably<br class="">here<br class=""> (and (acceptable-presentation-type-class class)<br class=""> class))<br class=""> (when compile-file-environment-p<br class=""> ;; compile-file environment inherits from the run-<br class="">time environment<br class=""> (or (gethash name *presentation-type-class-table*)<br class=""> (let ((class (find-class name nil nil)))<br class=""> (and (acceptable-presentation-type-class class)<br class=""> class))))<br class=""> (and errorp (not-found name)))))<br class=""> ((satisfies acceptable-presentation-type-class)<br class=""> name)<br class=""> (otherwise ;a type error should complain even if errorp<br class="">is nil<br class=""> (not-found name)))))<br class=""><br class=""><br class="">Regards.<br class=""><br class="">Rainer<br class=""><br class=""><br class=""><br class=""><br class=""><blockquote type="cite" class=""><br class="">Am 04.08.2016 um 21:19 schrieb Craig Lanning <craig.t.lanning@gmail<br class="">.com>:<br class=""><br class="">I'm making a little progress (I think).<br class=""><br class="">When I compile the CLIM Silica system, I see complaints about<br class="">undefined<br class="">functions. Some of these are slot accessor functions that don't<br class="">get<br class="">defined until CLIM Standalone is compiled.<br class=""><br class="">Anyway, I compile and load CLIM Utils, CLIM Silica, and then CLIM<br class="">Standalone.<br class=""><br class="">While compiling CLIM Standalone, it runs into the following error:<br class=""><br class="">;; Compiling clim:clim;accept-values.lisp.newest<br class="">;Compiler warnings for "clim:clim;accept-values.lisp.newest" :<br class="">; In (PROMPT-FOR-ACCEPT (ACCEPT-VALUES-STREAM T T)) inside an<br class="">anonymous lambda form: Unused lexical variable ACCEPT-ARGS<br class=""><blockquote type="cite" class=""><br class="">Error: The value COMPILE-FILE is not of the expected type<br class=""></blockquote>CCL::LEXICAL-ENVIRONMENT.<br class=""><blockquote type="cite" class=""><br class="">While executing: CCL::DEFINITION-ENVIRONMENT, in process<br class="">listener(1).<br class="">Type :POP to abort, :R for a list of available restarts.<br class="">Type :? for other options.<br class=""></blockquote>1 > :b<br class=""><br class="">Attached is the entire output from doing the compiles and the<br class="">output of<br class="">the :b command.<br class=""><br class="">The problem here is that I'm not even sure where to look for the<br class="">real<br class="">problem. In CLIM Utils, there were a few things that touched on<br class="">the<br class="">environment. I think I added the appropriate #+/#- things to that<br class="">code.<br class=""><br class="">Can anyone tell me anything that might help me figure out what the<br class="">real<br class="">problem is?<br class=""><br class="">Craig<br class=""><output.txt>_______________________________________________<br class="">Openmcl-devel mailing list<br class=""><a href="mailto:Openmcl-devel@clozure.com" class="">Openmcl-devel@clozure.com</a><br class=""><a href="https://lists.clozure.com/mailman/listinfo/openmcl-devel" class="">https://lists.clozure.com/mailman/listinfo/openmcl-devel</a><br class=""></blockquote><br class="">_______________________________________________<br class="">Openmcl-devel mailing list<br class=""><a href="mailto:Openmcl-devel@clozure.com" class="">Openmcl-devel@clozure.com</a><br class=""><a href="https://lists.clozure.com/mailman/listinfo/openmcl-devel" class="">https://lists.clozure.com/mailman/listinfo/openmcl-devel</a><br class=""></blockquote><span style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">_______________________________________________</span><br style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">Openmcl-devel mailing list</span><br style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><a href="mailto:Openmcl-devel@clozure.com" style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">Openmcl-devel@clozure.com</a><br style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><a href="https://lists.clozure.com/mailman/listinfo/openmcl-devel" style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">https://lists.clozure.com/mailman/listinfo/openmcl-devel</a></div></blockquote></div><br class=""></div></div></body></html>