←2014-12-17 2014-12-18 2014-12-19→ ↑2014 ↑all
00:00:08 <elliott> cluid: I don't know what the control structure should be though...
00:00:19 <elliott> BF [] is clearly too much because you could just pretend you have a tape
00:00:45 <elliott> maybe something where you can only walk one constant "path" through nodes, the same for every iteration of the loop
00:00:53 <elliott> so you have to rewire the graph to do anything non-balanced
00:01:57 <oerjan> cluid: things similar to gridfuc definitely exists, see e.g. https://esolangs.org/wiki/Paintfuck
00:02:52 -!- roasted42 has joined.
00:02:54 <elliott> I love paintfuck
00:02:55 <elliott> it's so pretty
00:02:57 <cluid> after I invented treehugger (<^>) and gridfuck (<^>v) i need to create pentagonalfuck, based on icosahedral symmetry
00:03:11 <elliott> how about fuck, with a zero-dimensional tape
00:03:28 <cluid> helo world would be something like: +++++++++++++++.+++++++.
00:03:42 <cluid> thats funnny
00:03:45 <cluid> sub turing
00:04:27 <cluid> i want to make a page for that............
00:04:41 <cluid> it would have to be https://esolangs.org/wiki/Fuck_(ehird)
00:04:47 <cluid> but that seems offensive
00:04:50 -!- dts|pokeball has joined.
00:04:58 <cluid> since https://esolangs.org/wiki/Fuck exists
00:05:23 <cluid> it could be called Nofucks but fuck is better
00:06:10 <elliott> this fuck language looks boring and is implemented in php so imo we should just delete it and pretend it never happened
00:06:16 <cluid> yes lol
00:06:24 <cluid> (although not really since thats mean)
00:06:48 <cluid> it could be moved to Fuck_(Josefnpat)
00:07:01 <elliott> yeah that's what happened with clue
00:07:05 <elliott> well both of them got moved
00:07:15 <elliott> that's a rare one because both of them are actually good
00:07:23 <cluid> yeah thats the one I was thinking of
00:07:27 <elliott> oerjan: if you have only one natural of state what kind of operations do you need to be able to simulate a counter machine on it?
00:07:47 <elliott> I guess some kind of arithmetic?
00:08:39 <oerjan> elliott: fractran operations
00:08:46 <MDude> I tohught there was already a zero dimeinsonal BF.
00:08:49 <MDude> Let me check.
00:08:51 <elliott> oerjan: oh, right
00:08:58 <elliott> isn't fractran's state a rational though? but yeah
00:08:59 <oerjan> see minsky machine article as well
00:09:14 <oerjan> no, the instructions are rational
00:09:46 <oerjan> and an instruction only applies if multiplying current state by it gives an integer
00:09:48 <elliott> right, okay, yeah
00:09:54 <elliott> that's so unbrainfucky though :(
00:10:03 <elliott> is it not possible with a finite number of commands
00:10:26 <oerjan> um what's infinite about fractran commands
00:10:32 <oerjan> oh you mean the number
00:10:34 <elliott> well I mean there's an infinite number of rationals
00:10:37 <elliott> ideally there would only be eight rationals
00:10:49 <elliott> cluid: the good thing about this language is that +[>+] is very easy in it
00:10:50 <oerjan> WAT
00:11:03 <oerjan> elliott: you can restrict to a finite number of primes
00:11:25 <elliott> fractranfuck sounds boring :(
00:11:29 <oerjan> look at it the minsky 1-register machine version
00:11:35 <oerjan> *-it
00:11:36 <elliott> I guess there's not really much brainfuck about it by then.
00:11:54 <elliott> you can't have [] check for zero or whatever because every loop would have to forget everything, and + and - would need changing
00:12:12 <elliott> well I am pleased to announce that my new zero-dimensional-tape brainfuck derivative, fractran, is finished
00:12:22 <elliott> brainfrac
00:12:35 <cluid> hahah
00:12:45 <cluid> Did you see the fractran guy?
00:12:52 <cluid> he wrote a self interpreter in fractran
00:12:55 <cluid> it was quite impressive!
00:13:01 <cluid> made up a whole 'high level'fractran language to do it
00:13:11 <elliott> why didn't conway invent something more creative than a brainfuck derivative
00:13:23 * oerjan swats elliott -----###
00:13:28 <elliott> I don't think I've seen a fractran self-interpreter
00:13:30 <elliott> that sounds amazing
00:13:36 <int-e> Game of Life is a Brainfuck derivative?!
00:13:42 <elliott> int-e: yes. also fractran
00:13:45 <oerjan> int-e: shocking
00:13:51 <oerjan> elliott: and collatz functions
00:14:00 <oerjan> and surreal numbers if you're high enough
00:14:03 <int-e> elliott: So are all Turing-complete languages Brainfuck derivatives now?
00:14:17 <oerjan> int-e: only those conway made hth
00:14:17 <int-e> Surreal numbers are cool.
00:14:18 <elliott> int-e: no, just everything john conway has ever done is a brainfuck derivative
00:14:28 <elliott> he is a total fraud
00:14:51 <int-e> elliott: I think you should kick yourself for this.
00:14:56 <elliott> agreed
00:14:58 -!- ChanServ has set channel mode: +o elliott.
00:15:01 -!- elliott has kicked elliott trolling.
00:15:04 -!- elliott has joined.
00:15:10 -!- Phantom__Hoover has joined.
00:15:10 -!- ChanServ has set channel mode: +o elliott.
00:15:17 <elliott> elliott: don't rejoin so quickly after being kicked
00:15:19 -!- elliott has set channel mode: +b *!*elliott@unaffiliated/elliott.
00:15:19 -!- elliott has kicked elliott elliott.
00:16:03 * int-e wonders whether elliot has to read ChanServ's help page to find the command that unbans oneself.
00:16:14 <oerjan> he's had it coming for a while
00:16:18 <cluid> Voting to move http://esolangs.org/wiki/Fuck to http://esolangs.org/wiki/Fuck_(Josefnpat)
00:16:32 -!- roasted42 has quit (Ping timeout: 256 seconds).
00:16:32 -!- qlkzy has quit (Ping timeout: 256 seconds).
00:16:34 <int-e> oh. UNBAN. well, that's too easy to remember reliably.
00:16:46 -!- monotone has quit (Read error: Connection reset by peer).
00:16:53 <oerjan> cluid: cannot move until there is an actual ambiguity hth
00:17:00 -!- monotone has joined.
00:17:02 <cluid> I want to create Fuck
00:17:37 -!- nortti has quit (Ping timeout: 245 seconds).
00:17:39 -!- Sprocklem has quit (Ping timeout: 250 seconds).
00:17:44 -!- nortti has joined.
00:17:52 -!- ChanServ has set channel mode: -b *!*elliott@unaffiliated/elliott.
00:17:55 -!- elliott has joined.
00:18:00 <oerjan> cluid: you make Fuck_(Cluid_Whateveritwasagain), and then we turn Fuck into a disambiguation page hth
00:18:10 <int-e> There's no http://esolangs.org/wiki/Sex
00:18:14 -!- Phantom_Hoover has quit (Ping timeout: 256 seconds).
00:18:19 -!- qlkzy has joined.
00:18:20 -!- roasted42 has joined.
00:18:25 <cluid> its not by me though :(
00:18:28 <cluid> i would have come up with this ide
00:18:29 <cluid> a
00:18:47 <elliott> oerjan: am I old enough to get +R in chanserv permissions yet
00:18:58 <cluid> http://www.math.uiuc.edu/~beder/interpreter.frp is missing :(
00:19:31 <elliott> whoa, I'm actually exempt from +b
00:19:33 -!- ChanServ has set channel mode: +o elliott.
00:19:35 -!- elliott has set channel mode: +b $a:elliott.
00:19:38 -!- elliott has left.
00:19:51 -!- ChanServ has set channel mode: -b $a:elliott.
00:19:53 -!- elliott has joined.
00:19:56 <elliott> the docs lied.
00:20:03 <elliott> maybe it means that I can talk while +b
00:20:15 <oerjan> elliott: i don't think it's a good idea to give increased permissions to people who keep getting banned hth
00:20:54 <elliott> but I'd get to run lovely commands like
00:20:56 <elliott> 00:19:21 -ChanServ(ChanServ@services.)- More precisely, everyone will be deopped,
00:20:59 <elliott> 00:19:21 -ChanServ(ChanServ@services.)- limit and key will be cleared, all bans
00:21:02 <elliott> 00:19:21 -ChanServ(ChanServ@services.)- matching you are removed, a ban exception
00:21:05 <elliott> 00:19:21 -ChanServ(ChanServ@services.)- matching you is added (in case of bans Atheme
00:21:08 <elliott> 00:19:21 -ChanServ(ChanServ@services.)- can't see), the channel is set invite-only
00:21:11 <elliott> 00:19:21 -ChanServ(ChanServ@services.)- and moderated and you are invited.
00:21:52 <cluid> https://web.archive.org/web/20130131042427/http://stackoverflow.com/questions/1749905/code-golf-fractran
00:21:52 <cluid> elliott,
00:22:00 <cluid> Fractran: 84 fractions
00:22:32 <oerjan> elliott: maybe i should just remove +R from everyone else instead.
00:22:38 <cluid> https://web.archive.org/web/20100217054518/http://www.trinhhaianh.com/testvector1.out
00:22:54 <elliott> oerjan: that sounds like a bad idea (I'm not sure you'd even be able to?)
00:23:05 <elliott> cluid: nice! maybe I have seen this actually
00:23:11 <oerjan> well i cannot do it to the founder, presumably
00:23:12 <cluid> http://lpaste.net/116731
00:23:15 <cluid> this is 'high level fractran'
00:23:22 <oerjan> which i think is freenode something?
00:23:32 <elliott> "So I'm guessing that running the interpreter will take at least days, if not years :(" fractran is the language of the future
00:23:54 <cluid> maybe write a fractran JIT optimizing hyperinterpreter hth
00:23:56 <elliott> oerjan: tbf if I really wanted to I could kick everyone myself
00:24:20 <elliott> I have this weird thing known as like, a tiny sliver of responsibility
00:24:36 <cluid> is fractran implemented by prim factorization or by GCD calcluation?
00:24:39 * oerjan gets the microscope to check
00:25:11 <oerjan> cluid: you don't need to use either, you can just use integer division; not very efficient though.
00:25:12 <cluid> there is fractran in x86 but it may not handle larger programs
00:25:14 <Taneb> `? fun fact
00:25:16 <HackEgo> fun fact 0 = 1 | fact n = n * fact (n - 1)
00:25:28 <oerjan> (bignum integers, that is)
00:25:30 <elliott> cluid: the second answer is way cooler
00:25:34 <elliott> it's so small and actually terminates
00:25:35 <cluid> oerjan, alright well isn't the integer division the best?
00:26:08 <int-e> cluid: if you factor everything you can extract something like a counter machine
00:26:10 <elliott> (another self-interpreter)
00:26:16 <int-e> which may be more efficient to execute
00:26:26 <oerjan> cluid: well if you have a number that is 2**1986408 * 3**231980560 you may not wish to store it as a normal integer
00:27:07 <elliott> "I did not write a compiler and opted to write optimized Fractran code directly." is just hardcore
00:27:09 <int-e> and if the programmer is evil and uses products of large primes, a gcd may be better than full factorization.
00:27:25 <int-e> ... a gcd based partial factorization that is.
00:27:27 <cluid> oh tyeah good !
00:27:42 <oerjan> int-e: i have thought about such a gcd based factorization before
00:28:09 <cluid> I would like to have a compiler from 'high level fractran' to ffractran
00:28:11 <cluid> not use how to do subs
00:28:17 <cluid> yeah, its so hardcore and cool
00:28:20 <cluid> I think thats great
00:28:57 <elliott> it's like writing directly in machine code except the machine code was designed by a mathematician trying to torture you and is also a brainfuck derivative
00:29:57 <cluid> (this way we can interpret th high level code directly)
00:30:44 <int-e> I'll mentally replace "brainfuck derivative" by "rainbow unicorn" when the former is used in connection with inventions of Conway.
00:30:56 -!- roasted42 has quit (Ping timeout: 245 seconds).
00:31:09 <elliott> what about when he actually makes a brainfuck derivative
00:31:23 <elliott> im going to email him and ask him to pick his eight favourite words and put them on the wiki
00:31:41 <int-e> then he'll be an expert breeder as well as a great mathematician.
00:32:02 <elliott> resurrect dijkstra and force him to make a bf derivative at gunpoint
00:32:35 <elliott> he sweats but agrees, producing the first brainfuck derivative for formal verification
00:32:45 -!- roasted42 has joined.
00:32:58 <cluid> [] considered harmful
00:33:03 <int-e> elliott: Dijkstra should be happy with Brainfuck; there are no gotos.
00:33:26 <elliott> not sure you can call brainfuck "structured"
00:33:38 <int-e> well. there are loops.
00:33:46 <cluid> how about GOTO FUCK
00:33:51 <cluid> 10 >
00:33:54 <cluid> 20 +
00:34:00 <elliott> I think that exists more or less
00:34:01 <cluid> 30 GOTO 10
00:34:13 <int-e> "Basic Brainfuck"
00:34:18 <cluid> I should make a book about brainfuck derivatives
00:34:31 <elliott> dijkstra was actually alive for like nine years after brainfuck was invented so I like to believe he knew about its existence
00:35:09 <int-e> Plausible
00:35:22 <elliott> I don't think he would let himself laugh at it though
00:35:35 <int-e> oerjan: it's an easy rank 4 now. henkma struck.
00:35:41 <elliott> he would mumble something about programmers managing to innovate on APL
00:35:52 <int-e> Turing tarpits have their use.
00:36:42 <elliott> long lost handwritten EWD note about his new esolang
00:37:36 <oerjan> int-e: eek!
00:38:55 <elliott> https://esolangs.org/wiki/Two I like how one of the instructions is just called "Instruction"
00:39:17 <elliott> also it states there's no maximum value but contains an instruction to set the current cell to it
00:39:20 <Phantom__Hoover> <cluid> I should make a book about brainfuck derivatives
00:39:36 <Phantom__Hoover> i will literally turn you into a fucking brick
00:40:07 <elliott> Phantom__Hoover: pls stop (like, four years ago ideally)
00:40:31 <Phantom__Hoover> i had up til now!
00:40:45 <oerjan> what, girl genius still not updated
00:41:17 <elliott> like quitting smoking between every cigarette
00:41:24 <int-e> oerjan: I'll sue the Foglios for sleep deprivation. :P
00:41:57 <Taneb> oerjan, I've started checking GG T/T/S
00:42:05 <elliott> okay actually Two is kind of interesting, meh
00:42:10 <oerjan> Taneb: shocking
00:55:26 -!- roasted42 has quit (Ping timeout: 250 seconds).
00:56:10 <cluid> are there any superturing brainfucks?
00:56:17 <cluid> i think zzo made one?
00:56:25 -!- roasted42 has joined.
00:56:40 <Taneb> Brainhype?
00:57:11 <cluid> thanks!
00:57:29 <cluid> so its by ihope
00:57:38 <elliott> re's plenty. Two is one of them even
00:57:40 <elliott> *there's
00:58:21 <cluid> a Brainhype interpreter written in Brainhype cannot exist. However, you can write a Brainhype interpreter in Scheme-omega.
00:58:27 <cluid> are you sure you can write one in scheme-omega?
00:58:40 -!- CrazyM4n has quit (Quit: restarting).
00:59:59 <HackEgo> [wiki] [[Brainfuck Derivatives]] N http://esolangs.org/w/index.php?oldid=41497 * Cluid Zhasulelm * (+2616) Created page
01:00:20 <cluid> I made a collection fo some of the best BF derivatives - if you can suggest more I can add them, or you can add them
01:01:27 <AndoDaan> Thanks for including MNNBGFSL.
01:01:44 -!- CrazyM4n has joined.
01:02:19 <cluid> AndoDaan, MMBFSL is good because it's interesting how to show its turing complete..
01:02:39 <AndoDaan> Has it been shown that MNNBFSL is TC?
01:02:54 <HackEgo> [wiki] [[Special:Log/move]] move * Ehird * moved [[Brainfuck Derivatives]] to [[Brainfuck derivatives]]: capitalisation convention
01:02:59 -!- drdanmaku has quit (Quit: Connection closed for inactivity).
01:03:17 <cluid> AndoDaan, theres an assembler somewhere that adds GOTO to the language
01:04:08 <HackEgo> [wiki] [[Brainfuck derivatives]] M http://esolangs.org/w/index.php?diff=41500&oldid=41498 * Ehird * (+40) links
01:04:27 <AndoDaan> Ah, cool. Do you know where I could find it?
01:04:28 <elliott> fuckbrainfuck isn't really a derivative so much as an implementation choice
01:04:33 <elliott> many "bf" implementations have a both-infinite tape
01:04:45 <elliott> (arguably right-infinite tape is a derivative, seeing as the original implementations had finite tapes)
01:05:11 <cluid> elliott, oh maybe it shoud be delted from there then
01:05:42 <elliott> bf with left-infinite but right-finite tape
01:05:47 <elliott> you get 4 cells to the right and infinite to the left
01:05:51 <elliott> they're bonus
01:06:29 <cluid> lol
01:06:35 <AndoDaan> 4 is too many. 3 bonus cells should be ample.
01:07:10 <elliott> I'm not stingy
01:08:31 <mitchs_> bff actually functions similarly to that in its previous buggy version
01:08:44 <mitchs_> it's supposed to be left infinite but there was an allocation bug
01:09:39 <mitchs_> so it crashes if you go more than 128 cells to the left or something
01:09:46 <mitchs_> don't remember the number
01:10:00 <AndoDaan> 30K cells and 0-255 isn't enough for turing completeness, is it?
01:11:45 -!- callforjudgement has quit (Read error: Connection reset by peer).
01:11:51 -!- scarf has joined.
01:13:00 <elliott> no
01:13:06 <elliott> anything * anything isn't enough if those anythings are finite
01:13:08 <cluid> youo haev to have actually infinite
01:13:23 <cluid> that's beacuse e.g. something subturing like a regex could capture any finite language
01:13:32 <cluid> you have to have infinite just to make the math work otu
01:14:24 -!- Sprocklem has joined.
01:15:42 <cluid> can quantum brainfuck compute something in less steps than classical brainfuck?
01:16:13 <Phantom__Hoover> presumably
01:16:32 <cluid> http://esolangs.org/wiki/User:Ihope127 it woudl be nice if all his languages weere listed here
01:16:43 <cluid> is it OK to add them ? I guess its considered rude or something?
01:16:50 <Phantom__Hoover> is that tswett the notable australian
01:17:01 <Phantom__Hoover> yes, it is
01:17:08 <cluid> http://esolangs.org/wiki/User_talk:Ihope127 actually soeone added it to the discussion page, that is nice
01:17:09 <oerjan> cluid: editing other people's user pages is not done
01:17:20 <oerjan> generally
01:17:20 <cluid> good
01:17:24 <cluid> im glad to know that
01:17:56 -!- roasted42 has quit (Ping timeout: 272 seconds).
01:18:00 <cluid> http://esolangs.org/wiki/Onoz proof it looks like oerjan invents a brainfuck derivative!
01:18:11 <oerjan> i did?
01:18:47 <cluid> you probably said something useful during a BF discussion
01:18:52 <cluid> and it was enough to make a whole language out of it
01:18:56 <oerjan> probably.
01:19:00 <cluid> moral: no one is safe!
01:19:07 -!- roasted42 has joined.
01:19:09 <oerjan> the bricks will get us all.
01:21:47 <int-e> Just another brick in the wall?
01:22:08 <oerjan> cluid: the idea about brainhype in scheme-omega is that it's easy to write a brainfuck interpreter in scheme, and then scheme-n should be able to interpret all brainhype programs with < n nesting depth of halting checks
01:22:25 <oerjan> and then omega can do any finite depth
01:22:48 <cluid> that's pretty mind blowing!
01:23:33 <elliott> did goedel ever make a bf derivative
01:24:03 <oerjan> you _probably_ can implement scheme-n in brainhype with n+1 nesting depth.
01:24:08 <cluid> http://en.wikipedia.org/wiki/G%C3%B6del%27s_%CE%B2_function he has a kindof fractran like thing, except it only ecnodes a finite sequence
01:24:34 <oerjan> or something close to that.
01:25:52 <elliott> what was euler's first esolang
01:25:59 <AndoDaan> Goedel invented Lisp before Lisp, and computers, was invented.
01:26:07 <int-e> oerjan: but perhaps you were thinking of http://www.girlgeniusonline.com/comic.php?date=20130121
01:26:32 <cluid> I've heard Goedel was a lisp hacker from Chaitin page but i don't really agree with that
01:27:00 <cluid> there's no LAMBDA for a start
01:28:10 <cluid> I think of what he did as peano arithmetic hacking
01:28:53 <Phantom__Hoover> i think of what he did as, uh, formal logic?
01:30:59 <AndoDaan> He used Russell's Pricipia Mathematica as his framework.
01:31:10 <cluid> really?
01:31:32 <cluid> I know he disproved some things Russell belived but are you talking about the same paper as I am?
01:32:07 -!- roasted42 has quit (Remote host closed the connection).
01:32:19 <AndoDaan> Goedel numbers, and his imcompleteness theory?
01:33:08 <cluid> well those are in the same paper
01:33:19 <cluid> so yes
01:33:19 <Phantom__Hoover> wouldn't he have been using peano arithmetic as his framework? i guess principia would've come in for the actual logic stuff
01:33:35 <AndoDaan> That what I meant by him inventing Lisp, developing a way for a language to talk about itself.
01:33:46 <cluid> i see what you mean :)
01:33:55 <cluid> its such a cool thing
01:34:38 <oerjan> Über formal unentscheidbare Sätze der Principia Mathematica und verwandter Systeme I
01:34:49 <oerjan> that's the title of the paper hth
01:35:25 <cluid> https://skillsmatter.com/skillscasts/6088-the-worst-programming-language-ever how is APL a bad language?
01:35:38 <cluid> I think he is just saying that because its a cool language to bring up
01:35:45 <AndoDaan> Can't type in the code.
01:37:06 <elliott> dijkstra hated APL
01:37:15 <elliott> not entirely sure why but I guess I could make some guesses
01:37:23 -!- roasted42 has joined.
01:37:36 <AndoDaan> I've heard that name before.
01:38:07 <elliott> dijkstra? ...I'd hope so :)
01:38:44 <AndoDaan> I have a terrible memory.
01:39:09 <AndoDaan> shortest path for graphs.
01:39:19 <cluid> is it true that Visual Basic is a joke language?
01:40:02 <elliott> why did euclid invent ook!
01:40:05 <elliott> disappointing imo
01:40:18 <AndoDaan> ?
01:41:23 <elliott> it's not a very good language
01:41:35 <cluid> do you mean zzo not euclid?
01:41:48 <oren> Edsger W. Dijkstra is what I say instead of Jesus H. Christ
01:41:50 <oerjan> i'm pretty sure elliott is joking
01:42:02 <oerjan> also zzo didn't invent ook! either
01:42:02 <cluid> hi oren
01:42:02 <int-e> elliott: because he couldn't imagine that parallel lines could intersect.
01:42:11 <oren> Hi i'm awake now
01:42:43 <oerjan> oren: do you pronounce it correctly for extra penance?
01:43:26 <cluid> ah
01:43:29 <cluid> I mixed then up beacuse of http://esoteric.codes/post/98149134838/on-tokens-vocabulary-aaaaaaaaaaaaaa-vs-ook
01:43:41 <cluid> i just noticed a new post on this blog
01:43:46 <int-e> UPDATE!
01:44:10 <oren> oerjan: yah, the g is a kkh sound like in russian
01:44:59 <oerjan> oren: i've listened to google translate's pronunciation
01:45:30 <int-e> Nothing happened, now I can sleep, dreaming of better spoons.
01:45:37 <cluid> oren, check out the new page o n the wiki please :D
01:45:38 -!- yonkie_ has quit (Quit: leaving).
01:45:55 <oerjan> cluid: ook! was invented by this guy http://www.irregularwebcomic.net/
01:46:07 <cluid> oh cool
01:46:23 <int-e> (DMM made up for it by inventing Piet.)
01:46:25 <oerjan> that comic is in rerun these days, but there are others on the site
01:46:43 <oerjan> or the conglomerate of sites
01:48:51 <oren> Cluid: oh, you made a list of the BF derivatives that aren't just token replacements
01:49:09 <cluid> if oyu have any additions please!
01:50:07 <cluid> https://skillsmatter.com/skillscasts/6088-the-worst-programming-language-ever
01:50:13 <cluid> this guy spent a whole hour explaining his esolang
01:50:24 <cluid> probably deserves a wiki page, should I create it?
01:53:33 <int-e> t-O-ok!-en replacement.
01:53:56 -!- roasted42 has quit (Ping timeout: 250 seconds).
01:55:52 -!- roasted42 has joined.
02:03:40 -!- drdanmaku has joined.
02:15:44 <HackEgo> [wiki] [[BS]] N http://esolangs.org/w/index.php?oldid=41501 * Cluid Zhasulelm * (+1527) BS language
02:16:26 <HackEgo> [wiki] [[BS]] M http://esolangs.org/w/index.php?diff=41502&oldid=41501 * Cluid Zhasulelm * (+113) added link to the talk
02:17:36 <HackEgo> [wiki] [[User:Cluid Zhasulelm]] M http://esolangs.org/w/index.php?diff=41503&oldid=41438 * Cluid Zhasulelm * (+133)
02:17:43 <AndoDaan> 17bit integers...
02:18:03 <cluid> yeah :D
02:18:05 <cluid> ver ysilly
02:18:24 <elliott> okay regex cpp is a good gag
02:19:05 -!- hjulle has quit (Ping timeout: 258 seconds).
02:24:39 -!- Phantom__Hoover has quit (Read error: Connection reset by peer).
02:27:00 <HackEgo> [wiki] [[BS]] M http://esolangs.org/w/index.php?diff=41504&oldid=41502 * Cluid Zhasulelm * (-52) more interesting code example
02:27:42 -!- scarf has quit (Read error: Connection reset by peer).
02:27:49 -!- scarf has joined.
02:36:41 <oerjan> AndoDaan: the "Collatz Function" example on MNNBFSL, is that the 3n+1 sequence?
02:37:26 -!- shikhin has joined.
02:37:48 -!- shikhin has changed nick to Guest11508.
02:38:56 <oerjan> AndoDaan: i'm editing the page, and i'm going to assume yes if you don't answer hth
02:39:45 -!- roasted42 has quit (Ping timeout: 244 seconds).
02:39:48 <shachaf> oerjan: is there anything else it could reasonably mean twh
02:40:35 <oerjan> shachaf: https://esolang.org/Collatz_function hth
02:41:06 -!- Guest80998 has quit (Ping timeout: 264 seconds).
02:41:14 -!- cluid has quit (Quit: Leaving).
02:41:15 <shachaf> $ whois esolang.org
02:41:15 <shachaf> NOT FOUND
02:41:25 <oerjan> oops
02:41:26 <oerjan> *+s
02:41:46 <shachaf> https://esolangs.org/Collatz_function is a 404 hth
02:41:50 -!- roasted42 has joined.
02:41:53 <oerjan> fff
02:41:56 <shachaf> the perils of typing out urls
02:42:28 <shachaf> anyway tdih
02:42:48 <oerjan> wat
02:43:10 <oerjan> https://esolangs.org/wiki/Collatz_function hth
02:44:35 <shachaf> that did indeed help
02:44:36 -!- yonkie has joined.
02:44:50 <HackEgo> [wiki] [[List of ideas]] M http://esolangs.org/w/index.php?diff=41505&oldid=41489 * Oerjan * (+3) /* Derivative Ideas */ spe ling
02:45:27 <oerjan> although perhaps one should find out what muti-threaded means instead
02:45:47 <shachaf> oerjan: what is the integral of a bf derivative twh
02:46:00 <AndoDaan> oerjan, It's the 3x+1 /2 version
02:46:37 <HackEgo> [wiki] [[MNNBFSL]] http://esolangs.org/w/index.php?diff=41506&oldid=41491 * Oerjan * (+27) /* Examples */ links, and "Collatz function" means something different in these parts
02:46:39 <oerjan> thx
02:46:54 <oerjan> shachaf: brainfuck plus a constant hth
02:47:31 <shachaf> thx = that helped x-ray?
02:47:58 <oerjan> x-tremely, maybe
02:49:35 <shachaf> perhaps xmas
02:50:05 <oerjan> wtf did wayback do to their calendar display
02:50:31 <oerjan> oh well i can still find the link to click
02:52:14 -!- bb010g has quit (Quit: Connection closed for inactivity).
02:52:16 <HackEgo> [wiki] [[Deadfish]] http://esolangs.org/w/index.php?diff=41507&oldid=41494 * Oerjan * (+14) /* External resources */ wayback
02:57:02 <HackEgo> [wiki] [[Brainfuck derivatives]] M http://esolangs.org/w/index.php?diff=41508&oldid=41500 * Oerjan * (+0) fix link
02:57:24 -!- ais523 has joined.
03:01:35 -!- scarf has quit (Ping timeout: 265 seconds).
03:08:53 -!- ais523 has quit (Read error: Connection reset by peer).
03:09:00 -!- callforjudgement has joined.
03:11:05 -!- callforjudgement has quit (Remote host closed the connection).
03:11:17 -!- callforjudgement has joined.
03:11:17 -!- callforjudgement has quit (Changing host).
03:11:17 -!- callforjudgement has joined.
03:11:44 -!- roasted42 has quit (Ping timeout: 265 seconds).
03:13:32 -!- roasted42 has joined.
03:16:21 <oren> pastebin is putting CRLFs in my code. Isthere a similar site that doesn't do that?
03:29:42 -!- Lymia has quit (Ping timeout: 264 seconds).
03:32:24 -!- Lymia has joined.
03:43:53 -!- roasted42 has quit (Changing host).
03:43:53 -!- roasted42 has joined.
03:43:53 -!- roasted42 has changed nick to TheM4ch1n3.
03:48:57 -!- TheM4ch1n3 has quit (Ping timeout: 265 seconds).
03:50:18 -!- roasted42 has joined.
03:53:06 -!- Guest11508 has quit (Ping timeout: 272 seconds).
03:53:35 -!- Sprocklem has quit (Ping timeout: 256 seconds).
03:55:38 -!- roasted42 has quit (Ping timeout: 272 seconds).
03:56:38 -!- roasted42 has joined.
04:01:58 -!- roasted42 has quit (Ping timeout: 272 seconds).
04:02:57 -!- roasted42 has joined.
04:07:48 -!- roasted42 has quit (Ping timeout: 265 seconds).
04:09:14 -!- roasted42 has joined.
04:13:58 -!- roasted42 has quit (Ping timeout: 256 seconds).
04:15:29 -!- roasted42 has joined.
04:20:12 -!- roasted42 has quit (Ping timeout: 256 seconds).
04:21:58 -!- roasted42 has joined.
04:27:34 -!- roasted42 has quit (Ping timeout: 245 seconds).
04:29:22 -!- roasted42 has joined.
04:31:10 -!- azazel_ has joined.
04:31:23 <azazel_> What does *net. split* mean?
04:32:18 <copumpkin> there are multiple IRC servers in the freenode network, and they're connected to each other
04:32:47 <copumpkin> if those links go down, that's a netsplit
04:34:23 -!- roasted42 has quit (Ping timeout: 256 seconds).
04:35:24 <newsham> its jsut p-p tcp links which are statically configured.. so its not super robust
04:35:41 -!- roasted42 has joined.
04:36:13 <AndoDaan> Oerjan, TIL about the Collatz function. thx.
04:38:03 <oerjan> yw
04:39:16 <newsham> collatz is great for coming up with weird counterexamples
04:39:18 <AndoDaan> idhty
04:40:06 <AndoDaan> newsham, how do you mean?
04:40:41 -!- roasted42 has quit (Ping timeout: 250 seconds).
04:41:07 <newsham> like if someone says they have a program to solve the halting problem...
04:41:24 <newsham> you can ask them to analyze function returning length of the collatz sequence
04:41:48 <newsham> that kinda stuff
04:42:00 -!- roasted42 has joined.
04:42:14 <AndoDaan> Ah. Useful.
04:44:26 <AndoDaan> Could Goldbach conjecture be used for that kind of test as well?
04:44:56 -!- dts|pokeball has quit (Read error: Connection reset by peer).
04:45:29 -!- password2 has joined.
04:45:46 <Taneb> Mooost unsolved problems in number theory can I think
04:45:54 -!- dts|pokeball has joined.
04:46:00 -!- password2 has quit (Read error: Connection reset by peer).
04:47:00 -!- Sprocklem has joined.
04:47:10 -!- roasted42 has quit (Ping timeout: 264 seconds).
04:48:04 <AndoDaan> There's something I've been wondering about mathematical proofs. Godel showed that no one system can account be used to prove all provable math problems.
04:48:28 -!- roasted42 has joined.
04:49:26 <AndoDaan> But the turing church hypothesis says that what humans do, mathematicians, is no different that what a turing machine can do.
04:50:47 <AndoDaan> So, if a turing maching can solve all the solvable math problems, and a tm is a formal system... what of godel?
04:51:12 <Jafet> You can't prove that it will solve all solvable problems
04:51:15 <Jafet> Duh
04:53:06 <AndoDaan> And in infinite time?
04:53:57 <AndoDaan> Hmm, goes back to the halting problem, I guess.
04:54:10 <newsham> maybe humans can only prove the important theorems?
04:54:54 <AndoDaan> Then that be the turing church hypothesis false.
04:55:01 <AndoDaan> that would be*
04:56:22 -!- bb010g has joined.
05:00:26 -!- Sprocklem has quit (Ping timeout: 255 seconds).
05:00:42 -!- roasted42 has quit (Ping timeout: 250 seconds).
05:01:34 -!- roasted42 has joined.
05:04:19 <oren> The universe, let alone the human brain, is not truring complete
05:04:24 <oren> The universe, let alone the human brain, is not turing complete
05:04:31 <oren> The universe, let alone the human brain, is not turing complete
05:05:29 <AndoDaan> Theoretically, are neural networks cappable of TCness?
05:05:55 -!- oren has quit (Quit: leaving).
05:06:04 <oerjan> only infinite ones hth
05:06:11 <MDude> Actually, the universe might be turing complete due to unending expansion of space.
05:06:20 <MDude> No upper bound to memory.
05:06:25 -!- oren has joined.
05:06:30 <AndoDaan> How about infinite in the time dimension?
05:06:31 <oren> The universe, let alone the human brain, is not turing complete
05:06:41 <MDude> Actually, the universe might be turing complete due to unending expansion of space.
05:06:41 <MDude> No upper bound to memory.
05:06:58 <oerjan> i think we're in a closed time loop tdnh
05:07:10 <oerjan> especially oren
05:07:20 <AndoDaan> Nietche or Godel?
05:07:27 <oerjan> AndoDaan: infinite only time dimension gives you PSPACE, nothing more
05:07:58 <AndoDaan> Can store all the results?
05:08:06 <AndoDaan> Can't*
05:08:25 <oerjan> can't avoid repeating
05:08:40 -!- oren has quit (Client Quit).
05:08:42 -!- roasted42 has quit (Ping timeout: 264 seconds).
05:09:01 -!- oren has joined.
05:11:45 <AndoDaan> Makes sense. Though, if we describe the Univers as it's quantum superposition, including, somehow, it's past, then each superstate will be distinct.
05:12:01 <MDude> One thing is that human brains don't, practically speaking, have infinite time.
05:12:08 -!- Sprocklem has joined.
05:12:41 <AndoDaan> Could change soon.
05:13:09 <MDude> True, but what would make a brain enter a state such that is has already performed infinite operations?
05:13:19 <AndoDaan> Or at least, the human brain pattern could be copied to something more durable.
05:15:30 <oren> can someone recommend a better client than irssi?
05:16:20 <oren> this thing keeps doig weird crap where it posts the message but doesn't whow that it has
05:17:11 <AndoDaan> I don't remember what it's called, but there's an esolang... nvm foundd it: http://esolangs.org/wiki/Wigner%27s_Fuckbuddy_Is_A_Superposition_of_Top_And_Bottom
05:17:17 -!- nisstyre has quit (Changing host).
05:17:17 -!- nisstyre has joined.
05:18:06 <AndoDaan> I'm happy with HexChat. Free, clean and simple.
05:21:11 -!- GeekDude has quit (Quit: Goodnight).
05:24:02 -!- CrazyM4n has quit (Quit: Leaving).
05:25:29 -!- AndoDaan has quit (Ping timeout: 245 seconds).
05:30:34 -!- MDude has changed nick to MDream.
05:44:07 -!- dts|pokeball has quit (Read error: Connection reset by peer).
05:45:07 -!- dts|pokeball has joined.
05:49:33 -!- coppro has quit (Ping timeout: 258 seconds).
05:49:40 -!- coppro has joined.
05:52:53 -!- oerjan has quit (Quit: leaving).
06:02:32 -!- Sprocklem has quit (Ping timeout: 255 seconds).
06:02:44 -!- oren has quit (Quit: leaving).
06:12:30 -!- augur has quit (Read error: Connection reset by peer).
06:14:11 -!- augur has joined.
06:15:35 <Sgeo_> shachaf: this is really pessimistic: http://www.kicktraq.com/projects/lunarchstudios/prismata-a-new-hybrid-game-of-pure-strategy/
06:15:37 <Sgeo_> :(
06:15:51 <Sgeo_> Oh http://blog.kicktraq.com/why-you-should-take-kicktraq-trends-with-a-grain-of-salt/
06:17:46 <Sgeo_> Still I'm worried
06:21:15 <Sgeo_> They are allowed to retry if they fail, right?
06:33:15 -!- newsham has quit (Ping timeout: 258 seconds).
06:33:20 -!- coppro has quit (Ping timeout: 272 seconds).
06:33:43 -!- newsham has joined.
06:36:48 <azazel_> Parsing lua is much confuse
06:36:57 -!- scarf has joined.
06:40:01 -!- callforjudgement has quit (Ping timeout: 240 seconds).
06:40:57 <azazel_> I kinda wanna make an alternate to bf but where to start
06:42:07 * azazel_ goes mad
06:44:44 -!- scarf has quit (Read error: Connection reset by peer).
06:44:50 -!- ais523 has joined.
06:48:22 -!- mitchs_ has quit (Ping timeout: 264 seconds).
06:50:05 -!- ais523 has quit (Read error: Connection reset by peer).
06:50:13 -!- ais523 has joined.
06:55:57 -!- dts|pokeball has quit (Read error: Connection reset by peer).
06:56:25 -!- dts|pokeball has joined.
07:00:09 -!- mitchs has joined.
07:29:22 -!- shikhin has joined.
07:29:26 -!- shikhin has quit (Changing host).
07:29:26 -!- shikhin has joined.
07:39:55 -!- callforjudgement has joined.
07:40:02 -!- ais523 has quit (Remote host closed the connection).
07:43:41 -!- Patashu has joined.
08:01:29 -!- oren has joined.
08:05:08 <oren> an alternate to bf inwhat way?
08:05:38 <oren> alternative syntax? alternative paradigm?
08:15:16 -!- heroux has quit (Ping timeout: 265 seconds).
08:15:32 -!- coppro has joined.
08:25:41 -!- callforjudgement has quit (Read error: Connection reset by peer).
08:25:53 -!- callforjudgement has joined.
08:28:08 -!- callforjudgement has quit (Client Quit).
08:28:24 -!- callforjudgement has joined.
08:29:01 -!- nisstyre has quit (Ping timeout: 240 seconds).
08:37:25 -!- shikhout has joined.
08:37:47 -!- shikhout has changed nick to Guest75497.
08:40:20 -!- shikhin has quit (Ping timeout: 250 seconds).
08:51:05 -!- Lymia has quit (Remote host closed the connection).
08:54:42 -!- Lymia has joined.
08:54:54 -!- S1 has joined.
08:57:31 -!- nisstyre has joined.
09:01:13 -!- azazel_ has quit (Quit: Connection closed for inactivity).
09:10:43 -!- jslave has joined.
09:12:47 -!- jslave has quit (Read error: Connection reset by peer).
09:13:09 -!- jslave has joined.
09:16:13 -!- jslave has quit (Read error: Connection reset by peer).
09:16:35 -!- jslave has joined.
09:17:37 -!- S1 has quit (Quit: S1).
09:38:33 -!- jslave has quit (Read error: Connection reset by peer).
09:43:41 -!- callforjudgement has quit (Read error: Connection reset by peer).
09:43:47 -!- scarf has joined.
10:01:24 -!- scarf has quit (Read error: Connection reset by peer).
10:01:31 -!- scarf has joined.
10:03:04 -!- mitchs has quit (Ping timeout: 244 seconds).
10:04:36 -!- Guest75497 has changed nick to shikhin.
10:04:41 -!- shikhin has quit (Changing host).
10:04:41 -!- shikhin has joined.
10:15:12 -!- mitchs has joined.
10:32:56 <oren> Would it be possible to describe the information content of a file in terms of "the shortest program that outputs the file"?
10:32:57 -!- AndoDaan has joined.
10:34:54 <oren> I am considering an output-only language based on code golfing as a means of data compression
10:35:03 <AndoDaan> Has there ever been a esolang/programming language that's coded by sketching/drawing?
10:35:58 <oren> I don't thing so. turtle graphics are the output for a lot of languages, but arbitrary lines as input is different
10:37:07 <AndoDaan> Hmm, okay. Thanks.
10:37:21 <AndoDaan> I might have an original idea for once.
10:37:23 <AndoDaan> *
10:38:01 <AndoDaan> (Though, there might be good reasons why nobody made such a language yet.)
10:38:41 <AndoDaan> Your output-only language would be an interpreter for golfed code in another language?
10:38:50 <J_Arcane> AndoDaan: There's a few box-diagram/flowchart languages, but nothing that freeform that I've seen, no. Most freeform is probably Mondrian maybe?
10:39:57 <AndoDaan> What I have in my head is quite different from those.
10:40:14 <shachaf> it would be possible and has been done by kolmogorov and others hth
10:41:24 <AndoDaan> Code would be interpreted from the lines you draw (their angle, length, relation to other lines).
10:41:34 * oren reads about Kolmogorov and is annoyed that so many people were born before he was
10:42:40 <AndoDaan> Not many that are still alive though.
10:42:51 <oren> AndoDaan: that sounds very cool, especially if the interpreter is flexible enough to run scanned drawings.
10:42:59 <shachaf> kolmogorov was p. great hth
10:44:13 <oren> shachaf: the dude was born before my great-great grandmother was, now that is just cheating
10:44:25 <AndoDaan> I was thinking that the drawing process itself helps determins the program.
10:44:48 <oren> AndoDaan, like "stroke order"
10:44:49 <oren> ?
10:45:05 <oren> Which lines were drawn first?
10:45:12 <AndoDaan> The naked source might be (x1,y1 x2,y2)
10:45:39 <AndoDaan> the first line determins the number base to be used.
10:46:31 <AndoDaan> Put it anywhere, but then cross it n times for n-1 base.
10:46:41 <AndoDaan> like a cross would be binary.
10:47:56 <AndoDaan> Angles might be constrained though, maybe 24
10:48:02 <AndoDaan> degrees of freedom.
10:48:41 <AndoDaan> Enough to be versatile, but still easily determined by the code interpreter.
10:49:04 <oren> AndoDaan: 24 degrees of freedom probably doesn't mean what you think it means
10:49:20 <AndoDaan> :) most likely.
10:49:59 <oren> Your arm has 5 degrees of freedomfor example.
10:50:14 <AndoDaan> The joints?
10:50:35 <AndoDaan> Determine the degree I mean>
10:50:38 <AndoDaan> ?
10:50:39 <oren> it is the number of pure rotations available
10:50:59 <oren> along different axes
10:51:21 <AndoDaan> Ah. Yeah, I meant how lines can intersect a fixed access. Thanks.
10:51:31 <AndoDaan> Axis*
10:51:45 <oren> oh, i see.
10:52:37 <shachaf> how many degrees of freedom does this person's arm have: http://newsbusters.org/sites/default/files/thumbnail_photos/2011/April/Pot.jpg
10:53:17 <AndoDaan> One?
10:54:42 <AndoDaan> Minus one?
10:54:45 <shachaf> #drugz
11:19:07 <oren> why do people call espresso expresso?
11:21:43 <J_Arcane> oren: because they are idiots?
11:22:25 -!- boily has joined.
11:22:47 <oren> konboilywa
11:24:15 <oren> J_Arcane: maybe they think it is related to "expression"?
11:24:33 <J_Arcane> Or "express"
11:25:08 <oren> Well, it is, but only through Italian. I know better because i live in Little Italy.
11:26:22 <oren> idea: programming language where all keywords, library functions,etc are distant cognates of the standard ones
11:29:23 <oren> per(;;)press("hello again");
11:30:54 <oren> like a programming language based on a alternate universe's version of English
11:31:05 -!- scarf has quit (Read error: Connection reset by peer).
11:31:11 -!- ais523 has joined.
11:31:18 -!- ais523 has quit (Changing host).
11:31:18 -!- ais523 has joined.
11:31:34 <oren> quit join quit join
11:33:44 -!- quintopia has quit (Remote host closed the connection).
11:39:07 <boily> oren: ohayoren!
11:39:30 <boily> @ask quintopia Y YOU NO STAY IN THE CHANNEL HTH
11:39:30 <lambdabot> Consider it noted.
11:40:03 <boily> @tell quintopia once again, we are abhorrently missynchronized...
11:40:03 <lambdabot> Consider it noted.
11:40:50 <oren> how do you pronounce abhorrently?
11:41:25 <oren> is the BH like a V or just like a B?
11:42:49 <shachaf> boily: does "HTH" stand for "HOPE THAT HELPS"?
11:43:24 -!- mitchs has quit (Ping timeout: 245 seconds).
11:44:18 <oren> all caps fractur text is much harder to read than lowercase.
11:44:46 <AndoDaan> fungot, fun fractur.
11:44:47 <fungot> AndoDaan: does chicken have anything like " quasisyntax"? i don't think much about it :)
11:46:02 <boily> `? hth
11:46:09 <boily> ...
11:46:11 <HackEgo> hth is help received from a hairy toe. It is not at all hambiguitous.
11:46:13 <boily> ah!
11:46:18 <boily> shachaf: there you go htah
11:46:18 <shachaf> oh
11:46:20 <AndoDaan> '? does it help?
11:46:32 <shachaf> boily: that sentence doesn't make sense
11:46:56 <boily> “there you go, hope that also helps”
11:47:40 <shachaf> boily: the one you asked quintopia
11:48:53 <boily> it makes sense?
11:50:33 <boily> (okay, it may be a creative application of a meme and another meme together...)
11:50:52 <oren> Y U NO HTH?
11:51:37 <oren> i command you to hope, dammit, hope!
11:52:12 <AndoDaan> Hope is a woe, that's why it was in Pandora's box.
11:52:41 <boily> something something believe in the one who believes in the hope something...
11:52:59 -!- drdanmaku has quit (Quit: Connection closed for inactivity).
11:53:08 <oren> AndoDaan: you don't need hope if you have no woes
11:53:59 <AndoDaan> So hope is a meta woe.
11:55:16 -!- mitchs has joined.
11:55:39 <oren> boily: omae wo shinjiru ore wo shinjiru!
11:56:38 -!- callforjudgement has joined.
11:56:41 -!- atslash has quit (Quit: This computer has gone to sleep).
12:00:06 -!- ais523 has quit (Ping timeout: 250 seconds).
12:03:27 <oren> I hate that C comments aren't nestable
12:07:35 -!- mitchs has quit (Ping timeout: 244 seconds).
12:07:55 <boily> oren: use //.
12:08:37 <oren> boily: i am trying to temporarily comment something out, but i used /**/ comments in it
12:09:08 <oren> Oh, what am i thinking here! #if 0 #endif
12:09:18 <oren> that is nestable too.
12:10:13 <boily> ...
12:10:48 * boily oils his mapole and do a few practice swings *swoosh* *swoosh*
12:11:02 -!- Phantom_Hoover has joined.
12:11:17 -!- Phantom_Hoover has quit (Changing host).
12:11:18 -!- Phantom_Hoover has joined.
12:11:23 <boily> oren: you should go with the simplest, instead of cumbersomes #ifs.
12:11:49 <oren> what is simpler?
12:12:24 <boily> /.
12:12:29 <boily> //, says I.
12:12:48 <oren> but that is'nt a block comment
12:13:43 <boily> yes, it isn't.
12:14:18 <oren> so i have to add it to the start of all the lines?
12:14:27 <oren> that is a pain
12:14:42 <boily> out of curiosity, what are you coding with?
12:14:53 <oren> mcedit
12:15:46 <boily> darn. I can't help you with emacs-y shortcuts.
12:16:38 <boily> there should be some weird key combo you could use to automatify that. perhaps.
12:17:07 -!- Patashu has quit (Ping timeout: 264 seconds).
12:17:44 <boily> oren: http://www.gnu.org/software/emacs/manual/html_node/emacs/Comment-Commands.html ← maybe C-c C-c?
12:18:37 <boily> and there I am completely wrong. mcedit is midnight commander's editor. not an emacs variant.
12:19:19 <boily> you should use something probably a little bit more powerful if you need to apply something to multiple lines at the same time...
12:19:47 <oren> boily: it can run arbitrary shell scripts on your selection
12:19:56 <oren> if you add them to your user menu
12:20:43 <oren> but the problem is MC is highly underdocumented
12:21:36 <boily> hm. if it san run shell scripts...
12:21:58 <boily> sed -i 's,^,//,'
12:23:49 -!- boily has quit (Quit: EXCHECKER CHICKEN).
12:34:45 -!- mitchs has joined.
12:36:30 -!- mitchs_ has joined.
12:39:06 -!- mitchs has quit (Ping timeout: 244 seconds).
12:40:39 -!- mitchs_ has quit (Ping timeout: 244 seconds).
12:47:38 -!- Sgeo_ has quit (Read error: Connection reset by peer).
12:49:54 -!- Sgeo has joined.
12:52:41 -!- callforjudgement has quit (Read error: Connection reset by peer).
12:52:55 -!- callforjudgement has joined.
12:54:35 -!- scarf has joined.
12:59:02 -!- callforjudgement has quit (Ping timeout: 250 seconds).
13:07:23 <J_Arcane> Hooray. Heresy has basic file I/O now.
13:10:33 -!- scarf has quit (Read error: Connection reset by peer).
13:10:48 -!- scarf has joined.
13:12:07 <oren> J_Arcane: looks good. vast majority of programs don't read or write more than one file at once.
13:12:48 <oren> so this is definitely more than adequate
13:13:55 <J_Arcane> Yeah. In the future I might add some basic feature matching to Racket's (in-lines ...) and the like too, because they're bloody handy, but it'll do for a basic toy Lisp and it's enough to get my game idea down ...
13:14:38 <elliott> have you written a self-interpreter yet
13:15:08 <J_Arcane> Not yet. Though I think there's enough now for it to be possible.
13:15:32 <J_Arcane> I even wrote a very nice string splitting function explicitly to make parsers easier to write ... :D
13:16:05 <oren> elliott: that is way easier in languages that can jump into data space or have an eval command
13:16:16 <elliott> that doesn't count as a self-interpreter
13:16:22 <oren> why not?
13:16:26 <elliott> J_Arcane: well you could just piggy-back on read
13:17:01 <elliott> oren: because it's boring. you can make more fine-grained distinctions to try and give more exact criteria with which to rule it out but it's easier to just ignore people who pass off eval as a self-interpreter. the point is to *write* eval.
13:17:11 <J_Arcane> Yup, that is also true. After all, that's what most Lisps do anyway. XD
13:17:48 <oren> elliott: ok, yeah it is totally boring.
13:18:50 <oren> and it also prevents it from being (easily) compilable
13:19:31 <oren> so having an eval() is a dubious design chice
13:19:38 <oren> s/chice/choice
13:22:53 <J_Arcane> My goal was to implement enough of the language to write a text-mode RPG like I wrote on the old Tandy CoCo3 as a kid. Only in a functional Lisp. :D
13:26:49 <oren> J_Arcane: after that, put in QBASIC VGA-like graphics!
13:27:37 <J_Arcane> oren: actually ,that's one of the possibilities on the future dev list.
13:27:51 <J_Arcane> Running the whole thing in a fake retro graphics window.
13:28:26 <oren> Great. I have actually recently started trying graphics hacks in DOS on my scrap PC.
13:28:46 <oren> s/DOS/QBASIC.EXE
13:31:35 <oren> scrap PCs are a excellent resource to keep around. you never know when an old PC will come in handy.
13:36:12 <elliott> having eval is fine
13:36:34 <elliott> it can interfere with static compilation models but it is totally fine for JITs and the like
13:36:53 <elliott> most common lisps are compiler-based and still have eval, for instance
13:39:52 <FireFly> "Most common lisps"
13:40:02 <FireFly> I thought the point of common lisp was to be, like, common
13:40:41 <oren> Semantic ambiguity Firefly.
13:43:51 <elliott> I meant most (common lisps)
13:43:53 <oren> elliott: I see, so a language can have eval if it doesn't plan on being turned into an exe.
13:43:57 <elliott> (common lisp)s
13:44:00 -!- scarf has quit (Read error: Connection reset by peer).
13:44:05 <elliott> oren: that's still fine, as long as it links to the compiler at runtime
13:44:07 <elliott> whether statically or dynamically
13:44:09 -!- scarf has joined.
13:44:19 <elliott> as long as the compiler can compile stuff in-memory
13:44:41 <elliott> for instance with a lot of lisps their model is that the implementation starts up, you compile new functions into it, and then you can dump all its compiled state as an executable
13:44:48 <elliott> which you could then reload and add more into and then dump that image, etc.
13:45:13 <elliott> which fits the lisp model of building a program from nothing using the REPL and loading files into it, etc.
13:45:30 <oren> elliott: that is exactly what i want for python
13:45:35 <elliott> obviously this is an elegant model for things like lisp machines
13:45:49 <elliott> where your live lisp environment is all that exists
13:46:20 <elliott> a bonus is that with some implementations you can strip things so that anything you don't call isn't included in the resulting image
13:46:32 <elliott> so if your program never calls eval it won't bundle the entire compiler in the resulting image
13:46:38 <elliott> *into
13:47:55 <oren> lisp is a giant paradox wrapped in an enigma. it is the Nikola Tesla of programming languages.
13:48:10 <elliott> that's, uh, that sure is a comparison
13:48:28 <elliott> lisp is the anarcho-syndicalism of potatoes
13:49:37 <oren> well it was massively ahead of its time, was greatly underappreciated by the masses
13:49:48 <oren> just like Tesla
13:51:52 <elliott> lisp was actually fairly appreciated way back when I think
13:51:54 <elliott> pre-AI Winter anyway
13:52:19 <elliott> well, maybe longer than that
13:52:58 <oren> elliott: really? what about the hordes of Fortraners? did they appreciate it?
13:53:01 <elliott> anwyay I hear edison once killed a bear just by staring at it thru the earth's surface and then he framed tesla for it and tesla had to work in the mines for ten thousand years while edison made five billion dollars off the delicious coal tesla mined
13:53:05 <elliott> *anyway
13:53:25 <elliott> oren: er, you're asking me if people had disagreements about what languages were good back then? yes, of course they did :p
13:56:03 -!- cluid has joined.
13:56:04 <cluid> hello
13:56:09 <oren> hello
13:56:14 <cluid> http://esolangs.org/wiki/Narcissist
13:56:18 -!- cluid has quit (Changing host).
13:56:18 -!- cluid has joined.
13:56:20 <cluid> Brainfuck narcissist by User:Keymaker
13:56:20 <cluid> Subleq OISC Narcissus by User: r.e.s.
13:56:23 <cluid> both these are missing
13:56:26 <cluid> and they aren't on archive.org
13:57:24 <HackEgo> [wiki] [[Narcissist]] http://esolangs.org/w/index.php?diff=41509&oldid=33552 * Ehird * (+60) /* External resources */ update narc.b link
13:58:03 <cluid> great!
13:58:08 <cluid> can narc.b be added to https://github.com/graue/esofiles/tree/master/brainfuck/src
13:58:51 <elliott> if you ping graue, probably
13:58:56 <elliott> though I guess it'd need keymaker's permission
13:59:06 <elliott> narcissists are contravariant quines
14:00:24 <b_jonas> elliot: that story is impossible. tesla and edison lived back before the industrial revolution, when coal mines didn't yet exist.
14:00:39 -!- scarf has quit.
14:00:47 <elliott> b_jonas: damn. you got me. I'm a fraud. I... I never thought this would happen
14:01:12 <cluid> http://esolangs.org/wiki/Brainfuck_derivatives some of the links here are not correct
14:01:22 <elliott> b_jonas: also, no human has ever lived for ten thousand years
14:01:26 <cluid> (FuckBrainfuck and Fuck)
14:01:28 <elliott> debunked
14:01:42 <cluid> http://esolangs.org/wiki/Brainfuck_extensions this page is very useful good too
14:02:08 <HackEgo> [wiki] [[Brainfuck derivatives]] http://esolangs.org/w/index.php?diff=41510&oldid=41508 * Ehird * (-297) rm fuckbrainfuck -- another language with the same name exists and it's more of an implementation choice than anything
14:02:21 <cluid> thank you!
14:03:06 <b_jonas> yeah, except maybe Lazarus Long
14:06:59 <cluid> good morning
14:07:41 -!- sebbu2 has changed nick to sebbu.
14:07:44 -!- nisstyre has quit (Changing host).
14:07:44 -!- nisstyre has joined.
14:08:05 <cluid> where is the golf site
14:08:09 <elliott> golf.shinh.org
14:15:41 <AndoDaan> #anagol is its Freenode chatroom.
14:27:12 <J_Arcane> "lisp is the anarcho-syndicalism of potatoes" XD
14:27:47 -!- AndoDaan_ has joined.
14:28:24 -!- AndoDaan has quit (Ping timeout: 245 seconds).
14:33:13 -!- _AndoDaan_ has joined.
14:37:18 -!- shikhout has joined.
14:37:40 -!- shikhout has changed nick to Guest97570.
14:37:50 -!- AndoDaan_ has quit (Ping timeout: 272 seconds).
14:38:53 <J_Arcane> https://news.ycombinator.com/item?id=8766357
14:39:14 -!- mihow has joined.
14:39:32 <cluid> J_Arcane, http://esolangs.org/wiki/BS
14:41:00 -!- shikhin has quit (Ping timeout: 272 seconds).
14:43:52 -!- drdanmaku has joined.
14:46:16 <cluid> I tried anagol but I got the same length as the other peoeple
14:52:18 <mroman> !blsq q1J{Pp|[1pP2CO)++p^1]|J}15E!vv#<
14:52:19 <blsqbot> | {1}
14:52:19 <blsqbot> | {1 1}
14:52:19 <blsqbot> | {1 2 1}
14:52:25 <mroman> !blsq q1J{Pp|[1pP2CO)++p^1]|J}15E!vv
14:52:25 <blsqbot> | {1 15 105 455 1365 3003 5005 6435 6435 5005 3003 1365 455 105 15 1}
14:52:25 <blsqbot> | {1 14 91 364 1001 2002 3003 3432 3003 2002 1001 364 91 14 1}
14:52:25 <blsqbot> | {1 13 78 286 715 1287 1716 1716 1287 715 286 78 13 1}
14:52:49 <oren> pascal's triangle!
14:52:55 <mroman> true
14:53:00 <elliott> cluid: that's still pretty good
14:53:08 <oren> why is the second one upside down?
14:53:21 <mroman> because I dropped the #<
14:53:37 <cluid> I want to win one but I gotta choose the best language
14:53:40 <mroman> !blsq q1J{Pp|[1pP2CO)++p^1]|J}15E!vv#s
14:53:40 <blsqbot> | {{1 15 105 455 1365 3003 5005 6435 6435 5005 3003 1365 455 105 15 1} {1 14 91 364 1001 2002 3003 3432 3003 2002 1001 364 91 14 1} {1 13 78 286 715 1287 1716 1716 1287 715 286 78 13 1} {1 12 66 220 495 792 924 792 495 220 66 12 1} {1 11 55 165 330 462 462 3
14:53:43 <cluid> golfscrippt seems like cheating......
14:53:50 <mroman> !blsq q1J{Pp|[1pP2CO)++p^1]|J}5E!vv#s
14:53:50 <blsqbot> | {{1 5 10 10 5 1} {1 4 6 4 1} {1 3 3 1} {1 2 1} {1 1} {1}}
14:53:50 <blsqbot> | {1 5 10 10 5 1}
14:53:50 <blsqbot> | {1 4 6 4 1}
14:53:53 <cluid> I should use anagol problem #31 script
14:54:01 <_AndoDaan_> Hey, mroman. I wanted to say that I came accross you javascript Beam interpreted, and I've using it's code as a reference to help me develop an the same kind of thing for MNNBFSL.
14:54:07 <_AndoDaan_> I hope that's okay.
14:54:10 <mroman> sure
14:54:18 <_AndoDaan_> Thanks.
14:54:23 <cluid> _AndoDaan_, what's your thoughts on MNNBFSL?
14:54:29 <cluid> and hwo is your interpreter coming
14:54:38 <mroman> cluid: Golfscript is cheating
14:54:40 <mroman> then try Burlesque
14:54:50 <_AndoDaan_> For some reason, I'm obsessed with MNNBFSL
14:54:50 <mroman> !blsq 1Jq.+15C!
14:54:50 <blsqbot> | 1597
14:54:50 <blsqbot> | 987
14:54:50 <blsqbot> | 610
14:54:57 <cluid> I like MNNBFSL
14:54:58 <mroman> !blsq 1Jq.+10C!#s
14:54:58 <blsqbot> | {144 89 55 34 21 13 8 5 3 2 1 1}
14:54:58 <blsqbot> | 144
14:54:58 <blsqbot> | 89
14:55:07 <mroman> !blsq 1Jq.+10!C#sit
14:55:07 <blsqbot> | {1 1 2 3 5 8 13 21 34 55 89 144}
14:55:09 <cluid> Have you written any programs in it?
14:55:26 <mroman> !blsq 1Jq.-10!C#sit
14:55:26 <blsqbot> | {1 1 0 1 -1 2 -3 5 -8 13 -21 34}
14:55:47 <mroman> !blsq 1Jq.*10!C#sit
14:55:47 <blsqbot> | {1 1 1 1 1 1 1 1 1 1 1 1}
14:55:49 <mroman> hm
14:55:54 <mroman> !blsq 1 2q.*10!C#sit
14:55:54 <blsqbot> | {1 2 2 4 8 32 256 8192 2097152 17179869184 36028797018963968 618970019642690137449562112}
14:56:16 <mroman> !blsq 10roq.+pa
14:56:16 <blsqbot> | {{1} ERROR: Burlesque: (.+) Invalid arguments! {1 2} ERROR: Burlesque: (.+) Invalid arguments! {1 2 3} ERROR: Burlesque: (.+) Invalid arguments! {1 2 3 4} ERROR: Burlesque: (.+) Invalid arguments! {1 2 3 4 5} ERROR: Burlesque: (.+) Invalid arguments! {1 2
14:56:20 <mroman> uhm
14:56:24 <mroman> !blsq 10roq++pa
14:56:24 <blsqbot> | {1 3 6 10 15 21 28 36 45 55}
14:56:26 <mroman> ah. there we go
14:56:31 <cluid> @_AndoDaan_
14:56:31 <lambdabot> Unknown command, try @list
14:56:33 <_AndoDaan_> Yeah. Some basic string construction stuff. But my first real bit of coding has been a program that gives Collatz sequence for a given number.
14:56:40 <cluid> cool! I saw that
14:56:51 <mroman> !blsq 10roq++paq++pa
14:56:51 <blsqbot> | {1 4 10 20 35 56 84 120 165 220}
14:56:55 <mroman> !blsq 10roq++paq++paq++pa
14:56:55 <blsqbot> | {1 5 15 35 70 126 210 330 495 715}
14:57:03 <mroman> !blsq 10roq++paq++paq++paq++pa
14:57:03 <blsqbot> | {1 6 21 56 126 252 462 792 1287 2002}
14:57:20 <cluid> I noticed some _________ in it, funny
14:57:22 <cluid> to make the jumps
14:57:23 <_AndoDaan_> I'm working on my own template/method for implemeting labels/maybe functions in it.
14:57:45 <mroman> !blsq |[10 9nr]|
14:57:45 <blsqbot> | {10}
14:57:53 <cluid> there is a way to make labbels and get label addresses pushed to the stack already
14:58:11 <_AndoDaan_> The way ']' is/was really hard for me to get to grips with.
14:58:19 <_AndoDaan_> works*
14:58:32 <cluid> yeah it's a interesting language! Its more different than brainfuck than I thought when i first saw it
14:58:52 <_AndoDaan_> Definitely.
14:59:02 <_AndoDaan_> Took me too long to fully realize that.
14:59:33 -!- _AndoDaan_ has changed nick to AndoDaan.
15:00:27 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
15:00:55 <mroman> I wonder if |[ ]| will be useful in golfing
15:01:15 <mroman> !blsq {1 1.+}
15:01:16 <blsqbot> | {1 1 .+}
15:01:16 <mroman> vs
15:01:23 <mroman> !blsq |[1 1.+|]
15:01:23 <blsqbot> | ERROR: Unknown command: (|])!
15:01:23 <blsqbot> | 2
15:01:23 <blsqbot> | |[
15:01:27 <mroman> !blsq |[1 1.+]|
15:01:28 <blsqbot> | {2}
15:01:32 <mroman> !blsq 9so{go}
15:01:32 <blsqbot> | {go}
15:01:33 <blsqbot> | 1
15:01:46 <mroman> !blsq 9s0{g0}
15:01:46 <blsqbot> | {BlsqGet "0"}
15:01:56 <mroman> !blsq 9s0|[g0]|
15:01:56 <blsqbot> | {9}
15:02:15 <AndoDaan> Immediatly evals a code block?
15:03:00 <AndoDaan> !blsq |[2 3.*]|
15:03:00 <blsqbot> | {6}
15:03:15 <AndoDaan> !blsq {2 3.*}e!
15:03:15 <blsqbot> | 6
15:03:37 <AndoDaan> hmm, and keeps the result in the block.d
15:05:46 <AndoDaan> !blsq |[20ro J{FC}m[]|
15:05:46 <blsqbot> | {{1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20} {ERROR: Unknown command: (FC)! 1 ERROR: Unknown command: (FC)! 2 ERROR: Unknown command: (FC)! 3 ERROR: Unknown command: (FC)! 4 ERROR: Unknown command: (FC)! 5 ERROR: Unknown command: (FC)! 6 ERROR: Un
15:06:09 <AndoDaan> !blsq |[20ro J{fc}m[]|
15:06:09 <blsqbot> | {{1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20} {{1} {1 2} {1 3} {1 2 4} {1 5} {1 2 3 6} {1 7} {1 2 4 8} {1 3 9} {1 2 5 10} {1 11} {1 2 3 4 6 12} {1 13} {1 2 7 14} {1 3 5 15} {1 2 4 8 16} {1 17} {1 2 3 6 9 18} {1 19} {1 2 4 5 10 20}}}
15:06:17 <AndoDaan> !blsq |[20ro J{fc}m[:f:]|
15:06:17 <blsqbot> | {{1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20} {{1} {1 2} {1 3} {1 2 4} {1 5} {1 2 3 6} {1 7} {1 2 4 8} {1 3 9} {1 2 5 10} {1 11} {1 2 3 4 6 12} {1 13} {1 2 7 14} {1 3 5 15} {1 2 4 8 16} {1 17} {1 2 3 6 9 18} {1 19} {1 2 4 5 10 20}}}
15:06:35 <AndoDaan> !blsq |[20ro J{fcL[}m[]|
15:06:36 <blsqbot> | {{1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20} {1 2 2 3 2 4 2 4 3 4 2 6 2 4 4 5 2 6 2 6}}
15:07:13 <AndoDaan> !blsq |[20ro J{fcL[2.-nz}m[]|
15:07:13 <blsqbot> | {{1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20} {1 0 0 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1}}
15:08:28 <AndoDaan> !blsq |[20ro{JfcL[2==}m[)f:]|
15:08:28 <blsqbot> | {{ERROR: Burlesque: (<-) Invalid arguments! ERROR: Burlesque: (><) Invalid arguments! ERROR: Burlesque: (m[) Invalid arguments! {^^ L[ \/ -] bx \/ +]} ERROR: Burlesque: (=[) Invalid arguments! 0 ERROR: Burlesque: (<-) Invalid arguments! ERROR: Burlesque: (
15:08:39 <AndoDaan> !blsq |[20ro{JfcL[2==}m[)F:]|
15:08:39 <blsqbot> | {{ERROR: Burlesque: (z[) Invalid arguments! ERROR: Burlesque: (++) Invalid arguments! ERROR: Burlesque: (./) Invalid arguments! ERROR: Burlesque: (m[) Invalid arguments! ERROR: Burlesque: (m[) Invalid arguments! {pd} ERROR: Burlesque: (m[) Invalid argument
15:08:59 <AndoDaan> !blsq |[20ro{JfcL[2==}m[)fi]|
15:08:59 <blsqbot> | {{ERROR: Burlesque: (fi) Invalid arguments! 0 ERROR: Burlesque: (fi) Invalid arguments! 1 ERROR: Burlesque: (fi) Invalid arguments! 1 ERROR: Burlesque: (fi) Invalid arguments! 2 ERROR: Burlesque: (fi) Invalid arguments! 1 ERROR: Burlesque: (fi) Invalid arg
15:09:06 <AndoDaan> !blsq |[20ro{JfcL[2==}m[)Fi]|
15:09:06 <blsqbot> | {{ERROR: Burlesque: (fi) Invalid arguments! 0 ERROR: Burlesque: (fi) Invalid arguments! 1 ERROR: Burlesque: (fi) Invalid arguments! 1 ERROR: Burlesque: (fi) Invalid arguments! 2 ERROR: Burlesque: (fi) Invalid arguments! 1 ERROR: Burlesque: (fi) Invalid arg
15:09:13 <AndoDaan> terrible memory.
15:09:22 <AndoDaan> sorry spamming.
15:22:32 <nyuszika7h> does anyone know if there's a way to convert a single-character string to a number in dc?
15:23:11 -!- yonkie has quit (Quit: leaving).
15:24:42 <oren> does dc allow to subtract '0' from it?
15:29:24 <oren> oh! just use x!
15:29:43 <oren> [5]x3-p --> 2
15:29:58 -!- Sprocklem has joined.
15:34:30 -!- GeekDude has joined.
15:38:35 -!- atslash has joined.
15:39:23 -!- scounder has quit (Changing host).
15:39:23 -!- scounder has joined.
15:40:07 -!- Guest97570 has changed nick to shikhin.
15:40:12 -!- shikhin has quit (Changing host).
15:40:12 -!- shikhin has joined.
15:42:09 -!- sebbu has quit (Quit: reboot).
15:43:18 <J_Arcane> http://marcrogers.org/2014/12/18/why-the-sony-hack-is-unlikely-to-be-the-work-of-north-korea/
15:45:41 -!- atslash has quit (Quit: Leaving).
16:00:24 <HackEgo> [wiki] [[Scrip7]] http://esolangs.org/w/index.php?diff=41511&oldid=41487 * Orenwatson * (-286) upadted links
16:01:31 <elliott> seriously it's like a parody of north korea
16:02:09 <elliott> media goes OMG WHAT IF IT'S NKOREA -> pastebin post with awkward english going all ~terroristy~ on the film release, thanks for the great "lulz" idea guys
16:02:43 <elliott> https://marcrogers.files.wordpress.com/2014/12/gop-image.jpg ok but the skeleton
16:04:20 <elliott> anyway I like imagining that the republican party hacked sony
16:04:27 <elliott> hacked by gop
16:07:58 <coppro> it was probably /r/pyongyang
16:20:18 <J_Arcane> https://www.haskell.org/haskellwiki/Monad_tutorials_timeline
16:22:24 -!- MDude has joined.
16:22:27 -!- MDream has quit (Read error: Connection reset by peer).
16:24:55 -!- sebbu has joined.
16:24:55 -!- sebbu has quit (Changing host).
16:24:55 -!- sebbu has joined.
16:25:08 <HackEgo> [wiki] [[Scrip7]] http://esolangs.org/w/index.php?diff=41512&oldid=41511 * Orenwatson * (+27) why did no one tell me about gists on github. this is much better than stupid pastebin
16:29:37 <J_Arcane> Hah hah.
16:30:24 <J_Arcane> What's the deal with '#if 0' preprocessor clauses?
16:42:34 <oren> it helps to make a file both a valid .c and a valid shell script at once
16:42:44 <oren> the shell script part doesn't tokenize
16:43:07 <oren> so i added "true /*" at beginning and "true */" at end
16:44:15 <oren> J_Arcane: and the #if 0 makes sure the shell script isn't in the final c code.
16:48:58 <oren> actually, so long as true; is a valid C statement (enabled by macros) then it isn't necessary
16:49:48 <oren> actually, so long as true; is a valid C statement (enabled by macros) then it isn't necessary
16:52:42 <oren> yeah, that works: #define true true /* will allow separate C and shell parts.
16:53:09 <elliott> #define true true is UB though :P
16:53:12 <elliott> or is it
16:53:13 <elliott> I forget
16:53:15 <elliott> okay no true isn't
16:53:22 <elliott> #define _Bool might be?
16:53:27 <elliott> I guess that's not a keyword.
16:53:43 <oren> i think true is a keyword in c++ tho
16:54:12 <oren> note that it is
16:54:16 <oren> #define true
16:54:18 <oren> true /*
16:54:19 <b_jonas> elliott: it depends:
16:54:29 <b_jonas> elliott: in C, true is a macro defined by #include <stdbool.h>
16:54:34 <b_jonas> but you could define it yourself;
16:54:41 <b_jonas> whereas in C++, true is a keyword you must not define
16:54:44 <elliott> oren: #define _ /*
16:54:46 <elliott> ...
16:54:47 <elliott> */
16:54:49 <elliott> I guess that doesn't work
16:55:04 <b_jonas> I mean, in C, you could define true correctly; you're not allowed to define it incorrectly, because then other macros or headers could break
16:55:05 -!- S1 has joined.
16:55:34 <oren> if a header uses true then it will redefine it
16:56:00 <b_jonas> oren: not if a previous header already included stdbool.h so the header guard is defined already
16:56:22 <b_jonas> in any case, it's certainly a Bad Idea to define true yourself
16:56:23 <oren> right but for this it is the first line in the file
16:56:32 <oren> (and kind of has to be)
16:57:03 <oren> we can always redefine it to 1 afterward
16:58:03 <b_jonas> oren: no, 1 is the wrong definition, it has to be something like ((bool)1)
16:59:41 <b_jonas> or, um, make that ((_Bool)1) as you don't have bool defined
17:01:03 -!- S1 has quit (Ping timeout: 244 seconds).
17:11:15 <elliott> b_jonas: are you really not allowed to do #define true 123
17:11:27 <elliott> like, by the standard
17:11:33 <elliott> I don't care whether things break, I care about language lawyering :P
17:11:52 <elliott> wasn't the whole point you have to include <stdbool.h> because people already used "true" for their own purposes
17:12:46 <newsham> #undef true; #define true 123
17:12:53 <b_jonas> elliott: I don't think you're allowed to, but I'm not quite sure. ask on ##c if you want to know.
17:13:07 <elliott> b_jonas: no way am I ever going to join ##c
17:13:11 <elliott> that's like the worst channel on freenode
17:13:20 <newsham> you should try #python some day
17:13:22 <b_jonas> elliott: whatever, I just don't know, sorry
17:13:23 <elliott> I have
17:13:26 <elliott> ##c is worse :p
17:13:32 <newsham> nah, ##c is better (slightly)
17:13:37 <elliott> unless #python took a major nosedive within the past couple of years
17:13:42 <b_jonas> if you don't want to join it, sure, but I don't think it's the _worst_ channel
17:13:55 <b_jonas> I mean, we have tens of thousands of channels (how many really?)
17:14:45 <elliott> most of them are basically empty though
17:15:36 <HackEgo> [wiki] [[User:Cluid Zhasulelm]] M http://esolangs.org/w/index.php?diff=41513&oldid=41503 * Cluid Zhasulelm * (+26) Updating my userpage
17:21:58 <HackEgo> [wiki] [[K-on Fuck]] M http://esolangs.org/w/index.php?diff=41514&oldid=41355 * Cluid Zhasulelm * (+2307) Added example and BF equivalence note
17:22:15 -!- bb010g has quit (Quit: Connection closed for inactivity).
17:31:45 -!- sebbu2 has joined.
17:32:03 -!- sebbu has quit (Ping timeout: 244 seconds).
17:32:24 -!- sebbu2 has quit (Changing host).
17:32:24 -!- sebbu2 has joined.
17:48:44 -!- atslash has joined.
17:52:34 -!- AndoDaan has quit (Ping timeout: 245 seconds).
17:57:24 -!- AndoDaan has joined.
18:06:48 -!- atslash has quit (Quit: This computer has gone to sleep).
18:15:22 -!- cluid has quit (Quit: Leaving).
18:18:01 <fizzie> elliott: C11 7.1.3p1 subpoint 3 and p3 hth
18:18:24 <elliott> I'm too lazy to look that up
18:19:02 <fizzie> elliott: "Each macro name in any [description of a header in the standard] is reserved for use as specified if any of its associated headers is included --" "If the program removes (with #undef) any macro definition of an identifier in the first group listed above, the behavior is undefined."
18:19:23 <elliott> okay, but if you don't include <stdbool.h>?
18:19:34 <fizzie> I'm relatively sure you can still #define true, and even include other standard headers.
18:21:13 <fizzie> You can also "#define while" etc., albeit in very limited scenarios: "The program shall not have any macros with names lexically identical to keywords currently defined prior to the inclusion of the header or when any macro defined in the header is expanded." (C11 7.1.2p4)
18:21:13 <b_jonas> fizzie: ok, but a few macro names like I get special exemptions, is true one of those?
18:21:48 <fizzie> Oh, right. Yes.
18:22:09 <fizzie> "Notwithstanding the provisions of 7.1.3, a program may undefine and perhaps then redefined the macros bool, true, and false."
18:22:15 <fizzie> So they're one of those.
18:22:29 <elliott> C is a mess
18:23:20 <fizzie> Though the "future library directions" section mentions that "the ability to undefine and perhaps then redefine the macros bool, true, and false is an obsolescent feature".
18:23:35 <fizzie> I also don't see any restrictions about only being allowed to redefine them "correctly".
18:35:23 -!- Sprocklem has quit (Ping timeout: 250 seconds).
18:39:00 -!- mihow has quit (Quit: mihow).
18:50:27 -!- MoALTz has joined.
19:08:47 -!- AndoDaan_ has joined.
19:08:53 -!- AndoDaan has quit (Ping timeout: 245 seconds).
19:14:45 -!- atslash has joined.
19:18:27 -!- cluid has joined.
19:18:29 <cluid> hi
19:18:47 <cluid> is this correct for NAND in C ~(x & y) ?
19:18:53 <elliott> yes
19:19:47 <cluid> ffffffd5 0000002a 0000002a
19:19:47 <cluid> 1 0 0
19:19:52 <cluid> i cant understand why im getting this result here
19:19:58 <cluid> x y then nand
19:20:03 <cluid> and then I printed &1 of each, to see
19:20:07 <cluid> but its not correct
19:20:30 <J_Arcane> I really need to write (max ...) for Heresy. This Collatz problem would be a lot easier that way ...
19:22:32 <fizzie> cluid: There must be something screwy with your test case or something.
19:22:33 <fizzie> [21:21:03] <fizzie> ,cc unsigned x = 0xffffffd5, y = 0x0000002a, nand = ~(x & y); printf("%x %x %x, %u %u %u", x, y, nand, x&1, y&1, nand&1);
19:22:36 <fizzie> [21:21:05] <candide> fizzie: ffffffd5 2a ffffffff, 1 0 1
19:23:42 <elliott> and here I was trying to write that in haskell
19:23:59 <cluid> http://lpaste.net/116803
19:24:02 <glguy> > showHex (complement (0xffffffd5 .&. 0x0000002a) :: Word32)""
19:24:02 <glguy> "ffffffff"
19:24:03 <lambdabot> "ffffffff"
19:24:04 <glguy> There you go, elliott
19:24:11 <cluid> this is very confusing :(
19:24:24 <elliott> glguy: I was trying to implement it zipping nand over the actual bits
19:24:28 <elliott> but I don't think I can use the lens "bits" to do it
19:24:37 <elliott> since you can't zip traversals
19:25:03 <elliott> cluid: what's u?
19:25:06 <fizzie> cluid: Showing the type of u->r might be relevant.
19:25:16 <cluid> updated the post
19:25:31 <cluid> u is um*
19:25:46 <glguy> You kind of can if you cheat and turn them into lists, zip and then back using "partsOf"
19:25:48 <fizzie> And also to make sure a != b, b != c, a != c.
19:25:49 <elliott> ahh, and you're sure a =/= b =/= c, right? :p
19:26:28 <elliott> glguy: yeah but partsOf is sin. I think it should be possible to do a safe zipWith... it would put the elements back into the first traversal and truncate the second
19:26:45 <cluid> thanky ou!
19:27:04 <glguy> In any case, you abandoned us, put away the lens :-p
19:27:15 <elliott> the xor swap trick also doesn't work on x[a] and x[b] if a == b :)
19:27:29 <elliott> glguy: I'm just on very extended holiday :(
19:28:13 * elliott has a perpetual right to use lens thanks to my role in implementing the representation it uses for like half the library now :p
19:30:18 <elliott> I admit though, I've written not much Haskell in the past >2 years
19:35:31 <cluid> what's the thing in C that gives you memory set to 0?
19:35:44 <elliott> calloc
19:35:52 <elliott> it also helps you avoid size overflows when allocating arrays, yay
19:36:06 <cluid> I thought it was that but I read the man page and it doesnt say that
19:36:11 <cluid> i must have missed it
19:36:21 <cluid> oh yeah its right there
19:36:23 <cluid> thanks
19:37:34 <elliott> you can also use mmap to do it
19:37:42 -!- hjulle has joined.
19:37:45 <elliott> maybe not as portable
19:38:49 <elliott> fizzie: we concluded years ago that it's not okay to use calloc to allocate an array of pointers initialised to NULLs, right?
19:39:03 <fizzie> Yes.
19:39:05 <elliott> since calloc has to be type-generic, and null pointers might not be all-bits-zero
19:39:11 <elliott> that's so messed up :p
19:39:14 <fizzie> It's not a controversial opinion at all.
19:39:21 <fizzie> You also can't use memset to get null pointers.
19:39:35 <elliott> right, it's one of the more obvious bits of language-lawyering.
19:39:49 <elliott> fizzie: because it's char-based?
19:40:12 <fizzie> For the same all-bits-zero reason. I mean, there's not much difference between calloc and malloc + memset 0.
19:40:22 <fizzie> Also applies to floats, incidentally.
19:40:27 <elliott> as in, memset_intptr(p, (intptr_t) NULL, n) would be fine, right?
19:41:13 <fizzie> I don't think so -- there's no defined mapping between the values (and representations) of intptr_t and pointers.
19:41:56 <fizzie> And anyway the null pointers of pretty much any pointer type could all be different.
19:42:06 <fizzie> (I mean, the bits of their representations.)
19:43:44 <fizzie> Incidentally, the same "calloc does not yield the same as assignment with 0" thing also applies to floats (unless __STDC_IEC_559__ is defined, in which case it's safe).
19:44:06 -!- zzo38 has joined.
19:45:32 <fizzie> Actually, I'm not 100% sure of that last bit. __STDC_IEC_559__ means that the 'float' and 'double' types "match" the IEC 60559 single and double types, but maybe that doesn't extend to the bit-level representation, just the observable behavior w.r.t. radix and exponent ranges and operations and such.
19:45:34 <cluid> hi zzo38
19:46:11 <zzo38> Sometimes I need the bit level representation though
19:46:35 <cluid> please give me hints to get an inappropriate key, I cannot move the red stuff out the way of the red button
19:47:18 <zzo38> Maybe using preprocessor conditions a function can be made up to convert it to/from the IEEE representation
19:47:33 <fizzie> After a quick look at appendix F, it seems likely it doesn't constrain the representation. I mean, the endianness is certainly free, so why not some sort of "bits are stored as their complement" representation would be too.
19:48:23 <zzo38> cluid: Are you talking about Super ASCII MZX Town? If so, I can give you a hint about the red stuff
19:48:28 <cluid> yes please
19:48:43 <zzo38> The red stuff around the button are breakable walls.
19:49:11 <cluid> I tried to push a bomb into this screen from the above one but couldn't
19:49:27 <zzo38> You cannot push things between screens in MegaZeux.
19:50:16 <cluid> how can I break the red walls
19:50:49 <zzo38> Do you know where the purple keycard is?
19:51:04 <cluid> I dont think so
19:51:05 <cluid> no
19:51:54 <zzo38> There is a note somewhere else in the game which you may have not read yet which says so; you should have gone there first. Well, I can tell you anyways; it is behind a tree.
19:52:26 -!- Lymia has quit (Ping timeout: 250 seconds).
19:52:51 <cluid> is the purple keycard in the room next to the keycard teleporter?
19:52:52 -!- nycs has joined.
19:53:00 <zzo38> No.
19:54:02 -!- `^_^v has quit (Ping timeout: 240 seconds).
19:54:04 <cluid> is it past 'this way to the castle?'
19:57:51 <cluid> i cant find a fake tree
19:59:31 <zzo38> It is on the screen where they sell inappropriate keys
19:59:58 <zzo38> (You do not need the keycard to solve this puzzle, but it is important to know where it is, in order to solve this puzzle.)
20:00:11 <cluid> ok I found it!
20:00:22 <cluid> I thought I chcked there before, but I didn't see it
20:01:57 <cluid> I can't think what I gain from this space
20:02:11 <cluid> can control the slime without moving through the one way doors but what can I do with that
20:02:48 -!- Patashu has joined.
20:03:19 <cluid> the slime can push ammo
20:03:52 <zzo38> Yes, that is correct. Ammo is indirectly pushable. So are some other objects.
20:04:13 <zzo38> They aren't just one-way doors. Look in the help file (push F1) under "mirth of built-ins"; under that menu look under "transport".
20:04:41 <zzo38> Note the help file contains many lies; I didn't write it. However, much of it is valid at least partially.
20:04:46 <cluid> I see
20:05:05 <zzo38> The part about the destination of transports happens to be correct.
20:05:57 <zzo38> (Look at the potion and ring effects too.)
20:07:00 <cluid> "Certain other things can destroy them as well" Which things? I am very stuck in this game
20:07:56 <zzo38> What are you refering to?
20:08:04 <cluid> getting an inappropraite key
20:08:16 -!- Lymia has joined.
20:08:40 <zzo38> I mean what are you refering to that certain other things can destroy?
20:08:52 <cluid> it says that in the mirth of built-ins section
20:08:59 <cluid> regarding the red breakable wall
20:09:05 <cluid> which is what I want to destroy
20:09:23 <zzo38> Explosions and bullets. Robots can also change anything, but that isn't relevant here.
20:10:13 -!- CrazyM4n has joined.
20:10:23 <zzo38> If they are brown, also fire.
20:10:26 <cluid> but i cant use a bob or shoot
20:10:32 <cluid> thre is fire. i cant move fire though
20:10:36 <cluid> as far as I know
20:10:42 <cluid> its not brown though
20:10:56 <zzo38> No, it is lava not fire, but correct you cannot move it and it won't help due to not brown.
20:11:53 <zzo38> Did you read the part about transport destinations? That is important to solving this screen.
20:13:22 <cluid> ok i mreading it now thanks!
20:13:45 <cluid> ok i mreading it now thanks!
20:15:36 -!- quintopia has joined.
20:16:35 -!- dts|pokeball has quit (Read error: Connection reset by peer).
20:17:23 -!- dts|pokeball has joined.
20:17:33 -!- CrazyM4n has quit (Remote host closed the connection).
20:18:37 <cluid> I solved it thabks
20:18:59 <cluid> almost.....
20:21:17 -!- CrazyM4n has joined.
20:25:39 -!- Patashu has quit (Ping timeout: 244 seconds).
20:32:10 -!- nycs has quit (Quit: This computer has gone to sleep).
20:36:38 -!- `^_^v has joined.
20:38:19 -!- shikhout has joined.
20:38:40 -!- shikhout has changed nick to Guest82803.
20:40:35 <cluid> why do I get double free or corruption in calloc
20:40:40 <cluid> I mean, in freeing the result of calloc
20:41:08 <fizzie> valgrind can often tell.
20:41:23 -!- shikhin has quit (Ping timeout: 272 seconds).
20:41:30 <fizzie> (Usually it's because of double free or corruption.)
20:44:56 <cluid> free(calloc(0, sizeof(platter))); this works
20:45:04 <cluid> but if I assign it into my structure then free it, it dies
20:45:15 <cluid> u->a[i].elt = calloc(u->r[c], sizeof(platter)); free(u->a[i].elt);
20:45:35 <zzo38> Does u->a[i].elt have the correct type?
20:46:01 <cluid> it's platter *elt;
20:46:26 <fizzie> And you don't do anything between those two statements?
20:47:12 <fizzie> (You might also want to check what u->r[c] is, though I guess you shouldn't ever get anything else out of calloc than a valid pointer or a null pointer, both of which you can also safely pass to free.)
20:47:43 <cluid> it's 0 in this case
20:48:01 <cluid> http://lpaste.net/116818 this is my test
20:49:36 -!- MoALTz has quit (Quit: Leaving).
20:49:58 <cluid> I think i realized the problem
20:51:40 <fizzie> Well, what was it? (I didn't pick on anything obvious.)
20:54:21 <cluid> the a array wasn't big enough so i was out of bounds :S
20:54:42 <cluid> for some reason its ok to write into a[i] and get the same pointer value out but freeing it cause da weird crash
20:55:33 <fizzie> I doubt it's really "ok".
21:14:22 -!- erdic has quit (Ping timeout: 240 seconds).
21:19:18 -!- Lymia has quit (Ping timeout: 245 seconds).
21:20:10 -!- GeekDude has quit (Quit: {{{}}{{{}}{{}}}{{}}} (www.adiirc.com)).
21:22:45 -!- erdic has joined.
21:22:48 -!- GeekDude has joined.
21:27:01 <cluid> https://github.com/mthom/shentong
21:27:13 <cluid> "The codensity transformation was applied to the KLContext state transformer, and consequently, the new implementation is approximately twice as fast as the first, unoptimized release"
21:31:49 -!- CrazyM4n has quit (Quit: installing hard drive).
21:31:50 <oren> is it wrong that i think the word "optimization" means exclusively things that speed up by a constant?
21:32:07 <elliott> yes
21:32:10 -!- mitchs has joined.
21:32:19 <elliott> "optimising compilers" would be very boring then
21:32:24 <oren> and not things that make the O() function better?
21:33:04 <oren> elliott: can optimizing compilers make the O() better?
21:33:26 <elliott> gcc and clang do much better than just reducing constants of course
21:33:46 <cluid> Ive heard about algorithmic speedups
21:34:09 <cluid> a benchmark for supercompilers is turing a very naive exponential algorithm into the KMP algorithm
21:34:11 <elliott> ghc does even more in terms of optimisations that make a huge difference
21:34:14 <elliott> (it basically has to)
21:35:50 <oren> elliott: it seems to me there should be a separate word for things that speed stuff up without modifying the complexity
21:35:59 <elliott> "boring optimisations" :p
21:36:18 <oren> i'll call it what from now on
21:36:21 <oren> *that
21:36:44 -!- Lymia has joined.
21:36:51 <elliott> (I'm kidding; plenty of optimisations like that are interesting.)
21:36:57 <cluid> What compiler optimizations do you know which give better speedups than constant factors?
21:37:15 <cluid> i think that proper tail recursion is one
21:37:20 <elliott> cluid: removing a loop is one obvious one
21:37:31 <cluid> how do you remove a loop?
21:37:48 <elliott> int mult(int m, int n) { int r = 1; for (int i = 0; i < n; i++) r += m; return r; }
21:37:51 <elliott> can be reduced to multiplication
21:38:01 <elliott> I would hope all C compilers can do that
21:38:03 -!- GeekDude has quit (Ping timeout: 245 seconds).
21:38:43 <cluid> I can't imagine how a compiler would figure that out
21:38:49 <cluid> i believe you that some can do it
21:39:11 <cluid> but that seems sort of pointless to just pattern match on if its not part of a more general optimization
21:39:35 <oren> cluid: because of C++ screwedness, C compilers have to optimize the std::algorthms package
21:39:41 <elliott> cluid: well, one thing is that a lot of trivial-looking optimisations mean much more in the presence of inlining
21:39:56 <elliott> since inlining can produce easy-to-optimise code that no human would ever write
21:40:31 <oren> inlining+templates causes compilers to have to be very smart
21:42:00 <cluid> interesting stuff
21:42:04 <oren> in general any system based on writing stuff in the language that should be builtin causes extra compilation effort
21:42:39 -!- GeekDude has joined.
21:42:42 <oren> see: std::string std::vector
21:43:31 <elliott> https://en.wikipedia.org/wiki/Strength_reduction this has a nice "optimisation walkthrough"
21:43:45 <elliott> for strength reduction
21:44:10 <fizzie> elliott: itym 0 hth
21:44:22 <elliott> fizzie: yes, right.
21:44:27 <elliott> I was half writing factorial, half writing multiplication.
21:44:45 <cluid> scary
21:44:50 <fizzie> And yes, e.g. GCC replaces that with a test and either a mul or a constant zero: http://sprunge.us/gjcZ
21:45:03 <cluid> compiling is scary
21:45:12 <cluid> i dont like to think about something like strength reduction
21:45:25 <elliott> I guess it's probably just a special case on "a for loop that modifies a variable with a function we can pattern-match on (like addition)"
21:45:38 <elliott> it would be cool if gcc/clang actually did something mega fancy for loop elimination though :p
21:46:09 <elliott> (I could be totally wrong though. I don't know all that much about optimisations.)
21:47:03 -!- Sprocklem has joined.
21:47:33 <fizzie> Curiously enough, GCC does the test (except for == 0 instead of <= 0) and branch even for the unsigned variant. Wonder how deliberate that is.
21:47:48 <elliott> wait, why the test?
21:47:51 <elliott> is multiplication really that slow?
21:47:59 <elliott> oh, because signed
21:48:08 <fizzie> Yes, for signed it makes a difference.
21:48:19 <fizzie> But for unsigned, it still special-cases a return 0 for n == 0.
21:48:38 <elliott> it would be nice if there was a way to get actually useful debug output from gcc/clang optimisations
21:48:41 <elliott> maybe there is and I just don't know it
21:48:55 <elliott> something where you could actually see it recognising patterns and transforming them
21:49:33 <oren> elliott: is there a way to dump the GCC intermediate representation?
21:49:45 <fizzie> I think that's the -fdump-tree-all stuff.
21:49:46 <elliott> gcc has like five intermediate representations, but I assume so
21:49:49 <fizzie> It has a number of stages.
21:50:25 <fizzie> Oh, and -fdump-rtl-all too.
21:50:37 <elliott> it's probably easier to explore this stuff with LLVM
21:51:00 <elliott> since LLVM IR is something people actually read and work with and the whole tower is less messy to fiddle around in probably
21:51:40 <fizzie> elliott: http://sprunge.us/MbXM detailed enough for you?-)
21:51:54 <elliott> nice
21:52:05 <elliott> depends if those files contain useful information themselves :p
21:52:26 <fizzie> There must be some sort of tool to make sense out of it, maybe give you an interface where you can step through the stages or something.
21:52:30 <oren> edsger, W, Dijkstra!
21:52:32 <fizzie> (I've never looked for one, though.)
21:52:36 <oren> hoycrap!
21:53:09 <elliott> % gcc -O2 -std=c11 -c -fdump-tree-all -fdump-rtl-all test.c
21:53:09 <elliott> clang: error: unknown argument: '-fdump-tree-all'
21:53:10 <elliott> clang: error: unknown argument: '-fdump-rtl-all'
21:53:13 <elliott> "oh, right"
21:53:41 <oren> elliott: apple is evil hth
21:53:52 <elliott> hth is a dead meme "hth"
21:54:14 <elliott> there are systems where gcc is clang that aren't OS X anyway
21:54:19 <elliott> how do you know I'm not running freebsd
21:54:31 <fizzie> Well, a quick empirical test can tell the optimization happens in the tree parts, before the RTL parts. (Not surprising.)
21:54:52 <oren> it's pretty unlikely that anyone is running freebsd
21:55:13 <oren> compared to apple os x
21:55:14 <elliott> plenty of people run freebsd
21:55:23 <elliott> especially weirdo programmers on IRC
21:55:56 <oren> elliott: good point. should really learn to factor that in
21:56:00 <fizzie> http://sprunge.us/ecBY <- there's a couple of randomly selected intermediate tree dump samples and one RTL one.
21:57:03 <fizzie> I think I forgot to paste something I had between 015 and 141. Oh, well.
21:57:04 <elliott> right, so they don't necessarily tell you why they're doing the transformations they are
21:57:18 <elliott> but I guess you can infer it well enough
21:57:43 <fizzie> Assuming the steps are small enough. (And you know enough of the internals, of course.)
21:57:51 <elliott> well, I know zero of the internals
21:57:57 <elliott> which is why I want nice debug flags
21:58:13 <oren> i wonder if the transformations are decided by pattern matching or convoluted test logics?
21:59:51 -!- CrazyM4n has joined.
22:00:03 <cluid> hi
22:00:20 <elliott> fizzie: do you have a clang that lets you -mllvm -debug
22:00:24 <elliott> it seems I don't
22:00:49 <fizzie> "Unknown command line argument '-debug'."
22:00:58 -!- mitchs has quit (Ping timeout: 245 seconds).
22:01:01 <elliott> right
22:01:03 <elliott> it's only in debug build
22:01:04 <elliott> s
22:02:04 <elliott> -print-after-all - Print IR after each pass
22:02:04 <elliott> -print-before-all - Print IR before each pass
22:02:05 <elliott> aha
22:03:38 -!- heroux has joined.
22:04:04 <elliott> IR is kind of annoying to read
22:05:09 <elliott> maybe it'd be easier to read with while (n--) r += m;
22:05:55 <elliott> fizzie: incidentally clang does the same test
22:05:57 <elliott> even with unsigneds
22:06:06 <fizzie> I noticed.
22:06:10 <fizzie> Maybe it's just better.
22:06:26 <elliott> but, like... why not test for 1 too
22:06:31 <elliott> why just 0 :p
22:07:24 <fizzie> Could still be an artefact, just something common to the implementations of both.
22:08:14 <elliott> the IR dumps are kind of useless
22:08:17 <elliott> some of them only show part of the function?
22:08:24 <elliott> and it seems like the mul disappears in one of those
22:08:33 <elliott> around *** IR Dump After Loop-Closed SSA Form Pass ***
22:10:25 <elliott> http://llvm.org/docs/Passes.html cool
22:10:46 <HackEgo> [wiki] [[Talk:MNNBFSL]] N http://esolangs.org/w/index.php?oldid=41515 * AndoDaan * (+880) Added some concrete bits of code to calculate + * ^ and %
22:11:17 <elliott> I guess I could manually run each pass with opt but uuuugh
22:11:50 <fizzie> Heh, if I deliberately do not initialize r at all, the result is quite funny: mult: imull %esi, %edi; testl %esi, %esi; cmovne %edi, %eax; ret aka "if n != 0, return m*n; otherwise return whatever was in eax".
22:11:55 <HackEgo> [wiki] [[Talk:MNNBFSL]] M http://esolangs.org/w/index.php?diff=41516&oldid=41515 * AndoDaan * (-1)
22:12:27 <fizzie> From GCC. Clang just did "mult: ret".
22:12:49 <elliott> why does it even bother adding a ret
22:12:55 <elliott> take advantage of that UB!!11
22:13:51 <oren> god damn it how is that an advantage
22:14:20 <oren> it should just fail to compile
22:14:25 <elliott> not that simple
22:14:28 <oren> if it goes that far
22:14:38 <elliott> you clearly didn't read the posts about UB I linked you :p
22:15:04 <oren> compilers should just error out on UB
22:15:15 <oren> or do something obvious
22:15:16 <elliott> but it is not that simple.
22:15:22 <elliott> http://blog.llvm.org/2011/05/what-every-c-programmer-should-know_21.html
22:15:26 <elliott> see Why can't you warn when optimizing based on undefined behavior?
22:15:55 <cluid> A type system could help protect against UB
22:16:01 <cluid> I would like to design a language like C but much safer
22:16:46 <elliott> let's just all program in ATS
22:16:55 <oren> cluid: Defining it would help againt UB
22:16:59 <cluid> I (irrationally) don't like ATS
22:17:45 <fizzie> In this case, it does fail to compile if you add enough flags -- "error: variable 'r' is uninitialized when used here [-Werror,-Wuninitialized]". AIUI, it's a warning with known false positives, though.
22:17:48 <oren> in the next version of C i would like all UB to either be defined or an error
22:18:12 <elliott> sigh
22:18:15 <cluid> oren, I don't think C can be salvaged, a new language has to be created
22:18:54 -!- `^_^v has quit (Quit: This computer has gone to sleep).
22:18:56 <elliott> I mean I am sympathetic to the desire for a language without UB but scorched earth solutions like that are not really simple or reasonable to apply to C
22:19:02 <oren> e.g. uninitialized variables: just make it zero.
22:19:10 <int-e> oren: what about implementation-defined behavior?
22:19:50 <int-e> (I actually (and perversely) really like the notion that behavior can be undefined to different degrees.)
22:20:09 <elliott> I should stop the arguing with a brick wall thing
22:20:40 <oren> int-e: it should stipulate restrictions so that compilers can't just do things that make no sense.
22:20:49 <oren> like return whatever is in eax
22:21:58 <oren> i mean don't expect perfection if i code stuff wrong, but i expect sanity.
22:22:07 <oren> or an error
22:22:39 <elliott> I probably wouldn't be able to get you to read all the posts I linked you about UB in C, right?
22:22:51 <int-e> oren: There are C# and Java.
22:24:24 <elliott> I *want* a reasonably safe, fast, low-level language with compile-time guarantees and no (or at least significantly fewer) UB gotchas like C. "C but with arbitrary definitions for all UB" is not that language, in many, many ways. UB is not just something you can rip entirely out of C and end up with something that isn't worse in quite a few ways
22:24:37 -!- Sprocklem has quit (Ping timeout: 272 seconds).
22:24:37 <int-e> C is insane to some degrees, and there are various lint-like tools to catch such more of those mistakes than compilers do, but there is a method beneath the insanity, which is to allow better optimizing compilers. You may not like the way that compiler writers shape a standard, but that's what C is.
22:25:00 <fizzie> Incidentally, clang --analyze will also catch this particular case. ("warning: The left expression of the compound assignment is an uninitialized value. The computed value will also be garbage" "warning: Undefined or garbage value returned to caller").
22:25:02 <oren> elliott: i read the post from llvm but there is no excuse for just returning whatever is in eax and not erroring. returning whatever is in eax will probably cause a RUNTIME error with no readily assignable couse
22:25:16 <cluid> oren, did you read what I said about KMP
22:25:16 <elliott> there are actually three posts on the llvm blog
22:25:19 <elliott> and some from regehr's
22:25:35 <elliott> but also I doubt you would take them into account if you actually read them so I don't really care
22:26:55 <cluid> @oren
22:26:56 <lambdabot> Maybe you meant: run more free
22:27:07 <cluid> The Knuth Morris pratt algorithm
22:29:00 <cluid> hi
22:29:46 <fizzie> "run more free" seems more like a statement than a list of unrelated commands.
22:29:56 -!- olsner has quit (Ping timeout: 256 seconds).
22:29:58 <fizzie> fungot: run more free
22:29:59 <fungot> fizzie: thanks for your comments, i greately fnord it and failed
22:30:10 <fizzie> fungot: I'm sorry to hear that.
22:30:10 <fungot> fizzie: l is no good distributed garbage collector for it. any others?
22:30:28 <fizzie> fungot: I don't know, but maybe the next letter in the alphabet?
22:30:29 <fungot> fizzie: does it have to be so annoying that, to show that it a) gives an error
22:33:31 <oren> cluid: yes.
22:33:35 -!- _AndoDaan_ has joined.
22:33:37 <cluid> I dont knwo how it is done
22:33:47 <cluid> but this is an extreme type of optimization
22:33:52 <cluid> changing one algorithm into a better one
22:34:12 <Gregor> elliott: I want a C-level language with optional GC, but we can't always get what we want ;)
22:34:22 <elliott> eightebed
22:34:45 <cluid> programming in 2D is so hard XD
22:35:03 <Gregor> cluid: Just wait for 4D programming.
22:35:48 -!- olsner has joined.
22:35:54 <int-e> oren: but what the compilers did did make sense; they optimized the code under the assumption that no undefined behaviour would be triggered at runtime. The only failing is that they didn't warn that the code could not be used without triggering undefined behaviour at all (if I read the context correctly)
22:36:11 -!- AndoDaan_ has quit (Ping timeout: 258 seconds).
22:36:22 <int-e> oren: that's what UB is to the compiler, an assumption it can make to aid optimization.
22:37:16 <int-e> and generally those are conditions that a compiler cannot check at all, thanks to Rice's theorem.
22:38:25 <oren> int-e: they shouldn't generate code that returns an undefined value. remember, they optimized it to mult:ret
22:38:43 <oren> they should fail if they are going to do that
22:38:53 <elliott> uuuuuuggghhhhh
22:39:03 <fizzie> elliott: You thought it was over, but IT WAS NOT.
22:39:09 <elliott> it's okay if you want to pull everyone in the channel in turn into an argument about UB every few days but only if you actually listen to what they say
22:39:25 -!- oerjan has joined.
22:39:42 <oren> elliott: how is it invalid to ask that a compiler fail rather than generate nonsense?
22:39:51 <elliott> kill me
22:40:28 <elliott> please don't try to attempt to drag me back into an argument in response to me pointing out how unproductively you're going about it -_-
22:40:51 <oerjan> can i just ban you both from talking to each other wth
22:40:55 <cluid> hi
22:41:18 <cluid> oren, we should design a low level language like C but strong static checks that make sure it has no UB
22:41:22 <elliott> oerjan: it was actually cluid and int-e this time
22:41:23 <oerjan> hi cluid
22:41:26 <cluid> oren, I have a couple ideas for this
22:41:27 <elliott> er
22:41:27 <oerjan> elliott: oh
22:41:28 <elliott> *oren and int-e
22:41:31 <cluid> good morning
22:41:46 <elliott> 11:40 pm, norwegian morning
22:41:46 <int-e> elliott: sorry, I only visited the llvm-about-UB link after I wrote the above reply
22:42:14 <CrazyM4n> So I found an HDD in my drawer today
22:42:38 <CrazyM4n> I was expecting some awesome nostalgia and an old windows install with a ton of stuff from when I was younger
22:42:43 <elliott> int-e: I was talking to oren. it's fine if you want to read blog posts out for him
22:42:56 <CrazyM4n> It turned out to be really boring D:
22:43:06 <elliott> this channel is bad for me.
22:43:10 <oerjan> elliott: well for me it's ... let's see ... i got up at 4 pm, so let's call it late afternoon.
22:44:06 -!- _AndoDaan_ has quit (Ping timeout: 256 seconds).
22:44:10 <oerjan> elliott: think about it as cathartic [sp] hth
22:44:56 <int-e> elliott: I could've spared you some redundancy.
22:47:10 <oerjan> <cluid> oren, we should design a low level language like C but strong static checks that make sure it has no UB <-- i really thought that was what rust was about, although it's not clever enough to avoid having unsafe blocks, but then i guess probably nothing can do device drivers entirely safely on a modern architecture
22:47:16 <oren> i understand that in this case the analyzer thinks the whole function is UB and therefore cannot be called. if that is the case it should simply fail if the function is ever called.
22:47:31 <cluid> oerjan, I think rust is 'about that' but in practice I don't have high hopesfor them
22:47:59 <cluid> they have some really questionable ideas like rigorous formalization is something you do post-facto
22:48:49 <oerjan> cluid: you cannot rigorously formalize something while the design is in flux, surely
22:49:13 <oerjan> or it would be a tremendous waste of work, anyway
22:49:53 <oerjan> hm cathartic actually _is_ spelled that way. i was worried that it was actually a cata- prefix.
22:50:00 <cluid> you can have a flexible language based on a solid theory
22:50:44 <oerjan> cluid: yes but you have to test out a language to know how much flexibility you need
22:51:12 <oren> It seems to me that the sane way to handle UB isn't "assume it never happens" but "do whatever makes sense on this architecture".
22:51:31 <cluid> there are two approaches to UB that I know of:
22:51:54 <cluid> A) Put the responsibility on the programmer to not write UB
22:52:11 <cluid> B) Enforce that all programs are well defined by some kind of static analysis such as a type system
22:53:40 <oerjan> (B) is the only way if you want safety _and_ optimal performance, i should think
22:53:40 <oren> I am defining a third path: C) define it according to the architecture. E.g. on X86 signed addition should be assumed to wrap. On a sign-magnitude architecture it might be assumed to hit a wall. etc.
22:53:59 <fizzie> There's no "makes sense according to architecture" for many (most?) of the things.
22:54:10 <fizzie> Like uninitialized variables.
22:54:13 <zzo38> I think what is a bit sensible is, depend if it is implementation-defined; if it isn't then the compiler should just ignore it and doesn't make an assumption
22:54:19 <cluid> oren, Good idea: Implementation defined behavior
22:54:36 <cluid> Although there is a slight problem in that one might want to know whether their program is portable or not, statically
22:55:26 <int-e> I like this: "we quickly learned that people do occasionally dereference null pointers, and having the code execution just fall into the top of the next function makes it very difficult to understand the problem."
22:55:48 -!- AndoDaan has joined.
22:56:18 <oren> int-e: i was moaning when i read that part. like how can that possibly be a sane thing to do
22:57:30 <fizzie> Because there's a cost associated with not doing it, presumably.
22:57:38 <oerjan> oren: UB makes "sense" if you understand that the _primary_ goal is to allow the result to be as fast as possible
22:58:22 <oren> oerjan: because we want to segfault as fast as we can?
22:58:49 <fizzie> Look, the reason for it is right there in the next sentence: "The drawback of doing this is that we slightly bloat code by having these operations and having the conditions that control their predicates."
22:58:56 <cluid> oerjan, have you ever done ICFP
22:59:03 <oerjan> cluid: nope
22:59:04 <fizzie> Assuming they're for the most part actually unreachable code, like they should.
22:59:35 <cluid> http://lpaste.net/116828
22:59:41 <cluid> this is from ICFP http://www.boundvariable.org/task.shtml
22:59:43 <fizzie> You can easily argue that the safety is worth a little bloat, but it certainly doesn't make avoiding the bloat "insane".
23:00:19 <cluid> everyone should join in doing this task, its the most fun thing :)
23:00:53 <elliott> it's almost as if the question is whether the design of C makes the right tradeoffs and is as sophisticated as it should be, rather than whether the designers and implementors of C are completely incompetent and haven't given a moment's thought to anything
23:01:22 -!- zzo38_ has joined.
23:01:48 -!- zzo38 has quit (Disconnected by services).
23:01:55 -!- zzo38_ has changed nick to zzo38.
23:03:07 <oerjan> i'm pretty sure the ICFP contest is over for this year
23:03:13 <oren> elliott: they have decided, imo wrongly, to exploit the C standard in a way that sometimes generates nonsense, and then not bother to detect and issue an error when thye generate complete nonsense
23:03:27 <cluid> this is from 2006
23:03:38 <elliott> there is no "exploit". compilers and the C committee are not at war. they work together. nothing unintended is happening
23:03:40 <fizzie> I'm pretty sure it's over for 2006 too.
23:03:53 <zzo38> But maybe complete nonsense is the correct thing to generate in some cases?
23:04:09 -!- CrazyM4n has quit (Ping timeout: 245 seconds).
23:04:10 -!- erdic has quit (Ping timeout: 245 seconds).
23:04:20 <oren> zzo38: if i want nonsense i'll write it by hand in assembler
23:04:21 <zzo38> You should read it carefully so that you can know for sure.
23:04:24 -!- erdic_ has joined.
23:04:25 -!- bb010g has joined.
23:04:33 <cluid> You can still play it
23:04:47 <cluid> look at my lpaste
23:04:49 <oerjan> oren: handwritten assembler isn't as fast as C in practice hth
23:04:50 <zzo38> But if I write it in assembler then it won't be very portable (unless running in an emulator)
23:05:12 -!- erdic_ has changed nick to erdic.
23:05:17 * oerjan swats himself for joining the discussion -----###
23:05:29 <shachaf> whoa, this thing again?
23:05:33 <shachaf> oerjan: hey, not fair
23:05:37 <oren> oerjan: i'm saying if i want a function that returns whatever is by chance in eax, i'll just write such in assmebler
23:05:58 <oren> there is no need for clang to write one for me
23:06:01 <shachaf> Good, because you can't write such a function in C.
23:06:14 <shachaf> There's no eax in C.
23:06:16 <zzo38> But then it will be only on x86
23:06:17 <oren> shachaf: on clang you can apparently
23:06:33 <zzo38> But if you just simply don't care the return value then it should be allowed to specify such thing.
23:07:09 <zzo38> I think LLVM has a command to don't care the return value.
23:07:23 <oren> zzo38: in the discussion above, a lengthy function with a loop was compiled to label:ret
23:07:38 <oren> because of undefined ehaviour
23:07:50 <elliott> please take this to #esoteric-ub
23:07:55 <elliott> thanks
23:08:06 <zzo38> If the loop doesn't do anything (or otherwise has no effect elsewhere) then should be optimized out OK
23:08:09 -!- CrazyM4n has joined.
23:08:46 <oerjan> elliott: what's wrong with #esoteric-crap or whatever it was called
23:08:52 <fizzie> oerjan: -blah, I think.
23:08:55 <oerjan> ah
23:08:59 <fizzie> oerjan: Unless you're talking about a different thing.
23:09:01 <shachaf> that's a thing?
23:09:06 <elliott> oerjan: #esoteric-blah usually contains more useful discussion than this
23:09:07 <shachaf> i thought that was this channel
23:09:22 <fizzie> shachaf: I was about to say it was a place for e.g. botspam, but that's this channel too.
23:09:43 <fizzie> fungot: Or wouldn't you agree?
23:09:43 <fungot> fizzie: yome says: may be slime wants you to do anything useful
23:09:48 <shachaf> yes
23:09:55 <shachaf> this is p. much it
23:10:00 <oren> elliott: ok, i have posted in the channel specified
23:10:01 -!- boily has joined.
23:10:09 <shachaf> oerjan: i joined the discussion so why didn't i get swat
23:10:35 <oerjan> shachaf: i didn't swat everyone else in the discussion did i?
23:10:48 <shachaf> yes but i was at least as unwise as you hth
23:10:57 <oerjan> also, there's a more obvious answer, which you might discover some day.
23:11:17 <shachaf> it eludes me entirely hth
23:11:58 <zzo38> There is also #esoteric#shadow channel which is made for impossible to get banned because it is held by the log service
23:12:35 <shachaf> whoa, you can have #s in the middle of channel names
23:12:47 <shachaf> that's obvious but didn't really occur to me
23:12:55 <fizzie> It looks worng.
23:13:02 <zzo38> Yes I think anything is allowed other than spaces, bells, nulls, carriage returns, and line feeds.
23:13:11 <oren> esoteric hashtag shadow
23:13:39 <zzo38> But I think other control characters are OK to be included in a channel name.
23:13:40 <fizzie> zzo38: Or commas.
23:13:51 <zzo38> fizzie: O, yes, that too.
23:14:01 <oren> were channel names based on hashtags?
23:14:15 <zzo38> No the # means the type of channel
23:14:20 <zzo38> On Freenode it is the only kind
23:14:20 <oren> or the other way around
23:14:22 <elliott> yes. irc is a ripoff of twitter
23:14:26 <fizzie> (There was the famous "/join #2,000" joke.)
23:14:27 <zzo38> Other IRC servers have other kinds of channel
23:14:44 <elliott> does /join #2,000 still work
23:15:39 <zzo38> Such as, + means modeless channel, & means local to a server, ! means it is safe from being overwritten by net splitting
23:15:41 <fizzie> Not on freenode, at least.
23:16:03 <fizzie> It joins #2 (which is mostly empty) and goes "000 :No such channel".
23:16:06 <zzo38> It is recommended to use + & ! channels if possible instead of # however many servers don't support it.
23:16:15 <cluid> I'm programming in a 2D language
23:16:25 <oren> ok WP says irc predates twitter. i dodn't knwo that
23:16:46 <elliott> by almost 20 years, yeah :p
23:17:19 <oren> i thought irc was based on twitter but i wasn't sure
23:17:43 <oren> i guess twitter might be based on irc
23:17:56 <zzo38> As far as I know neither is based on another
23:18:22 <oren> i mean, if you follow a hashtag on twitter that is sort of like being on a chennel in irc
23:18:54 <fizzie> The 'pedia claims hashtags (which weren't a feature Twitter had at launch) are IRC-inspired, which I've sort of assumed but not really known.
23:19:10 <Taneb> oren, IRC predates Twitter by I think decads
23:20:03 <oren> Taneb: apparently so. see i only learned history up to the end of WWII
23:20:41 <oren> that is all that is taught in high school mandatory history
23:20:47 -!- MoALTz has joined.
23:20:59 <zzo38> I have seen other newer chat protocols too but as far as I can see none of them are any good compared to IRC; most of them are too complicated
23:21:17 -!- MC_SOMBRA has joined.
23:21:24 <fizzie> In Finland, history of IRC is a mandatory part of the school curriculum. (Disclaimer: a lie.)
23:21:59 <fizzie> Though being on IRC at least used to be almost mandatory for anyone studying CS at our university.
23:22:32 <fizzie> There was an IRC guide in the welcome booklet for new students, and lots of course stuff used to happen via IRC.
23:23:08 <oren> fizzie: my school uses a BBS forum
23:23:47 <fizzie> There was also a thriving local NNTP server (student campus stuff, course stuff, miscellaneous chattery) which is also almost entirely dead now.
23:25:00 <oren> NNTP was discontinued at uoft a long time ago
23:26:15 <zzo38> How would I set up a NNTP server anyways? I never did because I didn't figure out how.
23:26:46 <fizzie> The venerable ones are not very user-friendly.
23:26:56 -!- mitchs has joined.
23:27:00 -!- MC_SOMBRA has left.
23:27:26 <oren> fizzie: venerable doesn't just mean old y'know...
23:27:28 <oerjan> darn i was just about to ask him if he use canaima
23:27:29 <fizzie> I used to run one of the slightly more modern ones, as a local leaf site, the kind of thing that just fetches new news of a specified subset of groups as a regular client.
23:27:49 <fizzie> I wasn't using it to mean "old".
23:27:51 <oren> venerable: suitable for veneration
23:28:11 <oren> like a god or a noble ancestor
23:28:51 <fizzie> Yes, or like INN.
23:29:10 <fizzie> (I ran Leafnode, I think.)
23:29:17 <zzo38> I would want to set up local groups too though, otherwise I would just try to use ISP's NNTP server
23:29:19 <fizzie> "Leafnode is a store-and-forward NNTP (or Usenet) proxy server designed for small sites with just a few active newsgroups, but very easy to set up and maintain, when compared to INN."
23:29:23 <fizzie> That's the honest truth.
23:29:41 <fizzie> I think it can do local groups, though that's not really its main use case.
23:30:16 <fizzie> In fact, I'm pretty sure I had some test group there that even had like three users at some point.
23:31:20 <fizzie> (Chronologically, this was around 1997-1999 or so. Things might have changed since then.)
23:33:14 <fizzie> Hmm.
23:33:37 <fizzie> "Leafnode 1.x does not support local newsgroups. Leafnode 2.x will do that." (But 2.x is in some alpha stage that it probably won't ever come out of.)
23:34:05 <fizzie> I must be misremembering, though in that case I'm wondering what on earth did I actually run the local group on, then.
23:34:43 <fizzie> I wonder if I did in fact set up INN. The configuration stuff looks vaguely familiar.
23:45:20 -!- atslash has quit (Quit: This computer has gone to sleep).
23:48:51 -!- AndoDaan has quit (Ping timeout: 272 seconds).
23:57:46 <cluid> http://i.imgur.com/34v1kJ9.jpg
23:57:52 <cluid> does that equation really define the zeta function?
23:58:05 <cluid> how about zeta(s) = 0
23:58:15 <cluid> that seems to contradict their 'reimann hypothesis'
23:59:55 <fizzie> It defines the hypothesis wrong, at least.
←2014-12-17 2014-12-18 2014-12-19→ ↑2014 ↑all