<html><body bgcolor="#FFFFFF"><div>Hi Dave</div><div><br></div><div>By explicit linking are we talking about mechanism's to unambiguously reference modules that may otherwise be ambiguous? For example in java if 'Node' could refer to a Node class in several different packages, the language allows one to fully qualify the Node class eg foo.Node. Just want to make sure I'm clear on the distinction between explicit and implicit linking.</div><div><br></div><div>Thx</div><div>kam<br><br><br></div><div><br>On Jun 2, 2010, at 12:14 PM, David Herman &lt;<a href="mailto:dherman@mozilla.com">dherman@mozilla.com</a>&gt; wrote:<br><br></div><div></div><blockquote type="cite"><div><div><blockquote type="cite"><div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex; position: static; z-index: auto; "><div style="word-wrap:break-word"><div><div>I don't have the time or inclination to provide a full bibliography.</div></div></div></blockquote><div><br></div><div>I consider your argument withdrawn, then.</div></div></div></blockquote><div><br></div><div>Excuse me? My argument is not "withdrawn" (are we in court?). If you are unaware of decades of prior art on modules, that's not my failing but yours.</div><div><br></div><div>My argument was and remains that others have gone down that road, and it's still very much an open research topic how to create module systems that provide the generality of explicit linking with the convenience of implicit linking. See e.g. Derek Dreyer's work, starting with his thesis and continuing to this day.</div><div><br></div><div><blockquote type="cite"><blockquote class="gmail_quote" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex; "><div style="word-wrap: break-word; "><div><div>Possibly, depending on whether you want to present modules to themselves as well.</div></div></div></blockquote><div><br></div><div>As I believe we discussed in our most recent f2f, it is possible to provide modular code with access to its own reified module instance via some distinguished symbol (e.g., "this" at the top level). And of course, modular code always has direct individual access to its own exports.</div></blockquote><div><br></div><div>Hence "depending."</div></div><div><br></div><blockquote type="cite"><div><div class="gmail_quote"><div>As recast, therefore, the example introduces Odd to "even.js" and Even to "odd.js". It's pretty minimal.</div></div></div></blockquote><div><br></div><div>And yet it's still too expensive. No one will take the step from non-module code to module code. They just won't. Besides,&nbsp;a not-quite-so-bad example of the Odd and Even modules is pretty weak tea.</div><div><br></div><div>The point is, you can special-case "this" if you want, but if you have a module graph of N modules, and each needs to be explicitly linked with N - 1 other modules, then you impose a quadratic code-size requirement on programmers. Unless, as I said, you beef up your linking-specification language.</div><div><br></div><div>Dave</div><div><br></div></div></div></blockquote><blockquote type="cite"><div><span>_______________________________________________</span><br><span>es-discuss mailing list</span><br><span><a href="mailto:es-discuss@mozilla.org">es-discuss@mozilla.org</a></span><br><span><a href="https://mail.mozilla.org/listinfo/es-discuss">https://mail.mozilla.org/listinfo/es-discuss</a></span><br></div></blockquote></body></html>