[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Statice/CLOS integration.



Received: from THOMAS.kahuna.decnet.lockheed.com by ALAN.kahuna.decnet.lockheed.com via CHAOS with CHAOS-MAIL id 22015; 9 Feb 90 14:44:09 PST
Date: Fri, 9 Feb 90 14:44 PST
From: Robert D. Pfeiffer <RDP@ALAN.kahuna.decnet.lockheed.com>
Subject: Statice/CLOS integration.
To: SLUG@ALAN.kahuna.decnet.lockheed.com
In-Reply-To: <19900122174710.3.RDP@THOMAS.kahuna.decnet.lockheed.com>
Message-ID: <19900209224402.2.RDP@THOMAS.kahuna.decnet.lockheed.com>

[It seemed like others on the SLUG list might be interested in this conversation.  
Symbolics developers are particularly invited to jump in. :-) ] 

    Date: Mon, 22 Jan 90 09:47 PST
    From: Robert D. Pfeiffer <RDP@ALAN.kahuna.decnet.lockheed.com>

	Date: Tue, 16 Jan 90 20:06:41 EST
	From: aboulang@WILMA.BBN.COM

	[...]

	It is actually not that hard to do put a CLOS layer on top of statice
	in a brute force way. We have done this for a project that is based on
	CLOS.

    OK, thanks for the advice.  Off-hand, it wasn't clear to me how much
    work I would be buying into to pursue this course.  You convinced me to
    give it a shot.  Thanks again.

After a little poking around, it's not clear to me what the winning
approach is.  The basic problem I want to solve is to write all my code
as if I'm using CLOS (particularly DEFMETHODs), but to also integrate
Statice functionality (particularly DEFINE-ENTITY-TYPEs).  Furthermore,
I'd like to keep the option open of eventually maintaining my
application so that it could use either Statice or BIN files as a
database.

Here's a specific example:

I want to store objects of type 'FOO in a Statice database.  One way or
another (typically with FOR-EACH), I'll retrieve these objects.  What
I'll really get back are entity handles (which are Flavor instances
*not* CLOS instances).  Thus, a CLOS method which takes an argument of
type 'FOO won't work.  Additionally, the Statice-generated accessor
functions will be Flavor methods not CLOS methods.  I'm not sure what
the implications of this are.

I can see two approaches to dealing with this:

1) Contrive to make Statice deal with CLOS rather than Flavors by
   patching the Statice source.  This seems possible (starting with the
   DEFINE-ENTITY-TYPE macro), but I'm not anxious to try it.

2) Contrive to map each entity handle into a corresponding CLOS
   instance at run-time.  I think this is what the "put a CLOS layer on top of
   Statice" suggestion means, but I don't really see a nice clean way to
   go about it.

Help, anyone?