- About Scala
- Documentation
- Code Examples
- Software
- Scala Developers
Wrote a Lattice collection class? Where send?
Tue, 2010-12-21, 06:29
I wrote a small Scala file containing a mutable collection class for a
lattice, a partially-ordered set with greatest-lower-bound (meet) and
least-upper-bound (join) operations. It's type-generic and can also
take any PartialOrdering[E] (where E is its type parameter) in its
constructor to order the elements. It also implements the
scala.collection.mutable.Set[E] trait fully. Overall, it fits into the
collections API while providing a new standard collection. Well,
actually, there's a trait for Lattice[E] itself and then a DAGLattice
that implements lattices over directed graphs.
What I'm wondering is: where do I send it to contribute it to the
standard collections library?
Thanks,
Eli Gottlieb
Thu, 2010-12-23, 23:37
#2
Re: Wrote a Lattice collection class? Where send?
On Fri, Dec 24, 2010 at 08:50:06AM +1100, Ben Hutchison wrote:
> (b) Whats happened to the Greenhouse/Incubator? They were announced on
> the list Nov 2009, then mentioned in Martin's intro speech as
> ScalaDays, IIRC, but little is visible (to me) since. Are they in use?
> If so, some "User Instructions" please. Googling the terms is quite
> ambiguous.
We have major bottlenecks which we have not as yet overcome. I am
optimistic this situation will change. However things go, the process
will be about the same 98% of the way, with the question marks only in
the last 2%. Which means I wouldn't worry too much about how to get
code into trunk until the quality is breathtaking.
Attention from our bottlenecks being at a high premium (and because a
bottleneck has to stick its bottle neck out to take responsibility for
new code) the bar is necessarily high. Well designed, comprehensively
tested, properly documented, and easy to integrate. The code already in
trunk is not illustrative: the bar is definitely higher.
This is not intended to sound unwelcoming, only how it is. Right about
now I am more interested in removing code from trunk than I am adding
it. It'd be nice to have another entity at arms-length from trunk which
leveraged similar infrastructure, and this sort of thing has been
discussed: but when the rubber hits the road most of the vehicles vanish
in smoke puffs. People often express a willingness to help, but even
for the subset of these offers which don't evaporate, it's not enough to
be willing. You have to make things happen.
Fri, 2010-12-24, 00:37
#3
Re: Wrote a Lattice collection class? Where send?
>>>>> "Paul" == Paul Phillips writes:
Paul> Right about now I am more interested in removing code from trunk
Paul> than I am adding it.
This isn't the kind of statement that normally gets applause, so I want
to make a point of applauding it. I agree that the existing code needs
tending more than it needs to grow.
Hi Eli,
[speaking purely as a member of the Scala community, and without any
endorsement EPFL]
The easiest thing would be to attach your patch to a trac ticket, and
consent to a contributor agreement . That's worked for me and others
before for small, incremental improvements. However, I doubt a change
as significant as a new collection impl would be accepted via that
route.
I would estimate that to get your Lattice into the standard library,
you'd probably need to:
1. Create a project at Github/Googlecode/Soucreforge etc where your
code is accessible.
2. As well as implementation, include units tests/specs and some
example uses cases
3. Accumulate some evidence of your library being useful to other
people. This might take some time.
4. Apply to get your code into the Scala Incubator or Greenhouse,
which are supposed to be the entry points to the core libraries.
Some questions your post raised for the wider Scala community:
(a) Eli's question is a fair one. Whats the desired process to
contribute code? What sorts of code contributions are accepted? Who
judges? Whats required from the contributor, beyond a signed
agreement?
It would be nice to have a page on the website that clearly outlines
the process.
(b) Whats happened to the Greenhouse/Incubator? They were announced on
the list Nov 2009, then mentioned in Martin's intro speech as
ScalaDays, IIRC, but little is visible (to me) since. Are they in use?
If so, some "User Instructions" please. Googling the terms is quite
ambiguous.
-Ben
On Tue, Dec 21, 2010 at 4:29 PM, Eli Gottlieb wrote:
> I wrote a small Scala file containing a mutable collection class for a
> lattice, a partially-ordered set with greatest-lower-bound (meet) and
> least-upper-bound (join) operations. It's type-generic and can also take
> any PartialOrdering[E] (where E is its type parameter) in its constructor to
> order the elements. It also implements the scala.collection.mutable.Set[E]
> trait fully. Overall, it fits into the collections API while providing a
> new standard collection. Well, actually, there's a trait for Lattice[E]
> itself and then a DAGLattice that implements lattices over directed graphs.
>
> What I'm wondering is: where do I send it to contribute it to the standard
> collections library?
>
> Thanks,
> Eli Gottlieb
>
>