[itchyjunk] has quit [Remote host closed the connection]
gog has quit [Ping timeout: 258 seconds]
smeso has quit [Quit: smeso]
<geist>
yay hugs for everyone
smeso has joined #osdev
vai has quit [Ping timeout: 272 seconds]
vdamewood has joined #osdev
Vercas has quit [Quit: buh bye]
Vercas has joined #osdev
dormito has quit [Ping timeout: 258 seconds]
dormito has joined #osdev
vdamewood has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
admiral_frost has quit [Quit: It's time]
masoudd_ has joined #osdev
rustyy has joined #osdev
valshaped7424880 has quit [Read error: Connection reset by peer]
goliath has joined #osdev
valshaped7424880 has joined #osdev
Osmten has joined #osdev
Burgundy has joined #osdev
admiral_frost has joined #osdev
Left_Turn has joined #osdev
<immibis>
mcrod: the destructori is called at the semicolon
<immibis>
it's okay to write useSrting(GetBlah().toByteArray().toString())
<immibis>
the temp objects aren't destroyed before useString returns
Nixkernal_ has quit [Ping timeout: 258 seconds]
vdamewood has joined #osdev
danilogondolfo has joined #osdev
nyah has joined #osdev
<sham1>
Isn't the relevant sequence point after the outer call anyway?
gbowne1 has quit [Read error: Connection reset by peer]
<zid>
sham1 against the wall, immibis against the wall.
<sham1>
But why
<zid>
you heard me
<sham1>
That's not a weird edge case
<sham1>
It's literally how the language is specced
<sham1>
And explicitly so
netbsduser`` has joined #osdev
<sham1>
Anyway, phones are too big
gog has joined #osdev
<zid>
digging your own grave here
gog has quit [Client Quit]
masoudd_ is now known as masoudd
<immibis>
zid: we outnumber you
<immibis>
sham1: it's not just any sequence point - it's the semicolon. I think the standardese term is the end of the outer-expression.
<sham1>
Hm, that would make sense
GeDaMo has joined #osdev
gog has joined #osdev
<zid>
do you think if gog and gedmo had a baby it'd be called gogdamo or gegog
bauen1 has quit [Ping timeout: 260 seconds]
<sham1>
gogdmo
<zid>
Demogogron.
<sham1>
Hah!
zxrom has joined #osdev
tomith has joined #osdev
<GeDaMo>
Does demogogron evolve into releasegogron? :|
<sham1>
Hard ta say
<zid>
alphagogron
<zid>
once you remove three health bars, it turns into omega gogron
<zid>
and heals to full
Turn_Left has joined #osdev
<mcrod>
sham1: this is me not knowing the ins and outs of RAII
Left_Turn has quit [Ping timeout: 252 seconds]
<gog>
awww a little abomination
admiral_frost has quit [Quit: It's time]
Burgundy has quit [Ping timeout: 255 seconds]
<mcrod>
either way, I thought the temp object would survive “somewhere” until the end of the function call
vdamewood has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<immibis>
it doe
<immibis>
it does
<zid>
THERE ARE NO EDGE CASES
<immibis>
arguably, keeping the object alive is an edge case - one where C++ does the right thing (surprisingly)
masoudd has quit [Ping timeout: 255 seconds]
<kof123>
"somewhere": where does bad code go when it dies? / it don't go to production where the good code flies / it goes to a lake of QA and fries / won't see it again until the release of July
<kof123>
*Julyyyyyyyyyyyyyyyyyy
<immibis>
bye, bye, folks at RIPE 55, be persuaded to upgrade it or your network will die. IPv6 makes me let out a sigh, but I s'pose we'd better give it a try...
<kof123>
internet killed the token ring star
Burgundy has joined #osdev
<immibis>
but we got the ethernet star
<immibis>
token ring isn't a star, it's a RING, it's in the name
<immibis>
and nothing killed the ethernet star, yet
<immibis>
gigabit killed the throwing star wiretap, but that's not the same
<bslsk05>
greatscottgadgets.com: Throwing Star LAN Tap - Great Scott Gadgets
k0valski1889162 has quit [Ping timeout: 260 seconds]
<immibis>
actually you know what killed ethernet? radio
<immibis>
everything's on wi-fi now
<kof123>
> Physically, a Token Ring network is wired as a star, with 'MAUs' in the center, 'arms' out to each station, and the loop going out-and-back through each.
<kof123>
the token is just an imitation conch IMO
<kof123>
yeah, i just meant more <all older proprietary-typically-probably LAN-type things>, replaced with TCP/IP
<immibis>
radio killed the ethernet star
<kof123>
^ yes that makes sense :D
<kof123>
i never actually used token ring, just remember a networking book talking about "topology" and star was one of them
<immibis>
don't get hit by a bus
bauen1 has joined #osdev
<mcrod>
immibis: you told me the object dies at the semicolon
<mcrod>
now you’re telling me it dies at function end
<mcrod>
although I think I wasn’t being totally clear
<mcrod>
hard to type out what I mean over a phone
Osmten has quit [Quit: Client closed]
netbsduser`` has quit [Ping timeout: 258 seconds]
bauen1 has quit [Ping timeout: 240 seconds]
bauen1 has joined #osdev
bauen1 has quit [Ping timeout: 255 seconds]
netbsduser`` has joined #osdev
bauen1 has joined #osdev
heat_ has joined #osdev
craigo has joined #osdev
FreeFull has joined #osdev
goliath has quit [Quit: SIGSEGV]
marshmallow has joined #osdev
kaitsh has joined #osdev
air has quit [Ping timeout: 260 seconds]
Turn_Left has quit [Ping timeout: 264 seconds]
bauen1 has quit [Ping timeout: 260 seconds]
Turn_Left has joined #osdev
Turn_Left has quit [Ping timeout: 240 seconds]
eddof13 has joined #osdev
Turn_Left has joined #osdev
masoudd has joined #osdev
xenos1984 has quit [Ping timeout: 255 seconds]
xenos1984 has joined #osdev
goliath has joined #osdev
dude12312414 has joined #osdev
dude12312414 has quit [Remote host closed the connection]
gog has quit [Quit: Konversation terminated!]
mctpyt has joined #osdev
eddof13 has quit [Quit: eddof13]
netbsduser`` has quit [Read error: Connection reset by peer]
netbsduser`` has joined #osdev
mctpyt has quit [Ping timeout: 258 seconds]
<heat_>
fun details i've been looking at this afternoon: it seems that intel cpus can set the A and D bits very speculatively, but AMD cpus can set the A speculatively, but not the D bit
<heat_>
amd explicitly says you can rely on the page being clean if D=0
<heat_>
the D bit store is even ordered with respect to other loads and stores
masoudd has quit [Read error: Connection reset by peer]
xenos1984 has quit [Ping timeout: 245 seconds]
nyah has quit [Quit: leaving]
<mcrod>
hi
gog has joined #osdev
xenos1984 has joined #osdev
<Ermine>
heat_: what are implications?
klingfan has joined #osdev
<klingfan>
osdev discord is doing a banning spree :-(
<klingfan>
anyone who debates about Gaza got banned!
<heat_>
good
<zid>
oops ignored klange there for a sec
<klingfan>
heat_ free speech for them but not for us
<heat_>
Ermine, D is not very reliable as an indication if a page has been written to, sometimes
<heat_>
no, that's not free speech
<klingfan>
listen
<zid>
I'll leave you to it, if you're going to debate the mentally ill
<klingfan>
u cant ban people for debating when the server is already political
<klingfan>
they have an lgbt flag
<klingfan>
obviously not many braincells here either
klingfan has quit [Client Quit]
<heat_>
damn i was effective
<nortti>
aye
<gog>
i'm political
<heat_>
talking about toxic politics stuff everywhere i go is my god given right
<heat_>
don't tread on me!
goliath has quit [Quit: SIGSEGV]
<gog>
meow
<zid>
gog you are politics embodied
<heat_>
gog: iceland
<zid>
I'm like liquified adhd and low executive function
<gog>
ísland vinsamlega
eddof13 has joined #osdev
<heat_>
why is it called iceland if there's no ice? who's hiding the ice? are THEY hiding the ice?
* gog
points at vatnajökull
<heat_>
did THEY hide the ice just to bullshit us into global warming?
<heat_>
i'm not saying anything, just asking questions
<gog>
yeah they're hiding it in liquid form in the ocean and atmosphere
<gog>
really clever
<gog>
well, gaseous form in the atmosphere
<zid>
and liquid still
<zid>
just in tiny drops that are hard to find
<gog>
sometimes
<heat_>
the bastards want to drown us??
<zid>
sneaky
<gog>
yeah they're trying to drown us from the sky with sky water
<gog>
like happened to noah
<zid>
It's kinda freaky deaky that sometimes
<zid>
the sky just
<zid>
gets you wet
<zid>
thank god it decided to use water
<zid>
if it was like, blancmange or something that'd be a nightmare
<heat_>
not just the sky 😈
<netbsduser``>
klingfan: there is no banning spree
<pitust>
okay now i gotta check who exactly we banned
<pitust>
apart from will
eddof13 has quit [Quit: eddof13]
<netbsduser``>
as a general rule if you can't figure out what is going to offend people and what won't, avoid discussing gaza in polite company
<pitust>
yeah no its will
<heat_>
Ermine, fwiw i'm curious if its trivial to trigger the D bit speculatively
<heat_>
like having a branch mispredict into a write that never ends up happening...
<heat_>
recent intel has a stronger guarantee about the D bit where it will *never* write a D bit if that PTE isn't writeable in the first place, i.e if a race happened
<heat_>
because of CET shadow stacks, that use D + read-only as a combination for their special mappings
<Ermine>
Talking about politics may lead me to irl ban, so I usually discuss politics with people I trust
<niceperson>
lol
* niceperson
cancels Ermine
<heat_>
fairly sure Ermine is talking about jail
<heat_>
which is NOTHING compared to getting cancelled on twitter
pounce has quit [Remote host closed the connection]
<heat_>
or worse, mastodon!
pounce has joined #osdev
<Ermine>
heat_: high-level thoughs: I guess you can take advantage of such things by code patching (if you can take advantage of it at all)
<Ermine>
niceperson: you're nice
niceperson is now known as x-formerly-twitt
<x-formerly-twitt>
bummer
x-formerly-twitt is now known as twitter-now-x
<twitter-now-x>
aight
<twitter-now-x>
di you just assume my character
<heat_>
this is not actually useful apart from the D bit being maybe unreliable
<heat_>
like if you use D as a "this has been written and needs special expensive handling", you may get extra pages
<heat_>
actually, funny tidbit re code patching
<heat_>
wrt A and D bit writeback, intel has a note where it says that A and D writeback may not trigger self modifying code detection in intel cores
<heat_>
you know, in case you're executing your page tables
<gog>
i'm for page table amnesty
<gog>
don't execute them
pounce has quit [Remote host closed the connection]
<pitust>
page tables have killed my whole family
* pitust
demands execution
pounce has joined #osdev
<zid>
I believe in page table amensty too
<zid>
give them all to me, and I won't ask questions
<mcrod>
so, kids
<mcrod>
tell me if I’m wrong about device abstraction here
<pitust>
you are
<mcrod>
thanks, i said if :(
<zid>
You are
<mcrod>
i hate you both.
<netbsduser``>
the traditional way to abstract devices is as files with open, close, read, write, and ioctl
<zid>
will you still hate us when you tell us the bit where you're wrong
<mcrod>
no
<zid>
hurry up then
<mcrod>
then i’ll get what I want
<mcrod>
so let’s say I port an OS to x86-64, yay
<netbsduser``>
in fact i don't think any general purpose OS with popularity does it differently, at least not for the userspace-to-device interface
<mcrod>
the architecture specific code calls device_discovery(), which installs a master device
<zid>
the fuck is a master device
<mcrod>
this master device just checks the bus to see what hardware is available
<zid>
are you talking abuot a weird C++ pattern you're thinking of doing
<mcrod>
no.
<zid>
sounds like you are
<netbsduser``>
zid: i have a "master device" of sorts
<mcrod>
so anyway, this “master device” is at the root of a device tree
<zid>
but you recognise that it's just a hack for your specific code by the sounds of it, hence the quotes
<mcrod>
if it detects AHCI hardware, or CDROM hardware whatever, it loads an AHCI HAL device
<mcrod>
and then that detects the specific AHCI devices on the system and loads the appropriate driver
<netbsduser``>
mcrod: it sounds reasonable
<netbsduser``>
i have a "master device" but i call it the platform device
<mcrod>
so full example: architecture specific device_discovery() call, which detects the interfaces available on the system, it finds an AHCI interface which then enumerates all of the connected devices on the AHCI interface and loads the appropriate driver, but talks only through its parent (i.e., the AHCI interface)
<mcrod>
drivers*
<netbsduser``>
it plays a small role on aarch64 and amd64 where a subdevice called "acpi-platform" does much of the discovery , but on my amiga68k and virt68k ports it is doing all that itself
FreeFull has quit []
<zid>
why is it arch specific, and not just bus specific
<zid>
were you planning to implement pci-e for arm and x86 differently?
<netbsduser``>
btw mcrod it will end up being platform-specific vs arch-specific
<netbsduser``>
i need a totally different "master device" for amiga68k and virt68k as they are radically different platforms
<mcrod>
yeah
<zid>
I'm not sure about doing what sounds like discovery inside what sounds like drivers
<netbsduser``>
as a rule, parents discover their children
<zid>
but when you actually implement it it'll probably not really be like that so whatever
<zid>
only if they have to
<netbsduser``>
so the AHCI driver ought to discover the hard drives and CD-ROM drives attached to it and induce the creation of these devices
<zid>
else you end up with horrible A -> B -> A -> B type callchains
<mcrod>
netbsduser``: yes
<zid>
rather than a loop inside A
<mcrod>
that’s what I mean
<zid>
but this is all about code, not about method
<zid>
and yea, "find devices" is the correct method
<zid>
to find devices
<mcrod>
i think it was more about organization and structure that I was going for
<zid>
I like a good BUS MASTER
<zid>
just because things called BUS MASTER are cool
<netbsduser``>
mcrod: the three component sources of the architecture i opted for are NeXTSTEP's DriverKit, SVR4 STREAMS, and a discussion i had with someone who had an idea on how Windows' IRP dispatch could have been implemented in a better way
<netbsduser``>
all three are worthy of study i think
<mcrod>
fair
eddof13 has joined #osdev
danilogondolfo has quit [Quit: Leaving]
klingfan has joined #osdev
asarandi has quit [Quit: WeeChat 4.0.4]
asarandi has joined #osdev
masoudd has joined #osdev
johnjaye has joined #osdev
<johnjaye>
did vms have file extensions or was that invented by DOS
<sortie>
File extensions were definitely in the original Unix
<sortie>
So we're talking 1970 which is well before DOS
<kazinsal>
VMS had a really complicated file specification
<geist>
yah file extensions also existed in tons of other systems pre 1970
deckard has quit [Quit: l8r]
deckard has joined #osdev
<geist>
though DEC based OSes pretty much always had it, so you can sort of argue that CP/M had a similar feeling to various DEC systems, and then DOS was a clone of that
<geist>
RSTS, RSX-11, OS/8, TSS/8, etc etc
<geist>
but DEC didn't really invent it
masoudd has quit [Ping timeout: 258 seconds]
<geist>
OS/8 has two letter extensions, though apparently it was released later than i thought: 1971
<kazinsal>
yeah, plus part of the original plan for the DOS family once it was clear that they needed more than just "rebrand QDOS and ship it so IBM pays us" was that DOS should look vaguely like unix, since microsoft really wanted to get deep into that SysV licensing gravy train
pounce has quit [Remote host closed the connection]
<geist>
6.2 for the win!
<geist>
PDP8 being a 12 bit machine that probably makes sense. i think it mya have been using 6 bit characters, so two characters per register
<kazinsal>
definitely
<geist>
but anyway, i think the extension thing was a pretty early convention
masoudd__ has joined #osdev
<kazinsal>
yeah, even in DOS/FAT it's still technically just the last three characters of the eight-character filename field
Left_Turn has joined #osdev
masoudd_ has quit [Ping timeout: 255 seconds]
Turn_Left has quit [Ping timeout: 264 seconds]
<geist>
with unix it's sort of interesting to consider if extensions are part of the OS or not. since the kernel doesn't really care, and nothing essential really switches on it
<geist>
obviously it's a useful convention, but the core OS doesn't really use it
<zid>
if a filename has a dot in it and nobody is around to hear it
<zid>
does it still have an extension
<geist>
that isn't otherwise specified in an explicit path, like say a LD_LOAD section in an elf binary, or #!
<kazinsal>
yeah, really it seems to be more convention and, at most, "enforced" on a program by program basis
<kazinsal>
I think early unix toolchains would just take a filename and then append the correct extensions for input and output files
masoudd__ has quit [Ping timeout: 255 seconds]
<kazinsal>
so eg `cc foo` would compile foo.c to foo.o
<kazinsal>
then `ld foo` would load foo.o to a.out
<geist>
yah that is how a lot of non unix toolchains i've fiddled with tend to do things too. CP/M, DEC OSes, etc
<geist>
VMS
<geist>
you only really fiddle with the base name and the other files with extensions are made as a side effect
<geist>
which is still sort of there, since `cc -c foo.c` makes a foo.o
Left_Turn has quit [Remote host closed the connection]
Left_Turn has joined #osdev
Turn_Left has joined #osdev
Left_Turn has quit [Ping timeout: 255 seconds]
admiral_frost has joined #osdev
Turn_Left has quit [Remote host closed the connection]
Left_Turn has joined #osdev
GeDaMo has quit [Quit: That's it, you people have stood in my way long enough! I'm going to clown college!]
<Ermine>
STREEEEAMS
Left_Turn has quit [Remote host closed the connection]
Left_Turn has joined #osdev
Maja has joined #osdev
eddof13 has quit [Quit: eddof13]
eddof13 has joined #osdev
gbowne1 has joined #osdev
gbowne1 has quit [Remote host closed the connection]
<heat_>
it's not coincidental that zen grew all sorts of capabilities and instructions required for the arm64 ISA
<heat_>
like clzero
<klingfan>
would u guys like to know some other problems with the osdev discord
<heat_>
no fuck off
<klingfan>
/ignore _heatd bootlicker
heat_ has quit [Remote host closed the connection]
<klingfan>
im done
<klingfan>
go play with sortix
klingfan has quit [Quit: fuck]
<sortie>
Well the problem solved it self, uh
<zid>
he solved it by quitting, more like
<zid>
heat*
heat has joined #osdev
lukflug has joined #osdev
<netbsduser``>
welcome lukflug
<lukflug>
hello!
<pitust>
oh wow who is this "lukflug" person who showed up here?
xenos1984 has joined #osdev
lukflug has quit [Quit: Leaving]
bauen1 has joined #osdev
Left_Turn has quit [Read error: Connection reset by peer]
<kof123>
> mens'? mens's > men's > menses http://dict.org/bin/Dict?Form=Dict2&Database=devil&Query=mind > From the Latin _mens_, a fact unknown to that honest shoe-seller, who, observing that his learned competitor over the way had displayed the motto "_Mens conscia recti_," emblazoned his own front with the words "Men's, women's and children's conscia recti."
<bslsk05>
dict.org: dict.org- mind
CaCode has quit [Quit: Leaving]
pounce_ has joined #osdev
[itchyjunk] has joined #osdev
[itchyjunk] has quit [Remote host closed the connection]
[itchyjunk] has joined #osdev
pounce_ is now known as pounce
<immibis>
mcrod: it dies at the semicolon, after the function call. All the code in the function runs as part of the function call - I hope that was obvious to you
<zid>
soemthing's upsetting his destructors apparently though
<zid>
we can't tell what, because C++ has no way to tell what it's going to do without full source listings of every file :p
<immibis>
btw everything is politics and blanket "no politics" rules are themselves a form of toxic politics
<zid>
There's drama politics and there's 'discussing governmental policy' politics
<immibis>
heat_ there goes my plan to make a Turing complete system out of self-modifying A/D bits
<bslsk05>
github.com: SAMEthing/src/frontend/qt/app.cpp at main · mcroddev/SAMEthing · GitHub
<mcrod>
for context
<netbsduser``>
immibis: for clarity there is no "no politics" rule on the osdev discord
<mcrod>
I expected the temp object from toUtf8() to last until the end of this function, *not* until the semicolon
<netbsduser``>
we suspect the user who came here complaining is someone who was banned for making a highly offensive statement
<mcrod>
and, by the end of the function, I mean line 128
<mcrod>
not whatever crack C++ smokes
<zid>
doesn't even have to have been that, an osdev discord's main channel is not a place to talk about gaza
<zid>
and then getting mad when told to stop is ripe grounds for removal
<johnjaye>
c++ smoking crack. that's a bit harsh isn't it
<netbsduser``>
it was an offtopic channel where such discussion is expected
<mcrod>
johnjaye: no, you're able to get treatment
<zid>
you bin spyin?
<immibis>
mcrod I think the best abstraction tends to mirror the physical hardware topology. Your PC has a different way to access the PCIE bus than your PS4, but once you can access the PS4 bus, you send the same messages to a GPU or NIC to make it work, whether it's plugged into a PC or a PS4. But the way to send those messages might be different.
<netbsduser``>
but what isn't tolerated is making statements endorsing violence for obvious reasons
<mcrod>
immibis right
pounce has quit [Remote host closed the connection]
<immibis>
zid: there's actually no difference between discussing government policy and drama. Anyone who tells you there's a difference is actually trying to sell you on certain politics. There's no difference between politics and economics, either.
pounce has joined #osdev
<mcrod>
my mother said it best
<mcrod>
do not discuss religion or politics
<immibis>
yes, most people who complain like this troll complained are people who got banned for good reasons for saying unambiguously shitty things
<mcrod>
i do break that rule if and only if there's decent proof that they align with my views and I'm unlikely to start a holy war
<mcrod>
but you'll rarely hear me talk about any of that in a public channel
<mcrod>
even in an off topic one
<immibis>
"Do not discuss religion or politics" is usually a rule put in place by people with shitty religion or politics who don't want to hear the truth
<mcrod>
that's crap
<mcrod>
what's "truth" here?
<immibis>
now, "religion and politics are off-topic here" is just a fact, because this is #osdev and not #religio!MN or #politics
<immibis>
#religion *
<zid>
It's almost never put in place by people like that
<immibis>
zid: it is
<zid>
It's almost never put in place by people like that
<mcrod>
it's usually put in place to prevent reactions like yours
<immibis>
mcrod: "politics is off topic here" is an example of a truth
<admiral_frost>
immibis, how many people have you met/come-across who goes into religious or political discussions evaluating their views (i.e checking if they are valid) versus those who go in to defend their position?
<mcrod>
i'm a fervent irreligious person
<admiral_frost>
Most people don't want to change their views and the discussions besides being fruitless become hostile
<immibis>
admiral_frost: none. They defend it, in an ostrich reaction to being shown reality
<mcrod>
and I would never discuss the merits of someone's religion with them
<zid>
This is not infact, the first time immibis has brought this shite up either
<mcrod>
the reality is
<immibis>
zid you're on /ignore
<zid>
and ironically, its the very thing he rails against
<mcrod>
that is pretty ironic
<mcrod>
he doesn't want to hear the truth
<zid>
If only I wasn't talking politics with him, eh?
<mcrod>
do you know how many people in world history with religious beliefs have influenced computer science
<mcrod>
or... anything, really
<immibis>
it's frequently advised that you don't talk about religion or politics with people you are dating, which is exactly the wrong advice, because you need to know if you are incompatible like that
<mcrod>
we're not dating
<mcrod>
.
<zid>
is he really that autistic
<immibis>
obviously.
<mcrod>
ah, that was more perfect zid than you realize.
<zid>
haha
<immibis>
how the fuck would you read into that that I think we're dating? wtf. It's just an example of the no politics rule
<mcrod>
I can assure you
<mcrod>
plenty of off topic discussion happens here
<mcrod>
look at me bitching about the very clear stupidity of C++
<mcrod>
what we generally *do not do* is get into things that call the merits of an individual into question
<zid>
Except RMS
<mcrod>
such as, politics or religion
<zid>
all hail rms
<immibis>
why do you think politics or religion calls the merits of an individual into question
<mcrod>
discussing them in a public forum which will inevitably lead to chaos?
<immibis>
and C++ doesn't call the merits of bjarne stroustrup into question?
<mcrod>
yeah, that's not conductive to the environment at all.
<mcrod>
C++ is technical
<zid>
mcrod: yea, why it would it make you form opinions of people, if you knew their stance on various topics? it's not like you're dating.
<mcrod>
I never said bjarne stoustroup was a bad person
<zid>
(he is)
<immibis>
I also don't believe I said anyone was a bad person
<immibis>
At least, not here and recently
<mcrod>
I think you're just splitting hairs at this point
<zid>
I think what this *does* mean, is that me and immibis are dating.
<immibis>
you made the argument that I said people were bad people
<zid>
Because he went to the effort to ignore me over politics
<mcrod>
discussing politics and religion are instant arguments in a public forum
<mcrod>
that can be empirically proven
<zid>
we're even having a meta-argument about it right now lol
<mcrod>
but then you say that people just don't want to hear the truth about politics/religion or something, implying that whatever view you have, is indeed the superior one
<mcrod>
which ironically is *exactly* what causes problems
<zid>
mcrod: this is literally the definition of trolling btw
<mcrod>
yeah I know
<mcrod>
I'm not going to go on with it for long
<mcrod>
the only times I've ever said anything really personal here are when I was very painfully obviously joking
<kof123>
you revealed you named your cat anubis
<mcrod>
yes i did
<mcrod>
and i'm happy that she is the weigher of souls
<mcrod>
even though she needs her claws clipped before she skewers me again
<heat>
mcrod: obviously that's not lasting until the end of the function
<heat>
the object lives on while there's a reference to it
<mcrod>
no it isn't obvious
<heat>
it is, you just don't know the language's rules
<mcrod>
i don't deny that, i don't deny that i'm wrong
<heat>
C has the same idea, it's just harder to abuse
<mcrod>
i'm saying that was unexpected
<heat>
i'd be like
<heat>
struct S foo(void); struct S *ptr = &(foo());
<zid>
I never actually looked at how that shit works
<zid>
how does the method chaining shit work?
<heat>
i'm fairly sure this is syntactically wrong C, but the point stands
<mcrod>
reader->readLine(num) returns QString, then I call toUtf8() on it which returns QByteArray, then I call constData() which returns const char*
<zid>
like, you can't malloc that shit cus it'd leak from the middle dudes, and you can't return an automatic either
<mcrod>
except when the semicolon hits, QByteArray is killed
<zid>
so wtf goes on?
<heat>
what method chaining?
<zid>
a().b().d()
<heat>
it's all automatics, and they fall out of scope
<heat>
exactly the problem mcrod is hitting
<zid>
then it does nothing which is obviously untrue
<zid>
so how does it *work*
<zid>
in what scenarios does it do something?
<heat>
how does it do nothing?
<zid>
you just said it's automatics and they fall out of scope
<zid>
that's UB
<zid>
so that's clearly not what people are doing
<heat>
they fall out of scope after being used
<mcrod>
he's saying I'm wrong
<mcrod>
which I am
<zid>
so did he reply to me or not I can't tell
<heat>
i'm not sure if its after being used or after the line/expression ends. probably the second
<mcrod>
the fact that it's even a question is *frustrating*
<heat>
BUT in most cases what ends up happening is
<heat>
class S { S& a(); S& b(); S& c(); }; and a, b and c return a reference to 'this'
<zid>
like one way I can *make* it work is to only return pointers to member vars
<zid>
but that's.. not especially useful
<zid>
them being automatics mean I can't chain at all ever
<heat>
why can't you?
<zid>
because it's UB
<heat>
they all fall out of scope after you no longer need them
<zid>
I already mentioned
<zid>
if there's a special scope for method chaining, that's something else that isn't what automatic means to me
<zid>
It creating a copy in a temporary automatic, perhaps
<zid>
so it just turns into int anonya, anonyb, anonyc; a = f.a(f); b = f.b(f, a); c = f.c(f, b);
<zid>
err anonya = etc
<heat>
oh but that doesn't work
<zid>
should do?
<heat>
the only chaining you can do is use the result of the last call to call something else, thru lets say a member function, or a function pointer
<heat>
you can't take the result of something, call that same object again and pass the result
<zid>
wait, it has to return a function pointer?
<heat>
no
<zid>
or it doesn't and it works precisely like I just wrote?