Hi, I am one of the CDR editors, but I haven't seen your email. I have double-checked the email forwarding just now, and it seems to work. I cannot check anymore whether your email accidentally landed in my spam folder, because it has a retention period of a week.
Could you try to resend your CDR proposal, and then send a notification to my private address as well? If I then still don't receive your proposal via the editors email address, I have to dig deeper to try to see where the problem is. In any case, I will process the CDR proposal next weekend. Thanks a lot, Pascal On 15 May 2012, at 17:54, Sam Steingold wrote: > In 2004 I submitted a CLRFI which was then accepted as CLRFI-2. > It specified a new function COMPILED-FILE-P which was supposed to be > useful for system construction utilities, e.g., asdf: > > Function > (compiled-file-p file-name) ==> valid-p > > Returns > true if the file appears to be a valid compiled file > (i.e., exists, is readable, and the contents appears to be > valid for this implementation), > false otherwise. > > Implementations are required to inspect the contents > (e.g., checking just the pathname type is not sufficient). > Although the completeness of the inspection is not required, > this function should be able to detect, > e.g., file format changes between versions. > > I re-submitted the spec to the CDR editors a week ago. > No response so far. > > The detailed html spec is attached. > > <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" > "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> > <html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml"> > > <head> > <title>Function COMPILED-FILE-P</title> > <meta name="author" value="Sam Steingold"/> > </head> > <body> > > <h1>Function <code>COMPILED-FILE-P</code></h1> > > <h2>Author</h2> > > <p>Sam Steingold</p> > > <h2>Related</h2> > > <p>ANSI Common Lisp standard function <code>compile-file</code>.</p> > > > <h2>Abstract</h2> > > <p>A facility to determine whether a file is a valid compiled file for > the specific implementation.</p> > > > <h2>Rationale</h2> > > <p>Build tools, like <code>defsystem</code> or <code>asdf</code>, > have to determine whether a file needs to be recompiled.</p> > <p>Obviously, when the compiled file is older than the > source file, recompilation is in order.</p> > <p>Alas, there are other situations when this might be necessary, e.g., > when the implementation changes the compiled file format or when two > implementations use the same name for their compiled files > (<code>.fasl</code> is used by both <code>SBCL</code> and <code>ACL</code>). > </p> > > > <h3>Current Practice</h3> > > <p>Implementation-dependent.</p> > > <h3>Cost of adoption</h3> > > <p>Probably tiny: an implementation must be able to check for compiled > file validity, so all it takes is to export the necessary > functionality, e.g.:</p> > > <pre id="compiled-file-p-clisp"> > #+clisp > (defun compiled-file-p (file-name) > (with-open-file (in file-name :direction :input :if-does-not-exist nil) > (and in (char= #\( (peek-char nil in)) > (let ((form (ignore-errors (read in nil nil)))) > (and (consp form) > (eq (car form) 'SYSTEM::VERSION) > (null (nth-value 1 (ignore-errors (eval form))))))))) > </pre> > > <h3>Cost of non-adoption</h3> > > <p>Users will suffer random errors when trying to load invalid binary > files.</p> > > > <h2>Specification</h2> > > <p>Function</p><pre> > (compiled-file-p file-name) ==> valid-p > </pre> > > <p>Returns</p><dl> > <dt><code>true</code></dt><dd>if the file appears to be a valid compiled file > (i.e., exists, is readable, and the contents appears to be > valid for this implementation),</dd> > <dt><code>false</code></dt><dd>otherwise.</dd></dl> > > <p>Implementations are required to inspect the contents > (e.g., checking just the pathname type is not sufficient). > Although the completeness of the inspection is not required, > this function should be able to detect, > e.g., file format changes between versions.</p> > > <h3>Exceptional situations</h3> <ul> > <li>signals an error of type <code>type-error</code> > when the argument is not a <em>pathname designator</em>.</li> > </ul> > > <h3>Examples</h3> > > <pre> > (compiled-file-p "foo.lisp") ==> NIL > (compiled-file-p (compile-file "foo.lisp")) ==> T > </pre> > > > <h2>Reference Implementation</h2> > > <p>See <a href="#compiled-file-p-clisp">above</a>.</p> > > > <h2>History</h2> > > <p>This used to be <strong>CLRFI-2</strong> (in 2004).</p> > > <h2>Notes</h2> > > <p>The trivial implementation:</p> > <pre> > (defun compiled-file-p (file-name) > (not (nth-value 1 (ignore-errors (load file-name))))) > </pre> > <p>is wrong because,</p> > <ol> > <li><code>load</code> may fail even though the file is valid: > even when <code>foo.lisp</code> contains calls to <code>error</code>,<pre> > (compiled-file-p (compile-file "foo.lisp")) > </pre>should still return <code>T</code>.</li> > <li>this is not side-effect-free, i.e., this may define new functions and > macros (or, worse yet, redefine some existing functions and macros or > execute some malicious code).</li></ol> > </body> > </html> > > > -- > Sam Steingold (http://sds.podval.org/) on Ubuntu 12.04 (precise) X > 11.0.11103000 > http://www.childpsy.net/ http://mideasttruth.com http://ffii.org > http://www.memritv.org http://jihadwatch.org http://camera.org > http://memri.org > You cannot fire me. Slaves are not fired. Slaves are sold. > _______________________________________________ > pro mailing list > [email protected] > http://lists.common-lisp.net/cgi-bin/mailman/listinfo/pro -- Pascal Costanza _______________________________________________ pro mailing list [email protected] http://lists.common-lisp.net/cgi-bin/mailman/listinfo/pro
