00:00:20 <mad> 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 <mad> which means you have 1 slot instructions and 2 slot instructions and that complexifies the scheduler
00:01:24 <izalove> idiv is slower than the rest of the pipeline anyway
00:01:53 <mad> most instructions are 1 slot which means you're basically adding some extra stalling stuff for no good reason really
00:02:20 <mad> izalove : that's also a thing... you want to have slow instructions have as few side effects as possible
00:02:56 <mad> this is why zero division exceptions are bad actually
00:03:53 <mad> yes but the problem is that it basically turns into a conditional jump
00:04:24 <mad> it's a cpu design problem
00:04:49 <izalove> what's the alternative? idiv should have like 4 operands?
00:05:11 <mad> every conditional instruction needs to be tracked by the retirement system
00:05:20 <mad> which means that it has to be able to rollback everything
00:05:42 <mad> idiv should be 32/32->32
00:05:48 <mad> and strictly arithmetic
00:06:07 <mad> change no flags, no exceptions, no extra remainder register
00:06:37 <mad> and negative results should round the same as positive results - down
00:06:48 <mad> so that the compiler can optimize /8 as >>3
00:06:51 <izalove> but that means to throw away information
00:07:06 <mad> irl 99.9% of divisions are C++'s / operator
00:07:12 <izalove> you can't compute division without computing both results
00:07:17 <mad> which only gives you the 32 bit result and nothing else
00:07:51 <mad> you need to use some non portable intrinsic if you want the full result, and that only compiles on x86
00:07:57 <mad> which means that nobody ever uses it
00:08:14 <mad> people use /
00:08:30 <mad> / is 32x32->32
00:08:45 <mad> or 64x64->64 on 64-bit when using 64-bit types
00:09:16 <mad> if you really need more of the result 99.9% of the time you'll just switch to floating point anyways
00:10:15 <mad> it's the same thing as the higher bits of the result of * on 32bit cpus
00:10:40 <mad> 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:59 <mad> in theory 32*32 multiplication gives you 64 bits of result so you might want to keep those higher bits
00:11:26 <mad> 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 <izalove> again you're throwing away information
00:11:58 <mad> 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 <mad> izalove : real programs throw away information
00:12:59 <mad> 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 <zzo38> I had different idea, you have partially reprogrammable microcodes, and part of the C runtime is in the microcodes
00:13:43 <mad> zzo38 : how does that make your cpu faster
00:15:01 <zzo38> The microcode is reprogrammed to make whatever operation is the mainly one faster.
00:15:15 <zzo38> (As well as smaller code, if applicable)
00:15:15 <mad> 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 <zzo38> 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 <mad> zzo38 : irl on x86, memcpy() has been faster in some tight software loop rather than REP STOSB for years
00:17:13 <int-e> . o O ( and more correct too )
00:17:19 <mad> 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 <int-e> mad: are you mixing up memset and memcpy or stosb and movsb?
00:18:12 <zzo38> I do know of that things in memcpy() for in x86
00:18:22 <mad> the general problem is
00:19:11 <mad> 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 <mad> which means that it's slow to start and to stop
00:19:44 <mad> to make sure the cpu doesn't reorder the micro-ops in a wrong way or something like that
00:20:01 <zzo38> 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 <mad> zzo38 : what sort of microcode operations do you have that don't access memory? :D
00:21:13 <mad> like, even operations like function call and return have memory accesses in them
00:21:13 <zzo38> All of them mandatorily do access memory actually, but you can just suppress that part while the blitter is in operation.
00:21:22 <int-e> mad: and what's the point of making rep movsb fast if the language runtimes don't use it anymore anyway...
00:21:43 <int-e> (circular reasoning is fun)
00:21:57 <mad> int-e : who knows, maybe they've put reb movsb back in by now
00:22:15 <HackEgo> [wiki] [[Special:Log/newusers]] create * JGeo * New user account
00:22:28 <mad> I guess it's particularly compact in the instruction cache
00:22:29 <Jafet> int-e: ask intel, who made it really fast again in ivy bridge
00:22:46 <Jafet> or maybe it was haswell
00:23:06 <mad> but I'm not sure icache compactness on that kind of operation is really worth it
00:24:57 <Jafet> also full euclidean division is used very often: when calculating rectangular array indices, or in high-precision arithmetic
00:25:39 <Jafet> those are the uses that need to be optimal, not C programmers' bizarre * and / operators
00:26:01 <mad> in what field? :D
00:27:09 <mad> in sound processing (my field), if you're running into precision limits of / you switch to floating point
00:27:51 <mad> 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 <mad> 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 <Jafet> even remainder-less division gives the quotient to full precision, so there is no precision limit involved
00:29:18 <Jafet> what do you mean by precision?
00:29:40 <zzo38> Other thing is if writing assembly-language programming, but that is only if you target a specific computer
00:29:47 <mad> well, sound never needs more than 64 bit programming
00:30:06 <mad> 64 bit double precision float is really good enough for the ear
00:30:19 <mad> and 99% of the time 32 bit float is good enough as well, for audio
00:30:50 <mad> 3d gfx in video games is another different field so I expect it breaks some other way :3
00:30:54 <Jafet> 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 <mad> irl if I need a remainder 99% of the time I can change scaling factors and then just do var &= 0xfff
00:32:15 <mad> so in a way, my code has a ton of remainders, but they're all implemented with bitmasks
00:32:52 <zzo38> 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 <Jafet> does that work when the divisor is not a power of 2?
00:33:05 <mad> Jafet : of course not :D
00:33:14 <Jafet> then you weren't doing any divisions at all
00:33:34 <zzo38> (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 <mad> it's very rare to have variable quotients in signal processing
00:34:04 <mad> so 99% of the time if / shows up, turn it into *
00:35:10 <mad> one case I can think of is ramping a value over a block linearly...
00:35:30 <mad> then stepsize = (endvalue - startvalue) / blocksize
00:36:27 <mad> 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 <mad> 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:59 <izalove> are these characters sorted by brightness?
01:38:42 -!- HackEgo has quit (Ping timeout: 250 seconds).
01:43:31 <mad> = is less bright than * on my font
01:43:50 <mad> you might want to look into % $ @ &
01:44:32 <otherbot> Kernel panic - not syncing: Attempted to kill init!
01:44:37 -!- HackEgo has joined.
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 <hppavilion[1]> izalove: This is a meaningless question without font choice
02:11:59 <Zarutian> 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 <Zarutian> (or eljian script which is very similiar)
02:18:37 -!- HackEgo has quit (Ping timeout: 240 seconds).
02:19:46 -!- ais523 has joined.
02:22:29 <ais523> ugh, and I have a new language I want to document
02:22:48 <ais523> for the time being, you can get an interpreter with embedded spec from http://nethack4.org/esolangs/7/7.pl
02:23:27 <shachaf> But it's being served as application/x-perl :-(
02:26:15 <ais523> for me that opens it in a text editor, with syntax highlighting
02:26:28 <ais523> given that the spec is in perldoc anyway, a browser wouldn't be ideal for viewing it
02:28:19 <Zarutian> hppavilion[1]: lets hear that brilliant idea or least a rough sketch of it
02:28:36 <hppavilion[1]> Zarutian: Basically, make a font with non-english characters for the alphabet
02:29:02 <Zarutian> hppavilion[1]: like the fúþark runic charset?
02:29:28 <hppavilion[1]> Zarutian: Take advantage of brain's neuroplasticity to read in it. Never have anyone read over my shoulder again.
02:31:13 <ais523> 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 <Zarutian> 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:32:50 -!- moonheart08 has quit (Ping timeout: 244 seconds).
02:38:55 -!- oerjan has joined.
02:48:07 <shachaf> who keeps the wiki up these days?
02:48:52 <oerjan> but only if the server is up
02:51:55 <oerjan> i guess the server isn't up, then.
02:52:05 <lambdabot> CYYZ 040200Z 28008KT 15SM BKN049 03/M01 A3020 RMK SC7 SLP235
02:52:56 <shachaf> @@ @@ (@where weather) KOAK KSFO KSJC
02:52:59 <lambdabot> 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:57:04 -!- HackEgo has joined.
03:00:06 <mad> 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 <oerjan> <izalove> midnight spaghetti, anyone? <-- already had some at approx. 22:30 hth
03:15:50 <izalove> that's no midnight spaghetti >:O
03:18:26 <shachaf> oerjan can eat midnight spaghetti at whatever hour he pleases hth
03:20:31 <HackEgo> [wiki] [[Language list]] https://esolangs.org/w/index.php?diff=50444&oldid=50440 * Ais523 * (+8) /* Non-alphabetic */ +[[7]]
03:20:42 <ais523> wiki's back up I think
03:22:23 <oerjan> we seem to have two new users who couldn't get past the filter
03:23:10 <oerjan> and one tried a ridiculous amount of times...
03:24:37 <ais523> what were they doing wrong?
03:25:17 <oerjan> kept adding a http link
03:26:06 <oerjan> the other one didn't get to the introduction at all
03:26:38 <oerjan> 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 <Jafet> mad: a declarative, additive version of fractran?
03:31:55 <Jafet> making it declarative shouldn't be too hard, but making it additive could be
03:32:38 <oerjan> although that's still multiplicative in notation
03:33:23 <oerjan> i'm reminded of sylver coinage
03:34:22 <oerjan> (being terminating for a start)
03:35:21 <Jafet> well, the first few moves are unbounded
03:41:00 <Jafet> (compare http://mathoverflow.net/q/122250, a chess position with game length ω)
03:41:45 <Jafet> has sylver coinage been proven to terminate?
03:42:37 <Jafet> that is, is it known whether every game has finite optimal moves
03:42:43 <oerjan> um it's proven that it terminates
03:43:11 <oerjan> regardless of what the players do
03:44:13 <Jafet> maybe “terminate” was the wrong word
03:44:45 <oerjan> you mean if perfect play is known?
03:45:17 <Jafet> for example, could there be any position where the losing player can force the game to be arbitrarily long?
03:45:52 <oerjan> any player can always play 1 to win.
03:47:39 <Jafet> some games with unbounded move choices (even where every game is finite) have been proven undecidable
03:49:12 <oerjan> hm the first player to name 2 or 3 would also lose
03:50:09 <oerjan> oh it's not been solved
03:50:44 <mad> expecting infinite chess to be found turing complete under the right conditions
03:51:21 <shachaf> "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 <shachaf> this game sounds pretty good
03:51:30 <mad> though the transfinite thing is interesting
03:51:33 <Jafet> mad: I think it is, but all constructions so far require infinitely many pieces
03:51:54 <mad> you need some source of infinite information
03:52:01 <Jafet> using finitely many pieces is an open problem
03:52:13 <mad> so either soem infinitely movable piece
03:52:23 <mad> or infinitely many pieces yes
03:53:04 <Jafet> I don't think it's been proven that either of those are even necessary for undecidability
03:53:27 <Jafet> the board is infinite, so in principle short-moving pieces can move an unbounded distance
03:53:59 <mad> you for the amount of information in your state to be always able to grow more
03:54:34 <mad> er... what you need, is that the amount of information in your state needs to be always able to grow more
03:54:39 <Jafet> in particular, they could move an unbounded distance away from each other, and it's plausible that this could store unbounded information
03:55:28 <mad> you need 2x unbounded counters + 1 state (bounded) for a minsky machine
03:55:32 <Jafet> maybe this would not work in a directmate construction, because the pieces would no longer influence each other
03:56:26 <Jafet> you could use sets of passed pawns though, as their moves are irreversible
03:57:57 <mad> 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 <mad> for unbounded chess...
04:00:17 <mad> you'd need 2 unbounded movable pieces
04:00:32 <mad> that can be moved +1 or -1 an infinite number of times
04:01:05 <mad> and if they move back to position 0 they change state transitions
04:04:06 <Jafet> hmm, a “knapsack” problem over a word group (instead of an additive group) is undecidable again, because it is a post correspondence system
04:06:07 <Jafet> you could try and determine if a knapsack problem where each item value is a k-tuple of integers is decidable
04:06:15 <Jafet> (the standard knapsack problem is where k=1)
04:09:05 <Jafet> having a deterministic (order-independent) fractran UTM would show that a finite k-knapsack is curly-L-complete
04:09:30 <Jafet> k would be the number of prime factors in the fractran program
04:15:42 <HackEgo> [wiki] [[7]] N https://esolangs.org/w/index.php?oldid=50445 * Ais523 * (+10419) new language!
04:16:19 <HackEgo> [wiki] [[User:Ais523]] https://esolangs.org/w/index.php?diff=50446&oldid=50252 * Ais523 * (+7) +[[7]]
04:17:13 <mad> 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 <mad> 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:59:05 <lambdabot> mnislaih says: When one of the Simons says that he is having trouble reading your code, you ought to listen!
04:59:11 <lambdabot> davidhasselh0f says: [on SPJ's "A Taste of Haskell" tutorial]: It's better than sex.
04:59:16 <lambdabot> Failure02 says: in haskell you can have korean smilies as variables! like (^-^)
04:59:20 <HackEgo> 1259) <fungot> 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:15 <HackEgo> 536) <Phantom_Hoover> I mean, any organisation called the Scottish Defence League should be beating up English people, what other point would there be?
05:07:42 <zzo38> 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 <zzo38> 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 <Jafet> 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 <zzo38> To have an infinite number of pieces is only also with infinite size of board
05:32:00 <Jafet> 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 <ais523> Jafet: I assume that this is finitely many pieces, but an infinite board? otherwise it's obviously decidable by brute force
07:01:51 <ais523> next question: we know it isn't above TC; is it below TC?
07:08:33 <oerjan> decidable implies below TC, usually?
07:09:40 <ais523> it's 7am and I haven't gone to bed yet
07:10:20 * oerjan is about to consider it
07:10:37 <lambdabot> Local time for oerjan is Sun Dec 4 08:10:37 2016
07:10:45 <shachaf> maybe you want to have some midnight spaghetti
07:11:52 <hppavilion[1]> Apparently there's some massive pm-spamming advertising campaign going on on freenode right now
07:12:07 <ais523> does it involve spaghetti by any chance?
07:19:03 <sam[0]> Apparently "this irc" is being moved
07:19:26 <hppavilion[1]> Stay out of the big channels and you won't get spammed
07:19:50 <sam[0]> Or just set usermode +R
07:20:14 <sam[0]> Stops unregged nicks PMing you
07:20:26 <ais523> sam is an editor, not a model of laptop
07:21:01 <sam[0]> Ah, that's due to something from another channel
07:21:17 <sam[0]> A disagreement about who the original sam was
07:23:39 <ais523> hppavilion[1]: well [1] isn't a laptop model as far as I know
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:44 <lambdabot> Local time for shachaf is Sat Dec 3 23:54:41 2016
07:54:48 <shachaf> izalove: presently cooking spaghetti
07:54:48 <izalove> i need a cool nonsense name for a project
07:54:57 <izalove> thanks that's a great name
07:57:32 <izalove> at first i wanted to use presently-cooking-spaghetti but then it was too long to type
07:58:29 <hppavilion[0]> izalove: Go with something that treats "spaghet" as if it were a greek root
08:00:30 <lambdabot> Local time for shachaf is Sun Dec 4 00:00:27 2016
08:00:36 <hppavilion[0]> izalove: Spaghettification is the actual, scientific term for how you get torn apart as you fall into a black hole
08:00:57 <hppavilion[0]> 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 <shachaf> If you're trying not to ping me by saying "chaf's", it's not working.
08:01:20 <hppavilion[0]> shachaf: I knew it'd ping you, I just wanted to call you "der chaf"
08:01:24 <hppavilion[0]> izalove: Then the same thing happens to each piece then
08:01:38 <hppavilion[0]> Until you're just a train of individual particles falling into a singularity
08:02:13 <izalove> why does everything you say end up with me in particles falling apart
08:02:29 <shachaf> hppavilion[0]: pretty sure that hasn't been observed and therefore can't be called science hth
08:02:56 <shachaf> https://aaronkcollett.files.wordpress.com/2016/01/0055_08.gif
08:05:48 <shachaf> http://media.chick.com/tractimages67491/0055/0055_14.gif
08:09:34 <pikhq> Oh right, there was a celebrity death I approved of this year.
08:10:20 <shachaf> How should we build, package, and deploy software?
08:10:42 <pikhq> Oh gee, that's a hard question.
08:10:56 <pikhq> Why don't you give me an easier one, like "does P=NP?"
08:11:46 <shachaf> And I'm not asking you for a proof.
08:12:01 <pikhq> Would you say there exists a proof this IRC line is too small to contain?
08:12:29 <HackEgo> #!/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> 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 <shachaf> pikhq: You can do a lot in 330 bytes. I wouldn't bet on it.
08:17:41 <pikhq> I estimate there are approximately 330*2^8 possibilities.
08:18:01 <pikhq> (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].
09:10:31 -!- AnotherTest has joined.
09:14:38 <ais523> if there were a 330-byte proof that P≠NP, I'd expect it to have been discovered by now
09:15:01 <ais523> 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:23:27 <Jafet> a sufficiently well-written 330-character grant application ought to do the job
09:25:10 <Jafet> 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 <ais523> 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 <ais523> (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 <ais523> <shachaf> How should we build, package, and deploy software? ← via an international hub for software design and deployment
09:27:37 <ais523> (alternative answer: aimake, preferably the vaporware version that I haven't even really started yet)
09:28:02 <shachaf> 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 <shachaf> Which I think is a stronger statement. But you can't trust me after midnight spaghetti.
09:29:23 <Jafet> 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 <shachaf> Ah, I should have looked it up.
09:29:26 <ais523> shachaf: a build system I've been working on for several years now
09:29:41 <Jafet> I can't think of an example, though
09:29:43 <shachaf> I remember now that you've talked about it.
09:29:56 <ais523> 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 <shachaf> Jafet: This reminds me of a thing someone said once which I can't quite remember.
09:30:45 <shachaf> 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 <ais523> like, a minimally undecidable problem?
09:31:43 <ais523> is it known what the problem actually /is/, or merely proven that it exists?
09:31:51 <shachaf> Yes, I think it was known.
09:31:56 <shachaf> I might be misstating it, though.
09:32:39 <shachaf> I'll ask in the other channel.
09:33:43 <Jafet> 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 <shachaf> ais523: I don't think having to write a bit of metadata about my code is a build system problem.
09:37:04 <shachaf> I mean, a problem that I have with existing build systems.
09:37:19 <ais523> I think having to change the makefiles whenever you shuffle things around in your source tree is really annoying
09:37:57 <ais523> 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 <shachaf> 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 <Jafet> the worst metadata that a makefile forces you to write is the build dependencies
09:39:18 <shachaf> I'm not sure that explicit dependencies are that bad.
09:39:30 <Jafet> usually, you don't even know what they are, so why are you expected to write them correctly?
09:40:25 <shachaf> If you're using a library, you presumably know that you're using it.
09:41:18 <ais523> 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 <ais523> you don't specify where it is, though
09:41:54 <shachaf> How do you specify something without specifying where it is?
09:42:12 <Jafet> I can specify shachaf without knowing where it is
09:42:34 <shachaf> ais523: Aha, I got a reference: https://arxiv.org/pdf/1110.1907.pdf
09:42:49 <Jafet> I was referring, though, to libraries and binaries (such as compilers) that depend on other files
09:43:18 <shachaf> Well, you're implicitly referring to freenode:shachaf or, freenode:#esoteric:shachaf
09:44:28 <Jafet> fortunately, shachaf is sufficiently unique in this context
09:44:48 <Jafet> I wonder how aimake would deal with multiple versions of libraries, such as on a multiarch debian system
09:44:54 <shachaf> Right. Like you can specify a file with a relative path.
09:45:08 <shachaf> There's enough information from context that you're still specifying where it is.
09:47:33 <ais523> Jafet: that already happens with ncurses and ncursesw; it seems to just pick one that causes the link to succeed
09:48:02 <shachaf> OK, now I see what you mean.
09:48:27 <hppavilion[1]> shachaf: What are the actual limits of an IRC line length?
09:48:45 <ais523> hppavilion[1]: 510 characters including metadata
09:48:54 <ais523> it's sometimes a little hard to predict the length of the metadata though
09:49:04 <hppavilion[1]> ais523: And how short can you reliably get metadata down to?
09:49:05 <Jafet> (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 <shachaf> 330 was conservative, if I remember correctly.
09:49:10 <ais523> 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 <Jafet> oh, there are i686 variants as well (even for amd64‽) which brings the total to 5
09:50:43 <hppavilion[1]> Let's just assume any 330-8-bit-byte line can be used
09:50:44 <shachaf> 330 is for distort, though.
09:51:00 <hppavilion[1]> We have to include lines of length <330; I think those are distinct
09:52:18 <shachaf> "typedef char *char_p; char_p AIMAKE_EXPORT(function_returning_a_string)(void) /* exported */"
09:53:19 <ais523> it depends on whether they can be uniquely padded
09:53:25 <ais523> especially with trailing whitespace
09:53:35 <ais523> shachaf: I've had to jump through several hoops to avoid having to write a custom preprocessor :-(
09:53:48 <ais523> that is something I'd love to fix
09:54:04 <ais523> (also the typedef's only needed in gcc; IIRC it works in clang even with the obvious char *)
09:54:50 <shachaf> Oh, it's about shared libraries?
09:54:56 <shachaf> Why not statically link everything?
09:55:19 <shachaf> Wait, I might be confusing things.
09:56:51 <ais523> it's about getting aimake to generate shared libraries
09:57:10 <ais523> 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 <hppavilion[1]> Are all traditional programming languages (henceforth "borilangs", by analogy to "esolangs") analytic?
11:07:56 <izalove> what does analytic mean in this case?
11:08:21 <hppavilion[1]> izalove: https://en.wikipedia.org/wiki/Analytic_language
11:08:24 <izalove> ah i know nothing about that
11:08:35 <hppavilion[1]> izalove: May I ask why you stopped being izabera at some point?
11:09:33 <Jafet> most “traditional” programming languages are actually fairly esoteric
11:10:06 <Jafet> at any rate, there is perligata, which is about as inflective on the word level as languages go
11:12:03 <hppavilion[1]> Oh god, http://esolangs.org/wiki/Inflection is appalling
11:12:55 <Jafet> http://search.cpan.org/~dconway/Lingua-Romana-Perligata-0.50/lib/Lingua/Romana/Perligata.pm
11:17:44 <HackEgo> [wiki] [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=50447&oldid=50434 * JGeo * (+242) /* Introductions */
11:19:58 <HackEgo> [wiki] [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=50448&oldid=50447 * JGeo * (-242) /* Introductions */
11:20:21 <myname> is pr(a | emptyset) a valid thing to calculate?
11:21:04 <hppavilion[1]> thyname: Assuming you mean P(a|{}), yeah, but it'll always just be P(a) ips
11:21:38 <HackEgo> [wiki] [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=50449&oldid=50448 * JGeo * (+204) /* Introductions */
11:21:43 <myname> how so? i'd argue it is 0 because A | {} can never happen
11:22:05 <HackEgo> [wiki] [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=50450&oldid=50449 * JGeo * (+9) /* Introductions */
11:22:14 <hppavilion[1]> myname: Isn't P(A|{}) the probability of A given that {} is true?
11:22:26 <hppavilion[1]> myname: The probability that {} is true is... I think it's actually 1
11:22:56 <HackEgo> [wiki] [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=50451&oldid=50450 * JGeo * (+46) /* Introductions */
11:23:16 <HackEgo> [wiki] [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=50452&oldid=50451 * JGeo * (-1) /* Introductions */
11:23:36 <hppavilion[1]> 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 <HackEgo> [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 <Jafet> no, because P(A | ∅) is defined as P(A ∩ ∅) / P(∅)
11:27:02 <myname> if it's 0 you cannot compute it
11:28:23 <Jafet> P(∅) is always zero
11:28:48 <myname> so it's not computable what P(a | {}) is?
11:29:08 <Jafet> now, a more interesting question is P(A | B) for a nonempty set B with probability measure 0
11:30:03 <myname> how is this more interesting?
11:30:20 <myname> well, empty set is just an edge case of that i guess
11:30:24 <Jafet> https://en.wikipedia.org/wiki/Borel–Kolmogorov_paradox
11:31:35 <myname> even the word is just horible
11:41:09 <Jafet> well, your thinking would be… unlikely to be correct
11:41:29 <Jafet> (in fact, it is correct with probability P(∅).)
12:10:05 <myname> 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:32:14 -!- boily has joined.
12:46:54 -!- Phantom_Hoover has joined.
13:12:00 -!- boily has quit (Quit: SAMURAI CHICKEN).
13:21:47 <Jafet> 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 <fizzie> 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 <myname> bcause all cats are bastards?
15:43:26 <fizzie> I don't know. But this was the photo: https://twitter.com/mathieumatiu/status/649668969050308608
15:55:16 <int-e> myname: noooo, all cats are beautiful
15:56:29 <myname> int-e: i don't see any contradictions to what i said
15:57:10 <HackEgo> 1299 26146 156447 quotes
16:02:20 <HackEgo> 1299) <oerjan> 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 <HackEgo> [wiki] [[Special:Log/newusers]] create * Redstarcoder * New user account
17:32:53 <HackEgo> [wiki] [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=50454&oldid=50452 * Redstarcoder * (+340) /* Introductions */
17:33:39 <HackEgo> [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 <HackEgo> [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 <HackEgo> [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.
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:58 <HackEgo> 937) <esomimic> fungot: begrudging pat
21:11:31 <HackEgo> 1168) <Sgeo> "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." <Sgeo> So, a paperweight? <FreeFull> Yes <pikhq> I dunno man, could be bugged.
21:11:55 -!- atrapado_ has quit (Quit: Leaving).
21:11:59 <HackEgo> 302) <augur> oerjan you're swedish, right?
21:12:04 <HackEgo> 397) <fizzie> There's that saying that the definition of insanity is doing the same thing over and over again and expecting different results. [...] <Taneb> You've just gave me a different result [...] <fizzie> It's always insane to expect different results, even when it's likely to occur.
21:12:26 <HackEgo> 789) <Phantom__Hoover> the scene: it is a warm summer's day in scotland, although one obscured by cloud and the fact that it is september
21:20:27 <int-e> does APic say more than a thousand words?
21:21:22 <int-e> (And while I'm making up bad puns, it could also be an APic failure.)
21:21:37 <myname> grep you log for lines said by "words" and look if those from apic are at least 1000 times as much
21:24:01 <APic> It does not matter.
21:24:15 <APic> Also: It does not make Sense. ;)
21:24:26 <APic> Need to watch South-Park now.
21:26:33 -!- Elronnd has left.
21:30:35 <augur> always with the quotes
21:32:30 <HackEgo> 104) * Phantom_Hoover wonders where the size of the compiled Linux kernel comes from. <cpressey> 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 <Zarutian> stagnating wages only makes sense where the 'legal tender' currency is inflated over time, no?
23:12:18 <Zarutian> I have been looking into how guilds and such in Europe made their payment and benefits rules
23:13:59 <Zarutian> those evolved be basically by tradition and how much their work was worth relative to other services or products
23:14:57 <Zarutian> in those days a coin was usually just the yardstick
23:16:19 <Zarutian> 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:47 <HackEgo> 626) <monqy> i cnat eve begin to understand what you meant with that "one"
23:21:06 <HackEgo> 803) <Phantom_Hoover> unfortunately df is not yet able to simulate norway
23:21:13 <HackEgo> 507) <ais523> 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:22 <HackEgo> 180) <zzo38> Invent the game called "Sandwich - The Card Game" and "Professional Octopus of the World" (these names are just generated by randomly)
23:21:28 <HackEgo> 1083) <Bike> are you saying the rockies and some mountains in norway are the same range
23:22:32 <shachaf> i,i "This is my son, he's a doctor but not the kind that helps people"
23:33:48 <izalove> italian prime minister just resigned
23:49:48 -!- boily has joined.
23:59:38 -!- DHeadshot has joined.