From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: "Faraz Shahbazker" Newsgroups: gmane.lisp.guile.user Subject: Re: to serialize/deserialize closures; and multithreading Date: 25 Mar 2004 22:38:00 -0000 Sender: guile-user-bounces+guile-user=m.gmane.org@gnu.org Message-ID: <20040325223800.14670.qmail@webmail27.rediffmail.com> Reply-To: Faraz Shahbazker NNTP-Posting-Host: deer.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1442874592==" X-Trace: sea.gmane.org 1080255066 32536 80.91.224.253 (25 Mar 2004 22:51:06 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Thu, 25 Mar 2004 22:51:06 +0000 (UTC) Cc: guile-user@gnu.org Original-X-From: guile-user-bounces+guile-user=m.gmane.org@gnu.org Thu Mar 25 23:50:55 2004 Return-path: Original-Received: from monty-python.gnu.org ([199.232.76.173]) by deer.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 1B6dgd-0004wu-00 for ; Thu, 25 Mar 2004 23:50:55 +0100 Original-Received: from localhost ([127.0.0.1] helo=monty-python.gnu.org) by monty-python.gnu.org with esmtp (Exim 4.30) id 1B6dVr-00006P-PE for guile-user@m.gmane.org; Thu, 25 Mar 2004 17:39:47 -0500 Original-Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.30) id 1B6dVZ-0008WP-M3 for guile-user@gnu.org; Thu, 25 Mar 2004 17:39:29 -0500 Original-Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.30) id 1B6dV2-0008Mv-75 for guile-user@gnu.org; Thu, 25 Mar 2004 17:39:27 -0500 Original-Received: from [203.199.83.37] (helo=rediffmail.com) by monty-python.gnu.org with smtp (Exim 4.30) id 1B6dV1-000878-Gc for guile-user@gnu.org; Thu, 25 Mar 2004 17:38:55 -0500 Original-Received: (qmail 14671 invoked by uid 510); 25 Mar 2004 22:38:00 -0000 Original-Received: from unknown (219.65.56.229) by rediffmail.com via HTTP; 25 mar 2004 22:38:00 -0000 Original-To: nickjohnson@virginia.edu X-BeenThere: guile-user@gnu.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: General Guile related discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Mime-version: 1.0 Errors-To: guile-user-bounces+guile-user=m.gmane.org@gnu.org Xref: main.gmane.org gmane.lisp.guile.user:3000 X-Report-Spam: http://spam.gmane.org/gmane.lisp.guile.user:3000 This is a multipart mime message --===============1442874592== Content-type: multipart/alternative; boundary="Next_1080254280---0-203.199.83.37-14667" This is a multipart mime message --Next_1080254280---0-203.199.83.37-14667 Content-type: text/html; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline

=0Anick,
=0A
=0AI am curious too : what is your purpose of migrati= on?
=0A
=0A        I am working on something simi= lar, for using scheme on
=0ABeowulf-clusters with PVM. Here the purpose = of migration is to
=0Aremotely-evaluate a sexp. But possible uses of thi= s technology
=0Acould be to simply suspend/restart programs(see chpox), = or for
=0Adelivering active web-content.
=0A
=0A> Should a muta= tion on the new computer of a captured variable
=0A> affect the old c= omputer? - greg
=0A
=0A        Basically, if your= program is purely/mostly functional,
=0Ait might be easy to migrate, wh= ile maintaining referential
=0Atransparency - just byte-copy(with tags) = all  data-types.
=0AThe semantics of mutable objects (when mutatio= n does occur)
=0Ais for you to decide. It might make greater sense for e= xample
=0Afor exceptions to be migrated and  handled remotely, than=
=0Asay mutexes or ports.
=0A
=0A
=0A>  Also, you'd nee= d to check that any symbols referenced by
=0A> the code or variables = were actually in existence in the
=0A> new guile instance's symbol ta= ble.  And that global
=0A> variables referenced by the code got = copied (as well as
=0A> the lexical variables).
=0A> So will be= recursively nasty.
=0A
=0A        I agree with L= ynn. Guile's own procedures for
=0Adetecting free-variables in expressio= ns may be inadequate for
=0Athis.  There is a technique called lamb= da-lifting meant for
=0Aconverting sexps into pure combinators(a.k.a thu= nks). See
=0AJonhsson's paper on lambda-lifting. It was meant to be used=
=0Afor compiler optimizations for ML. It was also used in the
=0ALar= ceny Scheme compiler. But since you are not yet conversant
=0Awith SCM_A= PI, I don't know....
=0A
=0A        printer/reade= r is an elegant(read slow ;) solution for
=0Aplain Scheme code, but it o= bviously won't work for custom smobs,
=0Awhich I am assuming that you mi= ght want to create(since you are
=0Ausing C).
=0A
=0ASo tell me m= ore about it!!
=0A
=0A- faraz
=0A=0A

=0A=0A=0A

=0A= =0A --Next_1080254280---0-203.199.83.37-14667 Content-type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline nick,=0A=0AI am curious too : what is your purpose of migration?=0A=0A = I am working on something similar, for using scheme on=0ABeowulf-cluster= s with PVM. Here the purpose of migration is to=0Aremotely-evaluate a sexp.= But possible uses of this technology=0Acould be to simply suspend/restart = programs(see chpox), or for=0Adelivering active web-content.=0A=0A> Should = a mutation on the new computer of a captured variable=0A> affect the old co= mputer? - greg=0A=0A Basically, if your program is purely/mostly fun= ctional,=0Ait might be easy to migrate, while maintaining referential=0Atra= nsparency - just byte-copy(with tags) all data-types.=0AThe semantics of = mutable objects (when mutation does occur)=0Ais for you to decide. It might= make greater sense for example=0Afor exceptions to be migrated and handle= d remotely, than=0Asay mutexes or ports.=0A=0A=0A> Also, you'd need to che= ck that any symbols referenced by=0A> the code or variables were actually i= n existence in the=0A> new guile instance's symbol table. And that global= =0A> variables referenced by the code got copied (as well as=0A> the lexica= l variables).=0A> So will be recursively nasty.=0A=0A I agree with L= ynn. Guile's own procedures for=0Adetecting free-variables in expressions m= ay be inadequate for=0Athis. There is a technique called lambda-lifting me= ant for=0Aconverting sexps into pure combinators(a.k.a thunks). See=0AJonhs= son's paper on lambda-lifting. It was meant to be used=0Afor compiler optim= izations for ML. It was also used in the=0ALarceny Scheme compiler. But sin= ce you are not yet conversant=0Awith SCM_API, I don't know....=0A=0A = printer/reader is an elegant(read slow ;) solution for=0Aplain Scheme code= , but it obviously won't work for custom smobs,=0Awhich I am assuming that = you might want to create(since you are=0Ausing C). =0A=0ASo tell me more ab= out it!!=0A=0A- faraz =0A=0A=0A --Next_1080254280---0-203.199.83.37-14667-- --===============1442874592== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Guile-user mailing list Guile-user@gnu.org http://mail.gnu.org/mailman/listinfo/guile-user --===============1442874592==--