00:05:22 -!- DHeadshot has quit (Read error: Connection reset by peer). 00:05:27 -!- DH____ has joined. 00:05:57 -!- nooga has quit (Ping timeout: 272 seconds). 00:06:57 -!- DHeadshot has joined. 00:07:02 -!- DH____ has quit (Read error: Connection reset by peer). 00:09:03 -!- copumpkin has quit (Ping timeout: 244 seconds). 00:10:55 -!- copumpkin has joined. 00:11:43 * kmc starts a new job tomorrow 00:11:51 where?? 00:12:58 i'll be employee #1 at a startup founded by a bunch of former ksplice people 00:13:06 ooh! 00:13:14 kentucky fried splice 00:13:19 doing what, and where geographically? still around boston area? 00:13:56 doing secret things :) (for now) 00:14:01 yeah, boston area 00:14:09 will have offices in central square most likely 00:14:12 zomg secret 00:15:11 -!- DHeadshot has quit (Read error: Connection reset by peer). 00:16:55 copumpkin: you should go by their offices and take some photos 00:17:11 will do 00:17:20 except I'm across the ocean right now 00:17:25 :O 00:17:25 but maybe next week 00:17:29 where what why 00:17:36 I'm in italy for family shit 00:17:40 offices are currently being procured 00:17:46 some walls need to be knocked down 00:17:58 let me know if you need to burn any bridges 00:17:59 I'm good at that 00:18:00 haha 00:18:09 i already offered to take down the walls myself, but noooooo 00:18:23 when i was at the hedge fund in NYC, LimeWire's offices were one floor below us 00:18:25 that sounds kinda fun actually 00:18:28 with a sledgehammer 00:18:32 and then they moved to new offices 00:18:49 and they had a moving out party which consisted of everyone getting piss drunk, spraypainting the walls, and then hitting them with sledgehammers 00:19:00 lol 00:19:02 o-o; 00:19:04 nice 00:19:05 is that.. what 00:19:06 i dont even 00:19:20 unfortunately in the heat of the moment, a distinction between interior walls and structural exterior walls was not observed with the degree of care one might hope for 00:19:29 hahhahaha 00:19:32 so there were Damages 00:20:09 did the building collapse 00:20:11 no 00:20:14 o 00:20:23 just cost someone a bunch of money 00:20:36 was the someone limewire 00:20:49 maybe 00:21:02 not sure if the expense was collectivized to the Lime Group 00:21:04 kmc had to pay out of pocket 00:21:11 because he was the one who did the damage 00:21:14 haha 00:21:15 he neglected to include that detail 00:21:17 no, i wasn't even at the party 00:21:23 i just walked through the wreckage the next day 00:21:37 if I were doing that, I'd have contributed a bit 00:21:39 who's gonna notice, right? 00:21:43 heh, true 00:21:53 we were actually there to loot the remaining non-damaged furniture 00:21:57 lol 00:21:59 wait 00:22:02 which provided most of the tables and chairs necessary for a 3-person apartment 00:22:03 through the wreckage? 00:22:13 oh inside you mean 00:22:15 my friend had the presence of mind to rent a U-Haul for this occasion 00:22:31 i thought you meant the wreckage of the exterior wall 00:22:58 they also left some computers behind, but we weren't sure whether they were technically evidence in an ongoing lawsuit 00:24:33 yeah, wouldn't want to do anything illegal 00:24:39 that's why you only stole the furniture 00:24:40 >_> 00:24:47 <_< 00:25:01 yeah well, petty theft > federal obstruction of justice 00:25:08 besides we had the tacit approval of the CEO to take the furniture 00:25:15 or so I was assured >_< 00:27:21 `addquote yeah well, petty theft > federal obstruction of justice 00:27:23 857) yeah well, petty theft > federal obstruction of justice 00:34:37 -!- DHeadshot has joined. 00:38:12 -!- augur has quit (Remote host closed the connection). 00:38:21 :) 00:44:28 kmc: Ah, tomorrow? 00:45:06 (Please disregard previous message.) 00:50:20 what was previous message? 00:50:52 Are you asking because you've already disregarded it? 00:53:26 no 00:53:30 'm confuseod 00:55:02 I asked if you were starting your new job tomorrow. Then I realized it was a silly question because you just said you did, and I didn't have anything to add. 00:55:07 ok then 00:55:21 Exactly. 01:02:08 elliott: GUESS WHAT 01:02:19 You didn't read the post? 01:02:23 WRONG 01:03:30 You read the post? 01:03:38 Yes. 01:03:44 *gasp* 01:03:53 It was a grueling, arduous task. 01:04:05 i feel such responsible behavior sets a bad precedent for the channel. 01:04:15 But I grit my teeth and and did it! 01:04:17 shachaf: I have another post for you to read. 01:04:25 I did it! I did it! You said I couldn't do it but indeed I did! 01:04:50 @tell monqy what's the another post? 01:04:50 Consider it noted. 01:05:48 @messages 01:05:48 shachaf said 58s ago: what's the another post? 01:05:57 @ask elliott 01:05:57 Consider it noted. 01:06:09 shachaf: OK so, read http://www.impredicative.com/ur/tutorial/tlc.html first. Then read http://blog.ezyang.com/2012/07/polymorphic-variants-in-urweb/. 01:06:09 elliott: You have 1 new message. '/msg lambdabot @messages' to read it. 01:06:18 @ask monqy 01:06:18 Consider it noted. 01:06:26 Or just skip to the second one. But the other one is good too. 01:06:28 elliott: Can I other order ;( 01:06:31 Oh. 01:14:17 shachaf: Are you reading??? 01:14:31 @ask elliott no :"( 01:14:31 Consider it noted. 01:15:07 @clear-messages 01:15:07 Messages cleared. 01:15:16 @clessages 01:15:16 You don't have any new messages. 01:15:50 monqy: Did you ever read that one? 01:16:03 @clear-messages 01:16:03 Messages cleared. 01:16:12 the blog thing? 01:16:20 ye 01:16:21 i read at least the first paragraph 01:16:27 good job monqy 01:16:29 but i wasnt in a reading mood 01:16:41 did mspell get any furthre btw .. 01:16:43 *further 01:16:48 oerjan: btw op me 01:16:59 ye 01:17:14 elliott: btw op me :'( 01:17:15 monqy: how frtuher 01:17:26 um 01:17:35 i removed both kinds of special abilities! 01:18:06 grats 01:18:16 -!- derdon has quit (Ping timeout: 246 seconds). 01:18:19 I like the symmetry between product and sum types. 01:18:40 YOU MEAN PRODUCTS AND COPRODUCTS 01:18:58 elliott: Did you know all monads were covariant??!?! 01:19:05 "amazing" 01:19:06 switch :: (a -> r, b -> r) -> (a | b) -> r; swotch :: (a -> r | b -> r) -> (a * b) -> r 01:19:09 shachaf: yes 01:19:37 switch swotch 01:20:13 switch : (a -> r * b -> r) -> (a | b) -> r 01:20:32 switch : (r^a * r^b) -> (a + b) -> r 01:20:40 swotch : (r^a + r^b) -> (a * b) -> r 01:22:28 r^a * r^b = r^(a+b) 01:23:00 (a -> r) + (b -> r) = (a*b)^r 01:23:07 Um, r^(a*b) 01:23:09 What? 01:23:23 What? 01:23:24 r^a + r^b = r^(a*b)? 01:23:27 That's nonsense. 01:23:39 It's not =. 01:23:45 a -> b isn't a = b. 01:23:56 -!- derdon has joined. 01:24:00 Oh, it's not nonsenes because r^a + r^b has a bit more information. 01:24:15 (A BIT get it) 01:24:20 :') 01:24:29 s/not // 01:24:33 It *is* nonsense because ... 01:24:47 elliott: You know the way foldr's type should mirror unfoldr's? 01:24:57 switch and swotch let you get all the information out, right? 01:25:05 swotch (Left id), swotch (Right id) are fst and snd... 01:25:11 So I guess so. 01:25:27 Well, it's not polymorphic. 01:25:33 Huh? 01:25:43 Oh, no. 01:25:44 shachaf: Anyway, if you read that post I linked you'd understand why the sum-product relation is even more cool! 01:25:53 It's a continuation of that other post. Except it does sum types instead. 01:25:56 What I'm saying is that you can't ((a * b) -> r) -> (a -> r | b -> r) 01:26:04 It's a one-way thing. 01:26:20 Just like you can't (a -> b) -> Either (Not a) b. Or something. 01:26:34 i guess i'll read the post....................................... 01:26:41 monqy: NO WAIT 01:26:47 monqy: THINK ABOUT WHAT YOU'RE DOING 01:27:01 monqy: ur gr8 01:27:09 monqy: ur web 01:27:24 -!- augur has joined. 01:27:35 shachaf: The post also shows you how you can do scrap-your-boilerplate-type things with the system elegantly! 01:27:40 As in "without any ugly deriving (Data) stuff". 01:27:59 elliott: Logitext is "vnev more ocool!!" 01:28:07 What? 01:28:23 http://logitext.mit.edu/main 01:28:26 "the future" 01:30:08 This looks boring. 01:30:23 DID YOU PROVE ALL THE PROOFS 01:31:32 no 01:32:00 elliott: i am a terrible person 01:32:08 -!- oerjan has quit (Quit: Good night). 01:32:17 I have a ... -> x that I want to turn into a ... -> Type x 01:32:26 where ... can be any arity 01:32:30 and clearly TH is the way to go 01:32:43 it's ok, everyone does shit like that when they start out 01:32:57 you realise why it's a bad idea later 01:33:23 Unless you're Oleg. 01:33:46 oleg doesn't really do things like that 01:34:18 kmc: should i make a perfect language 01:35:34 elliott: I know why it's a bad idea now 01:35:38 and it's not stopping me 01:36:28 are you what they call a "bad person" 01:36:40 monqy: oh no 01:36:46 monqy: are you a "bad person" too 01:36:54 because "it takes one to know one" 01:36:59 "as they say" 01:37:01 ye 01:37:05 -!- azaq23 has joined. 01:37:07 coppro: people think they know why it's a bad idea to start with, too 01:37:13 does that make me "a bad person" ! 01:37:18 ye 01:37:39 it takes one to know that it takes one to know one 01:37:41 as they say 01:38:38 elliott this is a good blog post 01:38:38 elliott: well then you tell me why i am wrong 01:38:49 coppro: but being old is so much easier 01:38:56 monqy: i can't tell if you're being serious or not........................... 01:39:03 im serious it's good !! 01:39:06 yaey 01:39:07 is that wrong of me..... 01:39:23 nop 01:39:30 people are sarcastic often and it is had to tell!! 01:39:40 -!- derdon has quit (Remote host closed the connection). 01:40:04 elliott: When you say foo.bar in Rust, can bar just be a regular function? 01:40:26 Or is it a "method of the class of foo" "as they say" 01:40:27 coppro: but in summary (a) TH in general is bleh for many reasons (some theoretical, most practical) and self-preservation dictates to avoid it wherever possible; (b) you will run into pain whenever you end up writing higher-order functions of some kind with this method; (c) it does not really save you much at all blah blah 01:40:37 shachaf: I don't think Rust has "classes" proper? 01:40:44 elliott: Oh. 01:40:48 * shachaf doesn't know Rust. 01:40:56 elliott: How does "for 5.times" work? 01:40:59 shachaf: It has ADTs and traits (which are like OOP interfaces). 01:41:02 elliott: yes, those are the reasons 01:41:06 And you can implement traits for ADTs. 01:41:09 i am choosing to ignore them because i am stupid 01:41:31 coppro: It's OK, you'll do it the proper way when it slows down your compilation times 2x. 01:41:45 shachaf: I think that's the implementation of a trait for the integer types. 01:42:00 So 5.times is actually implementation_of_times_for_the_relevant_integer_type.times(5). 01:42:08 OK. 01:42:12 "but still" 01:42:48 What do you mean but still? 01:44:29 shachaf: I don't understand what your question is. 01:44:44 Noq uestion. 01:47:19 shachaf: https://github.com/mozilla/rust/blob/master/src/libcore/iter.rs#L19, https://github.com/mozilla/rust/blob/master/src/libcore/int-template.rs#L91, https://github.com/mozilla/rust/blob/master/src/libcore/uint-template.rs#L83, which are then instantiated like this: https://github.com/mozilla/rust/blob/master/src/libcore/int-template/i64.rs. 01:47:36 elliott: I thought there was no question. :-( 01:47:58 Also, please mark your URLs in an easy-to-copy way. 01:48:04 Don't mix valid punctuation into them. :-( 01:52:46 shachaf: Does that answer your non-question? 01:53:06 (Also apparently traits are like typeclasses in some way.) 01:53:13 (So I guess they're more powerful than Java interfaces.) 02:20:39 -!- DHeadshot has quit (Read error: Connection reset by peer). 02:20:44 -!- DH____ has joined. 02:37:16 -!- DH____ has quit (Read error: Connection reset by peer). 02:37:21 -!- DHeadshot has joined. 02:37:45 -!- kinoSi0 has quit (Read error: Connection reset by peer). 02:38:13 -!- kinoSi has joined. 02:48:32 cvttsd2si 02:48:35 What a great instruction name. 02:55:35 -!- azaq23 has quit (Quit: Leaving.). 03:00:05 -!- DHeadshot has quit (Read error: Connection reset by peer). 03:00:28 -!- DHeadshot has joined. 03:38:44 So, there's this library that's supposed to tell you the distance between a point you give it and the nearest point in the database. 03:39:01 The thing is, the library breaks. You can only use it about ten times before it starts giving you numbers that are obviously wrong. 03:39:10 Trial period expired. 03:39:16 Once, it gave a number that was too high by over a hundred orders of magnitude. 03:39:19 INSERT COIN 03:39:33 Anyway, that doesn't necessarily mean it's wrong. 03:39:53 It was wrong by over a hundred orders of magnitude. 03:47:18 a hundred orders of magnitude isn't cool 03:47:43 you know what's cool? a hundred and three orders of magnitude 04:03:14 https://www.google.com/search?q=goats+in+trees&tbm=isch 04:06:15 -!- DHeadshot has quit (Read error: Connection reset by peer). 04:18:38 -!- MoALTz has joined. 04:36:08 -!- heroux has quit (Ping timeout: 244 seconds). 04:41:30 -!- MoALTz has quit (Ping timeout: 264 seconds). 04:55:25 There is a open source FPGA, called ZUMA. However, no implementations exist, as far as I know. 04:56:04 I thought ZUMA was a game with marbles. 04:56:37 http://www.computer.org/portal/web/csdl/doi/10.1109/FCCM.2012.25 04:56:51 it's an FPGA implemented on another FPGA °_° 04:57:02 "Previous attempts to map an FPGA architecture into a commercial FPGA have had an area penalty of 100x at best. Through careful architectural and implementation choices to exploit low-level elements of the host architecture, ZUMA reduces this penalty to as low as 40x." 05:03:02 -!- impomatic has quit (Ping timeout: 244 seconds). 05:04:09 good 05:08:12 progress 05:13:21 hey kmc did mosh get any releases in the past ever 05:13:23 maybe i should update my shit 05:13:53 also does anyone know if that ghc version with type-level strings came out yet 05:13:54 shachaf? 05:14:04 YAWG 05:14:18 the latest mosh release is in the topic in #mosh 05:14:20 and on mosh.mit.edu 05:14:39 shachaf: Yawg? 05:14:43 kmc: :( 05:14:46 My server is running an old version of mosh. :-( 05:14:49 kmc: I need a personal social web 2.0 connection with my software, man! 05:14:51 That means asking you. 05:14:52 So I can't file bug reports until I upgrade. 05:14:55 But upgrading is a hassle! 05:14:58 HLEP 05:15:11 Also I don't even know what version I have, so ha. 05:15:35 $ mosh --version 05:15:38 1.2.3 05:15:44 POINT 4 05:15:52 I'm on 1.1.94d. 05:16:00 I bet that's old. 05:16:16 Apparently 1.2.2 is the latest release. 05:18:13 shachaf: Is there a way I can tell g++ and/or clang++ that a macro I have is an assertion macro? 05:18:28 What should it do differently? 05:18:59 shachaf: I don't know. Not complain about me assuming what I asserted later on? 05:19:23 Oh, be smart like that? Can it even do that? 05:19:32 Does it happen with #include 's assert()? 05:19:55 shachaf: I think so? 05:20:03 I want to be as fancy as assert.h. 05:20:14 Alternatively, is there a way to hook into when an assert fails or something? 05:20:22 I want my fancy stuff *and* the platform's fancy stuff. :( 05:21:09 assert() raises SIGABRT doesn't it? 05:21:31 it will still kill the process even if you handle SIGABRT 05:21:50 All the big C++ codebases I've used defined their own assert, but I've never noticed anything smart like "telling the compiler about your assumptions". 05:22:07 Some asserts raise SIGTRAP in debug mode. Or do other things. 05:22:34 Hmm, I wonder whether SIGTRAP has much of an advantage over SIGABRT. 05:22:35 There's some inline asm in the current assert() implementation. :( 05:22:50 Is it asm("int3")? 05:22:56 Snippet of the fun: http://sprunge.us/RQcf 05:23:05 shachaf: Close enough: #define MyDebugBreak() _asm {int 3} 05:23:13 You're working with Win32 code? 05:23:23 Oh, whoops. I actually removed IsDebuggerPresent95. 05:23:41 BUT before I did, 05:23:47 shachaf: (how do I see a file at a revision in git) 05:23:50 (Without checking it out.) 05:23:57 git show? 05:23:57 if you mark your custom abort function as attribute((noreturn)), and/or insert a __builtin_unreachable() 05:24:02 then gcc can do clever things 05:24:19 I think unreachable is better than noreturn? 05:24:23 [elliott@dinky source]$ git show 5e814759930bf282ba3b5741643bebe1587557f1 debug.cc 05:24:23 [elliott@dinky source]$ 05:24:24 Help. 05:24:34 git show commitish:filename 05:24:46 thx 05:24:50 yw 05:25:21 shachaf: http://sprunge.us/FaBg 05:25:28 kmc may also click that link. Everyone else is forbidden. 05:25:37 elliott: thx 05:25:42 that's some code 05:25:43 on kmcs bhlf 05:26:02 By the way, this isn't some 90s nonsense, this code is from ~2005-ish. 05:26:18 (Okay, maybe this bit is older. But it's newer than, like, 2000.) 05:26:25 what is it 05:26:28 Crawl? 05:26:56 It's monqy. 05:27:16 monqy: ruopensouce?!! 05:28:00 monqy's codebase has some great comments. 05:28:03 monqypatching 05:28:04 // XXX: must fix species abils to not use duration 15 05:28:04 // -- ummm ... who wrote this? {dlb} 05:28:23 The unforgivable faux pas of not signing your todo comments. 05:28:35 elliott: has this been in git since 2005?? 05:28:58 If by "2005" you mean "2011ish", then yes. 05:29:11 2011 is the year of git on the desktop 05:30:37 kmc: Did you know Windows still exists? :( 05:30:53 http://gcc.gnu.org/onlinedocs/gcc-4.7.0/gcc/Function-Attributes.html 05:30:58 gcc has a lot of fancy attributes 05:32:18 shachaf: Do you want to hear a joke? I know you love jokes. 05:33:19 elliott: Oh boy, a joke! 05:33:50 shachaf: The joke is const correctness. 05:35:20 shachaf: Do you want to hear another joke? 05:35:50 Time's up. 05:35:54 monqy: What about you? 05:36:11 ye 05:36:14 monqy: Tough. 05:36:35 probably for the best 05:36:40 im eating so if i laughed bad things might happen 05:36:46 -!- williannys has joined. 05:36:52 like that 05:37:12 `welcome williannys 05:37:15 williannys: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.) 05:37:21 Wait, are you the sneeze person? 05:38:44 going to sleep, 'night all 05:38:53 kmc sleeps? 05:39:11 yes i sleep quite a lot 05:40:10 Weird. 05:40:53 -!- williannys has left. 05:45:58 Ok, so I heard JVM startup time is slow, but this is insane 06:19:20 Disadvantages of existing FPGA architectures includes: * Proprietary nature of hardware. * Requires you to use their software, specific to certain operating systems and certain computers. * Vendor locked. * No dynamic reconfiguration (some have this feature, but again, you need to use their software so you cannot do it with your own software). 06:19:40 Therefore you cannot use it to make your own computer system since it can only be used with the computer systems they say it can be used! 06:20:08 Another disadvantage: * They don't sell them for a long enough time. After they sell it, they will be obsolete and you have to buy another one. 06:39:07 elliott: Yes! 06:39:23 elliott: What's the another joke? 06:39:41 elliott: He has, like, a job and stuff now, man. 06:39:44 He sold out on us! 06:40:06 He's probably going to sleep early because of that! 06:44:32 -!- zzo38 has quit (Remote host closed the connection). 06:46:34 -!- nys has quit (Quit: quit). 06:47:35 `? zzo38 06:47:40 zzo38 is not actually the next version of fungot, much as it may seem. 06:47:46 `? fungot 06:47:46 shachaf: he looks gay. 06:47:49 fungot cannot be stopped by that sword alone. 06:47:52 fungot: thx 06:47:52 shachaf: what the hell would anyone srvive that the computer, it was dat. oh and apologies in advance for the most beautiful girl i've ever heard of nick pitera on this 06:48:30 ^style 06:48:30 Available: agora alice c64 ct darwin discworld europarl ff7 fisher fungot homestuck ic irc iwcs jargon lovecraft nethack pa qwantz sms speeches ss wp youtube* 06:48:34 Ah. 06:49:07 In retrospect, "of course". 06:49:26 ^style darwin 06:49:26 Selected style: darwin (Books by Charles Darwin -- you know, that evilution guy) 06:49:31 fungot 06:49:33 shachaf: :( i was too glad to accept :) this, in fact, take them away from any spot which itches: monkeys search each other for aid; and as they flit from tree to tree, and what i lay much stress on it, and really great, if we take/ fairest standard :) comparison because, :)/ corals just mentioned, and :)/ other photographs given by dr. o. regnelli,/ illegitimate unions :) dimorphic and trimorphic plants, as described by himsel 06:49:49 Charles Darwin sure used a lot of smileys. 06:50:00 He was just such a fun guy. 06:50:24 fungot: are you a fun guy??????? 06:50:25 shachaf: a species may depart from/ type :) both its parents were common peacocks. lastly, i have had some strange proceedings on board/ :( beagle" anchored a few miles, i could see this argument answered. 07:08:43 shachaf: it seems like noreturn is the same as normal function call + unreachable 07:08:55 http://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html#index-g_t_005f_005fbuiltin_005funreachable-3286 07:09:12 elliott: Oh. 07:09:17 elliott: Is exit() noreturn? 07:09:43 If I write if (x == 0) exit(1); will the compiler assume that x is != 0 or something? 07:09:50 I think it ought to be allowed to assume that for unreachable. 07:11:41 I think exit is noreturn, yes. 07:11:41 C11 standard prototype for exit is "_Noreturn void exit(int status);" 07:11:49 At least in glibc. 07:12:13 shachaf: I suspect GHC might insert a __builtin_unreachable() after every call to a noreturn function, implicitly. 07:12:42 That's very clever of GHC. 07:12:46 gcc. 07:13:00 Anyway, that makes sense. 07:13:17 Oh, you mean the noreturn comes *after* the return from the function call. 07:13:30 Makes sense. 07:13:56 The unreachable, you mean? 07:14:03 Yes. 07:16:41 http://sprunge.us/hXUh -- assumptions: it has those. 07:17:25 Oh, you mean the noreturn comes *after* the return from the function call. 07:17:26 Huh? 07:17:33 00:13 The unreachable, you mean? 07:17:34 00:14 Yes. 07:18:31 -!- nooga has joined. 07:19:30 There's a GCC option '-Wsuggest-attribute=noreturn' that will make it add warnings that suggest attribute ((noreturn)) for functions that it thinks don't seem to be returning. 07:19:41 (It can do the same for pure, const, format.) 07:21:07 http://sprunge.us/SZXT like that. 07:21:37 That's not a default? 07:21:44 How do you get all the good warnings? 07:22:03 It's not a default, and it's not enabled by -Wall or -Wextra either. 07:22:17 Though -Wextra does cause a "comparison is always true due to limited range of data type" warning on it. 07:22:47 -!- heroux has joined. 07:23:33 -!- impomatic has joined. 07:23:55 The -Wsuggest-attribute=format can at least have false positives; don't know about the others. 07:24:56 shachaf: There's a clang option to turn on every single warning. 07:24:58 It's an experience. 07:25:12 @time 07:25:13 Local time for elliott is Tue Aug 28 08:26:58 07:25:15 shachaf: tell me to go to sleep 07:25:28 Is it called "-Wfucking-all-and-i-mean-it"? 07:25:50 I hate IRC faux pas. :-( 07:26:08 shachaf: fauxiliary pacification 07:26:11 -fauxiliary-pacification 07:27:26 elliott: You should write some Forth. 07:30:28 -forthxiliary-pacification 07:30:51 shachaf: -Weverything. Try it on your nearest codebase. 07:30:54 It's depressing :( 07:31:22 elliott: I know what it is. I have. 07:31:35 )-: 07:31:40 :-( )-: 07:31:45 )-: :-( 07:31:47 )-:-( 07:31:52 :-()-: 07:32:11 nice, I'll have to try that 07:32:14 . . 07:32:15 | 07:32:16 ( 07:32:22 . . 07:32:22 | 07:32:26 /-\ 07:32:36 -!- elliott has left (": - )"). 07:32:40 · . 07:32:41 | 07:32:45 \_/ 07:32:49 I think most of "my" code isn't even -Wall clean (in gcc), so it might be ... interesting 07:34:53 On the other hand, you just might to find a bug not caught by your thorough set of unit tests. 07:35:27 tests? what tests? 07:35:40 Unit ones. 07:35:52 Re. the clang flag, it's called -Weverything 07:36:13 Deewiant: UR LATE 07:36:16 shachaf: -Weverything. Try it on your nearest codebase. 07:36:23 In case anyone was wondering what the clang flag was: It's -Weverything 07:36:54 -Weevil warns of extreme evil. 07:36:59 Crap, I missed that line 07:37:04 shachaf: but what's the flag called? elliott left 07:37:19 I just saw the -fauxorth nonsense and that got mixed in it all 07:37:27 Sorry for the noise 07:40:39 -!- asiekierka has joined. 07:41:59 -!- mig22 has joined. 07:42:41 Rebol to be killed off? http://www.rebol.com/article/0510.html :-( 07:48:45 I think I installed REBOL once 07:49:48 Maybe REBOL will just go open source? 07:49:55 That wouldn't be a bad fate, would it? 07:51:39 -!- AnotherTest has joined. 07:51:52 Hello 07:53:15 `welcome ANOTHER TEST 07:53:18 ANOTHER: TEST: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.) 07:53:36 http://re-bol.com/rebol.html#section-1 07:54:05 Uh, I... it's a thing also usable for non-programming tasks? 07:57:00 -!- AnotherTest has quit (Quit: Leaving.). 07:57:26 `WELCOME does_it_uppercase_the_nick_too 07:57:30 DOES_IT_UPPERCASE_THE_NICK_TOO: WELCOME TO THE INTERNATIONAL HUB FOR ESOTERIC PROGRAMMING LANGUAGE DESIGN AND DEPLOYMENT! FOR MORE INFORMATION, CHECK OUT OUR WIKI: HTTP://ESOLANGS.ORG/WIKI/MAIN_PAGE. (FOR THE OTHER KIND OF ESOTERICA, TRY #ESOTERIC ON IRC.DAL.NET.) 07:57:37 Apparently the answer is YES. 07:58:00 -!- AnotherTest has joined. 07:59:37 since when am I getting greeted :D? 08:01:24 `WELCOME will_it_correctly_uppercase_á 08:01:28 WILL_IT_CORRECTLY_UPPERCASE_á: WELCOME TO THE INTERNATIONAL HUB FOR ESOTERIC PROGRAMMING LANGUAGE DESIGN AND DEPLOYMENT! FOR MORE INFORMATION, CHECK OUT OUR WIKI: HTTP://ESOLANGS.ORG/WIKI/MAIN_PAGE. (FOR THE OTHER KIND OF ESOTERICA, TRY #ESOTERIC ON IRC.DAL.NET.) 08:01:34 Answer: no. 08:04:41 that's actually not that bad of a greeting 08:04:51 `cat bin/WELCOME 08:04:54 ​#!/bin/sh \ welcome "$@" | perl -ne 'print uc($_)' 08:05:04 `run welcome blärg | perl -ne 'BEGIN { binmode STDIN, ":utf8"; } print uc($_)' 08:05:08 BLRG: WELCOME TO THE INTERNATIONAL HUB FOR ESOTERIC PROGRAMMING LANGUAGE DESIGN AND DEPLOYMENT! FOR MORE INFORMATION, CHECK OUT OUR WIKI: HTTP://ESOLANGS.ORG/WIKI/MAIN_PAGE. (FOR THE OTHER KIND OF ESOTERICA, TRY #ESOTERIC ON IRC.DAL.NET.) 08:05:46 That would, though I guess it'd really need an encoding-fallback kind of thing. 08:06:18 `run welcome blärg | perl -CS -pe '$_=uc($_)' 08:06:21 BLÄRG: WELCOME TO THE INTERNATIONAL HUB FOR ESOTERIC PROGRAMMING LANGUAGE DESIGN AND DEPLOYMENT! FOR MORE INFORMATION, CHECK OUT OUR WIKI: HTTP://ESOLANGS.ORG/WIKI/MAIN_PAGE. (FOR THE OTHER KIND OF ESOTERICA, TRY #ESOTERIC ON IRC.DAL.NET.) 08:06:44 `run runghc 08:06:46 Oh, there's a flag. 08:07:01 `run ghc -e 'print 1' 08:07:05 ghc: can't find a package database at /usr/lib/ghc-6.12.1/package.conf.d 08:07:07 `run welcome blärg | perl -CSL -pe '$_=uc($_)' 08:07:11 @where zalgo 08:07:11 import Random;main=mapM_((>>(י=< BLäRG: WELCOME TO THE INTERNATIONAL HUB FOR ESOTERIC PROGRAMMING LANGUAGE DESIGN AND DEPLOYMENT! FOR MORE INFORMATION, CHECK OUT OUR WIKI: HTTP://ESOLANGS.ORG/WIKI/MAIN_PAGE. (FOR THE OTHER KIND OF ESOTERICA, TRY #ESOTERIC ON IRC.DAL.NET.) 08:07:16 No output. 08:07:27 `run echo "import Random;main=mapM_((>>(י=< zalgo.hs 08:07:30 No output. 08:07:33 Deewiant: No UTF-8 locale, I guess. 08:07:39 `run echo hello | runhc zalgo.hs 08:07:42 bash: runhc: command not found 08:07:46 `run echo hello | runghc zalgo.hs 08:07:50 ghc: can't find a package database at /usr/lib/ghc-6.12.1/package.conf.d 08:07:51 fizzie: Evidently not. That'd be the right "fallback" method, I guess, though. 08:07:53 WHAT! 08:08:16 Who runs HackEgo? 08:08:21 Is it you, Gregor? 08:08:25 It is. 08:08:26 Gregor: ☝ 08:18:14 -!- AnotherTest has quit (Quit: Leaving.). 08:18:24 -!- AnotherTest has joined. 08:21:42 "REBOL is a mix of both closed and open source. The kernel of REBOL, which must be kept extremely consistent between hardware platforms and operating systems, is closed. This keeps platform specific variations to a minimum, allowing your programs to run on Windows, Linux, Unix, and other systems without modification. Our consistent, controlled design process also keeps REBOL very small - its core is less than 250KB." 08:21:43 WTF? 08:22:31 I guess they're saying that they're afraid if people fork it, it will be more annoying to write REBOL code because some must run on the forks? 08:23:12 -!- AnotherTest has quit (Ping timeout: 268 seconds). 08:24:27 -!- mig22 has quit (Quit: mig22). 08:24:49 -!- ais523 has quit. 08:30:24 I wonder how well a REBOLNomic would work 08:33:36 -!- lahwran has quit (Ping timeout: 276 seconds). 08:35:01 -!- soundnfury has quit (Quit: recompiling). 08:35:18 -!- soundnfury has joined. 08:41:49 Ok, I like REBOL's approach to optional/keyword arguments 08:41:55 Well, maybe 08:44:52 -!- lahwran- has joined. 08:50:50 This is a test of writing to the clipboard from REBOL 08:55:57 I am giving this clipboard stuff more credit than it deserves 08:59:53 -!- DHeadshot has joined. 09:07:22 -!- kinoSi0 has joined. 09:12:02 -!- monqy_ has joined. 09:16:47 -!- DHeadshot has quit (*.net *.split). 09:16:48 -!- kinoSi has quit (*.net *.split). 09:16:48 -!- Nisstyre_ has quit (*.net *.split). 09:16:48 -!- monqy has quit (*.net *.split). 09:17:06 -!- monqy_ has changed nick to monqy. 09:17:19 -!- AnotherTest has joined. 09:24:15 -!- AnotherTest has left. 09:25:56 -!- DHeadshot has joined. 09:26:06 -!- Nisstyre_ has joined. 09:48:24 I decided to try print layout [size 400x300] 09:48:40 That is a lot of what I assume is code in the view DSL scrolling by on my screen 10:21:13 -!- derdon has joined. 10:49:08 -!- kinoSi has joined. 10:51:48 -!- kinoSi0 has quit (Ping timeout: 245 seconds). 10:54:05 -!- copumpkin has quit (Ping timeout: 252 seconds). 10:56:33 -!- copumpkin has joined. 11:03:08 -!- DHeadshot has quit (Read error: Connection reset by peer). 11:03:14 -!- DH____ has joined. 11:06:00 -!- soundnfury has quit (Quit: quIRC). 11:14:07 -!- atriq has joined. 11:14:23 > sum.map(1/)$scanl1(*)[1..18] 11:14:25 1.7182818284590455 11:14:29 > e 11:14:30 e 11:14:32 :( 11:14:45 > e :: Double 11:14:46 Couldn't match expected type `GHC.Types.Double' 11:14:46 against inferred ty... 11:14:50 :t e 11:14:51 Expr 11:20:27 > exp 1 :: Double 11:20:28 2.718281828459045 11:20:59 > sum.map(1/)$scanl1(*)[0..18] 11:21:01 Infinity 11:21:09 That's why that doesn't work 11:21:13 > sum.map(1/)$scanl1(*)[1..18] 11:21:15 1.7182818284590455 11:21:18 > sum.map(1/)$scanl1(*)[1..18]+1 11:21:19 No instance for (GHC.Num.Num [a]) 11:21:19 arising from a use of `e_1111181' at <... 11:21:27 > 1+$sum.map(1/)$scanl1(*)[1..18] 11:21:28 Not in scope: `+$' 11:21:36 > 1 + (sum.map(1/)$scanl1(*)[1..18]) 11:21:37 2.7182818284590455 11:21:42 > exp 1 11:21:43 2.718281828459045 11:21:55 Slightly more precise! 11:22:49 The last digit is worng. :/ 11:22:53 2.71828182845904523536028747135266249775724709369995... it goes. 11:23:00 Hmm 11:23:08 > 1 + (sum.map(1/)$scanl1(*)[1..1000]) 11:23:10 2.7182818284590455 11:24:32 16 decimal digits is the rule-of-thumb accuracy for doubles, so that's all you can ask, I suppose. 11:24:55 But I'd kind-of maybe expect "exp 1" to be the closest possible double to e; I wonder if it is. 11:25:19 -!- MoALTz has joined. 11:25:38 > 1 + (sum.map((1 :: CReal)/)$scanl1(*)[1..20]) 11:25:40 2.7182818284590452353397844906664158861464 11:26:19 Numberwise, that seems to be correct up to 2.7182818284590452353. 11:26:27 > 1 + (sum.map(1::CReal/)$scanl1(*)[1..100]) 11:26:28 : parse error on input `)' 11:26:39 > 1 + (sum.map((1 :: CReal)/)$scanl1(*)[1..100]) 11:26:42 mueval-core: Time limit exceeded 11:26:46 > 1 + (sum.map((1 :: CReal)/)$scanl1(*)[1..50]) 11:26:49 2.7182818284590452353602874713526624977572 11:27:29 Where can I get CReal from in GHCi? 11:29:00 Wikipedia says Euler himself only computed it up to 23 decimal digits. 11:29:59 Hayoo says it's in Data.Number.CReal of 'numbers'. 11:30:01 -!- ogrom has joined. 11:30:10 Thanks 11:30:29 @list 11:30:30 http://code.haskell.org/lambdabot/COMMANDS 11:30:53 It has Hoogle, but I suppose it hasn't got a Hayoo. 11:31:37 > 1+sum(map(1/)$scanl1(*)[1..34])::CReal 11:31:38 2.7182818284590452353602874713526624977572 11:36:35 This method approaches e a lot faster than (1 + 1/n) ^ n, it seems 11:37:00 > (1.001 ^ 1000) :: CReal 11:37:01 2.7169239322358924573830881219475771889643 11:37:08 > (1.0001 ^ 10000) :: CReal 11:37:10 2.7181459268252248640376646749131465361138 11:37:16 > (1.00001 ^ 100000) :: CReal 11:37:20 mueval-core: Time limit exceeded 11:47:23 > let scf [] = 1; scf (a:b) = a + 1/(scf b) in scf . take 10 $ 2 : ([2,4..] >>= (1:).(:[1])) 11:47:25 2.7182817182817183 11:47:46 > let scf [] = 1; scf (a:b) = a + 1/(scf b) in scf . take 50 $ 2 : ([2,4..] >>= (1:).(:[1])) 11:47:48 2.7182818284590455 11:48:00 There's that, too. 11:49:07 It's the 2+1/(1+1/(2+1/(1+1/(1+1/(4+1/(1+...)))))) aka [2; 1,2,1, 1,4,1, 1,6,1, ...] expansion. 11:51:30 -!- azaq23 has joined. 11:51:31 > let scf [] = 1; scf (a:b) = a + 1/(scf b) in scf . take 50 $ 2 : ([2,4..] >>= (1:).(:[1])) :: CReal 11:51:33 2.7182818284590452353602874713526624977572 11:51:42 > let scf [] = 1; scf (a:b) = a + 1/(scf b) in scf . take 3 $ 2 : ([2,4..] >>= (1:).(:[1])) :: CReal 11:51:44 2.75 11:51:48 > let scf [] = 1; scf (a:b) = a + 1/(scf b) in scf . take 34 $ 2 : ([2,4..] >>= (1:).(:[1])) :: CReal 11:51:50 2.7182818284590452353602874713525970360921 11:51:56 > let scf [] = 1; scf (a:b) = a + 1/(scf b) in scf . take 36 $ 2 : ([2,4..] >>= (1:).(:[1])) :: CReal 11:51:58 2.7182818284590452353602874713526612384938 11:52:04 > let scf [] = 1; scf (a:b) = a + 1/(scf b) in scf . take 40 $ 2 : ([2,4..] >>= (1:).(:[1])) :: CReal 11:52:06 2.7182818284590452353602874713526624977495 11:52:29 The terminating condition of scf might be a bit worng, though, I think optimally it should end up in just ...+1/t instead of the current ...+1/(t+1). 11:59:05 > let scf (a:[]) = a; scf (a:b) = a + 1/(scf b) in scf . take 40 $ 2 : ([2,4..] >>= (1:).(:[1])) :: CReal 11:59:07 2.71828182845904523536028747135266249819 12:12:05 -!- atriq has quit (Remote host closed the connection). 12:14:17 -!- ogrom has quit (Quit: begone). 12:17:53 -!- lahwran- has changed nick to lahwran. 12:17:54 -!- lahwran has quit (Changing host). 12:17:54 -!- lahwran has joined. 12:26:47 -!- lahwran has changed nick to lahwran-. 12:26:54 -!- lahwran- has changed nick to lahwran_. 12:26:58 -!- lahwran_ has changed nick to lahwran. 12:51:41 -!- t3cht| has joined. 12:57:52 -!- t3cht|_ has joined. 12:57:59 -!- t3cht|_ has quit (Client Quit). 13:01:23 -!- t3cht| has quit (Ping timeout: 245 seconds). 13:05:31 -!- boily has quit (Quit: Poulet!). 13:05:36 -!- cuttlefish has quit (Remote host closed the connection). 13:09:36 -!- cuttlefish has joined. 13:10:27 -!- nortti has joined. 13:10:48 -!- boily has joined. 13:37:10 -!- monqy has quit (Quit: hello). 13:38:56 -!- Arc_Koen has joined. 13:39:00 -!- ogrom has joined. 13:40:41 -!- augur has quit (Remote host closed the connection). 14:19:54 -!- soundnfury has joined. 14:26:55 -!- augur has joined. 14:32:24 -!- pikhq has quit (Ping timeout: 244 seconds). 14:32:25 -!- pikhq_ has joined. 14:37:10 -!- nortti_ has joined. 14:48:51 -!- nortti_ has quit (Remote host closed the connection). 14:49:51 -!- nortti_ has joined. 14:51:43 -!- nortti_ has quit (Remote host closed the connection). 15:06:31 -!- Yonkie has quit. 15:12:00 -!- nortti_ has joined. 15:13:11 -!- nortti_ has quit (Client Quit). 15:16:21 -!- nortti_ has joined. 15:18:37 -!- atriq has joined. 16:03:22 -!- zzo38 has joined. 16:15:26 -!- zzo38 has quit (Remote host closed the connection). 16:31:21 -!- Vorpal has joined. 16:54:25 -!- atriq has quit (Ping timeout: 260 seconds). 17:03:01 Hmmm... the esolang wiki doesn't like inline references. 17:10:17 -!- atriq has joined. 17:25:02 -!- ogrom has quit (Read error: Connection reset by peer). 17:41:40 -!- ais523 has joined. 17:48:41 -!- azaq23 has quit (Ping timeout: 272 seconds). 17:50:35 -!- nortti_ has quit (Ping timeout: 272 seconds). 17:55:51 -!- nortti_ has joined. 18:02:25 -!- Phantom_Hoover has joined. 18:03:57 -!- zzo38 has joined. 18:04:49 If ZUMA FPGA was made commercial, I would probably buy it; it eliminates the advantage of existing commercial FPGAs. 18:08:04 I wonder how efficient would be computer using LFSR based instruction pointer with reconfigurable taps? 18:22:15 -!- DH____ has quit (Ping timeout: 272 seconds). 18:34:55 -!- sirdancealot has quit (Read error: Connection reset by peer). 18:38:10 that is a true mad genius idea 18:40:07 I have various other ideas too in the design of a computer microprocessor. 18:51:12 -!- sirdancealot has joined. 19:08:36 -!- sivoais has quit (Ping timeout: 248 seconds). 19:24:44 -!- oerjan has joined. 19:37:50 -!- Eladith has quit (Ping timeout: 268 seconds). 19:38:28 -!- nortti- has joined. 19:51:40 shachaf: fauxiliary pacification 19:51:47 fauxiliary is a good word 19:55:48 -!- asiekierka has quit (Ping timeout: 244 seconds). 19:59:17 -!- sivoais has joined. 20:07:07 Oh, noerjan. 20:10:07 don't we say "fauxiliarification" nowadays? 20:11:39 nah, too easy to confuse with floccinaucinihilipilification 20:12:14 so many words are easy to confuse with floccinaucinihilipilification 20:12:47 you'd think 20:13:30 so what exactly does it mean? flow control incinerated and annihilated in a pile of amplifications? 20:14:53 or am I confusing it with floccinerannihilipilification 20:15:48 (I'm glad; people used to make acronyms all the time and I couldn't figure them out... everything is so simple now) 20:16:09 "The act or habit of describing or regarding something as unimportant, of having no value or being worthless." 20:17:38 -!- lifthrasiir has quit (Ping timeout: 245 seconds). 20:18:17 wait 20:18:28 did you just make up an entry in the wiktionnaire? 20:18:47 in ten languages 20:18:52 -!- pikhq has joined. 20:19:31 i work fast. 20:19:37 also with time travel. 20:19:45 -!- lifthrasiir has joined. 20:19:49 ah, right 20:20:57 (as long as you don't forget your jelly doughnuts) 20:21:41 -!- pikhq_ has quit (Ping timeout: 252 seconds). 20:22:04 Did that guy who was implementing Fueue in OCaml get anywhere? 20:23:01 that's me 20:23:20 well, since the Queue module was not good enough, I switched to C 20:23:57 actually I try to continue with the ocaml version, accepting the sacrifice of "not checking if the operation can be performed before trying to perform it" 20:24:04 you'd probably want a deque 20:24:13 (which would not match the specifications from the wiki, but whatever) 20:24:31 deque, is that already implemented? 20:24:42 in _some_ languages it is... 20:25:03 * oerjan knows not regarding ocaml 20:25:08 I'm gonna check again but I don't think I found it in ocaml's standard library 20:25:17 -!- copumpkin has changed nick to stickle. 20:25:41 so of course I could have made my own structure but in that case I thought I'd rather make it in C 20:26:23 :) 20:26:41 You now know more about Fueue than the language's creator 20:26:56 that's scary 20:27:06 That's me 20:27:16 the wiki said something about a certain "Taneb" 20:27:24 -!- atriq has changed nick to Taneb. 20:27:32 I'm Taneb 20:27:47 ooooh 20:27:48 I'm also Ngevd 20:28:02 you're so many people! 20:28:11 No, only 4. 20:28:27 -!- stickle has changed nick to copumpkin. 20:28:30 I heard you were also Superman, and an elf 20:28:47 but is he elvis? 20:28:47 Only one of those things is actually true! 20:29:03 anyway yeah the problem was that the wiki page said "it's a queue-based language, and everything happens in the queue" 20:29:25 so I started making a program in ocaml with the Queue module 20:29:31 (or whatever a module is called in english) 20:29:52 You really need a deque, I'm afraid 20:29:56 it's like ocaml isn't even trying to be functional with that module 20:29:59 Or an immutable queue 20:30:11 see: haskell, Data.Sequence 20:30:35 and then the wikipage told me "if you pop a function, you must first check if the arguments are in the queue, and then perform the operation; if they're not, send the function back to the queue 20:30:51 It's... 20:30:56 It's not the best designed language 20:31:09 I found it quite interesting 20:31:34 :) 20:31:38 most languages are imperative and many esolangs use stacks 20:31:45 yours is a functional queue 20:31:53 Arc_Koen: i'm wondering _how_ efficient that transfer function is, if it's really constant time you might be able to use it to get around the lack of peeking 20:32:01 (it says it is) 20:32:09 what's the transfer function? 20:32:17 oerjan: does "stackars" mean the same in norwegian? 20:32:22 http://caml.inria.fr/pub/docs/manual-ocaml/libref/Queue.html last one 20:32:41 olsner: stakkars is a word, presumably means the same 20:32:58 transfer q1 q2 adds all of q1’s elements at the end of the queue q2, then clears q1. It is equivalent to the sequence iter (fun x -> add x q2) q1; clear q1, but runs in constant time. 20:33:00 i.e. stackars språk = language of stacks = poor language? 20:33:02 "poor" in a non-monetary sense 20:33:21 olsner: oh, that wouldn't be used 20:33:35 oh 20:33:37 what 20:33:40 whao* 20:33:57 ok, so the transfer function is kind of magical 20:34:07 oerjan: probably wouldn't ever be used for language of stacks in swedish either, except if you're trying to make a pun 20:34:35 vilka är det mest synd om i skogen? myrstackarna! 20:34:35 olsner: the referent of "stakkars" really needs to be something capable of suffering :P 20:35:20 it's like my eyes stopped after the fold function. or maybe "transfer" sound too much different than what I needed 20:35:53 hm actually i could imagine it being used about something else in jest 20:36:02 like food 20:36:43 Taneb: yeah, so thanks to oerjan I could continue the ocaml program 20:36:57 though I've started the C one now, and kind of want to finish it first 20:36:58 Arc_Koen: i suspect it's not _really_ constant time if you do it repeatedly for concatenation 20:37:14 I don't need to do it repeatedly, do I? 20:37:49 they say the result is *the same* as the iter/push method, but I guess the reason they included it and why it's constant time is that it actually uses the way Queue is defined 20:37:51 well you might need to do it many times 20:37:54 ie as some kind of chained list 20:38:00 oh right 20:38:21 well basically it allows me to push_as_if_it_were_a_stack 20:38:22 so the clearing is essential because it uses that structure 20:38:25 Another idea for computer design is a harvard architecture but with the ability to swap the program memory with the data memory. 20:38:47 except it pushes it in a new queue 20:39:03 and since I'm lazy I made the queue a global variable 20:39:33 so I'd need to make my interpreter fully-functional by making the queue an argument of the processing function 20:39:51 -!- copumpkin has changed nick to orifice. 20:40:41 Arc_Koen: But if the transfer function is really constant-time, you can just transfer the new queue into the (cleared) global queue. 20:40:44 Taneb: when I'm finished do you have some example Fueue programs to test it on? 20:40:58 good point 20:42:41 a few fueue programs 20:42:53 nice 20:43:01 which we could porte-manteau 20:43:16 "a fueueue programs" 20:43:43 -!- orifice has changed nick to copumpkin. 20:43:44 i think yueue are taking it too far 20:45:42 where are the orifices of a pumpkin anyhow 20:46:53 There can be registers: * program address register * program value register * primary data memory address register * primary data memory value register * secondary data memory address register * secondary data memory value register * write enable register * memory switching register * arithmetic register * accumulator * stack pointer * LFSR tap register 20:46:57 Arc_Koen, no I don't, I'm afraid 20:46:59 oerjan: Wherever the knife goes, I suppose. 20:47:01 They're pretty hard to write 20:47:16 well a hello world program would be pretty easy 20:47:27 oh yeah I had a question though 20:47:30 oerjan: maybe a copumpkin is made out of the orifices of a pumpkin 20:47:50 "if the top element is a number, prints the character of matching unicode value" 20:47:56 not sure which implications that has for the copumpkin 20:48:06 do I really need to do that? 20:48:10 I mean, unicode 20:48:17 Character set of your choice 20:48:23 > chr 100 20:48:24 'd' 20:49:06 I mean, I understand ascii 20:49:40 göôd 20:49:45 and from that I figured "then computers evolved and became more powerful, but you don't need to know how the heck they can display japanese and regular a-z at the same time" 20:49:54 > chr 1506 20:49:55 '\1506' 20:49:57 Hmm 20:50:03 ascii should be okay? 20:50:13 I have a vague recollection that OCaml wasn't exactly Unicode-friendly either. 20:50:18 @read "\1506" 20:50:18 20:50:46 well to print the ascii in ocaml I would just do "print_char (char_of_int n)" 20:51:02 or even "print_char (char n)" 20:51:27 or whatever other random name they have for the print_char function 20:51:34 Instructions can then be: * copy register to register * wait for multicore synchronization * multiplexer (as Muxcomp esolang) * push to stack * pop from stack 20:51:59 "val chr : int -> char: Return the character with the given ASCII code. Raise Invalid_argument "Char.chr" if the argument is outside the range 0--255." But what does it do if the argument is in the range 128--255? ASCII doesn't go that far. 20:52:00 And then arrange in checkboard pattern for multi-cores, as described on the esolang list of ideas they have a diagram of such thing 20:52:31 fizzie: I'm guessing they use the latin-1 extension of ascii 20:52:43 or something like that 20:52:44 that page with ocaml utf8 module won't load 20:52:59 Arc_Koen: They could, filthy liars that they are. 20:53:06 which would have the same effect for me since my terminal doesn't work well with accents and the like 20:53:59 (yes, char_of_int, char, Char.chr are the same function...) 20:54:17 How hörriblë. 20:54:54 oerjan: I have the reference manual as a pdf and it doesn't have a utf8 module 20:55:05 (though it may be date a couple years) 20:55:10 Arc_Koen: it was the "batteries included" site 20:55:12 Some algorithms can be implemented efficiently using only a few multiplexers. 20:55:27 which presumably contains more stuff 20:55:34 -!- Vorpal has quit (Ping timeout: 246 seconds). 20:55:50 so the reference manual would not be the absolute reference? 20:56:07 * Arc_Koen 's been lied to 20:56:15 It's not the absolute reference to Swedish folk art, for example. 20:56:25 Nor nonstandard modules that hairy hippies may or may not have written. 20:56:28 What would you think about these strange ideas of a computer? 20:56:37 oerjan: It would be TYPICAL if that site did not, in fact, contain a "Battery" module. 20:56:47 fizzie: indeed 20:57:03 maybe its battery ran out, and that's why it doesn't load 20:57:29 I wonder how many battery-operated HTTP servers there are currently publicly available in the global internet network. 20:57:36 Certainly a few. 20:57:48 And/or crank-operated. 20:57:55 In the mechanical sense, not the psychological. 20:58:06 The latter there's no shortage of. 20:58:10 and don't forget that guy who's hosting his website on his bicycle-driven personal computer 20:59:45 Wiki says that bicycle dynamos produce generally about 3W at 6V; that's certainly enough to run a computer. 21:00:05 I'm also grateful that the worldwide encyclopedia everyone can edit had this piece of information. 21:00:23 Sometimes, it has happened that I went to wikipedia looking for something, and it *wasn't there*. 21:01:03 Taneb: "Hello world" in Fueue is as simple as "72 101 108 108 111 32 (etc.)" 21:01:06 * boily is shocked. 21:01:07 isn't it? 21:01:42 I think so 21:03:08 (also, the wiki page says in the case of a function, "the function and its arguments are popped", but it doesn't say so for a number, so I would be tempted to make it that when the top element is a number, you're stuck in an infinite loop of printing the first character) 21:03:44 fizzie: did you get a feedback button to tell them you found what you were looking for? 21:04:25 oerjan: No. It lacks even such a basic feature. 21:04:32 (I don't recall what I was looking for any more.) 21:04:36 you can use the discuss page 21:04:46 fizzie: i occasionally get such buttons 21:04:46 Arc_Koen, that sounds mean 21:05:09 oerjan: Sometimes I get dialog boxes that ask "was this information useful to you?" 21:05:12 well that certainly would solve the problem "is it Turing-complete" 21:05:17 Not on Wikipedia, though. 21:05:54 fizzie: yeah but what when you're looking for certainly-not-useful stuff? that happens to me all the time 21:06:00 fizzie: i have got them on wikipedia 21:07:05 Taneb: since we're lacking example programs, I could write my first 99 bottles of beer in fueue! 21:07:11 Good luck! 21:07:43 would probably be slightly more complicated than it sounds though 21:08:01 since making a loop uses the full queue 21:08:20 oh no we can use blocks 21:08:32 so it *should* be easy 21:09:17 -!- nortti- has quit (Quit: AndroIRC - Android IRC Client ( http://www.androirc.com )). 21:09:20 "until n is 0, make the 'n bottles of beer' stuff, then deblock the end of the song" 21:09:39 wait 21:09:54 isn't Fueue missing an if statement or something? 21:10:14 shocking 21:10:54 I think you can use $ on a block as an if 21:11:20 oh 21:11:46 ok, so let's forget I ever said it would be easy 21:13:07 forget what? 21:13:36 -!- Eladith has joined. 21:13:50 something about a soishbeesy, but I don't remember what it means 21:18:30 -!- Taneb has quit (Ping timeout: 256 seconds). 21:19:40 -!- Taneb has joined. 21:27:23 does this give an infinite loop ):[65):] 21:28:13 -!- Taneb has quit (Ping timeout: 268 seconds). 21:28:18 -!- boily has quit (Quit: Poulet!). 21:28:23 Arc_Koen: ^ 21:28:35 oerjan: asking us to solve your halting problems for you? 21:29:08 i'm just trying to write a nontrivial loop in fueue 21:29:47 oerjan : do you mean 65 or 6 5 ? 21:29:48 my interpretation is that it should print AAAAAAAAAAAAAAa... 21:29:53 (though it doesn't change much) 21:29:55 er 21:30:01 Arc_Koen: 65 21:30:14 of course that can be an arbitrary string to print 21:30:38 it requires that the test for correct argument types works though (for the ( ) 21:30:51 er ) 21:31:05 as far as I'm concerned, yes, that's an infinite loop 21:31:36 good, good 21:32:52 http://pastebin.com/rF0xBtBU 21:32:53 hm this means that as long as your functions don't take functions as arguments, you get arguments evaluated with enough iterations 21:35:49 oerjan: I think the hard part is make a non-infinite loop that deblocks the rest of the program when ended 21:36:44 though as Taneb said you could use the $ to emulate an "if this is the last iteration, then deblock the remaining" 21:40:02 * Sgeo thinks the idea behind REBOL's... not sure what to call it is interesting 21:40:11 But REBOL seems to be a wasteland of no activity 21:41:48 <<<<( will eventually swallow up 5 values 21:44:05 but not necessarily the next 5 21:44:31 indeed 21:46:19 hm i sense the argument order of $ is inconvenient 21:46:46 Another idea is connect the data of one RAM chip to the address of another, to do indirect addressing. 21:47:28 it's the only command that can trigger when something is a number and produce something which isn't 21:47:47 but the number is squeezed in the middle 21:48:06 Sgeo: is rebol related to cobol? 21:48:28 olsner, only in the fact that the name is traditionally capitalized. 21:48:34 And the last three leters. 21:48:35 -!- MoALTz has quit (Ping timeout: 252 seconds). 21:48:56 And that there are 5 letters 21:49:43 oerjan: what about : (dupplicate) and ~ (swap)? they should be helping 21:50:04 Arc_Koen: the problem is that neither of them can be delayed until the arguments are the right type 21:50:46 oh, it's "a cross-platform data exchange language and a multi-paradigm dynamic programming language" 21:51:24 and "Although it can be used for [programming], its greatest strength is [other stuff]" 21:51:42 I guess the main purpose of blocks is to delay - though you still may have to delay the deblocking or something (but I don't really know what I'm talking about) 21:52:27 Arc_Koen: they ought to be useful for moving larger amounts of information around as well 21:53:10 by analogy with underload's () blocks 21:55:36 hm you can probably do some finer synchronization with nested )[)[ stuff 21:56:16 that way you can do a delayed : as )[)[)[:]]] and the like 21:56:54 which i guess follows from what you said 22:00:13 Taneb: have you considered an "ignore" operator? 22:00:31 taneb has probably gone to bed 22:00:37 he has that weird habit 22:01:10 hm what do you mean by an ignore operator? maybe we can simulate it 22:01:11 which would simply send the next value back at the end, not popping it nor evaluating it 22:01:43 so basically would be like (, except you don't need to deblock it afterwards 22:01:50 oh 22:01:53 )( works 22:02:07 excellent 22:02:27 I think we should add that kind of stuff to the wiki 22:03:25 hmmm 22:03:43 $%: n [...] 22:03:45 at first I thought "since we have binary + and unary -, we trivially have binary -" 22:04:07 but it's not thzt simple 22:04:34 +-1 works to decrement 22:04:58 in two steps 22:04:59 it will work next turn 22:05:24 turn synchronization is probably going to be a big part of programming queue 22:05:28 *fueue 22:05:40 +-1n doesn't work, since the n is popped out immediately 22:05:58 oh right 22:06:03 ok I think I can make it work 22:06:09 +-1)( 22:06:13 yeah 22:06:18 or wait 22:06:43 the -1 gets popped then 22:06:59 uh 22:07:10 )[+-1])( 22:07:16 +)[-1])( 22:07:31 or that 22:07:37 I don't think yours work 22:07:55 we get a +-1n at the end of the queue with yours 22:08:21 no, we get +-1[n] 22:08:23 er 22:08:24 How easy could a Muxcomp computer be made from 74xx parts? 22:08:25 no, we get +-1)[n] 22:08:48 oh, right 22:09:01 but that's the same isn't it :) 22:09:06 oh no it's not 22:09:22 * Arc_Koen 's starting to hate fueue 22:09:23 yeah it doesn't matter where you put the + since it always waits for all numbers 22:09:38 yep but the -1 doesn't wait 22:09:55 no but yours and mine do the same thing to it 22:10:10 right 22:10:15 )( takes two turns 22:10:28 so we should make it ))[[-1]] 22:10:46 oh hm 22:10:54 +-1+0 22:11:20 oh wait, -1 pushes the -1 to the end 22:11:27 +0 only takes one turn 22:11:29 so I was just talking nonsense for the last five minutes 22:11:53 so i'll go back to implementing an interpreter and i'll let you master fueue :) 22:12:36 about your $%: n [...] : what is it supposed to do? 22:12:44 Does anyone know a neat trick to find the highest of two signed integers in assembly? This is what I have http://twitcode.org/show/323/find-the-signed-max-of-ax-bx 22:12:56 it evaluates as nn[...]$% and then I guess the n's are popped out 22:13:35 Arc_Koen: oh why did i put the : there... 22:13:42 oh right hm 22:13:54 aaaaah no I'm wrong once again 22:13:59 the : puts the nn back to the end 22:14:01 the idea was to get a test on a number while still preserving a copy 22:14:22 so [...]$%nn 22:14:26 which should work 22:14:50 well not quite, the n copy gets printed 22:14:58 right 22:15:37 hm maybe best to keep the n's blocked until used 22:15:42 -!- nooga has quit (Ping timeout: 264 seconds). 22:16:53 -!- ais523 has quit. 22:19:36 so how does $ work? 22:19:48 I mean, does $0x destroy the x? 22:19:53 -!- atriq has joined. 22:20:01 i'd assume so yes 22:20:07 ah he's back 22:20:08 and thus $1x is the proper ignore we were looking for 22:20:13 heya atriq 22:20:26 oh right that would woek 22:20:26 Hey 22:20:27 *r 22:20:48 atriq, does $0x destroy the x? 22:21:02 Yes 22:21:10 It pushes 0 copies of x 22:21:19 the ! function is not needed then 22:21:26 heh 22:21:44 Neither's : 22:21:50 : is $2 22:21:51 right 22:21:55 well you might want to do !! or something :) 22:22:19 !! is a nop 22:22:45 well i imagine the first ! is conditionally created 22:26:49 hm oh. $0~ vs. $1~ might be a nice way to do clean branching 22:27:39 if two blocks follow to be chosen between 22:28:04 -!- nooga has joined. 22:28:31 Except the ~ will be pushed at the back 22:28:43 So you'd need to wait for the entire thing to rotate round 22:28:49 well of course. 22:29:04 (that's kind of the big issue with fueue but you're the one we're gonna blame) 22:29:06 i don't expect to do much in a single round here 22:30:09 ok, the three block functions to go, then numbers, then I'm almost done 22:30:37 (almost meaning "hey you forgot the complete rotation input thing") 22:30:50 heh 22:31:19 so my idea is to have the size of the queue be part of the queue structure, and the (recursive) processing function have "time" as an argument 22:31:52 with time set to 0 at every "I just did something" and time++ at every "I just sent your value back to the end" 22:32:25 and a comparison between time and q.size at the beginning of each iteration 22:32:58 hm an interesting question. is the empty program a nop or a cat :) 22:33:37 I would think cat 22:33:39 that will affect that check 22:33:56 otherwise I'm sure atriq wouldn't have include the Halt function :p 22:34:13 empty is a cat 22:37:04 though your function / effect / before / after might imply that H clears the queue 22:37:18 and thus every program that ends becomes a cat 22:37:37 (also, empty is an infinite loop of cats, right?) 22:40:28 on a totally unrelated matter, i'm kind of disappointed by how fast and easy it is to describe a new language like fueue, as opposed to how long and boring it is to implement that description 22:41:11 maybe that ~english esolang fixes that 22:41:23 nah just use haskell >:) 22:41:47 the c program is like an endless succession of "case 'x':" with nested if's 22:42:27 maybe I should make a program that writes a C program that interprets fueue 22:44:04 * oerjan sneezes 22:44:20 i should have known nys and that other guy was an omen 22:49:07 Arc_Koen: You should write a fueue interpreter in fueue 22:49:23 interesting 22:49:48 hmm 22:49:58 not so much, actually 22:50:26 oh wait yes 22:50:35 should be pretty easy though 22:51:22 hmmm 22:51:30 now I'm just thinking out loud am I not? 22:52:16 (and let's forget the soishbeesy again, shall we?) 22:53:23 -!- monqy has joined. 22:58:44 -!- nooga has quit (Ping timeout: 244 seconds). 22:58:57 )$-----0[][...] is a nice way to delay evaluation, i think 22:59:49 empty block 22:59:50 sweet 23:00:08 and you're gonna destroy it anyway 23:00:11 )$------1[...] will also work if the number of -'s is even 23:00:34 -!- atriq has quit (Quit: Leaving). 23:00:39 waaaait 23:00:44 I was about to ask atriq a question 23:00:50 are empty blocks legal 23:00:58 cannot imagine why not 23:01:03 they can't be made during the evaluation 23:01:17 the only way to have an empty block is to manually write [] when writing the program 23:01:52 heh 23:19:03 ok, program is finished 23:19:17 except some parts are comments in english of what that part is supposed to do 23:19:41 time to sleep, see you 23:20:22 good night 23:20:48 (also I lied, I haven't done the string fueue program -> queue conversion yet but that should be easy) 23:21:16 and tomorrow i'll explain why I'm so happy to have found that #esoteric place 23:22:49 -!- Arc_Koen has left. 23:25:04 -!- augur has quit (Remote host closed the connection). 23:26:58 You know what's terrible? 23:26:59 #haskell 23:29:37 ok mr. soundandcheateraf 23:41:59 oerjan: I didn't know you played agora 23:42:47 indeed 23:52:16 so why don't you leave shachaf 23:52:40 hi kmc 23:52:53 How's $NEW_JOB? 23:52:56 fun 23:53:09 * shachaf is slightly sick. 23:53:15 I need to finish the Stripe CTF today! 23:53:16 he's too drawn to the carnage 23:54:05 -!- oerjan has set topic: Virus spreading on channel, film at 11 | May contain: soy strawberries, chocolate people, vanilla computer programming, natto esoteric, tarragon THX deep note, mutton ecliptic longitude, camomile tea, some CPU locusts, rutabaga nonsensical analogies and theories, hummus matrices of solidity, pudding lovecraftian horrors, and no Ice-9. | http://codu.org/logs/_esoteric/ | http://esolangs.o. 23:54:12 oops 23:54:31 Esoleric tanguages. 23:54:35 -!- oerjan has set topic: Virus spreading on channel, film at 11 | May contain: soy strawberries, chocolate people, vanilla computer programming, natto esoteric, tarragon THX deep note, mutton ecliptic longitude, some CPU locusts, rutabaga nonsensical analogies and theories, hummus matrices of solidity, pudding lovecraftian horrors, and no Ice-9. | http://codu.org/logs/_esoteric/ | http://esolangs.org/wiki. 23:56:08 shachaf: hope you feelbetter 23:56:19 how many CTF levels do you have lefT? 23:56:27 Still at the same place I was at before. 23:56:34 Haven't started level 7 yet. I hear it's fun. 23:56:44 It is! 23:57:27 so fun 23:57:40 There's a Stripe CTF event in SF on Thu! 23:58:05 I guess you won't be there this time. 23:58:33 But I'll bug gdb if I end up being there. 23:58:39 cool 23:58:49 i think nelhage isn't there yet 23:58:52 I keep thinking of him when I see things like https://www.hackerschool.com/blog/5-learning-c-with-gdb 23:58:54 i had lunch with him today in cambridgema