←2010-11-20 2010-11-21 2010-11-22→ ↑2010 ↑all
00:00:21 <zzo38> I think that the IF command is not needed; the ABORT LOOP command is also not needed except mu-loops.
00:00:31 <zzo38> Nor is built-in addition or multiplication needed.
00:00:56 -!- zzo38 has quit (Remote host closed the connection).
00:02:41 <Phantom_Hoover> GEB is a book I am Not Reading.
00:04:24 <elliott> Phantom_Hoover: It's good, just don't trust a word of it.
00:11:38 -!- FlyingTortilla has joined.
00:12:23 <elliott> car_ () ((((true, b), (true, c), (false, false)), ** ERROR: "cdr called on nil")) ;
00:12:26 <elliott> this is not going well
00:16:18 <Phantom_Hoover> elliott, what are you up to?
00:16:50 <elliott> Phantom_Hoover: programming in c preprocessor
00:17:25 -!- FlyingTortilla has quit (Quit: ChatZilla 0.9.86 [Firefox 3.6.12/20101026200743]).
00:17:44 -!- FlyingTortilla has joined.
00:18:09 <Phantom_Hoover> elliott, you are completely insane.
00:18:31 -!- FlyingTortilla has quit (Client Quit).
00:18:33 <Phantom_Hoover> You're a danger to yourself and others.
00:20:11 <elliott> Phantom_Hoover: Yes.
00:41:00 * Phantom_Hoover → sleep
00:41:04 -!- Phantom_Hoover has quit (Remote host closed the connection).
00:59:00 -!- FireFly has quit (Quit: swatted to death).
01:10:32 <elliott> gah, cpp programming is so impossible but i love it
01:16:40 <olsner> pp as in preprocessor or ++?
01:21:26 * Sgeo guesses from context the former
01:21:34 <Sgeo> Also, can't imagine elliott playing with C++ for fun
01:22:01 <elliott> olsner: preprocessor
01:22:14 <elliott> olsner: i've seen a functional language implemented in cpp so I KNOW it's possible to do this shit
01:22:17 -!- Decarabia has quit (Read error: Connection reset by peer).
01:22:22 <elliott> (also a recursive fibonacci with BIGNUMS (yes, bignums) in the preprocessor)
01:22:25 <elliott> i just have to figure out how
01:22:33 <olsner> elliott: cool, but it's definitely not TC, is it?
01:23:29 <elliott> olsner: it ... might be if you ignore the recursion limit
01:23:47 <elliott> olsner: i mean, it has a recursive bignum fibonacci implementation. it doesn't even have *arithmetic* built in.
01:23:52 <elliott> olsner: so... it's an indicator.
01:23:59 <olsner> I was under the impression that cpp's evaluation order excluded arbitrary recursion regardless of limits
01:24:15 <elliott> olsner: it does, but there are "workarounds"
01:24:21 <elliott> basically you can get the preprocessor confused, in ways i forget how
01:24:43 <elliott> olsner: see http://groups.google.com/group/comp.lang.c/msg/082ffefaaed3b450 for the recursive fibonacci bignum
01:24:57 <Sgeo> I should go get pizza tonight
01:25:02 <Sgeo> And then turn into a pizza
01:25:23 <Sgeo> Also, I'm still pleasantly surprised that Windows 7 has a 16-bit color option
01:25:37 <elliott> olsner: I tried to look at the source of Chaos and Order (same repository; Order is a call-by-value functional language with lambdas in cpp) but they're so impossible to read.
01:26:51 <Sgeo> Note, BTW, that I'm not suggesting that computing Fibonacci numbers with
01:26:51 <Sgeo> the preprocessor is advisable.
01:26:58 <Sgeo> (that should have been in quotes)
01:28:36 <olsner> it would have been so much better if he did suggest that though
01:30:11 <Sgeo> Dammit qntm.or
01:30:12 <Sgeo> org
01:30:40 <olsner> damn, I should learn how to do this kind of PP abuse
01:34:41 <olsner> ehm, wtf, sourceforge.net puts "Download <...> software for free" at the end of the title
01:35:18 <elliott> olsner: just use the cvs repository
01:35:21 <elliott> for chaos-pp/order-pp
01:35:35 <elliott> olsner: damn though, this shit is hard
01:35:43 <olsner> well, that requires *finding* the cvs repository
01:35:48 <elliott> olsner: click Develop
01:35:56 <elliott> olsner: I think it's impossible to do even useful lists without a ton of cpp-abusing infrastructure
01:36:49 <olsner> well, it was hard to even find the project when sourceforge looks like one of those pages that take your search string and adds "Download foo for free" to it
01:37:46 -!- BeholdMyGlory has quit (Remote host closed the connection).
01:38:39 <olsner> actually, the rest of sourceforge looks like one of those pages too :/
01:39:05 <elliott> olsner: sourceforge is pretty much the worst thing ever.
01:39:15 <elliott> olsner: http://chaos-pp.cvs.sourceforge.net/viewvc/chaos-pp/
01:39:19 <elliott> olsner: or:3
01:39:21 <elliott> *or:
01:39:24 <elliott> cvs -d:pserver:anonymous@chaos-pp.cvs.sourceforge.net:/cvsroot/chaos-pp login
01:39:28 <elliott> cvs -z3 -d:pserver:anonymous@chaos-pp.cvs.sourceforge.net:/cvsroot/chaos-pp co -P chaos-pp
01:39:29 <elliott> cvs -z3 -d:pserver:anonymous@chaos-pp.cvs.sourceforge.net:/cvsroot/chaos-pp co -P order-pp
01:39:48 <olsner> yes yes, I *know* how to find the cvs browser on sourceforge :)
01:39:50 <elliott> :P
01:39:58 <elliott> olsner: to be honest, if sourceforge died tomorrow the only thing that'd be missing is some downloads.
01:41:19 <olsner> implying that the rest is not worth saving or that it wouldn't be lost?
01:42:22 <elliott> olsner: former
01:42:40 <elliott> olsner: sourceforge today is just a vaguely scummy advert for the now-proprietary and costly software that runs it
01:42:42 -!- Sasha has quit (Remote host closed the connection).
01:43:01 <elliott> olsner: they try and position themselves as some sort of hub for open source software but it just isn't true; people who don't know better just sign up there for hosting
01:43:09 -!- Sasha has joined.
01:43:50 <olsner> IMO they *used* to be what they were supposed to be, but it looks like something happened at some time that broke it
01:43:57 <olsner> broke it pretty badly too
01:44:47 -!- GreaseMonkey has joined.
01:45:11 <elliott> olsner: I dunno, the software has been proprietary $$$ since ... 2000? 2003?
01:45:29 <elliott> olsner: so they're really hypocritical to start with, being basically an advert for open source software
01:45:45 <elliott> olsner: also, their website has always sucked. always.
01:48:11 <olsner> well, same business model as github then? I don't think they were evil at all around 2004 when I had a project on sourceforge
01:48:46 <elliott> olsner: err, github don't sell their software.
01:48:57 <elliott> olsner: github just sell accounts. i think you are very confused :)
01:50:50 <elliott> "car(cdr(list))" = true ((c, ** ERROR: "car called on nil")) ;
01:50:52 <elliott> whyyyyyyyfffffffff
01:51:04 <olsner> maybe... I don't remember sourceforge selling their software back then at least
01:51:30 <olsner> they had the open-source version of it on sourceforge though
01:51:42 <elliott> olsner: http://en.wikipedia.org/wiki/GForge#History
01:51:47 <elliott> olsner: looks like 2000, 2001 to me.
01:58:31 <olsner> bah, too many files in chaos-pp can't be bothered reading them... saw one with lots of macros though :)
01:59:38 <elliott> olsner: they're all macros, silly :P
01:59:40 <elliott> olsner: try order-pp
01:59:44 <elliott> olsner: that's a language, languages are SIMPLE!
02:00:06 <elliott> also: damn cvs sucks
02:01:01 <olsner> sounds like you vastly underestimate the suckage of cvs
02:01:23 <elliott> olsner: damn...cvs...blowerates?
02:01:46 <olsner> "blowerates"?
02:01:52 <elliott> olsner: blowerates.
02:02:36 <elliott> #define ORDER_PP_CONST(value) 8DEF_CONST,value,
02:02:39 <elliott> NOTHING IS SIMPLE AND/OR SACRED
02:03:03 <olsner> was that supposed to be (DEF_CONST?
02:03:06 <elliott> olsner: no
02:03:08 <elliott> olsner: it wasn't :)
02:03:13 <elliott> # define ORDER_PP_8NATIVE(P,v,n,m,ps,...) (,ORDER_PP_FW(TYPE_CHECK,(,ORDER_PP_TUPLE_AT_0 ps##P,P##v,ORDER_PP_LIT_IS_0))(,P##n)(ORDER_PP_8NATIVE_,LAST,MORE)(,P##n,P##m,P##ps,P##v),P##__VA_ARGS__)
02:05:06 <elliott> olsner: it would help if it was commented
02:05:29 <elliott> #define ORDER_PP_FIND(_) ORDER_PP_FX(EVAL,(ORDER_PP_FIND_GT_0()))
02:05:29 <elliott> #define ORDER_PP_EVAL(i) ORDER_PP_EVAL_##i
02:05:30 <elliott> what
02:05:51 <elliott> #define ORDER_PP_OUTPUT(s) ORDER_PP_FX(OUTPUT_EMIT_A,ORDER_PP_CM(,ORDER_PP_OUTPUT_PAIR_A (,0,)s(0,),8OUTPUT_STOP,)))
02:05:52 <elliott> HOW HARD CAN IT BE
02:05:55 <elliott> #define ORDER_PP_OUTPUT_F (,
02:05:56 <elliott> WHAT
02:05:56 <olsner> /* THIS WAS HARD TO WRITE IT SHOULD BE HARD TO READ DAMMIT */
02:06:03 <elliott> #define ORDER_PP_OUTPUT_EMIT_3(P,...) ,P##__VA_ARGS__
02:06:04 <elliott> #define ORDER_PP_OUTPUT_EMIT_4(P,...) (P##__VA_ARGS__
02:06:04 <elliott> #define ORDER_PP_OUTPUT_EMIT_5(P,...) )P##__VA_ARGS__
02:06:08 <elliott> what is this i don't even
02:06:21 <elliott> #define ORDER_PP_DEF_8if(b,c,...) 8EVAL_IF,b,c,ORDER_PP_IS_TUPLE_SIZE_1(,0##__VA_ARGS__)(,ORDER_PP_REM,8do)(__VA_ARGS__),
02:06:22 <elliott> fffffffffff
02:06:24 <elliott> it's all the same!
02:06:41 <elliott> example/bottles.c
02:06:41 <elliott> oh joy
02:06:44 <Sgeo> http://news.pinkpaper.com/NewsStory/4319/18/11/2010/countries-vote-to-accept-execution-of-gays.aspx
02:06:45 <elliott> / The following chapters gradually introduce and formally define
02:06:45 <elliott> / the elements of the Order language, but in this section we will
02:06:45 <elliott> / take a brief informal look at a concrete example. The code
02:06:45 <elliott> / snippets that we will show in this section may look ``funny'' and
02:06:45 <elliott> / may be difficult to understand on first reading, but you
02:06:45 <elliott> / shouldn't worry about it. You may want to read this section again
02:06:47 <elliott> / after you've finished a few more chapters.
02:06:50 <elliott> olsner: the examples are literate cpp.
02:07:08 <elliott> olsner:
02:07:08 <elliott> 8cond((8greater(8N, 1),
02:07:08 <elliott> 8separate(8N, 8quote(bottles)))
02:07:08 <elliott> (8equal(8N, 1),
02:07:09 <elliott> 8quote(1 bottle))
02:07:11 <elliott> (8else,
02:07:13 <elliott> 8quote(no more bottles)))
02:07:20 <elliott> you can't make this shit up
02:08:11 <olsner> all those tokens starting with digits look weird, I guess they are part of the trick
02:08:24 <Sgeo> I hate everyone sometimes
02:08:43 <elliott> olsner: no
02:08:47 <elliott> olsner: they're just names to not clash
02:08:49 <elliott> Sgeo: what
02:08:55 <elliott> olsner: pretty sure
02:09:02 <Sgeo> elliott, what I just linked to
02:09:16 <olsner> names can't start with digits, those should just be invalid integers
02:09:23 <elliott> lol @ UN
02:09:24 <elliott> olsner: dude, it's cpp
02:09:28 <elliott> olsner: names can start with digits.
02:09:32 <elliott> olsner: you're thinking in C!
02:09:34 <elliott> C is EVIL
02:09:35 <elliott> cpp is the one
02:11:37 <Gregor> <3 C
02:11:45 <olsner> indeed I am thinking in C, and I have barely scratched the surface of the beast that is CPP
02:12:07 * Sgeo suddenly wants to learn B
02:12:38 <Sgeo> BOBOL
02:12:42 <elliott> Gregor: C is not as good as cpp.
02:13:10 <elliott> Gregor: After all, all your "C" programs are actually just cpp programs that require TWO ADDITIONAL STEPS to be run.
02:13:29 <elliott> Gregor: Running it through the "C" compiler, and then running the resulting binary.
02:13:31 <Gregor> Yeah, but CPP isn't* TC**.
02:13:35 <Gregor> *: As far as we know.
02:13:36 <elliott> Gregor: Whereas cpp programs just require cpp to run!
02:13:45 <Gregor> **: And depending on how pedantic you are, maybe C isn't either.
02:14:00 <elliott> Gregor: Mm, I dunno man, this functional language does 99 bottles of beer, and I've seen a recursive fibonacci function that uses bignums -- in cpp -- well...
02:14:09 <olsner> surely, C with infinite memory must be TC?
02:14:13 <elliott> olsner: you can't have that
02:14:20 <elliott> olsner: sizeof(void *) must be finite
02:14:28 <elliott> olsner: admittedly, char could be a bignum
02:14:32 <elliott> and thus sizeof(void *) = 1
02:14:38 <elliott> olsner: but iirc there was a problem with *that* too
02:14:48 <elliott> oh
02:14:50 <olsner> I think we've had this discussion before
02:14:50 <elliott> olsner: CHAR_BIT
02:14:54 <elliott> we've had it many tmies.
02:14:57 <elliott> *times.
02:15:09 <elliott> olsner: but yeah, (void *) has to be n*CHAR_BIT bits for some n
02:15:16 <elliott> and CHAR_BIT has to be finite, obviously
02:15:24 <elliott> (because char is an integral type and infinity isn't an integer)
02:15:41 <elliott> olsner: C/POSIX is PROBABLY TC because of files.
02:15:42 <elliott> but who knows
02:16:17 <olsner> just connect to the tape server over TCP and it's turing complete? :)
02:16:25 <elliott> LOL:
02:16:26 <elliott> / Undoubtedly the first thing to notice was the prefix `8'. It
02:16:26 <elliott> / is a prefix of \emph{all} Order expressions and its purpose is to
02:16:26 <elliott> / prevent \emph{unintended macro replacement} of Order expressions.
02:16:26 <elliott> / A token that starts with a digit, like `8cond', is called a
02:16:26 <elliott> / \emph{pp-number} and because it isn't an \emph{identifier} it
02:16:28 <elliott> / isn't subject to macro replacement.
02:16:30 <elliott> olsner: that's why 8 is used
02:16:42 <elliott> The use of pp-numbers is
02:16:43 <elliott> / admittedly an ugly detail, but it is absolutely necessary,
02:16:43 <elliott> / because otherwise an Order expression might get macro replaced by
02:16:43 <elliott> / a user or standard defined macro, like the \emph{abominable}
02:16:43 <elliott> / macro `I' incredibly defined by the C standard\footnote{There
02:16:43 <elliott> / aren't words strong enough that I could credibly use here to
02:16:45 <elliott> / describe what I think about the quality of certain parts of the C
02:16:47 <elliott> / standard \cite{c:1999}.},
02:16:53 <elliott> this is the worst thing ever :D
02:17:14 <olsner> 'I' is a predefined macro? wtf?
02:17:20 <elliott> olsner: yes, it's i
02:17:25 <elliott> as in i^2 = -1
02:18:21 <elliott> Gregor: think i should troll the esolangs wiki, wrt TCness?
02:18:33 <olsner> hah, there it is, #define I _Complex_I
02:18:37 <Gregor> elliott: Always.
02:18:41 <elliott> Gregor: I'm so tempted to put up a language, Brainfalt or Brainfault or something (brainfuck + halt), defined to be the set of brainfuck programs that halt.
02:19:15 <elliott> Gregor: This language is of course completely unimplementable -- well, you can't provide diagnostics on every invalid program, rather.
02:19:25 <elliott> Gregor: (But you can define "loop forever" as the error reporting system.)
02:19:26 <elliott> Gregor: But:
02:19:35 <elliott> Gregor: I will provide a complete, error-giving interpreter in Banana Scheme. :-)
02:19:54 <elliott> 8fn(8N,
02:19:54 <elliott> 8cond((8greater(8N, 1),
02:19:54 <elliott> ...
02:19:54 <elliott> 8quote(no more bottles))))
02:20:02 <elliott> 8print(8ap(8B, 8N) (of beer on the wall,) 8space
02:20:02 <elliott> 8ap(8B, 8N) (of beer,) 8space
02:20:02 <elliott> (take one down, pass it around,) 8space
02:20:02 <elliott> 8ap(8B, 8dec(8N)) (of beer on the wall.))
02:20:06 <elliott> 8for_each_in_range
02:20:08 <elliott> this is so beautiful
02:20:36 <elliott> 8for_each_in_range(foo, 1, 100)
02:20:38 <elliott> 8for_each_in_range(foo, 100, 1)
02:20:42 <elliott> both do the right thing
02:20:45 <elliott> ascending vs. descending
02:20:47 <elliott> this man is so crazy
02:20:58 <Sgeo> Invite him to #esoteric
02:21:24 <elliott> no
02:21:27 <elliott> that's a lame thing to do
02:23:36 <elliott> int main(void) {
02:23:36 <elliott> printf(AVERAGE(3, 1, 4, 1, 5, 9, 2, 6, 5) == 4
02:23:36 <elliott> ? "OK.\n"
02:23:36 <elliott> : "ERROR!\n");
02:23:36 <elliott> return 0;
02:23:37 <elliott> }
02:23:39 <elliott> Gregor: how is this even possible
02:23:42 <elliott> why did nobody tell met his exists
02:23:44 <elliott> *me this
02:23:53 <elliott> LOL
02:23:53 <elliott> LOL
02:23:54 <elliott> LOL
02:23:55 <elliott> Gregor: olsner:
02:23:57 <elliott> / It is probably safe to say that, compared to an average function
02:23:57 <elliott> / implemented using C++ template metaprogramming techniques, our
02:23:57 <elliott> / macro is both simpler and more flexible.
02:24:05 <elliott> This is the one thing *MORE COMPLICATED* than C++ templates.
02:25:04 <olsner> well, batshit insane is what it is
02:25:14 <elliott> olsner: *genius
02:25:24 <olsner> same thing? :)
02:25:40 <olsner> at least they're not mutually exclusive
02:25:45 <Sgeo> I know how to convince elliott to give up on caring: I just need to have an affair with cpp
02:26:09 <elliott> Sgeo: don't worry; I don't believe that you could produce a working program of any complexity in cpp
02:26:14 <elliott> Sgeo: because, for instance, I can't
02:27:07 <elliott> olsner: you know what would make me kill myself because life couldn't possibly get any better?
02:27:13 <elliott> olsner: an implementation of m4 in cpp
02:27:24 <elliott> just encode all the nasty special chars with, like, ASCII_37 and the like
02:27:29 <elliott> dear god it would be beautiful
02:27:36 <elliott> (or even all the chars full stop :P)
02:29:35 <elliott> #define AVERAGE(...) \
02:29:35 <elliott> ((ORDER_PP(8seq_for_each_with_delimiter \
02:29:35 <elliott> (8put, \
02:29:35 <elliott> 8emit(8quote(+)), \
02:29:35 <elliott> 8tuple_to_seq(8quote((__VA_ARGS__)))))) / \
02:29:35 <elliott> ORDER_PP(8to_lit(8tuple_size(8quote((__VA_ARGS__))))))
02:29:43 <elliott> olsner: the craziest thing is, this is meant to be useful
02:29:46 <elliott> olsner: for code generation
02:29:54 <elliott> olsner: you can see above it actually *integrates* with everything else
02:30:04 <olsner> oh, so it wouldn't take raw m4, but m4 encoded as a sequence of ascii_n tokens?
02:30:10 <elliott> olsner: right
02:30:13 <elliott> olsner: or just _n really
02:30:19 <elliott> olsner: you could even have MNEMONICS
02:30:21 <elliott> _lparen
02:30:23 <elliott> _comma
02:30:25 <elliott> etc. :P
02:30:34 <elliott> olsner: interpreting m4 is obviously impossible
02:30:38 <elliott> olsner: the great thing is, m4 lets you reassign quote chars
02:30:46 <elliott> olsner: so this would actually have to interpret ascii values differently as it goes along
02:30:47 <elliott> :D
02:30:49 <elliott> and stuff
02:31:00 <olsner> well, how hard can it be?
02:31:15 <elliott> olsner: everything is either easy or impossible, that's my rule
02:31:36 <olsner> hmm, so there's really no point in doing anything at all then? :)
02:31:38 <elliott> now to read chaos, not order
02:31:44 <elliott> olsner: no, easy things are good
02:32:04 <elliott> olsner: lol, chaos headers use # instead of blank lines 'cuz blank lines would show up in cpp output
02:32:11 <elliott> in fact, even the comment blocks are in #s
02:32:29 <elliott> oh jesus @ chaos/preprocessor/list/core.h
02:32:33 <elliott> # define CHAOS_PP_LIST_NIL() ...
02:32:36 <elliott> can't make this shit up
02:32:50 <elliott> lol for every x there's #define x_ID() x
02:32:58 <elliott> # define CHAOS_PP_LIST CHAOS_PP_LIST
02:32:58 <elliott> # define CHAOS_PP_LIST_ID() CHAOS_PP_LIST
02:33:05 <elliott> # if CHAOS_PP_VARIADICS
02:33:06 <elliott> # define CHAOS_PP_LIST_ CHAOS_PP_LAMBDA(CHAOS_PP_LIST)
02:33:06 <elliott> # endif
02:33:35 <elliott> # include <chaos/preprocessor/algorithm/bubblesort.h>
02:33:37 <elliott> olsner: ^
02:33:38 <elliott> not joking.
02:34:02 <elliott> # define CHAOS_IP_BUBBLESORT_3(_, s, pred, _p, type, first, rest, size, pd) \
02:34:03 <elliott> CHAOS_PP_IIF _(_p()(s, pred, CHAOS_PP_ITEM(type, CHAOS_PP_REM first) CHAOS_PP_COMMA() CHAOS_PP_ITEM(type, CHAOS_PP_HEAD(rest)) CHAOS_PP_EXPOSE(pd)))( \
02:34:03 <elliott> CHAOS_PP_CONS _( \
02:34:03 <elliott> CHAOS_PP_EXPR_S _(s)(CHAOS_IP_BUBBLESORT_INDIRECT _(2)( \
02:34:03 <elliott> CHAOS_PP_NEXT(s), pred, _p, type, rest, size, pd \
02:34:04 <elliott> )), \
02:34:06 <elliott> CHAOS_PP_REM first \
02:34:08 <elliott> ), \
02:34:10 <elliott> ...
02:38:07 <olsner> heh, order-pp/doc/ contains a single file that starts by saying "not intended to serve as documentation"
02:38:57 * Sgeo wonders if #esoteric would ever play Diplomacy
02:43:47 <elliott> olsner: :D
02:47:19 <elliott> olsner: i think chaos-pp is a better source for cpp programming
02:47:23 <elliott> it has docs, seemingly, of some sort. kinda
02:47:28 <elliott> Positive arbitrary-precision values are represented as a sequence of base-10 digits. For example, the value +123 is represented as (1)(2)(3). Negative values are represented as a parenthesized sequence of base-10 digits. For example, the value -123 is represented as ((1)(2)(3)).
02:47:33 <elliott> olsner: you can't make this shit up
02:48:37 <elliott> "As such, it assumes a strictly conformant preprocessor in an effort to reduce limitations and provide motivation for vendors to fix their broken preprocessors."
02:48:54 <elliott> "because of this one insane guy's insanity, we have revamped our entire c preprocessor. it is now 3x slower and standards compliant, enjoy"
02:49:11 <elliott> i like how many pages are just "..."
02:49:18 <elliott> A list is a data structure resembling a cons-style singly linked list. A list is either an ellipsis (...), which represents a nil list, or a binary tuple whose first element is an element in the list and whose second element is another list. For example,
02:49:19 <elliott> (a, (b, (c, ...)))
02:49:19 <elliott> hmm
02:49:25 <elliott> that ... has to be some clever thing with varargs, i just know it
02:49:46 <elliott> Remarks
02:49:47 <elliott> This macro exists only for uniformity with other macros that require indirect invocation.
02:49:48 <elliott> on _ID()
02:49:52 * elliott notes that that's what that's for to himself
02:50:16 <elliott> olsner: wow, they even maintain C89 compatibility; there's little notes everywhere saying "C99 Specific"
02:50:22 <elliott> olsner: C89 *had no variadic macros*
02:51:23 <elliott> "Remarks
02:51:23 <elliott> This macro effectively allows CHAOS_PP_LIST_CONS to pass through itself without becoming disabled."
02:51:55 <elliott> probably everything does x##_id() everywhere :D
02:52:14 <elliott> haha, it works
02:54:37 <elliott> test.h:13:1: error: pasting ")" and "_id" does not give a valid preprocessing token
02:54:39 <elliott> that's what she said
02:58:15 <elliott> olsner: yay, I have lists working!
03:03:27 <elliott> and nilp!
03:21:26 <olsner> 10 pages, that's how long the whole preprocessor section of the C++ standard is
03:21:50 <elliott> heh
03:22:00 <elliott> olsner: gah, i hate how cpp is pretty much DESIGNED to stop you doing this
03:22:15 <elliott> olsner: by figuring out you're making a constructed macro call and stopping it
03:22:22 -!- augur has joined.
03:22:43 <olsner> yeah, it's very much not supposed to be used for metaprogramming
03:24:15 <Sgeo> elliott, lolwhat?
03:24:16 <Sgeo> Why?
03:24:18 <Sgeo> And how?
03:24:37 <elliott> Sgeo: what
03:24:40 <elliott> olsner: BUT I MUST
03:24:54 <Sgeo> How is cpp designed to stop you doing it?
03:25:38 <elliott> RTFGoogle
03:25:43 <elliott> It's too difficult to explain :P
03:38:11 <elliott> coppro: I've forgotten what C is now, it's all just cpp for me
03:49:09 <elliott> erm
03:49:10 <elliott> *olsner:
03:49:16 <elliott> i cannot figure out how to do naturals :D
03:49:20 <elliott> this is the most difficult language ever
03:50:00 <olsner> didn't you just quote how chaos-pp did naturals? :)
03:58:38 * Sgeo would be more interested in how to do reals
03:58:44 <Sgeo> Computers don't have infinite memory
03:59:35 <elliott> olsner: " (The ??= token is a trigraph for #. It is used here to visually disambiguate this inclusion from a normal file inclusion because it is definitely not normal. The %: digraph can also provide such disambiguation. Neither is necessary.)"
03:59:45 <elliott> olsner: also, no, i quoted how it does arbitrary-precision numerals :) and i just want peano!
03:59:53 <elliott> *"(T
04:00:04 <elliott> #define CHAOS_PP_ITERATION_PARAMS (1)(10)("file.h")
04:00:04 <elliott> ??=include CHAOS_PP_ITERATE()
04:00:10 <olsner> well, how can that be hard if you already have lists?
04:00:38 <elliott> olsner: i thought i had lists, but just couldn't get map to work
04:00:41 <elliott> i'm starting from the basics now
04:00:53 <olsner> elliott: oh, the ??= makes that *really* clear
04:01:04 <elliott> olsner: totally
04:01:15 <elliott> olsner: that includes file.h 10 times btw :)
04:02:46 <elliott> olsner: chaos-pp/built-docs/roman-numerals.html
04:02:48 <Sgeo> What would happen if you didn't have the (1)
04:02:49 <elliott> olsner: can't make this shit up. really can't
04:02:53 <elliott> Sgeo: uh, it'd break?
04:03:08 <Sgeo> How and why?
04:03:22 <olsner> elliott: except that obviously they did make it up!
04:03:23 <elliott> because it's a range?
04:03:31 <elliott> stop being dense, you can't just call an interface in the wrong way like that
04:03:46 <Sgeo> I thought it was one number
04:04:22 <Sgeo> Wasn't (5)(4)(0) for example 540?
04:12:37 <elliott> " An active argument is an argument that expands each time that it is scanned by the preprocessor. For example,"
04:12:39 <elliott> Sgeo: sigh
04:12:43 <elliott> Sgeo: that's a separate thing.
04:12:57 <Sgeo> I'm not paying close attention, sorry
04:13:20 <elliott> olsner: " Not all useful active arguments reach a terminal state. The following code produces an infinite list:"
04:13:23 <elliott> olsner: *"N
04:13:29 <elliott> olsner: ok, i'm convinced; cpp is probably TC.
04:13:45 <elliott> (ignoring recursion limit)
04:13:55 <olsner> oh my
04:13:56 <Sgeo> Can you eliminate the recursion limit somehow?
04:14:01 <elliott> [[(Because this code is using saturation arithmetic, the value eventually will reach CHAOS_PP_LIMIT_MAG, causing an infinite list of values saturated to CHAOS_PP_LIMIT_MAG from that point on.)]]
04:14:06 <elliott> could always use its arbitrary-precision stuff
04:14:10 <elliott> Sgeo: no. not without modifying cpp(1)
04:15:36 <elliott> olsner: built-docs/binary-literals.html
04:16:03 <elliott> #define BINARY(string) BINARY_S(CHAOS_PP_STATE(), string)
04:16:03 <elliott> #define BINARY_S(s, string) \
04:16:03 <elliott> CHAOS_PP_ARBITRARY_DEMOTE( \
04:16:03 <elliott> CHAOS_PP_EXPR_S(s)(CHAOS_PP_FOLD_LEFT_S( \
04:16:03 <elliott> s, OP, (CHAOS_PP_STRING) string, (0) \
04:16:04 <elliott> )) \
04:16:06 <elliott> ) \
04:16:08 <elliott> /**/
04:16:10 <elliott> #define OP(s, bit, x) \
04:16:12 <elliott> CHAOS_PP_ARBITRARY_ADD( \
04:16:14 <elliott> CHAOS_PP_ARBITRARY_MUL(x, (2)), (bit) \
04:16:16 <elliott> ) \
04:16:18 <elliott> /**/
04:16:20 <elliott> the final, clear version :P
04:16:41 <elliott> "(The BYTE_ boilerplate can be pre-generated with a small program such as the following: ...)"
04:16:45 <elliott> but that's what the preprocessor is for!
04:16:55 <elliott> clearly we need cpppp
04:17:06 <olsner> c(pp)^n
04:17:24 <olsner> or cp^2n of course
04:18:02 <elliott> olsner: then it goes to arbitrary bases :P
04:18:05 <elliott> c(pp)^inf
04:18:17 <elliott> night; i'll continue cpping tomorrow :P
04:18:20 -!- elliott has quit (Quit: Leaving).
04:20:46 -!- bsmntbombdood has quit (Ping timeout: 255 seconds).
04:24:04 -!- bsmntbombdood has joined.
04:35:05 -!- HackEgo has quit (Ping timeout: 245 seconds).
04:35:16 -!- EgoBot has quit (Ping timeout: 264 seconds).
04:35:46 -!- rodgort has quit (Ping timeout: 265 seconds).
04:36:21 -!- Gregor has quit (Ping timeout: 255 seconds).
04:40:32 -!- augur has quit (Remote host closed the connection).
04:41:40 -!- augur has joined.
04:43:20 -!- augur has quit (Remote host closed the connection).
04:49:37 <olsner> what the... ls does case-insensitive sorting nowadays
04:49:40 -!- Gregor has joined.
04:49:51 * Sgeo is a geostationary platform
04:51:42 <Sgeo> http://www.webwire.com/ViewPressRel.asp?aId=127043
04:52:35 -!- zzo38 has joined.
05:09:02 <olsner> Sgeo: congratulations!
05:13:08 -!- Sasha has quit (Read error: Connection reset by peer).
05:16:34 <zzo38> Do you like the book "Copper, Silver, Gold: An Indestructable Metallic Alloy"?
05:16:47 -!- Sasha has joined.
05:18:58 * Sgeo hasn't heard of it until now
05:22:09 <zzo38> Perhaps you would prefer "Giraffes, Silver, Gold"? Or "Copper, Elephants, Gold"? Or maybe even "Copper, Silver, Baboons"?
05:23:02 <Sgeo> Oh, you're not naming currently existant books
05:25:54 <zzo38> All of these are referenced in Godel, Escher, Bach.
05:27:54 <Sgeo> Huh
05:29:45 <zzo38> The one which is not mentioned is: "Copper, Silver, Osmium: A Destructable Metallic Alloy".
05:31:26 <zzo38> (But I think that anyone who really pays attention to the book will know what I am referencing by this.)
05:32:10 -!- augur has joined.
06:03:47 -!- Sgeo_ has joined.
06:07:21 -!- Sgeo has quit (Ping timeout: 272 seconds).
06:10:41 -!- wareya has quit (Read error: Connection reset by peer).
06:11:42 -!- wareya has joined.
06:35:58 -!- kar8nga has joined.
06:58:47 -!- Sgeo_ has quit (Read error: Connection reset by peer).
07:04:26 -!- wareya has quit (Read error: Operation timed out).
07:04:59 -!- zzo38 has quit (Remote host closed the connection).
07:14:13 -!- wareya has joined.
07:44:37 -!- ais523 has quit (Remote host closed the connection).
07:57:30 -!- zzo38 has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:06:22 -!- rodgort has joined.
09:10:33 <zzo38> Insane people have the best ideas. Sometimes.
09:29:00 -!- Phantom_Hoover has joined.
09:29:36 <Phantom_Hoover> Minecraft has taken over my BRAIN
09:30:59 <zzo38> Then do something else tomorrow
09:32:01 <Phantom_Hoover> Or do something else... today!
09:32:34 <zzo38> Yes, that too.
09:33:19 <oklopol> "oh shit it's dark, i better get underground"
09:33:27 <oklopol> eg
09:33:37 <oklopol> sry, pressing buttons at random
09:35:03 -!- kar8nga has quit (Remote host closed the connection).
09:41:26 <Phantom_Hoover> oklopol, worse than that.
09:41:52 <Phantom_Hoover> My brain seems to have gotten a copy of Minecraft installed, which is troubling for a number of reasons.
09:42:23 <Phantom_Hoover> Not least that it implies my head has internet access and *shiver*)a JVM.
09:42:33 <Phantom_Hoover> s/)/ /
09:50:44 <zzo38> Please read and write six books today.
09:52:03 <Phantom_Hoover> Could be tricky.
10:01:17 <cheater00> zzo38: morning
10:01:48 <cheater00> Phantom_Hoover: you just have to parallelize
10:07:27 -!- MigoMipo has joined.
10:18:10 <Phantom_Hoover> cheater00, I can't! There isn't space with this damn JVM here!
10:18:29 <cheater00> obviously you need to acquire more cpu's
10:19:05 <Phantom_Hoover> Tomorrow's headlines: "Madman goes on killing spree, sticks victims' brains to head".
10:25:24 <cheater00> :D
10:28:34 -!- GreaseMonkey has quit (Quit: ilua).
10:49:18 <fizzie> Is it also a bad sign that I just started a comment in IRC with "t", as in "tHello.", since t is what you use to talk?
10:50:14 <zzo38> fizzie: In my computer it is space-bar
10:50:44 -!- kar8nga has joined.
10:51:00 <fizzie> Yes, but in Minecraft it's 't'.
10:51:06 <zzo38> I have just finished the Season Stacker demo
10:51:13 <zzo38> fizzie: OK.
10:55:47 <oklopol> why do i want to come play with you so much
10:55:59 <oklopol> idgi
10:56:07 <fizzie> oklopol: Must be some sort of brain damage: there's nothing *that* exciting happening.
10:56:10 <Phantom_Hoover> fizzie, not as bad a sign as it was that I was literally playing Minecraft with you guys _in my head_.
10:56:44 <oklopol> i dreamt about minecraft both last night and the night before
10:57:03 <oklopol> although it was this huge campaign and you could make machine guns
10:57:22 <oklopol> like a 100 player army against another
10:57:44 <oklopol> and just as the battle begins, i realize none of us remembered to make any armor
10:58:33 <oklopol> and then we start getting massacred, i'm the only one who flees, and i take cover behind this fence you can see through, and start shooting at this guy with my uzi, but he just won't die, eventually sees me and kills me with this huge minigun
10:59:03 <oklopol> then there was this other dream where my gf had a penis, and i was just really puzzled "that looks like my penis, what's it doing there"
10:59:30 <Phantom_Hoover> That really is a weird dream.
10:59:47 <oklopol> yeah, how could a 100 ppl just completely forget something
11:00:01 <oklopol> too easy, maybe, anyway shower ->
11:02:36 <zzo38> I suggest you play the Season Stacker demo now, too. (It also has music by Purple Motion; although the game can be played fine even without the music, too.)
11:04:12 <zzo38> Literate programming is the program you write is both a computer program and a book, it has the features of both. Now you can write six books and six computer programs all in one day.
11:16:15 <cheater00> i expect you to write a program where every function and every function explanation is a haiku.
11:16:35 <cheater00> the function code, read out loud, should be a haiku.
11:26:07 <oklopol> Phantom_Hoover: did you mean a dream or just closing your eyes and continuing the game while awake
11:26:21 <zzo38> cheater00: http://www.dangermouse.net/esoteric/haifu.html
11:26:55 -!- FireFly has joined.
11:30:10 <Phantom_Hoover> oklopol, BOTH
11:32:15 <cheater00> zzo38: yeah, i've seen that. except it's not LP
11:32:40 <cheater00> zzo38: andou
11:32:56 <cheater00> zzo38: and it isn't written by you
11:33:06 <zzo38> cheater00: Yes, you are right about those things.
11:53:28 -!- Slereah has quit (Ping timeout: 245 seconds).
11:53:44 -!- BeholdMyGlory has joined.
12:01:00 -!- Slereah has joined.
12:26:40 <Phantom_Hoover> oklopol, incidentally, you like spacey sandboxes with no plot or aims to speak of, yes?
12:30:30 -!- Zuu has quit (Ping timeout: 260 seconds).
12:43:00 -!- Zuu has joined.
13:41:52 -!- Slereah has quit (Ping timeout: 264 seconds).
13:42:44 <oklopol> Phantom_Hoover: sure
13:42:57 <Phantom_Hoover> oklopol, have you tried Elite?
13:43:11 <oklopol> no, i don't really play games
13:43:18 <Phantom_Hoover> Huh.
13:44:25 <oklopol> usually i watch tv series or do math, the former if i want to give my brain a rest, the latter if i want to use it. games are a middle road, and i just do extremes.
13:45:04 <oklopol> although lately i've been wanting to program stuff
13:45:15 <oklopol> weird
13:45:45 -!- Slereah has joined.
13:46:06 <zzo38> Program a game about a TV series involving math.
13:46:07 -!- BeholdMyGlory has quit (Remote host closed the connection).
13:46:30 <oklopol> a game involving math would be great
13:46:39 -!- BeholdMyGlory has joined.
13:46:41 <oklopol> but that doesn't sound likely
13:48:12 <zzo38> Make a game that you have to prevent all the magnets from touching each other
13:57:53 <zzo38> Do you know much about ANSI terminal escape codes and those standards? I am making a program converting between MZM files and ANSI codes files.
14:02:14 <olsner> oh, I always thought the standard came from standardizing the vt100 terminals' codes, but turns out it was the other way around
14:06:32 <Vorpal> fizzie, timed out too?
14:06:38 <fizzie> Not this time.
14:06:46 <fizzie> Though haven't tried to say anything.
14:06:53 <fizzie> Okay, now it disconnecteded.
14:07:24 <olsner> zzo38: the terminal escape codes are really simple though, the wikipedia page probably has all you need
14:08:25 <Phantom_Hoover> OK, kernel.org's Debian mirrors are down for me.
14:11:17 <zzo38> OK, but what about things such as wrapping, CR/LF pair, control codes special use by some terminals (such as ENQ), and so on?
14:18:26 <olsner> hmm, right, it probably gets tricky once you expose it to reality and try to actually use it
14:18:53 <olsner> sounds like you need to find a portable subset that works on everything you want to support
14:22:55 <oklopol> i just burned a forest.
14:24:25 <fizzie> Only you can start forest fires.
14:34:41 <Phantom_Hoover> Is it just me, or is the Banach-Tarski Paradox nothing of the sort?
14:34:59 <Phantom_Hoover> I mean, it doesn't imply a contradiction or anything, it's just weird.
14:35:10 <oklopol> i don't think it's weird
14:36:43 <olsner> "The reason the Banach–Tarski theorem is called a paradox is because it contradicts basic geometric intuition."
14:38:31 <oklopol> it really doesn't
14:38:52 <oklopol> arbitrary subsets of reals in no way model our intuition of geometry
14:39:26 <oklopol> that's like saying if you think addition corresponds to lines being parallel, 1+1=2 contradicts basic geometric intuition
14:39:38 <oklopol> because parallelism is clearly idempotent
14:39:41 <oklopol> (what?)
14:40:39 <olsner> "zomg, infinite balls!" contradicts basic geometric intuition
14:41:44 <oklopol> infinite balls?
14:43:51 <olsner> if you can split one ball into two of the same size, you can repeat the process and get as many balls as you like
14:44:08 <olsner> and that's not something you're supposed to be able to do, intuitively
14:44:33 <Phantom_Hoover> Well, FWIW the Banach-Tarski Paradox only works in ZFC in the first place, so it's not even a geometrical theorem.
14:46:41 <Phantom_Hoover> The proof is much simpler than it would appear, barring some little details.
14:56:36 <oklopol> olsner: right
15:16:51 <cheater00> oklopol: let's make a game based on the monster group
15:17:03 <cheater00> the elements of the group are fields
15:17:11 <zzo38> Do you think you can fit the game into the computer?
15:17:13 <cheater00> you start out with some fields, enemy starts out with some fields
15:17:57 <cheater00> when two pieces touch, they add/multiply/whatever, and the attacker gets his piece on the resulting field
15:17:59 <zzo38> And if it is card game, do you think you can shuffle the cards?
15:18:33 -!- sftp has quit (Remote host closed the connection).
15:18:40 <cheater00> the aim is to place pieces in some geometric fashion, like say halma or 5 in line
15:18:55 <zzo38> O, that's how the game works.
15:19:45 <cheater00> it could be an educational tool to facilitate building intuition about the monster group.
15:24:39 <oklopol> :D
15:24:45 <zzo38> What are the rules for the elements of the monster group, anyways?
15:24:57 <oklopol> what was the point of it
15:25:16 <oklopol> oh it was the biggest sporadic group (finite, but not in one of the major infinite classes of them)?
15:25:24 <oklopol> i could just check this i guess
15:25:38 <zzo38> I think that is called an exceptional group?
15:25:50 <oklopol> i think it's called a sporadic group
15:26:01 <zzo38> Maybe
15:29:34 <oklopol> the forest fire i mentioned hours ago
15:29:36 <oklopol> is still burning :D
15:29:48 -!- sftp has joined.
15:29:55 <zzo38> Call the police^Wfire department
15:30:29 <zzo38> And then call yourself
15:33:16 -!- elliott has joined.
15:33:36 -!- sftp has quit (Remote host closed the connection).
15:34:41 <elliott> Phantom_Hoover: so uh wrt. minecraft addiction
15:34:48 <elliott> a few days before all this mess i actually draemed in minecraft
15:34:52 <zzo38> Invent a game called "Quixotic Quizzical Jazz"?
15:34:56 <elliott> including the pause screen
15:35:05 <elliott> (when i walked into a dark area and i think i wasn't on peaceful)
15:35:09 <elliott> (so i could calm down before running out)
15:35:09 <Phantom_Hoover> elliott, that was precisely my problem.
15:35:16 <elliott> *dreamed
15:35:28 <elliott> Phantom_Hoover: i finally understand WoW players :D
15:36:20 -!- sftp has joined.
15:41:06 -!- kar8nga has quit (Remote host closed the connection).
16:02:56 <oklopol> erm, i filled a 100x100 valley with candles and built a wall around it, i saw no monsters during the night, but the green exploders now attack me there during the day D:
16:04:18 -!- MigoMipo has quit (Remote host closed the connection).
16:04:52 -!- MigoMipo has joined.
16:12:08 <elliott> oklopol: :(
16:12:15 <elliott> oklopol: if you place a door from the outside (not the inside)
16:12:23 <elliott> oklopol: then you can run up to your door and slash things!
16:12:30 <elliott> this is of ... limited utility imo but Vorpal swears by it
16:12:30 <oklopol> i know this
16:13:13 <oklopol> what i want to know is if there's a nice way to make something that destroys attacking enemies automatically
16:13:16 <oklopol> i mean
16:13:21 <oklopol> if they try to approach my valley
16:13:25 <elliott> oklopol: traps
16:13:38 <oklopol> can you make ones that are reusable
16:13:39 <elliott> oklopol: http://www.minecraftwiki.net/wiki/Tutorials/Traps or whatever
16:14:07 <elliott> * Burning Netherstone/Cactus trap
16:14:07 <elliott> A trap made with Netherstone and Cacti.
16:14:07 <elliott> A variant of the aforementioned trap. Mobs will be lit on fire, then hit the cactus and usually jump back, leaving the drops safe, and an effective barrier, especially against spiders. This requires a cactus farm, as it requires lots and lots of it to be effective.
16:14:07 <elliott> * Mob tower trap
16:14:08 <elliott> Although lengthy and very difficult to build, the payoff is fantastic. A single location on the map has been discovered to cause the most mobs to spawn. To find the location use this tutorial: [2] After finding this location, construct a huge tower, which height depends on how much time you have on your hands, and how many mob drops you want. The contraption drags mobs into a grinder and drops the loot into your base. To build the tower,
16:14:13 <elliott> watch this tutorial: [3]
16:14:21 <elliott> oklopol: also you might want to get a bow to shoot them from the top or something i guess
16:17:03 -!- Gregor` has joined.
16:17:59 <elliott> oklopol: also SCREENSHOT THAT HO
16:18:01 <elliott> oklopol: (the 100x100)
16:19:29 -!- Gregor has quit (Quit: Leaving).
16:19:45 -!- Gregor` has changed nick to Gregor.
16:22:26 <Phantom_Hoover> Well, I'll leave things at that.
16:22:38 <Phantom_Hoover> Minecraft overdose is now a problem which MUST BE MONITORED
16:24:34 <Phantom_Hoover> I'll consider Mt. Hoover's development at some point.
16:25:30 <elliott> Phantom_Hoover: I just tried to click my now-nonexistent Minecraft task bar entry. :P
16:26:40 <elliott> Gregor: I've decided that cpp is probably TC, by the wa.y
16:26:41 <elliott> *way.
16:26:47 <elliott> Ignoring the recursion limit.
16:27:05 <Gregor> It's all well and good to DECIDE that, I want some EVIDENCE.
16:28:04 <elliott> Gregor: I've got yer evidence right here: "Not all useful active arguments reach a terminal state. The following code produces an infinite list:"
16:28:21 <elliott> Gregor: It produces a lazy list of every natural number (well, using their "saturation arithmetic", but it could easily be modified to use their bignums).
16:28:30 <elliott> Gregor: Also, there's a bubblesort.
16:28:33 <Gregor> O_O
16:28:34 <Gregor> WANT
16:28:48 <elliott> Gregor: Also, that functional language is *really* convincing.
16:29:04 <elliott> Gregor: (The most WTF thing is how "practical" and integrated with cpp it is for actual code generation :P)
16:29:16 <elliott> Gregor: cvs -d:pserver:anonymous@chaos-pp.cvs.sourceforge.net:/cvsroot/chaos-pp login
16:29:19 <elliott> cvs -z3 -d:pserver:anonymous@chaos-pp.cvs.sourceforge.net:/cvsroot/chaos-pp co -P chaos-pp
16:29:21 <elliott> cvs -z3 -d:pserver:anonymous@chaos-pp.cvs.sourceforge.net:/cvsroot/chaos-pp co -P order-pp
16:29:32 <elliott> Gregor: chaos-pp/built-docs has .htmls that are mostly unwritten, but some of them are ... very enlightening.
16:29:46 <elliott> Gregor: order-pp/examples are literate cpp/LaTeX programs. (Seriously.)
16:29:57 <elliott> Gregor: They are also very helpful in understanding ... these abominations.
16:30:53 <elliott> Gregor: As far as I'm concerned, it's at the level where it would have to try really hard to not be TC. :P
16:31:08 <Gregor> How did you find this? :P
16:31:50 <elliott> Gregor: Well, I knew about it earlier, and it's what set me off thinking about this... The specific inspiration was:
16:31:54 <elliott> 03:20:53 <fizzie> Heh, C preprocessor (ab)use: http://groups.google.com/group/comp.lang.c/msg/082ffefaaed3b450
16:31:54 <elliott> 03:21:52 <fizzie> I think Chaos has been mentioned here earlier, but still.
16:32:05 <elliott> Gregor: i.e. bignum fibonacci in cpp, using chaos-pp.
16:32:23 <elliott> Gregor: But I'd heard of it before -- I forget how. Anyway, enjoy! (Note: The .h files are completely useless. Not only are they undocumented, but they are COMPLETELY INCOMPREHENSIBLE.)
16:32:30 <elliott> Moreso for order-pp.
16:32:55 <elliott> Gregor: Did I mention chaos-pp has polymorphic functions operating on any type of sequence? X-P
16:33:16 <elliott> Gregor: They skipped about five stages in language design and went straight from cpp to... that.
16:34:54 <elliott> [[ >> I would suggest that in the next release of the ISO Standard, it is
16:34:54 <elliott> >> decried that the preprocessor shall be run repeatedly. In fact it shall
16:34:54 <elliott> >> be run n times until the nth run does not change the source file.
16:34:54 <elliott> > Man I _really_ disagree with this. "Powerful" in this case means
16:34:54 <elliott> > write-only code.
16:34:55 <elliott> If we take the above spec as literal, it turns out that there are virtually
16:34:57 <elliott> no programs which would be affected by it.
16:34:59 <elliott> > Please, C standards people, don't do it!
16:35:01 <elliott> I am pretty sure that the entire C standards community is populated by
16:35:02 <elliott> people who are legally allowed to dress themselves, and that as such,
16:35:05 <elliott> there is no risk of any of sandeep's recent proposals being accepted.]]
16:37:27 <Gregor> lawl @ the last bit :P
16:38:22 <elliott> Gregor: Now you've got me inventing the Lambda Preprocessor.
16:38:41 <elliott> # zero := (#\f x -> x)
16:38:41 <elliott> # succ := (#\n f x -> f(n(f, x)))
16:40:02 <elliott> "Wet-type earwax fluoresces weakly under ultraviolet light." --Wikipedia photo caption
16:42:03 <elliott> Gregor: Recursion is like the hardest thing in cpp EVER ;_;
16:42:39 <Gregor> Yes :P
16:44:14 <elliott> Gregor: What kind of a useless programmer am I? I can't even get this right!
16:45:19 <Gregor> Maybe you should KILL YOURSELF.
16:45:31 <Gregor> ... but first finish this.
16:45:35 <Gregor> 'cuz it'd be cool.
16:46:36 <elliott> Gregor: I seriously plan to write a brainfuck interpreter in cpp.
16:46:38 <elliott> Gregor: Seriously.
16:46:41 <elliott> Gregor: (SKI first though, probably.)
16:46:53 <Gregor> SKI kinda makes sense.
16:47:07 <Gregor> I tried to type "SDKI" there because I can't type "SK" in capitals without a 'D' there.
16:47:51 <elliott> Gregor has been sucked into the whirlpool of practical programming :P
16:47:59 <Phantom_Hoover> Gregor, you poor, broken man.
16:48:00 <elliott> Gregor: I could just implement SKI as three simple functions in Order, but THAT WOULD BE CHEATING.
16:51:44 <oklopol> this mountain is standing in the way of progress
16:52:04 <oklopol> goodbye my precious shovel collection.
16:52:53 <elliott> oklopol: please screenshot that 100x100 thing
16:56:28 <elliott> oklopol: or, you know, else
17:01:23 <augur> oko
17:01:37 <augur> >|
17:01:39 <augur> OKO
17:04:30 <elliott> augur: he doesn't love you anu more
17:04:52 <augur> :(
17:05:00 <Phantom_Hoover> OK, CTAN has me flummoxed.
17:05:17 <augur> better than if it were CSPAN
17:05:24 <Phantom_Hoover> What the hell do I do with the little .zip you get that makes it \usepackageable?
17:05:47 <augur> open it?
17:05:56 <augur> unzip it.
17:06:35 <Phantom_Hoover> Then what?
17:07:18 -!- ais523 has joined.
17:07:21 <augur> then you should get a .tex file
17:07:25 <augur> ais523!
17:07:31 <augur> chris barker was here the other day :D
17:07:40 <augur> not in the channel, i mean here at UMD
17:08:09 <Phantom_Hoover> augur, do you actually know how to do this?
17:08:36 <augur> yes
17:08:42 <augur> assuming this isnt some janky package.
17:08:44 <augur> send me a link?
17:10:06 <elliott> augur: you are wrong.
17:10:16 <elliott> for one, tex packages aren't .tex files
17:10:21 <augur> ehh
17:10:27 <elliott> Phantom_Hoover: ctan has documentation on this; you unpack the directory in the tex root
17:10:28 <augur> oh theyre .scljdfjk files
17:10:31 <elliott> there's a command to find that
17:10:39 <elliott> Phantom_Hoover: http://en.wikibooks.org/wiki/LaTeX/Packages/Installing_Extra_Packages
17:10:49 <elliott> Phantom_Hoover: But, uhh
17:10:53 <elliott> Phantom_Hoover: I'd just install texlive-full
17:10:57 <elliott> or whatever the package is
17:11:02 <elliott> that's like 99% of everything you ever need :P
17:11:19 <augur> .sty
17:11:21 <augur> thats what they are
17:11:31 <augur> anyway, eitherway, you have to unpack the zip
17:11:36 <augur> then you usepackage{foo.sty}
17:11:44 <elliott> augur: ...
17:11:47 <elliott> augur: for one, you don't include the .sty
17:11:48 <augur> installing them permanently is another issue
17:11:52 <elliott> augur: for two, he wants to install them, not use them like that.
17:11:58 <augur> WELL FINE
17:11:59 <augur> go away
17:12:11 <elliott> no :p
17:16:08 <oklopol> elliott: oh it's not interesting yet, there were only two sides i had to wall, and the lighting is rather sparse
17:16:15 <oklopol> i can screenshot when i'm finished
17:16:22 <elliott> oklopol: 100x100 is still rather huge :P
17:16:25 <elliott> oklopol: have you seen my gigantic staircase
17:16:30 <oklopol> no
17:16:42 <elliott> oklopol: I've built a staircase from almost-level-0 (bedrock) to the very top of the map
17:16:55 <elliott> oklopol: and another one from sea level to the top of the map; after that there's a drop down to bedrock where the next staircase starts, wrapping around the other one
17:16:57 <elliott> so it makes a \/ shape
17:17:28 <elliott> oklopol: i've made a hole at the end of the one from the bedrock and i'm going to make another underground staircase, meeting up with the one at sea level
17:17:30 <elliott> tada
17:17:40 <elliott> oklopol: it's made out of cobblestone and is therefore fucking gigantic and ugly and grey, it's awesome
17:17:45 <elliott> you can see it from ages away
17:18:25 <oklopol> cool
17:18:47 <oklopol> i was thinking i'd make my world completely enemy inaccessible
17:18:57 <oklopol> well, probably not the whole infinite world, but this part of the island
17:19:13 <oklopol> or petafinite w/e
17:20:58 <augur> oko!
17:23:10 <elliott> oklopol: here's what'll blow yer mind
17:23:24 <elliott> oklopol: the map isn't actually infinite.
17:23:42 <oklopol> oko, augur!
17:23:49 <augur> :D
17:23:50 <augur> <3
17:23:51 <elliott> oklopol: the maximum is around eight times the surface area of the earth
17:23:55 <elliott> oklopol: (which would take 250 petabytes to store)
17:24:03 <elliott> oklopol: beacuse of coordinate bit-width or whatever
17:24:05 <oklopol> = petafinite
17:24:08 <elliott> oklopol: ah
17:24:10 <elliott> oklopol: well what i'm saying is
17:24:14 <elliott> oklopol: go to the edges and BUILD
17:24:19 <elliott> protect the whole thing :P
17:24:25 <oklopol> xD
17:24:27 <oklopol> what's at the border
17:24:39 <elliott> oklopol: probably [crash] :P
17:24:40 <elliott> oklopol: or uh
17:24:40 <elliott> oklopol: omg
17:24:42 <elliott> oklopol: if it wraps around
17:24:52 <elliott> oklopol: then the world is an INFINITE REPETITION OF THE SAME 4096 MILLION SQUARE KILOMETRE area :D
17:24:53 <Phantom_Hoover> What topology?
17:24:57 <elliott> Phantom_Hoover: flat
17:25:18 <Phantom_Hoover> You fool! You can't have a wraparound world with flat topology!
17:25:26 <elliott> Phantom_Hoover: it's magic
17:25:41 <Phantom_Hoover> Make it the projective plane!
17:26:14 <Phantom_Hoover> You could bump into yourself!
17:26:30 <oklopol> fucking farm animals mocking my 7 meter high wall by jumping on it
17:27:04 <augur> wtf are you playing
17:27:08 -!- eafkuor has joined.
17:27:18 <Phantom_Hoover> Minecraft.
17:27:25 <eafkuor> hi
17:27:34 <augur> oh god
17:28:25 <elliott> hi eafkuor
17:28:44 <elliott> oklopol: btw you'll need a ceiling, since animals spawn high in the air
17:28:54 <oklopol> huh?
17:28:59 <eafkuor> I invented a stupid esoteric language and wrote a Java interpreter
17:28:59 <elliott> oklopol: seriously
17:29:00 <oklopol> so enemies don't die if they fall?
17:29:10 <elliott> oklopol: they do but only if they fall really far it hink
17:29:11 <elliott> oklopol: *i think
17:29:13 <elliott> oklopol: also chickens don't
17:29:16 <eafkuor> I was wondering if I should directly create a page on esolang or not
17:29:30 <elliott> oklopol: in ineiros' pit that went right down to slightly above bedrock, he got bacon all the time from cows dying due to the fall, but chickens survived :D
17:29:33 <elliott> eafkuor: yes
17:29:43 <elliott> eafkuor: we can never have enough stupid languages.
17:29:47 <eafkuor> allright, I'm on it
17:29:49 <eafkuor> ahah
17:29:50 <eafkuor> ok
17:30:53 <Phantom_Hoover> We never make stupid languages, so /someone/ has to.
17:31:05 <elliott> Phantom_Hoover: yes we do!
17:31:28 <Phantom_Hoover> What was the last stupid language we made on this channel?
17:32:15 <elliott> Phantom_Hoover: Brainfuck/index.php
17:32:42 <Phantom_Hoover> Oh, that.
17:32:54 -!- sftp has quit (Remote host closed the connection).
17:33:23 <Phantom_Hoover> *Befunge
17:33:34 <eafkuor> you consider befunge stupid?
17:34:36 <Phantom_Hoover> No, the language elliott made was called Befunge/index.php
17:34:43 <eafkuor> ohhh
17:34:50 <elliott> er, right
17:35:08 <elliott> eafkuor: spammers had been attacking a page called Talk:Befunge/index.php for no apparent reason
17:35:24 <elliott> ais523 protected it to stop them, noting that it could be unlocked in the unlikely event that someone created a language named that
17:35:26 <elliott> so i had to :)
17:35:43 <eafkuor> omg
17:35:48 <elliott> http://esolangs.org/wiki/Befunge/index.php
17:36:16 <elliott> (oh, and it turns out it's both TC and not: http://esolangs.org/wiki/Talk:Befunge/index.php)
17:36:16 <Phantom_Hoover> It's Befunge \cup Brainfuck execution instruction.
17:36:17 <eafkuor> have you written an interpreter?
17:36:41 <elliott> eafkuor: no, I'm not quite good enough at deluding myself to believe that it would be a worthwhile or fun use of my time :)
17:37:24 <eafkuor> right ;)
17:37:25 -!- poiuy_qwert has joined.
17:37:29 <oklopol> elliott: i have to admit that is one stupid language
17:37:37 <Phantom_Hoover> elliott, it's just a matter of gluing a BF interpreter to a Befunge one.
17:37:42 <elliott> Phantom_Hoover: precisely
17:37:54 <elliott> oklopol: yeah, but at least it's ambiguously TC
17:38:00 <elliott> oklopol: depending on your definition of TC, and everyone has their own
17:38:20 <oklopol> yeah
17:38:25 <oklopol> well, i don't have even one
17:38:37 <oklopol> i'm undecided
17:42:08 -!- wareya has quit (Read error: Connection reset by peer).
17:42:09 -!- Sasha has quit (Read error: Connection reset by peer).
17:43:16 -!- wareya has joined.
17:45:45 -!- Sasha has joined.
17:46:54 <Phantom_Hoover> You know, the world needs a language which is written completely in TeX.
17:47:15 <Phantom_Hoover> Epigram 1 was getting there, but Epigram 2 lost the cool syntax.
17:47:23 <Phantom_Hoover> *LaTeX, I suppose.
17:49:04 <elliott> Phantom_Hoover: that makes no sense :P
17:49:10 <elliott> Phantom_Hoover: also, epigram 2 has the cool syntax
17:49:12 <elliott> Phantom_Hoover: see the papers
17:49:14 <elliott> it just isn't d one yet
17:49:18 <Phantom_Hoover> elliott, it does?
17:49:31 <elliott> *done
17:49:32 <elliott> Phantom_Hoover: yes
17:49:39 <elliott> Phantom_Hoover: the actual syntax is ascii, and always has been
17:49:40 <Phantom_Hoover> I thought it only had that half-finished, basic plaintext syntax.
17:49:48 <elliott> Phantom_Hoover: but it's rendered in that cute form
17:50:08 <Phantom_Hoover> Well, it ought to never have ASCII involved EVER!
17:56:40 <Phantom_Hoover> I want to do a esolang with it...
17:56:52 <Phantom_Hoover> Some sort of minimalist declarative language.
17:59:34 -!- kar8nga has joined.
18:10:10 -!- Slereah has quit.
18:10:22 <oklopol> mining down a mountain is more work than i'd hoped
18:13:29 <oklopol> what can you do about the green exploders, is shooting the only way to deal with them, since sunlight doesn't seem to kill them
18:14:34 <elliott> oklopol: http://www.minecraftwiki.net/wiki/Creeper
18:14:45 <oklopol> :D
18:14:52 <elliott> oklopol: it has a bit of info there
18:15:55 <eafkuor> Hey guys, I'm writing the esolang page for my language
18:16:16 <eafkuor> can you suggest a good website to upload the interpreter?
18:16:40 <eafkuor> or should I just make a website?
18:17:39 <elliott> eafkuor: Well, if the interpreter is just one file, you can put it on the wiki.
18:17:41 -!- sftp has joined.
18:17:50 <eafkuor> yes it is
18:17:53 <elliott> For instance, User:Eafkuor/Languagename_interpreter, then just do
18:18:00 <elliott> <pre><nowiki>...the interpreter...</nowiki></pre>
18:18:08 <elliott> And you can put stuff above that to document the interpreter.
18:18:13 <elliott> Then just link that from the esolang's page.
18:18:25 <eafkuor> nice, I'll do that thanks
18:18:49 <eafkuor> It's just a 64Kb jar file so I won't waste too much space on the server ;)
18:19:08 <zzo38> eafkuor: You can post only text files in there
18:19:17 <eafkuor> ohhhhh
18:19:29 <eafkuor> allright i'll upload it somewhere else
18:19:44 <elliott> eafkuor: erm
18:19:47 <elliott> eafkuor: please give source code
18:20:38 <eafkuor> it's various .java files
18:20:50 <eafkuor> and a jpg packed into the jar
18:20:54 <Phantom_Hoover> eafkuor, please. There's no reason whatsoever not to release the source.
18:21:19 <eafkuor> ok sure, it's not that I don't want to! It's just that it's 5 classes
18:21:21 <zzo38> The .jar file is like a ZIP file, so you can include the source-codes inside of the .jar file if you want to do so
18:21:38 <Phantom_Hoover> eafkuor, so you can upload a jar but not a .tgz?
18:21:43 <elliott> Phantom_Hoover: oh, give him a rest
18:21:50 <elliott> stop lynching him :P
18:22:03 -!- Guest49365 has joined.
18:22:06 <Phantom_Hoover> elliott, I've said /two things/ to him!
18:22:12 <Phantom_Hoover> Two!
18:22:18 <eafkuor> guys my first language is not english don't bash me if I look retarded;)
18:22:25 <elliott> Phantom_Hoover: You're still hounding him.
18:22:27 <elliott> eafkuor: nah, you don't
18:22:52 <eafkuor> I'm having enough trouble already writing a decent esolang page
18:23:09 <elliott> hehe
18:23:10 <zzo38> (Depending on how you created the .jar file and what computer you use and the other programs you use with it; but this should work at least: Rename the .jar file to .zip and then add the .java source files and then rename back to .jar)
18:23:13 <elliott> we can fix it up afterwards
18:23:21 <elliott> olsner: so i got recursion working
18:23:29 <elliott> #define empty
18:23:29 <elliott> #define defer(x) x empty
18:23:29 <elliott> #define expand(...) __VA_ARGS__
18:23:29 <elliott> #define A(x) if(x, okay, defer(A_id())(not(x)))
18:23:34 <elliott> olsner: A(true) = okay, A(false) = okay
18:23:59 <eafkuor> ok!
18:24:00 <coppro> h8 u
18:24:13 <elliott> coppro hates me for making cpp beautiful
18:24:40 <olsner> elliott: how are if, okay, A_id and not defined?
18:24:47 -!- kar8nga has quit (Remote host closed the connection).
18:25:08 <elliott> olsner: #define A_id() A
18:25:09 <elliott> okay isn't defined
18:25:10 <elliott> it's just a symbol
18:25:17 <elliott> #define true(x, y) x
18:25:18 <elliott> #define true_id() true
18:25:18 <elliott> #define false(x, y) y
18:25:18 <elliott> #define false_id() false
18:25:18 <elliott> #define if_(c, x, y) c##_id()(x, y)
18:25:18 <elliott> #define if(c, x, y) if_(c, x, y)
18:25:20 <elliott> #define if_id() if
18:25:23 <elliott> #define not(x) if(x, false, true)
18:25:24 <elliott> are the booleans
18:25:30 <elliott> really i should just define _id() for everything, like chaos-pp
18:26:01 <elliott> wait wtf
18:26:02 <elliott> it worked a second ago
18:26:05 <elliott> why did it stop working ;__;
18:26:10 <eafkuor> the magic of c++
18:26:22 <elliott> eafkuor: this is C. in fact it's not even C
18:26:25 <elliott> it's just the C preprocessor
18:26:38 <eafkuor> yes i know ;)
18:28:10 <elliott> and it worked a second ago wtf :)
18:28:32 <elliott> i wonder if i just forgot to save before testing
18:32:19 <eafkuor> elliott, if you want to take a look at my page to check for English errors.. :D
18:32:30 <elliott> sure
18:32:39 <eafkuor> http://www.esolangs.org/wiki/BAM128
18:33:50 <elliott> eafkuor: I made a few tweaks, but it looks good to me.
18:34:14 <eafkuor> wow so quick, thanks ;)
18:34:35 <eafkuor> I hope it's understandable because the rules are not as simple as brainfuck's
18:34:43 <elliott> you're welcome :)
18:34:48 <elliott> it looks understandable to me
18:35:00 <eafkuor> ok thanks =)
18:35:18 <elliott> eafkuor: we are quite good at understanding nonsense: http://esolangs.org/wiki/Malbolge :)
18:35:45 <eafkuor> oh yes, I was scared when I checked malbolge
18:36:01 <eafkuor> the inventor must have been on drugs
18:36:03 <eafkuor> :D
18:39:12 <elliott> i blame olsner for breaking my prorgam
18:39:40 <olsner> i blame elliott for writing it in the first place
18:39:50 <elliott> olsner: it's all your fault :)
18:40:30 <olsner> elliott: nope, it is entirely your fault
18:40:37 <elliott> olsner: no u
18:48:19 <Phantom_Hoover> I blame the Russians.
18:48:59 <olsner> in soviet russia, russians blame you
18:49:19 <olsner> this is now Phantom_Hoover's fault
18:49:40 <Phantom_Hoover> I blame Vorpal.
18:49:44 <Phantom_Hoover> No, wait.
18:49:57 <Phantom_Hoover> I blame sshc, the pustuled creep.
18:57:53 <eafkuor> I uploaded the interpreter on dropbox
18:58:34 <eafkuor> I don't think I was a totally bad idea, the file contains the interpreter, the source code and 3 example programs
19:01:18 <elliott> cool
19:06:14 <elliott> Phantom_Hoover: I would just like to say that Firefox's default configuration does not allow one to force the browser to access a webpage reported as an attack site.
19:06:37 <elliott> "Ignore this warning" -> "Get me out of here!" or "This isn't an attack site..."; the latter just gives you a page explaining what malware is and the like.
19:14:46 -!- GreaseMonkey has joined.
19:17:21 <Phantom_Hoover> elliott, example?
19:17:36 <elliott> Phantom_Hoover: http://www.antipixel.com/blog/archives/2002/10/22/steal_these_buttons.html
19:17:59 <Phantom_Hoover> Works fine for me.
19:19:01 <Phantom_Hoover> It is very obnoxious.
19:21:05 -!- anon716 has joined.
19:21:49 <elliott> Phantom_Hoover: Oh, it works *now*.
19:21:58 <elliott> Phantom_Hoover: Seems to block the CSS.
19:24:19 <anon716> hoho
19:25:24 <elliott> anon716: ohoh
19:26:06 -!- poiuy_qwert has quit (Quit: This computer has gone to sleep).
19:27:43 -!- anon716 has changed nick to anon994.
19:28:03 -!- Phantom_Hoover has quit (Ping timeout: 245 seconds).
19:30:46 -!- anon994 has quit (Read error: Connection reset by peer).
19:37:18 -!- distant_figure has joined.
19:37:43 -!- distant_figure has changed nick to hiato.
19:38:03 -!- hiato has quit (Client Quit).
19:40:21 -!- Phantom_Hoover has joined.
19:57:35 <Vorpal> ineiros, mind doing new maps? Seems like no one is playing atm
19:59:48 <elliott> Playing now.
20:00:09 -!- Phantom_Hoover has quit (Ping timeout: 245 seconds).
20:02:37 -!- kar8nga has joined.
20:03:34 <ineiros> Vorpal: A bit later.
20:04:13 <Vorpal> ineiros, okay
20:05:27 <Vorpal> [download] 11.1% of 120.67M at 44.01k/s ETA 41:37
20:05:30 <Vorpal> this is a disater
20:05:36 <Vorpal> for a 10 minute video
20:05:37 <Vorpal> XD
20:05:46 <Vorpal> youtube fails
20:06:07 -!- Phantom_Hoover has joined.
20:06:22 <Phantom_Hoover> fizzie, can I have the loan of one of your furnaces?
20:06:52 <oklopol> does it take too long to make one?
20:07:08 <Phantom_Hoover> He has about 6 already in place in a room in the bunker.
20:07:13 <Phantom_Hoover> We can parallelise.
20:08:53 <fizzie> Uh, well. Sure, you can use one, but they're made of cobblestone, you know. You can build any number of your own.
20:09:08 <fizzie> You're not supposed to be spending time in the bunker, you know.
20:09:08 <Phantom_Hoover> Sure, but it's for half-steps
20:09:18 <Phantom_Hoover> So we need all the cobbles we can get.
20:09:21 <oklopol> i have about 3000 cobblestone atm
20:09:45 <oklopol> well okay not really, but anyway one small container
20:09:46 <fizzie> Going to take the skyway to Mt. Hoover or what?
20:10:04 <fizzie> I have a large box full of it in a single-player game: stopped collecting when it got full.
20:10:13 <oklopol> yeah
20:10:16 <Phantom_Hoover> Yes. Well, we'll probably get them halfway there then get bored.
20:12:48 -!- sftp has quit (Read error: Connection reset by peer).
20:16:09 -!- sftp has joined.
20:23:07 -!- eafkuor has quit (Quit: Few women admit their age. Few men act theirs.).
20:26:38 -!- augur has quit (Remote host closed the connection).
20:34:24 <elliott> Phantom_Hoover: so?
20:34:28 <elliott> Phantom_Hoover: what's the relevance of 8:30
20:34:47 <Phantom_Hoover> There isn't one.
20:35:00 <elliott> Phantom_Hoover: then why did you remark on it :P
20:35:07 <Phantom_Hoover> I'm just trying to keep Minecraft down so that it doesn't infect my brain.
20:35:15 <Phantom_Hoover> Well, I timed out.
20:35:23 <fizzie> So did I.
20:35:30 -!- zzo38 has quit (Remote host closed the connection).
20:35:42 <Phantom_Hoover> You lay the skyway, I'll lay the blocks when next I connect; that could be a while, though.
20:35:46 <fizzie> Anyway, the spacing I used seems to be more like 16 or so.
20:36:56 -!- eafkuor has joined.
20:36:59 -!- sftp has quit (Remote host closed the connection).
20:49:48 -!- augur has joined.
21:16:27 <cheater00> Q. How many Prolog programmers does it take to change a light bulb?
21:16:27 <cheater00> A. No.
21:18:40 <olsner> prolog jokes! :D
21:18:44 <elliott> olsner: Yes.
21:18:58 <elliott> olsner: (You should have said "tell me some prolog jokes".)
21:19:34 <oklopol> elliott: i don't get it
21:19:40 <oklopol> was that another prolog joke
21:19:44 <elliott> oklopol: yes
21:19:59 <oklopol> hmm, it seems i'm dumber than usual today
21:20:15 <oklopol> or it is something interpreters say
21:20:47 <elliott> oklopol:
21:20:50 <elliott> ?- prolog_joke(X).
21:20:51 <elliott> X = a joke
21:20:54 <elliott> X = another joke
21:20:55 <elliott> Yes.
21:21:03 <elliott> ?- prolog_joke(X), funny(X).
21:21:04 <elliott> No.
21:21:14 <elliott> i.e. there are a bunch of prolog jokes, and none of them are funny
21:21:21 <elliott> oklopol: so let's just pretend the X = lines don't exist because they're predicates.
21:21:23 <elliott> thus joke
21:21:24 <elliott> bad joke
21:21:25 <elliott> terrible joke
21:22:02 -!- sftp has joined.
21:22:34 <oklopol> i'm still not sure i get it :D
21:23:17 <oklopol> your "Yes" could've been a response to "tell me some prolog jokes", because the things before it wouldn't've been worth saying?
21:26:09 <elliott> oklopol:
21:26:16 <elliott> <olsner> Tell me some prolog jokes. (?- prolog_joke(X).)
21:26:19 <elliott> <me, interpreter> Yes.
21:26:27 <elliott> i.e. it is true that prolog_joke(X).
21:26:38 <elliott> because you can substitute, e.g., X = "<olsner> Tell me some prolog jokes. (?- prolog_joke(X).) <me, interpreter> Yes."
21:26:40 <elliott> which is a prolog joke
21:26:47 <elliott> and thus prolog_joke("<olsner> Tell me some prolog jokes. (?- prolog_joke(X).) <me, interpreter> Yes.") is true
21:26:51 <elliott> ergo prolog_joke(X) is true
21:26:55 <elliott> and the interpreter conveys this with "Yes."
21:28:32 <oklopol> AH!
21:30:21 -!- Sasha2 has joined.
21:31:32 -!- Sasha has quit (Ping timeout: 250 seconds).
21:42:57 <elliott> oklopol is now feeling stupid
21:43:25 <oklopol> yeah
21:43:43 <Phantom_Hoover> elliott, but if you use a variable in the predicate, it should still say what it equals even if it's Yes.
21:44:00 <elliott> Phantom_Hoover: No; Prolog is based on predicates with boolean results.
21:44:05 <elliott> Printing the possible values of X is just an extra diagnostic.
21:44:12 <elliott> The only *result*, at the top level, is "Yes."
21:44:13 <elliott> Anyway shut up.
21:44:26 <Phantom_Hoover> A diagnostic that's always printed when you use ?- IIRC.
21:44:29 <Phantom_Hoover> Let me check.
21:47:37 <elliott> Phantom_Hoover: Yes it is.
21:47:38 <elliott> Shut up.
21:50:55 -!- Quadrescence has quit (Ping timeout: 245 seconds).
21:53:57 <Phantom_Hoover> I love the way DMM's blog is basically IWC's annotations.
21:56:41 <Vorpal> fizzie: reconnect
21:56:44 <Vorpal> fizzie, you timed out
21:58:44 -!- sebbu2 has joined.
21:58:59 -!- MigoMipo has quit (Read error: Connection reset by peer).
22:00:03 -!- sebbu has quit (Ping timeout: 265 seconds).
22:00:04 -!- sebbu2 has changed nick to sebbu.
22:01:28 -!- Zuu has quit (Read error: Connection reset by peer).
22:04:59 <Phantom_Hoover> elliott, what was that law that said you should be conservative in what you do but liberal in what you accept?
22:06:05 <elliott> Phantom_Hoover: Postel's.
22:06:54 <olsner> being liberal in what you accept is what has made the web what it is today
22:07:21 <olsner> the web as in html, http, and all the related craptastica
22:09:35 -!- kar8nga has quit (Remote host closed the connection).
22:11:22 -!- ais523 has quit (Remote host closed the connection).
22:16:20 <elliott> olsner: yes, a huge source of useful and amusing information
22:16:51 <elliott> olsner: as soon as you add an even vaguely dynamically-generated page, violating Postel's law equates to assuming people always write completely *perfect* progarms
22:16:54 <elliott> *programs
22:17:03 <elliott> most programs when they have a bug, one part of the program doesn't work, but the rest does
22:17:11 <elliott> if you're strict, and refuse to load any web page with invalidity,
22:17:17 <elliott> that's like making the whole program not work because of a single bug
22:17:20 <elliott> it's stupid.
22:17:53 -!- Quadrescence has joined.
22:22:05 -!- augur has quit (Remote host closed the connection).
22:34:14 -!- sftp has quit (Remote host closed the connection).
22:36:58 -!- sftp has joined.
22:40:51 <elliott> Vorpal: you've were on the server mere minutes before me.
22:41:21 <Vorpal> elliott, hours. not minutes
22:41:26 <elliott> Vorpal: Ehm, no.
22:41:30 <Vorpal> about 1.5 hours
22:42:14 -!- cheater00 has quit (Ping timeout: 245 seconds).
22:55:47 -!- Zuu has joined.
22:56:03 -!- Zuu has quit (Changing host).
22:56:04 -!- Zuu has joined.
22:56:44 -!- cheater00 has joined.
23:02:29 * Phantom_Hoover → sleep
23:02:44 -!- Phantom_Hoover has quit (Remote host closed the connection).
23:04:59 <Zuu> me too
23:20:33 -!- augur has joined.
←2010-11-20 2010-11-21 2010-11-22→ ↑2010 ↑all