* [libre-riscv-dev] GItlab For SOC repo @ 2020-05-02 18:45 Yehowshua 2020-05-02 18:47 ` Yehowshua 2020-05-02 19:30 ` [libre-riscv-dev] GItlab For SOC repo Luke Kenneth Casson Leighton 0 siblings, 2 replies; 6+ messages in thread From: Yehowshua @ 2020-05-02 18:45 UTC (permalink / raw) To: Libre-RISCV General Development Are we currently using a gitlab mirror on our SOC repo? I saw a ciyaml there… Yehowshua _______________________________________________ libre-riscv-dev mailing list libre-riscv-dev@lists.libre-riscv.org http://lists.libre-riscv.org/mailman/listinfo/libre-riscv-dev ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [libre-riscv-dev] GItlab For SOC repo 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-02 19:30 ` [libre-riscv-dev] GItlab For SOC repo Luke Kenneth Casson Leighton 1 sibling, 1 reply; 6+ messages in thread From: Yehowshua @ 2020-05-02 18:47 UTC (permalink / raw) To: Libre-RISCV General Development Also - we have some experimental files in the SOC repo. I think it is a good practice to make an experimental branch instead. Thoughts? Yehowshua _______________________________________________ libre-riscv-dev mailing list libre-riscv-dev@lists.libre-riscv.org http://lists.libre-riscv.org/mailman/listinfo/libre-riscv-dev ^ permalink raw reply [flat|nested] 6+ messages in thread
* [libre-riscv-dev] experimental code & monorepo 2020-05-02 18:47 ` Yehowshua @ 2020-05-03 4:49 ` Jacob Lifshay 2020-05-03 11:02 ` Luke Kenneth Casson Leighton 0 siblings, 1 reply; 6+ messages in thread From: Jacob Lifshay @ 2020-05-03 4:49 UTC (permalink / raw) To: Libre-RISCV General Development On Sat, May 2, 2020, 11:47 Yehowshua <yimmanuel3@gatech.edu> wrote: > Also - we have some experimental files in the SOC repo. > I think it is a good practice to make an experimental branch instead. > Thoughts? > We really should move all code that's not actually used in the final soc to its own folder or branch -- currently, there is lots of unused code that either was used in the past or we intend to eventually use or even never intended to use (lots of minerva and some of the FP code) and was only ever reference code to base our new code on. All of that makes it very confusing to newcomers and partially confusing for people who aren't newcomers anymore -- I myself couldn't point out with any degree of certainty all the code that we actually intend to use even though I've been here longer than nearly everyone else. Additionally, I'd advocate for all HDL code (at least soc, ieee754fpu, and nmutil) to be moved to one repo (especially including the data files currently hosted on the wiki -- libre-soc.org shouldn't need to be online/accessible to build if someone gets the git repos some other way) and using submodules for often updated external dependencies (nmigen at least), 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. Jacob > _______________________________________________ libre-riscv-dev mailing list libre-riscv-dev@lists.libre-riscv.org http://lists.libre-riscv.org/mailman/listinfo/libre-riscv-dev ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [libre-riscv-dev] experimental code & monorepo 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 0 siblings, 1 reply; 6+ messages in thread From: Luke Kenneth Casson Leighton @ 2020-05-03 11:02 UTC (permalink / raw) To: Libre-RISCV General Development --- crowd-funded eco-conscious hardware: https://www.crowdsupply.com/eoma68 On Sun, May 3, 2020 at 5:49 AM Jacob Lifshay <programmerjake@gmail.com> wrote: > > On Sat, May 2, 2020, 11:47 Yehowshua <yimmanuel3@gatech.edu> wrote: > > > Also - we have some experimental files in the SOC repo. > > I think it is a good practice to make an experimental branch instead. > > > > Thoughts? > > > > We really should move all code that's not actually used in the final soc to > its own folder or branch -- currently, there is lots of unused code that > either was used in the past or we intend to eventually use or even never > intended to use sigh this is because we were planning to use RISC-V and consequently, planning ahead, developed and droppedin a ton of code *specifically* intended to meet RISC-V MMU requirements for SMP cache-coherent systems. i've moved two directories into "unused". a better name can be chosen later > (lots of minerva all of minerva > and some of the FP code) there definitely should not be *any* FP-related code in the soc repo. this is deliberate at the moment > and was only ever reference code to base our new code on. no, the reason i dropped minerva into the tree was to *use* that code, not to "base" our new code on. definitely not as "reference code to look at". actually move or copy that code *out* of the minerva subdirectory and *adapt* it. to save a huge amount of time (which we do not have spare to write our own code), this is still the plan for the entire L1 cache infrastructure down to the wishbone interfaces, as outlined in the bottom half of this diagram: https://libre-soc.org/3d_gpu/180nm_single_core_testasic_memlayout.jpg * modifying the L1 cache width to 128 bits, * doubling them up (odd/even, addressable by addr[4]), * splitting to dual 64-bit interfaces on the output (to meet Wishbone requirements) * and locating a suitable Wishbone Arbiter for the purpose of merging the *four* resultant 64-bit interfaces onto the one 64-bit Wishbone Bus. the reason for doing this is as i said i think yesterday, is to save a huge amount of time (which we *do not have spare*) and to make use of the Minerva L1 Cache Formal Correctness Proof (which we likewise do not have the time to replicate) with no time left to add dual RISC-V support, other than support modules for the L1 cache code (wishbone utils) the rest of the minerva code can be discarded. > All of that makes it very confusing > to newcomers and partially confusing for people who aren't newcomers > anymore -- I myself couldn't point out with any degree of certainty all the > code that we actually intend to use even though I've been here longer than > nearly everyone else. you've been focussing on Kazan, which is great. i _have_ been sending messages to the list (and also through the bugtracker), describing what i'm doing (and why) - generally i do not receive a response. the reason for sending those messages was to give people an opportunity to review and follow the code. if people had responded with questions, there would be less confusion right now because any issues would have been cleared up at the time. that said, i appreciate that it's complex code. in effect, what we have here is: we're not really working together as a team. we're not collaborating: we're working in isolation on separate components, very rarely interacting. we're now seriously under time pressure: i count approximately 15 weeks before we have to begin the coriolis2 layout. that's 15 weeks... *in which to complete the entire design*, by approximately mid-august. so we *have* to start working together, make as much use of pre-existing code as possible, and cut some serious draconian corners on what actually goes into the test chip. i'd welcome some discussion on how to proceed here. > Additionally, I'd advocate for all HDL code (at least soc, ieee754fpu, and > nmutil) to be moved to one repo see below > (especially including the data files > currently hosted on the wiki -- libre-soc.org shouldn't need to be > online/accessible to build if someone gets the git repos some other way) that's been changed (as intended, thank you michael) to use the git submodule version rather than http get. submodules has been a nuisance (already) so i'm inclined to agree that not using them for the .csv (and even the pseudocode .mdwn) is a good idea. what to replace it with: there's no good options here. > 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. 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"). > 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. likewise nmutil, by virtue of it mirroring the Chisel library from which we got the Queue class. this helped us to get additional funding and make the case for the project being valuable *outside* of the scope of what we are doing, to a wider community, and helps strengthen NLNet's role as a valuable backer of Hardware/Software Libre. nmutil then falls naturally into the category of being useful by *both* repositories, and that's exactly as it's supposed to be. 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. l. _______________________________________________ libre-riscv-dev mailing list libre-riscv-dev@lists.libre-riscv.org http://lists.libre-riscv.org/mailman/listinfo/libre-riscv-dev ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [libre-riscv-dev] experimental code & monorepo 2020-05-03 11:02 ` Luke Kenneth Casson Leighton @ 2020-05-06 0:08 ` Jacob Lifshay 0 siblings, 0 replies; 6+ messages in thread From: Jacob Lifshay @ 2020-05-06 0:08 UTC (permalink / raw) To: Libre-RISCV General Development 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 ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [libre-riscv-dev] GItlab For SOC repo 2020-05-02 18:45 [libre-riscv-dev] GItlab For SOC repo Yehowshua 2020-05-02 18:47 ` Yehowshua @ 2020-05-02 19:30 ` Luke Kenneth Casson Leighton 1 sibling, 0 replies; 6+ messages in thread From: Luke Kenneth Casson Leighton @ 2020-05-02 19:30 UTC (permalink / raw) To: Libre-RISCV General Development On Saturday, May 2, 2020, Yehowshua <yimmanuel3@gatech.edu> wrote: > Are we currently using a gitlab mirror on our SOC repo? yes. partly. it's for CI running on salsa. > I saw a ciyaml there… > > Yehowshua > _______________________________________________ > libre-riscv-dev mailing list > libre-riscv-dev@lists.libre-riscv.org > http://lists.libre-riscv.org/mailman/listinfo/libre-riscv-dev > -- --- crowd-funded eco-conscious hardware: https://www.crowdsupply.com/eoma68 _______________________________________________ libre-riscv-dev mailing list libre-riscv-dev@lists.libre-riscv.org http://lists.libre-riscv.org/mailman/listinfo/libre-riscv-dev ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, back to index Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 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 2020-05-02 19:30 ` [libre-riscv-dev] GItlab For SOC repo Luke Kenneth Casson Leighton
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