00:00:20 izalove : on an out-of-order pipeline, the problem with multiple result instructions is that they really take 2 slots on the pipeline 00:01:04 which means you have 1 slot instructions and 2 slot instructions and that complexifies the scheduler 00:01:24 idiv is slower than the rest of the pipeline anyway 00:01:53 most instructions are 1 slot which means you're basically adding some extra stalling stuff for no good reason really 00:02:20 izalove : that's also a thing... you want to have slow instructions have as few side effects as possible 00:02:56 this is why zero division exceptions are bad actually 00:03:18 dividing by 0 is fast 00:03:53 yes but the problem is that it basically turns into a conditional jump 00:04:15 so don't divide by 0? 00:04:24 it's a cpu design problem 00:04:49 what's the alternative? idiv should have like 4 operands? 00:05:11 every conditional instruction needs to be tracked by the retirement system 00:05:20 which means that it has to be able to rollback everything 00:05:42 idiv should be 32/32->32 00:05:48 and strictly arithmetic 00:06:07 change no flags, no exceptions, no extra remainder register 00:06:37 and negative results should round the same as positive results - down 00:06:48 so that the compiler can optimize /8 as >>3 00:06:51 but that means to throw away information 00:07:06 irl 99.9% of divisions are C++'s / operator 00:07:12 you can't compute division without computing both results 00:07:17 which only gives you the 32 bit result and nothing else 00:07:51 you need to use some non portable intrinsic if you want the full result, and that only compiles on x86 00:07:57 which means that nobody ever uses it 00:08:05 compilers use it 00:08:14 people use / 00:08:15 also div(3) is a thing 00:08:27 Oh wow 00:08:30 / is 32x32->32 00:08:45 or 64x64->64 on 64-bit when using 64-bit types 00:09:16 if you really need more of the result 99.9% of the time you'll just switch to floating point anyways 00:10:15 it's the same thing as the higher bits of the result of * on 32bit cpus 00:10:40 in theory 32*32 division gives you 64 bits of result so you might want to keep those higher bits 00:10:47 -!- hppavilion[1] has joined. 00:10:52 er 00:10:59 in theory 32*32 multiplication gives you 64 bits of result so you might want to keep those higher bits 00:11:00 rather 00:11:26 in practice 99% of the actual multiplications in actual programs are 32*32->32 simply because that's how C++'s * operator works 00:11:56 again you're throwing away information 00:11:58 so you end up with the problem of having an opcode that doesn't work in the way people actually use it 00:12:18 izalove : real programs throw away information 00:12:59 and for programs it's better to have less information but have multiply results come in 1 cycle earlier because it's easier to schedule and implement fast on silicon 00:13:06 I had different idea, you have partially reprogrammable microcodes, and part of the C runtime is in the microcodes 00:13:43 zzo38 : how does that make your cpu faster 00:15:01 The microcode is reprogrammed to make whatever operation is the mainly one faster. 00:15:15 (As well as smaller code, if applicable) 00:15:15 izalove : like, what's good for programs is something like the GBA's multiply... it throws away bits and is only 32*32->32... BUT it comes out in 1 cycle if the multiplicator is 8bit (and games used this a ton) 00:15:42 You don't have to access the external RAM during part of the operation therefore it can do two thing at once and be faster. 00:16:36 zzo38 : irl on x86, memcpy() has been faster in some tight software loop rather than REP STOSB for years 00:17:13 . o O ( and more correct too ) 00:17:19 and that's one C++ library function that cpu designers know that people use and needs to be fast and could specifically optimize for 00:17:33 mad: are you mixing up memset and memcpy or stosb and movsb? 00:17:38 probably 00:17:43 :D 00:18:04 yeah 00:18:12 I do know of that things in memcpy() for in x86 00:18:22 the general problem is 00:19:11 to run your microcoded block copy, the cpu has to make sure it doesn't conflict with any other operations in the pipeline 00:19:21 which means that it's slow to start and to stop 00:19:44 to make sure the cpu doesn't reorder the micro-ops in a wrong way or something like that 00:20:01 And that is done in my design by the blitter, so it does not block microcode (although it does block memory access, meaning you still have to wait before the next non-microcode instruction is executed) 00:20:33 zzo38 : what sort of microcode operations do you have that don't access memory? :D 00:21:13 like, even operations like function call and return have memory accesses in them 00:21:13 All of them mandatorily do access memory actually, but you can just suppress that part while the blitter is in operation. 00:21:22 mad: and what's the point of making rep movsb fast if the language runtimes don't use it anymore anyway... 00:21:43 (circular reasoning is fun) 00:21:57 int-e : who knows, maybe they've put reb movsb back in by now 00:22:15 [wiki] [[Special:Log/newusers]] create * JGeo * New user account 00:22:28 I guess it's particularly compact in the instruction cache 00:22:29 int-e: ask intel, who made it really fast again in ivy bridge 00:22:46 or maybe it was haswell 00:23:06 but I'm not sure icache compactness on that kind of operation is really worth it 00:24:57 also full euclidean division is used very often: when calculating rectangular array indices, or in high-precision arithmetic 00:25:39 those are the uses that need to be optimal, not C programmers' bizarre * and / operators 00:26:01 in what field? :D 00:27:09 in sound processing (my field), if you're running into precision limits of / you switch to floating point 00:27:51 but it's true that if you're doing bignum processing then that's a different thing and then it might be good 00:29:00 a whole bunch of cpu design decisions that make no sense in general purpose code (flags registers, add-with-carry, 32*32->64 multiply, etc) suddenly make total sense if you're doing bignum, yes 00:29:03 even remainder-less division gives the quotient to full precision, so there is no precision limit involved 00:29:18 what do you mean by precision? 00:29:40 Other thing is if writing assembly-language programming, but that is only if you target a specific computer 00:29:47 well, sound never needs more than 64 bit programming 00:30:06 64 bit double precision float is really good enough for the ear 00:30:19 and 99% of the time 32 bit float is good enough as well, for audio 00:30:50 3d gfx in video games is another different field so I expect it breaks some other way :3 00:30:54 most CPUs don't provide euclidean division for more than 64-bit integers, so nothing is wasted there (except having a remainder in signal processing would be odd) 00:31:45 irl if I need a remainder 99% of the time I can change scaling factors and then just do var &= 0xfff 00:32:15 so in a way, my code has a ton of remainders, but they're all implemented with bitmasks 00:32:52 One program I wrote that is doing sound processing is XISYNTH, which internally works with 64-bit floating-points but it must downgrade the signal to 16-bit integers when output. 00:32:54 does that work when the divisor is not a power of 2? 00:33:05 Jafet : of course not :D 00:33:14 then you weren't doing any divisions at all 00:33:34 (But there is also one option you can tell it to downgrade to 8-bits instead, but by default it downgrades to 16-bits) 00:33:49 it's very rare to have variable quotients in signal processing 00:34:04 so 99% of the time if / shows up, turn it into * 00:35:10 one case I can think of is ramping a value over a block linearly... 00:35:30 then stepsize = (endvalue - startvalue) / blocksize 00:36:27 in that _one_ particular case, /'s way of rounding upwards in the negatives instead of downwards as usual sorta helps you-ish 00:37:50 if you have to ramp more than 1 parameter, then it's better to do 1/blocksize once and then use * for each ramped value 00:56:15 -!- Zarutian has joined. 01:37:55 .,+*=A# 01:37:59 are these characters sorted by brightness? 01:38:42 -!- HackEgo has quit (Ping timeout: 250 seconds). 01:43:31 = is less bright than * on my font 01:43:50 you might want to look into % $ @ & 01:43:57 : 01:44:05 - 01:44:05 ehlo mad 01:44:24 ...hi 01:44:32 - 01:44:32 Kernel panic - not syncing: Attempted to kill init! 01:44:37 -!- HackEgo has joined. 01:46:01 .oO@ 01:46:11 i'll just use these 01:53:24 -!- iovoid has quit (Excess Flood). 01:58:25 -!- iovoid has joined. 01:58:34 -!- moonheart08 has joined. 02:05:23 -!- trout has quit (Quit: found 1 in /dev/zero). 02:08:47 izalove: This is a meaningless question without font choice 02:08:58 AFAYK, my font is negative 02:11:20 * hppavilion[1] has a brilliant idea 02:11:28 (maybe) 02:11:59 hppavilion[1]: it is also a question on transliteration-orthography (or how it is for one is using something like freemasons 'cipher') 02:12:42 (or eljian script which is very similiar) 02:18:37 -!- HackEgo has quit (Ping timeout: 240 seconds). 02:19:46 -!- ais523 has joined. 02:21:10 is the wiki down? 02:21:39 Looks down to me. 02:22:29 ugh, and I have a new language I want to document 02:22:48 for the time being, you can get an interpreter with embedded spec from http://nethack4.org/esolangs/7/7.pl 02:23:27 But it's being served as application/x-perl :-( 02:26:15 for me that opens it in a text editor, with syntax highlighting 02:26:28 given that the spec is in perldoc anyway, a browser wouldn't be ideal for viewing it 02:28:19 hppavilion[1]: lets hear that brilliant idea or least a rough sketch of it 02:28:36 Zarutian: Basically, make a font with non-english characters for the alphabet 02:28:45 Zarutian: Completely unrelated to english 02:29:02 hppavilion[1]: like the fúþark runic charset? 02:29:06 Maybe? 02:29:28 Zarutian: Take advantage of brain's neuroplasticity to read in it. Never have anyone read over my shoulder again. 02:29:30 Profit. 02:31:13 who's in charge of the wiki? fizzie? we should probably ping whoever it is to let them know the wiki's down 02:31:17 hppavilion[1]: I have used an variant of 'younger swedish fúþark' to write semi private notes. That is, notes that I do not intend to be glanced at and absorbed by people seeing my writing. 02:31:17 Also, look like a god 02:32:50 -!- moonheart08 has quit (Ping timeout: 244 seconds). 02:38:55 -!- oerjan has joined. 02:47:47 wiki down :( 02:48:07 who keeps the wiki up these days? 02:48:10 i,i no one 02:48:28 fizzie may 02:48:52 but only if the server is up 02:49:53 <\oren\> @messages-maud 02:49:53 You don't have any messages 02:50:45 `quote @messages 02:50:52 `? @messages-loud 02:51:03 Oh, right. 02:51:49 <\oren\> O NOES 02:51:55 i guess the server isn't up, then. 02:52:05 <\oren\> @metar CYYZ 02:52:05 CYYZ 040200Z 28008KT 15SM BKN049 03/M01 A3020 RMK SC7 SLP235 02:52:56 @@ @@ (@where weather) KOAK KSFO KSJC 02:52:59 KOAK 040153Z 34004KT 10SM FEW200 13/09 A3018 RMK AO2 SLP220 T01280094 \ KSFO 040156Z 29010KT 9SM FEW015 FEW200 13/10 A3018 RMK AO2 SLP220 T01280100 $ \ KSJC 040153Z 27003KT 10SM FEW050 SCT100 13/04 02:52:59 A3018 RMK AO2 SLP218 T01280044 02:57:04 -!- HackEgo has joined. 03:00:06 is there a way to turn the knapsack problem into a turing machine? (by introducing something like an infinite number of items or something) 03:14:31 -!- Phantom_Hoover has quit (Read error: Connection reset by peer). 03:15:23 -!- hppavilion[1] has quit (Ping timeout: 265 seconds). 03:15:31 midnight spaghetti, anyone? <-- already had some at approx. 22:30 hth 03:15:50 that's no midnight spaghetti >:O 03:15:56 indeed 03:18:26 oerjan can eat midnight spaghetti at whatever hour he pleases hth 03:18:46 tdh thx 03:20:13 That didn't help? 03:20:31 [wiki] [[Language list]] https://esolangs.org/w/index.php?diff=50444&oldid=50440 * Ais523 * (+8) /* Non-alphabetic */ +[[7]] 03:20:42 wiki's back up I think 03:21:40 yay 03:22:23 we seem to have two new users who couldn't get past the filter 03:23:10 and one tried a ridiculous amount of times... 03:24:37 what were they doing wrong? 03:25:17 kept adding a http link 03:25:23 *an 03:26:06 the other one didn't get to the introduction at all 03:26:38 although i'm not sure the edit he tried to make wasn't a copyvio 03:28:39 * oerjan is too lazy to download that mediafire one 03:31:29 mad: a declarative, additive version of fractran? 03:31:55 making it declarative shouldn't be too hard, but making it additive could be 03:32:11 see Bag hth 03:32:38 although that's still multiplicative in notation 03:33:23 i'm reminded of sylver coinage 03:34:00 which is not TC afaik 03:34:22 (being terminating for a start) 03:35:21 well, the first few moves are unbounded 03:41:00 (compare http://mathoverflow.net/q/122250, a chess position with game length ω) 03:41:45 has sylver coinage been proven to terminate? 03:42:37 that is, is it known whether every game has finite optimal moves 03:42:43 um it's proven that it terminates 03:42:49 each game 03:43:11 regardless of what the players do 03:44:13 maybe “terminate” was the wrong word 03:44:45 you mean if perfect play is known? 03:45:17 for example, could there be any position where the losing player can force the game to be arbitrarily long? 03:45:43 hm 03:45:52 any player can always play 1 to win. 03:46:32 oh wait it's misere 03:46:35 so he loses 03:47:39 some games with unbounded move choices (even where every game is finite) have been proven undecidable 03:47:43 iirc 03:48:03 * oerjan looks at wikipedia 03:49:12 hm the first player to name 2 or 3 would also lose 03:50:09 oh it's not been solved 03:50:44 expecting infinite chess to be found turing complete under the right conditions 03:51:21 "Hutchings's Theorem states that any of the prime numbers 5, 7, 11, 13, …, wins as a first move, but very little is known about the subsequent winning moves: these are the only winning openings known. Complete winning strategies are known for answering the losing openings 1, 2, 3, 4, 6, 8, 9, and 12." 03:51:26 this game sounds pretty good 03:51:30 though the transfinite thing is interesting 03:51:33 mad: I think it is, but all constructions so far require infinitely many pieces 03:51:45 well 03:51:54 you need some source of infinite information 03:52:01 using finitely many pieces is an open problem 03:52:13 so either soem infinitely movable piece 03:52:23 or infinitely many pieces yes 03:53:04 I don't think it's been proven that either of those are even necessary for undecidability 03:53:15 well 03:53:27 the board is infinite, so in principle short-moving pieces can move an unbounded distance 03:53:59 you for the amount of information in your state to be always able to grow more 03:54:34 er... what you need, is that the amount of information in your state needs to be always able to grow more 03:54:39 in particular, they could move an unbounded distance away from each other, and it's plausible that this could store unbounded information 03:55:00 yeah 03:55:28 you need 2x unbounded counters + 1 state (bounded) for a minsky machine 03:55:32 maybe this would not work in a directmate construction, because the pieces would no longer influence each other 03:56:26 you could use sets of passed pawns though, as their moves are irreversible 03:57:57 given a board with one-ways, 'wire crossings' (ie superposed paths in 2d), and a mix of different infinitely repeated sections, you can get computation using the movement of 1 piece (by using the x and y position as your two unbounded minsky-machine counters, and using which path you're on as the state) 04:00:05 for unbounded chess... 04:00:17 you'd need 2 unbounded movable pieces 04:00:32 that can be moved +1 or -1 an infinite number of times 04:01:05 and if they move back to position 0 they change state transitions 04:04:06 hmm, a “knapsack” problem over a word group (instead of an additive group) is undecidable again, because it is a post correspondence system 04:04:37 hmm 04:06:07 you could try and determine if a knapsack problem where each item value is a k-tuple of integers is decidable 04:06:15 (the standard knapsack problem is where k=1) 04:09:05 having a deterministic (order-independent) fractran UTM would show that a finite k-knapsack is curly-L-complete 04:09:30 k would be the number of prime factors in the fractran program 04:15:42 [wiki] [[7]] N https://esolangs.org/w/index.php?oldid=50445 * Ais523 * (+10419) new language! 04:16:19 [wiki] [[User:Ais523]] https://esolangs.org/w/index.php?diff=50446&oldid=50252 * Ais523 * (+7) +[[7]] 04:17:13 kinda wonder what infinichess would look like on a hyperbolic plane 04:18:25 <\oren\> if the right winger win the election tomorrow, maybe austria will demand south tyrol back 04:19:25 -!- Zarutian has quit (Quit: Zarutian). 04:24:28 -!- otherbot has quit (Remote host closed the connection). 04:24:50 -!- hppavilion[1] has joined. 04:39:06 why not poland with that 04:41:29 <\oren\> maybe if the right wingers win in poland, they can insto space 04:50:11 -!- Kaynato has quit (Ping timeout: 260 seconds). 04:58:58 <\oren\> `quote 04:59:05 <\oren\> @quote 04:59:05 mnislaih says: When one of the Simons says that he is having trouble reading your code, you ought to listen! 04:59:11 <\oren\> @quote 04:59:11 davidhasselh0f says: [on SPJ's "A Taste of Haskell" tutorial]: It's better than sex. 04:59:16 <\oren\> @quote 04:59:16 Failure02 says: in haskell you can have korean smilies as variables! like (^-^) 04:59:20 1259) boily: some girl from germany just messaged me and turned out the freezer was set to some sort of esoteric natural language. 04:59:36 <\oren\> YAAAAY Hackego is back! 05:00:08 <\oren\> `quote 05:00:15 536) I mean, any organisation called the Scottish Defence League should be beating up English people, what other point would there be? 05:07:42 One chess variant I have read about is all pieces also have the power of pawns (except for promotion) in addition to their normal powers. Double-step is possible from your second rank, in which case they can be captured by en-passan by any other pieces. In the default variant, rooks and queens cannot be captured by en-passan. 05:09:06 I can think of two other kinds of subvariants though. One is that rooks and queens can be captured by en-passan, but only if it moves two spaces forward from your second rank without capturing anything. The other possible way is that it is only allowed if it would otherwise be stalemate, and then only if the player who moved the rook/queen agrees to let you to capture it so that the game can continue. 05:16:55 turns out that mate-in-n problems with finitely many pieces are decidable, because each of the n moves can be described in presburger arithmetic: https://arxiv.org/abs/1201.5597 05:19:12 To have an infinite number of pieces is only also with infinite size of board 05:29:18 Jafet: Strip chess never ends in a stalemate. 05:32:00 I hear that playing in some places might get you a Czech mate 05:36:00 -!- augur has quit (Ping timeout: 260 seconds). 05:44:27 -!- augur has joined. 05:49:34 -!- hppavilion[1] has quit (Ping timeout: 265 seconds). 06:37:59 -!- impomatic_ has quit (Ping timeout: 260 seconds). 06:48:31 -!- hppavilion[1] has joined. 07:01:37 Jafet: I assume that this is finitely many pieces, but an infinite board? otherwise it's obviously decidable by brute force 07:01:51 next question: we know it isn't above TC; is it below TC? 07:08:33 decidable implies below TC, usually? 07:09:31 oh right 07:09:40 it's 7am and I haven't gone to bed yet 07:10:20 * oerjan is about to consider it 07:10:37 @time oerjan 07:10:37 Local time for oerjan is Sun Dec 4 08:10:37 2016 07:10:45 maybe you want to have some midnight spaghetti 07:11:52 Apparently there's some massive pm-spamming advertising campaign going on on freenode right now 07:12:07 does it involve spaghetti by any chance? 07:18:47 Sadly it doesn't 07:19:03 Apparently "this irc" is being moved 07:19:08 sam[0]: ...is your name a reference to mine? 07:19:18 sam[0]: Yes, I heard 07:19:26 Stay out of the big channels and you won't get spammed 07:19:28 hppavilion[1]: no 07:19:50 Or just set usermode +R 07:20:14 Stops unregged nicks PMing you 07:20:26 sam is an editor, not a model of laptop 07:20:26 sam[0]: Well, yes, that too 07:20:35 sam[0]: I heard 07:20:42 sam[0]: But the [0] 07:20:45 Wait 07:20:49 ais523: The [0] 07:21:01 Ah, that's due to something from another channel 07:21:17 A disagreement about who the original sam was 07:23:39 hppavilion[1]: well [1] isn't a laptop model as far as I know 07:24:12 ais523: And is [0] an editor version? 07:24:19 I assume 07:36:04 -!- hppavilion[0] has joined. 07:38:48 -!- hppavilion[1] has quit (Ping timeout: 265 seconds). 07:52:11 -!- mad has quit (Quit: Pics or it didn't happen). 07:54:41 @time 07:54:44 Local time for shachaf is Sat Dec 3 23:54:41 2016 07:54:48 izalove: presently cooking spaghetti 07:54:48 i need a cool nonsense name for a project 07:54:57 thanks that's a great name 07:56:16 izalove: What's a great name? 07:56:21 izalove: Do I have somebody on block?? 07:56:33 Or was it what shachaf said? :P 07:56:36 shachaf ? 07:56:53 spaghetti is the name 07:57:16 izalove: I see der chaf's message before yours 07:57:32 at first i wanted to use presently-cooking-spaghetti but then it was too long to type 07:58:29 izalove: Go with something that treats "spaghet" as if it were a greek root 07:58:36 izalove: The same way we say "spaghettification" 07:58:47 who says that 08:00:19 izalove: ...scientists 08:00:27 @time 08:00:30 Local time for shachaf is Sun Dec 4 00:00:27 2016 08:00:30 Spaghetti is ready. 08:00:36 izalove: Spaghettification is the actual, scientific term for how you get torn apart as you fall into a black hole 08:00:57 izalove: At some point, your legs move faster than your head (...assuming you fall feet first) and you're torn in half 08:00:59 If you're trying not to ping me by saying "chaf's", it's not working. 08:01:20 shachaf: I knew it'd ping you, I just wanted to call you "der chaf" 08:01:21 I have /hilight on chaf\b 08:01:24 izalove: Then the same thing happens to each piece then 08:01:27 etc. 08:01:38 Until you're just a train of individual particles falling into a singularity 08:02:13 why does everything you say end up with me in particles falling apart 08:02:29 hppavilion[0]: pretty sure that hasn't been observed and therefore can't be called science hth 08:02:56 https://aaronkcollett.files.wordpress.com/2016/01/0055_08.gif 08:03:02 shachaf: Oh. 08:03:10 izalove: It's my master plan 08:03:54 shachaf: Wait, I'm confused 08:05:48 http://media.chick.com/tractimages67491/0055/0055_14.gif 08:05:52 that's science for you 08:07:01 shachaf: Yeah, I get it 08:07:10 * hppavilion[0] remember Jack Chick is dead and dances 08:07:33 chick tracts are so good 08:09:34 Oh right, there was a celebrity death I approved of this year. 08:10:06 hikhq 08:10:20 How should we build, package, and deploy software? 08:10:42 Oh gee, that's a hard question. 08:10:56 Why don't you give me an easier one, like "does P=NP?" 08:11:21 That one is pretty easy. 08:11:33 P≠NP 08:11:38 Just the proof is tricky. 08:11:46 And I'm not asking you for a proof. 08:12:01 Would you say there exists a proof this IRC line is too small to contain? 08:12:18 `cat bin/distort 08:12:29 ​#!/usr/bin/env python \ import sys \ N=330 \ name = sys.argv[1] if len(sys.argv) > 1 else "/dev/stdin" \ with open(name, "r") as f: \ data = ' \\ '.join(f.read().splitlines()) \ for i in xrange(0, len(data), N): \ print data[i:i+N] 08:13:02 shachaf: P ⊃ NP obv. 08:13:02 oerjan: What if `` piped the output through a program that automatically became a variant of `1 when the output was long enough? 08:13:17 pikhq: You can do a lot in 330 bytes. I wouldn't bet on it. 08:17:10 shachaf: fiendish 08:17:39 oerjan: which part 08:17:41 I estimate there are approximately 330*2^8 possibilities. 08:18:01 (actually less, but that's a decent lazy upper bound) 08:23:08 -!- oerjan has quit (Quit: Shouldn't that be 2^(8*330)). 08:35:03 -!- hppavilion[0] has changed nick to hppavilion[1]. 08:35:03 THERE CAN BE ONLY ONE 08:51:06 pikhq: lern2math 09:10:31 -!- AnotherTest has joined. 09:14:38 if there were a 330-byte proof that P≠NP, I'd expect it to have been discovered by now 09:14:45 perhaps not, though 09:15:01 one of the main results of my PhD thesis had a proof that was only about a paragraph long, it might be golfed into that length 09:15:11 *golfable 09:23:27 a sufficiently well-written 330-character grant application ought to do the job 09:25:10 failing that, a 330-character invitation to attend your keynote where you will present the most important 23 problems of this century 09:25:36 is it possible that P=?NP is undecidable? (if it is, I'm pretty sure you can prove that you can't prove that it's undecidable) 09:26:21 (because doing so would prove that no algorithm for solving an NP-complete problem can provably run in polynomial time, and it's hard to see how an algorithm could run in polynomial time but unprovably so) 09:27:26 How should we build, package, and deploy software? ← via an international hub for software design and deployment 09:27:37 (alternative answer: aimake, preferably the vaporware version that I haven't even really started yet) 09:28:02 I initially understood that sentence as "I'm pretty sure you can prove that, if it is, you can't prove that it's undecidable" 09:28:26 Which I think is a stronger statement. But you can't trust me after midnight spaghetti. 09:29:09 ais523: What is aimake? 09:29:23 well, suppose that you try to brute-force a problem that turns out to always has a solution of size O(log n), but you can't prove it 09:29:25 Ah, I should have looked it up. 09:29:26 shachaf: a build system I've been working on for several years now 09:29:41 I can't think of an example, though 09:29:43 I remember now that you've talked about it. 09:29:56 it contains a (weak) AI that figures out how to build much of your code; it can also generate installers, at least on Windows 09:30:15 Jafet: This reminds me of a thing someone said once which I can't quite remember. 09:30:45 It was along the lines of, there's a problem which is undecidable, but decidable given an oracle for any undecidable problem. 09:31:29 like, a minimally undecidable problem? 09:31:43 is it known what the problem actually /is/, or merely proven that it exists? 09:31:51 Yes, I think it was known. 09:31:56 I might be misstating it, though. 09:32:39 I'll ask in the other channel. 09:33:43 partial example: a simplex algorithm with a sufficiently clever oracle for pivoting might always run in polynomial time, though it could be extremely hard to prove this 09:36:50 ais523: I don't think having to write a bit of metadata about my code is a build system problem. 09:37:04 I mean, a problem that I have with existing build systems. 09:37:19 I think having to change the makefiles whenever you shuffle things around in your source tree is really annoying 09:37:57 and things like determining which directories installed system header files are in is a problem that most build systems push onto the end user (!) even though they can be solved more easily by a computer than by a human 09:38:26 Well, I certainly think a build system's description files should be high-level and declarative, not lists of commands like Makefiles. 09:39:00 the worst metadata that a makefile forces you to write is the build dependencies 09:39:18 I'm not sure that explicit dependencies are that bad. 09:39:30 usually, you don't even know what they are, so why are you expected to write them correctly? 09:40:25 If you're using a library, you presumably know that you're using it. 09:41:18 in aimake, you specify that you're using it (+ a symbol from the library to ensure that it finds the right one) 09:41:24 you don't specify where it is, though 09:41:54 How do you specify something without specifying where it is? 09:42:12 I can specify shachaf without knowing where it is 09:42:34 ais523: Aha, I got a reference: https://arxiv.org/pdf/1110.1907.pdf 09:42:40 by name, in this case 09:42:49 I was referring, though, to libraries and binaries (such as compilers) that depend on other files 09:43:18 Well, you're implicitly referring to freenode:shachaf or, freenode:#esoteric:shachaf 09:44:28 fortunately, shachaf is sufficiently unique in this context 09:44:48 I wonder how aimake would deal with multiple versions of libraries, such as on a multiarch debian system 09:44:54 Right. Like you can specify a file with a relative path. 09:45:08 There's enough information from context that you're still specifying where it is. 09:47:33 Jafet: that already happens with ncurses and ncursesw; it seems to just pick one that causes the link to succeed 09:48:02 OK, now I see what you mean. 09:48:27 shachaf: What are the actual limits of an IRC line length? 09:48:45 hppavilion[1]: 510 characters including metadata 09:48:54 it's sometimes a little hard to predict the length of the metadata though 09:49:04 ais523: And how short can you reliably get metadata down to? 09:49:05 (I believe that debian amd64 allows you to have three libc's simultaneously: :amd64, :i386, and the -i386 variant that exists for backwards compatibility) 09:49:10 330 was conservative, if I remember correctly. 09:49:10 so clients tend to wrap the lines early, and in general it's impossible to predict where you'll be cut off 09:49:48 oh, there are i686 variants as well (even for amd64‽) which brings the total to 5 09:50:22 OK, we'll stick with 330 09:50:43 Let's just assume any 330-8-bit-byte line can be used 09:50:44 WAIT! 09:50:44 330 is for distort, though. 09:51:00 We have to include lines of length <330; I think those are distinct 09:52:18 "typedef char *char_p; char_p AIMAKE_EXPORT(function_returning_a_string)(void) /* exported */" 09:52:21 Looks complicated. 09:52:45 ais523: Are they distinct? 09:53:19 it depends on whether they can be uniquely padded 09:53:25 especially with trailing whitespace 09:53:35 shachaf: I've had to jump through several hoops to avoid having to write a custom preprocessor :-( 09:53:48 that is something I'd love to fix 09:53:50 because it's annoying 09:54:01 What character terminates an IRC line? 09:54:04 Is it only \r\n? 09:54:04 (also the typedef's only needed in gcc; IIRC it works in clang even with the obvious char *) 09:54:09 Why is it necessary? 09:54:15 Would, say, just a \r or just an \n still end it? 09:54:21 Or a \n\r? 09:54:50 Oh, it's about shared libraries? 09:54:56 Why not statically link everything? 09:55:19 Wait, I might be confusing things. 09:56:51 it's about getting aimake to generate shared libraries 09:57:10 it has this feature because NitroHack used it, and the original motivation for aimake was that NitroHack's build system was broken 10:16:32 -!- ais523 has quit. 10:18:45 -!- Sprocklem has quit (Ping timeout: 268 seconds). 11:07:37 Are all traditional programming languages (henceforth "borilangs", by analogy to "esolangs") analytic? 11:07:56 what does analytic mean in this case? 11:08:12 izalove: In terms of language typology 11:08:21 izalove: https://en.wikipedia.org/wiki/Analytic_language 11:08:24 ah i know nothing about that 11:08:35 izalove: May I ask why you stopped being izabera at some point? 11:09:05 idk 11:09:33 most “traditional” programming languages are actually fairly esoteric 11:10:06 at any rate, there is perligata, which is about as inflective on the word level as languages go 11:11:14 `? perligata 11:11:31 Duck Duck Go can search the esowiki with !eso :D 11:11:44 perligata? ¯\(°​_o)/¯ 11:12:03 Oh god, http://esolangs.org/wiki/Inflection is appalling 11:12:49 I'm... just going to redo it 11:12:55 http://search.cpan.org/~dconway/Lingua-Romana-Perligata-0.50/lib/Lingua/Romana/Perligata.pm 11:17:44 [wiki] [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=50447&oldid=50434 * JGeo * (+242) /* Introductions */ 11:17:53 Wat 11:17:58 Why wasn't it 11:17:59 Wait 11:18:07 Oh. That's why 11:18:14 I had Strip Colors on for #esoteric 11:19:58 [wiki] [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=50448&oldid=50447 * JGeo * (-242) /* Introductions */ 11:20:21 is pr(a | emptyset) a valid thing to calculate? 11:21:04 thyname: Assuming you mean P(a|{}), yeah, but it'll always just be P(a) ips 11:21:38 [wiki] [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=50449&oldid=50448 * JGeo * (+204) /* Introductions */ 11:21:43 how so? i'd argue it is 0 because A | {} can never happen 11:22:05 [wiki] [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=50450&oldid=50449 * JGeo * (+9) /* Introductions */ 11:22:14 myname: Isn't P(A|{}) the probability of A given that {} is true? 11:22:26 myname: The probability that {} is true is... I think it's actually 1 11:22:32 As a vacuous truth 11:22:56 [wiki] [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=50451&oldid=50450 * JGeo * (+46) /* Introductions */ 11:23:16 [wiki] [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=50452&oldid=50451 * JGeo * (-1) /* Introductions */ 11:23:36 But since the happenedness of {} is irrelevant to the probability of A (and also, since {} always happens anyway, it's not important), it doesn't change anything 11:24:10 [wiki] [[Piet]] https://esolangs.org/w/index.php?diff=50453&oldid=47000 * JGeo * (+127) Added a link to a new Piet program. 11:26:19 no, because P(A | ∅) is defined as P(A ∩ ∅) / P(∅) 11:26:44 but what is P({})? 11:26:47 it it 11:26:53 if it's 1 i am right 11:27:02 if it's 0 you cannot compute it 11:28:23 P(∅) is always zero 11:28:48 so it's not computable what P(a | {}) is? 11:29:08 now, a more interesting question is P(A | B) for a nonempty set B with probability measure 0 11:30:03 how is this more interesting? 11:30:20 well, empty set is just an edge case of that i guess 11:30:24 https://en.wikipedia.org/wiki/Borel–Kolmogorov_paradox 11:31:23 i hate probabilities 11:31:35 even the word is just horible 11:36:57 Jafet: I'd think P(∅) would be one 11:37:03 Jafet: because vacuousity 11:37:26 `unidecode ∩ 11:37:50 ​[U+2229 INTERSECTION] 11:38:18 Güt 11:38:21 Or Gut 11:41:09 well, your thinking would be… unlikely to be correct 11:41:25 Jafet: cow.org/csi 11:41:29 (in fact, it is correct with probability P(∅).) 11:45:39 :D 12:10:05 would you say Pr(omega in S) is the probability of a given omega that has to be in S or the probability that a given omega is in S? 12:17:24 myname: P(a) = 2 12:32:14 -!- boily has joined. 12:46:54 -!- Phantom_Hoover has joined. 13:12:00 -!- boily has quit (Quit: SAMURAI CHICKEN). 13:21:47 does a samurai chicken lay samurai x? 13:29:42 -!- hppavilion[1] has quit (Ping timeout: 265 seconds). 13:41:40 -!- Zarutian has joined. 15:01:58 -!- Zarutian has quit (Quit: Zarutian). 15:27:23 -!- Zarutian has joined. 15:28:32 -!- Zarutian has quit (Read error: Connection reset by peer). 15:28:48 -!- Zarutian has joined. 15:38:25 -!- DHeadshot has joined. 15:40:28 Outside in a lamp post there was a sticker with a photo of a cat, and the text: "If cats could talk to the cops, they wouldn't." And a logo of some organization with the word "anarchy" in the name. 15:41:34 bcause all cats are bastards? 15:43:26 I don't know. But this was the photo: https://twitter.com/mathieumatiu/status/649668969050308608 15:55:16 myname: noooo, all cats are beautiful 15:56:29 int-e: i don't see any contradictions to what i said 15:56:46 `quote 1312 15:56:55 No output. 15:57:08 `wc quotes 15:57:10 ​ 1299 26146 156447 quotes 16:01:18 what? 16:02:18 `quote 1299 16:02:20 1299) Minskily, Munskily / ais523 / hailing from Birmingham / is a sublime // master of intricate / esotericity / yet is confounded by / travel in time. 16:32:49 -!- Kaynato has joined. 17:24:20 [wiki] [[Special:Log/newusers]] create * Redstarcoder * New user account 17:32:53 [wiki] [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=50454&oldid=50452 * Redstarcoder * (+340) /* Introductions */ 17:33:39 [wiki] [[Fish]] https://esolangs.org/w/index.php?diff=50455&oldid=47187 * Redstarcoder * (-10) Tenatively removing "fish.go" as it doesn't look like it has ever compiled, and certainly not on a modern version of Go. Tenatively placed my own "go-fish" in the same area, which actually utilises the GOPATH and doesn't need anything arcane to run. 17:34:49 [wiki] [[Fish]] M https://esolangs.org/w/index.php?diff=50456&oldid=50455 * Redstarcoder * (+0) /* Interpreters */ Changed ordering to put the fishlanguage.com interpreter higher up. 18:06:14 -!- Taneb has changed nick to nvd. 18:10:54 [wiki] [[Fish]] https://esolangs.org/w/index.php?diff=50457&oldid=50456 * Redstarcoder * (+57) /* Interpreters */ Updated go-fish description to reflect recent changes 18:44:35 -!- Kaynato has quit (Ping timeout: 260 seconds). 19:10:51 -!- Kaynato has joined. 19:18:47 -!- Sprocklem has joined. 20:31:12 -!- atrapado_ has joined. 20:41:01 <\oren\> good morning! 20:44:05 Heya. 21:02:38 -!- Bowserinator has quit (Disconnected by services). 21:02:54 -!- Bowserin- has joined. 21:04:39 -!- Bowserinator has joined. 21:07:45 -!- Bowserin- has quit (Client Quit). 21:10:44 <\oren\> `quote 21:10:58 937) fungot: begrudging pat 21:11:30 <\oren\> `quote 21:11:31 1168) "A phone touted as the first to put privacy and security ahead of all other considerations launched at a packed event at Mobile World Congress in Barcelona, Spain, today." So, a paperweight? Yes I dunno man, could be bugged. 21:11:55 -!- atrapado_ has quit (Quit: Leaving). 21:11:59 <\oren\> `quote 21:11:59 302) oerjan you're swedish, right? 21:12:03 <\oren\> `quote 21:12:04 397) There's that saying that the definition of insanity is doing the same thing over and over again and expecting different results. [...] You've just gave me a different result [...] It's always insane to expect different results, even when it's likely to occur. 21:12:25 <\oren\> `quote 21:12:26 789) the scene: it is a warm summer's day in scotland, although one obscured by cloud and the fact that it is september 21:14:38 ☺ 21:20:09 `? apic 21:20:13 apic? ¯\(°​_o)/¯ 21:20:27 does APic say more than a thousand words? 21:21:22 (And while I'm making up bad puns, it could also be an APic failure.) 21:21:37 grep you log for lines said by "words" and look if those from apic are at least 1000 times as much 21:23:47 *shrug* 21:24:01 It does not matter. 21:24:15 Also: It does not make Sense. ;) 21:24:26 Need to watch South-Park now. 21:26:33 -!- Elronnd has left. 21:30:35 always with the quotes 21:32:30 `quote 21:32:30 104) * Phantom_Hoover wonders where the size of the compiled Linux kernel comes from. To comply with the GFDL, there's a copy of Wikipedia in there. 21:35:16 -!- AnotherTest has quit (Quit: ZNC - http://znc.in). 22:03:36 -!- hydraz has changed nick to amused. 22:12:50 -!- DHeadshot has quit (Ping timeout: 250 seconds). 22:14:07 -!- Kaynato has quit (Ping timeout: 260 seconds). 23:11:31 stagnating wages only makes sense where the 'legal tender' currency is inflated over time, no? 23:12:18 I have been looking into how guilds and such in Europe made their payment and benefits rules 23:13:59 those evolved be basically by tradition and how much their work was worth relative to other services or products 23:14:57 in those days a coin was usually just the yardstick 23:15:31 or yardline more like 23:16:19 and you want your yardline to be of sturdy string and not made of streatchable rubber 23:19:44 <\oren\> I have made it a rule in life to greet anyone whom I know has a phd with "what's up doc" 23:20:34 <\oren\> `quote 23:20:47 626) i cnat eve begin to understand what you meant with that "one" 23:21:05 <\oren\> `quote 23:21:06 803) unfortunately df is not yet able to simulate norway 23:21:10 <\oren\> `quote 23:21:13 507) this strikes me as probably better than a singularity, because you can't trust a random AI, but you can probably trust olsner 23:21:21 <\oren\> `quote 23:21:22 180) Invent the game called "Sandwich - The Card Game" and "Professional Octopus of the World" (these names are just generated by randomly) 23:21:27 <\oren\> `quote 23:21:28 1083) are you saying the rockies and some mountains in norway are the same range 23:22:32 i,i "This is my son, he's a doctor but not the kind that helps people" 23:33:48 italian prime minister just resigned 23:49:48 -!- boily has joined. 23:59:38 -!- DHeadshot has joined.