m_t has quit [Quit: Leaving]
futarisIRCcloud has joined ##openfpga
<awygle> very OT question - why do recursive-descent parsers backtrack instead of fork?
<rqou> isn't that equivalent?
<awygle> well, yeah, but one is faster :P
<awygle> idk maybe they all do and they just use "backtrack" in the literature to refer to the equivalent concept
<rqou> in general very "theory-heavy" CS (including parsers) uses really shitty and inefficient implementations in the literature
<rqou> making it work in reality is an exercise for the reader :P
<rqou> e.g. all the algorithms formulated as decision problems that return true/false where recovering "the thing that satisfied this problem" is quite a bit of extra work
<awygle> god knows that's true
<rqou> not to mention phk's "You're doing it wrong" because a lot of literature ignores architectural features like the memory hierarchy and caches
<awygle> i had never read this before and it is excellent, despite including the phrase "Enough talk" without following it by "have at you!"
<pie_> ah lol
<qu1j0t3> no, phk is quite civilised.
<qu1j0t3> not at all like linus
<rqou> i thought people also didn't like him?
<qu1j0t3> also, phk seems to be an actual engineer, rather than a walking ego
<qu1j0t3> rqou: i've seen no evidence of him behaving like an asshole ... is there any?
<rqou> ok, not in the same way as linus for sure
<rqou> but writing e.g. "you're doing it wrong" is a pretty aggressive communicating style
<pie_> maybe because youre doing it wrong
<pie_> jk
<pie_> & comments
<qu1j0t3> isn't that just the title?
Bike has joined ##openfpga
<rqou> yeah, sure
<qu1j0t3> and yeah, frequently we are doing it wrong; but linus is just an aggressive foulmouth with very little constructive content to his outbursts
<rqou> i've never actually interacted with any of these people personally, so idk
<qu1j0t3> he could have taken a different path but he didn't
<qu1j0t3> i just don't see any similarities
<qu1j0t3> i am sure linus is much nicer IRL, but he's decided to be a twat on mailing lists
<qu1j0t3> so he can own that
<rqou> fine, i retract my comment since you seem to know much more than me
<qu1j0t3> when phk says we're doing 'something wrong', he may follow it up with a 2 year blogging project, like his ntpd replacement.
<qu1j0t3> i don't think linus has ever done anything comparable
<qu1j0t3> his ntpd replacement is approached like an engineer, and he involves the audience in his rationale and design
<qu1j0t3> we come out more educated than when we went in
<rqou> when i was taking operating systems, i found linus's ancient rants on e.g. memory barriers and paging to be quite informative too
<qu1j0t3> sure. does he still do that?
<rqou> idk, i don't actually follow lkml
<qu1j0t3> i'd hope so but i think whichever way you slice it his persona has become offputting, even to kernel insiders
<qu1j0t3> there's a recent post illustrating this
<qu1j0t3> they simply asked him to be less shouty, i hope he listens
<qu1j0t3> he had an uh meltdown over intel spectre/meltdown stuff
<rqou> not v4l2 this time? :P
<rqou> or usb3 was the other big one iirc? :P :P
<qu1j0t3> one problem with the shouty persona is that people follow suit, it becomes normalised and emulated
<sorear> the best part of the spectre/meltdown meltdown is that he was very clearly learning about it for the first time
<qu1j0t3> hahaha
<sorear> the maintainer-in-chief of Linux would be approximately the fifth person notified under the embargo if he could be, you know, trusted at all
<qu1j0t3> apparently he's just little people now
<cyrozap> IMO there's a huge selection bias when people say Linus is "an aggressive foulmouth" with a huge ego--good behavior doesn't get upvoted to the front page of Reddit/Hacker News.
<cyrozap> And even then, his "outbursts" are very civil--swearing is used an an intensifier to get his points across, not as a blunt intimidation tactic.
<whitequark> cyrozap: no, it is absolutely used as a blunt intimidation tactic.
<awygle> there can be a selection bias and Linus can be a damaging asshole
<awygle> Brett Glass seems... Interesting
<qu1j0t3> cyrozap: I've read them, they're over the top. but that's the persona he chose, so he can be judged by it.
<awygle> is anybody here aware of this "marpa" parser library?
<qu1j0t3> yeah i looked at it briefly years ago... but no more than that
<awygle> I'm always skeptical of tools that claim to be unambiguously superior, but the explanations of it make sense to me. I'd love to hear from e.g. a real compiler dev on the subject
* qu1j0t3 isn't a real compiler dev
<sorear> awygle: it's unambiguously superior for parsing _general_ context-free grammars
<sorear> LALR, recursive descent, and similar schemes all have various types of grammars that cause pathological behavior.
<sorear> real-world languages are designed to be LALR- and/or recursive descent compatible, so you don't need tools like marpa for them
<sorear> Marpa should be compared to CYK and packrat
<awygle> I am generally aware of packrat (memoized recursive descent)
<awygle> CYK sounds like a code page, never heard of it
<awygle> So are you saying that marpa is less performant on these designed grammars, but lacks such pathological cases?
<sorear> That is what I am saying.
<sorear> I haven't looked at it in years and it might beat yacc at its own game now, but I doubt that
<rqou> wait awygle you don't know about CYK? you didn't take cs164?
<awygle> Okay, great, that helps me. Thanks.
<awygle> rqou: nnnnnopr
<rqou> no hilfinger memes for you? :P
<whitequark> this is not entirely true
<whitequark> real-world languages like C++ are not LALR- or recursive-descent-compatible
<rqou> awygle: use bison GLR, then you can blame prof. hilfinger for any issues that come up :P :P
<sorear> C++ isn't context-free either so Marpa won't help you :P :P
* awygle eyes verilog suspiciously
<sorear> s/help/save/
* sorear half-remembers something about typedefs needing to be fed back into the lexer
<awygle> well I'm a hack so the idea of "good enough performance over a wide range of grammars" appeals to me
<rqou> hmm, maybe i can use marpa rather than fixing my vhdl grammar to be properly LR(1) (once i ever get back to it)
<rqou> i believe (but have not proven, because bison has garbage diagnostic tools) that i've successfully removed the ambiguities in my version though
<rqou> but it generates fun things like an NAME_AMBIG_WTF node whenever it sees parentheses :P
<awygle> parsing/compilers is one of the few remaining cs fields where I feel like I don't even really speak the language
<rqou> should have taken cs164, then you can speak the language _and_ participate in hilfinger memes :P
<rqou> disclaimer: i didn't take it with hilfinger :P :P
<awygle> no lie lol
<rqou> but yes, parser theory really is its own language
<awygle> That and ee143 are big ragrets
<awygle> (that's microfab right?)
<rqou> yes, that class is great
<cr1901_modern> whitequark: >real-world languages like C++ are not LALR- or recursive-descent-compatible
<cr1901_modern> This is why I think bison/yacc are worthless... they aren't capable of generating parsers that work by themselves.
<Bike> are these numbers at some particular school?
<cr1901_modern> Berkeley
<Bike> i see, i see
<awygle> Bike: rqou and I both went to berkeley. Sorry to occasionally exclude
<Bike> mostly i just want to make sure some kind of convention hasn't grown up that i missed out on
<cr1901_modern> And AFAIK, C++ the grammar is undecidable, so you _can't_ (strictly speaking) make a parser that accepts all valid C++ input files
<Bike> not that there's actually much chance of that, ofc
<awygle> cr1901_modern: well, not for c++ anyway. Doesn't necessarily make them worthless, although it may contradict some of the hype
<Bike> is it undecidable before doing template crap? (can you meaningfully talk about the pre-template-crap world?)
<sorear> Haskell 98 _might_ be NP-complete, although I need to work out the details
<cr1901_modern> Bike: Does it matter. Everyone decided templates were worth the cost to make the compiler dev's lives hell
<Bike> well, sure it does. phase separation is nice
<sorear> templates are not part of the grammar
<sorear> you can decide if a C++ program is grammatically well-formed without expanding a single template
<whitequark> cr1901_modern: "[tool] is not perfect, therefore it's worthless" spare me this bullshit.
<whitequark> awygle: have you ever seen the shift-resolve paper
<awygle> whitequark: nope
* awygle didn't do the pre-reading
<awygle> That's a cool picture, unfortunately I don't know enough to interpret it. I'll Google "shift-resolve paper" though
<whitequark> unlimited lookahead in linear time and space
<Bike> was this the one that was notoriously impenetrable
<whitequark> yes, yes it was that one
<whitequark> also hi mnx
<awygle> That sounds extremely useful
<Bike> j0
<whitequark> awygle: too bad the paper is the single least comprehensible thing i have ever seriously tried to read
<Bike> the figure is just an automaton, though, that's not too bad at least
<Bike> yeah, that's more like it.
<awygle> lmao
<awygle> "a straightforward induction"
<rqou> welcome to cs theory :P
<awygle> Like I'm sure it is but damn
<Bike> are inductions ever truly straightforward
<awygle> whitequark: do you have an opinion on marpa?
<rqou> if you took too much of berkeley's cs70/cs170, then they are straightforward :P
<whitequark> this wouldn't be too bad if only the *proofs* were written in this regard
<Bike> then i'm glad i got out of cs classes before i understood this
<rqou> berkeley _really_ likes induction and recursion
<whitequark> but no, it explains how to construct parser states using the same notation
<rqou> we usually didn't write proofs like that though
<rqou> we usually used words instead. wow, what a concept :P
<Bike> rqou, that's such a waste of space! if you use symbols you can par down a page of explanations into one line. which you then have to explain for an hour
<Bike> reminds me i should see how inter universal teichmuller theory is going
<rqou> although occasionally fun things will happen like my housemate asking <really famous professor> "that's a really neat theorem that you've proven using induction. can you prove it constructively?" and getting an answer of "hmm, i'll have to think about that"
<Bike> i guess he... re released it, or something, last month
<whitequark> Bike: "inter-universal Teichmüller theory" sounds like something Steins;Gate would use as a plot device
<Bike> i know, right
<awygle> I had a prof at Berkeley that said "so obviously" a lot, and after mid semester feedback he very obviously stopped himself and changed it to "it MAY be obvious TO SOME"
<Bike> have you not heard of it? basically this guy wrote five hundred pages that supposedly prove the abc conjecture or whatever, six years ago
<whitequark> i have, actually
<Bike> and since then he's been trying to explain it to people (no luck yet)
<sorear> well-founded induction is constructed, though
<Bike> good good
<whitequark> i just still think it sounds unreal
<Bike> it totes does
<Bike> what the fuck even is "inter universal" in a mathematical context
<sorear> it involves Grothendieck universes
<Bike> aw cripes
<sorear> [have read some of the IUT papers, got frustrated and bored 10% through]
<Bike> grothendieck is already way past my mathounderstanding meter
<awygle> Whelp that's my cue to go back to my actual job
<sorear> if it were better motivated it'd be easier to follow I think
<Bike> well, naturally
<Bike> i'm sure there's good reasons to care about abc, but i don't know what they are
<Bike> oh, that reminds me, i was talking to someone about numerical analysis and they were like "oh yeah, one of my professors is a number theorist, i could ask him about this! that's like another name for it, right"
<Bike> like damn we fucking dropped the ball on naming those things
<sorear> if correct, it'd be fairly close to an independent second proof of fermat's last theorem, which is implied by a strengthening of abc
ZipCPU|Laptop has quit [Ping timeout: 256 seconds]
<awygle> is that relevant to your desire to build everything as a huge statically linked binary?
<whitequark> > These two are completely different parse trees, and the difference between them cannot be delayed to further stages of the compiler.
<whitequark> this is false
<whitequark> real-world compilers (like clang) first construct ambiguous parsetrees, because those are useful for things like IDEs
<cr1901_modern> parse forests you mean?
<cr1901_modern> or something different?
<whitequark> I believe it's a single parse tree that gets lowered to something more specific later
<cr1901_modern> Clang then decides what it should be lowered to based on context (pardon the pun)?
<whitequark> yes
<Bike> why do asterisks have to mean different things like that anyway
<Bike> surely they coulda done something else for dereference
<cr1901_modern> Didn't know better (or care) back then?
<whitequark> Bike: C compatibility?
<Bike> i meant in C
<Bike> or bcpl or whatever, i don't know
<whitequark> oh
<whitequark> definition-follows-use is a good guideline in principle
<whitequark> what it *should* have done is something like "var x : *int;"
<whitequark> that would also get rid of the ambiguity between function declaration and variable declaration
<whitequark> F f();
<cr1901_modern> definition-follows-use?
<Bike> imagine if you had to put auto on everything
<cr1901_modern> oh nevermind
<cr1901_modern> bad Google search
<whitequark> cr1901_modern: like pattern matching
<Bike> i found a bcpl manual and it has section sign as an operator
<Bike> doesn't seem to have a unary * though
<awygle> huh, not even C is context free
<awygle> i guess that's not incredibly surprising
<Bike> something something lexer hack
<cr1901_modern> awygle: No, but the fix is simple enough that real compilers (sdcc) can put the extra logic in bison
theMagnumOrange has joined ##openfpga
<Bike> definition-follows-use is mostly just what i think of whenever i see a function type, though
<Bike> cannot for the life of me work that shit out
<cr1901_modern> Bike: Totally off topic, but while it's on my mind: What does your name mean if it's not a two wheeled vehicle w/ pedals?
<Bike> it's a lain character
<Bike> might be a mistranslation, even
<whitequark> https://lain.wiki/wiki/Bike-chan doesn't look like it is
<cr1901_modern> Ahhh I see, cool
<cr1901_modern> Should prob watch that at some point too
<Bike> bi-keh
<Bike> programming lain fact: at one point she does some lisp, and it's a conway's life implementation they pulled from CMU
<Bike> also, at one point she's sitting in class and the blackboard is explaining printf
<Bike> printf in chalk, man
<whitequark> i had that in school i think
<Bike> what really
<whitequark> yeah
<awygle> both lain and steins;gate are on my list
<Bike> damn
<cr1901_modern> s;g the VN I'll eventually get to
<Bike> school didn't teach me any programming until college
<whitequark> oh, *that* was the part that surprised you
<Bike> hell, i think they'd only started teaching typing a few years before i was educated
<whitequark> moscow state school #192, class of 2007-2009, we studied c++
<whitequark> our teacher has challenged me to figure out what the ->* operator does
<whitequark> to this day i have no fucking clue
<Bike> haha
<cr1901_modern> What does the --> operator do?
<whitequark> it's not an operator
<Bike> maybe it's just cos city, versus me out in farmworld where we have to pull e-macs from the junkyard
<whitequark> but yes he did that example too
<whitequark> Bike: reminds me that i've yet to visit your farmworld
<awygle> oh lord why would you want this operator
<lain> ->* is a pointer to member
<Bike> oh, well, i live in a city now anyway
<Bike> let me tell you. it is fucking sweet being able to just walk to a store to buy food
<lain> I've done horrible things in C++
<awygle> god i miss walking. what a weird thing to mis.
<Bike> instead of having to dig it out of the ground while fighting off the coyotes
<rqou> damn i suck at basic calculus
<whitequark> Bike: uhm
<whitequark> coyotes? you're pulling my leg right
<Bike> i'm pulling your leg in that i didn't actually harvest potatoes in the dead of night
<Bike> they did hang out around my house though
* whitequark imagines Bike harvesting potatoes in the dead of the night
<Bike> it's not actually a big deal, they're not dumb enough to attack humans
<Bike> mostly it's just like you're trying to sleep and they start howling like a bunch of assholes
<whitequark> oh, so, the twitter experience
<sorear> pointers to member function are great
<Bike> burn!
<whitequark> Bike: i've implemented a demangler recently
<Bike> i've been trying to figure out ->* for five minutes now
* sorear notes that the C++ ABI for them has a bit of itanium-dependence, goes to experiment on arches where a function pointer can validly be odd
<Bike> is that hard? the mangling format usually seems reasonable enough
<Bike> i mean, you can kind of understand them just from looking
<sorear> it's reasonable enough except for the fact that its job is ridiculous
<whitequark> Bike: you know that the mangling grammar includes the entire C++ expression language, right?
<sorear> mangling template parameters requires encoding more or less the entire expression grammar
<Bike> well. when you put it like that.
<whitequark> Bike: that's not all
<whitequark> Entities declared in non-global scopes must include their scope in their mangled name. For entities declared outside of function definitions, this is dictated by the rules laid out for <name>. Entities declared within function definitions usually do not require a well-defined mangling because only one translation unit has access to the entity. However, different translation units must agree about
<whitequark> the address of entities declared within inline functions, including template specializations. Therefore this ABI defines a mangling for even local entities.
<Bike> oh, jesus.
<Bike> you could have let me persist in my naivety, but no, you had to introduce me to the darkness beyond the gates
<whitequark> Bike: have I mentioned lambdas
<whitequark> If the context is a default argument (of a member function parameter) appearing in a class definition, the closure class and its members are encoded as follows:
<whitequark> <local-name> := Z <function encoding> Ed [ <parameter number> ] _ <entity name>
<Bike> can you have, like, template level lambdas
<whitequark> no
<whitequark> explicitly so
<Bike> my grasp on templates is tenuous. mostly by choice at this point
<whitequark> that's how they avoided putting the entire *statement* grammar in the mangling
<whitequark> Bike: have I mentioned section 5.2 "Vague Linkage"
<Bike> i wonder if there's just a way to link that makes more sense
<whitequark> yes it literally says "Vague"
<Bike> yeah i think i remember you talking about it before
<Bike> when i knew even less about linkers than i do now
<sorear> ok, on x86 it does encode function alignment constraints in the ABI
<sorear> let me check v7t where function pointers MUST be odd
<Bike> my first attempt at ->* has gcc telling me i suck at writing multiplication
<Bike> kind of looks like it's not valid, which would be reasonable, so i have to assume it's not true
<rqou> whee, time to run to campus to hand in a problem set
<rqou> with 2 whole hours remaining! :P
<sorear> ok, the representation of pointers to member function is *different* on x86 versus arm
<Bike> paper homework?
<whitequark> sorear: yeah
<whitequark> also on itanium there are 2x as much vtable entries
<sorear> arm64 matches arm, although it could use the x86 approach
<cr1901_modern> why 2x as much?
<sorear> that's just FDPIC though
<whitequark> I really love some of the examples from the mangling ABI document
<whitequark> template<class T> void i(T p, auto (*)(T q)->decltype(q)); // L = 0
* sorear refuses to not call ia64 and ppcv1 FDPIC
<whitequark> template<class T> void k(T p, int (*(*)(T p))[sizeof(p)]); // L = 1
<Bike> agh
<Bike> shit, that's right, auto means something else in C++
<sorear> (yes, there's 2 PPC ABIs now)
<sorear> or I should say two incompatible ppc64 ELF psABIs, there have always been incompatible non-ELF ABIs
<whitequark> oh, we're talking about ABIs now?
<whitequark> how about MIPS floating-point ABIs
<Bike> i'm going to do all my computing in analog from now on
<sorear> the good news is that r6 fixes most of the utter crap in the instruction set
<Bike> tweet from an old bomb sight. it's the only escape
<sorear> the bad news is that everything has to support umpteen instruction sets that bear only a passing similarity
digshadow has quit [Ping timeout: 268 seconds]
<cr1901_modern> whitequark: why does itanium need to double vtable entries?
<whitequark> cr1901_modern: read the ABI doc
<sorear> cr1901_modern: because intel forgot to include PC-relative memory instructions so every function needs a hidden parameter which is the data segment base
<sorear> the old MIPS ABI (and ppc64 ELFv2) has a smarter workaround, where the hidden parameter is the address of the *function*
<sorear> MIPS r6 just adds pc-relative loads and stores (and pc-relative jumps, and gets rid of the delay slots and adds a saner set of branches)
<Bike> wow, delay slots, that takes me back. are there architectures that have those other than (old, i guess) mips?
<whitequark> or1k.
<whitequark> i have to deal with that crap
<sorear> openrisc, sparc, am29k, somehow not ia64
<Bike> unfortunate
<cr1901_modern> superh also, unfortunately
<whitequark> >superh
<sorear> a lot of the crop of me-too embedded RISCs have them
<cr1901_modern> whitequark: SuperH has been revived in recent years: http://j-core.org
<sorear> i read the Itanium SDM once, it's basically "what if we made an ISA with ALL of the bad ideas?"
<cr1901_modern> sorear: me-too RISCs... I like that. Half the embedded CPUs are the same anyway with opcode bit patterns swapped around.
<sorear> did you know: software TLB refill
<whitequark> sorear: on Itanium?
<sorear> yes
<sorear> (actually the ia64 approach to memory management is "what if we implemented normal page tables AND hashed page tables AND trap to kernel on any TLB miss, and let the OS designer choose" but in an uncharacteristic moment for an ISA with few implementation choices, they made the first two optional)
<sorear> software TLB refill is… not my favorite but justifiable, in the or1k section of the design space
<Bike> this kind of conversation makes me kind of glad i spent time learning the math side of this. delay slots are relaxing compared to tag systems or eodermdrome or whatever
<sorear> for an intel big core it's far less so
<sorear> I'm curious for more of what comes after ">superh" though :3
<cr1901_modern> sorear: I wouldn't want to implement hardware walk on an FPGA. A simple pipelined CPU w/o MMU is tricky enough.
<cr1901_modern> Do the minimal amount of work required to make "OSes that normal ppl use" happy, and then run as fast as you can in the other direction
<sorear> software walk isn't really the minimal amount of work, because now you need some way to pin TLB entries
<sorear> or to temporarily disable address translation while doing the walk
<sorear> s/really/necessarily/
<sorear> and the relative cost of logic vs memory is vastly different on a fpga vs real chip
<whitequark> cr1901_modern: pretty sure you can microcode it cheaply
<cr1901_modern> I've not had much luck ever designing a microcoded CPU, even for fun. YMMV.
<cr1901_modern> sorear: Is pinning different from "load the minimum required to do a walk successfully, and never touch them again"?
<sorear> you have to make sure they're never touched again.
<Bike> oh hey whitequark can i ask you a chemistry question that has nothing to do with anything that's been said here in like the last three hours
<whitequark> Bike: sure
<Bike> do you know how photoisomerization works?
<sorear> ia64 distinguishes "address translation registers" from "address translation cache", and the itc instruction does LRU on the latter in hardware without disturbing the former
<rqou> apparently there are only four physical homework boxes left (in EECS) so most of the old farts have migrated to electronic
<whitequark> Bike: just learned the term from you
<Bike> dag
<cr1901_modern> sorear: I don't know what the difference.
<cr1901_modern> s/what/
<cr1901_modern> sorear: Can we hold that thought for now please? I can't type, means I'm getting tired
<sorear> mm
<Bike> i'm at a point where learning more interesting chemistry would require knowing more quantum mechanics than i do, and my knowledge of quantum mechanics is "the schrodinger equation is important and linear probably"
<sorear> Bike: start with quantum computers, being discrete and somewhat applied makes it much easier to understand than continuous QM
<Bike> seems kind of backwards, though also interesting
<Bike> i feel like there'd be a dearth of resources though
<Bike> precursor for a whole load of shit, evidently
* sorear could go on about the design by committee and other strangeness of ia64
<whitequark> i need thionyl chloride eventually
* sorear hopes that their and others' work will end the scourge of incompatible me-too RISCs with out of tree gcc ports
<sorear> +gratuitously
<whitequark> and i want thionyl chloride so that i can do cyclization of aminoalcohols
<Bike> "is also listed under the Chemical Weapons Convention as it may be used for the production of chemical weapons" cool, cool
<whitequark> oh, it's legal to sell by mail-order in russia, actually
<whitequark> but my usual supplier is out
<sorear> phosgene is a chemical weapon in its own right and I cannot imagine breathing SOCl₂ is any more pleasant
<Bike> yeah, i wouldn't think something that simple would actually be super bad, regulation is just like that
<whitequark> sorear: oh it's not too bad, it just decomposes to SO₂ and HCl
<Bike> man, phosgene. all day yesterday i was trying to think of the chemical weapon with that one smell but i couldn't get it. and it was phosgene
<cr1901_modern> "just" decomposes to HCl
<whitequark> i've actually had limited success already
<sorear> whitequark: isn't that exactly what phosgene does or is it nastier than that
<Bike> ohh, nice clean setup
<cr1901_modern> >hopes that their and others' work will end the scourge of incompatible me-too RISCs with out of tree gcc ports
<cr1901_modern> I feel like RISCV will do that just fine...
<whitequark> sorear: phosgene is worse. It reacts with the amines of the proteins, causing crosslinking by formation of urea-like linkages, in accord with the reactions discussed above.
<whitequark> The odor detection threshold for phosgene is 0.4 ppm, four times the threshold limit value.
<whitequark> I wouldn't work with phosgene.
<whitequark> Bike: thank you
<Bike> well, that recontextualizes the old propaganda pictures
<whitequark> unfortunately, i was dumb enough to use silicone hoses with chlorine.
<whitequark> chlorine (a) crosslinks silicone (b) fuses it to glass
<Bike> oh no
<whitequark> this is not a healthy green color for hoses to have.
<whitequark> and the stopper turned into white mush.
<whitequark> and every plastic clamp just snapped about ten minutes in
<whitequark> so now i need a new set lol
<Bike> yeek
<whitequark> also, sulfur is *obnoxious* to clean off
<sorear> so apparently I know two people who have had very similar problems with glassware failing to contain chlorine gas
<whitequark> really, this synthesis is a bit of a pain in the ass
digshadow has joined ##openfpga
<whitequark> sorear: yeah? what did they do? use conc sulfuric as a grease, right?
<whitequark> I'll do this next time
rohitksingh_work has joined ##openfpga
<whitequark> I tried to avoid conc sulfuric because it *is* regulated in russia (unlike thionyl chloride)
<Bike> how often do the regulations even impact lone people like you. is there some clouseau wandering around trying to find out who keeps edging up on these things
<whitequark> Bike: it's just a pain in the ass to buy
<whitequark> like RU doesn't have acidic drain cleaner
<Bike> like drano? well, just as well, that stuff sucks for pipes or something
<Bike> oh, i guess it's basic
<whitequark> so basically no self-respecting chemicals vendor will sell an individual a controlled chemical, like HCl, H2SO4, etc
<whitequark> yes, basic drain cleaner
<sorear> do they have some kind of denatured H2SO4 that they use in car batteries
<whitequark> however, there's a sketchy vendor i know that will, for a small markup, fill the paperwork with whichever name you give them without actually checking ID
<whitequark> sorear: not concentrated
<whitequark> you can get dilute H2SO4 ofc but that's not really useful
<whitequark> Bike: do you know the single hardest to obtain chemical though?
<whitequark> absolute ethanol. i've resorted to distilling vodka and using zeolite to absolutize it
<Bike> tennessine chl oh.
<Bike> can you not start with rectified spirits at least?
<sorear> I suppose "dilute" is relative
<whitequark> Bike: haven't really seen those sold
<Bike> huh
* sorear thinks a "dilute acid" is something that tastes sour instead of dissolving your tongue
<whitequark> sorear: dissolving? conc H2SO4 will carbonize it
<Bike> seeing everclear at a liquor shop covered in flammability warnings was a formative experience for me
<whitequark> lol
<whitequark> what *is* everclear for, anyway?
<Bike> cooking, i think
<whitequark> oh
<Bike> and doing extremely stupid things while you're in college
<Bike> and putting it in cocktails and stuff
<Bike> like you make a bloody mary or whatever and you're like "hm, i like this and all, but i need to be vmoting in ten minutes" so you splash in some everclear and there you go
<whitequark> nice
<whitequark> i did, actually. i mean, you were joking when you said "hm, i like this and all, but i need to be vmoting in ten minutes" but this was literally my reasoning. i wanted to learn exactly how does it feel to be blackout drunk
<whitequark> i have gained that knowledge.
<Bike> not great, huh?
<whitequark> yeah pretty boring
<Bike> as i recall, you were pretty un fond of drinking even not to that level
<whitequark> yeah but what if i just wasn't intoxicated enough
<Bike> well you've nailed thinking like a drunk, at least.
<whitequark> nice
<Bike> but yeah i know what you mean. i'd be drinking straight vodka and people would be like "wtf are you doing" and it's like uh, obviously i'm trying to destroy my brain?
<whitequark> speaking of the sketchy chemicals vendor [rushim], i like some of their positions
<whitequark> methylamine by the barrel
<Bike> hoping for old fashioned wooden barrels
<whitequark> sadly its plasti
<whitequark> a lot of reagents made in USSR
<whitequark> a lot of glassware marked "from our burned down warehouse" / "from our flooded warehouse"
<whitequark> i actually own some of the both
<Bike> that's uh... ominous...
<whitequark> oh let me tell you about one conversation i had with the owner
<whitequark> so, i go to rushim to buy some liquid bromine, as you do.
<Bike> right
<whitequark> "i'd like to buy one 100g bromine ampoule" "no can do, we're out of those and the guy who repackages it isn't back yet"
<whitequark> (pause)
<whitequark> "we can sell you a 3kg ampoule though"
<whitequark> (pause)
<whitequark> "some guys bought one just yesterday"
<whitequark> (longer payse)
<whitequark> "they broke it almost immediately"
<whitequark> and yes, "bromine, liquid, 3kg, pickup only" is an actual position they have
<Bike> well that just means they gotta buy another 3 kg, good for your supplier
<whitequark> do you love their logo yet
<cr1901_modern> Isn't bromine a liquid at room temp?
<sorear> narrow liquid range
<sorear> FSVO "room temp"
<whitequark> cr1901_modern: technically yes
<sorear> wider than I thought, -7 to 59
<whitequark> but it's a liquid with an extremely strong desire to turn into suffocating fumes
<sorear> 10 kPa vapor pressure at 3 C
<Bike> damn that's like, ms paint
<cr1901_modern> high vapor pressure?
* sorear just quoting wp at this point
<whitequark> cr1901_modern: the numbers are really not doing it justice
<whitequark> you have to experience it firsthandn
<cr1901_modern> or "whatever metric is used to determine how much a liquid turns into a gas before boiling point"
<sorear> 10 kPa vapour pressure means 100,000 ppm bromine in air
<whitequark> Bike: it's not even *good* mspaint
<sorear> most toxic gases you want to keep below ~ 1 ppm
<Bike> what is good ms paint? pixel art, maybe
<cr1901_modern> Fun fact, they use bromine for water treatment at amusement parks. It's why log flumes have a distinct smell
<whitequark> Bike: well they could have tried to draw a circle
<cr1901_modern> Don't know if you can use it for human consumption like you can iodine or bleach tho
<sorear> given that the main problem with bleach is haloform products, bromine is probably worse
<cr1901_modern> It also makes water taste like shit
<cr1901_modern> (not surprisingly)
<sorear> *carcinogenic* shit
<whitequark> if your water tastes like shit you should be grateful it has been treated with halogens
mumptai_ has joined ##openfpga
<whitequark> this reminds me, I should synthesize some chloroform
<sorear> yes, debatably carcinogenic over long-term exposure is a much better position than "definitely contains cholera'
<cr1901_modern> whitequark: Just to clarify, bromine wants to turn into fumes due to high vapor pressure?
<whitequark> cr1901_modern: yes
<cr1901_modern> TIL
<whitequark> that is literally what "high vapor pressure" means
<cr1901_modern> I haven't taken chem in 10 years
<Bike> oh, like it takes a high pressure of vapor to keep it liquid, maybe. maybe i should learn that kind of chemistry first
<cr1901_modern> I'm surprised I even remembered that much
<Bike> equilibrium pressure, yes yes
<whitequark> also, bromine gets through *everything*
<whitequark> i mean, first off, it reacts with almost everything, but things it doesn't react with, like PE, PP, or PTFE, it gets through
<whitequark> the only reliable way to keep bromine on the inner side of the container is to make the container from glass.
mumptai has quit [Ping timeout: 248 seconds]
<sorear> no sufficiently inert/self-passivating metals?
<whitequark> you're going to make the cap from what?
<cr1901_modern> I suppose I'll be sticking to chlorine for my water-treatment needs.
<whitequark> i mean, you could use stainless steel, knife edge flange and a seal made from copper, that works
<whitequark> but not in a lab
<awygle> wait then how do you cap the glass container?
<whitequark> you don't.
<whitequark> you heat it with a blowtorch until it fuses.
<cr1901_modern> oh good lord
<awygle> ... damn, chemistry is metal
<whitequark> hence, ampoule
<whitequark> and yes, I did that, it's a pain in the ass
<awygle> I was picturing those test tubes with corks in them they use to represent healing potions in rpgs, tbh
<whitequark> PFHAHAHAHAHA
<whitequark> CORKS
<awygle> Well I knew cork would be bad hence the question! Lol
<whitequark> that would catch fire if it came into contact with bromine, I think
<awygle> I know enough theoretical chemistry to be terrified of most of your stories, and too little practical chemistry to be other than terrified
<whitequark> hey it's not too bad.
<whitequark> I don't even work with any of the really nasty stuff.
<awygle> If you know what you're doing, which I don't, and have no illusions about
<whitequark> specifically, I stick to acutely toxic (as opposed to chronically toxic), non-explosive, non-carcinogenic
<sorear> now I'm wondering if bromine is easier enough to handle at 77K or 195K that anyone does so
<cr1901_modern> Can you even generate 77K at home?
<whitequark> sorear: it's not really that bad at room temperature if you have a fume hood
<whitequark> cr1901_modern: yes
<cr1901_modern> let alone 195K
<cr1901_modern> wait what?!
<whitequark> um
<whitequark> 195K is just liquid nitrogen
<sorear> you can buy 195K at most supermarkets in the US with ID
<sorear> 77K is LN2, 195K is dry ice
<whitequark> er, yes
<whitequark> of course
<whitequark> -195°C is LN2
<awygle> Handle it at 3K
<sorear> i don't know of anyone with a home air liquifier, it's cheap enough to buy
<cr1901_modern> lol I see
<awygle> H2 is readily available, just add L
<awygle> Actually 3K might be LHe (is that acronym even used?)
<sorear> LHe is used, it's also significantly more expensive
<sorear> the helium economy is a clusterfuck
<awygle> I know liquid helium is used, just not whether people call it LHe
<sorear> decades of artificially depressed prices (co-production with natural gas, followed by the USG decision to decomission and sell off their stockpile)
<awygle> And yeah it's a nightmare. Fuck your kid's birthday party, that's a non renewable resource
<sorear> no, LHe is called that
<sorear> LHe LH2 LN2 LOX
<awygle> LCH4
<whitequark> awygle: that's an idiotic position
<awygle> LRP1
<whitequark> almost none of helium is used for entertainment
<awygle> whitequark: that's fair. I don't actually know any of the numbers.
<whitequark> on the other hand, I don't see anyone complaining about the use of helium for purging or welding, which together are something like 20% of the use
<awygle> new position - all helium is reserved for rockets
<Bike> can't believe a conspiracy of clowns is destroying world helium supplies smh
<sorear> most rockets don't use helium
<sorear> entertainment would be in the last category, "lifting gas"
<Bike> lifting gas, so basically rockets
<sorear> although a single goodyear blimp probably uses as much helium as all the birthdays in the world on the same day[citation needed]
<whitequark> that includes scientific equipment too
<whitequark> like high-altitude balloons
<cr1901_modern> sorear: We could go back to hydrogen :)
digshadow has quit [Ping timeout: 276 seconds]
<awygle> Helium is frequently used to pressurize stuff, as well as purge stuff, in rockets (and lots of other stuff)
<sorear> hot take: blimps should go back to hydrogen, we root caused the hindenburg years ago and it wasn't this
<whitequark> >Twice a day, every day of the year, weather balloons are released simultaneously from almost 900 locations worldwide!
<Bike> really? what was the root cause?
<sorear> Bike: thermite paint
<whitequark> says national weather service
<cr1901_modern> I thought it was b/c hydrogrn is flammable
<Bike> oh right, i think i've heard that
<sorear> oh, good to know
<sorear> still probably reasonable to use it for weather balloons?
<Bike> yowzers.
<cr1901_modern> And it only carried 75 or so ppl
<sorear> how does it compare in terms of structural mass
<awygle> If you find yourself in Tillamook Oregon there's a cool air museum in an old blimp hangar
<sorear> which carries more people per pound of steel/aluminum/RCC
<Bike> heh, the spruce goose is greato
<cr1901_modern> sorear: Unsure
<Bike> This list is incomplete
<whitequark> oh god
DocScrutinizer05 has quit [Disconnected by services]
DocScrutinizer05 has joined ##openfpga
Bike has quit [Quit: Lost terminal]
DocScrutinizer05 has quit [Disconnected by services]
DocScrutinizer05 has joined ##openfpga
genii has quit [Remote host closed the connection]
digshadow has joined ##openfpga
digshadow1 has joined ##openfpga
digshadow has quit [Ping timeout: 252 seconds]
futarisIRCcloud has quit [Quit: Connection closed for inactivity]
futarisIRCcloud has joined ##openfpga
nrossi has joined ##openfpga
laintoo has quit [Remote host closed the connection]
eduardo__ has joined ##openfpga
eduardo_ has quit [Ping timeout: 240 seconds]
m_t has joined ##openfpga
mumptai_ has quit [Quit: Verlassend]
mumptai has joined ##openfpga
ZipCPU|Laptop has joined ##openfpga
ZipCPU|Laptop has quit [Ping timeout: 276 seconds]
<Prf_Jakob> Heh
<whitequark> is that mycobacterium tuberculosis
<whitequark> oh yes it is
<pie_> nice job lol
<pie_> i only saw it in the comments
rohitksingh_work has quit [Read error: Connection reset by peer]
flaviusb has quit [Quit: Leaving.]
Bike has joined ##openfpga
gnufan has quit [Ping timeout: 240 seconds]
rohitksingh-demo has joined ##openfpga
rohitksingh-demo has quit [Client Quit]
futarisIRCcloud has quit [Quit: Connection closed for inactivity]
gnufan has joined ##openfpga
Dolu has joined ##openfpga
thallia has quit [Ping timeout: 248 seconds]
thallia has joined ##openfpga
thallia has quit [Ping timeout: 240 seconds]
thallia has joined ##openfpga
m_t has quit [Quit: Leaving]
<awygle> that's cool but also sell me the chips
<sorear> awygle: took them a while to start distributing the no-mmu chips as units too
<awygle> yeah I think they see themselves as more of an IP company
<sorear> that, and "tests? what are those? let's put it in a board and see if it boots"
sunxi_fan1 has joined ##openfpga
xdeller has joined ##openfpga
sunxi_fan1 has quit [Ping timeout: 268 seconds]
sunxi_fan1 has joined ##openfpga
theMagnumOrange has quit [Quit: Leaving]
m_t has joined ##openfpga
indy has quit [Ping timeout: 265 seconds]
indy has joined ##openfpga
Dolu has quit [Ping timeout: 240 seconds]
clifford has quit [Read error: Connection reset by peer]
nrossi has quit [Quit: Connection closed for inactivity]
dfgg has joined ##openfpga
sunxi_fan1 has quit [Ping timeout: 256 seconds]
sunxi_fan1 has joined ##openfpga
<implr> what are those SMAs for on that board? I couldn't find a schematic
<awygle> earlier documentation i saw suggested that it would include a PolarFire FPGA which has transceivers, but i don't see it on the board...
<awygle> one of the SMA pairs is labeled "DDR_PLL_TESTOUT"
<sorear> awygle: yeah, the FPGA southbridge and everything downstream from it (HDMI, USB, PCIe, SATA) is missing
<sorear> kinda concerning, hopefully docs will be published soon
<awygle> yeah i wanted to see the FPGA more than the SiFive chip tbh
<sorear> oh? microsemi devboards hard to come by?
<awygle> just that the polarfire ones are new and (imo) cool
<awygle> and not really available yet
<awygle> the eval board is listed at 1500$ and the dev board at 180$ O_o
<sorear> what's the difference?
<awygle> about 1300$ :P
<awygle> (more seriously, it seems to use a lower end SKU, isn't in a PCIe form factor, and just has less stuff overall)
<awygle> oh there's also the 700$ "splash kit". that's quite a range.
<sorear> I'll concede to very little knowledge of the microsemi product lines or what's interesting about the polarfire other than being a flash fpga
<awygle> i find them interesting because of the market they target. 12.7G transceivers let you do interesting things (PCIe 3, 10Gbe, etc), and they claim to be 'low cost"
<awygle> how low is low is the foremost question i have about them. if they're "low" like an artix or an ecp5, that's very interesting
<awygle> also i'll confess i just don't really care about CPUs that much so the SiFive was never tremendously intriguing except in a general "rah rah open source" kind of way
sunxi_fan1 has quit [Ping timeout: 256 seconds]
sunxi_fan1 has joined ##openfpga
m_t has quit [Quit: Leaving]
sunxi_fan1 has quit [Ping timeout: 248 seconds]
gnufan has quit [Ping timeout: 276 seconds]
sunxi_fan1 has joined ##openfpga
gnufan has joined ##openfpga
gnufan has quit [Ping timeout: 276 seconds]
gnufan has joined ##openfpga
laintoo has joined ##openfpga
gnufan has quit [Ping timeout: 256 seconds]
sunxi_fan1 has quit [Ping timeout: 248 seconds]
gnufan has joined ##openfpga
sunxi_fan1 has joined ##openfpga