00:00:35 -!- bsmntbombdood_ has quit (Read error: 60 (Operation timed out)).
00:02:42 <coppro> I'll be honest, blocks >>> that shit
00:03:05 <coppro> and I'm not a huge fan of blocks
00:03:10 <pikhq> coppro: Yes, blocks have syntax.
00:03:37 <coppro> what is __LAMBDA__ anyways?
00:05:33 <coppro> what's the magic behind it?
00:09:28 <coppro> I do not see __LAMBDA__ anywhere; I only see it used in lambda.h
00:11:32 <ehird> coppro: __LAMBDA__ is defined as a function on that line.
00:11:36 <ehird> Why is this so hard for people to grasp?
00:11:55 <ehird> void* __LAMBDA__ (int x)
00:12:04 <coppro> __LAMBDA__ is reserved
00:13:36 <coppro> also, what if you don't want to take a closure in your lambda?
00:13:58 <coppro> also, does the closure actually close anything?
00:15:10 <ehird> it's a compiler extension, practically
00:15:14 <ehird> so he can use what he wants
00:15:16 <ehird> it only works on gcc
00:15:23 <ehird> thus it's non-portable code
00:15:30 <ehird> thus he can do whatever he wants as long as it compiles
00:15:39 <ehird> coppro: use my FN if you don't want to close
00:15:50 <ehird> it closes a single pointer
00:16:14 <coppro> the pointer to the closure itself
00:16:24 <ehird> That's just for fib, so it can call itself.
00:16:42 <ehird> 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 <coppro> but how else can you invoke fib?
00:17:01 <coppro> other than by call(fib, args)
00:17:07 <coppro> which calls fib with fib as the first argument
00:17:32 <coppro> just give me cactus stacks in C
00:18:29 <pikhq> ehird: http://sprunge.us/hFjH
00:18:32 <ehird> the closed variable is passed as an argument
00:18:37 <ehird> well, closed pointer, really
00:18:44 <ehird> pikhq: yep, C standards committee material
00:19:18 <pikhq> Ugly as all hell, but it is in fact lambda and closures.
00:19:45 <ehird> pikhq: Make a tail recursive fact.
00:19:46 <coppro> I'd disagree about that being C standards committee material
00:19:54 <coppro> for some evil and truly strange reason
00:20:31 <coppro> (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 <ehird> (All REBOL functions are fixed arity, so it's prefix notation without parens.)
00:21:01 <coppro> 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 <coppro> and type systems are orthagonal to both
00:21:16 <ehird> But that excludes variadic functions.
00:21:21 <ehird> coppro: *orthogonal
00:21:50 <ehird> 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 <ehird> 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 <ehird> So it's as free-form as C variadic functions, which is good enough.
00:25:55 <ehird> http://sprunge.us/beNe
00:26:23 <ehird> 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 <pikhq> http://sprunge.us/EVHC
00:26:42 <ehird> pikhq: Not tail recursive, you failure. :D
00:26:54 <ehird> coppro: Yes it fucking is! >:(
00:27:01 <pikhq> ehird: It would be tail recursive if I didn't need to use bloody pointers.
00:27:02 <coppro> and yeah, not tail recursive
00:27:09 <pikhq> ... Actually, I could cast to and from. XD
00:27:10 <ehird> And the cool thing is, since we just concatenate to sequence code, CRAZY 1 2 3 is actually either
00:27:32 <ehird> (crazy 1 2 3) → (crazy 1 2 3)
00:27:36 <coppro> doesn't that depend on what crazy returns?
00:27:43 <ehird> coppro: that isn't application
00:27:51 <ehird> I was using Scheme notation
00:28:02 <ehird> Anyway, so, add side effects to CRAZY, and we have the MOST AWESOMEST FUNCTION EVER.
00:28:21 <coppro> can't you do that in a currying language to some extent?
00:28:23 <ehird> Next, attempt to perform static analysis on this language.
00:28:51 <ehird> 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 <ehird> With CRAZY, we could do this:
00:28:57 <pikhq> http://sprunge.us/eJcM
00:29:03 <ehird> PRINT "Hello, world!"
00:29:10 <ehird> let's assume crazy takes 1 or 2 arguments
00:29:15 <ehird> PRINT "Hello, world!"
00:29:21 <ehird> crazy(1); print("Hello, world!")
00:29:25 <ehird> crazy(1, print("Hello, world!"))
00:29:37 <coppro> it's not tail recursive
00:29:49 <ehird> You can't rely on GCC to do TCO, dude.
00:29:58 <coppro> tail recursion requires return call(...)
00:30:11 <ehird> But that also relies on GCC's TCO.
00:30:14 <ehird> Which is verboten.
00:30:22 <ehird> Inline assembly, however, is not.
00:30:29 <ehird> JMP to that fucker!
00:31:26 <pikhq> Imma not tail recurse that.
00:31:36 <ehird> #define RECURSE(me) __asm__("jmp " # me)
00:32:06 <ehird> int fact(int n, int x) { if (n == 0) return x else { x *= n; RECURSE(fact); } }
00:32:36 <ehird> I wonder if that actually works.
00:35:28 <ehird> ↑ Factorial in my crazy REBOL-with-varargs!
00:35:36 <ehird> def is variadic; it keeps readin' and readin' arguments until it finds a code block.
00:35:54 <ehird> (Oh, didn't I mention? There's also NEXT-ARGUMENT-UNEVALUATED, which lets you write macro-esque things, except at runtime.)
00:36:15 <ehird> (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 <ehird> n * fact n - 1 works because there's no operator precedence. :D
00:38:57 <ehird> Oh, and if you want a fun exercise: Implement tail-call elimination for this language.
00:39:01 <ehird> (I believe this is impossible.)
00:41:34 <ehird> You could implement it by transforming F A B C D into F [A B C D], where [] is a list.
00:41:42 <ehird> Then F does NEXT-ARGUMENT, making it into F A [B C D].
00:41:53 <ehird> At the end, F just evaluates its list argument as a continuation.
00:42:06 <ehird> I think that would work for tail-calls, as the continuation would be empty at the end.
00:59:36 <pikhq> 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 <pikhq> (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 <pikhq> http://sprunge.us/cJAF
01:15:58 <ehird> Does not contain tail recursion; would not purchase again.
01:16:54 <coppro> also, I see no reason why pointers stop tail recursion
01:19:09 <ehird> Tail recursion is impossible in C without inline assembly.
01:19:14 <pikhq> 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:52 <pikhq> Requires link-time optimisation.
01:21:28 -!- yodbot has joined.
01:23:43 <ehird> Do you know what this channel is about?
01:23:54 <yodbot> I'm guessing I do.... do you?
01:24:02 <ehird> What do you think this channel is about?
01:24:49 <oerjan> at least he's not a markov bot :D
01:24:50 <ehird> Hint: Freenode is mainly for channels about programming.
01:24:50 -!- zzo38 has joined.
01:24:52 <ehird> Or open source projects.
01:25:01 <ehird> You would be unlikely to find an esotericism channel here.
01:25:22 <oerjan> not that you would be first to try, mind
01:25:45 <yodbot> well, they have linguistics, they have philosophy, etc., so clearly not just programming
01:26:00 <zzo38> 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 <ehird> I think the linguistics/philosophy/etc channels are accepted devians.
01:26:14 <ehird> Only because it'd spill into other channels otherwise.
01:26:26 <ehird> Anyway, this channel is about esoteric programming languages and, also, esotericism is bullshit.
01:26:34 <yodbot> perhaps you're overstating your point
01:26:41 <ehird> Sheesh, there's one born every five minutes... and they immediately come into here.
01:26:47 <yodbot> and maybe, just maybe, you're blowing hot air
01:26:47 <oerjan> ehird is the resident most militant atheist
01:26:48 <zzo38> 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 <ehird> oerjan: Hey, I'm not.
01:27:05 <ehird> But esotericism *is* bullshit.
01:27:08 <zzo38> 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 <ehird> ah, we do have an esotericism channel
01:28:23 <ehird> I WILL DEFEAT YOU :D
01:28:45 <ehird> 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:53 <ehird> I must clearly revert to the Nuclear Option, and _actually talk about esolangs_.
01:29:54 <pikhq> yodbot: If "C closures" have any meaning to you, then stick around. Otherwise, go elsewhere and enjoy your bullshit.
01:30:16 <ehird> oerjan: So hey, your Unlambda interpreter in INTERCAL.
01:30:20 <ehird> Does it have any restrictions?
01:30:30 <ehird> pikhq: Would the JMP tail recursion actually work with your closures?
01:30:35 <ehird> It's jmp *ptr, after all.
01:30:44 -!- augur has joined.
01:30:46 <Gregor> !bf_txtgen We never actually talk about esoteric languages anymore :P
01:30:53 <EgoBot> 549 +++++++++++++++[>++++++++>++++++>++>+++++++<<<<-]>>---.++++++++++++++.>++.>+++++.<<.<--.>.<----.>>.>-------------.++.<<<++.+.>>>--.<<+++++++..<++++.>>.<<-----.>>>.<<.-.>.>.+.<<++++.++++++.-.>.>+++.<<-.----.<.>----------.<--.>>>++++.<<--.>.>+++.<+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.>++.<<++++.<+++.>>.<.--.<--.>---------------------------------------------------------------------.>.>.<<<++++++.------------.++.+++.-------
01:30:54 <ehird> yodbot: You can't yawn at us for being on-topic.
01:30:58 <pikhq> ehird: Hrm. Actually, yeah, it would.
01:31:00 <ehird> augur: Talk about esolangs! (NOT linguistics)
01:31:06 <pikhq> If you can actually tail-recurse, that is.
01:31:11 <zzo38> Sometimes we do esolangs but not always
01:31:16 <ehird> pikhq: JMP thisfunction is tail recursion
01:31:21 -!- lament has quit.
01:31:21 <ehird> assuming you set the parameters right beforehand
01:31:58 <ehird> augur: Well, okay.
01:32:04 <pikhq> It'd get compiled as (operations to fetch function pointer from closed); jmp $the_ptr
01:32:05 <augur> i want an eso lang that is nothing but special forms
01:32:14 <augur> which i suppose is what BF is
01:32:16 <pikhq> So it might just be a tail call rather than a tail recursion.
01:32:23 <ehird> augur: Shortest musing ever!
01:32:32 <oerjan> ehird: restrictions? well there is a memory limit, i don't quite recall but somewhere <= 32 bits
01:32:43 <ehird> pikhq: Generic tail calls wouldn't work
01:32:51 <ehird> oerjan: 32 bits or less of memory? yuk yuk
01:32:55 <zzo38> 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 <ehird> pikhq: Because of the parameter locations
01:32:56 <pikhq> Of course, if you want to recurse, you can just call __LAMBDA__.
01:33:05 <ehird> myfirstparam=x;mysecondparam=y;
01:33:08 <ehird> as long as they were the same typs
01:33:13 <ehird> and that'd map to (x,y,
01:33:26 <oerjan> ehird: < 2^32 cells. sheesh.
01:33:54 <ehird> The beast has been crippled! It cannot talk.
01:33:55 <oerjan> except it's probably not exactly that, because of the weird addressing
01:33:59 <ehird> Great work, everyone.
01:34:10 <zzo38> Let's make ambiguous writing game!!
01:34:56 <ehird> ...which is ambiguous in itself.
01:35:05 <ehird> It's either "let us", or "that which belongs to Let".
01:35:20 <zzo38> It can be, in that way
01:36:01 <zzo38> But I mean very ambiguous writing, such as: Charities for poor people and monsters with names starting with "A"
01:36:32 <ehird> My brain has hung in its parenthesisation routine.
01:36:36 <ehird> You broke my brain. :(
01:36:42 <zzo38> 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 <zzo38> How can I break your brain if you can still write on here that it is broke?
01:37:41 <ehird> My brain is multitasking.
01:37:48 <ehird> The other threads will die out soon enough, and I will with them too.
01:39:14 <oerjan> zzo38: these monsters are flying purple people eaters, i assume
01:39:40 <zzo38> 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 <zzo38> 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 <oerjan> i think that's a *woosh* right there
01:42:02 <oerjan> dammit i was somehow thinking whoosh was incorrect, and correcting it
01:42:30 <zzo38> OK, if that's what you want
01:42:59 <oerjan> zzo38: anyway the point is my assumption is ambiguous too
01:43:17 <zzo38> Yes, that's OK too
01:43:43 <zzo38> 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 <zzo38> On another note: Finally I received a Washizu Mahjong Tiles
01:44:30 <oerjan> that would be assuming i wasn't too lazy, which is _rather_ far-fetched
01:44:58 <oerjan> also i never finished GEB
01:47:39 <ehird> I loved the ending dialogue of G.E.B.
01:47:42 <ehird> Worth reading for that alone.
01:48:41 <pikhq> ... Dear God I could break people's heads. I could write with continuation-passing style in C.
01:49:06 <pikhq> That would probably be very painful.
01:49:12 <pikhq> What with the "explicit closing" and all.
01:50:12 <oerjan> `addquote <pikhq> ... Dear God I could break people's heads. ...
01:50:16 <HackEgo> 110|<pikhq> ... Dear God I could break people's heads. ...
01:50:45 <ehird> pikhq: CPS in C is what Cheney on the M.T.A. does
01:51:05 <oerjan> the prosecution rests.
01:51:16 <ehird> http://home.pipeline.com/~hbaker1/CheneyMTA.html
01:51:23 <ehird> Only the single most awesome Scheme→C compilation mechanism.
01:51:29 <ehird> "Appel's method avoids making a large number of small trampoline bounces by occasionally jumping off the Empire State Building."
01:51:48 <ehird> 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 <ehird> also, function calls are fast
01:52:50 -!- Asztal has quit (Success).
01:53:48 -!- oerjan has quit ("Reboot").
01:54:04 <pikhq> Yes. That is totally awesome.
01:55:55 <ehird> http://home.pipeline.com/~hbaker1/cboyer13.c
01:56:02 <ehird> A hand-translated Scheme benchmark using that method.
01:56:11 <ehird> Choice quote: /* Closure types. (I don't trust compilers to optimize vector refs.) */
01:56:19 -!- oerjan has joined.
01:56:32 <ehird> Includes a closure type pretty much exactly like yours.
01:57:16 -!- snaggle has joined.
01:57:52 <pikhq> 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 <ehird> /* Define tag values. (I don't trust compilers to optimize enums.) */
02:00:25 <ehird> now *that's* just paranoia
02:01:15 <zzo38> Now I should make up the program to retrieve the quotes in HackEgo, so tha I can make a list
02:03:02 <zzo38> I can make it up the macro in IRC, using CRISC
02:05:25 <zzo38> 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 <ehird> Just parse the data file
02:05:31 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
02:05:40 <zzo38> Where is the data file
02:05:47 <zzo38> Is it at the URL given there
02:06:04 <ehird> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/393844a8543b/quotes/quote.db
02:06:07 <ehird> It's SQLite or something
02:06:29 <zzo38> 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 <zzo38> There, that was easy, just wget and then select * from quotes; and it work.
02:10:40 <zzo38> echo select * from quotes; | sqlite3 quote.db > quote.txt
02:11:37 <ehird> I was going to say "you're using Linux" now, but then I realised you had a ; outside of quotes.
02:11:47 <ehird> *"you're using Linux now?",
02:12:22 <zzo38> Yes it is the Windows command-line. Although I can still use bash, too, with MinGW
02:13:32 <Gregor> Windows command line. lulz
02:13:37 <zzo38> 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: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 <zzo38> The PDF format is all mixed up and has some bad ideas
03:17:09 <Gregor> zzo38 wins the obvious-statement-of-the-year award.
03:19:29 <zzo38> 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 <zzo38> Therefore, a better format should be made. There are also other things, too, that could be improved with such formats
03:22:26 <zzo38> Some of the good features of PDF are: Bookmark list, and internal hyperlinks.
03:33:32 <coppro> also see http://simulacrum.dorm.duke.edu/allyourgoogle.svg
03:36:04 -!- jpc has joined.
03:36:20 <pikhq> zzo38: Take Postscript. Add hyprelinks and bookmarks.
03:38:08 <zzo38> 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 <zzo38> DVI has many things missing such as colors and images and line drawings
03:39:17 <zzo38> While PDF has too many things added
03:39:28 <pikhq> Postscript can be made a binary format.
03:39:37 <pikhq> See: the Postscript subset of PDF.
03:42:16 <zzo38> 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 <zzo38> And there are too many formats for graphics and stuff in PDF, we need to select just a few of them
03:43:41 <zzo38> And there is one extra feature that might be good, is macros, which cannot call other macros themself, though.
03:43:49 <zzo38> And now it should be better
03:44:17 <zzo38> 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 <zzo38> 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 <dbc> 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:05:37 <AnMaster> <pikhq> 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 <AnMaster> pikhq or ehird: next thing to implement in C after lambda would be call/cc :D
10:28:30 -!- jpc has quit ("I will do freaking anything for a new router.").
10:39:28 -!- ais523 has joined.
10:39:48 <ais523> good morning #esoteric
10:48:07 -!- uoryfon has joined.
10:50:08 <ais523> hmm, so much coursework to do by tomorrow...
11:19:50 <ais523> wow, OOXML maintenance is adding the leap year bug back in to OOXML
11:20:42 <ais523> http://adaptux.com/standards/ooxml-wg4-leap-year-bug-unfix
11:25:24 <oklofok> i have to do nothing by tomorro
11:27:50 -!- oerjan has joined.
11:31:51 -!- uoryfon has quit (Read error: 110 (Connection timed out)).
11:53:09 <ais523> for Excel compatibility, presumably
11:53:14 <ais523> it's easier to fix ISO than to fix Excel
11:56:19 <fizzie> 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.
12:08:38 <oklofok> it is, i can't help looking at the trees, and constantly tripping (pun intended)
12:08:57 <oklofok> but seriously, they are so beautiful, have i mentioned this?
12:11:30 <ais523> it's pretty pretty over here
12:11:35 <ais523> fizzie: "freezing fog" in English
12:11:49 <ais523> the nearby canal's mostly frozen over
12:11:57 <ais523> and there were ducks and geese standing on it looking confused
12:12:10 <ais523> then a bit further down there was a break in the ice, and loads of ducks happily swimming around in it
12:13:56 <fizzie> 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 <fizzie> 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:32 <ais523> looks uncannily like fields here in the UK, too
12:15:51 <ais523> I think most european countries look much the same in the countryside
12:16:03 <ais523> although, I don't recognise that sort of tree
12:16:29 <fizzie> Here's the road: http://zem.fi/g2/d/9728-1/20100111_002.jpg
12:17:08 <fizzie> 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 <oklofok> god those trees are beautiful
12:18:33 <ais523> (writing chrome://browser/content/browser.xul in the address bar appears to start a recursive browser instance...)
12:18:45 <oklofok> well they are rather boring in the pic
12:18:45 <ais523> I think the snow falling is beautiful too
12:18:52 <ais523> I was staring out of the window, watching the snowflakes fall
12:19:29 <ais523> beh, the menu in the inside browser opens things in the outside browser
12:19:40 <oklofok> i do that too, but there's not much structure to rain / snowfall
12:20:00 <oklofok> i can't really do anything to the beauty
12:20:17 <oklofok> unlike trees, i usually traverse the graph formed by the branches
12:21:32 <fizzie> In addition to the shoes there was a strange thing made out of metal wire in one of the lamp posts.
12:24:54 <fizzie> 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 <fizzie> 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 <fizzie> Perhaps there's a time-warp backwards of one hour after the first three items.
12:28:31 <oerjan> 9:45: Time travel laboratory
12:29:12 <ais523> fizzie: switch to DST in the middle of them?
12:29:52 <fizzie> There shouldn't be. At least usually it happens at 03am here, and not in the middle of winter anyway.
12:30:50 <ais523> where's HackEgo's qdb?
12:31:44 -!- zeotrope has joined.
12:32:33 <fizzie> <fizzie> 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 <ais523> mrh, it shouldn't be too hard to parse
12:32:58 <ais523> also, why did you write that as a self-quote?
12:33:09 <fizzie> Because you asked this earlier, in 2009-11-16.
12:33:15 <fizzie> I just copy-pasted my answer from there.
12:33:24 <ais523> I don't remember back that long
12:33:33 <fizzie> <ais523> Gregor: is HackEgo's qdb online anywhere/
12:34:52 <fizzie> You had already gone elsewhere before my answer, also.
12:34:53 <oerjan> ais523: zzo38 did it yesterday, i believe
12:35:15 -!- Asztal has joined.
12:35:36 <oerjan> extracted the quote database with sqlite (?)
12:36:32 <fizzie> 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 <ais523> sqlite> .restore quote.db sqlite> SELECT * FROM quotes;
12:37:25 <fizzie> 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 <oklofok> you and your fancy computer skills
12:41:28 <ais523> those quotes are mostly rubbish
12:41:34 <ais523> although some of the fungot ones are good
12:41:34 <fungot> ais523:... in bed." _ _ " i agree,
12:41:40 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc* jargon lovecraft nethack pa speeches ss wp youtube
12:42:09 <fizzie> fungot: I really have to doubt your prowess in bed.
12:42:09 <fungot> fizzie: that has the static linker had previously dealt with the models of what distinguishes a function.
12:51:56 <ais523> hmm, I don't /think/ this is meant to be an esolang, but: http://www.basis.uklinux.net/ursala/sudoku.fun
12:54:57 <ais523> it shows several esolang characteristics, such has having an extension that's completely unrelated to the name of the language
12:55:18 <ais523> and apparently random-looking strings of letters (which I /think/ are combinators)
12:55:46 <ais523> $ fun --main=" ̃&nSiiDPSLrlXS" --decompile
12:56:20 <ais523> main = compose(map field((0,&),(&,0)),compose(reduce(cat,0),map compose(distribute,compose(field(&,&),map field(&,0)))))
12:57:22 <ais523> also, it's whitespace-sensitive, how fun
12:59:13 <ais523> the syntax for variable names is to put them in double quotes
13:01:57 <oklofok> uni starts tomorrow! :)))))))))))))
13:02:40 <ais523> "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 <oklofok> the name crt does make sense
13:03:31 <ais523> yes, but names are normally more descriptive
13:03:41 <ais523> also, "crt" is already taken for "C runtime" on many systems
13:03:49 <ais523> oklofok: presumably, to someone
13:04:18 <ais523> this thing has an insanely mathematical standard library
13:04:36 <oklofok> topology and algebra tomorrow! join my happiness!
13:04:50 <zeotrope> does it share anything with APL?
13:05:07 <oklofok> beautiful trees and math, could the year have a better beginning
13:05:22 <ais523> "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 <ais523> zeotrope: the FAQ disclaims any connection
13:05:39 <ais523> although there are obvious similarities, or it wouldn't have to
13:06:12 <ais523> N x N -> R^m x R^n, etc
13:06:18 <zeotrope> I'm tempted to learn it, still haven't seen a "killer feature"
13:06:54 <ais523> more incomprehensible than Perl?
13:07:01 <ais523> that's a great + in this channel
13:07:03 <oklofok> what jacobian function are we talking about?
13:07:32 <ais523> oklofok: the one that creates a jacobian matrix
13:07:47 <ais523> although it's actually higher-order, it maps a function to a function returning a matrix
13:08:27 <ais523> also, possibly due to Greenspun's Tenth Law, they just embedded Lisp with a slightly different syntax pre-emptively
13:09:11 <ais523> "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 <ais523> I love the way a language can completely forget about signed integers, very eso
13:09:56 <zeotrope> "Ursala (UniveRSal Applicative LAnguage) is a functional programming language suitable for scientific and numerical computation"
13:10:32 <ais523> they were added, last month
13:10:49 <ais523> before then, presumably it was all floats and unsigned
13:10:50 <oklofok> okay the type does make perfect sense, i interpreted the ->'s as x's because ->'s usually mean "failed character"
13:11:04 <oklofok> i mean i interpreted a few of them that way
13:12:26 <oklofok> as if you'd ever need integers in science
13:12:56 <ais523> in quantum physics, for instance
13:13:26 <oklofok> you can just put them in doubles
13:14:43 <oklofok> ...so wait, it computes derivatives?
13:14:53 <oklofok> the same way as mathematica or the same way as j
13:15:09 <ais523> probably the same way as j
13:15:38 <ais523> "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 <oklofok> well to be fair i'm not sure there's a general purpose derive in j, zeotrope can probably tell me.
13:15:50 <ais523> it's a bit reminicent of J, actually, but with a different philosophy
13:16:16 <oklofok> what's the philosophy, in 7 words or less
13:16:27 <ais523> I'm not entirely sure yet
13:16:49 <zeotrope> well in J theres 2 derivative operators
13:17:16 <zeotrope> yes but also general functions
13:17:37 <zeotrope> is the first derivative of x^2
13:18:03 <oklofok> can you supply a derivative?
13:18:08 <oklofok> like you can supply obverse
13:18:31 <zeotrope> I dont understand what you mean?
13:18:47 <oklofok> when you make a function, can you tell it what its derivative is
13:18:50 <oklofok> you can do this for inverses
13:19:09 <zeotrope> I've actually been wanting such a feature
13:19:28 <oklofok> 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 <zeotrope> how do you add inverses to functions?
13:20:21 <oklofok> i don't remember, i just remember you can do it
13:20:37 <oklofok> if you have some function, that, when inversed, drops info
13:20:43 <zeotrope> hmm I've never come across it, it would be a good feature
13:20:53 <oklofok> then sometimes when you inverse it, j will add the info for you, in case you wanna invert back
13:21:23 <oklofok> 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 <zeotrope> well I meant something more along the lines of manually specifying an inverse
13:21:30 <oklofok> this relies on being able to add inverse information
13:21:45 <oklofok> zeotrope: i mean if you make it show the func, you'll see how the obverse was stored
13:22:04 <oklofok> ("obverse" is the term i've seen used for it in j, in case that sounds weird)
13:22:40 <oklofok> so something like the inverse of prepending something is dropping something, but the inverse remembers what was dropped
13:22:41 <zeotrope> actually obverse is the correct term
13:23:15 <zeotrope> so that if you reinvert then it will go back to its original state?
13:23:21 <oklofok> try that if you know how to, i don't even remember how to add two numbers in j.
13:24:15 <zeotrope> I would like it to be able to manually add an inverse
13:24:31 <oklofok> and you can if you try that, and look at the function.
13:24:38 <zeotrope> currently only bijective functions work
13:24:42 <oklofok> i just don't remember the character requence
13:26:19 <zeotrope> well I gotta catch up on my maths but only bijective functions may be inversed
13:26:50 <oklofok> 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:27:32 <oklofok> we have a function that adds some preset element in the beginning of the list
13:27:39 <ais523> 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 <oklofok> the "obvious" inverse is to remove the first element
13:27:44 <ais523> what an utterly weird language
13:28:17 <zeotrope> but how would you add such info
13:28:17 <oklofok> now, "prepend x" is in fact a bijection from L to x:L, where L is the set of lists
13:28:23 <oklofok> but there's no such type in j
13:28:49 <oklofok> 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:29:16 <zeotrope> no I mean in the implementation of the language
13:29:33 <oklofok> you add the info for basic operations, and you add info for combinations of operations
13:29:33 <zeotrope> is this going to be implicit when defining all new functions?
13:30:36 <oklofok> yes, i'm explaining what j does
13:30:41 <zeotrope> but extending it to all the operators is tough
13:30:56 <oklofok> yes, computers might not share our definition of obvious in general.
13:31:07 <oklofok> and obviously inverting is undecidable in general
13:31:20 <zeotrope> yes thats what I was gonna say..
13:31:31 <zeotrope> does any other language have inversion
13:31:44 <oklofok> well there are reversible languages
13:31:50 <zeotrope> can't believe so many good ideas are locked up in this language
13:32:46 <oklofok> j's high-level functions are pretty awesome
13:33:06 <oklofok> i actually have a book about j, but i'll probably read it in the summer
13:33:12 <ais523> I love the way constructor/deconstructor precedence works in Ursula
13:34:02 <ais523> ~&httC = h (C (t, t)) in a more normal notation
13:34:17 <ais523> ~&httPC = C (h, t (t))
13:34:36 <ais523> basically, the constructors/deconstructors are either unary prefix, or binary postfix
13:34:47 <ais523> and P groups the two proceeding *constructors into one
13:35:10 <ais523> also, 2 = PP, 3 = PPP, etc
13:35:52 <ais523> also, it infers arguments to binary constructors if none were given
13:36:07 -!- BeholdMyGlory has joined.
13:36:21 <zeotrope> but I'll be sure to read the manual
13:36:30 <zeotrope> looks like it has some pretty "interesting" ideas :)
13:36:51 <ais523> it also has the I constructor, which isn't really defined at all
13:37:10 <ais523> as in, the manual gives four expressions containing I and defining what they do
13:37:16 <ais523> and then stating, any other use is undefined behaviour
13:38:09 <oklofok> zeotrope: you don't happen to know how to show a function's "source code"?
13:39:04 <zeotrope> or just type the function name in the propmt without arguments
13:39:49 <zeotrope> woops, its 5!:5<'function name'
13:40:37 <oklofok> okay i don't know how to get it to actually evaluate the ^:_1 and then display
13:41:05 <oklofok> 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 <zeotrope> there is I was trying to remember it too
13:42:45 <zeotrope> instead of ^:_1 you can use the builtin verb "inv"
13:47:24 <ais523> "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 <ais523> sorry, seems everything's postfix
13:51:24 <ais523> as in, ~&rl is "left of right", not "right of left"
13:52:51 -!- bsmntbombdood_ has joined.
13:53:36 <ais523> 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 <zeotrope> oklofok: figured out how to display inverses?
14:02:34 <oklofok> no, me and seven other finnish guys went to screw a lightbulb.
14:03:52 * uorygl ponders the best preposition to use.
14:06:28 <fizzie> "around" is not too shabby in this case.
14:06:37 <fizzie> Oklofok and seven other guys, screwing around a lightbulb.
14:08:58 <uorygl> Seven other Finnish guys. That's important.
14:13:29 <zeotrope> any recommendations on books about asm?
14:21:46 <ais523> I learnt asm by compiling C to asm and seeing what I got
14:22:05 <ais523> (well, that's how I learnt x86 asm, I first learnt 6502 asm from a book called "Beyond BASIC")
14:23:10 <ais523> it was kind-of fun, the last example in that book was a 16-bit divide
14:23:25 <ais523> (ah, the joys of an 8-bit processor without multiplication or division)
14:24:56 <zeotrope> interesting, I'll give the C idea a try
14:25:32 <fizzie> 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 <fizzie> 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 <ais523> fizzie: yes, my BBC Micro was sold for spare parts ages ago, because it was hardly working
14:27:55 <ais523> in particular, the B and Y keys on the keyboard were broken
14:28:45 <Sgeo> Sam Hughes makes a whitelisting HTML parser, which doesn't allow <b> and <i>, but allows <strong> and <em>. Hilarity Ensues: http://qntm.org/?parser
14:28:52 <fizzie> 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 <Sgeo> (Fine Structure spoiler in one of the comments)
14:29:13 <Sgeo> Specifically, Eskivole's comment and Sam's followup comment
14:31:56 <ais523> 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 <ais523> apart from DOS for some reason
14:32:36 -!- FireFly has joined.
14:37:50 <oklofok> why isn't oerjan always here
14:38:17 <oklofok> as if he has anything better to do than answer my questions
14:44:29 <ais523> 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:50 * Sgeo is a redditor >.>
14:45:46 <zeotrope> isn't that the perl latin dialect..
14:47:44 <zeotrope> septimum noni tertii primi unimatrixorum
14:48:00 <zeotrope> equivalent to $unimatrix[1][3][9][7]; in perl
14:48:00 <ais523> http://esolangs.org/wiki/Perligata
14:49:05 <zeotrope> is non positional syntax a good idea?
14:49:54 <ais523> it's different and unusual
14:50:00 <ais523> I'm not entirely sure it's a good idea, though
14:50:22 <ais523> it /does/ fit in with the philosophy of Perl, in a way (rearrange your commands to have the important bits first)
14:50:27 <ais523> but not really with programming in general
14:50:36 <ais523> ofc, as it's Latin, you'd put the important things last instead
14:50:40 <ais523> as that's what you do in Latin
14:51:11 <zeotrope> 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 <zeotrope> too lazy to read the paper..meh
15:00:02 -!- Slereah_ has joined.
15:00:45 <Sgeo> Oh, http://www.reddit.com/r/programming/comments/anp8l/anic_faster_than_c_safer_than_java_simpler_than_sh/c0ikw5t
15:03:29 <ais523> Sgeo: the lang in question hasn't actually been implemented yet
15:06:20 <ais523> may as well say #esoteric on irc.freenode.net
15:06:29 <ais523> so that people know where to find the channel
15:09:11 <zeotrope> http://www.reddit.com/r/programming/comments/anp8l/anic_faster_than_c_safer_than_java_simpler_than_sh/c0ikw5t
15:09:32 <pikhq> 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 <uorygl> call/cc with escaping continuations means the ability to say "oops".
15:11:29 <ais523> Perligata's implemented, anic isn't
15:13:52 <ais523> the individual comment's still showing the problem, its parent isn't
15:20:31 <uorygl> ANI looks like kind of a vaguely-defined language.
15:24:52 <pikhq> It's a language that's not been implemented or specified.
15:25:02 <pikhq> Really, it amounts to an idea.
15:25:08 <pikhq> Interesting, sure, but an idea.
15:32:16 -!- lieuwe has joined.
15:33:52 <uorygl> Hmm. From the ANI tutorial:
15:33:54 <uorygl> "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 <uorygl> If I agreed with that statement, I would conclude that C really, really, really sucks.
15:35:09 -!- augur has quit (Read error: 110 (Connection timed out)).
15:35:10 <coppro> welcome to the world of low- vs high-level programming
15:36:12 <oklofok> 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 <uorygl> Replace the number of "really"s with the next Fibonacci number until you disagree, then.
15:37:29 <ehirdiphone> ais523: We have discussed and laughed at ursala before
15:37:50 <pikhq> ehirdiphone: Yeah... You could hack it together with longjmp, even without lambda.
15:38:03 <oklofok> here comes ehirdiphone, and disagrees with the whole log
15:38:05 <ehirdiphone> I literally lol'd at it every second quote yesterday
15:38:46 <uorygl> ehirdiphone: did you laugh at the even ones or the odd ones?
15:39:03 <ais523> why would I want to use a multithreaded real-time clock and infix calculator anyway?
15:39:11 <ehirdiphone> uorygl: On average I laughed at every second quote.
15:39:27 <ais523> (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 <ehirdiphone> ais523: I love that example, it so perfectly reflects the language design
15:39:54 <ais523> ehirdiphone: anyway, Ursala is actually a really interesting lang I think
15:39:58 <ehirdiphone> "We couldn't think of an appropriate real problem!"
15:40:16 <ais523> that sort of multithreading is trivial in INTERCAL
15:40:24 <ais523> (1) PLEASE NOTE THIS IS THE LINE THAT CAUSES THE MULTITHREADING
15:41:38 <ais523> ehirdiphone: heh, you even left out the implied lr at the start
15:41:54 * Sgeo should probably eat
15:42:00 <ais523> ehirdiphone: remember, I'm trying to learn Ursala
15:42:01 <oklofok> wow, i can actually attend all lectures except complex analysis
15:42:19 <ais523> I think most strings of random letters are syntactically correct (at least if preceded by &)
15:42:25 <oklofok> i don't think i've ever been able to attend more than like half of my courses
15:42:33 <ais523> because the grammar implies arguments into functions if you don't give them
15:42:48 <uorygl> oklofok: what's been keeping you?
15:43:11 <oklofok> but this time they are perfectly scattered around the week
15:43:31 <oklofok> 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 <ais523> hmm, I think Underlambda compiles into Ursala pretty neatly
15:43:41 <oklofok> so they use the same 2-hour slots
15:44:35 * oklofok mutters something about pennies, ais523 and underlambda/intercal
15:44:53 <uorygl> At your school, it's normal for classes to overlap?
15:44:57 <ais523> let's see... ^ is ~&htH, that was easy
15:45:04 <ais523> incidentally, H is an abstraction-inversion in Ursala
15:46:17 -!- augur has joined.
15:46:35 <ais523> * is ~&hthOttRC, or possibly ~&hthPttRC
15:46:43 <augur> uorygl: since when im i your nemesis? :|
15:46:45 <ais523> not entirely sure which way round the arguments would be, I'm confused thinking about it
15:46:56 <oklofok> there's some coordination for stuff people usually take at the same time
15:47:06 <ais523> <Ursala manual> A formal semantics for this operation is best left to compiler developers.
15:47:39 <uorygl> augur: aww, I like having nemeses.
15:48:28 <ais523> that's composing h and th themselves, not their values
15:48:35 <ais523> ehirdiphone: it has quoting issues
15:49:27 -!- zeotrope_ has joined.
15:49:54 <oklofok> i sleep like a baby, but i cry like a MAN
15:49:59 * uorygl watches the tears escalate.
15:50:19 -!- kar8nga has joined.
15:50:37 <lieuwe> sh*t, having some trouble implementing underload...
15:50:52 <ehirdiphone> 15:48 here in TOTALLY UNADJUSTED TIMEZONE LAND
15:51:31 <ehirdiphone> Doing both ^ and S giving you trouble, right?
15:51:41 -!- augur has quit (Read error: 60 (Operation timed out)).
15:51:43 <lieuwe> ehirdiphone: nope, () giving me trouble
15:52:02 <ais523> ehirdiphone: it could be the same problem manifesting in a different way
15:52:09 <lieuwe> ehirdiphone: as that pushes stuff into the program, and i need to translate to python...
15:52:29 -!- Pthing has joined.
15:52:38 <pikhq> 09:51 here in CENTRAL STANDARD TIME. AMERICA!
15:52:40 <ehirdiphone> You must store the code along with the python
15:52:43 <ais523> 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:53:06 <ais523> ehirdiphone: I mean, to do a compiler
15:53:10 -!- Pthingg has quit (Read error: 104 (Connection reset by peer)).
15:53:11 <ais523> an interp would work rather differently
15:53:17 <lieuwe> 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 <ehirdiphone> Sorry what was said after the last thing I said
15:53:57 <ais523> [15:52] <ais523> ehirdiphone: I mean, to do a compiler
15:54:00 <ais523> [15:52] <-- Pthingg has left this server (Read error: 104 (Connection reset by peer)).
15:54:00 <ais523> [15:52] <ais523> an interp would work rather differently
15:54:01 <ais523> [15:52] <lieuwe> 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 <lieuwe> 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 <ais523> we should get one of the bots to do that
15:54:49 <ais523> the point is, you can compile the code segments inside the () in advance
15:55:07 <ais523> then operations like a become repr, ^ becomes eval, * becomes string concatenation
15:55:13 <lieuwe> ais523: and thats where my troubles start... my lexer wont do that...
15:55:22 <ais523> lieuwe: ah, you probably need to improve the lexer then
15:55:36 <ais523> ( and ) can't be implemented as separate commands
15:56:01 <ais523> ehirdiphone: I bet lieuwe's BF interp compiles [ to the equivalent of while(*p) { and ] to the equivalent of }
15:56:02 <lieuwe> ehirdiphone: not really, it's translating to python, but translating to machine code should be possible
15:56:20 <lieuwe> ehirdiphone: actually, it doesnt do that
15:56:27 <ais523> lieuwe: could you pastebin what you've done so far?
15:56:58 <ehirdiphone> ais523: How powerful is ursalas type system?
15:57:17 <ais523> ehirdiphone: depends on what you mean by "powerful", I think
15:57:24 <ais523> you know how BCPL's typing works?
15:57:41 <ais523> it doesn't do type checking
15:57:51 <ais523> basically, instead of storing bitstrings, everything's based on lists of lists
15:57:58 <ais523> like ((),()) which is the representation for true
15:58:10 <ais523> and arguments are just assumed to be of the right types, I think
15:58:29 <ais523> at least, the equality comparison checks to see if both sides have the same representation, without looking at types
15:58:40 <ais523> it tries to infer types /from/ the representation, for output to the screen
15:58:53 <ais523> but there's a --cast option to tell it what the type actually is, for more complex types of outputs
15:59:02 <ais523> ehirdiphone: to me, it sounds very eso
15:59:03 <lieuwe> ais523: http://pastebin.com/d751dd8dc is my code, it's 3 files
15:59:11 <ais523> it's not going to be the next Haskell or anything like that
15:59:19 <ais523> but it makes quite a good esolang
16:00:00 <ehirdiphone> lieuwe: You don't handle outputtibg invalid commands too
16:00:36 <ais523> it can be compiled, but an interp's easier
16:00:58 <ais523> (Underlambda's designed to be much easier to compile; compiling it and interpreting it are similarly difficult)
16:01:09 <lieuwe> 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:48 <ehirdiphone> Why are you coding these if not for the challenge?
16:02:23 <ais523> <hinoe> 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 <ais523> now, /that's/ an impressive Underload interp
16:02:39 <ehirdiphone> ais523: We concluded http://esolangs.org/wiki/Qq was sub tc, right?
16:03:00 <ais523> ehirdiphone: I don't remember concluding it either way
16:03:13 <ehirdiphone> ais523: fuck me, it even does error checking. I am not worthy
16:03:29 -!- augur has joined.
16:03:57 <ehirdiphone> ais523: You sure? I swear we decided it wasn't tc
16:04:30 <lieuwe> ehirdiphone: yup, it's *too* challenging, if you'd like a challenge go ahead and implement it...
16:04:56 <Sgeo> 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 <Sgeo> http://www.webmd.com/sleep-disorders/tc/melatonin-overview
16:05:35 <ais523> ehirdiphone: seems to segfault on the Fibonacci example
16:05:39 <ais523> I'm not entirely sure why
16:06:02 -!- soupdragon has joined.
16:06:20 <Sgeo> Also, uorygl, stop trusting the LessWrong.com posters 100%, kthx
16:06:24 -!- MigoMipo has joined.
16:06:58 <ais523> why isn't bsmnt_bot here?
16:06:58 <ehirdiphone> lieuwe: I wrote an Underload->C compiler with ais523, that's enough Underload for one lifetime imo
16:07:05 <ais523> I could have fun trying to do a Python oneliner that does underload
16:07:25 <ehirdiphone> Sgeo: If someone says they're a rationalist, clearly they're always right!
16:07:36 <lieuwe> ehirdiphone: :-p but i assume that you had to write your own lexer/parser in c too?
16:08:11 <ehirdiphone> To a linked list of C functions and strings
16:08:32 -!- zeotrope has quit (Read error: 110 (Connection timed out)).
16:10:12 <ehirdiphone> I just switched on characters and recursed on (
16:10:38 <lieuwe> 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:41 <soupdragon> 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:12:59 <ais523> just & in sed, though, I think
16:13:10 <augur> soupdragon: oh how sad it is that shavian fails then D:
16:13:31 <augur> well for one, its got too few symbols!
16:13:38 <augur> for two, it only works for particular dialects of english
16:14:47 <ais523> but I don't know for certain
16:15:14 <Deewiant> Question marks are quite asymmetric
16:15:35 <ais523> #! /bin/bash \ q=`realpath "$0"` \ cd /home/ais523/research/bulky/rakudo/rakudo \ exec perl6 "$q" \ = if 0;
16:15:39 <augur> nevermind that its incorrectly called a "phonetic" alphabet
16:15:39 <ais523> where \ represents newline
16:15:44 <augur> when its really a phonological alphabet
16:15:56 <ais523> 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 <ais523> I love the q=`realpath $0` bit
16:16:54 <augur> the difference being that phonetics is about articulation, acoustics, etc. while phonology is about the language's sound system
16:17:01 <soupdragon> what's a phoenetic alphabet or is that a contradiction in terms?
16:17:09 <augur> english has only one t phoneme, but it has like half a dozen or more t phones
16:17:14 <ais523> soupdragon: an alphabet of phonemes, rather than letters
16:17:44 <augur> a phonetic alphabet is an alphabet of phones
16:17:54 <augur> a phonemic/phonological alphabet is an alphabet of phonemes
16:18:26 <ais523> Deewiant: I was going to make that joke, but you did it better
16:21:03 <ais523> which works fine apart from precedence issues and return value
16:22:40 <ehirdiphone> BEGIN{say"char*p=t,t[30000];int main(){"}s/[+-]/*p$&$&;/g;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:51 <ais523> you need a "use 5.10;" in there to get say
16:24:09 <ais523> (it's shorter than "use feature '5.10'")
16:25:29 <ais523> they actually thought of that for oneliners, and gave an abbreviation
16:25:41 <ais523> -E is like -e except it implies the newest version of use feature
16:25:58 <ehirdiphone> I prefer adding the shebang line to a file
16:26:15 <ais523> "behaves just like -e, except that it implicitly enables all optional features (in the main compilation unit). See feature."
16:26:20 <ehirdiphone> Anyway, prolly the smallest Perl bf to c compiler
16:26:59 <ais523> ehirdiphone: as a file-scope static, you don't need to explicitly zero
16:27:01 <ais523> it happens automatically
16:27:07 <ais523> it's autos that need explicit zeroing
16:28:28 <ehirdiphone> I deserve some sort of an award for writing that on an iPhone
16:31:07 <Sgeo> Puling something like my yield stuff in C#: Good idea or bad idea?
16:31:30 <ais523> can't C# do that already?
16:31:35 <ais523> I'd be surprised if it couldn't
16:32:03 <Sgeo> ais523, it has yield functionality similar to Python, but the programmer I'm working with is somewhat opposed >.>
16:32:17 <Sgeo> Then again, he was also opposed to the scheduler, which was a literal necessity
16:32:36 <Sgeo> (Although I did implement the scheduler slightly incorrectly, which caused a nasty bug, so)
16:33:14 <Sgeo> (Nasty in that it was tough finding it, not that it did something so terrible)
16:34:05 <Sgeo> Never assume that a TimeSpan's .Seconds == 0 means that the TimeSpan is for a 0 length of time >.>
16:37:37 <Sgeo> After I implement that, we'll be roughly where we were before I was fired as Sole Developer!
16:38:14 <Sgeo> (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 <Sgeo> And has a system for user data in place
16:38:57 <Sgeo> And other stuff that wasn't even on my radar before I was fired
16:39:05 <Sgeo> 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 <ehirdiphone> http://www.reddit.com/r/programming/comments/ao1ev/happy_birthday_donald_knuth/c0iko29
16:57:29 <ehirdiphone> Sgeo: All evidence points to the programmer you're working with being a complete idiot.
16:58:59 -!- zeotrope_ has changed nick to zeotrope.
17:00:05 * Sgeo decides to try sugar in his coffee
17:06:40 -!- lieuwe has quit ("Page closed").
17:31:02 -!- ehirdiphone has quit (Read error: 54 (Connection reset by peer)).
17:31:06 -!- ehirdiphone has joined.
18:40:54 <AnMaster> ehirdiphone, why back on your phone?
18:41:22 <soupdragon> we have a wonderful selection of church-turing cheeses.
18:46:52 <ehirdiphone> Interactive execution that syntax highlights as it goes? Why not.
18:47:50 <ehirdiphone> Cursor on fingerprint instruction shows fingerprint, stack effect and description? Yes!
18:48:29 <ehirdiphone> also, typing a key moves the cursor in the current editing direction, not rightwards
18:49:21 <ehirdiphone> Breakpoint by pressing a key while the cursor is on the breakpoint spot? Yep.
18:49:25 <AnMaster> ehirdiphone, it would (like all befunge editing modes that are slightly useful) be a mix between a "classical" editor and an interpreter
18:49:48 <ehirdiphone> It'd hook into CCBI or cfunge or whatever, of course
18:51:32 <AnMaster> 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:52:52 <AnMaster> ehirdiphone, it doesn't look like "SPARTA" then
18:53:22 <ehirdiphone> AnMaster: I was deliberately avoiding that
18:53:49 <AnMaster> ehirdiphone, it was the first thing I came to think of anyway on that line
18:54:08 <AnMaster> ehirdiphone, I haven't even seen the movie in question
18:55:15 <AnMaster> iphone spell correction failure?
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 <oerjan> <oklofok> 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 <oklofok> 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 <oerjan> that would be a rather long-term plan, i'm afraid
21:23:22 <oklofok> just go out with like a lasso, and kidnap someone
21:23:44 <oerjan> to get ahold of someone who would do that. not to mention i would probably then spend even less time on the computer.
21:24:43 <oklofok> 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:35:59 -!- ehirdiphone has quit (Read error: 54 (Connection reset by peer)).
21:36:35 -!- ehirdiphone has joined.
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:11:31 <ais523> <Anonymous Coward> One of the errors said: & did not start a character reference. (& probably should have been escaped as &amp;.)
22:11:45 <ais523> this seems to be some sort of recursive version of Muphry's Law
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: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:10:37 -!- ais523 has quit (Remote closed the connection).
23:13:18 * oerjan swats ehirdiphone for fluttering -----###
23:14:53 <oerjan> yay, i found an ehirdiphone quine
23:14:57 <ehirdiphone> oklofok: talk about oklOS so I can bask in ehirdOS' superiority. ut.
23:15:20 <oklofok> oklOS reads your mind and is what you want
23:15:42 <ehirdiphone> ok talk about the previous revision of oklOS :P
23:17:23 -!- MizardX has quit (Read error: 60 (Operation timed out)).