Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Clisp and FFI's to C++

5 views
Skip to first unread message

OCID

unread,
Feb 10, 2003, 1:28:47 PM2/10/03
to
I've been looking at FFI documentation in various implementations and all of
them seem to be 1) different and 2) not easy to implement.

Looked at the UFFI package to resolve this but that brings it down to the
LCD.

Is there a way to access and manipulate C++ classes/objects directly from
within Clisp/CMUCL? If yes, can someone give a decent example and if no,
how much effort would it take to write one??? Any ideas?

Thanks in advance

~sp


Thomas F. Burdick

unread,
Feb 10, 2003, 2:03:18 PM2/10/03
to
"OCID" <spa...@purdue.edu> writes:

No, there's not. C linkage is easy. C++ includes all sorts of
horrors like name-mangling, and constant binary incompatabilities. If
you've been lucky enough to only work in C++ when the system is fixed,
you probably haven't had the chance to appreciate the horror of
changing a minor version of any class library, the g++, or libstdc++.

The easiest thing to do is to write a simple C bridge, and use the FFI
to get to that.

If you really wanted to add basic C++ support to the CMUCL/SBCL alien
interface, it wouldn't be too hard. The big practical problem would
be that distributed binaries would pretty much only be able to do C++
FFI on the system that built them. But if you don't mind asking the
user to compile their own to get C++ support, it wouldn't be too bad.

