From: SourceForge.net <no...@so...> - 2012-12-19 17:05:54
|
Bugs item #3597512, was opened at 2012-12-19 09:05 Message generated for change (Tracker Item Submitted) made by stassats You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=101355&aid=3597512&group_id=1355 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: clisp Group: ANSI compliance issue Status: Open Resolution: None Priority: 5 Private: No Submitted By: stassats (stassats) Assigned to: Bruno Haible (haible) Summary: eq load-time-value forms get coalesced Initial Comment: When the following is compiled with compile-file (defun foo () (eq #1=(load-time-value (cons 1 2)) #1#)) the result of (foo) becomes T. And this usually manifests in macros. CLHS states "If nil [read-only-p] (the default), the result must be neither copied nor coalesced; it must be considered to be potentially modifiable data." http://www.lispworks.com/reference/HyperSpec/Body/s_ld_tim.htm The code which appears to be responsible for this is http://clisp.hg.sourceforge.net/hgweb/clisp/clisp/file/696bfff6e3d1/src/compiler.lisp#l8116 The patch that fixes it for me is attached, but not sure about other implications of such a change. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=101355&aid=3597512&group_id=1355 |