*** midnight <midnight!~midnight@user/midnight> has quit IRC | 05:34 | |
*** midnight <midnight!~midnight@user/midnight> has joined #libre-soc | 05:35 | |
*** gnucode <gnucode!~gnucode@user/jab> has quit IRC | 06:35 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has quit IRC | 07:26 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@176.59.41.144> has joined #libre-soc | 07:28 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@176.59.41.144> has quit IRC | 09:42 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has joined #libre-soc | 09:42 | |
*** awygle <awygle!~quassel@2604:a880:2:d0::5380:3001> has quit IRC | 10:13 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has quit IRC | 10:20 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has joined #libre-soc | 10:20 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has quit IRC | 10:42 | |
*** octavius <octavius!~octavius@92.40.169.162.threembb.co.uk> has joined #libre-soc | 10:53 | |
*** sadoon[m] <sadoon[m]!~sadoonsou@2001:470:69fc:105::2:bab8> has quit IRC | 11:27 | |
*** programmerjake <programmerjake!~programme@2001:470:69fc:105::172f> has quit IRC | 11:29 | |
*** cesar <cesar!~cesar@2001:470:69fc:105::76c> has quit IRC | 11:29 | |
*** psydroid <psydroid!~psydroid@user/psydroid> has quit IRC | 11:29 | |
*** psydroid <psydroid!~psydroid@user/psydroid> has joined #libre-soc | 11:47 | |
*** Ritish <Ritish!~Ritish@27.5.158.155> has joined #libre-soc | 12:02 | |
Ritish | *lurks* =D | 12:06 |
---|---|---|
Ritish | Hello Hello! | 12:06 |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has joined #libre-soc | 12:09 | |
octavius | hi Ritish | 12:11 |
Ritish | Hello everyone | 12:12 |
Ritish | I'm Sai Ritish, y'all would've seen me through the mailing list already ^^ | 12:12 |
Ritish | I'm working with a few others at Object Automation, India. | 12:12 |
Ritish | Here to learn, understand and help develop LibreSoc Lite :) | 12:12 |
*** sadoon[m] <sadoon[m]!~sadoonsou@2001:470:69fc:105::2:bab8> has joined #libre-soc | 12:12 | |
Ritish | Thanks Luke for taking the effort to write such a long message in the mailing lists. | 12:13 |
Ritish | Oh Hello, octavius :) | 12:13 |
octavius | After New Year we'll be picking up on development, so the next few weeks is a good time to familiarise yourself with the wiki and the code repositories | 12:13 |
octavius | We'll likely have paid tasks that you could do (such as updating unit tests etc.), so an extra insentive :) | 12:14 |
octavius | (should've mentioned in the email, I'm Andrey btw) | 12:15 |
Ritish | Oh, that sounds more interesting o.o, gotta pick up my pace sooner than later then! | 12:15 |
Ritish | Good to know you Andrew! and thanks on all the work B) | 12:16 |
Ritish | also the reply on mailing lists ^^ | 12:17 |
octavius | Your welcome! It's good that you're interested. We need all the help we can get | 12:17 |
octavius | In regards to the SoC design, studying nMigen is *very* important. Have you done Verilog or VHDL before? | 12:18 |
Ritish | Yes sir, I have experience with verilog, I wouldnt say I'm a professional though. | 12:20 |
Ritish | Just some lab tasks and courses here and there | 12:20 |
octavius | When studying nMigen, you can easily compare with equivalent verilog, as well as yosys generated block diagrams. That learning nmigen wiki page shows how to do it. Make sure to always compare the three representations, and you'll catch on quickly | 12:23 |
Ritish | That's helpful! Will follow that, and if still something is unclear to me, I shall pop up in this chat haha | 12:24 |
sadoon[m] | Ritish: I guess you and I are on the same page then :p | 12:26 |
sadoon[m] | I'm also starting to learn nmigen | 12:26 |
Ritish | ahaha, nice to meet you sadoon[m]! Good luck to us! :3 | 12:29 |
sadoon[m] | Nice to meet you too :) | 12:30 |
*** programmerjake <programmerjake!~programme@2001:470:69fc:105::172f> has joined #libre-soc | 12:37 | |
*** Ritish <Ritish!~Ritish@27.5.158.155> has quit IRC | 12:39 | |
*** cesar <cesar!~cesar@2001:470:69fc:105::76c> has joined #libre-soc | 12:43 | |
*** Ritish <Ritish!~Ritish@2401:4900:6288:97e8:5d00:498d:107c:8f6b> has joined #libre-soc | 13:46 | |
*** Ritish <Ritish!~Ritish@202.131.158.114> has joined #libre-soc | 13:51 | |
Ritish | Hey | 13:54 |
Ritish | Is there a way to permanently stay here and not leave once i close a browser window :/ | 13:54 |
Ritish | or are logs the only way to catch up, hmm, interesting | 13:55 |
octavius | You can install an IRC client (for example HexChat). You also may need to register your nickname (if you haven't already). | 13:57 |
octavius | But the client must remain open if you want to stay online. Also have https://libre-soc.org/irclog/latest.log.html bookmarked (I have it as my home page) | 13:58 |
programmerjake | hi Ritish, i'm Jacob Lifshay | 13:59 |
programmerjake | you can also access the chat here via Matrix (if you prefer that over IRC): https://matrix.to/#/#libre-soc:libera.chat | 14:01 |
programmerjake | that link lets you pick from the list of Matrix clients, i'm using element | 14:02 |
programmerjake | if you use matrix, you don't need to have the client open to see old messages, though having the client running is definitely helpful if you want to be notified of new messages quickly | 14:09 |
Ritish | thanks Andrey ^^ | 14:31 |
Ritish | Hey Jacob :) | 14:33 |
Ritish | Thanks, I'll try that out as well! | 14:33 |
*** SaiRitishG[m] <SaiRitishG[m]!~gsritishm@2001:470:69fc:105::2:e2fa> has joined #libre-soc | 14:47 | |
*** sai <sai!~sai@202.131.158.114> has joined #libre-soc | 14:51 | |
*** Ritish <Ritish!~Ritish@202.131.158.114> has quit IRC | 14:54 | |
*** sai is now known as Ritish | 14:54 | |
*** Ritish85 <Ritish85!~Ritish@202.131.158.114> has joined #libre-soc | 15:02 | |
*** SaiRitishG[m] <SaiRitishG[m]!~gsritishm@2001:470:69fc:105::2:e2fa> has left #libre-soc | 15:03 | |
*** Ritish85 <Ritish85!~Ritish@202.131.158.114> has quit IRC | 15:03 | |
Ritish | Alright, sorry on all those notifications peeps | 15:04 |
Ritish | But, I think I've got this now :) | 15:04 |
Ritish | I feel pretty comfortable with HexChat | 15:05 |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has quit IRC | 15:43 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@176.59.170.62> has joined #libre-soc | 15:43 | |
sadoon[m] | I'm finding the verilog output files from nmigen hard to read :( | 16:02 |
sadoon[m] | They include a lot of "src" directives and $ variables | 16:03 |
programmerjake | yeah, they're not intended to be readable, they're intended to work. | 16:04 |
programmerjake | $N variables are temporaries inserted by nmigen or yosys | 16:04 |
sadoon[m] | What's the best way to understand the flow of a design written in nmigen? | 16:05 |
programmerjake | simulate it or use yosys's show command | 16:06 |
programmerjake | e.g. yosys <<<"read_rtlil my_file.il; prep; show -stretch -colors 1" | 16:07 |
sadoon[m] | The output is verilog so I'll have to learn how to compile into "il" first then | 16:08 |
programmerjake | no, the output is rtlil, verilog is generated by yosys translating rtlil to verilog | 16:08 |
sadoon[m] | Hmm the example code did not generate rtlil because it's written to do verilog | 16:09 |
sadoon[m] | I'll look in the example repo | 16:09 |
programmerjake | you can use nmigen.back.rtlil.convert | 16:10 |
programmerjake | or if you're using nmigen's main function just use rtlil or .il instead of verilog or .v | 16:11 |
sadoon[m] | ah nice | 16:11 |
sadoon[m] | That is more understanble yes | 16:13 |
programmerjake | so you can run `python nmigen/examples/basic/ctr.py ctr.il; yosys ...` | 16:13 |
programmerjake | actually if you're in the nmigen dir, just do examples/basic/ctr.py rather than nmigen/examples/basic/ctr.py | 16:15 |
sadoon[m] | Let me try that | 16:15 |
programmerjake | for an already tested example: https://bugs.libre-soc.org/show_bug.cgi?id=784#c1 | 16:18 |
programmerjake | output: https://ftp.libre-soc.org/clmul_4x4.svg | 16:19 |
sadoon[m] | Thanks | 16:20 |
programmerjake | note the python isn't very simple for that clmul example, but you should be able to easily adapt the yosys commands to do what you want | 16:22 |
sadoon[m] | I noticed that outside of examples there are no "import * " which is the first thing I remember reading about before joining libre-soc :P | 16:24 |
sadoon[m] | I'm guessing I need to do some python homework if I hope to be able to read anyone's code then | 16:25 |
*** Ritish <Ritish!~sai@202.131.158.114> has quit IRC | 16:26 | |
sadoon[m] | One last question if I may :) | 16:27 |
sadoon[m] | Is this code used in libre-soc? | 16:27 |
sadoon[m] | I ask because I want to know what to expect | 16:27 |
lkcl | sadoon[m], yes, look up "wildcard import" in pretty much any programming language | 16:34 |
lkcl | now take a look at litex source code and tell me if you can navigate any of it. | 16:34 |
sadoon[m] | Yes I figured you were the one who wrote the wiki :D | 16:35 |
lkcl | https://github.com/enjoy-digital/litex/blob/master/litex/soc/integration/soc.py#L28 | 16:35 |
sadoon[m] | No I agree it makes sense | 16:35 |
lkcl | what classes are imported there? | 16:35 |
lkcl | do you know? | 16:35 |
sadoon[m] | lmao no | 16:36 |
lkcl | it gets particularly bad once you realise, on deep investigation, that the *exact same class name* is used in multiple places | 16:36 |
sadoon[m] | It's actually one of the reasons I find a lot of python code unreadable | 16:36 |
sadoon[m] | Many people do it | 16:36 |
lkcl | they have no idea that they're writing unmaintainable code | 16:37 |
lkcl | and they don't care | 16:37 |
lkcl | as in, they *literally* do not care | 16:37 |
lkcl | it's not their problem, it's yours | 16:37 |
lkcl | they can navigate it | 16:37 |
lkcl | (because they wrote it) | 16:37 |
lkcl | so what's the problem again? | 16:37 |
lkcl | i worked for a company that had very strict rules about this. we were not allowed to use "from x import y" *at all* | 16:38 |
lkcl | it had to be just | 16:38 |
lkcl | "import x.y.z.a" | 16:38 |
lkcl | followed by | 16:39 |
programmerjake | if you use an ide/text editor with pyls or similar, it can tell you exactly where symbols are defined, so that does help, though i agree that wildcard imports in python are generally bad | 16:39 |
lkcl | instance = x.y.z.a(xxxxx) | 16:39 |
lkcl | that's fine (it isn't) for people who actually use IDEs | 16:39 |
lkcl | but those IDEs are in absolutely no way going to help reading of code that is online | 16:39 |
programmerjake | now that (disallowing from x import y) is imho a step too far | 16:40 |
lkcl | which if you've observed interactions with other people, is the majority of communication about libre-soc. | 16:40 |
lkcl | providing links to the git repo files | 16:40 |
lkcl | etc. etc. | 16:40 |
lkcl | not in any way via any kind of "IDE" | 16:40 |
lkcl | yes, i agree | 16:40 |
lkcl | it was a total pain in the ass | 16:40 |
programmerjake | > but those IDEs are in absolutely no way going to help reading of code that is online | 16:41 |
programmerjake | not completely true, github added ide-like features of following definitions in python | 16:41 |
lkcl | but i get why they chose to do that, and it was a MASSIVE project. over half a million lines of complex mathematical python code | 16:41 |
lkcl | we don't use github | 16:41 |
programmerjake | i know | 16:41 |
lkcl | and i am not interested in discussing what github does, github provides, github github github | 16:41 |
programmerjake | though gitlab might be convinced to add those features... | 16:42 |
lkcl | it is not the be-all and end-all of the sum total of all programming in the world and it would be very stupid of us to depend on it | 16:42 |
lkcl | (as a Libre Project) | 16:42 |
lkcl | the pain-in-the-ass of banning "from x import y" at least prevented ambiguity mistakes where two or more classes could be the same name | 16:43 |
programmerjake | just cuz github is not open source and has sometimes bad network effects doesn't mean all their ideas are bad... | 16:43 |
lkcl | aliases would have fixed that, but they didn't go for it. | 16:43 |
lkcl | sadoon[m], basically, when you write say one module, use of wildcard imports is "perfect" (it isn't). | 16:44 |
lkcl | when you are "learning", or writing non-serious programs, maximum 50-150-200 stand-alone lines of HDL | 16:45 |
lkcl | where you are not going to interact with anyone else, not share the code, not cooperate or collaborate with anyone else | 16:45 |
lkcl | not writing a library | 16:45 |
lkcl | not designing anything large or serious | 16:45 |
lkcl | wildcard imports are (they're not) "okay" | 16:46 |
lkcl | as in | 16:46 |
programmerjake | oh, gitlab already supports goto definition, but you have to setup some config files first: https://docs.gitlab.com/ee/user/project/code_intelligence.html | 16:46 |
sadoon[m] | <lkcl> "they can navigate it" <- Even that becomes a problem after a few months or so | 16:46 |
sadoon[m] | Because looking at code you wrote months ago is like looking at new code | 16:46 |
lkcl | the damage they cause is to you and to you only, i.e. "minimum" | 16:46 |
lkcl | basically... yes. | 16:46 |
lkcl | in nmigen itself there are locations where there are a staggering 150+ imports from "from nmigen import *", and only two actual things are actually used/needed. | 16:47 |
lkcl | this is _everywhere_ within nmigen | 16:47 |
programmerjake | imho one of the only spots import * is beneficial is when you're duplicating the public interface of another module, so `from xyz import abc` works instead of only `from xyz.a.b import abc` | 16:50 |
lkcl | yes. if there are any code-morph issues, for support purposes of legacy APIs, yes absolutely | 16:50 |
lkcl | we actually do do this inside libre-soc | 16:51 |
lkcl | when openpower-isa was split out | 16:51 |
programmerjake | that imho requires setting __all__ in the module you're importing from, to avoid importing extra junk | 16:51 |
lkcl | the technique helped migrate the codebase to a new module layout, without massive disruption. | 16:51 |
lkcl | and because i know it is so mis-used, i made absolutely sure that every use of wildcard imports was documented. | 16:52 |
lkcl | (rule-breaking always needs documenting at the point that the rule is broken) | 16:52 |
lkcl | i had all these things drummed in to me over 20+ years by different people. sigh :) | 16:53 |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@176.59.170.62> has quit IRC | 17:05 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@176.59.57.64> has joined #libre-soc | 17:06 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@176.59.57.64> has quit IRC | 17:16 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has joined #libre-soc | 17:17 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has quit IRC | 19:46 | |
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has joined #libre-soc | 20:53 | |
*** octavius <octavius!~octavius@92.40.169.162.threembb.co.uk> has quit IRC | 21:30 |
Generated by irclog2html.py 2.17.1 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!