--
/|_ .-----------------------.
,' .\ / | No to Imperialist war |
,--' _,' | Wage class war! |
/ / `-----------------------'
( -. |
| ) |
(`-. '--.)
`. )----'

Henrik Motakef

unread,
Feb 10, 2003, 2:10:16 PM2/10/03
to
"OCID" <spa...@purdue.edu> writes:

> Is there a way to access and manipulate C++ classes/objects directly from
> within Clisp/CMUCL?

I doubt that, scince the ABIs of different compilers (and compiler
versions, e.g. GCC 2 vs. GCC 3) differ, so a C++ FFI would have to be
compiler specific.

You'll probably have to create a pure C wrapper first (this is how
Swig, Sip etc. do it, AFAIK).

Then again, I could be wrong.

Regards
Henrik

OCID

unread,
Feb 10, 2003, 2:59:36 PM2/10/03
to
Thats what I thought. And I really dislike C++.

"Henrik Motakef" <henrik....@web.de> wrote in message
news:87lm0oc...@interim.henrik-motakef.de...

OCID

unread,
Feb 10, 2003, 2:58:11 PM2/10/03
to
The main purpose is trying to integrate the wxWindows API with an open
source lisp, preferably clisp (seems like the most portable).

http://sourceforge.net/projects/wxlisp/

Might have to write a C wrapper around it.

Thanks

~sp


"Thomas F. Burdick" <t...@mudslide.OCF.Berkeley.EDU> wrote in message
news:xcvof5k...@mudslide.OCF.Berkeley.EDU...

Thomas F. Burdick

unread,
Feb 10, 2003, 3:24:06 PM2/10/03
to
"OCID" <spa...@purdue.edu> writes:

> The main purpose is trying to integrate the wxWindows API with an open
> source lisp, preferably clisp (seems like the most portable).
>
> http://sourceforge.net/projects/wxlisp/
>
> Might have to write a C wrapper around it.

Good luck, but it's probably harder than you think. Unless I'm
mistaken, wxWindows wants to hold the main driver loop for the
program, and calls back into your code. Most Lisp implementations
want to be the main driver loop. Because of this, you probably won't
be able to just make FFI bindings to wxWindows. You might try an
approach like CLM (CL bindings for Motif), where you'd have a
wxWindows server application that the Lisp process would talk to along
a pipe, allowing both processes to have "the" main loop.
Incidentally, this would also make portability between Lisp
implementations a breeze.

Henrik Motakef

unread,
Feb 10, 2003, 3:27:25 PM2/10/03
to
"OCID" <spa...@purdue.edu> writes:

> The main purpose is trying to integrate the wxWindows API with an open
> source lisp, preferably clisp (seems like the most portable).
>
> http://sourceforge.net/projects/wxlisp/

Good luck! That would surely be a nice thing to play with.

> Might have to write a C wrapper around it.

It should be possible to re-use the wrappers other bindings,
e.g. wxPython, use, the problems with interfacing C++ are not
Lisp-specific, after all.

IIRC, the KDE guys provide a C-wrapper for all of QT, maybe there is
something like that for wxWindows, too?

Regards
Henrik

P.S.: Please don't fall in the same trap as wxPython and mimic the C++
API too closely (for example, wxPython spells EVT_MENU etc. all
in uppercase because they are macros in C++. There are no macros
in Python, they are just a plain functions. It just feels
weird.) Your users will be Lispers, and propably don't like C++
too much, either.

Kaz Kylheku

unread,
Feb 10, 2003, 5:11:07 PM2/10/03
to
"OCID" <spa...@purdue.edu> wrote in message news:<b2908l$304$1...@mozo.cc.purdue.edu>...

> The main purpose is trying to integrate the wxWindows API with an open
> source lisp, preferably clisp (seems like the most portable).
>
> http://sourceforge.net/projects/wxlisp/
>
> Might have to write a C wrapper around it.

I have something like this going already, an unreleased project called
wxcl.

No time to work on it, though. It's quite boring, going class by class
and wrapping it up.

So far I can put up a main frame, with a few basic controls: menu bar,
button, text.

Messages originating from the controls are mapped to CLOS methods.

I should release the source to let others hack on it. :)

Andrei de A, Formiga

unread,
Feb 10, 2003, 11:40:53 PM2/10/03
to
k...@ashi.footprints.net (Kaz Kylheku) wrote in message news:<cf333042.03021...@posting.google.com>...

> "OCID" <spa...@purdue.edu> wrote in message news:<b2908l$304$1...@mozo.cc.purdue.edu>...
> > The main purpose is trying to integrate the wxWindows API with an open
> > source lisp, preferably clisp (seems like the most portable).
> >
> > http://sourceforge.net/projects/wxlisp/
> >
>
> I have something like this going already, an unreleased project called
> wxcl.
>

CL bindings to wxWindows would be most interesting: A portable,
working GUI for Common Lisp.

---
[]s, Andrei de A. Formiga

OCID

unread,
Feb 11, 2003, 3:35:43 PM2/11/03
to
Do you plan to release the code for it??? Will it be GPL???

"Kaz Kylheku" <k...@ashi.footprints.net> wrote in message
news:cf333042.03021...@posting.google.com...

Kaz Kylheku

unread,
Feb 11, 2003, 3:47:21 PM2/11/03
to
k...@ashi.footprints.net (Kaz Kylheku) wrote in message news:<cf333042.03021...@posting.google.com>...
> "OCID" <spa...@purdue.edu> wrote in message news:<b2908l$304$1...@mozo.cc.purdue.edu>...
> > The main purpose is trying to integrate the wxWindows API with an open
> > source lisp, preferably clisp (seems like the most portable).
> >
> > http://sourceforge.net/projects/wxlisp/
> >
> > Might have to write a C wrapper around it.
>
> I have something like this going already, an unreleased project called
> wxcl.

Okay, here it is: http://users.footprints.net/~kaz/wxcl-0.tar.gz

Caveats and notes:

- CLISP only, but anticipates portability.
- uses require/provide to glue itself together; these are deprecated language
features. Some better system construction is needed (mk::defsystem? ...)
- a few common language extensions (weak hashes, finalizers). Weak hashes
are used to associate CL objects with C++ objects, and finalizers are used
to destroy the C++ objects when the CL objects become garbage.
- only a very tiny, useless subset of wxWindows is wrapped---if you don't mind
making a gui that only has menu items, text input controls and simple
buttons.
- no documentation, and even fewer comments in the code.
- some use of symbolic links in the source tree.

Henrik Motakef

unread,
Feb 11, 2003, 5:18:39 PM2/11/03
to
k...@ashi.footprints.net (Kaz Kylheku) writes:

>> I have something like this going already, an unreleased project called
>> wxcl.
>
> Okay, here it is: http://users.footprints.net/~kaz/wxcl-0.tar.gz

Thanks! Seems to be some interesting Lisp-GUI activity going on
lately.

So, we now have the beginnings of a wxWindows binding called wxcl, and
a domain and sourceforge project called wxlisp with no code yet. The
natural thing to do seems to be merging both projects, obviously.

Kaz, you didn't include a license note in your code. You said that you
don't have enough time to work on it, so would it be OK for you to
have Sanjay and hopefully others use it as a starting point for the
sourceforge project? (And, did you have the impression that the way
you started would work to build a usable binding?)

Sanjay, what do you think?

Regards
Henrik

OCID

unread,
Feb 12, 2003, 8:31:37 AM2/12/03
to
Seems like a good idea to me ... and the code looks decent as well.

The best part is that he has used Clisp which is probably the most
portable free CL.

~sp

"Henrik Motakef" <henrik....@web.de> wrote in message

news:871y2ec...@interim.henrik-motakef.de...

OCID

unread,
Feb 12, 2003, 8:32:26 AM2/12/03
to
Thanks,
Would you be alright if we use this code as a starting point for the
wxLisp project????

Take Care

~sp

"Kaz Kylheku" <k...@ashi.footprints.net> wrote in message
news:cf333042.03021...@posting.google.com...

Kaz Kylheku

unread,
Feb 12, 2003, 3:22:29 PM2/12/03
to
"OCID" <spa...@purdue.edu> wrote in message news:<b2didd$5gc$1...@mozo.cc.purdue.edu>...

> Thanks,
> Would you be alright if we use this code as a starting point for the

Sure. I haven't put any notices in there at all, but you can treat it
as (new) BSD licensed.

> wxLisp project????

That's impossible, because wxLisp already exists, as you know: it's
wxWindows bindings for the dialect of lisp known as Xlisp. It's better
if you stick to the name wxcl.

Hannah Schroeter

unread,
Feb 12, 2003, 3:24:59 PM2/12/03
to
Hello!

OCID <spa...@purdue.edu> wrote:
>Do you plan to release the code for it??? Will it be GPL???

Libraries under GPL aren't really a fine thing.

>[...]

Kind regards,

Hannah.

OCID

unread,
Feb 12, 2003, 3:37:06 PM2/12/03
to
Well,
Its a little late for that considering that we already have a project up at
sourceforge and also a domain http://www.wxlisp.org/ for it.

Thanks again for the code. I'm sure it will be a good starting point.

Take Care

~sp


"Kaz Kylheku" <k...@ashi.footprints.net> wrote in message
news:cf333042.03021...@posting.google.com...

OCID

unread,
Feb 12, 2003, 3:47:28 PM2/12/03
to
For the nature of this project and the fact that we are trying to create
libraries for free versions of CL, I think the GPL is a better choice of
license. Besides, the Lisp community _does_ need all the help it can
get in terms of making the software more popular. open source GUI
bindings and web based libraries are not a commodity yet whereas they
should have been considering the time Lisp has been in the market.

From a programmers perspective and as a user of a lot of free software,
I and many others prefer the GPL over other open licensing, e.g, BSD
style which lets others leech off your work without giving back.

What if any, concerns do you have about GPL libraries???

Take Care

Sanjay


"Hannah Schroeter" <han...@schlund.de> wrote in message
news:b2eair$r9j$1...@c3po.schlund.de...

Tim Haynes

unread,
Feb 12, 2003, 4:09:39 PM2/12/03
to
"OCID" <spa...@purdue.edu> writes upside-down:

[snip]


> From a programmers perspective and as a user of a lot of free software, I
> and many others prefer the GPL over other open licensing, e.g, BSD style
> which lets others leech off your work without giving back.

I would say that's not necessarily from a programmer's perspective, it's
the perspective of someone demanding credit and/or reward for what they do,
rather than recognizing that code being used is its own reward. But hey,
that's your call, and I'm sure not everyone will share the same view.

> What if any, concerns do you have about GPL libraries???

How about the fact that anyone using the library will be forced to release
their app under the terms of their GPL, IOW you're actually restricting
your target audience.

Try the LGPL instead, if you want.

~Tim
--
21:06:48 up 1 day, 7:29, 7 users, load average: 0.10, 0.10, 0.09
pig...@stirfried.vegetable.org.uk |Seedy heroes and silver tills
http://piglet.is.dreaming.org |Sinking suns on a sea of thrills

Kaz Kylheku

unread,
Feb 12, 2003, 4:28:50 PM2/12/03
to
Henrik Motakef <henrik....@web.de> wrote in message news:<871y2ec...@interim.henrik-motakef.de>...
> Kaz, you didn't include a license note in your code. You said that you

Something at least as weak as the wxWindows license itself. BSD so we
can all make proprietary GUI apps, leading to profitable Lisp-based
corporations.

> don't have enough time to work on it, so would it be OK for you to
> have Sanjay and hopefully others use it as a starting point for the
> sourceforge project? (And, did you have the impression that the way
> you started would work to build a usable binding?)

I think so. The basic principles are:

- use CLOS objects to mirror wxWindows class hierarchy: windows,
events,
controls, etc.
- preserve the C++ programming model as much as possible, but don't
copy too much braindamage.
- Lisp programmer who understands wxWindows and C++ should understand
wxcl easily.
- goal: be more true to wxWindows C++ programming model than wxPython,
with
help of macros, CLOS, etc.
- implement-app macro, message map defining macro, like in C++.
- goal: take advantage of Lisp power:
- e.g. nice macro language for marking up structure of GUI,
abstracting explicit object construction and association
(not implemented).
- finalization calls destructors of C++ objects owned by Lisp domain,
avoids doing so for objects owned by C++ domain (e.g. events).
- weak hashes implement two-way navigable association between C++
objects
and CLOS objects.
- :before and :after advice on slot accessors synchronizes data to and
from backing C++ object.
- given accessor (value tc) of a text control,
(setf (value tc) "foo") really updates GUI with new text.
- message routing handled entirely by CLOS; no message
mapping in C++, and only one fixed subclass per class to grab
control via virtual functions.
- e.g. derive a wxLispFrame from wxFrame in C++ wrapper code;
all other flexibility mirrored in Lisp; no other inheritance
in C++.
- no mirroring of C++ braindamage like #define constants for
control ID's; symbols used instead to identify controls.
- global table is maintained which ``interns'' symbols to
dynamically generated unique integer ID's; symbols mapped to
to integers on the way to C++, back to symbols on the way out
of C++.
- message map macros generate event-handling methods that
specialize on event types and control ID's to the handlers
named in the message map macros. Example:
- wxLispFrame handles event via overridden virtual function,
passes control to Lisp callback.
- handle-event method invoked in the Lisp world with frame,
event object and control symbol parameters:
(handle-event frame event symbol)
- handle-event specializations generated by message map macro,
not coded by user (but of course can be).
- example: event is ``command'', and symbol is ``:save-menu-item''
- handle-event GF passes control to (on-save frame) based on
message map definition.

OCID

unread,
Feb 12, 2003, 4:37:42 PM2/12/03
to
Its all a matter of perspective and audience.

As far as GUI utilities/libraries are concerned, the proprietary software
vendors in
the Lisp community mainly Franz and Xanalys have decent CLIM interfaces
already
built into their products which are very good, albeit expensive. MCL and
Corman
are very platform oriented and Digitool is supposed to have a beta out for
OS X,
I've heard.

The main audience (people like me) are folks who use open source lisp
implementations
like Clisp, CMUCL and GCL and are looking for a decent cross-platform GUI
library
to design their applications. wxWindows is a pretty decent library (also
GPL'ed).

Another thing is using the library and modifying the library are entirely
differnt things.
Using it _does_ not force you to do anything. Modifying it for any purpose
does and
that _should_ benefit the whole community ... IMHO.

So, you can design and sell applications without revealing the source code
even
though its not in the spirit of the GPL. However, if your app needed
modifying the
library, you only need to reveal those parts of the source code. I don't see
that as
restrictive in any way ....

Take Care

~sp

"Tim Haynes" <usenet-...@stirfried.vegetable.org.uk> wrote in message
news:86y94l6...@potato.vegetable.org.uk...

Marc Spitzer

unread,
Feb 12, 2003, 4:46:46 PM2/12/03
to
"OCID" <spa...@purdue.edu> writes:

> For the nature of this project and the fact that we are trying to create
> libraries for free versions of CL, I think the GPL is a better choice of
> license. Besides, the Lisp community _does_ need all the help it can

Why? The gpl is a license that is hostile to many types of development.
CMUCL is not gpl for that reason. If you are trying to get many people
use it why not BSD, it is much more friendly.

> get in terms of making the software more popular. open source GUI

And gpl works against that.

> bindings and web based libraries are not a commodity yet whereas they
> should have been considering the time Lisp has been in the market.

Why should they be? Have you taken a look at how small(few lines of code)
a lisp client implementation of pop, imap, http is? It does not look like
that much work so libraries are not all that important. They can be nice,
when done well, but are not as necessary as they are in C for example.

>
> From a programmers perspective and as a user of a lot of free software,
> I and many others prefer the GPL over other open licensing, e.g, BSD
> style which lets others leech off your work without giving back.

Ah so you want to leach off of others. Why do you assume that all people
are assholes and thieves? Why not assume people are good people and trust
them? The vast majority of people *are* reasonably trustworthy, if they
were not then society would not work.

>
> What if any, concerns do you have about GPL libraries???
>

it is hostile to small shops who want to make money by programming.
it requires me to give up too much of my ownership over what I
produce to use it as part of my product. I would much prefer to
pay money to not give away my design/idea so I can sell it and make
more money. This also allows others to make money off of me and it
is much easier to pay the rent with money then with code you can
not make money with.

marc

Henrik Motakef

unread,
Feb 12, 2003, 4:56:14 PM2/12/03
to
"OCID" <spa...@purdue.edu> writes:

> For the nature of this project and the fact that we are trying to create
> libraries for free versions of CL, I think the GPL is a better choice of
> license. Besides, the Lisp community _does_ need all the help it can
> get in terms of making the software more popular.

Using the GPL would make it harder for some to help.

> From a programmers perspective and as a user of a lot of free software,
> I and many others prefer the GPL over other open licensing, e.g, BSD
> style which lets others leech off your work without giving back.

Well, I and many others (the wxWindows developers, for example) prefer
BSD or LGPL and similar licensing. So there. ;-)

> What if any, concerns do you have about GPL libraries???

Let's hear what the FSF has to say about this:

| Using the ordinary GPL is not advantageous for every library. There
| are reasons that can make it better to use the Library GPL in
| certain cases. The most common case is when a free library's
| features are readily available for proprietary software through
| other alternative libraries. In that case, the library cannot give
| free software any particular advantage, so it is better to use the
| Library GPL for that library.
<http://www.gnu.org/licenses/why-not-lgpl.html>

This is in an article called "Why you shouldn't use the Library GPL
for your next library". However, I think that the situation described
above applies here:

- Proprietary Lisps have GUI libraries
- Other languages have GUI libraries, both proprietary and "more free
than GPL" ones (I actually don't know any GPLed GUI lib except Qt,
and I doubt that Trolltech chose it because they like Free Software
that much. They probably wanted to make it harder for competitors to
build upon their work.)

Regards
Henrik

Nils Goesche

unread,
Feb 12, 2003, 5:00:24 PM2/12/03
to
"OCID" <spa...@purdue.edu> writes:

> Another thing is using the library and modifying the library
> are entirely differnt things. Using it _does_ not force you to
> do anything.

Did you actually /read/ the GPL? From the GPL (version 2):

# This General Public License does not permit incorporating your
# program into proprietary programs. If your program is a
# subroutine library, you may consider it more useful to permit
# linking proprietary applications with the library. If this is
# what you want to do, use the GNU Library General Public License
# instead of this License.

And you can't really use the LGPL for Lisp programs, either.
That's why people invented the LLGPL.

See http://opensource.franz.com/preamble.html

Regards,
--
Nils Gösche
Ask not for whom the <CONTROL-G> tolls.

PGP key ID #xD26EF2A0

Henrik Motakef

unread,
Feb 12, 2003, 5:02:18 PM2/12/03
to
"OCID" <spa...@purdue.edu> writes:

> wxWindows is a pretty decent library (also GPL'ed).

wxWindows uses the "wxWindows library license", an OSI-approved and
GPL compatible modification of the LGPL.
<http://www.wxwindows.org/newlicen.htm>

Regards
Henrik

Marc Spitzer

unread,
Feb 12, 2003, 5:00:40 PM2/12/03
to
"OCID" <spa...@purdue.edu> writes:

> Its all a matter of perspective and audience.
>
> As far as GUI utilities/libraries are concerned, the proprietary
> software vendors in the Lisp community mainly Franz and Xanalys have
> decent CLIM interfaces already built into their products which are
> very good, albeit expensive. MCL and Corman are very platform
> oriented and Digitool is supposed to have a beta out for OS X, I've
> heard.
>
> The main audience (people like me) are folks who use open source
> lisp implementations like Clisp, CMUCL and GCL and are looking for a
> decent cross-platform GUI library to design their
> applications. wxWindows is a pretty decent library (also GPL'ed).

no it is not, this is from there faq:

Can I use wxWindows 2 for both proprietary (commercial)
projects, and GPL'ed projects?

Yes. Please see the licence for details, but basically you can
distribute proprietary binaries without distributing any
source code, and neither will wxWindows conflict with GPL code
you may be using or developing with it.

The conditions for using wxWindows 2 are the same whether you
are a personal, academic or commercial developer.

http://wxwindows.org/faqgen.htm#licence

>
> Another thing is using the library and modifying the library are
> entirely differnt things. Using it _does_ not force you to do
> anything. Modifying it for any purpose does and that _should_
> benefit the whole community ... IMHO.

Linking against gpled code gpls your code according to the gpl, you
might want to look at it again.

>
> So, you can design and sell applications without revealing the
> source code even though its not in the spirit of the GPL. However,
> if your app needed modifying the library, you only need to reveal
> those parts of the source code. I don't see that as restrictive in
> any way ....
>

Yes and the action is in violation of the gpl licence, this puts you
at much greater risk if you are in a bussiness setting.


And can you pleas stop top posting.

marc

Tim Bradshaw

unread,
Feb 13, 2003, 8:39:24 AM2/13/03
to
* Marc Spitzer wrote:
> Linking against gpled code gpls your code according to the gpl, you
> might want to look at it again.

The GPL, in fact, is an excellent commercial library license, I'm
surprised more people don't use it. Consider: I release my library
under the GPL. Now anyone who uses it or changes it *except me* has
to reveal their source code to me (and everyone else). The whole world
is now working to improve my product. I, however, as the copyright
owner, can release closed-source applications, or if I wish license
the library under more permissive (and expensive) terms to people who
want to use it in commercial products. Very nice.

There are a few people who do this as far as I know - I think the
berkeley DB people (sleepycat?) do this. It's a very nice trick.

--tim

Marc Spitzer

unread,
Feb 13, 2003, 12:11:18 PM2/13/03
to
Tim Bradshaw <t...@cley.com> writes:

> * Marc Spitzer wrote:
> > Linking against gpled code gpls your code according to the gpl, you
> > might want to look at it again.
>
> The GPL, in fact, is an excellent commercial library license, I'm
> surprised more people don't use it. Consider: I release my library
> under the GPL. Now anyone who uses it or changes it *except me* has
> to reveal their source code to me (and everyone else). The whole world
> is now working to improve my product. I, however, as the copyright
> owner, can release closed-source applications, or if I wish license
> the library under more permissive (and expensive) terms to people who
> want to use it in commercial products. Very nice.

Am I being baited here or supported? Is "tongue in cheek mode" on?

Well also keep in mind that the people who send you the patches may
also put them under gpl, so you may loose the option to sell a
commercial licence.

>
> There are a few people who do this as far as I know - I think the
> berkeley DB people (sleepycat?) do this. It's a very nice trick.

But they did it in stages, starting with pure BSD licenceing. And I
believe Trolltech( Qt people) have a dual licence also.

marc

>
> --tim

Nils Goesche

unread,
Feb 13, 2003, 12:21:22 PM2/13/03
to
Marc Spitzer <mspi...@optonline.net> writes:

> Tim Bradshaw <t...@cley.com> writes:
>
> > * Marc Spitzer wrote:
> > > Linking against gpled code gpls your code according to the gpl,
> > > you might want to look at it again.
> >
> > The GPL, in fact, is an excellent commercial library license, I'm
> > surprised more people don't use it. Consider: I release my
> > library under the GPL. Now anyone who uses it or changes it
> > *except me* has to reveal their source code to me (and everyone
> > else). The whole world is now working to improve my product. I,
> > however, as the copyright owner, can release closed-source
> > applications, or if I wish license the library under more
> > permissive (and expensive) terms to people who want to use it in
> > commercial products. Very nice.
>
> Am I being baited here or supported? Is "tongue in cheek mode" on?
>
> Well also keep in mind that the people who send you the patches may
> also put them under gpl, so you may loose the option to sell a
> commercial licence.

Why, you could do like the FSF and ask them to assign the copyright
to you before you accept the patches ;-)

Regards,
--
Nils Gösche
"Don't ask for whom the <CTRL-G> tolls."

PGP key ID 0x0655CFA0

Alan Shutko

unread,
Feb 13, 2003, 12:37:51 PM2/13/03
to
Tim Bradshaw <t...@cley.com> writes:

> Consider: I release my library under the GPL. Now anyone who uses
> it or changes it *except me* has to reveal their source code to me
> (and everyone else). The whole world is now working to improve my
> product.

Yes, but....

> I, however, as the copyright owner, can release closed-source
> applications, or if I wish license the library under more permissive
> (and expensive) terms to people who want to use it in commercial
> products.

Unless you have people assign the copyright of their changes to you,
you can't relicense their changes and include them in your
closed-source or otherwise-licensed product.

So, you're in a quandary. If you don't incorporate changes from
other people, your version may fall behind a GPLed fork. OTOH, if
you do, you may lose your business model.

--
Alan Shutko <a...@acm.org> - In a variety of flavors!
Possum (n): flat, furry animal; born dead on Southern highways.

Tim Bradshaw

unread,
Feb 13, 2003, 1:08:47 PM2/13/03
to
* Marc Spitzer wrote:

> Am I being baited here or supported? Is "tongue in cheek mode" on?

I agree with your point that the GPL is contagious when used for
libraries. But it's kind of interesting that it's a fairly reasonable
commercial license too, because it makes the code available for
experimentation &c while not giving away some very useful rights.

> Well also keep in mind that the people who send you the patches may
> also put them under gpl, so you may loose the option to sell a
> commercial licence.

I suspect they can't in any reasonable sense, because the patches are
almost certainly derived works. What you typically need to do is make
sure that contributors assign you copyright in anything that isn't a
derived work.

> But they did it in stages, starting with pure BSD licenceing. And I
> believe Trolltech( Qt people) have a dual licence also.

I think they have had to because the original Berkeley DB code must
have been under the BSD license, unless they acquired it from Berkeley
(or already owned it maybe - are the founders of Sleepycat the
original authors?).

--tim

Lieven Marchand

unread,
Feb 13, 2003, 1:29:45 PM2/13/03
to
Tim Bradshaw <t...@cley.com> writes:

> Now anyone who uses it or changes it *except me* has to reveal their
> source code to me (and everyone else). The whole world is now
> working to improve my product. I, however, as the copyright owner,
> can release closed-source applications, or if I wish license the
> library under more permissive (and expensive) terms to people who
> want to use it in commercial products.

People who change your library retain their copyright on the changes
although you get a license under the GPL if they distribute the
changes. So you can't take their chances and incorporate them in your
version without losing your ability to make closed-source applications
or relicense it.

--
People don't bore me. I like people. - Really? All of them? - All of them. -
Even the creepy ones? - Nobody's creepy from the inside, Hazel. Some of them
are sad, and some of them hurt, and some of them think they're the only real
thing in the whole world. But they're not creepy. -- Hazel and Death

Kaz Kylheku

unread,
Feb 14, 2003, 9:31:07 PM2/14/03
to
"OCID" <spa...@purdue.edu> wrote in message news:<b2ebt4$jlq$1...@mozo.cc.purdue.edu>...

> For the nature of this project and the fact that we are trying to create
> libraries for free versions of CL, I think the GPL is a better choice of
> license.

Whatever. The code that I put out is BSD-like; this means it can be
used in GPL-ed code; if you want to use pieces of wxcl in GPL-ed code,
you can do so.

But I think that GPL-ing reusable code libraries is largely a
stupidity. It makes sense when the library is some strategic software
which defines the way in which some programs interoperate, or performs
some valuable computation.

Also note that the wxWindows license itself is far more permissive
than the GPL; wxWindows lets you make closed-source, proprietary apps.
So you have a permissive library that actually does all the work, but
you are going to GPL the little shim which glues it to Lisp? Doh.

> Besides, the Lisp community _does_ need all the help it can
> get in terms of making the software more popular. open source GUI
> bindings and web based libraries are not a commodity yet whereas they
> should have been considering the time Lisp has been in the market.

A BSD-like license means it can stay open sourced, but people can make
proprietary applications too.

> From a programmers perspective and as a user of a lot of free software,
> I and many others prefer the GPL over other open licensing, e.g, BSD
> style which lets others leech off your work without giving back.

BSD means that I can hack on wxcl, you can hack on it, and some other
people hack on it, and then we all make software with it, and get
rich. I don't want any claim on your source code just because you used
some silly little libary to put windows on the screen.

It's not some strategic component that some true leech can embrace and
extend. If someone uses it to make a proprietary application, that has
absolutely no impact on anyone else.

There is no interoperability consideration; a user of a free
application based on the library is not prevented from interoperating
with users of a proprietary application based on the library.

Nobody can use the GUI library to control or restrict the activities
of the open source users of it. Programs don't talk to each other
through the GUI; someone won't use the GUI to store data in some
format that will require you to use a proprietary application to read
it.

This is not the case with every technology; proprietary extensions to
some kinds of free software can effectively ruin it. The leech can
ride the popularity of the free application, and then poison its
market with proprietary extensions that gradually shut out the free
users. There are no such concerns here.

Kaz Kylheku

unread,
Feb 16, 2003, 12:21:48 AM2/16/03
to
Lieven Marchand <m...@wyrd.be> wrote in message news:<878ywkf...@wyrd.be>...

> Tim Bradshaw <t...@cley.com> writes:
>
> > Now anyone who uses it or changes it *except me* has to reveal their
> > source code to me (and everyone else). The whole world is now
> > working to improve my product. I, however, as the copyright owner,
> > can release closed-source applications, or if I wish license the
> > library under more permissive (and expensive) terms to people who
> > want to use it in commercial products.
>
> People who change your library retain their copyright on the changes
> although you get a license under the GPL if they distribute the
> changes. So you can't take their chances and incorporate them in your
> version without losing your ability to make closed-source applications
> or relicense it.

I'm not a lawyer, but I think your understanding of copyright law is
wrong. People who modify your library create a derived work. The
author of an original work has rights over derived works. Tim's
understanding is basically right; GPL-like licenses can be used as a
way to get people to enhance and bugfix your software, and you can
take their changes and spin them into your proprietary stream. It
would be wise to obtain legal opinion, of course.

Marc Spitzer

unread,
Feb 16, 2003, 4:04:32 AM2/16/03
to
k...@ashi.footprints.net (Kaz Kylheku) writes:

Well I am not a lawyer either, but with that said here is what I think
happens:

1: A releases a library under gpl
2: B uses and enhances the library(all code is still gpl)
3: A incorporates the code that B wrote in the official version of the lib.

Now the question is who owns the copyright to the code B wrote? I
think it is B, that it is gpled is a different issue. Now A's new and
improved library is a combination of code from A and B, both authors
released their code under gpl, A by choice and B by requirement of the
gpl. So how does A now sell a commercial license to his code with out
getting permission from B? Now another issue is what if A has some
commercial only libraries/applications that use the new library in question?
From what I understand of the gpl they are all now gpled because they use
gpled code from B that A does not have the ability to relicense without
B's consent and possibly cannot relicense due to the terms of the gpl.

This whole issue goes away if you use a less dangerous license, BSD
for example.

marc

Kenny Tilton

unread,
Feb 16, 2003, 9:36:59 AM2/16/03
to

Marc Spitzer wrote:
> k...@ashi.footprints.net (Kaz Kylheku) writes:
>
>
>>Lieven Marchand <m...@wyrd.be> wrote in message news:<878ywkf...@wyrd.be>...
>>
>>>Tim Bradshaw <t...@cley.com> writes:
>>>
>>>
>>>>Now anyone who uses it or changes it *except me* has to reveal their
>>>>source code to me (and everyone else). The whole world is now
>>>>working to improve my product. I, however, as the copyright owner,
>>>>can release closed-source applications, or if I wish license the
>>>>library under more permissive (and expensive) terms to people who
>>>>want to use it in commercial products.
>>>
>>>People who change your library retain their copyright on the changes
>>>although you get a license under the GPL if they distribute the
>>>changes. So you can't take their chances and incorporate them in your
>>>version without losing your ability to make closed-source applications
>>>or relicense it.
>>

>>I'm not a lawyer, but I think...

Can I cite your thoughts in my infringement lawsuit? Not! So even tho
you are right, it does us no good. Do some research, man! Google? Ya
think? Where is Erik when we need him to slap around posters who make
other people do their research for them? :)

http://www.copyright.gov/faq.html#q49

Q49. Follow link to circular 14.

"COPYRIGHT PROTECTION IN A DERIVATIVE WORK
The copyright in a derivative work covers only the additions,
changes,or other new material appearing for the first time in
the work. It does not extend to any preexisting material and
does not imply a copyright in that material."

ie, the GPL is contagious but copyright is not. A work derived from my
own can infringe my copyright on my own work, but that does not give me
a copyright on the new derived work.

Indirect evidence: awards to plaintiffs for adjudged infringement might
include a copyright to the infringing derived work, meaningful precisely
because said copyright does not arise automatically.

--

kenny tilton
clinisys, inc
http://www.tilton-technology.com/
---------------------------------------------------------------
"Cells let us walk, talk, think, make love and realize
the bath water is cold." -- Lorraine Lee Cudmore

Alan Shutko

unread,
Feb 16, 2003, 11:07:52 AM2/16/03
to
k...@ashi.footprints.net (Kaz Kylheku) writes:

> I'm not a lawyer, but I think your understanding of copyright law is
> wrong. People who modify your library create a derived work. The
> author of an original work has rights over derived works.

Not sole rights. If I create a derivative work based on something of
yours, I cannot distribute it without your permission, but neither
can you distribute it without my permission. Basically, the original
author has rights over the pieces of the original which were used in
the derivative, the derivative author has copyright over the changes,
and thus the combined work falls under both copyrights.

--
Alan Shutko <a...@acm.org> - In a variety of flavors!

Gary Trudeau for President!

Tim Bradshaw

unread,
Feb 17, 2003, 8:43:08 AM2/17/03
to
* Marc Spitzer wrote:

> Well I am not a lawyer either, but with that said here is what I think
> happens:

> 1: A releases a library under gpl
> 2: B uses and enhances the library(all code is still gpl)
> 3: A incorporates the code that B wrote in the official version of the lib.

> Now the question is who owns the copyright to the code B wrote? I
> think it is B,

Yes, that is indeed the issue. However the ownership does not depend
on what you think but on what the law says (or can be argued to say),
and *that* depends on the definition of a `derived work'. To know
that you need (a) to know what legal framework you are working in (I'm
not sure how much IP law varies - probably much less than it did, but
I suspect still somewhat) and (b) to understand what the law actually
says about the matter. In other words, you can't do this by opining
on usenet, but by one or more of: being a lawyer, consulting a lawyer,
or consulting the sources they use. Finally you might be in a fuzzy
case where you can only find out by doing whatever your legal system
requires you to do to establish new law (possibly going to court and
getting a judgement).

