00:00:35 -!- bsmntbombdood_ has quit (Read error: 60 (Operation timed out)). 00:02:42 I'll be honest, blocks >>> that shit 00:03:05 and I'm not a huge fan of blocks 00:03:10 coppro: Yes, blocks have syntax. 00:03:37 what is __LAMBDA__ anyways? 00:05:07 A function. 00:05:26 what function? 00:05:33 what's the magic behind it? 00:06:11 Expand the macro. 00:09:05 where's it defined? 00:09:28 I do not see __LAMBDA__ anywhere; I only see it used in lambda.h 00:11:32 coppro: __LAMBDA__ is defined as a function on that line. 00:11:36 Why is this so hard for people to grasp? 00:11:51 params = (int x) 00:11:55 void* __LAMBDA__ (int x) 00:11:56 oh 00:11:56 { 00:11:58 ok 00:11:58 ... 00:11:59 also, btw 00:11:59 } 00:12:04 __LAMBDA__ is reserved 00:12:05 don't use it 00:13:36 also, what if you don't want to take a closure in your lambda? 00:13:58 also, does the closure actually close anything? 00:15:10 it's a compiler extension, practically 00:15:14 so he can use what he wants 00:15:16 it only works on gcc 00:15:23 thus it's non-portable code 00:15:30 thus he can do whatever he wants as long as it compiles 00:15:39 coppro: use my FN if you don't want to close 00:15:43 yes 00:15:50 it closes a single pointer 00:16:14 the pointer to the closure itself 00:16:24 That's just for fib, so it can call itself. 00:16:42 Speaking of closures, I just thought of CONS Should Not CONS Its Arguments, Part II: Cheney on the M.T.A., and remembered it is cool. 00:16:56 but how else can you invoke fib? 00:17:01 other than by call(fib, args) 00:17:07 which calls fib with fib as the first argument 00:17:32 just give me cactus stacks in C 00:17:53 and I'll be happy 00:18:29 ehird: http://sprunge.us/hFjH 00:18:32 the closed variable is passed as an argument 00:18:32 A memoizing fib. 00:18:37 well, closed pointer, really 00:18:44 pikhq: yep, C standards committee material 00:19:10 oh, ok 00:19:18 Ugly as all hell, but it is in fact lambda and closures. 00:19:32 yep :( 00:19:45 pikhq: Make a tail recursive fact. 00:19:46 I'd disagree about that being C standards committee material 00:19:48 >:D 00:19:49 except it is 00:19:54 for some evil and truly strange reason 00:20:11 ehird: Hrm. 00:20:31 (Also, blocks have been proposed. I shudder to think of _Block) 00:20:51 * ehird decides to come up with a language like REBOL but even crazier in its parenlessness 00:20:59 (All REBOL functions are fixed arity, so it's prefix notation without parens.) 00:21:01 ehird: re our discussion about functional programming to me; I think it's simply because functional programming is higher-level than OOP (at least, in its purest form) 00:21:09 and type systems are orthagonal to both 00:21:16 But that excludes variadic functions. 00:21:21 coppro: *orthogonal 00:21:23 So: 00:21:50 When we come across a function name, we execute it. The function can execute a certain primitive function, say NEXT-ARGUMENT, to cause another expression to be read. 00:22:33 This doesn't let you have foo 1 and foo 1 2 and foo 1 2 3, but it does let you do printf. 00:22:42 So it's as free-form as C variadic functions, which is good enough. 00:23:43 AHHHH 00:25:55 http://sprunge.us/beNe 00:26:23 The great thing is that you could have CRAZY 1 2 3, and CRAZY takes either one, two or three arguments depending on a random number. 00:26:24 http://sprunge.us/EVHC 00:26:27 :D 00:26:38 no 00:26:42 pikhq: Not tail recursive, you failure. :D 00:26:44 that is not :D ehird 00:26:54 coppro: Yes it fucking is! >:( 00:27:01 ehird: It would be tail recursive if I didn't need to use bloody pointers. 00:27:02 and yeah, not tail recursive 00:27:09 ... Actually, I could cast to and from. XD 00:27:10 And the cool thing is, since we just concatenate to sequence code, CRAZY 1 2 3 is actually either 00:27:19 (crazy 1) 2 3 → 3 00:27:24 (crazy 1 2) 3 → 3 00:27:32 (crazy 1 2 3) → (crazy 1 2 3) 00:27:36 doesn't that depend on what crazy returns? 00:27:43 coppro: that isn't application 00:27:45 that's just 00:27:47 oh 00:27:47 crazy(1);2;3 00:27:51 I was using Scheme notation 00:27:53 O_O 00:27:59 that is crazy 00:28:02 Anyway, so, add side effects to CRAZY, and we have the MOST AWESOMEST FUNCTION EVER. 00:28:21 can't you do that in a currying language to some extent? 00:28:23 Next, attempt to perform static analysis on this language. 00:28:51 coppro: Well, sort of. But it'd still have to be using the function call syntax no matter what "arguments" it takes. 00:28:56 With CRAZY, we could do this: 00:28:57 http://sprunge.us/eJcM 00:29:00 CRAZY 1 2 00:29:03 PRINT "Hello, world!" 00:29:06 well 00:29:10 let's assume crazy takes 1 or 2 arguments 00:29:12 CRAZY 1 00:29:15 PRINT "Hello, world!" 00:29:16 pikhq: still fail 00:29:17 this is either 00:29:21 crazy(1); print("Hello, world!") 00:29:22 or 00:29:25 crazy(1, print("Hello, world!")) 00:29:27 coppro: How so? 00:29:37 it's not tail recursive 00:29:41 ... 00:29:49 You can't rely on GCC to do TCO, dude. 00:29:55 :-) 00:29:58 tail recursion requires return call(...) 00:30:07 That also. 00:30:11 But that also relies on GCC's TCO. 00:30:14 Which is verboten. 00:30:22 Inline assembly, however, is not. 00:30:27 Efff-you. 00:30:29 JMP to that fucker! 00:31:26 Imma not tail recurse that. 00:31:36 #define RECURSE(me) __asm__("jmp " # me) 00:32:06 int fact(int n, int x) { if (n == 0) return x else { x *= n; RECURSE(fact); } } 00:32:17 *return x; 00:32:36 I wonder if that actually works. 00:35:18 def fact n { 00:35:20 if n < 2 00:35:21 1 00:35:23 else 00:35:24 n * fact n - 1 00:35:26 } 00:35:28 ↑ Factorial in my crazy REBOL-with-varargs! 00:35:36 def is variadic; it keeps readin' and readin' arguments until it finds a code block. 00:35:54 (Oh, didn't I mention? There's also NEXT-ARGUMENT-UNEVALUATED, which lets you write macro-esque things, except at runtime.) 00:36:15 (Of course, if you have POOP + 2 2 it'll get +, 2, 2 if it doesn't evaluate them, since capturing the arguments requires calling the function.) 00:36:43 n * fact n - 1 works because there's no operator precedence. :D 00:38:57 Oh, and if you want a fun exercise: Implement tail-call elimination for this language. 00:39:01 (I believe this is impossible.) 00:41:34 You could implement it by transforming F A B C D into F [A B C D], where [] is a list. 00:41:42 Then F does NEXT-ARGUMENT, making it into F A [B C D]. 00:41:53 At the end, F just evaluates its list argument as a continuation. 00:42:06 I think that would work for tail-calls, as the continuation would be empty at the end. 00:59:36 And I've got a function that generates a memoizing fib with an array of a specified size... 00:59:39 -!- bsmntbombdood__ has changed nick to bsmntbombdood. 00:59:54 (for obvious reasons, now garbage-collected) 01:08:35 -!- zeotrope has quit (Read error: 110 (Connection timed out)). 01:13:05 -!- zeotrope has joined. 01:14:03 http://sprunge.us/cJAF 01:15:58 Does not contain tail recursion; would not purchase again. 01:16:14 Shush you. 01:16:54 also, I see no reason why pointers stop tail recursion 01:16:55 just saying 01:19:09 Tail recursion is impossible in C without inline assembly. 01:19:14 I'm pretty sure that, with how I've been writing this, GCC isn't going to tail recurse it, anyways. Since it'd be perfectly valid to replace the closed value in the lambda's closure, thereby making this not actually recurse... 01:20:26 Constant folding. 01:20:52 Requires link-time optimisation. 01:21:28 -!- yodbot has joined. 01:22:32 what's shakin? 01:22:36 anyone chattin? 01:23:37 >_< 01:23:43 Do you know what this channel is about? 01:23:54 I'm guessing I do.... do you? 01:24:02 What do you think this channel is about? 01:24:12 I figure esotericism 01:24:16 what about you? 01:24:35 You are wrong. 01:24:42 do tell 01:24:49 at least he's not a markov bot :D 01:24:50 Hint: Freenode is mainly for channels about programming. 01:24:50 -!- zzo38 has joined. 01:24:52 Or open source projects. 01:25:01 You would be unlikely to find an esotericism channel here. 01:25:22 not that you would be first to try, mind 01:25:45 well, they have linguistics, they have philosophy, etc., so clearly not just programming 01:26:00 I made a program called DDD based on a code on Microsoft's web-site. It is like SUBST but more advanced. Still, it wouldn't compile with Microsoft's compiler or GNU compiler, until I added in two lines and then it would compile on GNU, and it does work. Also, I did modify it a bit. 01:26:06 I think the linguistics/philosophy/etc channels are accepted devians. 01:26:09 *deviations 01:26:14 Only because it'd spill into other channels otherwise. 01:26:26 Anyway, this channel is about esoteric programming languages and, also, esotericism is bullshit. 01:26:34 perhaps you're overstating your point 01:26:41 Sheesh, there's one born every five minutes... and they immediately come into here. 01:26:47 and maybe, just maybe, you're blowing hot air 01:26:47 ehird is the resident most militant atheist 01:26:48 I allows you to associate drive letters and DOS device names with NT device names, maybe they should make up something like this in ReactOS 01:26:58 oerjan: Hey, I'm not. 01:27:05 But esotericism *is* bullshit. 01:27:08 oerjan: I am agnostic though, but in a different way than other agnostic 01:27:23 * yodbot gives ehird something to hold in his gas 01:27:49 ah, we do have an esotericism channel 01:27:54 yodbot: /j #1,000 01:28:11 ehird /j #eatmyshorts 01:28:17 dammit 01:28:23 I WILL DEFEAT YOU :D 01:28:45 yodbot: If /join and /part are in a boat and /join jumps out, who's left? 01:29:06 * yodbot tries to decide whether it's worth paying attention, and decides likely not 01:29:28 Bah! 01:29:53 I must clearly revert to the Nuclear Option, and _actually talk about esolangs_. 01:29:54 yodbot: If "C closures" have any meaning to you, then stick around. Otherwise, go elsewhere and enjoy your bullshit. 01:30:16 oerjan: So hey, your Unlambda interpreter in INTERCAL. 01:30:20 Does it have any restrictions? 01:30:30 pikhq: Would the JMP tail recursion actually work with your closures? 01:30:35 It's jmp *ptr, after all. 01:30:41 * yodbot yawns 01:30:44 -!- augur has joined. 01:30:46 !bf_txtgen We never actually talk about esoteric languages anymore :P 01:30:53 549 +++++++++++++++[>++++++++>++++++>++>+++++++<<<<-]>>---.++++++++++++++.>++.>+++++.<<.<--.>.<----.>>.>-------------.++.<<<++.+.>>>--.<<+++++++..<++++.>>.<<-----.>>>.<<.-.>.>.+.<<++++.++++++.-.>.>+++.<<-.----.<.>----------.<--.>>>++++.<<--.>.>+++.<+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.>++.<<++++.<+++.>>.<.--.<--.>---------------------------------------------------------------------.>.>.<<<++++++.------------.++.+++.------- 01:30:54 yodbot: You can't yawn at us for being on-topic. 01:30:58 ehird: Hrm. Actually, yeah, it would. 01:31:00 augur: Talk about esolangs! (NOT linguistics) 01:31:05 This is urgent :D 01:31:06 If you can actually tail-recurse, that is. 01:31:11 Sometimes we do esolangs but not always 01:31:16 pikhq: JMP thisfunction is tail recursion 01:31:21 -!- lament has quit. 01:31:21 assuming you set the parameters right beforehand 01:31:27 ehird: Yes. 01:31:48 ehird 01:31:49 no 01:31:58 augur: Well, okay. 01:32:04 It'd get compiled as (operations to fetch function pointer from closed); jmp $the_ptr 01:32:05 i want an eso lang that is nothing but special forms 01:32:14 which i suppose is what BF is 01:32:16 So it might just be a tail call rather than a tail recursion. 01:32:23 augur: Shortest musing ever! 01:32:32 ehird: restrictions? well there is a memory limit, i don't quite recall but somewhere <= 32 bits 01:32:43 pikhq: Generic tail calls wouldn't work 01:32:51 oerjan: 32 bits or less of memory? yuk yuk 01:32:55 You were discussing linguistics and ambiguity, but maybe I should make up a text-adventure game based on ambiguous writing and you have to figure it out by trying different commands, it can be called "Ambiguity Game" 01:32:56 pikhq: Because of the parameter locations 01:32:56 Of course, if you want to recurse, you can just call __LAMBDA__. 01:32:58 well 01:33:00 you could do 01:33:05 myfirstparam=x;mysecondparam=y; 01:33:08 as long as they were the same typs 01:33:10 *types 01:33:13 and that'd map to (x,y, 01:33:15 I think 01:33:26 ehird: < 2^32 cells. sheesh. 01:33:54 The beast has been crippled! It cannot talk. 01:33:55 except it's probably not exactly that, because of the weird addressing 01:33:59 Great work, everyone. 01:34:10 Let's make ambiguous writing game!! 01:34:13 zzo38: Let's! 01:34:56 ...which is ambiguous in itself. 01:35:05 It's either "let us", or "that which belongs to Let". 01:35:08 Yes 01:35:20 It can be, in that way 01:36:01 But I mean very ambiguous writing, such as: Charities for poor people and monsters with names starting with "A" 01:36:32 My brain has hung in its parenthesisation routine. 01:36:36 You broke my brain. :( 01:36:42 Sometimes you don't know how many things in the sentence each word refers to unless you put brackets or something like that 01:37:03 How can I break your brain if you can still write on here that it is broke? 01:37:41 My brain is multitasking. 01:37:46 OK 01:37:48 The other threads will die out soon enough, and I will with them too. 01:39:14 zzo38: these monsters are flying purple people eaters, i assume 01:39:40 You can assume whatever you want, when I wrote this sentence I had nothing specific in mind, I wrote it for the only purpose to be ambiguous 01:40:45 But that's a point too, if you want to know what the words in "flying purple people eaters" also can be refer to what group of other words, so therefore you can do that if you want 01:41:15 i think that's a *woosh* right there 01:41:22 OK 01:41:31 oerjan: **whoosh* 01:42:02 dammit i was somehow thinking whoosh was incorrect, and correcting it 01:42:30 OK, if that's what you want 01:42:59 zzo38: anyway the point is my assumption is ambiguous too 01:43:17 Yes, that's OK too 01:43:43 Soon you are going to make it everything like Hofstadter wrote a GEB book with some things levels all mix and stuff 01:44:25 On another note: Finally I received a Washizu Mahjong Tiles 01:44:30 that would be assuming i wasn't too lazy, which is _rather_ far-fetched 01:44:51 OK 01:44:58 also i never finished GEB 01:45:05 OK 01:47:39 I loved the ending dialogue of G.E.B. 01:47:42 Worth reading for that alone. 01:48:41 ... Dear God I could break people's heads. I could write with continuation-passing style in C. 01:49:06 That would probably be very painful. 01:49:12 What with the "explicit closing" and all. 01:50:12 `addquote ... Dear God I could break people's heads. ... 01:50:16 110| ... Dear God I could break people's heads. ... 01:50:45 pikhq: CPS in C is what Cheney on the M.T.A. does 01:50:52 ehird: MTA? 01:51:05 the prosecution rests. 01:51:16 http://home.pipeline.com/~hbaker1/CheneyMTA.html 01:51:23 Only the single most awesome Scheme→C compilation mechanism. 01:51:29 "Appel's method avoids making a large number of small trampoline bounces by occasionally jumping off the Empire State Building." 01:51:48 pikhq: tl;dr full TCO, uses C functions and arguments, call-with-current-continuation is O(1) due to using continuation-passing style 01:52:01 also, function calls are fast 01:52:02 no trampoline 01:52:50 -!- Asztal has quit (Success). 01:53:48 -!- oerjan has quit ("Reboot"). 01:53:50 ehird: Ah, that. 01:54:04 Yes. That is totally awesome. 01:55:55 http://home.pipeline.com/~hbaker1/cboyer13.c 01:56:02 A hand-translated Scheme benchmark using that method. 01:56:11 Choice quote: /* Closure types. (I don't trust compilers to optimize vector refs.) */ 01:56:19 -!- oerjan has joined. 01:56:20 (Circa 1994.) 01:56:32 Includes a closure type pretty much exactly like yours. 01:57:16 -!- snaggle has joined. 01:57:52 So, basically what I've got, except with smarter code using it. 01:58:29 -!- yodbot has quit (Read error: 104 (Connection reset by peer)). 02:00:21 /* Define tag values. (I don't trust compilers to optimize enums.) */ 02:00:25 now *that's* just paranoia 02:01:15 Now I should make up the program to retrieve the quotes in HackEgo, so tha I can make a list 02:02:17 Sgeo did that. 02:03:02 I can make it up the macro in IRC, using CRISC 02:05:25 Like, PRIVMSG HackEgo :`quote and the number, and then check for the line with :HackEgo at the start and PRIVMSG zzo38 and then lgo those to a file 02:05:29 Just parse the data file 02:05:30 `help 02:05:31 Runs arbitrary code in GNU/Linux. Type "`", or "`run " for full shell commands. "`fetch " downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert " can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/ 02:05:40 Where is the data file 02:05:47 Is it at the URL given there 02:06:04 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/393844a8543b/quotes/quote.db 02:06:07 It's SQLite or something 02:06:09 OK 02:06:29 That would be more better 02:07:21 -!- jix has joined. 02:07:45 -!- jix has quit (Client Quit). 02:07:56 -!- jix has joined. 02:10:09 There, that was easy, just wget and then select * from quotes; and it work. 02:10:40 echo select * from quotes; | sqlite3 quote.db > quote.txt 02:11:37 I was going to say "you're using Linux" now, but then I realised you had a ; outside of quotes. 02:11:40 Must be a port. 02:11:47 *"you're using Linux now?", 02:12:22 Yes it is the Windows command-line. Although I can still use bash, too, with MinGW 02:13:32 Windows command line. lulz 02:13:37 I do things like this too sometimes for downloading files from gopher, just echo|nc> is good enough and it works, both on Windows and on Linux 02:15:44 -!- snaggle has left (?). 02:16:59 `quote 111 02:17:00 No output. 02:17:16 -!- adam_d has joined. 02:18:22 -!- MizardX has quit (Read error: 110 (Connection timed out)). 02:22:55 -!- adam_d has quit (Read error: 104 (Connection reset by peer)). 02:27:29 -!- zzo38 has quit (Remote closed the connection). 03:00:29 -!- ehird has quit (Read error: 60 (Operation timed out)). 03:04:14 -!- oerjan has quit ("Good night"). 03:06:56 -!- uorygl has quit (farmer.freenode.net irc.freenode.net). 03:06:57 -!- Gracenotes has quit (farmer.freenode.net irc.freenode.net). 03:06:57 -!- puzzlet has quit (farmer.freenode.net irc.freenode.net). 03:07:10 -!- HackEgo has quit (farmer.freenode.net irc.freenode.net). 03:07:10 -!- SimonRC has quit (farmer.freenode.net irc.freenode.net). 03:07:10 -!- Ilari has quit (farmer.freenode.net irc.freenode.net). 03:07:11 -!- mtve has quit (farmer.freenode.net irc.freenode.net). 03:08:28 -!- HackEgo has joined. 03:08:28 -!- SimonRC has joined. 03:08:28 -!- mtve has joined. 03:08:28 -!- Ilari has joined. 03:09:46 -!- uorygl has joined. 03:09:46 -!- Gracenotes has joined. 03:09:46 -!- puzzlet has joined. 03:16:21 -!- zzo38 has joined. 03:16:35 The PDF format is all mixed up and has some bad ideas 03:17:09 zzo38 wins the obvious-statement-of-the-year award. 03:19:29 Some things that I think are bad in PDF include (but not limited to): Interactive content, animation, external hyperlinks, user/owner passwords, restrictioins, file attachments, authentication, and submitting information to web servers from viewing the document. 03:21:16 Therefore, a better format should be made. There are also other things, too, that could be improved with such formats 03:22:26 Some of the good features of PDF are: Bookmark list, and internal hyperlinks. 03:31:05 How do we fix it? 03:33:03 DVI? 03:33:32 also see http://simulacrum.dorm.duke.edu/allyourgoogle.svg 03:36:04 -!- jpc has joined. 03:36:20 zzo38: Take Postscript. Add hyprelinks and bookmarks. 03:36:21 Fin. 03:38:08 Can it be made a binary format? Also, can it be made not requiring full program language feature? (for simplification) And maybe other things might be add/remove too 03:38:54 DVI has many things missing such as colors and images and line drawings 03:39:17 While PDF has too many things added 03:39:28 Postscript can be made a binary format. 03:39:37 See: the Postscript subset of PDF. 03:40:00 OK, I can see 03:42:16 There are a few useful features of PostScript not in PDF, and also vice versa. Such as, tray selection, and object transparency, and also a proper font embedding 03:42:42 And there are too many formats for graphics and stuff in PDF, we need to select just a few of them 03:43:41 And there is one extra feature that might be good, is macros, which cannot call other macros themself, though. 03:43:49 And now it should be better 03:44:17 And maybe even some features shared in PostScript/PDF might not be needed, but I don't know everything about PostScript or about PDF 03:48:02 And I think this new format should have only one built-in font (instead of fourteen typefaces that PDF has). The only built-in font, is specified as a fixed-pitch ASCII font, and can be scaled to a given height/width on the page, but has no other specification than that. 03:58:41 -!- Warriphone has joined. 04:15:54 -!- Warriphone has changed nick to uoryfon. 05:10:12 -!- uoryfon has quit (Read error: 110 (Connection timed out)). 05:15:02 -!- zzo38 has quit (Remote closed the connection). 05:54:00 -!- Pthing has quit (Remote closed the connection). 05:55:02 -!- iamcal has joined. 06:09:44 -!- iamcal has quit. 06:11:49 -!- cal153 has quit (Read error: 113 (No route to host)). 06:27:09 -!- FireyFly has joined. 06:35:58 -!- zeotrope has quit (Read error: 110 (Connection timed out)). 06:53:20 -!- uoryfon has joined. 07:28:03 -!- FireyFly has quit ("Leaving"). 07:35:14 -!- uoryfon has quit (Read error: 110 (Connection timed out)). 07:44:34 -!- soupdragon has joined. 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:01:06 -!- kar8nga has joined. 08:12:43 -!- kar8nga has quit (Remote closed the connection). 08:14:05 -!- MizardX has joined. 08:18:14 -!- Gracenotes has quit (Read error: 110 (Connection timed out)). 08:51:25 -!- soupdragon has quit ("Leaving"). 08:54:40 -!- Guest12622 has joined. 08:56:56 -!- Guest12622 has quit ("Leaving"). 08:58:50 -!- dbc has joined. 08:58:58 7297750236 09:36:37 -!- Gracenotes has joined. 09:50:59 -!- MizardX- has joined. 09:51:54 -!- MizardX has quit (Read error: 104 (Connection reset by peer)). 09:51:57 -!- MizardX- has changed nick to MizardX. 10:04:19 dbc, ? 10:05:37 Unfortunately, GCC's line numbers are monumentally unuseful when it comes to macros. <-- try clang or icc, I don't remember if they manage that better, but it is worth a try 10:18:22 pikhq or ehird: next thing to implement in C after lambda would be call/cc :D 10:18:41 anyone going to try that? 10:28:30 -!- jpc has quit ("I will do freaking anything for a new router."). 10:39:28 -!- ais523 has joined. 10:39:48 good morning #esoteric 10:48:07 -!- uoryfon has joined. 10:49:01 morning, ais523 10:50:08 hmm, so much coursework to do by tomorrow... 11:14:53 ais523, hi 11:15:05 hi 11:19:50 wow, OOXML maintenance is adding the leap year bug back in to OOXML 11:20:42 http://adaptux.com/standards/ooxml-wg4-leap-year-bug-unfix 11:25:24 i have to do nothing by tomorro 11:25:24 w 11:25:37 but i'm gonna! MWAHAHAHA 11:27:50 -!- oerjan has joined. 11:31:51 -!- uoryfon has quit (Read error: 110 (Connection timed out)). 11:49:53 ais523, crazy 11:52:49 ais523: why? 11:53:09 for Excel compatibility, presumably 11:53:14 it's easier to fix ISO than to fix Excel 11:56:19 Remarkably white weather here today. Even the local newspaper (well, their website, anyway) has a story about the "icy fog" that has coated everything with white fuzz. 11:58:08 drama 12:08:38 it is, i can't help looking at the trees, and constantly tripping (pun intended) 12:08:57 but seriously, they are so beautiful, have i mentioned this? 12:11:26 you have 12:11:30 it's pretty pretty over here 12:11:35 fizzie: "freezing fog" in English 12:11:49 the nearby canal's mostly frozen over 12:11:57 and there were ducks and geese standing on it looking confused 12:12:10 then a bit further down there was a break in the ice, and loads of ducks happily swimming around in it 12:13:56 There's a warmed-in-winter "riverlet" of sorts near to where I used to live; in winter it's literally duck-covered. I think there's some sort of feeding thing going on there too. 12:14:56 And the field next to the parking area at the place I work currently looks like this: http://zem.fi/g2/d/9731-1/20100111_003.jpg 12:15:24 ah, that's great 12:15:32 looks uncannily like fields here in the UK, too 12:15:51 I think most european countries look much the same in the countryside 12:16:03 although, I don't recognise that sort of tree 12:16:29 Here's the road: http://zem.fi/g2/d/9728-1/20100111_002.jpg 12:17:08 And here are the shoes: http://zem.fi/g2/d/9725-1/20100111_001.jpg 12:18:17 * ais523 opens that in Firefox in Firefox 12:18:32 god those trees are beautiful 12:18:33 (writing chrome://browser/content/browser.xul in the address bar appears to start a recursive browser instance...) 12:18:45 well they are rather boring in the pic 12:18:45 I think the snow falling is beautiful too 12:18:47 but irc 12:18:49 *irl 12:18:52 I was staring out of the window, watching the snowflakes fall 12:19:29 beh, the menu in the inside browser opens things in the outside browser 12:19:40 i do that too, but there's not much structure to rain / snowfall 12:20:00 i can't really do anything to the beauty 12:20:17 unlike trees, i usually traverse the graph formed by the branches 12:21:32 In addition to the shoes there was a strange thing made out of metal wire in one of the lamp posts. 12:24:54 Heh, tomorrow's seminar thingie schedule has two 15-minute breaks in the morning half; they are labeled as "speculation breaks". (It is a bit unclear whether it means "take a break from all the unfounded speculation" or "a break from the presentations, during which it is possible to speculate".) 12:26:14 The schedule items also have the following times, in this sequence: 9:00, 9:15, 9:45, 9:15, 9:30, 10:00, 10:30, 10:45, 11:15, 11:45. I wonder how that works exactly. 12:27:08 Perhaps there's a time-warp backwards of one hour after the first three items. 12:28:31 9:45: Time travel laboratory 12:29:12 fizzie: switch to DST in the middle of them? 12:29:52 There shouldn't be. At least usually it happens at 03am here, and not in the middle of winter anyway. 12:30:50 where's HackEgo's qdb? 12:31:44 -!- zeotrope has joined. 12:32:33 ais523: I think http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/quotes/quote.db is online in the sense that it's current, but it's a binary sqlite3 file, so that's maybe not convenient always. 12:32:48 mrh, it shouldn't be too hard to parse 12:32:58 also, why did you write that as a self-quote? 12:33:09 Because you asked this earlier, in 2009-11-16. 12:33:15 I just copy-pasted my answer from there. 12:33:18 ah 12:33:24 I don't remember back that long 12:33:33 Gregor: is HackEgo's qdb online anywhere/ 12:34:52 You had already gone elsewhere before my answer, also. 12:34:53 ais523: zzo38 did it yesterday, i believe 12:35:14 did what? 12:35:15 -!- Asztal has joined. 12:35:36 extracted the quote database with sqlite (?) 12:36:32 With the sqlite command-line tool, it's pretty trivial. Or with any bindings to the sqlite library. Manually, maybe not quite so. 12:36:51 sqlite> .restore quote.db sqlite> SELECT * FROM quotes; 12:36:59 yep, works fine 12:37:25 CREATE TABLE quotes (id INTEGER PRIMARY KEY AUTOINCREMENT, quote TEXT); -- as far as databases go, it is not the most complicated one ever. 12:39:37 -!- oerjan has quit ("Later"). 12:40:12 you and your fancy computer skills 12:41:28 those quotes are mostly rubbish 12:41:34 although some of the fungot ones are good 12:41:34 ais523:... in bed." _ _ " i agree, 12:41:40 ^style 12:41:40 Available: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc* jargon lovecraft nethack pa speeches ss wp youtube 12:42:09 fungot: I really have to doubt your prowess in bed. 12:42:09 fizzie: that has the static linker had previously dealt with the models of what distinguishes a function. 12:51:56 hmm, I don't /think/ this is meant to be an esolang, but: http://www.basis.uklinux.net/ursala/sudoku.fun 12:54:57 it shows several esolang characteristics, such has having an extension that's completely unrelated to the name of the language 12:55:18 and apparently random-looking strings of letters (which I /think/ are combinators) 12:55:46 $ fun --main=" ̃&nSiiDPSLrlXS" --decompile 12:56:20 main = compose(map field((0,&),(&,0)),compose(reduce(cat,0),map compose(distribute,compose(field(&,&),map field(&,0))))) 12:57:22 also, it's whitespace-sensitive, how fun 12:59:13 the syntax for variable names is to put them in double quotes 13:01:57 uni starts tomorrow! :))))))))))))) 13:02:07 yay 13:02:40 "Recall that crt is the name of the user written library containing the binomial lattice functions, while flo and cop are standard libraries distributed with the compiler." 13:03:20 the name crt does make sense 13:03:31 yes, but names are normally more descriptive 13:03:40 oh it does make sense? :P 13:03:41 also, "crt" is already taken for "C runtime" on many systems 13:03:49 oklofok: presumably, to someone 13:04:06 presumably 13:04:18 this thing has an insanely mathematical standard library 13:04:28 cool 13:04:36 topology and algebra tomorrow! join my happiness! 13:04:50 does it share anything with APL? 13:05:07 beautiful trees and math, could the year have a better beginning 13:05:22 "It doesn’t take any deliberate contrivance to bump into an undecidable type checking problem. The “type” of the jacobian function is (Æ × Æ) → ((Êm → Ên ) → (Êm → Ên×m )) for the particular values of n and m given by the argument to the function, which needn’t be stated explicitly at compile time." 13:05:32 zeotrope: the FAQ disclaims any connection 13:05:39 although there are obvious similarities, or it wouldn't have to 13:05:52 are those R^n etc? 13:06:12 N x N -> R^m x R^n, etc 13:06:18 I'm tempted to learn it, still haven't seen a "killer feature" 13:06:54 more incomprehensible than Perl? 13:07:01 that's a great + in this channel 13:07:02 I program in J :( 13:07:03 what jacobian function are we talking about? 13:07:32 oklofok: the one that creates a jacobian matrix 13:07:47 although it's actually higher-order, it maps a function to a function returning a matrix 13:08:22 oh 13:08:27 also, possibly due to Greenspun's Tenth Law, they just embedded Lisp with a slightly different syntax pre-emptively 13:09:11 "The current release (December 2009) features some notable enhancements, namely a signed integer primitive type, improved reification operators, and various improved implementations of standard library functions." 13:09:19 I love the way a language can completely forget about signed integers, very eso 13:09:56 "Ursala (UniveRSal Applicative LAnguage) is a functional programming language suitable for scientific and numerical computation" 13:09:59 *cough* 13:10:15 why the cough? 13:10:26 no signed integers? 13:10:32 they were added, last month 13:10:49 before then, presumably it was all floats and unsigned 13:10:50 okay the type does make perfect sense, i interpreted the ->'s as x's because ->'s usually mean "failed character" 13:11:04 i mean i interpreted a few of them that way 13:12:26 as if you'd ever need integers in science 13:12:45 you do sometimes 13:12:56 in quantum physics, for instance 13:13:26 you can just put them in doubles 13:14:43 ...so wait, it computes derivatives? 13:14:53 the same way as mathematica or the same way as j 13:15:09 probably the same way as j 13:15:38 "Although a list reversal function is available already as a primitive operation, we can express one using this combinator and test it at the same time as follows. $ fun --main=" ̃&aˆ?( ̃&fatPRahPNCT, ̃&a) ’abc’" --cast %s" 13:15:47 well to be fair i'm not sure there's a general purpose derive in j, zeotrope can probably tell me. 13:15:50 it's a bit reminicent of J, actually, but with a different philosophy 13:16:16 what's the philosophy, in 7 words or less 13:16:22 tacit? 13:16:27 I'm not entirely sure yet 13:16:49 well in J theres 2 derivative operators 13:16:51 d. 13:16:52 and D. 13:16:58 d. does symbolic derivation 13:16:59 is d. for "polynomials" 13:17:04 hmm 13:17:16 yes but also general functions 13:17:26 for example square is *: in J 13:17:30 so *: d. 1 13:17:37 is the first derivative of x^2 13:17:44 which is 2x or +: in J 13:18:03 can you supply a derivative? 13:18:08 like you can supply obverse 13:18:31 I dont understand what you mean? 13:18:35 oh err 13:18:47 when you make a function, can you tell it what its derivative is 13:18:50 you can do this for inverses 13:19:01 oh sadly I dont think so 13:19:09 I've actually been wanting such a feature 13:19:28 i like the idea of adding that sort of info to functions, but i think the way j does it is very unsatisfactory 13:19:54 how do you add inverses to functions? 13:20:21 i don't remember, i just remember you can do it 13:20:22 err 13:20:25 well 13:20:37 if you have some function, that, when inversed, drops info 13:20:43 hmm I've never come across it, it would be a good feature 13:20:53 then sometimes when you inverse it, j will add the info for you, in case you wanna invert back 13:21:23 it would, one of the things i love about j (not i've never used it) is the idea of applying an operation "under" another operation 13:21:24 well I meant something more along the lines of manually specifying an inverse 13:21:30 this relies on being able to add inverse information 13:21:45 zeotrope: i mean if you make it show the func, you'll see how the obverse was stored 13:21:58 oh 13:22:04 ("obverse" is the term i've seen used for it in j, in case that sounds weird) 13:22:40 so something like the inverse of prepending something is dropping something, but the inverse remembers what was dropped 13:22:41 actually obverse is the correct term 13:23:15 so that if you reinvert then it will go back to its original state? 13:23:21 try that if you know how to, i don't even remember how to add two numbers in j. 13:23:34 yeah 13:24:15 I would like it to be able to manually add an inverse 13:24:31 and you can if you try that, and look at the function. 13:24:38 currently only bijective functions work 13:24:42 i just don't remember the character requence 13:25:30 what do you mean? 13:26:19 well I gotta catch up on my maths but only bijective functions may be inversed 13:26:50 obviously j can't invert functions in general, bijective functions are, in mathematics, needed for inverse, but in for instance the prepend example i mentioned, you have an injection, which is inverted, with stuff without actual preimage some "obvious" inverse 13:26:56 yes, that's true 13:27:10 *having some 13:27:20 in the case of prepending 13:27:32 we have a function that adds some preset element in the beginning of the list 13:27:39 hmm, so the function which can be written naively as f("x","y") = "x" is expressed internally as (&,0) which is sugar for (((),()),()) and which is most idiomatically written as ~&l 13:27:41 the "obvious" inverse is to remove the first element 13:27:44 what an utterly weird language 13:28:11 thats an interesting idea 13:28:17 but how would you add such info 13:28:17 now, "prepend x" is in fact a bijection from L to x:L, where L is the set of lists 13:28:23 but there's no such type in j 13:28:49 you just use L as the domain of the inverse, and have it remove any element from the beginning, even if it isn't x 13:28:52 (i think.) 13:29:16 no I mean in the implementation of the language 13:29:33 you add the info for basic operations, and you add info for combinations of operations 13:29:33 is this going to be implicit when defining all new functions? 13:30:28 I believe J already does that 13:30:36 yes, i'm explaining what j does 13:30:37 :P 13:30:41 but extending it to all the operators is tough 13:30:56 yes, computers might not share our definition of obvious in general. 13:31:07 and obviously inverting is undecidable in general 13:31:20 yes thats what I was gonna say.. 13:31:20 :) 13:31:31 does any other language have inversion 13:31:37 I love J's power operator 13:31:44 well there are reversible languages 13:31:50 can't believe so many good ideas are locked up in this language 13:32:46 j's high-level functions are pretty awesome 13:32:59 hahahahaha 13:33:00 the adverbs? yeah 13:33:06 i actually have a book about j, but i'll probably read it in the summer 13:33:12 I love the way constructor/deconstructor precedence works in Ursula 13:33:12 yeah adverbs 13:33:17 *Ursala 13:33:30 how does it work? 13:34:02 ~&httC = h (C (t, t)) in a more normal notation 13:34:17 ~&httPC = C (h, t (t)) 13:34:36 basically, the constructors/deconstructors are either unary prefix, or binary postfix 13:34:47 and P groups the two proceeding *constructors into one 13:35:10 also, 2 = PP, 3 = PPP, etc 13:35:52 also, it infers arguments to binary constructors if none were given 13:36:07 -!- BeholdMyGlory has joined. 13:36:13 *over my head* 13:36:21 but I'll be sure to read the manual 13:36:30 looks like it has some pretty "interesting" ideas :) 13:36:51 it also has the I constructor, which isn't really defined at all 13:37:10 as in, the manual gives four expressions containing I and defining what they do 13:37:16 and then stating, any other use is undefined behaviour 13:38:09 zeotrope: you don't happen to know how to show a function's "source code"? 13:38:34 in J? 13:38:38 ya 13:38:45 5!5<'function name' 13:38:52 ais523: lol :D 13:39:04 or just type the function name in the propmt without arguments 13:39:49 woops, its 5!:5<'function name' 13:39:59 missed the ":" 13:40:01 right, ofc 13:40:37 okay i don't know how to get it to actually evaluate the ^:_1 and then display 13:41:05 i know there's a way, in one of the labs they inverted some stuff and showed how cleverly j deduced inverses 13:41:22 there is I was trying to remember it too 13:41:24 one sec 13:42:45 instead of ^:_1 you can use the builtin verb "inv" 13:42:51 fyi 13:44:14 cant figure it out 13:47:24 "Writing complicated pointer expressions can be error prone even for an experienced user of Ursala. Learning to read the decompiled listings can be a helpful troubleshooting technique." 13:51:11 sorry, seems everything's postfix 13:51:24 as in, ~&rl is "left of right", not "right of left" 13:52:51 -!- bsmntbombdood_ has joined. 13:53:36 I'll need to write an Underload interp in Ursala some time, I think 13:54:11 -!- bsmntbombdood has quit (Read error: 101 (Network is unreachable)). 13:55:00 oklofok: figured out how to display inverses? 14:02:34 no, me and seven other finnish guys went to screw a lightbulb. 14:02:40 on 14:03:12 well maybe more like in 14:03:25 or up while we're at it 14:03:52 * uorygl ponders the best preposition to use. 14:04:06 "over" is pretty good 14:04:47 I like "against". 14:06:28 "around" is not too shabby in this case. 14:06:37 Oklofok and seven other guys, screwing around a lightbulb. 14:08:58 Seven other Finnish guys. That's important. 14:13:29 any recommendations on books about asm? 14:21:46 I learnt asm by compiling C to asm and seeing what I got 14:22:05 (well, that's how I learnt x86 asm, I first learnt 6502 asm from a book called "Beyond BASIC") 14:23:10 it was kind-of fun, the last example in that book was a 16-bit divide 14:23:25 (ah, the joys of an 8-bit processor without multiplication or division) 14:24:56 interesting, I'll give the C idea a try 14:25:32 The "Machine Language for Commodore 64 and other Commodore computers" book is available floating around in the interwebs. (It might be of an unclear legal status, though.) I think it goes a bit more beyond basic than Beyond BASIC. 14:26:37 6502 asm might not be everyone's cup of tea, however, and the related hardware is a bit... dated. 14:27:00 -!- Sgeo has joined. 14:27:35 fizzie: yes, my BBC Micro was sold for spare parts ages ago, because it was hardly working 14:27:55 in particular, the B and Y keys on the keyboard were broken 14:28:45 Sam Hughes makes a whitelisting HTML parser, which doesn't allow and , but allows and . Hilarity Ensues: http://qntm.org/?parser 14:28:52 I have a C128 in the closet (it's better than having a skeleton there), and it was working fine when I last fed it some electrons; admittedly that ws some years ago. 14:28:55 (Fine Structure spoiler in one of the comments) 14:29:13 Specifically, Eskivole's comment and Sam's followup comment 14:31:56 last time I tried to boot my windows 3.1 computer, I found that most of the binaries on it were corrupted 14:32:00 apart from DOS for some reason 14:32:36 -!- FireFly has joined. 14:37:50 why isn't oerjan always here 14:38:17 as if he has anything better to do than answer my questions 14:44:29 http://www.reddit.com/r/programming/comments/anp8l/anic_faster_than_c_safer_than_java_simpler_than_sh/c0ij3xy <--- some redditor go tell him about Perligata 14:44:41 Perligata? 14:44:50 * Sgeo is a redditor >.> 14:45:46 isn't that the perl latin dialect.. 14:47:44 septimum noni tertii primi unimatrixorum 14:48:00 equivalent to $unimatrix[1][3][9][7]; in perl 14:48:00 http://esolangs.org/wiki/Perligata 14:48:13 zeotrope: yes 14:49:05 is non positional syntax a good idea? 14:49:54 it's different and unusual 14:50:00 I'm not entirely sure it's a good idea, though 14:50:22 it /does/ fit in with the philosophy of Perl, in a way (rearrange your commands to have the important bits first) 14:50:27 but not really with programming in general 14:50:36 ofc, as it's Latin, you'd put the important things last instead 14:50:40 as that's what you do in Latin 14:51:11 I've never programmed in perl, but there must be something special in it that facilitates such a language being built on top of it 14:51:40 too lazy to read the paper..meh 15:00:02 -!- Slereah_ has joined. 15:00:45 Oh, http://www.reddit.com/r/programming/comments/anp8l/anic_faster_than_c_safer_than_java_simpler_than_sh/c0ikw5t 15:02:03 vaporware 15:02:11 ? 15:03:29 Sgeo: the lang in question hasn't actually been implemented yet 15:04:26 Edited 15:06:20 may as well say #esoteric on irc.freenode.net 15:06:29 so that people know where to find the channel 15:08:20 Done 15:09:11 http://www.reddit.com/r/programming/comments/anp8l/anic_faster_than_c_safer_than_java_simpler_than_sh/c0ikw5t 15:09:18 sorry.. 15:09:29 damn irssi 15:09:32 AnMaster: call/cc is easy when you've got lambda. So long as you can compile to continuation-passing style, that is. 15:09:55 -!- Slereah has quit (Read error: 110 (Connection timed out)). 15:11:20 call/cc with escaping continuations means the ability to say "oops". 15:11:26 Sgeo: wrong 15:11:29 Perligata's implemented, anic isn't 15:11:31 fix your comment 15:11:33 Oh 15:11:54 Fixed 15:13:05 no it isn't 15:13:23 ah, now it is 15:13:24 ? 15:13:25 stupid caching 15:13:28 lol 15:13:52 the individual comment's still showing the problem, its parent isn't 15:20:31 ANI looks like kind of a vaguely-defined language. 15:24:52 It's a language that's not been implemented or specified. 15:25:02 Really, it amounts to an idea. 15:25:08 Interesting, sure, but an idea. 15:32:16 -!- lieuwe has joined. 15:33:52 Hmm. From the ANI tutorial: 15:33:54 "What? We just learned how to write a Hello, World program in this crazy new language, and the next step is building a real-time parallel clock/calculator? Yes, indeed! It would take a programmer new to C months to be proficient enough in the language to attempt such a thing (and even then, it would be virtually guaranteed to have bugs)." 15:34:16 If I agreed with that statement, I would conclude that C really, really, really sucks. 15:34:47 well it does 15:35:01 it does 15:35:09 -!- augur has quit (Read error: 110 (Connection timed out)). 15:35:10 welcome to the world of low- vs high-level programming 15:36:12 yeah, such high levels of abstraction make us brainfuck players vomit 15:36:20 -!- coppro has quit ("I am leaving. You are about to explode."). 15:36:59 -!- ehirdiphone has joined. 15:37:08 Replace the number of "really"s with the next Fibonacci number until you disagree, then. 15:37:08 callcc in c has been done before. Easy. 15:37:29 ais523: We have discussed and laughed at ursala before 15:37:45 Also, eff you, the qdb is excellent 15:37:50 ehirdiphone: Yeah... You could hack it together with longjmp, even without lambda. 15:38:03 here comes ehirdiphone, and disagrees with the whole log 15:38:05 I literally lol'd at it every second quote yesterday 15:38:13 oklofok: :D 15:38:14 :D 15:38:20 pikhq: Yep been done 15:38:40 For prolog style backtracking too 15:38:46 ehirdiphone: did you laugh at the even ones or the odd ones? 15:39:03 why would I want to use a multithreaded real-time clock and infix calculator anyway? 15:39:05 I have Emacs for that 15:39:11 uorygl: On average I laughed at every second quote. 15:39:27 (not actually joking: I configured Emacs to show the current time on the modeline, so I had a clock readily available when I was working in xmonad) 15:39:36 ais523: I love that example, it so perfectly reflects the language design 15:39:54 ehirdiphone: anyway, Ursala is actually a really interesting lang I think 15:39:58 "We couldn't think of an appropriate real problem!" 15:40:16 that sort of multithreading is trivial in INTERCAL 15:40:24 (1) PLEASE NOTE THIS IS THE LINE THAT CAUSES THE MULTITHREADING 15:40:26 COME FROM (1) 15:40:27 COME FROM (1) 15:40:32 cheese is tasty 15:40:50 intercal <3 15:41:17 Pfkkfnekvjejfjwkcjowkc 15:41:38 ehirdiphone: heh, you even left out the implied lr at the start 15:41:48 ?? 15:41:54 * Sgeo should probably eat 15:41:59 Oh ursala 15:42:00 ehirdiphone: remember, I'm trying to learn Ursala 15:42:01 wow, i can actually attend all lectures except complex analysis 15:42:10 Sgeo: eat some cheese 15:42:19 I think most strings of random letters are syntactically correct (at least if preceded by &) 15:42:24 ais523: The tacit thing is just one part 15:42:25 i don't think i've ever been able to attend more than like half of my courses 15:42:33 because the grammar implies arguments into functions if you don't give them 15:42:48 oklofok: what's been keeping you? 15:42:53 other courses 15:43:02 Klopklopklopklopklop 15:43:11 but this time they are perfectly scattered around the week 15:43:31 ais523: Implying arguments is nice 15:43:31 the thing is usually people take one or two advanced courses at the time, so it's not really an issue if they are on top of each other 15:43:40 hmm, I think Underlambda compiles into Ursala pretty neatly 15:43:41 so they use the same 2-hour slots 15:43:47 and i'm like fuck u 15:43:52 I tried to beat REBOL once and had those 15:44:35 * oklofok mutters something about pennies, ais523 and underlambda/intercal 15:44:53 At your school, it's normal for classes to overlap? 15:44:57 let's see... ^ is ~&htH, that was easy 15:44:57 yes 15:45:03 rather normal 15:45:04 incidentally, H is an abstraction-inversion in Ursala 15:45:40 I also had Perlish function lvalue thing 15:45:59 You could do 15:46:12 rot13 s = "poop" 15:46:17 -!- augur has joined. 15:46:29 augur: hi, nemesis. 15:46:33 and that'd make rot13 s == "poop" 15:46:35 * is ~&hthOttRC, or possibly ~&hthPttRC 15:46:35 ie 15:46:43 uorygl: since when im i your nemesis? :| 15:46:45 not entirely sure which way round the arguments would be, I'm confused thinking about it 15:46:46 s = rot13 "poop" 15:46:52 cool no????? 15:46:56 there's some coordination for stuff people usually take at the same time 15:47:03 am* 15:47:06 A formal semantics for this operation is best left to compiler developers. 15:47:15 ais523: 'ppreciate my lang 15:47:27 What operation? 15:47:37 O 15:47:39 augur: aww, I like having nemeses. 15:47:49 Doing? 15:48:00 composition 15:48:21 wait, no 15:48:27 composition is complicated in ursala? 15:48:28 that's composing h and th themselves, not their values 15:48:35 ehirdiphone: it has quoting issues 15:48:36 wat 15:48:51 ais523: PPRECIATE MY LANG 15:48:54 no 15:49:16 :( 15:49:21 :'( 15:49:24 crybaby. 15:49:27 -!- zeotrope_ has joined. 15:49:31 :''( 15:49:40 * oklofok sleeps -> 15:49:54 i sleep like a baby, but i cry like a MAN 15:49:56 oklofok: Wut 15:49:59 * uorygl watches the tears escalate. 15:50:00 i'm tired 15:50:05 i had an exam today 15:50:07 It's 17:00 in fi 15:50:08 so i didn't sleep much 15:50:10 yeah 15:50:10 xD 15:50:19 -!- kar8nga has joined. 15:50:19 17:49 but yeah 15:50:24 oh 15:50:29 +2? 15:50:37 sh*t, having some trouble implementing underload... 15:50:42 +2 or +3, yes. 15:50:52 15:48 here in TOTALLY UNADJUSTED TIMEZONE LAND 15:50:56 ^____^ 15:51:00 ^___________^ 15:51:00 Actually, 15:50. 15:51:06 seriously -> 15:51:13 >.> 15:51:13 lieuwe: Knew it 15:51:22 ehirdiphone: why? 15:51:31 Doing both ^ and S giving you trouble, right? 15:51:41 -!- augur has quit (Read error: 60 (Operation timed out)). 15:51:43 ehirdiphone: nope, () giving me trouble 15:51:53 o_O 15:51:55 Howso 15:52:02 ehirdiphone: it could be the same problem manifesting in a different way 15:52:09 ehirdiphone: as that pushes stuff into the program, and i need to translate to python... 15:52:16 I think so too ais523 15:52:22 lieuwe: Kneeew it 15:52:29 -!- Pthing has joined. 15:52:38 09:51 here in CENTRAL STANDARD TIME. AMERICA! 15:52:40 You must store the code along with the python 15:52:43 lieuwe: a hint: you need to store both a precompiled version of the code inside the (), and the original source 15:52:47 -!- Pthingg has joined. 15:52:55 ais523: Or just do an interpreter. 15:53:06 ehirdiphone: I mean, to do a compiler 15:53:10 -!- Pthingg has quit (Read error: 104 (Connection reset by peer)). 15:53:11 an interp would work rather differently 15:53:17 ehirdiphone: so i have a list of python commands as 'program' which i eval in order and insert stuff into, but i need to insert translated commands, and the translating is the problem 15:53:25 -!- ehirdiphone has quit (Remote closed the connection). 15:53:38 -!- ehirdiphone has joined. 15:53:49 Sorry what was said after the last thing I said 15:53:57 [15:52] ehirdiphone: I mean, to do a compiler 15:54:00 [15:52] <-- Pthingg has left this server (Read error: 104 (Connection reset by peer)). 15:54:00 [15:52] an interp would work rather differently 15:54:01 [15:52] ehirdiphone: so i have a list of python commands as 'program' which i eval in order and insert stuff into, but i need to insert translated commands, and the translating is the problem 15:54:08 ah, well, at least i've got bf->python implemented, any other lang suggestions to implement?(prefferably not self modifing 15:54:10 * Sgeo was about to do that tprivately 15:54:24 we should get one of the bots to do that 15:54:26 via DC 15:54:28 *DCC 15:54:29 lieuwe: UL is not self modifying 15:54:49 the point is, you can compile the code segments inside the () in advance 15:55:07 then operations like a become repr, ^ becomes eval, * becomes string concatenation 15:55:13 ais523: and thats where my troubles start... my lexer wont do that... 15:55:22 lieuwe: ah, you probably need to improve the lexer then 15:55:31 Your... Lexer is compiling? 15:55:36 ( and ) can't be implemented as separate commands 15:55:54 * isn't concatenative 15:55:57 Isn't 15:56:00 Convat 15:56:01 ehirdiphone: I bet lieuwe's BF interp compiles [ to the equivalent of while(*p) { and ] to the equivalent of } 15:56:02 ehirdiphone: not really, it's translating to python, but translating to machine code should be possible 15:56:18 ais523: Probably 15:56:20 ehirdiphone: actually, it doesnt do that 15:56:27 lieuwe: could you pastebin what you've done so far? 15:56:55 ais523: sure... 15:56:58 ais523: How powerful is ursalas type system? 15:57:17 ehirdiphone: depends on what you mean by "powerful", I think 15:57:24 you know how BCPL's typing works? 15:57:33 dependent types? TC type checking? 15:57:41 it doesn't do type checking 15:57:51 basically, instead of storing bitstrings, everything's based on lists of lists 15:57:56 oh. Not a real language, then. 15:57:58 like ((),()) which is the representation for true 15:58:10 and arguments are just assumed to be of the right types, I think 15:58:20 Utter crap 15:58:29 at least, the equality comparison checks to see if both sides have the same representation, without looking at types 15:58:40 it tries to infer types /from/ the representation, for output to the screen 15:58:53 but there's a --cast option to tell it what the type actually is, for more complex types of outputs 15:58:54 This language sounds shit. 15:59:02 ehirdiphone: to me, it sounds very eso 15:59:03 ais523: http://pastebin.com/d751dd8dc is my code, it's 3 files 15:59:11 it's not going to be the next Haskell or anything like that 15:59:19 but it makes quite a good esolang 15:59:25 high-level, too 16:00:00 lieuwe: You don't handle outputtibg invalid commands too 16:00:13 Anyway don't try and compile UL 16:00:33 It's tricky, trust me (I did it first) 16:00:36 it can be compiled, but an interp's easier 16:00:39 I suggest interpreting 16:00:45 ais523: Vastly easier 16:00:58 (Underlambda's designed to be much easier to compile; compiling it and interpreting it are similarly difficult) 16:01:09 ehirdiphone: the lexer detects illegal commands, but the runtime isn't done yet, which should report that, anyhow, i'll just look for another lang to implement 16:01:35 "This is challenging, I give up"? 16:01:48 Why are you coding these if not for the challenge? 16:02:23 n,A,C,E,s[1<<20],*r;main(c,X){char*p=s,*q=p-~read(0,p,s);for(r=X;c=*p++,A=c!=97,C=c==42,E=c==94,X=c==40,c*n?n+=X-=c==41,*q++=n?c:!++r,1:!A|C|E?q-=~sprintf(E?p=q:(*r=q),"(%s%s"+A,E[r-=C+E],E?p:C?*r:")"):c-33?r[1]=X?++n,q:c=='~'?X=*--r,*r++=r[1],X:c-58?X=c==83,c-60&&c|n&&printf(X?"%s":"\nErr'%c'",X?*r--:n?40:c),X:*r++:--r;);} 16:02:35 now, /that's/ an impressive Underload interp 16:02:39 ais523: We concluded http://esolangs.org/wiki/Qq was sub tc, right? 16:03:00 ehirdiphone: I don't remember concluding it either way 16:03:13 ais523: fuck me, it even does error checking. I am not worthy 16:03:27 * ehirdiphone bows to honor 16:03:29 -!- augur has joined. 16:03:31 *hinoe 16:03:36 ok hello 16:03:57 ais523: You sure? I swear we decided it wasn't tc 16:04:30 ehirdiphone: yup, it's *too* challenging, if you'd like a challenge go ahead and implement it... 16:04:56 In what universe is "Vivid dreams" a side-effect. Although I guess the page doesn't say it's a _negative_ side effect 16:04:58 http://www.webmd.com/sleep-disorders/tc/melatonin-overview 16:05:35 ehirdiphone: seems to segfault on the Fibonacci example 16:05:39 I'm not entirely sure why 16:06:02 -!- soupdragon has joined. 16:06:20 Also, uorygl, stop trusting the LessWrong.com posters 100%, kthx 16:06:24 -!- MigoMipo has joined. 16:06:58 why isn't bsmnt_bot here? 16:06:58 lieuwe: I wrote an Underload->C compiler with ais523, that's enough Underload for one lifetime imo 16:07:05 I could have fun trying to do a Python oneliner that does underload 16:07:12 why doesn't bsmntbombdude like me 16:07:25 Sgeo: If someone says they're a rationalist, clearly they're always right! 16:07:36 ehirdiphone: :-p but i assume that you had to write your own lexer/parser in c too? 16:07:44 lieuwe: No 16:07:52 Complete compilation 16:08:06 ehirdiphone: ? 16:08:11 To a linked list of C functions and strings 16:08:32 -!- zeotrope has quit (Read error: 110 (Connection timed out)). 16:08:35 UL->C compiler written in R5RS Scheme 16:09:52 I didn't need to "parse" anyway 16:10:12 I just switched on characters and recursed on ( 16:10:38 ehirdiphone: ah, like so, any lang using my framework has to be lexed and parsed anyway, thats why my bf converter is so long :-P 16:11:18 Heh 16:11:41 Unlike the ordinary alphabet, the Shavian alphabet is designed to match the sounds of spoken English. When you read a word in Shavian, you know how to say it, and when you hear a word, you know how to spell it. 16:11:59 𐑑𐑴𐑛 = "toad" 16:12:24 ais523: s/[+-]/*p&&;/g 16:12:31 :D 16:12:43 Or is it \&? 16:12:53 $& in Perl 16:12:59 just & in sed, though, I think 16:13:10 soupdragon: oh how sad it is that shavian fails then D: 16:13:17 why 16:13:31 well for one, its got too few symbols! 16:13:38 for two, it only works for particular dialects of english 16:14:27 ais523: In c does char*p=t,t[50]; work? 16:14:34 Ptr before what it points to 16:14:40 I don't think so 16:14:47 but I don't know for certain 16:14:50 𐑕𐑴𐑐 16:14:56 I have no c compiler here 16:14:58 :( 16:15:01 there's a nice symmetry to it 16:15:14 Question marks are quite asymmetric 16:15:20 𐑒o𐑜 16:15:25 cog 16:15:35 #! /bin/bash \ q=`realpath "$0"` \ cd /home/ais523/research/bulky/rakudo/rakudo \ exec perl6 "$q" \ = if 0; 16:15:39 nevermind that its incorrectly called a "phonetic" alphabet 16:15:39 where \ represents newline 16:15:44 when its really a phonological alphabet 16:15:46 but thats ok 16:15:56 ehirdiphone: what do you think of that for the header of a perl6 program, when I don't even have perl6 installed and it won't run from any other directory? 16:16:23 I love the q=`realpath $0` bit 16:16:28 augur: The difference being? 16:16:33 um, q=`realpath "$0"` 16:16:47 phonological alphabet 16:16:54 the difference being that phonetics is about articulation, acoustics, etc. while phonology is about the language's sound system 16:17:01 what's a phoenetic alphabet or is that a contradiction in terms? 16:17:09 english has only one t phoneme, but it has like half a dozen or more t phones 16:17:11 ah I see 16:17:14 soupdragon: an alphabet of phonemes, rather than letters 16:17:23 ais523: cute 16:17:38 no ais523 16:17:44 a phonetic alphabet is an alphabet of phones 16:17:54 a phonemic/phonological alphabet is an alphabet of phonemes 16:18:02 well, ok 16:18:05 Phonetic alphabet: ☎ ☏ ✆ 16:18:10 8D 16:18:11 lol 16:18:24 cue s lereah 16:18:26 Deewiant: I was going to make that joke, but you did it better 16:20:39 Does p?q work or must it be p?q:r 16:20:50 you need both ? and : 16:20:56 OTOH, you have p&&q 16:21:03 which works fine apart from precedence issues and return value 16:22:40 BEGIN{say"char*p=t,t[30000];int main(){"}s/[+-]/*p$&$&;/g;s//p++/g;s/,/(*p=getchar())<0&&*p=0;/g;s/\./putchar(*p);/g;s/\[/while(*p){/g;s/\]/}/g;END{say"}"} 16:23:00 ais523: Oh. One change 16:23:08 00] -> 16:23:19 00]={0} 16:23:25 ah, perl5.10 16:23:39 To zero out the tape 16:23:51 you need a "use 5.10;" in there to get say 16:23:52 I think 16:24:09 (it's shorter than "use feature '5.10'") 16:24:10 Usage: 16:24:38 perl -M5.10.0 -pe'...' 16:25:10 Or add first line #!perl -pM5.10.0 16:25:23 ehirdiphone: perl -pE 16:25:29 they actually thought of that for oneliners, and gave an abbreviation 16:25:41 -E is like -e except it implies the newest version of use feature 16:25:42 What does that do? 16:25:46 Eh 16:25:58 I prefer adding the shebang line to a file 16:26:15 "behaves just like -e, except that it implicitly enables all optional features (in the main compilation unit). See feature." 16:26:20 Anyway, prolly the smallest Perl bf to c compiler 16:26:38 Thanks to the ={0} trick a 16:26:48 nd the $& trick 16:26:59 Oh change the string in the END to 16:26:59 ehirdiphone: as a file-scope static, you don't need to explicitly zero 16:27:01 it happens automatically 16:27:07 it's autos that need explicit zeroing 16:27:08 "return 0;}" 16:27:14 ais523: Yay 16:27:24 Still need the return, though 16:27:28 No wait 16:27:29 C99 16:27:33 Her 16:27:37 *Hee 16:27:48 My original snippet was correct 16:28:28 I deserve some sort of an award for writing that on an iPhone 16:31:07 Puling something like my yield stuff in C#: Good idea or bad idea? 16:31:30 can't C# do that already? 16:31:35 I'd be surprised if it couldn't 16:32:03 ais523, it has yield functionality similar to Python, but the programmer I'm working with is somewhat opposed >.> 16:32:17 Then again, he was also opposed to the scheduler, which was a literal necessity 16:32:36 (Although I did implement the scheduler slightly incorrectly, which caused a nasty bug, so) 16:33:14 (Nasty in that it was tough finding it, not that it did something so terrible) 16:34:05 Never assume that a TimeSpan's .Seconds == 0 means that the TimeSpan is for a 0 length of time >.> 16:37:37 After I implement that, we'll be roughly where we were before I was fired as Sole Developer! 16:38:14 (Ok, so the guy's not that bad. He did implement a framework for GUI-like stuff that I would have struggled with) 16:38:38 And has a system for user data in place 16:38:57 And other stuff that wasn't even on my radar before I was fired 16:39:05 Whee! Chatkilling monologue! 16:39:53 -!- ehirdiphone has quit ("Get Colloquy for iPhone! http://mobile.colloquy.info"). 16:40:10 -!- ehirdiphone has joined. 16:55:29 http://www.reddit.com/r/programming/comments/ao1ev/happy_birthday_donald_knuth/c0iko29 16:55:41 http://www.reddit.com/r/programming/ 16:57:05 Indeed 16:57:29 Sgeo: All evidence points to the programmer you're working with being a complete idiot. 16:57:40 So I wouldn't value his opinion much... 16:57:49 just kill him 16:57:53 nobody will even notice 16:58:59 -!- zeotrope_ has changed nick to zeotrope. 17:00:05 * Sgeo decides to try sugar in his coffee 17:00:19 uggh 17:00:23 what the hell 17:06:40 -!- lieuwe has quit ("Page closed"). 17:18:53 http://www.archhurd.org/ 17:31:02 -!- ehirdiphone has quit (Read error: 54 (Connection reset by peer)). 17:31:06 -!- ehirdiphone has joined. 18:01:50 Deewiant, ^_^ 18:01:53 that's crazy 18:02:05 Deewiant, is it a joke? 18:05:01 Does it look like one? 18:05:10 no :( 18:40:54 ehirdiphone, why back on your phone? 18:41:22 we have a wonderful selection of church-turing cheeses. 18:43:28 AnMaster: Won't be tomorrow. 18:46:32 * ehirdiphone muses on a Befunge 98 editing mode 18:46:52 Interactive execution that syntax highlights as it goes? Why not. 18:47:07 (Including updating the playfield) 18:47:50 Cursor on fingerprint instruction shows fingerprint, stack effect and description? Yes! 18:48:21 ehirdiphone, hm interesting 18:48:29 also, typing a key moves the cursor in the current editing direction, not rightwards 18:49:21 Breakpoint by pressing a key while the cursor is on the breakpoint spot? Yep. 18:49:25 ehirdiphone, it would (like all befunge editing modes that are slightly useful) be a mix between a "classical" editor and an interpreter 18:49:43 ehirdiphone, so go code it :) 18:49:48 It'd hook into CCBI or cfunge or whatever, of course 18:50:06 AnMaster: Sure... as an amend mode :) 18:51:32 ehirdiphone, cfunge does have a trace option to output current instruction already, ccbi has a debugger, but you have to single step it to get a trace. Depending on what language the editor is in, calling D code could be rather a pain, or it could be trivial. 18:51:55 I'd interface via stdio obviously 18:52:07 ah okay, not as a library 18:52:17 This is unix! :P 18:52:30 ehirdiphone, UNIX* 18:52:41 Unix. 18:52:52 ehirdiphone, it doesn't look like "SPARTA" then 18:52:54 :/ 18:52:55 UNIX is an error. 18:53:13 It was originally smallcaps'd Unix. 18:53:22 AnMaster: I was deliberately avoiding that 18:53:41 300 reference would be "This. Is. UNIX!" 18:53:49 ehirdiphone, it was the first thing I came to think of anyway on that line 18:53:58 Your mom. 18:54:08 ehirdiphone, I haven't even seen the movie in question 18:54:58 Tggggfgguggffghyfuggygugh 18:55:03 ? 18:55:15 iphone spell correction failure? 18:55:21 Jfjwjcneovnjs. 18:55:29 wrong language? 18:56:16 Tggggfgguggffghyfuggygugh 18:56:17 Vusjsjgf 19:06:41 C 19:27:49 I am bored. 19:43:22 -!- BeholdMyGlory has quit (Read error: 110 (Connection timed out)). 19:49:25 -!- BeholdMyGlory has joined. 19:51:18 -!- ais523 has quit (Remote closed the connection). 19:54:48 -!- kar8nga has quit (Remote closed the connection). 21:14:26 -!- AnMaster has quit (Remote closed the connection). 21:14:47 -!- AnMaster has joined. 21:18:28 -!- oerjan has joined. 21:19:53 why isn't oerjan always here <-- if i stay at the computer all day i get horribly aching neck and shoulders. at least that's one reason. 21:22:15 well get someone to massage you while you sit on the computer, sheesh 21:22:23 -!- augur has quit (Read error: 60 (Operation timed out)). 21:22:41 that would be a rather long-term plan, i'm afraid 21:23:06 why so 21:23:19 Get better posture bitch 21:23:22 just go out with like a lasso, and kidnap someone 21:23:23 BITCH 21:23:44 to get ahold of someone who would do that. not to mention i would probably then spend even less time on the computer. 21:23:57 :) 21:24:43 well anyway i suppose that's an okay excuse 21:25:36 -!- kar8nga has joined. 21:29:31 -!- kar8nga has quit (Remote closed the connection). 21:30:57 -!- poiuy_qwert has joined. 21:32:40 -!- augur has joined. 21:32:58 ohai 21:35:59 -!- ehirdiphone has quit (Read error: 54 (Connection reset by peer)). 21:36:35 -!- ehirdiphone has joined. 21:42:15 Asdf 21:44:54 -!- augur has quit (Read error: 60 (Operation timed out)). 21:45:48 -!- ais523 has joined. 21:45:52 -!- MigoMipo has quit ("Page closed"). 21:50:27 -!- pikhq has quit (Read error: 54 (Connection reset by peer)). 21:58:38 -!- soupdragon has quit ("Leaving"). 22:10:35 Hi ais523 22:10:44 hi 22:11:31 One of the errors said: & did not start a character reference. (& probably should have been escaped as &amp;.) 22:11:45 this seems to be some sort of recursive version of Muphry's Law 22:18:12 recruise version 22:44:23 -!- pikhq has joined. 22:45:19 -!- olsner has quit (Read error: 60 (Operation timed out)). 22:46:56 -!- ehirdiphone has quit ("Get Colloquy for iPhone! http://mobile.colloquy.info"). 22:47:11 -!- ehirdiphone has joined. 22:47:22 abc 22:47:59 def 22:53:41 -!- FireFly has quit ("Leaving"). 23:00:43 -!- olsner has joined. 23:05:10 -!- ehirdiphone has quit ("Get Colloquy for iPhone! http://mobile.colloquy.info"). 23:05:24 -!- ehirdiphone has joined. 23:05:46 I have been thinking about ehirdOS! 23:09:27 Lies. 23:10:37 -!- ais523 has quit (Remote closed the connection). 23:11:05 Gregor: wut. 23:11:12 LIES. 23:11:21 Gregor: wut. 23:12:09 PIES. 23:12:36 FLIES. 23:12:37 oklofok: put. 23:12:46 oerjan: fut. 23:12:56 *flut 23:13:18 * oerjan swats ehirdiphone for fluttering -----### 23:13:31 oerjan: swut. 23:14:01 hut. 23:14:11 oerjan: hut. 23:14:45 nut. 23:14:53 yay, i found an ehirdiphone quine 23:14:57 oklofok: talk about oklOS so I can bask in ehirdOS' superiority. ut. 23:15:02 oklofok: nut. 23:15:09 oerjan: yut. 23:15:20 oklOS reads your mind and is what you want 23:15:42 ok talk about the previous revision of oklOS :P 23:15:49 (ut) 23:15:56 ((oklut)) 23:16:19 no. you're a nut. 23:16:29 oklofok: nut. 23:16:36 nut. 23:16:45 oklofok: nut. 23:17:23 -!- MizardX has quit (Read error: 60 (Operation timed out)). 23:17:25 you = nut 23:17:35 oklofok: yut. 23:19:34 you's total nut