One could argue that Julia is “statically compiled at run time”. See this talk by http://vimeo.com/84661077 for a discussion of that viewpoint, which I like.
— John On Mar 5, 2014, at 3:20 PM, andrew cooke <[email protected]> wrote: > > then how is it a jit? i just checked wikipedia and the definition there is > interpreter + compiler. which would give you stats from the interpreter? > > (not trying to be confrontational, just not understanding...!) > > thanks, > andrew > > On Wednesday, 5 March 2014 20:07:12 UTC-3, Tim Holy wrote: > Another factor is the following: Julia can't do the inference by watching > what > happens, because it has to compile the code before it runs. So it relies on > static inference, or generates generic code when that fails. > > --Tim > > On Wednesday, March 05, 2014 02:51:21 PM andrew cooke wrote: > > oh, i think i get it. > > > > you're not solving, you're just propagating. > > > > so you need the specified types to infer the return. and that's local to > > the function so scales. > > > > ignore me :o) > > > > cheers, > > andrew > > > > On Wednesday, 5 March 2014 19:40:30 UTC-3, andrew cooke wrote: > > > another question here made me realise i don't understand how return types > > > are handled in julia. > > > > > > after all, return types are not specified in functions (are they?). so > > > how does the system know that get() for Dict{A,B} returns type B? > > > > > > i guess there has to be whole program type inference on startup? that > > > pulls in and analyses base? or is this info cached somewhere? > > > > > > because if it was just the JIT seeing what happened in practice as code > > > ran, then you wouldn't have to worry about efficiency in the memoize case > > > (because the cache would always return the same type in practice). > > > > > > is this described somewhere? i thought i had read most of the docs by > > > now > > > (sorry if i've missed something). or am i confused (again)? > > > > > > thanks, > > > andrew > > > > > > [if that's not clear, i think my problem is i don't understand how much > > > the compiler relies on type inference, and how much on statistics of > > > types > > > of instances when running, and when inference is actually done]
