* [libre-riscv-dev] extremely busy crowdsupply update started
@ 2020-03-26 21:03 Luke Kenneth Casson Leighton
2020-03-27 5:49 ` Jacob Lifshay
` (5 more replies)
0 siblings, 6 replies; 52+ messages in thread
From: Luke Kenneth Casson Leighton @ 2020-03-26 21:03 UTC (permalink / raw)
To: Libre-RISCV General Development, Jock Tanner, Immanuel,
Yehowshua U, Michael Nolan
https://git.libre-riscv.org/?p=crowdsupply.git;a=blob;f=updates/023_2020mar26_decoder_emulator_started.mdwn;hb=HEAD
this is just the beginning, i have to fill in the sections - it would
be really handy if people could help!
* jacob in particular on the algorithmic library
* jock on how you got on with the coriolis2 thing (even if it's "it
was total chaos")
* yehowshua if you could write a paragraph or two about CREATE-X
* michael could you do something about the use of GNU as and qemu?
if you prefer just reply to this message with a paragraph or two and i
will cut/paste it? i'll do the conf-call and the Talos-II
workstation.
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] 52+ messages in thread* Re: [libre-riscv-dev] extremely busy crowdsupply update started 2020-03-26 21:03 [libre-riscv-dev] extremely busy crowdsupply update started Luke Kenneth Casson Leighton @ 2020-03-27 5:49 ` Jacob Lifshay 2020-03-27 8:47 ` Luke Kenneth Casson Leighton 2020-03-27 14:39 ` Immanuel, Yehowshua U ` (4 subsequent siblings) 5 siblings, 1 reply; 52+ messages in thread From: Jacob Lifshay @ 2020-03-27 5:49 UTC (permalink / raw) To: Libre-RISCV General Development On Thu, Mar 26, 2020 at 2:04 PM Luke Kenneth Casson Leighton <lkcl@lkcl.net> wrote: > > https://git.libre-riscv.org/?p=crowdsupply.git;a=blob;f=updates/023_2020mar26_decoder_emulator_started.mdwn;hb=HEAD > > this is just the beginning, i have to fill in the sections - it would > be really handy if people could help! > > <snip> > > if you prefer just reply to this message with a paragraph or two and i > will cut/paste it? i'll do the conf-call and the Talos-II > workstation. I ended up with quite a bit more than a paragraph or two, hoping that's ok since this is the first time simple-soft-float as appeared in the CrowdSupply updates, and I've been working on it since june at least. I'd appreciate a review by someone else to help catch errors. I pushed my additions to crowdsupply.git. 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] 52+ messages in thread
* Re: [libre-riscv-dev] extremely busy crowdsupply update started 2020-03-27 5:49 ` Jacob Lifshay @ 2020-03-27 8:47 ` Luke Kenneth Casson Leighton 2020-03-27 21:31 ` Jacob Lifshay 2020-03-31 4:18 ` Jacob Lifshay 0 siblings, 2 replies; 52+ messages in thread From: Luke Kenneth Casson Leighton @ 2020-03-27 8:47 UTC (permalink / raw) To: Libre-RISCV General Development On Friday, March 27, 2020, Jacob Lifshay <programmerjake@gmail.com> wrote: > > I ended up with quite a bit more than a paragraph or two, hoping > that's ok since this is the first time simple-soft-float as appeared > in the CrowdSupply updates, and I've been working on it since june at > least. I'd appreciate a review by someone else to help catch errors. I > pushed my additions to crowdsupply.git. looks great jacob. were there any challenges or anything that was difficult or easy? it is "insights" that are the kind of thing that make updates interesting. oh, do mention the "rust library of the month" thing for example, and when that happened, and how what has been done expands on that since. also i suggest explicitly mentioning that these two libraries can be used by *anyone*, they are *not* specific to this project, and are exactly the kind of side-benefit that comes from sponsorship from NLNet. hm i might word that one if that's ok. oh, nearly forgot! can you also do a quick section on kazan, mentioning the intermediary milestone? cole do you want to write a paragraph or two about the build servers? link to the post you did a few days ago veera, the public-inbox setup (and how it helps other people not just us?) l. -- --- 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] 52+ messages in thread
* Re: [libre-riscv-dev] extremely busy crowdsupply update started 2020-03-27 8:47 ` Luke Kenneth Casson Leighton @ 2020-03-27 21:31 ` Jacob Lifshay 2020-03-27 21:36 ` Luke Kenneth Casson Leighton 2020-03-31 4:18 ` Jacob Lifshay 1 sibling, 1 reply; 52+ messages in thread From: Jacob Lifshay @ 2020-03-27 21:31 UTC (permalink / raw) To: Libre-RISCV General Development On Fri, Mar 27, 2020, 01:47 Luke Kenneth Casson Leighton <lkcl@lkcl.net> wrote: > On Friday, March 27, 2020, Jacob Lifshay <programmerjake@gmail.com> wrote: > > > > > I ended up with quite a bit more than a paragraph or two, hoping > > that's ok since this is the first time simple-soft-float as appeared > > in the CrowdSupply updates, and I've been working on it since june at > > least. I'd appreciate a review by someone else to help catch errors. I > > pushed my additions to crowdsupply.git. > > > looks great jacob. > > were there any challenges or anything that was difficult or easy? it is > "insights" that are the kind of thing that make updates interesting. > > oh, do mention the "rust library of the month" thing for example, and when > that happened, and how what has been done expands on that since. > > also i suggest explicitly mentioning that these two libraries can be used > by *anyone*, they are *not* specific to this project, and are exactly the > kind of side-benefit that comes from sponsorship from NLNet. hm i might > word that one if that's ok. > > > oh, nearly forgot! can you also do a quick section on kazan, mentioning the > intermediary milestone? > Will add all the above stuff later, may have to delay till saturday night or sunday. 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] 52+ messages in thread
* Re: [libre-riscv-dev] extremely busy crowdsupply update started 2020-03-27 21:31 ` Jacob Lifshay @ 2020-03-27 21:36 ` Luke Kenneth Casson Leighton 0 siblings, 0 replies; 52+ messages in thread From: Luke Kenneth Casson Leighton @ 2020-03-27 21:36 UTC (permalink / raw) To: Libre-RISCV General Development On Fri, Mar 27, 2020 at 9:31 PM Jacob Lifshay <programmerjake@gmail.com> wrote: > Will add all the above stuff later, may have to delay till saturday night > or sunday. ok great. no problem. btw we need to start getting smart, work together, and get the hardware (and simulator) operational with basic POWER integer functionality, then LDs/STs (even if there's no efficient memory read/write), then probably branches (with simple branch-prediction, first). i'm finding that i'm working well *with* people (poking in here and there) such as you and michael (and Mitch, last year), however if i'm doing something on my own - from scratch - i'm ridiculously slow. two weeks so far on the LD/ST buffer. the IEEE754 work was an exception because i had "something that worked" (the jondawson fpu) and could rapidly morph it. 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] 52+ messages in thread
* Re: [libre-riscv-dev] extremely busy crowdsupply update started 2020-03-27 8:47 ` Luke Kenneth Casson Leighton 2020-03-27 21:31 ` Jacob Lifshay @ 2020-03-31 4:18 ` Jacob Lifshay 1 sibling, 0 replies; 52+ messages in thread From: Jacob Lifshay @ 2020-03-31 4:18 UTC (permalink / raw) To: Libre-RISCV General Development On Fri, Mar 27, 2020 at 1:47 AM Luke Kenneth Casson Leighton <lkcl@lkcl.net> wrote: > > On Friday, March 27, 2020, Jacob Lifshay <programmerjake@gmail.com> wrote: > > > > > I ended up with quite a bit more than a paragraph or two, hoping > > that's ok since this is the first time simple-soft-float as appeared > > in the CrowdSupply updates, and I've been working on it since june at > > least. I'd appreciate a review by someone else to help catch errors. I > > pushed my additions to crowdsupply.git. > > > looks great jacob. > > were there any challenges or anything that was difficult or easy? it is > "insights" that are the kind of thing that make updates interesting. Added a little on that in the Kazan shader compiler section. > oh, do mention the "rust library of the month" thing for example, and when > that happened, and how what has been done expands on that since. Added the mention, algebraics was the Crate of the Week back in October. > > also i suggest explicitly mentioning that these two libraries can be used > by *anyone*, they are *not* specific to this project, and are exactly the > kind of side-benefit that comes from sponsorship from NLNet. hm i might > word that one if that's ok. Seems as though you added that. > > > oh, nearly forgot! can you also do a quick section on kazan, mentioning the > intermediary milestone? I ended up writing a whole new big section on the shader compiler IR. We should probably copy a lot of that to our documentation. At this point, we should probably split the update into multiple separate updates or something, it's getting too long to easily read. 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] 52+ messages in thread
* Re: [libre-riscv-dev] extremely busy crowdsupply update started 2020-03-26 21:03 [libre-riscv-dev] extremely busy crowdsupply update started Luke Kenneth Casson Leighton 2020-03-27 5:49 ` Jacob Lifshay @ 2020-03-27 14:39 ` Immanuel, Yehowshua U 2020-03-27 15:49 ` Luke Kenneth Casson Leighton 2020-03-27 16:56 ` Michael Nolan ` (3 subsequent siblings) 5 siblings, 1 reply; 52+ messages in thread From: Immanuel, Yehowshua U @ 2020-03-27 14:39 UTC (permalink / raw) To: Libre-RISCV General Development > * yehowshua if you could write a paragraph or two about CREATE-X Yes, let me get back to you later today. _______________________________________________ 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] 52+ messages in thread
* Re: [libre-riscv-dev] extremely busy crowdsupply update started 2020-03-27 14:39 ` Immanuel, Yehowshua U @ 2020-03-27 15:49 ` Luke Kenneth Casson Leighton 2020-03-27 16:35 ` Tobias Platen 0 siblings, 1 reply; 52+ messages in thread From: Luke Kenneth Casson Leighton @ 2020-03-27 15:49 UTC (permalink / raw) To: Libre-RISCV General Development On Fri, Mar 27, 2020 at 2:39 PM Immanuel, Yehowshua U <yimmanuel3@gatech.edu> wrote: > > > * yehowshua if you could write a paragraph or two about CREATE-X > > Yes, let me get back to you later today. thanks. you are actually on the list for this repo so could git commit if you wanted to https://git.libre-riscv.org/?p=crowdsupply.git;a=summary 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] 52+ messages in thread
* Re: [libre-riscv-dev] extremely busy crowdsupply update started 2020-03-27 15:49 ` Luke Kenneth Casson Leighton @ 2020-03-27 16:35 ` Tobias Platen 2020-03-27 19:20 ` Luke Kenneth Casson Leighton 0 siblings, 1 reply; 52+ messages in thread From: Tobias Platen @ 2020-03-27 16:35 UTC (permalink / raw) To: libre-riscv-dev On Fri, 27 Mar 2020 15:49:45 +0000 Luke Kenneth Casson Leighton <lkcl@lkcl.net> wrote: I've cloned the repository and now I could write something to fill one or more TODOs in the file 023_2020mar26_decoder_emulator_started.mdwn probably either Coriolis2 experimentation started or POWER ISA decoder and Simulator. I think I'll work on the POWER ISA decoder and Simulator next. > On Fri, Mar 27, 2020 at 2:39 PM Immanuel, Yehowshua U > <yimmanuel3@gatech.edu> wrote: > > > > > * yehowshua if you could write a paragraph or two about CREATE-X > > > > Yes, let me get back to you later today. > > thanks. you are actually on the list for this repo so could git > commit if you wanted to > https://git.libre-riscv.org/?p=crowdsupply.git;a=summary > > l. > > _______________________________________________ > libre-riscv-dev mailing list > libre-riscv-dev@lists.libre-riscv.org > http://lists.libre-riscv.org/mailman/listinfo/libre-riscv-dev -- Tobias Platen <libre-soc[at]platen-software[dot]de> _______________________________________________ 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] 52+ messages in thread
* Re: [libre-riscv-dev] extremely busy crowdsupply update started 2020-03-27 16:35 ` Tobias Platen @ 2020-03-27 19:20 ` Luke Kenneth Casson Leighton 2020-03-27 21:29 ` Jacob Lifshay 2020-03-28 11:52 ` Luke Kenneth Casson Leighton 0 siblings, 2 replies; 52+ messages in thread From: Luke Kenneth Casson Leighton @ 2020-03-27 19:20 UTC (permalink / raw) To: Libre-RISCV General Development On Fri, Mar 27, 2020 at 4:35 PM Tobias Platen <libre-soc@platen-software.de> wrote: > > On Fri, 27 Mar 2020 15:49:45 +0000 > Luke Kenneth Casson Leighton <lkcl@lkcl.net> wrote: > > I've cloned the repository and now I could write something to fill one or more TODOs in the file 023_2020mar26_decoder_emulator_started.mdwn probably either Coriolis2 experimentation started or POWER ISA decoder and Simulator. sure - i've added you to the repo so you can git push to it. > I think I'll work on the POWER ISA decoder and Simulator next. i had an idea about that, based on this: http://lists.mailinglist.openpowerfoundation.org/pipermail/openpower-hdl-cores/2020-March/000007.html my feeling is, we're wasting our time trying to "manually" create both a processor and also a simulator, from "scratch", when there are perfectly good, machine-readable expressions (at least for the integer instructions), like this: lbz RT,D(RA) 34 RT RA D 0 6 11 16 31 if RA = 0 then b <= 0 else b <= (RA) EA <= + EXTS(D) RT <= 56^0 || MEM(EA, 1) i'm advocating, therefore, that we *literally* parse the PDF spec, create an "interpreter" for those fragments, then auto-generate code and HDL from them. mulhwu RT,RA,RB (Rc=0) mulhwu. RT,RA,RB (Rc=1) 31 RT RA RB / 11 Rc 0 6 11 16 21 22 31 prod0:63 <- (RA)32:63 x (RB)32:63 RT32:63 <- prod0:31 RT0:31 <- undefined those really don't look very hard, to turn into code, do they? FP is a little more challenging because they use "words" to describe most aspects of the hardware. oh wait! Appendix A p775 v3.0B contains FP to rounding algorithms, and a few more besides. i would not be at all surprised if, should we do document-parsing, we had an entire simulator for the integer V3.0 system in a week, and the hardware in around 2. 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] 52+ messages in thread
* Re: [libre-riscv-dev] extremely busy crowdsupply update started 2020-03-27 19:20 ` Luke Kenneth Casson Leighton @ 2020-03-27 21:29 ` Jacob Lifshay 2020-03-27 21:32 ` Luke Kenneth Casson Leighton 2020-03-28 11:52 ` Luke Kenneth Casson Leighton 1 sibling, 1 reply; 52+ messages in thread From: Jacob Lifshay @ 2020-03-27 21:29 UTC (permalink / raw) To: Libre-RISCV General Development On Fri, Mar 27, 2020, 12:21 Luke Kenneth Casson Leighton <lkcl@lkcl.net> wrote: > FP is a little more challenging because they use "words" to describe > most aspects of the hardware. oh wait! Appendix A p775 v3.0B > contains FP to rounding algorithms, and a few more besides. > > i would not be at all surprised if, should we do document-parsing, we > had an entire simulator for the integer V3.0 system in a week, and the > hardware in around 2. I haven't looked at the specific FP algorithms the Power spec specifies yet, but assuming they are like how IEEE 754 is specified, they specify it in terms of infinite-precision real numbers, which are not mappable to hardware without additional conversion to integer/fixed-point operations. Jacob 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] 52+ messages in thread
* Re: [libre-riscv-dev] extremely busy crowdsupply update started 2020-03-27 21:29 ` Jacob Lifshay @ 2020-03-27 21:32 ` Luke Kenneth Casson Leighton 0 siblings, 0 replies; 52+ messages in thread From: Luke Kenneth Casson Leighton @ 2020-03-27 21:32 UTC (permalink / raw) To: Libre-RISCV General Development On Fri, Mar 27, 2020 at 9:29 PM Jacob Lifshay <programmerjake@gmail.com> wrote: > I haven't looked at the specific FP algorithms the Power spec specifies > yet, but assuming they are like how IEEE 754 is specified, they specify it > in terms of infinite-precision real numbers, which are not mappable to > hardware without additional conversion to integer/fixed-point operations. it appears to be bit-numbered sections of the incoming data. like this: If (FRB)1:11 < 897 and (FRB)1:63 > 0 then Do If FPSCRUE = 0 then goto Disabled Exponent Underflow If FPSCRUE = 1 then goto Enabled Exponent Underflow End _______________________________________________ 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] 52+ messages in thread
* Re: [libre-riscv-dev] extremely busy crowdsupply update started 2020-03-27 19:20 ` Luke Kenneth Casson Leighton 2020-03-27 21:29 ` Jacob Lifshay @ 2020-03-28 11:52 ` Luke Kenneth Casson Leighton 1 sibling, 0 replies; 52+ messages in thread From: Luke Kenneth Casson Leighton @ 2020-03-28 11:52 UTC (permalink / raw) To: Libre-RISCV General Development --- crowd-funded eco-conscious hardware: https://www.crowdsupply.com/eoma68 On Fri, Mar 27, 2020 at 7:20 PM Luke Kenneth Casson Leighton <lkcl@lkcl.net> wrote: > my feeling is, we're wasting our time trying to "manually" create both > a processor and also a simulator, from "scratch", when there are > perfectly good, machine-readable expressions (at least for the integer > instructions), like this: captured here: http://bugs.libre-riscv.org/show_bug.cgi?id=269 let's discuss that on that bugreport. btw, one important thing: the "original" NLNet Grant is *running low* because of our need to transfer to POWER ISA (the expectation was to use an existing RV codebase such as minerva and jump-start straight from running working code). therefore, the way we need to do this is for people to pitch in with other tasks that *are* allocated new budgets, such as the Simulator, formal proofs, and so on. this means we need to *up our game* somewhat because we'll need to work collaboratively and keep in touch regularly. suggestions on how to do that appreciated. 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] 52+ messages in thread
* Re: [libre-riscv-dev] extremely busy crowdsupply update started 2020-03-26 21:03 [libre-riscv-dev] extremely busy crowdsupply update started Luke Kenneth Casson Leighton 2020-03-27 5:49 ` Jacob Lifshay 2020-03-27 14:39 ` Immanuel, Yehowshua U @ 2020-03-27 16:56 ` Michael Nolan 2020-03-27 19:21 ` Luke Kenneth Casson Leighton 2020-03-28 8:09 ` Jock Tanner ` (2 subsequent siblings) 5 siblings, 1 reply; 52+ messages in thread From: Michael Nolan @ 2020-03-27 16:56 UTC (permalink / raw) To: Luke Kenneth Casson Leighton, Libre-RISCV General Development, Jock Tanner, Immanuel, Yehowshua U On 3/26/20 5:03 PM, Luke Kenneth Casson Leighton wrote: > https://git.libre-riscv.org/?p=crowdsupply.git;a=blob;f=updates/023_2020mar26_decoder_emulator_started.mdwn;hb=HEAD > > this is just the beginning, i have to fill in the sections - it would > be really handy if people could help! > > * michael could you do something about the use of GNU as and qemu? Sure, I'll work on it at some point today or tomorrow. _______________________________________________ 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] 52+ messages in thread
* Re: [libre-riscv-dev] extremely busy crowdsupply update started 2020-03-27 16:56 ` Michael Nolan @ 2020-03-27 19:21 ` Luke Kenneth Casson Leighton 0 siblings, 0 replies; 52+ messages in thread From: Luke Kenneth Casson Leighton @ 2020-03-27 19:21 UTC (permalink / raw) To: Libre-RISCV General Development On Fri, Mar 27, 2020 at 4:56 PM Michael Nolan <mtnolan2640@gmail.com> wrote: > > * michael could you do something about the use of GNU as and qemu? > Sure, I'll work on it at some point today or tomorrow. star. _______________________________________________ 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] 52+ messages in thread
* Re: [libre-riscv-dev] extremely busy crowdsupply update started 2020-03-26 21:03 [libre-riscv-dev] extremely busy crowdsupply update started Luke Kenneth Casson Leighton ` (2 preceding siblings ...) 2020-03-27 16:56 ` Michael Nolan @ 2020-03-28 8:09 ` Jock Tanner 2020-03-28 10:02 ` Luke Kenneth Casson Leighton 2020-03-28 16:44 ` Jean-Paul Chaput 2020-03-28 18:07 ` Michael Nolan 2020-03-29 3:14 ` Immanuel, Yehowshua U 5 siblings, 2 replies; 52+ messages in thread From: Jock Tanner @ 2020-03-28 8:09 UTC (permalink / raw) To: Luke Kenneth Casson Leighton, Libre-RISCV General Development, Immanuel, Yehowshua U, Michael Nolan Hi! On Thu, 2020-03-26 at 21:03 +0000, Luke Kenneth Casson Leighton wrote: > * jock on how you got on with the coriolis2 thing (even if it's "it > was total chaos") > if you prefer just reply to this message with a paragraph or two and > i I also can not put my first impressions in just one or two paragraphs, so I wrote two versions. Luke, please choose the most appropriate one. Short version (TL/DR) ===================== As a humble Python developer, I understand the unique status and significance of the Coriolis project, nevertheless I cannot help but notice that it has a huge room for improvement. I genuinely hope that my participation in libre-riscv will also help improve Coriolis. Detailed version (The Rant) =========================== 1. Installation Coriolis 2 can be built and installed two ways: a) inside the home directory (“Fixed directory tree”), using a helper script [1], b) as a package, either RPM or DEB [2]. I followed the (a) route, and it actually went well except for a couple of quirks, that is considering the number of dependencies. As I understand, the (b) way is not well maintained for now. The method (a) can be used per se, at least on Debian GNU/Linux, or within chroot or LXC environments. Unfortunately, the Python extensions are coupled with the rest of the Coriolis, so it is impossible to use the advantages of 'virtualenv' or similar environments with Coriolis. Thus, entering the development with Coriolis for pythonistas is complicated by the combination of two factors: - lack of native packages for their OSes, - lack of PyPI package or pip/virtualenv support. I understand that Coriolis is a niche product, so we can not really expect much in terms of packaging for popular OSes. So it may be better for Coriolis to take another route: - decouple Python extensions from the main product, - provide Python extensions as a pip package (via PyPI or git), - supply a script and/or instructions for building the main product with the pip package. This is actually not a unique approach. For example, xapian-haystack ships a script for building a whole Xapian search engine (C++) in PYTHONPATH [3]. 2. Documentation . All the basics are covered by Coriolis User's Guide [4] (general workflow and GUI) and Python Tutorial [5], that are available online and offline, in PDF and HTML formats. Unfortunately, Coriolis Python API don't have its own reference guide. There is a good reference on Hurricane C++ API [6] though. Since Python API just copies the C++ API (which is a terrible desicion by itself, see the explanation in 3.2), this reference alone has the great part of both C++ and Python APIs covered. But other parts of the Python API (most importantly, Etesian and Katana) stays undocumented beyond the basics. 3. API 3.1. Supported Python versions The Coriolis Python API is a Python 2 extension. Python 2.7 was released in 2010, and it was meant to be the last 2.x release back then. In the following years Python 2 had no new features other than backports from Python 3. As of January 2020 Python 2 is considered unsupported by PSF. [7] Still clinging to outdated and abandoned language and not even having a (publicly available, at least) transition plan seems a bit scary to me. 3.2. Best practices of Python APIs To have a new API mimic the old API written in another programming language seems like an excellent idea at first. You don't have to design anything. Don't have to think of naming. You can reuse documentation and tests. The new API is easy to use, if you already got used to the old one. Everybody's happy, right? Well, everybody except the end users whom the new API is created for. Each programming language has its own best practices, and most of the time they either contradict the ones accepted by another language users or just don't have analogues in that language. Your new users will see your API as alien, cumbersome, or just poorly designed. They may have to cram their way around the least expected features. They may have to write wrappers around your API to reduce the astonishment factor [8] for the others. But most likely they will simply walk away. Here I'll try to give a run-down of Coriolis API features that scares Python developers (“bad”) along with their attractive and comfy alternatives (“good”). 3.2.1. Singletons You don't need a special methods to create and access a unique object in Python, since you can just import it. Bad: af = CRL.AllianceFramework.get() Good: from CRL import af 3.2.2. Getters and setters Getters and setters are considered an antipattern (not only in Python), so they should be replaced by properties or collection-like interfaces. Bad: env = af.getEnvironment() env.setCLOCK('^ck$|m_clock|^clk$') Good: af.env['CLOCK'] = '^ck$|m_clock|^clk$' 3.2.3. Data types Python use duck typing, so you should avoid any direct type indication or querying in Python. Bad: Cfg.getParamInt('katana.vTracksReservedLocal').setInt(6) Good: Cfg['katana.vTracksReservedLocal'] = 6 3.2.4. Syntactic sugar It's easier to account for the certain things that goes in pairs (open/close, create/destroy) with context managers or decorators. Bad: UpdateSession.open() do_my_thing() UpdateSession.close() Good: with UpdateSession(): do_my_thing() Also good in some cases: @update_session def do_my_thing(): ... 3.2.5. Self-documenting Python have a built-in 'help()' function, that returns a docstring for a given object. Python C extensions can emulate a docstring for use with 'help()'. Static syntax checkers and IDEs also rely on this API. It is very important that this emulated docstring contains not only the description of the function or method, but also a signature (parameters and return value) in reST format, as recommended by PEP287 [9], or in older Epytext format at worst. This will greatly facilitate the use of Python C extension with modern IDEs. The rules have slightly changed since Python 3.4, but the idea remains. 3.2.6. Naming conventions The Python API must adhere to naming conventions accepted in Python. I can not stress enough the importance of this point, but let us address the styling issues in general in 3.3. 3.3. Styling I have to admit that Coriolis Python style is quite consistent, but it looks like the only purpose of this consistency is to contradict the PEP 8 [10] in any possible way. [11] You might think that style is not that important, but after 15 minutes spent in search of the 'ChipRoute' class definition, diagnosing and restarting IDE, checking Moon phase and whatnot, find that 'ChipRoute' is not a class, but a module… How well the end user could perform with that in mind? Another thing is that it's nearly impossible to lure a junior developer into a project that neglects styling. In modern development, proprietary and opensource alike, an ability to write a consistent, readable, uniform code is very much appreciated, and junior developers expect to acquire good professional habits in their first projects. And style is the first thing they learn to distinguish in someone else's code. [1] http://coriolis.lip6.fr/pages/users-guide.html#id16 [2] http://coriolis.lip6.fr/pages/users-guide.html#id19 [3] https://github.com/notanumber/xapian-haystack [4] http://coriolis.lip6.fr/pages/users-guide.html [5] http://coriolis.lip6.fr/pages/python-tutorial.html [6] http://coriolis.lip6.fr/doc/hurricane/index.html [7] https://www.python.org/dev/peps/pep-0373/ [8] https://en.wikipedia.org/wiki/Principle_of_least_astonishment [9] https://www.python.org/dev/peps/pep-0287/ [10] https://www.python.org/dev/peps/pep-0008/ [11] https://www.opensourceshakespeare.org/views/plays/play_view.php?WorkID=hamlet&Act=2&Scene=2&Scope=scene&LineHighlight=1307#1307 _______________________________________________ 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] 52+ messages in thread
* Re: [libre-riscv-dev] extremely busy crowdsupply update started 2020-03-28 8:09 ` Jock Tanner @ 2020-03-28 10:02 ` Luke Kenneth Casson Leighton 2020-03-28 16:44 ` Jean-Paul Chaput 1 sibling, 0 replies; 52+ messages in thread From: Luke Kenneth Casson Leighton @ 2020-03-28 10:02 UTC (permalink / raw) To: Libre-RISCV General Development On Saturday, March 28, 2020, Jock Tanner <tanner.of.kha@gmail.com> wrote: > Hi! > > On Thu, 2020-03-26 at 21:03 +0000, Luke Kenneth Casson Leighton wrote: > > * jock on how you got on with the coriolis2 thing (even if it's "it > > was total chaos") > > > if you prefer just reply to this message with a paragraph or two and > > i > > I also can not put my first impressions in just one or two paragraphs, > so I wrote two versions. Luke, please choose the most appropriate one. short for thecrowdsupply update, with a link here for the people interested to read. also i will specially include the insights about putting people off due to the nonstandard style., that's quite important. nicely done jock. > > Short version (TL/DR) > ===================== > > As a humble Python developer, I understand the unique status and > significance of the Coriolis project, nevertheless I cannot help but > notice that it has a huge room for improvement. I genuinely hope that > my participation in libre-riscv will also help improve Coriolis. > > -- --- 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] 52+ messages in thread
* Re: [libre-riscv-dev] extremely busy crowdsupply update started 2020-03-28 8:09 ` Jock Tanner 2020-03-28 10:02 ` Luke Kenneth Casson Leighton @ 2020-03-28 16:44 ` Jean-Paul Chaput 2020-03-28 17:13 ` Luke Kenneth Casson Leighton ` (4 more replies) 1 sibling, 5 replies; 52+ messages in thread From: Jean-Paul Chaput @ 2020-03-28 16:44 UTC (permalink / raw) To: libre-riscv-dev [-- Attachment #1.1: Type: text/plain, Size: 15793 bytes --] Hello Jock, First, thank you for the time you spend analysing the Coriolis code and that detailed report. I will try to make a comprehensive answer about why Coriolis is the way it is. * My job description at the University is not only to develop Coriolis, but be the system admistrator of a Linux network (150 desktop & servers) and manage industrial ASIC toolchains (Cadence,Mentor,Synopys). So I usually can only spend 70% of my time on Coriolis. * One problem in a tool like Coriolis is that you need three kind of skills to really be efficient: 1. A good understanding of the specifics of making an ASIC. 2. Algorithmic knowledge to tackle efficiently the problems in (1). 3. Programming skills in at least two language C++ & Python, plus a bit of software engineering. So, I have knowledge in all three, but cannot became a top notch expert in all of them. This also makes it difficult to have interns. * In some parts, namely the detailed router, the algorithm is a genuine one, developing and testing it is a full time job by itself. It is not even finished yet. But, when finished it will allow lots of fancy things like seamless analog/digital designs and taking into account fancy constraints to avoid side-channel attacks on crypto chips (for example). * It has a past... Some decisions where taken more than 10 years ago in a diffrent context and I simply cannot afford to rewrite the software every times something shift. * Nevertheless, I'm deeply commited to write software as cleanly as possible, and will make improvements when I can. So I will very carefully read your observations. But, unless you want to commit yourself for the next ten years, I need a code that I intimately understand. > Detailed version (The Rant) > =========================== > > 1. Installation > > Coriolis 2 can be built and installed two ways: > > a) inside the home directory (“Fixed directory tree”), using a helper script [1], > b) as a package, either RPM or DEB [2]. > > I followed the (a) route, and it actually went well except for a couple > of quirks, that is considering the number of dependencies. As I > understand, the (b) way is not well maintained for now. Coriolis is too unstable yet. Using packages would meant to rebuild them at every git push, and having the users do not forget to reinstall it afterwards. I think Staf Verhaegen is making some trials. Ruben Undheim, an official Debian packager, is making DEB of Coriolis, you may contact him to see if you can set up some continuous integration there. My goal is to have something "stable" after the november run in 180nm. > The method (a) can be used per se, at least on Debian GNU/Linux, or > within chroot or LXC environments. > > Unfortunately, the Python extensions are coupled with the rest of the > Coriolis, so it is impossible to use the advantages of 'virtualenv' or > similar environments with Coriolis. I'm not familiar with virtualenv and I don't understand how the C++ Python modules can be separated from the Python extension themselves. > Thus, entering the development with Coriolis for pythonistas is > complicated by the combination of two factors: > > - lack of native packages for their OSes, > - lack of PyPI package or pip/virtualenv support. > > I understand that Coriolis is a niche product, so we can not really > expect much in terms of packaging for popular OSes. So it may be better > for Coriolis to take another route: > > - decouple Python extensions from the main product, > - provide Python extensions as a pip package (via PyPI or git), > - supply a script and/or instructions for building the main product > with the pip package. Breaking things in multiple components introduce complexity that you must manage afterwards. I can see a lot of troubles when people will have mismatched versions of the C++ core and the PyPI extensions. And lots of nigthmarish debug problems. Native packages would be better, and can be done, once it is stable enough. > This is actually not a unique approach. For example, xapian-haystack > ships a script for building a whole Xapian search engine (C++) in > PYTHONPATH [3]. > > 2. Documentation > . > All the basics are covered by Coriolis User's Guide [4] (general > workflow and GUI) and Python Tutorial [5], that are available online > and offline, in PDF and HTML formats. > > Unfortunately, Coriolis Python API don't have its own reference guide. > There is a good reference on Hurricane C++ API [6] though. Since Python > API just copies the C++ API (which is a terrible desicion by itself, > see the explanation in 3.2), this reference alone has the great part of > both C++ and Python APIs covered. But other parts of the Python API > (most importantly, Etesian and Katana) stays undocumented beyond the > basics. For Etesian & Katana, this is just due to the lack of time. Also mixed with a lack of stability. It is very frustrating to write a doc which is no longer relevant three month later. The basic doc of Katana is in fact in Kite. Kite is the digital only version of the router while Katana is the mixed one. And it is in flux, so I postponed the port of the doc. > 3. API > > 3.1. Supported Python versions > > The Coriolis Python API is a Python 2 extension. > > Python 2.7 was released in 2010, and it was meant to be the last 2.x > release back then. In the following years Python 2 had no new features > other than backports from Python 3. As of January 2020 Python 2 is > considered unsupported by PSF. [7] > > Still clinging to outdated and abandoned language and not even having a > (publicly available, at least) transition plan seems a bit scary to me. I understand very well. I'm not clinging to it, I just have had not time yet to make the transition. If nothing unexpected happens I hope to do the migration sometimes in the next three monthes. Here I must admit I'm not proud of the way the C++/Python wrapper is written, but it do works exactly like I want to... Here again with lots of unusual constraints that I see no way to make swig or the like to understand. > 3.2. Best practices of Python APIs > > To have a new API mimic the old API written in another programming > language seems like an excellent idea at first. You don't have to > design anything. Don't have to think of naming. You can reuse > documentation and tests. The new API is easy to use, if you already got > used to the old one. Everybody's happy, right? > > Well, everybody except the end users whom the new API is created for. Not so fast here, we need a definition of "end users". In my lab, the people using Coriolis are mostly ASIC people, that is electrical engineers. They use the minimal and simplest possible subset of any programming language. You may look at the relationship between C++ and SystmeC. SystemC is comparable to nMigen but under the form of a C++ library. They don't event tell them it's C++. SystemC is usually presented as a language on it's own (sometimes they talk about C). In fact, and this is a trend I've seen emerge with the rise of FPGA for some time, you have *two* kind of audience. * Electrical engineers or guys comming "from the hardware", with limited programming skills. They describe their design as series of blocks. They want to tightly control how and what they generate. * Computer Science types, or guys coming "from the software", with advanced programming skills. They tend to see their design in term of classes and functions, with lot of implicit mechanisms. Typical example is Chisel or SpinalHDL. At this point I have no clear answer about what the "best" language would be. But I can tell you for sure that many "hardware guys" are literally repelled by languages like Chisel. It's a discussion we are currently having at the lab. Like the one that did take place in this list a little while ago. > Each programming language has its own best practices, and most of the > time they either contradict the ones accepted by another language users > or just don't have analogues in that language. Your new users will see > your API as alien, cumbersome, or just poorly designed. They may have > to cram their way around the least expected features. They may have to > write wrappers around your API to reduce the astonishment factor [8] > for the others. But most likely they will simply walk away. Another point to take into account, is that, at first, the Python extention was made to be able to do "rapid prototyping". That is quicly develop and test under Python, then, convert back to C++. So keeping both interfaces in synch as much as possible was to reduce that work. And, as if for myself only, I do constant back and forth between Python and C++, so I have one less "translation" to manage. > Here I'll try to give a run-down of Coriolis API features that scares > Python developers (“bad”) along with their attractive and comfy > alternatives (“good”). > > 3.2.1. Singletons > > You don't need a special methods to create and access a unique object > in Python, since you can just import it. > > Bad: af = CRL.AllianceFramework.get() > > Good: from CRL import af OK. > 3.2.2. Getters and setters > > Getters and setters are considered an antipattern (not only in Python), > so they should be replaced by properties or collection-like interfaces. > > Bad: > env = af.getEnvironment() > env.setCLOCK('^ck$|m_clock|^clk$') > > Good: > af.env['CLOCK'] = '^ck$|m_clock|^clk$' OK. But introduce some rework at Python/C++ level. > 3.2.3. Data types > > Python use duck typing, so you should avoid any direct type indication > or querying in Python. > > Bad: Cfg.getParamInt('katana.vTracksReservedLocal').setInt(6) > > Good: Cfg['katana.vTracksReservedLocal'] = 6 The Cfg module is a shame. Is is unecessarily separated from the rest and the only one using boost. Creating one of the most painful dependency only for it. As those variables are created then stored in C++, I need to be able to guess their type right. integer, float, sometimes enum, and percentage... If you can show me an elegant solution, I will take it. > 3.2.4. Syntactic sugar > > It's easier to account for the certain things that goes in pairs > (open/close, create/destroy) with context managers or decorators. > > Bad: > UpdateSession.open() > do_my_thing() > UpdateSession.close() > > Good: > with UpdateSession(): > do_my_thing() > > Also good in some cases: > @update_session > def do_my_thing(): > ... OK. I will look into that. > 3.2.5. Self-documenting > > Python have a built-in 'help()' function, that returns a docstring for > a given object. Python C extensions can emulate a docstring for use > with 'help()'. Static syntax checkers and IDEs also rely on this API. > > It is very important that this emulated docstring contains not only the > description of the function or method, but also a signature (parameters > and return value) in reST format, as recommended by PEP287 [9], or in > older Epytext format at worst. This will greatly facilitate the use of > Python C extension with modern IDEs. > > The rules have slightly changed since Python 3.4, but the idea remains. The main reason here is still the lack of time. But there may be another problem. My python interface allow to mirror in Python the C++ function overload, but Python only allows one set of parameters, is that true or I'm lagging on Python features again? So how to describe a function with more than one parameter set? > 3.2.6. Naming conventions > > The Python API must adhere to naming conventions accepted in Python. I > can not stress enough the importance of this point, but let us address > the styling issues in general in 3.3. > > 3.3. Styling > > I have to admit that Coriolis Python style is quite consistent, but it > looks like the only purpose of this consistency is to contradict the > PEP 8 [10] in any possible way. [11] > > You might think that style is not that important, but after 15 minutes > spent in search of the 'ChipRoute' class definition, diagnosing and > restarting IDE, checking Moon phase and whatnot, find that 'ChipRoute' > is not a class, but a module… How well the end user could perform with > that in mind? Quite the opposite, I do think style is important. The goal of style is readability and it is mine. But I don't think you can say that there is *one* good style and all others are bad. And even the reference style may evolve... It is easy to slip from "the style I'm accustomed to" and "the right style". I understand the advantages of using a style shared by many peoples, but I won't blindly comply (I'm both French and a bit stubborn). I will try to find time to read the PEP8, but I have a lot of work to do... I've already seen this debate about C++ coding, and there are definetely good and bad styles (or lack of) but I won't say there is "the good style". Among good styles, there are different tradeoffs that may or may not suits you. > Another thing is that it's nearly impossible to lure a junior developer > into a project that neglects styling. In modern development, > proprietary and opensource alike, an ability to write a consistent, > readable, uniform code is very much appreciated, and junior developers > expect to acquire good professional habits in their first projects. And > style is the first thing they learn to distinguish in someone else's > code. Maybe it has changed in the company world, but for what I've seen in the ASIC world, code cleanliness is still a long way home... But again, it may be different company we are talking about. I talk of Cadence/Mentor/Synopsys, if you have the opportunity, take a look. A last reflexion about PyCharm, it is very well for people working only on Python code. But for my part, I edit C++, C, Python, ReST, cmake, LaTeX, Yaml and whatnot, so I use Emacs (vim could also do). It would be inefficient to have one IDE/editor per language. Anyway, this is very valuable input, and I will take it into account as soon as I can, given my current workload. Best regards, > [1] http://coriolis.lip6.fr/pages/users-guide.html#id16 > [2] http://coriolis.lip6.fr/pages/users-guide.html#id19 > [3] https://github.com/notanumber/xapian-haystack > [4] http://coriolis.lip6.fr/pages/users-guide.html > [5] http://coriolis.lip6.fr/pages/python-tutorial.html > [6] http://coriolis.lip6.fr/doc/hurricane/index.html > [7] https://www.python.org/dev/peps/pep-0373/ > [8] https://en.wikipedia.org/wiki/Principle_of_least_astonishment > [9] https://www.python.org/dev/peps/pep-0287/ > [10] https://www.python.org/dev/peps/pep-0008/ > [11] > https://www.opensourceshakespeare.org/views/plays/play_view.php?WorkID=hamlet&Act=2&Scene=2&Scope=scene&LineHighlight=1307#1307 -- .-. J e a n - P a u l C h a p u t / Administrateur Systeme /v\ Jean-Paul.Chaput@lip6.fr /(___)\ work: (33) 01.44.27.53.99 ^^ ^^ cell: 06.66.25.35.55 home: 09.65.29.83.38 U P M C Universite Pierre & Marie Curie L I P 6 Laboratoire d'Informatique de Paris VI S o C System On Chip [-- Attachment #2: Type: text/plain, Size: 177 bytes --] _______________________________________________ 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] 52+ messages in thread
* Re: [libre-riscv-dev] extremely busy crowdsupply update started 2020-03-28 16:44 ` Jean-Paul Chaput @ 2020-03-28 17:13 ` Luke Kenneth Casson Leighton 2020-03-31 8:17 ` Jean-Paul Chaput 2020-03-28 17:14 ` [libre-riscv-dev] extremely busy crowdsupply update started Luke Kenneth Casson Leighton ` (3 subsequent siblings) 4 siblings, 1 reply; 52+ messages in thread From: Luke Kenneth Casson Leighton @ 2020-03-28 17:13 UTC (permalink / raw) To: Libre-RISCV General Development On Sat, Mar 28, 2020 at 4:45 PM Jean-Paul Chaput <Jean-Paul.Chaput@lip6.fr> wrote: > The main reason here is still the lack of time. But there may be > another problem. My python interface allow to mirror in Python > the C++ function overload, but Python only allows one set of > parameters, is that true or I'm lagging on Python features again? > So how to describe a function with more than one parameter set? ah. right. with all the other things, i am going to focus on this one. it is a major, serious failing in the ENTIRETY of the free software community to COMPLETELY fail to comprehend this one, absolutely critical thing. microsoft DCOM got it right (co-classes). as a result i was the ONLY PERSON IN THE WORLD - i checked, emailing the IEXPLORE developer and he kindly replied - to use the full power of IEXPLORE.DLL DCOM bindings from python-comtypes. and by "full power" i mean "all 300 objects, all 2,000+ functions, and all 20,000 properties". the only reason that was possible - including the c++ functions which had multiple overloads - was because of a property of DCOM called "co-classes". when the Mozilla Foundation decided "oh! we! know! we! will copy! DCOM! and call it! XPCOM! it'll be great!" they did NOT copy co-classes, and consequently fucked EVERYONE around for the next 15 years who tried to develop third party xulrunner applications. even activestate - a major supporter of firefox technology- eventually went "fuckit" and used webkit for their products. eventually, with "everyone abandoning xulrunner", the Mozilla Foundation further fucked everyone about by *abandoning* xulrunner entirely, themselves, despite the fact that yes, there were people actually using it. this actually resulted in a hard fork of xulrunner (which, sadly, does not have co-classes added to it). there is actually one feature-complete implementation of microsoft DCOM... get ready for this... in wine! yes, really: wine has a *complete* implementation of DCOM, to the point where you can actually install python and python win32 comtypes *under Wine* and actually use it! however the barrier to entry when compiling applications using the wine-under-linux system (executables get named MYAPP.EXE.so and you then have to run that using winetricks....) would just blow the tops of already-overloaded ASIC engineers overheated heads. so whatever you pick, Jean-Paul, please be aware of two things: 1. this is a HARD problem, not properly acknowledged or recognised by the open source community, and it's been pissing me off for 20 years. 2. whatever you choose to do, please for god's sake don't choose wrong. the amount of pain that you will encounter will make boost look like a sunday christmas dinner and birthday party all rolled into one. so if you *have* successfully mirrored multiple c++ function-overloads into python, GREAT! congratulations, you are amongst an absolute tiny minority of programmers who have comprehended this, where the majority are in systematic pathological failure and mental melt-down. 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] 52+ messages in thread
* Re: [libre-riscv-dev] extremely busy crowdsupply update started 2020-03-28 17:13 ` Luke Kenneth Casson Leighton @ 2020-03-31 8:17 ` Jean-Paul Chaput 2020-03-31 9:31 ` Luke Kenneth Casson Leighton 0 siblings, 1 reply; 52+ messages in thread From: Jean-Paul Chaput @ 2020-03-31 8:17 UTC (permalink / raw) To: libre-riscv-dev [-- Attachment #1.1: Type: text/plain, Size: 3271 bytes --] On Sat, 2020-03-28 at 17:13 +0000, Luke Kenneth Casson Leighton wrote: > On Sat, Mar 28, 2020 at 4:45 PM Jean-Paul Chaput > <Jean-Paul.Chaput@lip6.fr> wrote: > > > The main reason here is still the lack of time. But there may be > > another problem. My python interface allow to mirror in Python > > the C++ function overload, but Python only allows one set of > > parameters, is that true or I'm lagging on Python features again? > > So how to describe a function with more than one parameter set? > > ah. > > right. with all the other things, i am going to focus on this one. > it is a major, serious failing in the ENTIRETY of the free software > community to COMPLETELY fail to comprehend this one, absolutely > critical thing. > > microsoft DCOM got it right (co-classes). as a result i was the ONLY > PERSON IN THE WORLD - i checked, emailing the IEXPLORE developer and > he kindly replied - to use the full power of IEXPLORE.DLL DCOM > bindings from python-comtypes. and by "full power" i mean "all 300 > objects, all 2,000+ functions, and all 20,000 properties". > > the only reason that was possible - including the c++ functions which > had multiple overloads - was because of a property of DCOM called > "co-classes". > > when the Mozilla Foundation decided "oh! we! know! we! will copy! > DCOM! and call it! XPCOM! it'll be great!" they did NOT copy > co-classes, and consequently fucked EVERYONE around for the next 15 > years who tried to develop third party xulrunner applications. Funny, I remember well a student a while ago telling me that I should use XUL to write the graphical interface of Coriolis. I was already feeling like an old shmuck with my Qt... > so if you *have* successfully mirrored multiple c++ function-overloads > into python, GREAT! congratulations, you are amongst an absolute tiny > minority of programmers who have comprehended this, where the majority > are in systematic pathological failure and mental melt-down. I did write it a long time ago, it is too complicated for what it does. You can see an example in the PyHorizontal.cpp file and look at PyHorizontal_create(). It is very dumb and tedious programming. I intend to review it thoroughly when migrating to Python 3. Basically it build the "signature" of the function and is followed by a big "if" afterwards. The Python "wrapper" is not something I'm very proud of as it is only a big bunch of C macros. I'm not happy with the *way* the code is generated, but on the other hand, I am happy with the *generated* code and the fact that I can finely tune it. I will try to make a more intensive use of C++ templates. But not as much as in Boost as it becomes very, very slow to compile (it's the reason why the Qt team abandoned it in favor of another interface generator). -- .-. J e a n - P a u l C h a p u t / Administrateur Systeme /v\ Jean-Paul.Chaput@lip6.fr /(___)\ work: (33) 01.44.27.53.99 ^^ ^^ cell: 06.66.25.35.55 home: 09.65.29.83.38 U P M C Universite Pierre & Marie Curie L I P 6 Laboratoire d'Informatique de Paris VI S o C System On Chip [-- Attachment #2: Type: text/plain, Size: 177 bytes --] _______________________________________________ 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] 52+ messages in thread
* Re: [libre-riscv-dev] extremely busy crowdsupply update started 2020-03-31 8:17 ` Jean-Paul Chaput @ 2020-03-31 9:31 ` Luke Kenneth Casson Leighton 2020-03-31 9:32 ` Luke Kenneth Casson Leighton 0 siblings, 1 reply; 52+ messages in thread From: Luke Kenneth Casson Leighton @ 2020-03-31 9:31 UTC (permalink / raw) To: Libre-RISCV General Development On Tue, Mar 31, 2020 at 9:17 AM Jean-Paul Chaput <Jean-Paul.Chaput@lip6.fr> wrote: > > On Sat, 2020-03-28 at 17:13 +0000, Luke Kenneth Casson Leighton wrote: > Funny, I remember well a student a while ago telling me that > I should use XUL to write the graphical interface of Coriolis. > I was already feeling like an old shmuck with my Qt... sadly, in retrospect, it would have turned out to be a huge mistake. i'm sorry to have to be the bearer of bad news, that i have been unable to find *any* major libre software team with the intelligence and resources to comprehend the strategic importance of DCOM. historically, it is not a coincidence that there is a correlation between microsoff's massive success (and that they used COM) and Apple's massive success (and that they used Objective-J, Objective-C and Objective-M), where each of those had - has - the same co-class capability of COM actually built-in to the *compilers*, providing all and any binaries right across the board with the exact same run-time self-describing self-introspective object-orientated capacity that COM gives. hm. that said, for long-term plans, you *might* want to look at GNU Objective-C and the GNUstep GUI framework. https://en.wikipedia.org/wiki/Objective-C#GNU,_GNUstep,_and_WinObjC 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] 52+ messages in thread
* Re: [libre-riscv-dev] extremely busy crowdsupply update started 2020-03-31 9:31 ` Luke Kenneth Casson Leighton @ 2020-03-31 9:32 ` Luke Kenneth Casson Leighton 2020-03-31 9:38 ` [libre-riscv-dev] pyobjc, gnu objective-c and gnustep Luke Kenneth Casson Leighton 0 siblings, 1 reply; 52+ messages in thread From: Luke Kenneth Casson Leighton @ 2020-03-31 9:32 UTC (permalink / raw) To: Libre-RISCV General Development and pyobjc: https://pyobjc.readthedocs.io/en/latest/changelog.html _______________________________________________ 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] 52+ messages in thread
* [libre-riscv-dev] pyobjc, gnu objective-c and gnustep 2020-03-31 9:32 ` Luke Kenneth Casson Leighton @ 2020-03-31 9:38 ` Luke Kenneth Casson Leighton 2020-03-31 11:42 ` lkcl . 0 siblings, 1 reply; 52+ messages in thread From: Luke Kenneth Casson Leighton @ 2020-03-31 9:38 UTC (permalink / raw) To: Libre-RISCV General Development https://groups.google.com/forum/#!topic/gnu.gnustep.discuss/6QbWfmaMrck patches - 8 years ago (damnit, the changelog for 2.0.1 removed it) you see the sort of thing i mean? there *are* people who understand the power of dynamic objective runtime self-describing capability: and they're *never properly funded*. On Tue, Mar 31, 2020 at 10:32 AM Luke Kenneth Casson Leighton <lkcl@lkcl.net> wrote: > > and pyobjc: > https://pyobjc.readthedocs.io/en/latest/changelog.html _______________________________________________ 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] 52+ messages in thread
* Re: [libre-riscv-dev] pyobjc, gnu objective-c and gnustep 2020-03-31 9:38 ` [libre-riscv-dev] pyobjc, gnu objective-c and gnustep Luke Kenneth Casson Leighton @ 2020-03-31 11:42 ` lkcl . 2020-03-31 14:11 ` Jean-Paul Chaput 0 siblings, 1 reply; 52+ messages in thread From: lkcl . @ 2020-03-31 11:42 UTC (permalink / raw) To: Libre-RISCV General Development, Jean-Paul Chaput, Marie-Minerve Louërat *click* what the hell am i saying?? jean-paul, we've got a clear need for improvements to coriolis2, it is *really* easy to justify putting in an application for NLNet funding, here. if you're interested, i can kick some tires and see if there are people in, say, the GNUStep community (and other locations) willing to get pyobjc GNUStep support properly working, upstreamed, and suitable for use as the main "glue" in coriolis2. replacing libboost as well as Qt [1] what do you think? l. [1] once pyobjc python bindings exist and work, you'd have *immediate* dynamic runtime access to GNUStep GUI Objective-C bindings. aalllll of theeeeem. GNUStep GUIs in python using pyobjc would be laughably - and very unnervingly - trivial. oh and there's a high probability that they'd also work on macosx, unmodified. On Tue, Mar 31, 2020 at 10:38 AM Luke Kenneth Casson Leighton <lkcl@lkcl.net> wrote: > > https://groups.google.com/forum/#!topic/gnu.gnustep.discuss/6QbWfmaMrck > patches - 8 years ago (damnit, the changelog for 2.0.1 removed it) > > you see the sort of thing i mean? there *are* people who understand > the power of dynamic objective runtime self-describing capability: and > they're *never properly funded*. > > On Tue, Mar 31, 2020 at 10:32 AM Luke Kenneth Casson Leighton > <lkcl@lkcl.net> wrote: > > > > and pyobjc: > > https://pyobjc.readthedocs.io/en/latest/changelog.html _______________________________________________ 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] 52+ messages in thread
* Re: [libre-riscv-dev] pyobjc, gnu objective-c and gnustep 2020-03-31 11:42 ` lkcl . @ 2020-03-31 14:11 ` Jean-Paul Chaput 2020-03-31 14:30 ` lkcl . 0 siblings, 1 reply; 52+ messages in thread From: Jean-Paul Chaput @ 2020-03-31 14:11 UTC (permalink / raw) To: lkcl ., Libre-RISCV General Development, Marie-Minerve Louërat [-- Attachment #1.1: Type: text/plain, Size: 3118 bytes --] On Tue, 2020-03-31 at 11:42 +0000, lkcl . wrote: > *click* what the hell am i saying?? jean-paul, we've got a clear need > for improvements to coriolis2, it is *really* easy to justify putting > in an application for NLNet funding, here. Hello Luke, This is a complicated matter. As a team of one, I have limited resources, so I must prioritize (and I know myself, I'm not very good at that). Anyway, the short term goal is to have the 180nm circuit done and working by October. In order to do that I/we must not "finish" Coriolis, but put it to a point it can fulfil that objective. I'm convinced it is doable, but we should go straight to the point, because I'm sure that lots of unexpected issues will pop-up and I will have to tackle them quickly. My "development cycle" are alternate steps of "adding features" then "improve code at constant features". So, having more hands will really be a plus (as you already proposed in an early mail). The problem is to have someone(s) with that triple skills (ASIC, algorithmic, software) and it has been proven difficult on my end. To have an example of the kind of code I get, you could take a look to the whole capacitor stuff in coriolis/oroshi/python/ (and you will easily see where I modified the code with my unique coding style). This was made by a good electrical engineer, but with embryonic software knowledge. The code is to draw the layout of one or a matrix of analog capacitors. The comments are made for doxygen. And besides, all of our students have already chosen their internship (in the industry). I think we may have a good one in June. And lastly, due to the Covid-19 and University shutdown we cannot hire anybody, should we have a candidate. I absolutely do not want to give you the impression that I do not want more people working on Coriolis, quite the contrary. But I want to expose the context as rightfully as it is. The question being how to circumvent those initial conditions to get more efficient people working on Coriolis? I've taken a look at GNUstep, it seems a bit quite by there... (maybe I was on the wrong site). For the record, WidowMaker is one of the more memory efficient window manager I have ever seen (still can work on my UltraSparc 1 / NetBSD). However I will remove Boost as soon as possible, it has proven to be a pebble in my shoes for too long. And migrating towards Python3. I'm currently making my Python code a bit more PEP8 compliant then backporting some of the work of Jock in soclayout. *But* I will keep some style that you may find bad. Paradox is that the "comma" at the start of line was showed to me by an early Python adopter back around 2000... Best regards, -- .-. J e a n - P a u l C h a p u t / Administrateur Systeme /v\ Jean-Paul.Chaput@lip6.fr /(___)\ work: (33) 01.44.27.53.99 ^^ ^^ cell: 06.66.25.35.55 home: 09.65.29.83.38 U P M C Universite Pierre & Marie Curie L I P 6 Laboratoire d'Informatique de Paris VI S o C System On Chip [-- Attachment #2: Type: text/plain, Size: 177 bytes --] _______________________________________________ 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] 52+ messages in thread
* Re: [libre-riscv-dev] pyobjc, gnu objective-c and gnustep 2020-03-31 14:11 ` Jean-Paul Chaput @ 2020-03-31 14:30 ` lkcl . 2020-03-31 16:16 ` Jacob Lifshay 0 siblings, 1 reply; 52+ messages in thread From: lkcl . @ 2020-03-31 14:30 UTC (permalink / raw) To: Jean-Paul Chaput Cc: Marie-Minerve Louërat, Libre-RISCV General Development On Tue, Mar 31, 2020 at 3:11 PM Jean-Paul Chaput <Jean-Paul.Chaput@lip6.fr> wrote: > On Tue, 2020-03-31 at 11:42 +0000, lkcl . wrote: > > *click* what the hell am i saying?? jean-paul, we've got a clear need > > for improvements to coriolis2, it is *really* easy to justify putting > > in an application for NLNet funding, here. > > Hello Luke, > > This is a complicated matter. As a team of one, I have limited resources, > so I must prioritize (and I know myself, I'm not very good at that). > Anyway, the short term goal is to have the 180nm circuit done and > working by October. yes absolutely. i wanted to think slightly beyond that. > some style that you may find bad. Paradox is that the "comma" at the > start of line was showed to me by an early Python adopter back around > 2000... sigh yes that was when i started using python. it predates common usage of PEP8. best, 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] 52+ messages in thread
* Re: [libre-riscv-dev] pyobjc, gnu objective-c and gnustep 2020-03-31 14:30 ` lkcl . @ 2020-03-31 16:16 ` Jacob Lifshay 0 siblings, 0 replies; 52+ messages in thread From: Jacob Lifshay @ 2020-03-31 16:16 UTC (permalink / raw) To: Libre-RISCV General Development; +Cc: Marie-Minerve Louërat On Tue, Mar 31, 2020, 07:30 lkcl . <luke.leighton@gmail.com> wrote: > On Tue, Mar 31, 2020 at 3:11 PM Jean-Paul Chaput > <Jean-Paul.Chaput@lip6.fr> wrote: > > some style that you may find bad. Paradox is that the "comma" at the > > start of line was showed to me by an early Python adopter back around > > 2000... > > sigh yes that was when i started using python. it predates common > usage of PEP8. > This is one of the reasons I like Rust: because they use the same consistent code style nearly everywhere and they have a tool (rustfmt) that automatically thoroughly formats everything in that style. Additionally, beginners are encouraged to use it. Even if there are some things I would do differently if I were designing the code style today, having consistency across all Rust code everywhere is a big enough benefit that I can live with some things that aren't quite how I like. I've had to deal with the gazillion different styles of C and C++ languages and teaching materials that actively try to get beginners to come up with their own style to their detriment. All it does is makes their code harder to read. 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] 52+ messages in thread
* Re: [libre-riscv-dev] extremely busy crowdsupply update started 2020-03-28 16:44 ` Jean-Paul Chaput 2020-03-28 17:13 ` Luke Kenneth Casson Leighton @ 2020-03-28 17:14 ` Luke Kenneth Casson Leighton 2020-03-28 23:16 ` Luke Kenneth Casson Leighton ` (2 subsequent siblings) 4 siblings, 0 replies; 52+ messages in thread From: Luke Kenneth Casson Leighton @ 2020-03-28 17:14 UTC (permalink / raw) To: Libre-RISCV General Development On Sat, Mar 28, 2020 at 4:45 PM Jean-Paul Chaput <Jean-Paul.Chaput@lip6.fr> wrote: > Anyway, this is very valuable input, and I will take it into > account as soon as I can, given my current workload. i really meant it, Jean-Paul, we have some budget available from NLNet to be able to help get some people in to help you out, here, ok? 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] 52+ messages in thread
* Re: [libre-riscv-dev] extremely busy crowdsupply update started 2020-03-28 16:44 ` Jean-Paul Chaput 2020-03-28 17:13 ` Luke Kenneth Casson Leighton 2020-03-28 17:14 ` [libre-riscv-dev] extremely busy crowdsupply update started Luke Kenneth Casson Leighton @ 2020-03-28 23:16 ` Luke Kenneth Casson Leighton 2020-03-29 13:23 ` Jock Tanner 2020-03-29 10:46 ` Jock Tanner 2020-03-29 16:05 ` Immanuel, Yehowshua U 4 siblings, 1 reply; 52+ messages in thread From: Luke Kenneth Casson Leighton @ 2020-03-28 23:16 UTC (permalink / raw) To: Libre-RISCV General Development, Jean-Paul Chaput, Jock Tanner On Sat, Mar 28, 2020 at 4:45 PM Jean-Paul Chaput <Jean-Paul.Chaput@lip6.fr> wrote: > > 3.2.3. Data types > > > > Python use duck typing, so you should avoid any direct type indication > > or querying in Python. > > > > Bad: Cfg.getParamInt('katana.vTracksReservedLocal').setInt(6) > > > > Good: Cfg['katana.vTracksReservedLocal'] = 6 sorted. jean-paul feel free (after jock's review and highly likely automatic reaction to put code-comments in it) to cut/paste the Config class into coriolis2 somewhere. hypothetically it's possible to create a nested pseudo-class which does away with the need for the conversion of "." to "_" however i honestly feel it's overkill: underscore looks perfectly fine to me. btw please do fix the spelling of "edgelength" :) at least provide both names for the same param? https://git.libre-riscv.org/?p=soclayout.git;a=commitdiff;h=81283a7462a0623cb8b5f603be5fd96117595081 https://git.libre-riscv.org/?p=soclayout.git;a=blob;f=experiments7/utils.py;h=60057f63810942bcfce160234db1c9eafe0ba5ba;hb=81283a7462a0623cb8b5f603be5fd96117595081#l320 https://git.libre-riscv.org/?p=soclayout.git;a=blob;f=experiments7/doAlu16.py;h=1c1b61605ec9422ce9e88af57501fdbe6d9ac197;hb=81283a7462a0623cb8b5f603be5fd96117595081#l17 17 def coriolis_setup(): 18 with Config(Cfg.Parameter.Priority.UserFile) as cfg: 19 cfg.misc_catchCore = False 20 cfg.misc_info = False 21 cfg.misc_paranoid = False 22 cfg.misc_bug = False 23 cfg.misc_logMode = True 24 cfg.misc_verboseLevel1 = True 25 cfg.misc_verboseLevel2 = True 26 cfg.etesian_effort = 2 27 cfg.etesian_spaceMargin = "20.0%" 28 cfg.etesian_aspectRatio = "100.0%" 29 cfg.etesian_uniformDensity = True 30 cfg.anabatic_edgeLenght = 24 31 cfg.anabatic_edgeWidth = 8 32 cfg.anabatic_topRoutingLayer = 'METAL5' 33 cfg.katana_searchHalo = 30 34 cfg.katana_eventsLimit = 1000000 35 cfg.katana_hTracksReservedLocal = 7 36 cfg.katana_vTracksReservedLocal = 6 37 38 env = af.getEnvironment() 39 env.setCLOCK('^clk$|m_clock') 40 env.setPOWER('vdd') 41 env.setGROUND('vss') _______________________________________________ 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] 52+ messages in thread
* Re: [libre-riscv-dev] extremely busy crowdsupply update started 2020-03-28 23:16 ` Luke Kenneth Casson Leighton @ 2020-03-29 13:23 ` Jock Tanner 2020-03-29 13:46 ` Luke Kenneth Casson Leighton 0 siblings, 1 reply; 52+ messages in thread From: Jock Tanner @ 2020-03-29 13:23 UTC (permalink / raw) To: Luke Kenneth Casson Leighton, Libre-RISCV General Development, Jean-Paul Chaput Luke, I think this code won't always work as intended: p = Cfg.getParamInt(attr) # all params have a type if p.type == 'Enumerate': Cfg.getParamEnumerate(attr).setInt(val) else: Cfg.getParamInt(attr).setInt(val) If the parameter named 'attr' is already defined, 'p.type' will be set according to its type. But for undefined parameters 'p.type' will be what we ask for, i. e. always 'Int'. BTW I think it is useless to have a distinction between 'Int' and 'Enumerate' types, as well as between 'Double' and 'Percentage'. But it's another thing. On Sat, 2020-03-28 at 23:16 +0000, Luke Kenneth Casson Leighton wrote: > On Sat, Mar 28, 2020 at 4:45 PM Jean-Paul Chaput > <Jean-Paul.Chaput@lip6.fr> wrote: > > > 3.2.3. Data types > > > > > > Python use duck typing, so you should avoid any direct type > > > indication > > > or querying in Python. > > > > > > Bad: Cfg.getParamInt('katana.vTracksReservedLocal').setInt(6) > > > > > > Good: Cfg['katana.vTracksReservedLocal'] = 6 > > sorted. jean-paul feel free (after jock's review and highly likely > automatic reaction to put code-comments in it) to cut/paste the > Config > class into coriolis2 somewhere. > _______________________________________________ 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] 52+ messages in thread
* Re: [libre-riscv-dev] extremely busy crowdsupply update started 2020-03-29 13:23 ` Jock Tanner @ 2020-03-29 13:46 ` Luke Kenneth Casson Leighton 0 siblings, 0 replies; 52+ messages in thread From: Luke Kenneth Casson Leighton @ 2020-03-29 13:46 UTC (permalink / raw) To: Libre-RISCV General Development On Sun, Mar 29, 2020 at 2:23 PM Jock Tanner <tanner.of.kha@gmail.com> wrote: > > Luke, > > I think this code won't always work as intended: > > p = Cfg.getParamInt(attr) # all params have a type > if p.type == 'Enumerate': > Cfg.getParamEnumerate(attr).setInt(val) > else: > Cfg.getParamInt(attr).setInt(val) > > If the parameter named 'attr' is already defined, 'p.type' will be set > according to its type. But for undefined parameters 'p.type' will be > what we ask for, i. e. always 'Int'. yes i'm assuming that etesian.something is already pre-defined, and can be detected as being of type "Enumerate". 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] 52+ messages in thread
* Re: [libre-riscv-dev] extremely busy crowdsupply update started 2020-03-28 16:44 ` Jean-Paul Chaput ` (2 preceding siblings ...) 2020-03-28 23:16 ` Luke Kenneth Casson Leighton @ 2020-03-29 10:46 ` Jock Tanner 2020-03-29 11:22 ` Luke Kenneth Casson Leighton 2020-03-29 16:05 ` Immanuel, Yehowshua U 4 siblings, 1 reply; 52+ messages in thread From: Jock Tanner @ 2020-03-29 10:46 UTC (permalink / raw) To: Libre-RISCV General Development Hello Jean-Paul, Thank you for such a thorough answer. I'd be happy to help without taking too much of your time. I understand that you have a huge piece of work at your hands. It's great that other people getting themselves involved in Coriolis. On Sat, 2020-03-28 at 17:44 +0100, Jean-Paul Chaput wrote: > I'm not familiar with virtualenv and I don't understand how the > C++ Python modules can be separated from the Python extension > themselves. > Breaking things in multiple components introduce complexity that > you > must manage afterwards. I can see a lot of troubles when people > will > have mismatched versions of the C++ core and the PyPI extensions. > And lots of nigthmarish debug problems. > Native packages would be better, and can be done, once it is > stable > enough. virtualenv is a great asset for Python developer, and it strongly influences the ways that Python software is shipped. I'll try to elaborate. When building native packages we usually think of Python interpreter itself and required Python modules as system-wide dependencies with all the version restrictions that comes out of it. When our dependencies are few and their versions most probably matching those packaged for the OS, it's OK. When the Python-related part of the project grows, version mismatches becomes a hindrance. But Python is better than that! CPython itself with all its built-in components is totally independent of its position in the OS directory tree. It relies on its own, mostly FHS-compliant, directory tree, which is defined in runtime by PYTHONPATH environment variable. So 'virtualenv' and similar tools are created to manage multiple PYTHONPATH trees on user level, switch between them, aid pip with installing packages on them et c. If Python package can be installed in virtual environment, it becomes totally independent of system-wide Python packages and even the Python interpreter itself (using pyenv). It is very convenient for developers and users alike. That is why Python bindings are usually decoupled of their underlying programs or libraries. For example, lxml is installed separately of libxml2 and libxslt, but totally depends on them installed system-wide. Another implication is PYTHONPATH being FHS-like, that means literally every program can be built and installed in PYTHONPATH rather than anywhere else. For example, uwsgi is a Python application server, that has a CPython statically compiled into itself and thus could be shipped as a native OS package. But their creators have chosen another approach. They made it a pip package, and as such it relies on PYTHONPATH and supports virtualenv just for the sake of conveniency. Their pip package, in turn, can be included in any OS repository as a Python package by independent supporters. To summarize. If the project consists of a native part (C/C++) and a dynamic part (Python with C bindings), and native part can be used without dynamic part, then it makes sense to decouple them and package them separately: native part − as an OS package or a build script, and dynamic part − as the corresponding dynamic language infrastructure (pip/setuptools) suggests. It would introduce some overhead, but also add flexibility to the process. But if native and dynamic parts are inseparable from each other, it is better to just ship the whole thing as a pip package. AFAIK these approaches are prevalent in Python software development. > Not so fast here, we need a definition of "end users". In my lab, > the people using Coriolis are mostly ASIC people, that is > electrical > engineers. They use the minimal and simplest possible subset of any > programming language. > You may look at the relationship between C++ and SystmeC. SystemC > is comparable to nMigen but under the form of a C++ library. They > don't event tell them it's C++. SystemC is usually presented as a > language on it's own (sometimes they talk about C). > In fact, and this is a trend I've seen emerge with the rise of > FPGA > for some time, you have *two* kind of audience. > =20 > * Electrical engineers or guys comming "from the hardware", with > limited > programming skills. They describe their design as series of > blocks. > They want to tightly control how and what they generate. > * Computer Science types, or guys coming "from the software", with > advanced programming skills. They tend to see their design in > term > of classes and functions, with lot of implicit mechanisms. > Typical example is Chisel or SpinalHDL. > > At this point I have no clear answer about what the "best" language > would be. But I can tell you for sure that many "hardware guys" are > literally repelled by languages like Chisel. > It's a discussion we are currently having at the lab. Like the > one > that did take place in this list a little while ago. > =20 Both Chisel and SpinalHDL are syntactically derived from Scala. Scala is a younger, a bit less scary sibling of Haskell. Haskell can scare the shit out of every software engineer except those with strong mathematical background. So I suggest it's not the best practices that repells “hardware guys”, but a careless introduction to functional approach in programming. > My python interface allow to mirror in Python > the C++ function overload, but Python only allows one set of > parameters, is that true or I'm lagging on Python features again? > So how to describe a function with more than one parameter set? As a function with optional parameters. What we have now: class Box(object): def __init__(self, *args, **kwargs): # real signature unknown pass What we could have with only positional arguments: class Box(object): def __init__(self, x1=None, y1=None, x2=None, y2=None): """ Creates a box of a given shape. If all parameters are omitted, creates an empty box. :param x1: starting horizontal offset, :param x1: starting vertical offset, :param x1: horizontal limit, :param x1: vertical limit, :return: Box object. """ pass This is as neat as it can be in Python 2, but it doesn't account for Point or Box arguments. From Python perspective, the fact that the first positional argument can be either a single coordinate, a point, or a box means variable reuse, and it is bad for readability. But nethertheless we can account for that in our docstring: class Box(object): def __init__(self, x1=None, y1=None, x2=None, y2=None): """ Creates a box of a given shape. If all parameters are omitted, creates an empty box. :param x1: starting horizontal offset, or starting point, or another box to copy, :param x1: starting vertical offset, or limiting point, :param x1: horizontal limit, :param x1: vertical limit, :return: Box object. """ pass With Python 3.4+ we could get much better results with typing module and Union[]. But with Python 2 without mypy that's it. > Quite the opposite, I do think style is important. The goal of > style > is readability and it is mine. But I don't think you can say that > there > is *one* good style and all others are bad. And even the reference > style > may evolve... It is easy to slip from "the style I'm accustomed to" > and > "the right style". I understand the advantages of using a style > shared > by many peoples, but I won't blindly comply (I'm both French and a > bit > stubborn). I will try to find time to read the PEP8, but I have a > lot > of work to do... > I've already seen this debate about C++ coding, and there are > definetely good and bad styles (or lack of) but I won't say there > is > "the good style". Among good styles, there are different tradeoffs > that may or may not suits you. I can't completely agree with you on this subject, Jean-Paul. While other languages have different style guides that evolved significantly during their lifetimes, PEP 8 is literally the one and only Python style guide for the last 19 years, and it has never changed, only extended once to account for new language features. Other style guides (Google, Khan Academy) only extend PEP 8 and other PEPs, but never overrule them. > Maybe it has changed in the company world, but for what I've seen > in the ASIC world, code cleanliness is still a long way home... > But again, it may be different company we are talking about. > I talk of Cadence/Mentor/Synopsys, if you have the opportunity, > take a look. Can I really see the code you mention, or is it under NDA? The first thing that came to mind was MyHDL [1]. I think their code is quite clean and idiomatic. > A last reflexion about PyCharm, it is very well for people working > only on Python code. But for my part, I edit C++, C, Python, ReST, > cmake, LaTeX, Yaml and whatnot, so I use Emacs (vim could also do). > It would be inefficient to have one IDE/editor per language. Speaking of JetBrains products, Pycharm is indeed not suited for C/C++ development. CLion, on the other hand, has a Python plugin that has all the features of Pycharm CE, and also a first-class cmake support. I tried CLion at a small C project, and it went perfect. But alas, CLion is a non-free product. [2] Now if I were tasked with setting up an environment for long-scale hybrid C/C++/Python development I would try Eclipse with CDT and PyDev plugins. It may lack a bit in features and usability, but it's free. As for other formats like reST, JSON, LaTeX et c., all the IDEs handle them well either out of the box or via plugins. As for Emacs, I've read some posts [3] and watched some videos, and I must say I'm not impressed. It may seem from the description that all the plugins do a decent job, but the whole system completely lacks consciousness, or you may call it multitasking abilities, and the screen is very inexpressive. The editor just reacts on keystrokes, and that's all. Like you're supposed to manually start syntax check, style check, static analysis. Then fix problems and start again, and again. It is really looks tedious, and boring, and error-prone. On the contrast, when I open a file in Pycharm, it immediately starts all the checks on it and gradually (it may take a second on a decent machine) highlights all the real or possible problems in the background. Critical things are bright red. Syntax errors. Uninitialized variables. Unresolved imports. Non-criticals are pale yellow or greyish. Call arguments not matching callee's signatures. Variables that may be uninitialized. Unused code. Style problems. Human language syntax errors. I can scroll, type, switch between files, and still I see all the results of this background work simultaneously. Eclipse's PyDev can also do static check while you type [4], but the list of possible warnings seems shorter than Pycharm's, and the result is less esthetically pleasing for my taste. So, Jean-Paul, I would really like you to try either IDE on a real code and tell me what you think. [1] https://github.com/myhdl/myhdl/ [2] https://intellij-support.jetbrains.com/hc/en-us/community/posts/115000477130-How-to-handle-a-mixed-Python-C-C-project [3] https://www.fullstackpython.com/emacs.html [4] https://www.pydev.org/manual_adv_code_analysis.html _______________________________________________ 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] 52+ messages in thread
* Re: [libre-riscv-dev] extremely busy crowdsupply update started 2020-03-29 10:46 ` Jock Tanner @ 2020-03-29 11:22 ` Luke Kenneth Casson Leighton 0 siblings, 0 replies; 52+ messages in thread From: Luke Kenneth Casson Leighton @ 2020-03-29 11:22 UTC (permalink / raw) To: Libre-RISCV General Development On Sun, Mar 29, 2020 at 11:46 AM Jock Tanner <tanner.of.kha@gmail.com> wrote: > On Sat, 2020-03-28 at 17:44 +0100, Jean-Paul Chaput wrote: > > At this point I have no clear answer about what the "best" language > > would be. But I can tell you for sure that many "hardware guys" are > > literally repelled by languages like Chisel. > > It's a discussion we are currently having at the lab. Like the > > one > > that did take place in this list a little while ago. > > =20 > > Both Chisel and SpinalHDL are syntactically derived from Scala. Scala > is a younger, a bit less scary sibling of Haskell. Haskell can scare > the shit out of every software engineer except those with strong > mathematical background. So I suggest it's not the best practices that > repells “hardware guys”, but a careless introduction to functional > approach in programming. that, and the fact that the rocket-chip developers (from Berkeley) claimed to "reduce code size significantly" in the two following ways: 1. pretty much absolutely f***-all in the way of comments. 2. make heavily depth-nested use of classes and mix-ins [with ZERO documentation]. the first major exposure to a real-world industry-class processor written with the Chisel system, and it's one of the worst (best) introductions on how *never* to write (un)maintainable (un)useable code i've seen in 43 years of programming, with the exception of some hilarious perl and php scripts. i'd _really like_ to give you good examples of code written in Chisel: i can't. the more important thing, than Chisel, is, as Jock points out: scala simply isn't popular. https://www.infoworld.com/article/3270626/python-scala-climb-the-ranks-of-language-popularity.html http://pypl.github.io/PYPL.html scala remains at 0.97% - less than one percent - by way of how pupular language tutorials are searched for. python on the other hand is *right at the top* - with a whopping 30%. so i know you picked SpinalHDL for vexriscv: https://github.com/SpinalHDL/VexRiscv however, i would be particularly interested to hear your thoughts on, for example this: https://github.com/SpinalHDL/VexRiscv/blob/master/src/main/scala/vexriscv/plugin/MulSimplePlugin.scala versus this: https://github.com/lambdaconcept/minerva/blob/master/minerva/units/multiplier.py just on an *instinctive* level, which one is easier to read? from a style perspective: *six* levels of indentation-bracing? really?? and using "=" to indicate type-declaration (val aSigned,bSigned = Bool), where every other language uses it for assigmnent? and the "implicit return result" by assigning to a variable with the same name as the function? i mean, they should have made it more difficult than that. it's just... flat-out.... NO. anyone writing code in this language is *deliberately* making their life hell, and, worse, if the chip becomes a commercial success (or an academic success) the insanely high barrier to entry will make it extremely costly to find programmers. ... lesson learned? :) 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] 52+ messages in thread
* Re: [libre-riscv-dev] extremely busy crowdsupply update started 2020-03-28 16:44 ` Jean-Paul Chaput ` (3 preceding siblings ...) 2020-03-29 10:46 ` Jock Tanner @ 2020-03-29 16:05 ` Immanuel, Yehowshua U 2020-03-29 16:26 ` Luke Kenneth Casson Leighton 4 siblings, 1 reply; 52+ messages in thread From: Immanuel, Yehowshua U @ 2020-03-29 16:05 UTC (permalink / raw) To: Libre-RISCV General Development It sounds like Coriolis Python-C++ API isn’t the best. I know this isn’t super easy to do, even with help from tools like Swig. HOWEVER, given that we have direct access to Jean Paul - that’s a big benefit at the moment. 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] 52+ messages in thread
* Re: [libre-riscv-dev] extremely busy crowdsupply update started 2020-03-29 16:05 ` Immanuel, Yehowshua U @ 2020-03-29 16:26 ` Luke Kenneth Casson Leighton 0 siblings, 0 replies; 52+ messages in thread From: Luke Kenneth Casson Leighton @ 2020-03-29 16:26 UTC (permalink / raw) To: Libre-RISCV General Development On Sun, Mar 29, 2020 at 5:05 PM Immanuel, Yehowshua U <yimmanuel3@gatech.edu> wrote: > > It sounds like Coriolis Python-C++ API isn’t the best. I know this isn’t super easy to do, even with help from tools like Swig. > > HOWEVER, given that we have direct access to Jean Paul - that’s a big benefit at the moment. basically, yes. the alternatives (which do exist) are... inconvenient (language-wise), and we don't have a working relationship with them. and, it's 20 years old, and silicon-proven. 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] 52+ messages in thread
* Re: [libre-riscv-dev] extremely busy crowdsupply update started 2020-03-26 21:03 [libre-riscv-dev] extremely busy crowdsupply update started Luke Kenneth Casson Leighton ` (3 preceding siblings ...) 2020-03-28 8:09 ` Jock Tanner @ 2020-03-28 18:07 ` Michael Nolan 2020-03-28 18:33 ` Luke Kenneth Casson Leighton 2020-03-31 11:17 ` Luke Kenneth Casson Leighton 2020-03-29 3:14 ` Immanuel, Yehowshua U 5 siblings, 2 replies; 52+ messages in thread From: Michael Nolan @ 2020-03-28 18:07 UTC (permalink / raw) To: Luke Kenneth Casson Leighton, Libre-RISCV General Development On 3/26/20 5:03 PM, Luke Kenneth Casson Leighton wrote: > > if you prefer just reply to this message with a paragraph or two and i > will cut/paste it? > > l. The decoder we have is based on that of IBM's [microwatt reference design](https://github.com/antonblanchard/microwatt). Because microwatt's decoder is quite regular, consisting of a bunch of large switch statements returning fields of a struct, we elected not to pursue a direct conversion of the VHDL to nmigen. Instead, we extracted the information in the switch statements into several CSV tables, and leveraged nmigen to construct the decoder from these tables. We applied the same technique to extract the subfields (register numbers, branch offset, immediates, etc.) from the instruction, where Luke converted the information in the POWER ISA specification to text, and wrote a module in python to extract those fields from an instruction. To test the decoder, we initially verified it against the tables we extracted, and manually against the power ISA specification. Later however, we came up with the idea of verifying the decoder against the output of the GNU assembler. This is done by selecting an instruction type (integer reg/reg, integer immediate, load store, etc), and randomly selecting the opcode, registers, immediates, and other operands. We then feed this instruction to GNU AS to assemble, and then the assembled instruction is sent to our decoder. From this, we can then verify that the output of the decoder matches what was generated earlier. We also explored using a similar idea to test the functionality of the entire SOC. By using the [QEMU](https://www.qemu.org/) powerpc emulator, we can compare the execution of our SOC against that of the emulator to verify that our decoder and backend are working correctly. We would write snippets of test code (or potentially randomly generate instructions) and send the resulting binary to both the SOC and QEMU. We would then simulate our SOC until it was finished executing instructions, and use Qemu's gdb interface to do the same. We would then use Qemu's gdb interface to compare the register file and memory with that of our SOC to verify that it is working correctly. I did some experimentation using this technique to verify a rudimentary simulator of the SOC backend, and it seemed to work quite well. _______________________________________________ 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] 52+ messages in thread
* Re: [libre-riscv-dev] extremely busy crowdsupply update started 2020-03-28 18:07 ` Michael Nolan @ 2020-03-28 18:33 ` Luke Kenneth Casson Leighton 2020-03-31 11:17 ` Luke Kenneth Casson Leighton 1 sibling, 0 replies; 52+ messages in thread From: Luke Kenneth Casson Leighton @ 2020-03-28 18:33 UTC (permalink / raw) To: Libre-RISCV General Development On Sat, Mar 28, 2020 at 6:07 PM Michael Nolan <mtnolan2640@gmail.com> wrote: > The decoder we have is based on that of IBM's [microwatt reference > design](https://github.com/antonblanchard/microwatt). Because fantastic, threw it in the mix. you actually have git clone read/write access to this https://git.libre-riscv.org/?p=crowdsupply.git;a=summary could you see if you can throw in a couple more links or so, at least one to the source code? i added one to the isatables page. oh btw i am mowing my way through the pseudo-code sections of the PDF... going cross-eyed here.. _______________________________________________ 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] 52+ messages in thread
* Re: [libre-riscv-dev] extremely busy crowdsupply update started 2020-03-28 18:07 ` Michael Nolan 2020-03-28 18:33 ` Luke Kenneth Casson Leighton @ 2020-03-31 11:17 ` Luke Kenneth Casson Leighton 1 sibling, 0 replies; 52+ messages in thread From: Luke Kenneth Casson Leighton @ 2020-03-31 11:17 UTC (permalink / raw) To: Libre-RISCV General Development --- crowd-funded eco-conscious hardware: https://www.crowdsupply.com/eoma68 On Sat, Mar 28, 2020 at 6:07 PM Michael Nolan <mtnolan2640@gmail.com> wrote: > > On 3/26/20 5:03 PM, Luke Kenneth Casson Leighton wrote: > > > > if you prefer just reply to this message with a paragraph or two and i > > will cut/paste it? > > > > l. > > The decoder we have is based on that of IBM's [microwatt reference > design](https://github.com/antonblanchard/microwatt). spotted the links, thanks michael. _______________________________________________ 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] 52+ messages in thread
* Re: [libre-riscv-dev] extremely busy crowdsupply update started 2020-03-26 21:03 [libre-riscv-dev] extremely busy crowdsupply update started Luke Kenneth Casson Leighton ` (4 preceding siblings ...) 2020-03-28 18:07 ` Michael Nolan @ 2020-03-29 3:14 ` Immanuel, Yehowshua U 2020-03-29 3:15 ` Immanuel, Yehowshua U 2020-03-31 11:26 ` Luke Kenneth Casson Leighton 5 siblings, 2 replies; 52+ messages in thread From: Immanuel, Yehowshua U @ 2020-03-29 3:14 UTC (permalink / raw) To: Libre-RISCV General Development > * yehowshua if you could write a paragraph or two about CREATE-X Hi Luke, Crowd Supply Update ================= Yehowshua is a student at Georgia Tech currently pursuing a Masters in Computer Engineering - to graduate this summer. He had started working on LibreSOC in December and wanted to to get LibreSOC more funding so I could work on it full time. He originally asked if the ECE Chair at Georgia Tech would be willing to fund an in-department effort to deliver an SOC in collaboration with LibreSOC(an idea to which he was quite receptive). Through Luke, Yehowshua got in contact with Chistopher Klaus who suggested Yehowshua should look into Klaus's startup accelerator program Create-X and perhaps consider taking LibreSOC down the startup route. Robert Rhinehart, who had funded LibreSOC a little in the past also suggested that Yehowshua incorporate LibreSOC with help from Create-X and said he would be willing to be a seed investor. All this happened by February. As of March, Yehowshua has been talking with Robert about what type of customers would be interested in LibreSOC. Robert is largely interested in biological applications. Yehowshua also had a couple meetings with Rahul from Create-X. Yehowshua has started the incorporation of LibreSOC. The parent company will probably be called Systèmes-Libres with LibreSOC simply being one of the products we will offer. Yehowshua also attended HPCA in late February and had mentioned LIbreSOC during his talk. People seemed to find the idea quite interesting He will later be speaking with some well know startup lawyers in have an HQ in Atlanta to discuss business related things such as S Corps, C corps, taxes, wages, equity etc… Yehowshua plans for Systèmes-Libres to hire full time employees. Part time work on Libre-SOC will still be possible through donations and support from NL Net and companies like purism. Currently, Yehowshua plans to take the Create-X summer launch program and fund Systèmes-Libres by August. Full time wages would probably be set around 100k USD. _______________________________________________ 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] 52+ messages in thread
* Re: [libre-riscv-dev] extremely busy crowdsupply update started 2020-03-29 3:14 ` Immanuel, Yehowshua U @ 2020-03-29 3:15 ` Immanuel, Yehowshua U 2020-03-31 11:26 ` Luke Kenneth Casson Leighton 1 sibling, 0 replies; 52+ messages in thread From: Immanuel, Yehowshua U @ 2020-03-29 3:15 UTC (permalink / raw) To: Libre-RISCV General Development > He will later be speaking with some well know startup lawyers in have an HQ in Atlanta to discuss business related ** that have _______________________________________________ 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] 52+ messages in thread
* Re: [libre-riscv-dev] extremely busy crowdsupply update started 2020-03-29 3:14 ` Immanuel, Yehowshua U 2020-03-29 3:15 ` Immanuel, Yehowshua U @ 2020-03-31 11:26 ` Luke Kenneth Casson Leighton 2020-03-31 18:09 ` Luke Kenneth Casson Leighton 1 sibling, 1 reply; 52+ messages in thread From: Luke Kenneth Casson Leighton @ 2020-03-31 11:26 UTC (permalink / raw) To: Libre-RISCV General Development On Sun, Mar 29, 2020 at 4:14 AM Immanuel, Yehowshua U <yimmanuel3@gatech.edu> wrote: > Yehowshua is a student at Georgia Tech currently pursuing a Masters in Computer Engineering - to graduate this summer. He had started working on LibreSOC in December and wanted to to get LibreSOC more funding so I could work on it full time. added. robert's given us permission to mention his support of our project. i implicitly understood that due to his high-profile online presence that i couldn't say that he had been supporting us, particularly with the ZC706 and the improvements to vga_lcd. 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] 52+ messages in thread
* Re: [libre-riscv-dev] extremely busy crowdsupply update started 2020-03-31 11:26 ` Luke Kenneth Casson Leighton @ 2020-03-31 18:09 ` Luke Kenneth Casson Leighton 2020-03-31 18:14 ` Luke Kenneth Casson Leighton 2020-03-31 18:35 ` [libre-riscv-dev] extremely busy crowdsupply update started Cole Poirier 0 siblings, 2 replies; 52+ messages in thread From: Luke Kenneth Casson Leighton @ 2020-03-31 18:09 UTC (permalink / raw) To: Libre-RISCV General Development build servers. https://git.libre-riscv.org/?p=crowdsupply.git;a=blob;f=updates/023_2020mar26_decoder_emulator_started.mdwn;h=1fd0606f9a2be89dd2393cf569b87211092724fb;hb=3e5f9725d044001aceaf95482fcc101bdfa854ad#l785 could someone write something about the build servers? thx. 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] 52+ messages in thread
* Re: [libre-riscv-dev] extremely busy crowdsupply update started 2020-03-31 18:09 ` Luke Kenneth Casson Leighton @ 2020-03-31 18:14 ` Luke Kenneth Casson Leighton 2020-04-01 1:51 ` [libre-riscv-dev] name change announcement on crowdsupply Jacob Lifshay 2020-03-31 18:35 ` [libre-riscv-dev] extremely busy crowdsupply update started Cole Poirier 1 sibling, 1 reply; 52+ messages in thread From: Luke Kenneth Casson Leighton @ 2020-03-31 18:14 UTC (permalink / raw) To: Libre-RISCV General Development jacob the example's a bit big, it's the kind of thing that would be great in its own update (which we move it to) with a full explanation. could you put it in an "example" file in a repo somewhere, link to it, and say "we'll do an update about the IR later"? 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] 52+ messages in thread
* [libre-riscv-dev] name change announcement on crowdsupply 2020-03-31 18:14 ` Luke Kenneth Casson Leighton @ 2020-04-01 1:51 ` Jacob Lifshay 2020-04-01 1:52 ` Jacob Lifshay 2020-04-01 10:57 ` Luke Kenneth Casson Leighton 0 siblings, 2 replies; 52+ messages in thread From: Jacob Lifshay @ 2020-04-01 1:51 UTC (permalink / raw) To: Libre-RISCV General Development On Tue, Mar 31, 2020 at 11:15 AM Luke Kenneth Casson Leighton <lkcl@lkcl.net> wrote: > > jacob the example's a bit big, it's the kind of thing that would be > great in its own update (which we move it to) with a full explanation. > could you put it in an "example" file in a repo somewhere, link to it, > and say "we'll do an update about the IR later"? I moved the example code to the Kazan repo. I did notice that we *forgot* to announce we changed our name from Libre-RISCV to Libre-SOC on any crowdsupply updates -- we should do that and change the crowdsupply description page to match. I also updated the latest update to consistently spell Libre-SOC the way we decided on: Libre-SOC. 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] 52+ messages in thread
* Re: [libre-riscv-dev] name change announcement on crowdsupply 2020-04-01 1:51 ` [libre-riscv-dev] name change announcement on crowdsupply Jacob Lifshay @ 2020-04-01 1:52 ` Jacob Lifshay 2020-04-01 10:57 ` Luke Kenneth Casson Leighton 1 sibling, 0 replies; 52+ messages in thread From: Jacob Lifshay @ 2020-04-01 1:52 UTC (permalink / raw) To: Libre-RISCV General Development On Tue, Mar 31, 2020 at 6:51 PM Jacob Lifshay <programmerjake@gmail.com> wrote: > I did notice that we *forgot* to announce we changed our name from > Libre-RISCV to Libre-SOC on any crowdsupply updates -- we should do > that and change the crowdsupply description page to match. we should also update our page on NLNet. 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] 52+ messages in thread
* Re: [libre-riscv-dev] name change announcement on crowdsupply 2020-04-01 1:51 ` [libre-riscv-dev] name change announcement on crowdsupply Jacob Lifshay 2020-04-01 1:52 ` Jacob Lifshay @ 2020-04-01 10:57 ` Luke Kenneth Casson Leighton 2020-04-01 17:31 ` Jacob Lifshay 1 sibling, 1 reply; 52+ messages in thread From: Luke Kenneth Casson Leighton @ 2020-04-01 10:57 UTC (permalink / raw) To: Libre-RISCV General Development On Wed, Apr 1, 2020 at 2:51 AM Jacob Lifshay <programmerjake@gmail.com> wrote: > On Tue, Mar 31, 2020 at 11:15 AM Luke Kenneth Casson Leighton > <lkcl@lkcl.net> wrote: > > > > jacob the example's a bit big, it's the kind of thing that would be > > great in its own update (which we move it to) with a full explanation. > > could you put it in an "example" file in a repo somewhere, link to it, > > and say "we'll do an update about the IR later"? > > I moved the example code to the Kazan repo. great > I did notice that we *forgot* to announce we changed our name from > Libre-RISCV to Libre-SOC on any crowdsupply updates -- we should do > that and change the crowdsupply description page to match. that'll be tricky, the url has to stay the same. changing description, yes should be ok. > I also updated the latest update to consistently spell Libre-SOC the > way we decided on: Libre-SOC. ah good. 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] 52+ messages in thread
* Re: [libre-riscv-dev] name change announcement on crowdsupply 2020-04-01 10:57 ` Luke Kenneth Casson Leighton @ 2020-04-01 17:31 ` Jacob Lifshay 2020-04-01 17:44 ` Luke Kenneth Casson Leighton 0 siblings, 1 reply; 52+ messages in thread From: Jacob Lifshay @ 2020-04-01 17:31 UTC (permalink / raw) To: Libre-RISCV General Development On Wed, Apr 1, 2020, 03:58 Luke Kenneth Casson Leighton <lkcl@lkcl.net> wrote: > On Wed, Apr 1, 2020 at 2:51 AM Jacob Lifshay <programmerjake@gmail.com> > wrote: > > > On Tue, Mar 31, 2020 at 11:15 AM Luke Kenneth Casson Leighton > > <lkcl@lkcl.net> wrote: > > > > > > jacob the example's a bit big, it's the kind of thing that would be > > > great in its own update (which we move it to) with a full explanation. > > > could you put it in an "example" file in a repo somewhere, link to it, > > > and say "we'll do an update about the IR later"? > > > > I moved the example code to the Kazan repo. > > great > > > I did notice that we *forgot* to announce we changed our name from > > Libre-RISCV to Libre-SOC on any crowdsupply updates -- we should do > > that and change the crowdsupply description page to match. > > that'll be tricky, the url has to stay the same. changing > description, yes should be ok. > Wouldn't it work for the old url to just redirect to the new one? We can ask if they support that. 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] 52+ messages in thread
* Re: [libre-riscv-dev] name change announcement on crowdsupply 2020-04-01 17:31 ` Jacob Lifshay @ 2020-04-01 17:44 ` Luke Kenneth Casson Leighton 0 siblings, 0 replies; 52+ messages in thread From: Luke Kenneth Casson Leighton @ 2020-04-01 17:44 UTC (permalink / raw) To: Libre-RISCV General Development On Wed, Apr 1, 2020 at 6:31 PM Jacob Lifshay <programmerjake@gmail.com> wrote: > Wouldn't it work for the old url to just redirect to the new one? We can > ask if they support that. will get a chance soon. 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] 52+ messages in thread
* Re: [libre-riscv-dev] extremely busy crowdsupply update started 2020-03-31 18:09 ` Luke Kenneth Casson Leighton 2020-03-31 18:14 ` Luke Kenneth Casson Leighton @ 2020-03-31 18:35 ` Cole Poirier 2020-03-31 23:11 ` Cole Poirier 1 sibling, 1 reply; 52+ messages in thread From: Cole Poirier @ 2020-03-31 18:35 UTC (permalink / raw) To: Libre-RISCV General Development; +Cc: Libre-RISCV General Development On Mar 31 2020, at 11:09 am, Luke Kenneth Casson Leighton <lkcl@lkcl.net> wrote: > build servers. > https://git.libre-riscv.org/?p=crowdsupply.git;a=blob;f=updates/023_2020mar26_decoder_emulator_started.mdwn;h=1fd0606f9a2be89dd2393cf569b87211092724fb;hb=3e5f9725d044001aceaf95482fcc101bdfa854ad#l785 > > could someone write something about the build servers? > > thx. > > l. Sure I'll put in a short blurb and Jacob can add to it if he thinks it necessary. Do I have the necessary access to the crowdsupply git repo? Cole _______________________________________________ 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] 52+ messages in thread
* Re: [libre-riscv-dev] extremely busy crowdsupply update started 2020-03-31 18:35 ` [libre-riscv-dev] extremely busy crowdsupply update started Cole Poirier @ 2020-03-31 23:11 ` Cole Poirier 2020-04-01 10:08 ` Luke Kenneth Casson Leighton 0 siblings, 1 reply; 52+ messages in thread From: Cole Poirier @ 2020-03-31 23:11 UTC (permalink / raw) To: Libre-RISCV General Development; +Cc: Libre-RISCV General Development On Mar 31 2020, at 11:35 am, Cole Poirier <colepoirier@gmail.com> wrote: > On Mar 31 2020, at 11:09 am, Luke Kenneth Casson Leighton > <lkcl@lkcl.net> wrote: >> could someone write something about the build servers? >> >> thx. >> >> l. > > Sure I'll put in a short blurb and Jacob can add to it if he thinks it > necessary. Do I have the necessary access to the crowdsupply git repo? > > Cole Sorry it turns out I don't have push access to the crowdsupply repo. Luke, may I request push access to the crowdsupply repo. I remember that in an email a few days ago you told I should give you a name for the repo I want created for the environment setup scripts. Can you create and also grant me push access to a repository named dev-env-setup? Unless you can think of a more appropriate name. Cole _______________________________________________ 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] 52+ messages in thread
* Re: [libre-riscv-dev] extremely busy crowdsupply update started 2020-03-31 23:11 ` Cole Poirier @ 2020-04-01 10:08 ` Luke Kenneth Casson Leighton 2020-04-01 10:54 ` Luke Kenneth Casson Leighton 0 siblings, 1 reply; 52+ messages in thread From: Luke Kenneth Casson Leighton @ 2020-04-01 10:08 UTC (permalink / raw) To: Libre-RISCV General Development On Wednesday, April 1, 2020, Cole Poirier <colepoirier@gmail.com> wrote: > On Mar 31 2020, at 11:35 am, Cole Poirier <colepoirier@gmail.com> wrote: > > On Mar 31 2020, at 11:09 am, Luke Kenneth Casson Leighton > > <lkcl@lkcl.net> wrote: > >> could someone write something about the build servers? > >> > >> thx. > >> > >> l. > > > > Sure I'll put in a short blurb and Jacob can add to it if he thinks it > > necessary. Do I have the necessary access to the crowdsupply git repo? > > > > Cole > > Sorry it turns out I don't have push access to the crowdsupply repo. > Luke, may I request push access to the crowdsupply repo. ok. > I remember that > in an email a few days ago you told I should give you a name for the > repo I want created for the environment setup scripts. Can you create > and also grant me push access to a repository named dev-env-setup? > Unless you can think of a more appropriate name. nope sounds great. -- --- 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] 52+ messages in thread
* Re: [libre-riscv-dev] extremely busy crowdsupply update started 2020-04-01 10:08 ` Luke Kenneth Casson Leighton @ 2020-04-01 10:54 ` Luke Kenneth Casson Leighton 0 siblings, 0 replies; 52+ messages in thread From: Luke Kenneth Casson Leighton @ 2020-04-01 10:54 UTC (permalink / raw) To: Libre-RISCV General Development On Wed, Apr 1, 2020 at 11:08 AM Luke Kenneth Casson Leighton <lkcl@lkcl.net> wrote: >> >> Sorry it turns out I don't have push access to the crowdsupply repo. >> Luke, may I request push access to the crowdsupply repo. > > > ok. done just edit the .git/config file change the url to one that includes gitolite3. >> >> I remember that >> in an email a few days ago you told I should give you a name for the >> repo I want created for the environment setup scripts. Can you create >> and also grant me push access to a repository named dev-env-setup? done also. 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] 52+ messages in thread
end of thread, back to index Thread overview: 52+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2020-03-26 21:03 [libre-riscv-dev] extremely busy crowdsupply update started Luke Kenneth Casson Leighton 2020-03-27 5:49 ` Jacob Lifshay 2020-03-27 8:47 ` Luke Kenneth Casson Leighton 2020-03-27 21:31 ` Jacob Lifshay 2020-03-27 21:36 ` Luke Kenneth Casson Leighton 2020-03-31 4:18 ` Jacob Lifshay 2020-03-27 14:39 ` Immanuel, Yehowshua U 2020-03-27 15:49 ` Luke Kenneth Casson Leighton 2020-03-27 16:35 ` Tobias Platen 2020-03-27 19:20 ` Luke Kenneth Casson Leighton 2020-03-27 21:29 ` Jacob Lifshay 2020-03-27 21:32 ` Luke Kenneth Casson Leighton 2020-03-28 11:52 ` Luke Kenneth Casson Leighton 2020-03-27 16:56 ` Michael Nolan 2020-03-27 19:21 ` Luke Kenneth Casson Leighton 2020-03-28 8:09 ` Jock Tanner 2020-03-28 10:02 ` Luke Kenneth Casson Leighton 2020-03-28 16:44 ` Jean-Paul Chaput 2020-03-28 17:13 ` Luke Kenneth Casson Leighton 2020-03-31 8:17 ` Jean-Paul Chaput 2020-03-31 9:31 ` Luke Kenneth Casson Leighton 2020-03-31 9:32 ` Luke Kenneth Casson Leighton 2020-03-31 9:38 ` [libre-riscv-dev] pyobjc, gnu objective-c and gnustep Luke Kenneth Casson Leighton 2020-03-31 11:42 ` lkcl . 2020-03-31 14:11 ` Jean-Paul Chaput 2020-03-31 14:30 ` lkcl . 2020-03-31 16:16 ` Jacob Lifshay 2020-03-28 17:14 ` [libre-riscv-dev] extremely busy crowdsupply update started Luke Kenneth Casson Leighton 2020-03-28 23:16 ` Luke Kenneth Casson Leighton 2020-03-29 13:23 ` Jock Tanner 2020-03-29 13:46 ` Luke Kenneth Casson Leighton 2020-03-29 10:46 ` Jock Tanner 2020-03-29 11:22 ` Luke Kenneth Casson Leighton 2020-03-29 16:05 ` Immanuel, Yehowshua U 2020-03-29 16:26 ` Luke Kenneth Casson Leighton 2020-03-28 18:07 ` Michael Nolan 2020-03-28 18:33 ` Luke Kenneth Casson Leighton 2020-03-31 11:17 ` Luke Kenneth Casson Leighton 2020-03-29 3:14 ` Immanuel, Yehowshua U 2020-03-29 3:15 ` Immanuel, Yehowshua U 2020-03-31 11:26 ` Luke Kenneth Casson Leighton 2020-03-31 18:09 ` Luke Kenneth Casson Leighton 2020-03-31 18:14 ` Luke Kenneth Casson Leighton 2020-04-01 1:51 ` [libre-riscv-dev] name change announcement on crowdsupply Jacob Lifshay 2020-04-01 1:52 ` Jacob Lifshay 2020-04-01 10:57 ` Luke Kenneth Casson Leighton 2020-04-01 17:31 ` Jacob Lifshay 2020-04-01 17:44 ` Luke Kenneth Casson Leighton 2020-03-31 18:35 ` [libre-riscv-dev] extremely busy crowdsupply update started Cole Poirier 2020-03-31 23:11 ` Cole Poirier 2020-04-01 10:08 ` Luke Kenneth Casson Leighton 2020-04-01 10:54 ` 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