From: Jacob Lifshay <programmerjake@gmail.com>
To: Libre-RISCV General Development <libre-riscv-dev@lists.libre-riscv.org>
Subject: Re: [libre-riscv-dev] experimental code & monorepo
Date: Tue, 5 May 2020 17:08:43 -0700
Message-ID: <CAC2bXD6qn7Q=oUxq01=Zu99bCW-qjCXeA7PKX5es0O_pHMGWjw@mail.gmail.com> (raw)
In-Reply-To: <CAPweEDyvYgO0SUAQMuwuFPEpi7u4snbUJ1NxrKMuocBqmQeJEQ@mail.gmail.com>
On Sun, May 3, 2020 at 4:03 AM Luke Kenneth Casson Leighton
<lkcl@lkcl.net> wrote:
>
> On Sun, May 3, 2020 at 5:49 AM Jacob Lifshay <programmerjake@gmail.com> wrote:
> >
> > Additionally, I'd advocate for all HDL code (at least soc, ieee754fpu, and
> > nmutil) to be moved to one repo
>
> > and using submodules for often updated external dependencies (nmigen at
> > least),
>
> the experience we've had - already - of using submodules is a royal
> pain in the neck. commits which involve changing of files *and*
> changing submodules do *not* merge properly, and i actually had to use
> rebase --skip for the first time - ever - in order to recover the
> repository. this lost some work by michael.
One potential workaround would be to have a server-side git hook that
rejects commits that have changes to a submodule and other files
(other than .gitmodules) in the same commit.
> i'm inclined to suggest (as we discussed on the coriolis2 bug,
> briefly) that an *independent* top-level repo be created that "joins"
> *all* source code - and tools - together. this to *never*, under any
> circumstances, have actual files added to it (with the exception of a
> README, saying "please read documentation at location X and please do
> not edit this file further").
That could work, but would be difficult to use when developing code.
> > since that helps tie all the code together so one commit id is
> > sufficient to describe the state of all the code that's tightly
> > interconnected. See LLVM switching to a monorepo for an example of how this
> > is a good idea.
>
> if the IEEE754 FP code had not been designed - from the start - to be
> a general-purpose independent library and toolkit, i would agree
> immediately with that.
>
> however it was never intended - ever - right from the start - to be a
> specific hard-coded isolated our-use-only FP library.
>
> <snip>
>
> all three are therefore actually independent projects. putting their
> source into a single repository has detrimental implications. it also
> results in confusion about what the roles of each of those three
> independent projects is.
That's seems to work out just fine and even be outright beneficial for
LLVM, where they have many loosely associated libraries/programs all
in the same git repo.
A short list of projects that are mostly unrelated to each other but
are still in the LLVM monorepo:
clangd: a LSP server for adding C++ language support to IDEs
lldb: a interactive debugger
flang: a FORTRAN frontend for LLVM
libc: a WIP C standard library
mlir: a IR originally designed for machine learning, but is now quite
a bit more generic
yaml2obj: a program that converts a YAML description of an object file
to the binary form
Basically all of them can (and are) used nearly independently of the rest.
As long as we state so in all the readmes and other docs, it should be
pretty unambiguous that ieee754fpu can be used independently of most
of the rest of our code. We could even provide a read-only git repo
that mirrors the ieee754fpu directory.
Jacob
_______________________________________________
libre-riscv-dev mailing list
libre-riscv-dev@lists.libre-riscv.org
http://lists.libre-riscv.org/mailman/listinfo/libre-riscv-dev
next prev parent reply index
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-02 18:45 [libre-riscv-dev] GItlab For SOC repo Yehowshua
2020-05-02 18:47 ` Yehowshua
2020-05-03 4:49 ` [libre-riscv-dev] experimental code & monorepo Jacob Lifshay
2020-05-03 11:02 ` Luke Kenneth Casson Leighton
2020-05-06 0:08 ` Jacob Lifshay [this message]
2020-05-02 19:30 ` [libre-riscv-dev] GItlab For SOC repo Luke Kenneth Casson Leighton
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='CAC2bXD6qn7Q=oUxq01=Zu99bCW-qjCXeA7PKX5es0O_pHMGWjw@mail.gmail.com' \
--to=programmerjake@gmail.com \
--cc=libre-riscv-dev@lists.libre-riscv.org \
/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
Libre RISC-V Mailing list Archives (accessible via public-inbox)
Archives are clonable: git clone --mirror https://inbox.libre-soc.org/libre-riscv-dev
Example config snippet for mirrors
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git