<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.
<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: 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]
<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
<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
<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
<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
<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
<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