code logs -> 2019 -> Mon, 14 Oct 2019< code.20191013.log - code.20191015.log >
--- Log opened Mon Oct 14 00:00:51 2019
00:09 Kindamoody [Kindamoody@Nightstar-eubaqc.tbcn.telia.com] has quit [Ping timeout: 121 seconds]
00:10 iospace [quassel@Nightstar-50v6q2.members.linode.com] has quit [[NS] Quit: No Ping reply in 180 seconds.]
00:12 iospace [quassel@Nightstar-50v6q2.members.linode.com] has joined #code
00:12 mode/#code [+o iospace] by ChanServ
00:16 iospace [quassel@Nightstar-50v6q2.members.linode.com] has quit [[NS] Quit: No Ping reply in 180 seconds.]
00:17 himi [sjjf@Nightstar-1drtbs.anu.edu.au] has joined #code
00:17 mode/#code [+o himi] by ChanServ
00:18 iospace [quassel@Nightstar-50v6q2.members.linode.com] has joined #code
00:18 mode/#code [+o iospace] by ChanServ
00:20 Kimo|autojoin [Kindamoody@Nightstar-eubaqc.tbcn.telia.com] has joined #code
00:20 mode/#code [+o Kimo|autojoin] by ChanServ
01:50 Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has quit [Connection closed]
03:30 Degi [Degi@Nightstar-as1on3.dyn.telefonica.de] has quit [Ping timeout: 121 seconds]
03:30 Degi [Degi@Nightstar-tljrft.dyn.telefonica.de] has joined #code
03:49
<@celticminstrel>
...I had to disable JavaScript on MDN. o.O
03:56
<&[R]>
O.o
03:57
<@celticminstrel>
I guess it's because of the age of my browser, but still, it was a surprise.
03:58
<&[R]>
Works fine on FF 51
03:59
<@celticminstrel>
Mine's even older - 47.
04:00
<@celticminstrel>
(Or is 51 the latest? I haven't been paying attention to the FF version numbers.)
04:04
< Mahal>
69.0.1 is my version
04:05
<&[R]>
Same
04:10
<&[R]>
(Run two different versions on two different systems)
04:15
<@celticminstrel>
Same.
04:15
<@celticminstrel>
I'm probably using 69 or 68 on my other system.
04:15
<@celticminstrel>
But this one's on 47.
05:09 Vorntastic [uid293981@Nightstar-2dc.p8m.184.192.IP] has joined #code
05:09 mode/#code [+qo Vorntastic Vorntastic] by ChanServ
05:24 Derakon is now known as Derakon[AFK]
05:37 himi [sjjf@Nightstar-1drtbs.anu.edu.au] has quit [Ping timeout: 121 seconds]
05:50 himi [sjjf@Nightstar-1drtbs.anu.edu.au] has joined #code
05:50 mode/#code [+o himi] by ChanServ
06:21 * McMartin runs entirely through the x86_64 assembly track on Exercism.
06:21
<&McMartin>
This also included looting the OEIS, so hooray for that.
06:22
<~Vorntastic>
Fuck yeah oeis
06:33
<&McMartin>
(Closed form for square pyramidal numbers.)
06:34
<&McMartin>
(Turns out that the code for computing the closed form is two bytes larger than just doing the loop)
06:49 himi [sjjf@Nightstar-1drtbs.anu.edu.au] has quit [Ping timeout: 121 seconds]
06:52
<&McMartin>
What's MDN?
06:54
<~Vorntastic>
Mozilla developer network?
06:54
<~Vorntastic>
Which is my standby for JS and other web technologies
06:55
<~Vorntastic>
*examines* yes pretty sure that's what he meant
07:05
<&McMartin>
Aha, OK.
07:05
<~Vorntastic>
Uh... Lda 2; mul a x a; add a 3 a; mul a x a; add Inc a; mul a x a; div a 6 a. Modulo calling conventions, instruction set, etc.
07:05 * McMartin does not meaningfully wield web technologies
07:06
<&McMartin>
Yeah, instruction set for x86 on multipliers is obnoxious.
07:07
<&McMartin>
the mul instruction is MUL {reg} and the other operand is fixed at EAX and the output is fixed as EDX:EAX
07:07
<&McMartin>
So you have to juggle around that
07:07
<&McMartin>
And then when you div, EDX:EAX is a forced input and you cannot divide by immediates.
07:08
<~Vorntastic>
Blah!
07:08
<&McMartin>
Also, immediates are four bytes long, and branch targets are usually one byte long.
07:09
<&McMartin>
https://exercism.io/my/solutions/f1e9c83c8e0740a38ffdfeb72fc75313
07:10
<&McMartin>
Every instruction there is two bytes long except for ret, push, and pop (1 byte), and immediate mov, and call (five bytes each).
07:10
<&McMartin>
This also ruthlessly exploits the fact that setting a 32-bit destination register zero-extends to the entire 64-bit register.
07:11
<&McMartin>
Because 64-bit operations that aren't push/pop cost an extra instruction byte to mark "this is 64-bit mode", as do instructions that use any of the 8 GP registers that IA-32 doesn't have.
07:12
<~Vorntastic>
Looks like I must log in. Can't do that on my phone, GitHub creds are at home.
07:13
<&McMartin>
boo.
07:13
<&McMartin>
Tiny pastebomb, with the disgusting AT&T format that puts dest at the end instead of at the beginning:
07:13
<&McMartin>
000000000000000b <sum_of_squares>:
07:14
<&McMartin>
b: 89 f8 mov %edi,%eax
07:14
<&McMartin>
d: ff c0 inc %eax
07:14
<&McMartin>
f: f7 e7 mul %edi
07:14
<&McMartin>
11: 01 ff add %edi,%edi
07:14
<&McMartin>
13: ff c7 inc %edi
07:14
<&McMartin>
15: f7 e7 mul %edi
07:14
<&McMartin>
17: 31 d2 xor %edx,%edx
07:14
<&McMartin>
19: b9 06 00 00 00 mov $0x6,%ecx
07:14
<&McMartin>
1e: f7 f1 div %ecx
07:14
<&McMartin>
20: c3 retq
07:14
<&McMartin>
(%edi is the argument)
07:14
<&McMartin>
Also, because I did check. Assigning 6 to CL and then zero-extending CL to ECX saves no space.
07:18
<&McMartin>
Now, one disadvantage of this code is that almost every single line in the routine has a data hazard against the line behind it, with the sole exception of MOV ECX, 6
07:19
<&McMartin>
So this routine is made almost completely out of pipeline stalls
07:20
<&McMartin>
I guess the RET doesn't depend on anything, though whatever did the call will be consulting EAX pretty quickly afterwards, which can't run until the DIV retires.
07:45 celticminstrel [celticminst@Nightstar-ocfc15.dsl.bell.ca] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!]
08:30
<@sshine>
https://www.youtube.com/watch?v=TTVCaZVUvC0&t=157 -- interview with Bjarne Stroustrup where he gets trolled.
08:46
<&jeroud>
I have first-class continuations!
08:47
<&jeroud>
(But I don't have dynamic-wind and I have no idea how I'd implement it.)
08:47
<&jeroud>
(I also don't yet have TCO or proper macro hygiene. But the latter seems to not actually matter much.)
08:49
<&jeroud>
So instead of implementing those I'm trawling through SRFIs for useful things.
08:51
<&jeroud>
I've now reached the point where it would be helpful to have a nontrivial Scheme program to run.
08:51
<&jeroud>
Or a comprehensive test suite, at least.
08:53
<&jeroud>
Who wants to write a comprehensive R5RS test suite for me?
08:53
<&jeroud>
(Yeah, didn't think so.)
09:22 himi [sjjf@Nightstar-v37cpe.internode.on.net] has joined #code
09:22 mode/#code [+o himi] by ChanServ
10:12
<@sshine>
we just got a design system at work
10:12
<@sshine>
since it's vacation week, we're being chatty
10:13
<@sshine>
so one coworker says "I'm drawing this button and this checkbox, and it won't align vertically."
10:13
<@sshine>
(note: we have one guy who makes the design system components. I think he's on vacation, but whatever.)
10:13
<@sshine>
and I say "good thing we have a design system, then these low-level rendering problems are out of our hands."
10:14
<@sshine>
and she says "yeah, right. anyway, I've almost made it work."
10:15
<@sshine>
and I say "but you can't, because the design-system working group are the only people who can add new components"
10:19
<@sshine>
so the logic being applied at the largest scale is this: we avoid using the design system because it's so new it hasn't got any components. and so, for every new non-standard component added, we're one step farther away from having a design system.
10:20
<@sshine>
</rant>
10:20
<@sshine>
how company culture can break something before it's even launched.
10:20
<@sshine>
</rant-srsly>
13:53 gnolam_ [lenin@Nightstar-e3tf4i.priv.bahnhof.se] has joined #code
13:54 gnolam [lenin@Nightstar-e3tf4i.priv.bahnhof.se] has quit [NickServ (RECOVER command used by gnolam_)]
13:54 gnolam_ is now known as gnolam
13:54 mode/#code [+o gnolam] by ChanServ
14:19 celticminstrel [celticminst@Nightstar-ocfc15.dsl.bell.ca] has joined #code
14:19 mode/#code [+o celticminstrel] by ChanServ
15:03 Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has joined #code
15:03 mode/#code [+qo Vornicus Vornicus] by ChanServ
15:23
<@ErikMesoy>
Let's see, polar coordinates r and theta... using a single-character non-index variable smells, I'll rename r to arr... no, that sounds like it's an array... okay, now I have yarr and theta.
15:39
<@TheWatcher>
Why not use 'rho'?
15:42
<~Vornicus>
rho is the usual letter for roll
15:42
<~Vornicus>
(theta is yaw, phi is pitch)
15:43
<~Vornicus>
More seriously though, 1 letter names are just fine for coordinates, as this one is
15:44
<@celticminstrel>
Yeah, r as a variable name for radius or polar coordinates doesn't smell.
15:45
<@celticminstrel>
I wonder which languages actually allow using θ as a variable name. >_>
15:45
<~Vornicus>
Quite a lot
15:46
<&[R]>
JS does
15:46
<~Vornicus>
Python yes; JS yes;
15:46
<@celticminstrel>
Did Python 2 allow it?
15:46
<@TheWatcher>
Perl does if you `use uft8;`
15:46
<~Vornicus>
Lua no
15:46
<@celticminstrel>
Not surprised about Lua...
15:47
<&[R]>
xs yes
15:47
<~Vornicus>
C no
15:47
<&[R]>
Though you have to handle variable access in a special way in xs
15:48
<&[R]>
; θ = 'test'; echo $(θ)
15:48
<&[R]>
test
15:48
<~Vornicus>
python 2 no
15:48
<~Vornicus>
(letters are specifically defined as being the standard ascii letters)
15:49
<&[R]>
bash no
15:49
<&[R]>
zsh yes
15:50
<~Vornicus>
Py3 explicitly uses utf8 encoding for its script files and marks anything that's a letter in unicode as allowed
15:50
<&[R]>
fish yes
15:51
<&[R]>
PHP (5.6 and 7) yes
15:54
<&[R]>
Java's the last language I could test, but I don't feel like writting all the boilerplate needed to test it
15:58
<@TheWatcher>
heh
15:59
<@ErikMesoy>
TheWatcher: I did not think of rho. That sounds better, I'll update it. Vornicus: this is trig, not piloting.
16:08 Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has quit [Connection closed]
16:48 Vorntastic [uid293981@Nightstar-2dc.p8m.184.192.IP] has quit [[NS] Quit: Connection closed for inactivity]
17:00 Emmy [Emmy@Nightstar-9p7hb1.direct-adsl.nl] has joined #code
18:12 Kimo|autojoin is now known as Kindamoody
19:30 Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has joined #code
19:30 mode/#code [+qo Vornicus Vornicus] by ChanServ
20:35 himi [sjjf@Nightstar-v37cpe.internode.on.net] has quit [Ping timeout: 121 seconds]
21:02 Vorntastic [uid293981@Nightstar-6br85t.irccloud.com] has joined #code
21:02 mode/#code [+qo Vorntastic Vorntastic] by ChanServ
21:14 Pink` [user1@Nightstar-g7hdo5.dyn.optonline.net] has joined #code
21:17 Pinkhair [user1@Nightstar-g7hdo5.dyn.optonline.net] has quit [Ping timeout: 121 seconds]
21:22
<&McMartin>
Objective-C no; Swift yes
21:22 Derakon[AFK] is now known as Derakon
21:27
<&McMartin>
Swift actually uses emojis in its example variable declarations in its official documentation, which I think moves into "obscenity" territory
21:27 Pink` [user1@Nightstar-g7hdo5.dyn.optonline.net] has quit [Ping timeout: 121 seconds]
21:27 Pink` [user1@Nightstar-g7hdo5.dyn.optonline.net] has joined #code
21:28
<&McMartin>
Oh yeah, Golang also allows it, and people have used canadian aboriginal alphabets to pretend they're writing things like List<T>
21:35
<@ErikMesoy>
I remember that one. https://www.reddit.com/r/rust/comments/5penft/parallelizing_enjarify_in_go_and_rust/dcsgk7n/
21:44
<~Vorntastic>
Omgwtf
21:47
<&McMartin>
There are many reasons, from accessibility to cultural neutrality, to allow unicode in identifier names
21:47
<&McMartin>
But these are arguments two and three as to why you shouldn't. =P
21:48
<&McMartin>
(Argument #1 is "Every scheme that does this treats the precomposed and decomposed versions of a glyph as distinct, producing unique identifiers with visual representations the standard insists must look identical")
23:03 Emmy [Emmy@Nightstar-9p7hb1.direct-adsl.nl] has quit [Ping timeout: 121 seconds]
23:43 Kindamoody [Kindamoody@Nightstar-eubaqc.tbcn.telia.com] has quit [Client exited]
23:44 Kimo|autojoin [Kindamoody@Nightstar-eubaqc.tbcn.telia.com] has joined #code
23:44 mode/#code [+o Kimo|autojoin] by ChanServ
23:51 Vorntastic [uid293981@Nightstar-6br85t.irccloud.com] has quit [[NS] Quit: Connection closed for inactivity]
--- Log closed Tue Oct 15 00:00:53 2019
code logs -> 2019 -> Mon, 14 Oct 2019< code.20191013.log - code.20191015.log >

[ Latest log file ]