But really, you need to understand that saying `I think x' about some
legal issue on a newsgroup is worth less than nothing.

--tim

Johan Ur Riise

unread,
Feb 18, 2003, 1:31:47 PM2/18/03
to
Tim Bradshaw <t...@cley.com> writes:

> * Marc Spitzer wrote:
>
> > Well I am not a lawyer either, but with that said here is what I think
> > happens:
>
> > 1: A releases a library under gpl
> > 2: B uses and enhances the library(all code is still gpl)
> > 3: A incorporates the code that B wrote in the official version of the lib.
>
> > Now the question is who owns the copyright to the code B wrote? I
> > think it is B,

As we have established that B's work is a derivative of A's, the question
is rather straightforward. A's work is GPL, and A can therefore use B's
work (if he aquires a copy) also in the terms of GPL. If it were not GPL
from the beginning, B wouldn't even be allowed to create the derative
work. For A to use B's work as if it were A's own, A would need all
(the transferable) rights of B's work to be transfered to A.

This is how it is commonly done with dually licensed works. For foreign
patches to be part of the main distribution, the patch creators have
to transfer all rights to the original writer.

I will not tell you if i am a lawyer or not. But you could probably
derive it from this statement, for if I in fact were a lawyer, I would
probably tell you that you should not rely on this as a legal advice,
but rather contact a ... guess what.

--
Johan Ur Riise

Johan Ur Riise

unread,
Feb 18, 2003, 1:34:28 PM2/18/03
to
Johan Ur Riise <r...@rsc.no> writes:

> Tim Bradshaw <t...@cley.com> writes:
Sorry, all I quoted was from Marc's posting
>
> > * Marc Spitzer wrote:


--
Johan Ur Riise
90 15 77 78

Marc Spitzer

unread,
Feb 18, 2003, 2:34:08 PM2/18/03
to
Johan Ur Riise <r...@rsc.no> writes:

> Tim Bradshaw <t...@cley.com> writes:
>
> > * Marc Spitzer wrote:
> >
> > > Well I am not a lawyer either, but with that said here is what I think
> > > happens:
> >
> > > 1: A releases a library under gpl
> > > 2: B uses and enhances the library(all code is still gpl)
> > > 3: A incorporates the code that B wrote in the official version of
> > > the lib.
> >
> > > Now the question is who owns the copyright to the code B wrote? I
> > > think it is B,
>
> As we have established that B's work is a derivative of A's, the question
> is rather straightforward. A's work is GPL, and A can therefore use B's
> work (if he aquires a copy) also in the terms of GPL. If it were not GPL

That was a given.

> from the beginning, B wouldn't even be allowed to create the derative
> work. For A to use B's work as if it were A's own, A would need all

That is wrong, have you ever heard of BSD, X/MIT, commercial source
licensing and let us not forget the public domain.

> (the transferable) rights of B's work to be transfered to A.
>

I honestly do not know how this would hold up for a change of licensing,
even as the "original author"(after assignment) we are still talking about
a derived work that must be released under gpl. That is the core of the
problem with a commercial/gpl license.

> This is how it is commonly done with dually licensed works. For foreign
> patches to be part of the main distribution, the patch creators have
> to transfer all rights to the original writer.

And how is author B compensated for the value he provides A, under A's
commercial license? We were not talking about a simple patch, but a
addition of functionality.

>
> I will not tell you if i am a lawyer or not. But you could probably
> derive it from this statement, for if I in fact were a lawyer, I would
> probably tell you that you should not rely on this as a legal advice,
> but rather contact a ... guess what.
>

Well I am not a lawyer either so my thoughts ain't worth spit also.

marc

> --
> Johan Ur Riise

Johan Ur Riise

unread,
Feb 18, 2003, 3:58:41 PM2/18/03
to
Marc Spitzer <mspi...@optonline.net> writes:

> Johan Ur Riise <r...@rsc.no> writes:
>
> > from the beginning, B wouldn't even be allowed to create the derative
> > work. For A to use B's work as if it were A's own, A would need all
>
> That is wrong, have you ever heard of BSD, X/MIT, commercial source
> licensing and let us not forget the public domain.
>

You have to believe me on this, but I seriously considered including
"or B have this right from another license", but didnt. Sorry.

> > (the transferable) rights of B's work to be transfered to A.
> >
>
> I honestly do not know how this would hold up for a change of licensing,
> even as the "original author"(after assignment) we are still talking about
> a derived work that must be released under gpl. That is the core of the
> problem with a commercial/gpl license.

Interesting point, but I think this is quite hypotetical. As long as A
has full rights to his work, and the two parties communicate, it would
be quite easy to momentarily grant B full rights just to get them back
in the next moment. I think the users of the GPL do not find it necessary
to create tricks to do this.

Of course, B could say no, and we are back to two different
works. This is also common, that is, A will not include foreign
patches, but possibly implement the idea of the patch himself.

> > This is how it is commonly done with dually licensed works. For foreign
> > patches to be part of the main distribution, the patch creators have
> > to transfer all rights to the original writer.
>
> And how is author B compensated for the value he provides A, under A's
> commercial license? We were not talking about a simple patch, but a
> addition of functionality.

This is a business between B and A, so I would not know. Possibly not
compensated. Some people find it useful to have their patches in the
main distribution, so they do not have to apply them on every new
release. This is not a licensing issue.

> > I will not tell you if i am a lawyer or not. But you could probably
> > derive it from this statement, for if I in fact were a lawyer, I would
> > probably tell you that you should not rely on this as a legal advice,
> > but rather contact a ... guess what.
> >
>
> Well I am not a lawyer either so my thoughts ain't worth spit also.

The negative assertion of your profession is of course accepted,
otherwise I do not agree on any of these multiple allegations.

Johan Ur Riise

unread,
Feb 18, 2003, 6:19:42 PM2/18/03
to
Johan Ur Riise <r...@rsc.no> writes:

> Marc Spitzer <mspi...@optonline.net> writes:
>
> >
> > I honestly do not know how this would hold up for a change of licensing,
> > even as the "original author"(after assignment) we are still talking about
> > a derived work that must be released under gpl. That is the core of the
> > problem with a commercial/gpl license.
>
> Interesting point, but I think this is quite hypotetical. As long as A
> has full rights to his work, and the two parties communicate, it would
> be quite easy to momentarily grant B full rights just to get them back
> in the next moment. I think the users of the GPL do not find it necessary
> to create tricks to do this.

Reconsidering, my own remark above is probably nonsense. The right
thing to say is that by licensing someone to use a copy of your work
by GPL, you do not give up any of your own rights to the
work. Therefore you can modify it as yo wish. If you add material from
others, where the rights to this material is transferred to you, the
result is also yours alone, and you are free to make copies of it and
sell those copies, and license the use of those copies how you wish.

--
Johan Ur Riise

Henry Lenzi

unread,
Feb 21, 2003, 9:53:28 PM2/21/03
to
On Sun, 16 Feb 2003 14:36:59 GMT, Kenny Tilton <kti...@nyc.rr.com>
wrote:

(snip)

This is precisely what happens with the Trolltech QT libraries. The
KDE people use it and expand it. Changes made therein are not
incorporated in the Trolltech library.
>
>--
>
> kenny tilton

Regs

Henry

Kaz Kylheku

unread,
Feb 26, 2003, 4:13:38 PM2/26/03
to
"OCID" <spa...@purdue.edu> wrote in message news:<b2eb9m$jcr$1...@mozo.cc.purdue.edu>...
> Well,
> Its a little late for that considering that we already have a project up at
> sourceforge and also a domain http://www.wxlisp.org/ for it.
>
> Thanks again for the code. I'm sure it will be a good starting point.

I really think you should reconsider changing the domain name and
project name. You made a serious mistake by not typing ``wxlisp'' into
a search engine before using that name. Now you should acknowledge and
fix your mistake, rather than rudely assert ownership of someone
else's project name.

Just think; if your project takes off and people do searches for it,
they will come up with a mixture of references to the existing
Xlisp-based project and to your code. This will be confusing.

Your mailing list, when or if you have one, will probably get
questions about the matter time and time again.

You will have to waste space in your FAQ to explain this issue.

The old wxLisp people will may be pissed off at you.

Etc.

OCID

unread,
Feb 27, 2003, 8:56:50 AM2/27/03
to
Thanks for your opinions. I'll see what I can do to fix that situation.

~sp

"Kaz Kylheku" <k...@ashi.footprints.net> wrote in message
news:cf333042.03022...@posting.google.com...

0 new messages