Sorry I missed the licensing question. I don't want to lock down to
GPL either, but I am happy to be compatible with it. My understanding
has always been that BSD is compatible with GPL and LGPL, so I don't
see a need for tri-license, but if it clarifies any ambiguity that
works for me. Ideally, I'd like to keep it simple, available for
commercial purposes, and flexible enough for open source projects as
well. Personally, I'm quite happy with public domain, with something
BSD style simply as a request, because I think people honor those
kinds of requests as much as they honor actual requirements, but
whatever other folks want is good, too.
bjorn
On Jul 2, 2008, at 5:02 PM, Graham Wakefield wrote:
> Hi - great stuff!
>
> I'll do anything I can to help. I develop typically on OSX, but
> currently need to port to Linux (Ubuntu Hardy), so I can help
> testing etc, even if the actual atomic stuff is a little over my head.
>
> It's true that C++0x is on the way with better atomic/lock-free
> stuff, but it *will* still be a while before this is supported by
> the compilers that the masses are using ;-)
>
> I'd like to second Reed's question about the licensing. I recently
> saw the MPL-tri-license [1], which was new to me, and looks very
> appealing for my own work; flexible enough to support GPL, LGPL and
> BSD style projects. It would be a real shame to lock this into a
> GPL-only situation.
>
> Anyway, let me know if there's anything I can help with!
>
> Graham
>
> [1] http://www.mozilla.org/MPL/boilerplate-1.1/mpl-tri-license-c
>
> On Jul 2, 2008, at 12:42 PM, Bjorn Roche wrote:
>
>> Hey Reed,
>>
>> I haven't even looked at this stuff in forever, but I'm happy to
>> revisit if there's interest. I think the idea of some simple
>> datastructures is a good one. Of course, we should also keep in mind
>> that C++0x is going to have much better support for lock-free stuff
>> built in, and it may not be worth the effort. That said, I'm willing
>> to do some work if others are!
>>
>> bjorn
>>
>> On Jul 2, 2008, at 2:27 PM, Reed Hedges wrote:
>>
>> >
>> >
>> > Hi Bjorn, I'm learning about what's available in different
>> compilers
>> > in the way
>> > of atomic compare and swap (and other operations).
>> >
>> > Are you still working on this? It looks like you have C&S, for
>> > example, for OSX
>> > but not the others.
>> >
>> > I'd like to have some kind of lock free associative container,
>> maybe
>> > a skip list
>> > or something, maybe just a linked list of key/value records, not
>> > sure yet, that
>> > transparently falls back on granular locking if there's no atomic
>> > C&S (one mutex
>> > per node) -- probably by making the user supply a mutex to the
>> > "atomic"
>> > functions (even if it doesn't get used on platforms that have
>> atomic
>> > C&S).
>> >
>> > What do you think?
>> >
>> > Have you used ThreadSafeList much? How about the AsyncOperation
>> queue?
>> >
>> > Finally, what kind of license were you planning to use for this
>> code?
>> >
>> > Reed
>> >
>> > Bjorn Roche wrote:
>> > >
>> > >
>> > > Hey all,
>> > >
>> > > I've started a subversion repo here: http://liblf.xowave.com/.
>> > > <http://liblf.xowave.com/.> It is
>> > > publicly readable, and I'm happy to give people write access to
>> > folks
>> > > who want to contribute. It's pretty sloppy at the moment, but I
>> > think
>> > > it's a start.
>> > >
>> > > Here's a quick description of the files:
>> > >
>> > > Atomic.h - has atomic primitives for things needed in the rest of
>> > the
>> > > code. Conditional compiling should make this extensible to any
>> > > platform, but right now it works on Mac OS X and might be good
>> > enough
>> > > for Linux. I'd love to see the Linux side fixed up, not to
>> mention
>> > > some windows work.
>> > >
>> > > Fifo.h - your basic non-blocking fifo. Generically typed. There
>> is
>> > > also some old commented code that could be used as a blocking
>> Fifo.
>> > >
>> > > Async.cc
>> > > Async.h - implement an asynchronous Queue of "operations" that
>> can
>> > be
>> > > performed in a separate thread. Useful for reading from or to a
>> file
>> > > in the background. A nice improvement on this would be an
>> interface
>> > > for reclaiming completed operations.
>> > >
>> > > sleep.cc
>> > > sleep.h - just for short sleeps. Useful for testing and also
>> the few
>> > > functions that "block".
>> > >
>> > > ThreadSafeList.h - a Queue that can (in theory) be edited from
>> one
>> > > thread while iterated through in another.
>> > >
>> > > makefile - building and cleaning and running the test program. I
>> > > think this requires gmake.
>> > >
>> > > test.cc - some tests.
>> > >
>> > > bjorn
>> > >
>> > > -----------------------------
>> > > Bjorn Roche
>> > > XO Wave
>> > > Digital Audio Production and Post-Production Software
>> > > http://www.xowave.com <http://www.xowave.com>
>> > > http://blog.bjornroche.com <http://blog.bjornroche.com>
>> > > http://myspace.com/xowave <http://myspace.com/xowave>
>> > >
>> > >
>> >
>> >
>> >
>>
>> -----------------------------
>> Bjorn Roche
>> XO Wave
>> Digital Audio Production and Post-Production Software
>> http://www.xowave.com
>> http://blog.bjornroche.com
>> http://myspace.com/xowave
>>
>>
>>
>
> Be seeing you
>
> grrr waaa
> www.grahamwakefield.net
>
-----------------------------
Bjorn Roche
XO Wave
Digital Audio Production and Post-Production Software
http://www.xowave.com
http://blog.bjornroche.com
http://myspace.com/xowave