<div dir="ltr"><br><div class="gmail_extra"><div class="gmail_quote">On Sat, Jan 12, 2013 at 2:58 PM, Robert Goldman <span dir="ltr"><<a href="mailto:rpgoldman@sift.info" target="_blank">rpgoldman@sift.info</a>></span> wrote:<br>
<div>... </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im"></div>
<br>
"It is recommended that the entire package definition is put in a single<br>
place, and that all the package definitions of a program are in a single<br>
file. This file can be loaded before loading or compiling anything else<br>
that depends on those packages. Such a file can be read in the<br>
COMMON-LISP-USER package, avoiding any initial state issues."<br>
<br></blockquote><div><br></div><div><br></div><div style>Thank you for bringing this up. In our system (<a href="http://github.com/genworks/Genworks-GDL">http://github.com/genworks/Genworks-GDL</a>) we have several package redefinitions during the bootstrapping process, which have caused confusion from time to time. I thought I was being clever and "modular" by redefining packages when various modules are loaded (exporting new symbols, etc). </div>
<div style><br></div><div style>Now I think I am coming around to the understanding that it's best to follow this recommendation from the spec, and simply define everything up-front, package-wise. Just because some functions are not defined yet does not mean we can't go ahead and define the entire package, reserving all the symbols ahead of time. </div>
<div style><br></div><div style>[Not directly relevant to this mailing list] This came to a head recently when trying to port to ABCL, and it turned out that ABCL's defpackage does not modify existing packages (at least, it won't honor new symbols being :export'ed if you call defpackage on an existing package). Nor does the ANSI spec require that defpackage does any such modifications to existing packages. So this whole time we have been relying on non-ANSI-standard behavior in our bootstrapping process! Rather than continuing to complicate things by making our own fancy define-package which does the package modification, I think we will just go ahead and put each of our package definitions in a single place, once and for all, and move on in life.  </div>
<div><br></div><div><br></div></div><div>-- <br></div>My Best,<br><br>Dave Cooper, Genworks Support<br><a href="mailto:david.cooper@genworks.com">david.cooper@genworks.com</a>, <a href="http://dave.genworks.com">dave.genworks.com</a>(skype)<br>
USA: 248-327-3253(o), 1-248-330-2979(mobile)<br>UK: 0191 645 1699<br>
</div></div>