Alexander Kjeldaas scripsit: > When you don't have immutable objects, there is no way you can promise > not to send mutable state from one process to another process. This > means that for a scheme implementation - if you implement simple > processes using continuations, there is no possibility for the > implementation to have the continuations live in separate > stacks/heaps.
R6RS Scheme has immutable booleans, characters, numbers, symbols, and exceptional conditions. Furthermore, you can create immutable objects of novel types using records -- the immutable equivalent of pairs, strings, vectors, bytevectors, hash tables, .... There is no portable way to look at a closure and see if it's immutable, but a compiler can readily determine which closures are in fact immutable (because nobody does a set! on any of the lexically apparent variables). > But there seems to be a need to be language-defined abstractions or > functions that can: > 1) Make immutable objects (so that communication between processes is > possible including making a message queue). See above. > 2) Create a closure with an empty environment, or with an environment > consisting only of immutable objects (so that moving a continuation to > a different heap or machine is possible). As I said, a compiler can figure that out, since it knows statically which variables are immutable and which objects bound to immutable variables are immutable. > Implementing this on top of scheme is a non-solution as there is no > way for the scheme implementation to know about "promises" you are > making. The scheme implementation will not have the ability to > migrate processes across machines or to a different heap or to respawn > a failed process etc without the above being promises that are defined > in the language. Not full Scheme, no. -- John Cowan [EMAIL PROTECTED] http://ccil.org/~cowan No man is an island, entire of itself; every man is a piece of the continent, a part of the main. If a clod be washed away by the sea, Europe is the less, as well as if a promontory were, as well as if a manor of thy friends or of thine own were: any man's death diminishes me, because I am involved in mankind, and therefore never send to know for whom the bell tolls; it tolls for thee. --John Donne _______________________________________________ r6rs-discuss mailing list [email protected] http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss
