Just FYI,

The actual patch is in the files section:
http://groups.google.com/group/clojure/web/auto-def.patch
With an example:
http://groups.google.com/group/clojure/web/lit-wc.clj
>From a longer thread about 'snake' which talked about literate
programming:
http://groups.google.com/group/clojure/browse_thread/thread/2a23a95bf22938a3

It does not implement existence checking upon completion of compile
unit. How exactly should this work? We can keep a set of symbols auto-
defined and 'at checkpoint' test if they are still undefined...
however what is the 'checkpoint'? For fully compiled code the
'checkpoint' is clear - but Clojure is dynamic... what should happen
with this code:

(defn myfun []
  (another-fun 5))
(myfun)
(defn another-fun [x]
  (inc x))

In a compiled language that would be valid, but in a dynamic language
it is a runtime error. I don't see how to overcome this, which makes
auto-def quite useless :) It seems you either need to accept top-down
or accept undefined symbol runtime errors. There is a third
alternative, which is to use Knuth's literate programming technique of
actually writing your code in TeX and have it transformed from there
to either code or documentation... but again for interactive
development that is quite rigorous.


Regards,
Tim.



On Mar 17, 7:54 am, David Nolen <dnolen.li...@gmail.com> wrote:
> Here's the post by Timothy talking about patching the compiler:
>
> http://groups.google.com/group/clojure/msg/ef5bae605f4a0730
>
> On Mon, Mar 16, 2009 at 4:36 PM, Paul Stadig <p...@stadig.name> wrote:
> > On Mon, Mar 16, 2009 at 4:18 PM, David Nolen <dnolen.li...@gmail.com>wrote:
>
> >> On Mon, Mar 16, 2009 at 4:08 PM, Paul Stadig <p...@stadig.name> wrote:
>
> >>> I may be missing something, but how does having to (declare) vars fix
> >>> typos? I don't think anyone is suggesting *creating* a var that is
> >>> referenced before it is defined. What people are asking for is that the
> >>> compiler looks-ahead to verify that the var will eventually be defined, 
> >>> and
> >>> then go on its merry way. Typos would still be discovered, and people
> >>> wouldn't have to stop and (declare).
>
> >> Yeah I wasn't suggesting that vars should be created, sorry if it sounded
> >> like I was (I mentioned declare because this came up in another thread 
> >> about
> >> declare and someone had hacked the reader to not bail immediately on
> >> undefined symbols).
>
> > Sorry, my fault. I was just responding in general, not to you specifically.
>
> >> In CL, if you have definitions out of order in the compiler will issue
> >> warnings.
>
> >>> I'm not saying it's an easy change...
>
> >>> Paul
>
> > Could someone post the link to the previous discussion? I searched the
> > group for declare, but didn't turn up anything.
>
> > Paul
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To post to this group, send email to clojure@googlegroups.com
To unsubscribe from this group, send email to 
clojure+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to