From: Derrick Stolee <derrickstolee@github.com>
To: Abhradeep Chakraborty <chakrabortyabhradeep79@gmail.com>,
git <git@vger.kernel.org>, Junio C Hamano <gitster@pobox.com>,
Taylor Blau <me@ttaylorr.com>,
Kaartic Sivaraam <kaartic.sivaraam@gmail.com>
Subject: Re: Can I use CRoaring library in Git?
Date: Sun, 17 Jul 2022 10:43:03 -0400 [thread overview]
Message-ID: <62456232-26af-6883-1f89-53f16863d2d5@github.com> (raw)
In-Reply-To: <CAPOJW5x4McofC5fxBvsRAzum28wmeDJCMTMRmY_0oy=32JjKqQ@mail.gmail.com>
On 7/16/22 9:50 AM, Abhradeep Chakraborty wrote:
> Hello,
>
> I need the CRoaring[1] library to use roaring bitmaps. But it has
> Apache license v2 which is not compatible with GPLv2[2].
>
> Is there a way to use the CRoaring library in Git? Taylor told me that
> contrib/persistent-https tree is also licensed under Apache License
> version 2.
>
> [1] https://github.com/RoaringBitmap/CRoaring
> [2] https://www.apache.org/licenses/GPL-compatibility.html
I know that working around a license would be the the optimal way to get a
battle-tested implementation. Its API should be close enough to the EWAH
bitmap implementation that we can transition between the formats easily.
Continue pursuing that for now.
However, we always have the option of implementing a version from scratch
based on the description in the paper [3]. The benefit there is that we
would only need to implement what we need from the format and logic, and
we could even get some benefits from exposing some of the internals to the
rest of Git's codebase.
[3] https://arxiv.org/pdf/1603.06549.pdf
I mention this because I made an independent C# implementation of
Roaring+Run for the Azure Repos back-end. The way that the bitmaps are
split into "chunks" of 65k positions was helpful with how the object order
was set up: older objects were in early chunks and so deltas only needed
the later chunks. When using a chunk, we could lazy-load and unload each
chunk as we went through the object order.
So, if we really want to try this, an independent implementation might be
the way to start, at least as a prototype while pursuing the licensing
angle.
Thanks,
-Stolee
next prev parent reply other threads:[~2022-07-17 14:43 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-07-16 13:50 Can I use CRoaring library in Git? Abhradeep Chakraborty
2022-07-16 14:16 ` Ævar Arnfjörð Bjarmason
2022-07-16 16:26 ` Abhradeep Chakraborty
2022-07-17 12:25 ` Kaartic Sivaraam
2022-07-17 22:00 ` Junio C Hamano
2022-07-17 22:25 ` Taylor Blau
2022-07-18 8:57 ` Abhradeep Chakraborty
2022-07-25 22:11 ` Taylor Blau
2022-07-17 14:43 ` Derrick Stolee [this message]
2022-07-18 11:13 ` Jakub Narębski
2022-07-18 11:38 ` Abhradeep Chakraborty
2022-07-18 13:38 ` Ævar Arnfjörð Bjarmason
2022-07-18 11:48 ` Abhradeep Chakraborty
2022-07-18 12:18 ` Derrick Stolee
2022-07-18 13:15 ` Abhradeep Chakraborty
2022-07-18 21:48 ` brian m. carlson
2022-07-25 22:14 ` Taylor Blau
2022-07-25 22:35 ` rsbecker
2022-07-25 23:37 ` Taylor Blau
2022-07-21 4:07 ` Abhradeep Chakraborty
2022-07-21 6:12 ` Junio C Hamano
2022-07-21 12:14 ` Derrick Stolee
2022-07-21 13:51 ` Ævar Arnfjörð Bjarmason
2022-07-21 14:57 ` Abhradeep Chakraborty
2022-07-22 11:07 ` Ævar Arnfjörð Bjarmason
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=62456232-26af-6883-1f89-53f16863d2d5@github.com \
--to=derrickstolee@github.com \
--cc=chakrabortyabhradeep79@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=kaartic.sivaraam@gmail.com \
--cc=me@ttaylorr.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).