[Fwd: Re: Transactions in Squeak?]

Paul Fernhout pdfernhout at kurtz-fernhout.com
Wed Jul 12 13:02:55 UTC 2000


"Mark A. Schwenk" wrote:
[Forwarded post from "Michael A. Olson" <mao at sleepycat.com>]

Mark-

Thanks for getting that information. This is definitely exciting for
people who want to do business transactions with Squeak.

[Other topics beyond licensing snipped]

>  In the case of interpreted languages
> like Perl, Python, Tcl, and (possibly) Squeak, we consider the
> interpreter to be the application that "uses" Berkeley DB.
> As a result, programmers who write applications in those
> languages, and who use Berkeley DB, may do so at no charge.

That sounds very generous.

Michael seems to raise an issue at the end of his email related to run
time linking vs. static linking. 

> Right off the bat, it doesn't appear to me that there are any
> difficult licensing issues.  However, I do have one question
> that could change my answer.
> 
> I read on the squeak.org site that for performance reasons, you
> can generate an equivalent C program for any Squeak program.
> Does that C program have to link in (or communicate via IPC with)
> a run-time engine that provides Squeak-specific services?  In
> particular, would that C program call Berkeley DB directly,
> or would it make calls via a Squeak run-time component to the
> database library?

I think what he is trying to get at is the (typically GNU GPL)
distinction of how different parts of a program connect and how that
effects licensing. Specifically, I am guessing he is concerned that
allowing use of the SleepCat/Berkley DB under Squeak would open the door
to people writing pluggable primitives that are basically closed source
C applications that use the database, which might impact their revenue
stream (thus, using Squeak as a "front" to get around what is as I read
it a slightly more permissive than GPL license). 

At the moment, I am not greatly personally motivated to resolve this
licensing issue because I am not planning at the moment to use a
conventional DB system (like SleepyCat) in my own work with Squeak.
However, I think this issue would be very worth resolving for the Squeak
community in general, or for anyone doing web transactions and requiring
a conventional database.

I think the answer to his question is that the primitive or FFI setup is
that code calls into a primitive, and returns a result (perhaps
modifying the VM state or other things under the OS). So, calls to the
DB primitives would normally be made using Squeak code. However, to the
best of my knowledge there is nothing in theory technically to stop a
primitive from looking to see what other primitives are dynamically
loaded into Squeak and calling those or other statically linked
functions directly. (I have not seen this done though.) However, I would
think the same would apply for Python, Perl, or TCL primtives if they
could access their VMs. Any other comments?
 
-Paul Fernhout
Kurtz-Fernhout Software 
=========================================================
Developers of custom software and educational simulations
Creators of the Garden with Insight(TM) garden simulator
http://www.kurtz-fernhout.com





More information about the Squeak-dev mailing list