
Hackage 2010 Q1 report http://donsbot.wordpress.com/2010/04/03/the-haskell-platform-q1-2010-report/ After the big move of Hackage from monk to the new abbot server, here's the first report on which packages are popular, and how Hackage is doing in general. -- Don

Apparently, Erlang does not have a static type system, since with hot code loading, this is intrinsically difficult. "Erlang Programming", Francesco Cesarini & Simon Thompson, June 2009, O'Reilly, page 31. If Haskell allows hot code loading, would this throw a wrench into the static type system? -- Regards, Casey

Check out Hint [1].
[1] http://hackage.haskell.org/package/hint
On 4/3/10, Casey Hawthorne
Apparently, Erlang does not have a static type system, since with hot code loading, this is intrinsically difficult.
"Erlang Programming", Francesco Cesarini & Simon Thompson, June 2009, O'Reilly, page 31.
If Haskell allows hot code loading, would this throw a wrench into the static type system? -- Regards, Casey _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

2010/04/03 Casey Hawthorne
Apparently, Erlang does not have a static type system, since with hot code loading, this is intrinsically difficult.
It is doubtless hard to statically check a program that is not statically available :)
If Haskell allows hot code loading, would this throw a wrench into the static type system?
One can not "gloss over" the difference between statically verified and not; dynamic loading becomes essentially "dynamic compiling and type-checking". You ship a statically checked Haskell program that is run to construct new Haskell programs. With `hint-server', for example, you have a statically checked master process which is shipped with the GHC inside and you load subprograms into their own environment; if type checking works then, hurray, it did and you run the subprogram. If not, well, you handle the error. The master process is static while the modules governed by it are not. I wonder, is it possible in Erlang to dynamically reload the entire runtime, stem-to-stern? -- Jason Dusek

Jason Dusek wrote:
2010/04/03 Casey Hawthorne
: Apparently, Erlang does not have a static type system, since with hot code loading, this is intrinsically difficult.
It is doubtless hard to statically check a program that is not statically available :)
Well, so long as you get the hot-loaded component all at once, you can do analysis on the static code before you try running it. Just because some code arrives after the program started running doesn't mean that code needs to be interpreted and have dynamic safety checks inserted. Now, if you don't get your code in nice cohesive chunks, but have it streaming in all willy nilly, then you'd need something like gradual typing or what Epigram does in order to do partial-analysis of what static code is available, even if it has holes in it. -- Live well, ~wren

2010/4/4 Casey Hawthorne
Apparently, Erlang does not have a static type system, since with hot code loading, this is intrinsically difficult.
Apparently, this is doable with proper engineering even for such an unsafe language as C: http://www.cs.umd.edu/projects/PL/dsu/
"Erlang Programming", Francesco Cesarini & Simon Thompson, June 2009, O'Reilly, page 31.
I think this is opinion from the time of Erlang design and initial prototypes which gets speaken repeatedly over and over again without (re)checking of facts.
If Haskell allows hot code loading, would this throw a wrench into the static type system?
The code that is loaded most often is the code of "state transformer" that operate on completely specified types of state and incoming messages. Behaviours (high level program composing "combinators" for Erlang) are pretty stable (and, as far as I can tell, are hard to reload - but I can be wrong). Again, one example of code reloading implemented for Bluetail Mail Robustifier actuall stops the system for complete code update and need special conversion code to update old state to new state invariants and back. I think that it is even easier in the presence of strong type system. And again: most of Erlang library code is annotated with type specifications for dialyzer. So I don't think that contemporary Erlang is dynamically typed. It's just static types does not used much. ;)

caseyh:
Apparently, Erlang does not have a static type system, since with hot code loading, this is intrinsically difficult.
"Erlang Programming", Francesco Cesarini & Simon Thompson, June 2009, O'Reilly, page 31.
If Haskell allows hot code loading, would this throw a wrench into the static type system?
It certainly adds a phase in that you need to type check code before executing it. Which means you'll need to keep *some* types around at the splice/hot loading points. That is all. -- Don
participants (7)
-
aditya siram
-
Casey Hawthorne
-
Christopher Done
-
Don Stewart
-
Jason Dusek
-
Serguey Zefirov
-
wren ng thornton