Tuesday, 2022-05-17

programmerjakeoh, lkcl, reading through your modifications to bitmanip, crbinlog imho should take the look-up table from a GPR rather than a CR. this will make it much easier to generate.00:41
programmerjakemuch easier to use in user code because CR's are generally conditions rather than arbitrary binary values.00:41
programmerjake<ghostmansd[m]> "...as well as the fact that it's..." <- being written in rust doesn't automatically mean you're software is good...it just makes it waay easier to write good software. (I'm assuming you already know that though...)03:51
ghostmansd[m]programmerjake, I believe good software can be written in any language. The truth is, bad software can be written in any language as well. :-)06:22
ghostmansd[m]After all, it's programmer who writes the software, the language is just a tool. Some tools are better for this task, others better for that, and so on.06:24
ghostmansd[m]I don't buy arguments like "with Rust it's simpler to write good software", because, at least, the argument is not complete. Which software _exactly_?06:25
ghostmansd[m]For example, one might say: with Python, it's simpler to write prototypes. With Go, it's simpler to write web servers. With C, it's simple to write OSes (at least because any other sane OS is written in C, so you at least can look at it). And so on.06:30
programmerjakei didn't say simpler, i said easier. that's because I think good typing and tests and no UB are a big part of what makes good software and rust excels at those06:42
programmerjakerust can be more complex, but that extra complexity are the parts that let you guarantee your program will function correctly because it could compile -- aka. the compiler is checking a large fraction of what you need for your program to be correct06:44
programmerjakee.g. rust promotes the idea to use types so that incorrect states can't occur since the types used guarantee that you can only transition to valid states06:45
programmerjakerust isn't easier to write software, it's easier to write *good* software imho06:47
programmerjakeghostmansd[m] ^06:47
ghostmansd[m]Ok, easier. Doesn't matter that much.06:50
ghostmansd[m]I don't get why you blame UB. This is one of trade-offs, and C chose UB not without the reason.06:51
ghostmansd[m]You can have C without UB, by the way, and there an effort to do it. But, in the end, it seems nobody cared that much.06:53
programmerjakebecause C and C++ you always have to be careful to not accidentally cause UB, which is pretty easy to accidentally do even if you're paying attention and are an expert C programmer. Rust makes it impossible to cause UB unless you use the `unsafe` keyword, greatly limiting the parts of your program that needs extra scrutiny unlike C where that's basically the whole program06:54
ghostmansd[m]As for type checking and ownership, this is just syntactic sugar. Yes, it's helpful. Praising the language for it? I don't think it deserves.06:54
ghostmansd[m]Again, UB is a trade-off, and, to the major extent, legacy atavism.06:55
programmerjakeit's more than just type checking, it's also the abstractions built on those types. e.g. Rust traits are waay more powerful than most other programming languages' type systems06:56
ghostmansd[m]Does Rust need to support non-2-complement systems?06:56
ghostmansd[m]C is intended to support every piece of junk you have in computer museums.06:57
ghostmansd[m]This is yet another source of quirks and UB.06:58
ghostmansd[m]Again, wordings like "powerful" or "easier" or "you don't have to be as careful as in C" are not gonna buy me. :-)06:59
programmerjakeno, but that isn't where rust derives its power...a version of rust with support for ones complement or sign-magnitude computers would still be waay better than C in terms of UB....overflow is deterministic, unlike C where compilers treat overflow as permission to format your harddrive (or other serious problems)07:00
ghostmansd[m]Which are good and well-known projects in Rust, except for Servo and the Rust itself?07:02
programmerjakefirefox?07:02
programmerjakewasmtime07:03
programmerjakecranelift07:03
ghostmansd[m]I wouldn't call Firefox a good code base.07:03
programmerjakethey're making it better by adding rust...07:03
ghostmansd[m]Two others I haven't even heard of about.07:03
ghostmansd[m]Oh, for God's sake. :-)07:04
ghostmansd[m]Nah, not interested... :-)07:04
programmerjakecranelift is a fast jit compiler....wasmtime is a web assembly vm07:04
programmerjakelinux kernel?07:04
ghostmansd[m]Oh well, so, since recently they introduced Rust to kernel only for device driver, you now consider it a proof that Rust is great?07:05
ghostmansd[m]So, some lunatics pushed for it, Torvalds agreed, end of the story. Proves nothing at all.07:06
ghostmansd[m]Any real used OS written in Rust?07:06
programmerjakei'm looking for a list...07:06
ghostmansd[m]Not for educational purposes.07:06
ghostmansd[m]Not for fun.07:06
ghostmansd[m]Real, ready-to-use and _used_ OS.07:06
ghostmansd[m]I can tell you that go is a great language, because, hey, "they wrote docker in it".07:07
ghostmansd[m]Does it prove that go is great? No fricking way.07:07
ghostmansd[m]I can say, "hey, but go has channels, and goroutines, start using go everywhere!". Would you listen to me?07:08
programmerjakethere aren't currently any major oses in rust mostly because rust is new and everyone just uses what already works07:08
programmerjakego doesn't have decent generics last i checked, also it has a gc07:09
ghostmansd[m]C'mon, it doesn't take that much time to write a kernel. Rust could have occupied at least some niche, e.g. offer some basic RTOS. For example, substitute BUGURTOS.07:10
ghostmansd[m]I'd say that there's a proposal on generics and would also say that gc is great, because you don't have to worry about memory!07:11
ghostmansd[m](obviously I'm sarcastic)07:11
ghostmansd[m]I mean, anything can be an argument, when we're speaking of religion, eh?07:11
ghostmansd[m]This debate is not a technical, but, rather, religious.07:12
programmerjakewell, in a benchmark i saw a while ago, the fastest webserver they tested was written in rust07:13
programmerjakeactix iirc07:13
ghostmansd[m]Does anyone use this amazingly fast webserver?07:13
ghostmansd[m]But hey, I'm OK with Rust, as with most languages, I just don't like that some corporations and individuals offer it so aggressively.07:14
ghostmansd[m]And, again, as long as it's suitable for a task, it's OK. I have yet to see, though, where Rust really fits better than C.07:14
ghostmansd[m]Maybe device drivers.07:15
ghostmansd[m]Especially dealing with 3rd-party data, perhaps.07:15
ghostmansd[m]Though, frankly, I'd rather see RPC there.07:15
ghostmansd[m]With automatic code generation.07:15
programmerjakelist of remarkable users of actix: https://github.com/actix/examples07:15
ghostmansd[m]...major part of projects unsurprisingly uses Rust.07:18
ghostmansd[m]That's kinda lion licking himself meme, you know?07:18
ghostmansd[m]But, again, I'm off this discussion, because I already participated in it a lot, and arguments are all the same, and the whole hideous cycle will just go on and on and on.07:20
ghostmansd[m]https://youtu.be/zKIjVwiabSU07:21
programmerjakewell, not that it's very widespread yet, but crev (a system for reviewing code in software releases but with distributed cryptographic properties similar to pgp) is written in rust07:23
programmerjakehttps://github.com/crev-dev/crev/07:23
programmerjakeoh, apparently bytedance (of tiktok fame) uses rust for their cross-platform client-side software07:34
programmerjakeyou were asking about rust operating systems, iirc the biggest one is redox-os which is not very widely used yet07:42
programmerjakeoh, also the solana blockchain is written in rust07:51
programmerjakeiirc that showed up on the news a bit (cuz some people use it to make NFTs)07:52
programmerjakekinda related news: the linux foundation and openssf are coming up with a plan to replace c and c++ with memory safe languages like rust or go: https://openssf.org/oss-security-mobilization-plan/08:21
programmerjake(to be clear that's their words, imho go isn't memory safe)08:23
ghostmansd[m]Well, redox-os is exactly why I asked you to bring an example of something which is used.09:20
ghostmansd[m]Not just, you know, something written in Rust to show you _can_ write it in Rust.09:21
programmerjakewell, that's kinda hard, because I could point to a long list of software written in rust and you could just say they wrote it in rust because they wanted to...which is true but also kinda pointless because we could do the exact same thing for nearly any other mainstream language09:23
programmerjakee.g. nmigen is written in python because they wanted to09:24
programmerjakeoh, also solana is actually quite popular iirc09:25
ghostmansd[m]I've not used Solana, but I heard that Rust is language of choice for blockchains.09:26
ghostmansd[m]At least, perhaps, this will become Rust niché.09:27
programmerjakemaybe, but imho it's far from the only niche09:28
ghostmansd[m]I'm speaking of successful ones. ;-)09:28
programmerjakerandom google result about solana: https://blockworks.co/solana-volume-soars/09:28
programmerjakeimho rust is pretty successful in the write-it-in-webassembly space, though i don't have any stats rn09:29
programmerjakehttps://marketresearchtelecast.com/state-of-webassembly-2021-the-most-popular-language-for-wasm-applications-is-rust/83312/09:31
ghostmansd[m]Ok, let's hope there will be space for any good language, Rust included.09:37
programmerjake:)09:38
ghostmansdlkcl, programmerjake, did you reach consensus on grev* insns?10:07
ghostmansdOr should I submit binutils patch w/o these?10:08
programmerjakewip, he hasn't yet responded to my latest proposal for different semantics...10:08
ghostmansdI see there are updates on fields.text10:08
lkclthe mozilla foundation is *not* a good example in any way. they are a pathological organisation with top-down one-way push of dictats from management.10:09
ghostmansdBut no declarations of these in chat, so I'm assuming this is a draft.10:09
lkclpeople with serious amounts of experience in security vulnerability research and strategy have been systematically ignored for decades10:09
programmerjakeimho just submit the patch without ternlogi or grev*, lkcl what do you think?10:09
ghostmansdternlogi is also out of scope?10:09
ghostmansdI thought this one was OK10:10
programmerjakehmmm...10:10
ghostmansdThere's even encoding/decoding test already :-D10:10
programmerjakeguess you could include ternlogi but not the other binlog/ternlog instructions...10:10
lkclghostmansd, don't submit *any* patches to binutils until the OPF Board comes back with a decision, but do prepare them10:10
ghostmansdAh, so we'll be just keeping these in fork for a while?10:11
ghostmansdI thought it'd be a great idea to let Alan look at these, but I get your point10:11
programmerjakeahh, yeah, I forgot about the non-technical side of submitting patches10:11
lkclindefinitely, yes - unless they say it's ok to do them via an external dynamic-loadable-module (dlopen/dlsym)10:12
ghostmansdAh, OK10:12
lkclprogrammerjake, you remember the equivalent discussion on RISC-V?10:12
programmerjakenot on binutils but i saw a little of that in llvm10:13
programmerjakethey just used an --experimental flag in llvm10:13
ghostmansdWe use -mfuture.10:13
lkclseveral of us - all working externally - had a very large discussion 2+ years ago on how at the *ISA* level to avoid the nightmare conflict situation when several high-profile implementations contend for an *officially-sanctioned* "custom" opcode space10:14
programmerjakeiirc that may be the clang flag rather than llvm proper10:14
lkclthe problem-words: "high-profile public" mixed with "same custom opcode space"10:14
programmerjakei'm starting to recall binutils wouldn't accept any non-standard instructions upstream for riscv10:15
lkclhigh-profile usage of CUSTOM_OP1 e.g. by the alibaba group10:15
lkclprogrammerjake, ohh no, they've already made the decision to accept them, from not just one but *multiple* sources10:15
programmerjakeyeah, my info on riscv binutils is several years out of date10:16
lkclsifive and the alibaba group's custom instructions are *both* going through patches to binutils *right now*10:16
lkclwith a 3rd company having patches that they're submitting as well10:16
lkclthis is all for the exact same custom opcode space!10:17
programmerjakesince we switched to openpower i care about riscv a whole lot less so didn't pay attention10:17
lkclthe reason i'm paying attention is to demonstrate the shit-show that occurs (predicted 2+ years ago)10:17
lkclso that it *doesn't* happen with OPF. i have hope / indicators that they're experienced enough to pay attention10:18
ghostmansd"sifive and the alibaba group's custom instructions are *both* going through patches to binutils *right now*" what a nice ISA to work with, eh?10:19
lkclthe general rule for Power ISA for 25 years has been "no conflicts allowed, at all". they went through one version of hell on that already, with altivec10:19
ghostmansdor, rather, a nice management10:19
lkclghostmansd, it's the people behind it who are extremely vicious and spiteful10:19
lkclthey tolerate abusive individuals10:20
lkclit's a completely unsafe environment to work in, and it's already had consequences for RISC-V10:21
lkclanyway, worth monitoring so as not to make the same mistakes10:22
ghostmansdOK, still, I'd like to have some summary10:23
ghostmansdI really want to understand the next steps on 834.10:23
ghostmansd1. fsins/fcoss are ready (impl/tests).10:23
ghostmansd2. ternlogi is ready as well (impl/tests), though programmerjake expressed some concerns.10:23
ghostmansd3. grev* are ready as impl for current opcode mapping, but there's no agreement on grev* fate.10:23
ghostmansdIt's all available in ppc-draft branch of our binutils fork.10:24
ghostmansdAnd, frankly, the uncertainty of the whole task makes all efforts useless, and I cannot even understand whether I should submit RFP. Work is complete partially, but I'm blocked.10:25
ghostmansdThat is, official patch to binutils waits for OPF ack, and even the contents of the patch are uncertain, considering grev* insns.10:26
ghostmansdAnd, as such, SVP64 patch is blocked too.10:26
programmerjakemy concern with ternlogi is that it isn't part of svp64 so should probably be a separate patch. other ternlog instructions aren't ready yet imho.10:29
lkclghostmansd, you've got the patches ready, i'd consider it complete10:30
programmerjakeother than that, ternlogi is ready to go.10:30
lkclyou're "done"10:30
lkclyour part is done10:30
ghostmansd[m]But the tests for grev* cannot be done. Or can?10:31
lkclcan i suggest subdividing 550 with another task (considered "completed"): the writing of the sv_binutils.py autogenerator10:31
programmerjakecurrently testing grev is pointless since it'll most likely change10:32
lkclno not yet.  but *still* consider 834 done, and create *another* bugreport to track grev* (move grev* out of 834 in other words)10:32
ghostmansd[m]Ah, Ok10:32
ghostmansd[m]As for autogeneration... That's was 83310:32
ghostmansd[m]And I already have RFP submitted, as we discussed10:32
ghostmansd[m]I don't know though how to edit it properly10:32
programmerjakefor the rfp i just sent it to luke first for review, you don't have to do that tho10:33
ghostmansd[m]No, I mean, I should edit the task, right?10:35
ghostmansd[m]After I send RFP10:35
ghostmansd[m]lkcl, could you handle editing 833, please, to reflect that I already sent an RFP?10:35
ghostmansd[m](but not yet received the payment)10:36
ghostmansd[m]And I'll submit RFP for 834 then as well.10:36
programmerjakeah, yeah. the field is in toml format, change it to `ghostmansd={amount=...,submitted=2022-05-17}` with the correct date and amount substituted10:37
lkclghostmansd[m], ah brilliant.10:38
lkclghostmansd[m], what programmerjake said. you can look at other bugreports to see how that goes10:38
ghostmansd[m]Ah, OK, perfect!10:38
ghostmansd[m]When the payment is received, should I update the task again?10:39
lkclghostmansd[m], yes, because otherwise budget-sync will still report it as "unpaid"10:39
programmerjakean example: https://bugs.libre-soc.org/show_activity.cgi?id=46910:40
lkclghostmansd[m], please remember to add 15% of each task budget allocated to me. increase by 15% if necessary.10:40
ghostmansd[m]For 834 I'll have to increase, since I already submitted an RFP.10:41
ghostmansd[m]Hm, and it was not mentioned that it's split.10:43
lkclghostmansd[m], if you already submitted an RFP and it said "total is X" then *under no circumstances* change the amount10:44
ghostmansd[m]Would it be OK if 15% from 833 go to 834?10:44
lkclhang on hang on, you're jumping the gun massively10:45
lkclthere's no records in the TOML fields and you've submitted RFPs but not sent them to me for approval10:45
lkclso i now have no idea what the hell's going on10:45
lkclthe process is as follows:10:45
lkcl1) set the budget10:45
lkcl2) put the allocations into the TOML field10:46
lkcl3) discuss and get approval from me10:46
lkcl4) submit an RFP10:46
lkcl5) notify me that the RFP has been sent10:46
programmerjakelkcl, does allocating 1000 eur to the smtlib2 bug for now sound good? having something there will make it harder to lose track of cuz of showing up in budget sync10:46
lkcl6) update the TOML field to state "submitted={date}"10:46
ghostmansd[m]Ah, OK, sorry. I had an impression that fields in TOML are filled after the payment received.10:47
lkcl7) update the TOML field with "paid={date}"10:47
ghostmansd[m]Sorry if it caused an inconvenience.10:47
lkclno absolutely not, they're critical tracking information of the ongoing status10:47
ghostmansd[m]Is there documentation on process other than above?10:47
lkclthere are now over *eight hundred* bugs with hundreds of payments10:47
ghostmansd[m](I can summarize it and publish somewhere)10:47
lkclyes please, put it on HDL_workflow10:47
lkclprogrammerjake, yes great idea10:48
programmerjakek10:48
lkclghostmansd[m], so even right now, i'm looking at the TOML fields for 834 and 833 and i'm going "ah, there's been no RFP submitted for either of these, and nobody's expecting to get paid"10:49
lkclthis is Accounting Procedures, which could get audited.  it is *ABSOLUTELY* critically important that they're both correct and always, always up-to-date10:49
ghostmansd[m]Yes, I'm updating it10:50
lkclthx10:53
programmerjakewell, it's 3am here, gn all. lkcl, have fun with all the pretty diagrams i made! https://libre-soc.org/openpower/sv/bitmanip/grev_gorc_design/10:53
lkclprogrammerjake, :)10:54
lkcli did say don't bother, but it helps compared to grevlut which is 512 instructions vs 2.10:55
programmerjakewell....read my messages...it's waay more than 2 instructions worth10:55
programmerjakeon the bug10:56
lkclok willdo. i'm a little behind10:56
programmerjakenp, figured that was the case10:56
lkclif by putting in 0x55555 or 0xaaaaa it can create the magic constants needed for emulating PMOVMASK[BHW] i'm good10:58
lkclhang on... ah! i got it! that same trick can be applied to grevlut11:03
lkclha11:03
lkclhttps://ftp.libre-soc.org/2022-05-17_11-05.png11:13
lkclghostmansd[m], can i suggest asking Alan, on-list, if he's happy for us to go straight to a dlopen/dlsym plugin system?11:15
lkclone of the functions-in-the-table would be, "extend the opc-ppc-table with these entries please"11:15
lkclsvp64 will be... a little... ah.. hair-raising11:15
lkclalthough if they've already put in the 64-bit v3.1 prefixing then it's a lot less hair-raising11:16
lkclraise it as a separate bugreport, for discussion, because even discussion you can put down as "to be paid for"11:16
ghostmansd[m]Sure, will do. I also intend to ask about the patches which hang on in mail box. :-)11:21
ghostmansd[m]dlopen/dlsym will have a performance drawback. Also, another performance drawback I see here is that we will have to insert our entries _sorted_ into this table.11:35
ghostmansd[m]Not that I object, I actually like the idea, since it makes us more independent of binutils.11:36
lkclghostmansd[m], the performance drawback will be temporary until the SVP64 (and 32-bit) OPF ISA WG Requests For Change (RFCs) are approved11:39
lkclthat's _if_ they are approved of course11:39
ghostmansd[m]Ok then, will ping Alan.11:40
ghostmansd[m]We don't have task for dlopen, do we?11:40
lkclcorrect, we don't. do create one11:40
ghostmansdack, parent is 577 again, right?11:42
lkcl577... yes.11:44
lkclno, 55011:44
lkclbecause 550 is binutils-specific11:44
ghostmansdok11:47
ghostmansdlkcl could you please check 577 833 and 834?11:48
ghostmansdI changed these and want your ack that changes are correct11:48
ghostmansdah wait they're not11:49
ghostmansdah no OK11:49
ghostmansdgot confused with budget, should be fine11:49
lkclwill check, do run budget-sync11:55
ghostmansdyep, just did it, it complains on 48 and 19111:56
ghostmansdas it did previously IIRC11:56
lkclyep good11:57
lkcland an #837 - dlsym/dlopen for binutils11:58
lkclcross-referencing the discussion here11:58
* lkcl goes looking for links11:58
lkclhttps://libre-soc.org/irclog/%23libre-soc.2022-05-17.log.html#t2022-05-17T11:15:1011:59
ghostmansdyeah already found it :-)12:03
ghostmansdthanks though12:03
ghostmansdHere's https://bugs.libre-soc.org/show_bug.cgi?id=83712:03
ghostmansdI haven't allocated a budget yet, there's no Alan's confirmation yet that it's OK (will write an e-mail)12:04
ghostmansdAnd also it cannot judge now how many changes are needed12:04
ghostmansd*I cannot judge12:07
lkclthat's ok it gets adjusted as going along12:08
ghostmansdlkcl, can I submit RFP for 834, mentioning that this one is split between us in RFP body?12:26
lkclghostmansd, yes do12:27
ghostmansdpinged Alan et al. about the patches, updated the tasks, submitted an RFP12:43
ghostmansdI'll prepare an email regarding dlopen/dlsym12:44
lkclack12:56
lkclghostmansd, when you submitted 833, was it a parent of 577 or was it a parent of 550?13:08
lkclit's absolutely critical not to change these Finanical Records after submission to NLnet13:08
lkclcan you email me the copies of the RFPs please, minus your address and bank details?13:09
lkcli need to check them13:09
ghostmansd[m]Sure, I'll send these now13:38
ghostmansd[m]Sorry for delay, I was writing an email to Alan13:38
ghostmansd[m]Done13:41
lkclgot it. all good14:48
lkcltoshywoshy, mattermost gone walkies https://chat.openpower.foundation/opf/channels/libre-soc15:05
ghostmansd[m]lkcl, star15:05
lkclit's not bridging to oftc.net either (not seeing it as a channel user)15:05
ghostmansd[m]I'm done for today, have some deeds outside, will continue tomorrow15:06
lkclyehyeh i'm done for today and it's only 3pm :)15:06
* lkcl salutes15:06
ghostmansd[m]I hope Alan agrees with plugin :-)15:06
lkclyeah me too15:09
*** kanzure_ is now known as kanzure18:15
excited-mango[m]Hey, what time in eastern time is the group call?20:01
programmerjake5pm edt afaict20:03
programmerjakeso 1:58 from now20:03
programmerjakeexcited-mango: ^20:03
excited-mango[m]Okay cool20:06
lkcljn: btw librebmc has email notifications going out for the meetings, toshywoshy has the details on how it works21:35
lkcli attended the meeting last week because i actually (gosh) got a notification that it was happening :)21:35
lkclif you'd like to get those as well just ask toshywoshy how it happens21:35
lkcltoshywoshy, how _did_ i end up getting a notification? :)21:36
lkclprogrammerjake, ping on #yosys, useful discussion potential with jix21:40
lkclcesar, lxo, excited-mango[m], toshywoshy jn, markos, sadoon[m], meeting 10m21:49
programmerjakei just set a weekly alarm and also have a notification from google calendar21:49
lkclyehyeh me too :)21:51

Generated by irclog2html.py 2.17.1 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!