--- 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 |