[Mono-list] PHP.NET?

Thomas F. Burdick tfb@OCF.Berkeley.EDU
Fri, 13 Jul 2001 12:25:46 -0700

Daniel Barlow writes:
 > "Thomas F. Burdick" <tfb@OCF.Berkeley.EDU> writes:
 > > PHP developers, not for Mono.  Personally, I want to see a Free
 > > implementation of a Common Lisp-like lisp for Mono
 > I'm browsing this list archive in the hope that it helps me decide
 > whether I think this would be a sensible idea or not.
 > Cursory inspection suggests that the object model in .NET is not
 > nearly as general as CLOS (e.g. methods are owned by classes, so
 > multiple specialisation gets messy)

Well, one "solution" could be to implement a CL-like Lisp without
CLOS, but using a C#-like object system instead.  Bleah.  Instead, one
method of getting multiple-dispatch into Mono might be to have a
GenericFunction class, which each generic function is an instance of;
a call like (some-method obj1 obj2 obj3) would invoke the find-method
method on the instance representing the `some-method' gf, which would
return the appropriate method (presumably stored in one of its
instance variables), which would then be called.  Classes and generic
functions exported for use by other languages would of course have to
use the more constrained object model of the rest of the system, maybe
via specifying a `mono' metaclass.

The above thinking is probably not the best way to do it, but I asked
myself "would it be possible to implement CLOS on .net?", came up with
the above, and satisfied myself that it's possible.  Right now, I'm
interested in working on the Mono runtime (specifically the GC), so
I'm satisfied with the idea that a CL on .net is possible.  After Mono
is up and going (from my perspective), if no one's already written a
good CL for .net, I'll try to figure out a good way to do it (I'm
pretty sure the above idea would be rather inefficient).

 > If anyone has a pointer to an overview of the .NET object system,
 > please pass it along
 > (I'm not on this list  - please CC replies to me)

The resources page on <http://www.go-mono.org/> should be a good place
to start.  BTW, if you decide to work on a Lisp for .net, please keep
me informed.