Re: [Haskell-cafe] Apparently, Erlang does not have a static type system, since with hot code loading, this is intrinsically difficult.

2010-04-05 Thread wren ng thornton

Jason Dusek wrote:

2010/04/03 Casey Hawthorne cas...@istar.ca:

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
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Apparently, Erlang does not have a static type system, since with hot code loading, this is intrinsically difficult.

2010-04-04 Thread Serguey Zefirov
2010/4/4 Casey Hawthorne cas...@istar.ca:
 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. ;)
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Apparently, Erlang does not have a static type system, since with hot code loading, this is intrinsically difficult.

2010-04-04 Thread Don Stewart
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
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] Apparently, Erlang does not have a static type system, since with hot code loading, this is intrinsically difficult.

2010-04-03 Thread 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


Re: [Haskell-cafe] Apparently, Erlang does not have a static type system, since with hot code loading, this is intrinsically difficult.

2010-04-03 Thread aditya siram
Check out Hint [1].

[1] http://hackage.haskell.org/package/hint


On 4/3/10, Casey Hawthorne cas...@istar.ca wrote:
 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

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Apparently, Erlang does not have a static type system, since with hot code loading, this is intrinsically difficult.

2010-04-03 Thread Jason Dusek
2010/04/03 Casey Hawthorne cas...@istar.ca:
 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
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe