00:00:01 <augur> "Proof. With SCIENCE!"
00:00:06 <augur> oh thats very constructive.
00:00:10 <lament> (apparently you can use static rather than global, which is better since now it's confined to the file where the class is defined. So it's almost like a real class variable. Still it's just a C feature, and doesn't really work as a class variable due to the initialization issue)
00:00:23 <tusho> i showed you how it was done, augur.
00:00:25 <tusho> you just ignored me.
00:00:43 <augur> no, you said it could be done like so and so.
00:00:46 <augur> you showed nothing.
00:00:56 <augur> Lament, on the other hand, provided a quote from the specs.
00:01:04 <augur> or from the docs, rather.
00:01:31 <augur> the fact that you mock requests for evidence is all the demonstration anyone needs of your idiocy.
00:01:35 <tusho> i said, and then showed code examples, augur.
00:01:47 <lament> see, if i go to ##c and ask them whether C has objects, and they say no, and if I then ask them to provide evidence from documentation for that
00:01:51 <tusho> while lament backed up why this was as it was.
00:02:02 <lament> that would be somewhat unreasonable of me
00:02:03 <augur> the fact that you then go on to request evidence of your own, when i humorously make counter claims, is further proof.
00:02:26 <augur> i understand that lament, but this is not #objectivec
00:02:45 <augur> and its not unreasonable in this context
00:03:01 <lament> well, does C have objects? :)
00:03:11 <augur> given that Objective C is an OO language that has something that looks and behaves fairly similarly to class variables.
00:03:20 -!- poiuy_qwert has joined.
00:03:21 <tusho> 'humorously make counter claims' = 'troll while stating your point without any evidence after we have provided quite a bit'
00:03:46 <augur> tusho, you have yet to learn to finer points of parody.
00:03:59 <augur> you never provided evidence.
00:04:03 <augur> lament did, eventually.
00:04:06 <tusho> if that was the finer points of parody, I prefer the coarser type
00:04:19 <oklopol> lament: just kick the kid :P
00:04:28 <tusho> oklopol: kid is whom in this case?
00:04:34 <tusho> pretty sure lament and me are arguing with augur
00:04:36 <tusho> not any other combination
00:04:45 <oklopol> tusho: well, i usually agree with lament
00:04:52 <tusho> (and while lament was telling you why it was the only way, I provided a code example showing that you _could do it that way_)
00:05:03 <augur> i think i agree with lament here too, for the most part. lol
00:05:05 <tusho> (why would I be a duplicate of lament? we were sharing the work out.)
00:05:16 <tusho> augur: ... but not me, even though I am making the same damn argument?
00:05:19 <augur> i never said you couldnt do it using global variables
00:05:49 <augur> you werent making any arguments, which is the problem. you were making noise.
00:05:54 <tusho> augur: fine, it sounded like you were.
00:06:01 <tusho> you could have specified further.
00:06:09 <augur> specified what further?
00:06:14 <augur> there was nothing to specify
00:06:15 <tusho> even so, the attacks made on me after that were completely unneccessary
00:06:35 <augur> i wasn't making any argument so there was nothing i could specify
00:08:20 <augur> i dont even know why it was such a fucking big deal to begin with
00:08:47 <tusho> it wasn't, but you kept talking about it
00:08:52 <augur> "er.. doesn't objc have class vars?" "no." "oh? but..." "actually, they're just globals: <link>"
00:09:06 <augur> uh, tusho, i asked for evidence.
00:09:11 <augur> after that it was all up to you.
00:09:22 <augur> twenty minutes later
00:09:48 <lament> augur: instead of "oh? but...", there actually was a bunch of "yes it does. yes it does."
00:10:11 <augur> actually lament, there was not "yes it does yes it does"
00:10:22 <augur> but what about this: [NSColor redColor] and other examples.
00:10:35 <augur> which is the "but..."
00:10:36 <tusho> and we explained actually augur
00:10:46 <tusho> then you went back to yes it does. yes it does.
00:10:53 <oklopol> Slereah_: anyone who spells IQ with a C has trouble with their IQ!
00:11:10 <augur> tusho, read your logs.
00:11:41 <oklopol> irc would be a better place without them
00:11:58 <augur> i said yes it does once
00:12:10 <augur> in saying that objective c has what amounts to class variables.
00:12:41 <augur> anyway this is silly.
00:12:45 <augur> now were arguing about arguing.
00:12:55 <augur> and all this does is breed bad blood.
00:13:03 <augur> im sorry i brought up your age against you, tusho.
00:13:25 <tusho> pretty sure it bled bad blood when you faked a quote from RodgerTheGreat about me burning and them him agreeing, but I agree. let's shut up about it. this is ridiculous
00:13:33 <augur> i promised not to do that and i broke that promise.
00:14:02 <augur> uh.. i faked the quote with the fairly obvious fact that it was fake. :P
00:14:12 <tusho> yeah, I was referring to his following up of it, not you
00:14:21 <tusho> let's talk about esolangs
00:14:31 <tusho> (LIKE OBJ-C CAUSE IT DOESN'T HAVE CLASS VARIABLES HUR HUR HUR)
00:15:26 <augur> some people would say Obj C isnt object oriented.
00:15:53 <augur> then again, its a good question what object oriented really means, in the context of ObjC, given that Obj C is just sugar.
00:16:22 <lament> i think it's best to not attempt to define object-oriented
00:16:24 <tusho> smalltalk is pretty close to 'real object orientation', i guess
00:16:36 <lament> there're programming languages, and they have features
00:16:53 <augur> i think Java is probably justifiably called object oriented
00:17:01 <augur> atleast in that it forces you to write with objects
00:17:08 <tusho> alan kay would certainly barf
00:17:10 <augur> you cant do shit in Java without using objects
00:17:15 <augur> oh im sure alan kay would
00:17:20 <tusho> doesn't make it object oriented though :)
00:17:39 <augur> and while i agree with him on this matter, he's not the smartest guy in the world.
00:17:53 <augur> so i wouldn't use his approval as the benchmark of OOness.
00:18:02 <tusho> but java has several bad stuff
00:18:08 <augur> oh ofcourse it does
00:18:11 <augur> its horrible and vil
00:18:28 <augur> just not fast enough
00:18:30 <tusho> it uses them as a clutch because it doesn't haev sufficient metaprogramming abilities to define accessors easily
00:18:34 <tusho> augur: thankfully the JVM isn't all that bad
00:18:41 <tusho> so lots of languages are going on it
00:18:43 <tusho> and reaping it's stdlib
00:18:47 <augur> everything Java based i've ever used has been shitty
00:19:02 <augur> except tiny programs written by science people
00:19:19 <augur> raping? whats this about raping?
00:19:23 <tusho> raping java's stdlib
00:19:25 <tusho> for their own benefit
00:19:30 <tusho> the new jvm languages
00:20:14 <augur> and here i thought we were talking about you again.
00:20:22 <augur> you mean they're compiling to JVM byte code?
00:20:44 <augur> what the fuck is it that makes Java so fucking shitty? can someone explain this to me?
00:20:48 <augur> i mean, its always slow
00:21:06 <augur> and its supposed multiplatformality is a joke
00:21:10 <tusho> augur: well, observer effect [ i think ] for one
00:21:15 <tusho> it's not actually THAT bad
00:21:20 <augur> oh my god dude it is
00:21:20 <tusho> but since you dislike it for being bad
00:21:28 <augur> its so fucking slow
00:21:28 <tusho> it gets in your mind really really bad
00:21:36 <tusho> it has a slow startup
00:21:39 <tusho> but it is not slow, no way
00:21:48 <tusho> it's not slow, augur :\
00:21:48 <augur> everything ive used in Java is slow as fuck
00:21:59 <augur> ive written JAVASCRIPT that runs faster than these things
00:22:19 <augur> you say its not slow, but run azureus/vuze
00:22:31 <augur> its also a resource hog for no fucking reason
00:22:47 <augur> everything ive ever used that was java sucked.
00:23:00 <augur> people tell me it doesnt suck but ive never seen it do anything but suck
00:23:01 <tusho> azuerus is a memory hog and slow, augur
00:23:08 <tusho> it has a slow startup, but the language itself is fast
00:23:15 <augur> then i must be getting all the shit programs
00:23:25 <augur> because azureus is like all the rest ive used.
00:23:32 <tusho> there's a lot of shit java programs, no doubt :p
00:23:38 <tusho> it makes it pretty darn easy to write them
00:23:42 <tusho> but one thing it is not is particularly slow
00:23:59 <augur> but i can only form an opinion based on what ive used so my opinion is still that java blows.
00:24:12 <tusho> s/java/a huge load of java applications/
00:24:21 <tusho> but not quite as much as it seems to via applications
00:25:01 <lament> i think a lot of java hating is because people disagree with its philosophy
00:25:21 <lament> it promotes a specific type of software engineering
00:25:29 <augur> lament how old are you?
00:25:32 <lament> that many people justifiably dislike
00:25:58 <augur> damn. too young for the #esoteric orgy im planning.
00:26:10 <tusho> lament: don't pretend.
00:26:14 <tusho> we all know you're 7.
00:26:18 -!- timotiis has quit (Connection timed out).
00:26:20 <tusho> we can tell from the way you speak!
00:26:35 <augur> you have a lisp. we can hear it over the interwebs.
00:26:50 -!- Corun_ has changed nick to Corun.
00:27:03 <augur> slereah, are you coming? oklopol'll be there :o
00:27:09 <augur> ::orgies with oklopol and slereah::
00:30:41 <tusho> it's a shitty lisp though
00:31:16 <lament> ARC - stands for A Really Crappy
00:31:55 <augur> i dont know how much Arc varies from clisp
00:31:59 <augur> i like scheme tho.
00:32:06 <tusho> arc is just ... intolerably crap
00:32:26 <tusho> 2. Hype it. For 5 years.
00:32:39 <tusho> 3. Write a 1000-line Arc->Scheme compiler that renames 'lambda' to 'fn' and makes a few names shorter.
00:32:42 <augur> yeah that was a long time to make a language for
00:32:46 <tusho> 4. Make sure it doesn't support unicode.
00:32:54 <augur> but atleast its not JS2
00:32:56 <tusho> 5. Write a crappy, crappy web app library that won't scale and frankly sucks.
00:32:57 <augur> JS2 has been in the works for on
00:33:06 <tusho> 6. OMG!!!!! ARC!!! FUCK YEAH BITCHES I ROCK SUCK MY DICK <3
00:33:13 <augur> and its just Javariffic
00:33:41 <augur> who takes 10 years to design a language?
00:33:52 <augur> especially given the small amount thats been added
00:37:34 <lament> i've been learning a simple piano piece for 10 years
00:38:03 <lament> there's just always other stuff for me to do :)
00:42:48 -!- Slereah__ has joined.
00:44:57 <augur> you can learn a simple piano piece for life and still not grasp it, if its the right piece
00:45:18 <augur> but thats a completely different thing than adding classes to JS.
00:45:26 <augur> which is really all that JS2 amounts to.
00:45:57 <tusho> js2 adds optional static typing with quite some nice types
00:46:28 <tusho> including better debugging
00:46:33 <tusho> a nicer browser api
00:46:45 <tusho> and the type system is in fact very good
00:46:49 <tusho> it can type higher order functions and all
00:48:21 <tusho> oh, and does anyone find it funny how MS guys can never say javascript on their blogs
00:48:23 <tusho> it's always jscript
00:53:27 -!- Slereah__ has quit ("kthxbai").
01:01:06 -!- Slereah_ has quit (Read error: 110 (Connection timed out)).
01:01:23 <augur> thats because ms is afraid of getting sued by sun.
01:01:36 <augur> and i dont think any of those things warrant a 10 year development time.
01:01:55 <tusho> 'adding classes to JS./which is really all that JS2 amounts to'
01:01:59 <tusho> i was responding to that
01:03:18 <augur> i dont think those other features will be used terribly much.
01:03:29 <augur> i think the only thing that will really be used extensively, and rightfully so, is the classes.
01:03:57 <augur> the debugging sure, but the API yes ofcourse
01:04:24 <augur> namespaces? probably not.
01:04:38 <tusho> uhm, all the ecmascript4 code people are prototyping up is in namespaces
01:04:41 <tusho> they're just java packages
01:04:44 <tusho> namespace foo.bar.baz;
01:05:01 <tusho> quite a bit of it uses types, too
01:05:18 <augur> i mean in real programs, not the imaginary beta programs. :P
01:05:28 <tusho> there are prototype compilers
01:05:33 <augur> so tusho are you coming to the #esoteric orgy?
01:05:35 <tusho> and there are people using them for real to semi-real things
01:06:11 <augur> because you live with your parents.
01:06:28 <augur> and i dont think they want a bunch of guys from #esoteric fucking their son
01:06:31 <augur> i mean lets be serious
01:06:48 <augur> who wants #esoterics fucking their kids, its a terrifying prospect
01:06:54 <oklopol> many 19-year-olds live with their parents here
01:06:55 <tusho> augur: same problem with oklopol, you know.
01:07:13 <augur> oklopol, you live with your parents? hm. i had figured you lived with your girlfriend.
01:07:21 <augur> since she seems to be around so much.
01:07:23 <oklopol> i haven't said either one of those
01:07:56 <oklopol> well, i may have, but that data may be outdated
01:08:19 <oklopol> how i live isn't public info really
01:09:01 -!- oklopol has quit (clarke.freenode.net irc.freenode.net).
01:09:01 -!- bsmntbombdood has quit (clarke.freenode.net irc.freenode.net).
01:09:11 -!- oklopol has joined.
01:09:13 <augur> theres a female in #esoteric?
01:09:15 <augur> and she's oklopol's girlfriend?
01:09:29 <tusho> i think it's just oklopol though
01:09:34 <augur> oklo, youre girlfriend lurks here?
01:09:37 -!- bsmntbombdood has joined.
01:09:40 <tusho> hes netsplit augur
01:09:49 <oklopol> you and your wild fantacies
01:09:51 <oklopol> first it was me, then it was my gf
01:09:53 <oklopol> when there's no proof it was either
01:09:55 <augur> not for me any more.
01:10:07 <tusho> ok then oklopol who is hotidlerchick
01:10:42 <augur> oklo, lemme see your girly
01:10:55 <tusho> oklopol: same ip, dude
01:11:07 <tusho> and they type like you
01:11:10 <tusho> and you never talk at the same time
01:11:39 <oklopol> tusho: i doubt we've ever had the same ip, but otherwise that sounds pretty sound.
01:11:41 <augur> now hes gonna write a script that lets him randomize message send times by half a second
01:12:00 <augur> oklopol, show me your girly
01:12:11 <augur> or better yet, show me you, naked, in high resolution
01:14:42 <tusho> augur: i assume you will be posting it in here for scientific study relating to the orgy.
01:15:08 <augur> tusho, i agree with you: wait wut
01:15:12 <oklopol> nooo it was just fo you my darling
01:15:14 <augur> cmon oklopol. WHERE IS IT
01:15:41 <augur> i will share nothing, have no fear!
01:15:59 <oklopol> i think the hotness of the pic made the tubes tighten up.
01:16:09 <tusho> augur: he's pulling an augur
01:16:27 <augur> its not a dumptruck its a series of tubes!
01:19:02 <augur> its a quote from an the american senator from alaska
01:19:17 <augur> the quote that spawned the whole "tubes" thing
01:19:19 <tusho> augur: dude. he knows that.
01:19:32 <augur> he might not, hes finnish.
01:19:39 <augur> and lives in finland.
01:19:41 <augur> they dont have the internet there!
01:19:59 <oklopol> augur: i don't understand what you meant by that, yes, that was what i was referring to
01:20:13 <oklopol> hey we have lots of internet!
01:20:39 <oklopol> we basically eat it for dinner
01:20:56 <augur> i hear its tasty smoked
01:27:36 -!- tusho has quit.
01:44:32 -!- cherez has quit (Remote closed the connection).
01:44:58 -!- cherez has joined.
02:22:05 -!- augur has quit (Read error: 110 (Connection timed out)).
04:16:11 -!- moozilla has quit (Read error: 54 (Connection reset by peer)).
04:24:11 -!- moozilla has joined.
04:29:19 <RodgerTheGreat> oklopol: oh haha, I get the joke- you type with your hands
05:13:45 -!- Parma-Quendion has joined.
05:14:21 -!- Corun has quit ("This computer has gone to sleep").
05:15:40 -!- Quendus has quit (Read error: 104 (Connection reset by peer)).
05:17:37 -!- Parma-Quendion has changed nick to Quendus.
06:15:38 -!- poiuy_qwert has quit.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
09:10:19 -!- augur has joined.
09:12:26 <oklopol> RodgerTheGreat: good for you, i was not as lucky
10:49:00 -!- Corun has joined.
11:05:41 -!- augur has quit (Read error: 110 (Connection timed out)).
11:50:06 -!- Slereah_ has joined.
12:54:33 -!- Corun has quit ("This computer has gone to sleep").
13:05:34 -!- fizzie has quit (clarke.freenode.net irc.freenode.net).
13:05:34 -!- atsampson has quit (clarke.freenode.net irc.freenode.net).
13:05:34 -!- Dewi has quit (clarke.freenode.net irc.freenode.net).
13:05:34 -!- lifthras1ir has quit (clarke.freenode.net irc.freenode.net).
13:05:34 -!- shachaf has quit (clarke.freenode.net irc.freenode.net).
13:08:22 -!- atsampson has joined.
13:08:22 -!- Dewi has joined.
13:08:22 -!- shachaf has joined.
13:08:22 -!- lifthras1ir has joined.
13:08:22 -!- fizzie has joined.
13:53:10 -!- Corun has joined.
14:22:53 -!- pikhq has joined.
14:35:17 -!- oklopol has quit (Read error: 110 (Connection timed out)).
15:06:53 -!- oklopol has joined.
15:28:11 -!- timotiis has joined.
15:36:22 -!- pikhq has left (?).
15:40:51 -!- pikhq has joined.
15:58:52 -!- timotiis has quit (Read error: 110 (Connection timed out)).
16:04:06 -!- ais523 has joined.
16:20:34 -!- tusho has joined.
16:21:04 <ais523> at least that time I started writing before your message arrived
16:21:11 <ais523> but yours came before I finished typing it
16:21:18 <tusho> I typed it after joining.
16:21:26 <tusho> So yay. that was fair.
16:21:30 <ais523> you win that one fairly
16:27:18 -!- ais523 has quit (Remote closed the connection).
16:29:01 -!- ais523 has joined.
16:34:23 -!- Oyama has joined.
16:40:27 -!- ais523 has quit (Remote closed the connection).
16:40:48 -!- ais523 has joined.
16:59:17 -!- Oyama has quit (Remote closed the connection).
17:09:30 -!- oklopol has quit ("( www.nnscript.com :: NoNameScript 4.2 :: www.regroup-esports.com )").
17:30:29 -!- oklopol has joined.
17:33:09 -!- atrapado has joined.
17:36:44 <ais523> are you in the mood for learning more INTERCAL?
17:36:48 <ais523> or should I do something else?
17:37:53 <ais523> well, before I had to go yesterday I gave you a simple program that did output to run
17:38:03 <ais523> READ OUT is the output command
17:38:15 <ais523> and #123 is how you write the constant 123 in INTERCAL
17:38:29 <ais523> although INTERCAL supports numbers up to 32-bit, constants can be at most 16-bit
17:38:41 <ais523> and you need to use expressions in order to create larger values
17:39:11 <ais523> also, READ OUT outputs in Roman Numerals
17:39:26 <ais523> and it can only be used to output variables or constants
17:39:32 <oklopol> also think i've heard oerjan or you mention it
17:39:39 <ais523> if you want to output an expression, you have to assign it to a variable first
17:39:57 <ais523> ok, probably best to move onto variables now
17:40:05 <ais523> you have 65535 16-bit variables
17:40:10 <ais523> and 65535 32-bit variables
17:40:20 <ais523> a 16-bit's variable's name is . followed by a number
17:40:32 <ais523> and a 32-bit variable's name is : followed by a number
17:40:46 <ais523> you assign to a variable using the <- command
17:41:41 <ais523> so you can write a simple test program like this:
17:41:49 <ais523> DO .1 <- #10 DO READ OUT .1 PLEASE GIVE UP
17:42:02 <ais523> (whitespace is unimportant in INTERCAL, sort of like it is in C)
17:42:19 <ais523> also, note that the DO/PLEASE ratio becomes important once you have at least 3 commands
17:42:31 <ais523> the ratio must be from 2:1 to 4:1 to avoid an error
17:42:33 <oklopol> i'm assuming #'s are in base 10
17:42:38 <ais523> oklopol: yes, they are
17:42:41 <oklopol> because you didn't mention anything about a base
17:42:52 <ais523> the opposite of READ OUT is WRITE IN, by the way
17:42:58 <ais523> you have to spell out the number as digits in allcaps
17:43:03 <ais523> when entering the number
17:43:18 <ais523> that accepts several non-English language, though, most of which you're unlikely to know
17:43:25 <ais523> Latin's probably the second-most-popular on the list
17:43:47 -!- atrapado has quit (Remote closed the connection).
17:43:51 <ais523> also Volapuk, Tagalog, Basque, Georgian, Nahaiutl, and a few others I can't remember
17:43:55 <ais523> you can look it up, though
17:44:05 <ais523> do you know numbers in it?
17:44:17 <ais523> probably best to stick to English, then
17:44:25 <ais523> besides, the accents are a pain to get right
17:44:43 <ais523> now, INTERCAL-72 has 5 operators
17:44:48 <ais523> none of which are entirely standard
17:45:04 <tusho> ais523: i'd quite like to have intercal lessons, but i'd prefer them personally, so not now
17:45:06 <ais523> as in, they're standard in INTERCAL
17:45:13 <ais523> but not used by other languages
17:45:20 <ais523> oklopol: well, there's an accent on the u for starters
17:45:27 <oklopol> ais523: you mean the umlaut?
17:45:37 <ais523> it's not really an accent, I suppose
17:45:41 <oklopol> accent is a weird term for it
17:45:49 <oklopol> since it isn't an accent :P
17:45:52 <ais523> oklopol: it's because I'm used to thinking in English
17:46:14 <ais523> there are three unary operators, AND, OR, and XOR
17:46:21 <ais523> the unusual thing about them comes from them being unary
17:46:32 <ais523> basically, if you imagine a number written in binary
17:46:45 <ais523> then the bottom bit of AND of that number is the AND of its bottom two bits
17:47:00 <ais523> the second-least-significant bit is AND of the second- and third- least-significant bits
17:47:15 <ais523> with the most significant bit of the result being the AND of the most and least significant bits
17:47:15 <oklopol> can you show more graphically?
17:47:59 <ais523> #&13 is 0100, which is 0&1 1&1 1&0 0&1
17:48:21 <ais523> (in INTERCAL, unary operators come after the first character of their argument)
17:49:00 <ais523> XOR is an interesting one
17:49:09 <ais523> the portable way to write it is V then a literal backspace then -
17:49:14 -!- augur has joined.
17:49:19 <ais523> but C-INTERCAL also accepts ? because it's easier to type
17:49:45 <tusho> ais523: this is very late morning.
17:49:55 <augur> im in ansbach so its really 7pm but its morning back in the states :p
17:50:00 <ais523> tusho: it's about 10 to 6 in your time zone
17:50:07 <tusho> ais523: very very very late morning, yes
17:50:21 <ais523> oklopol: anyway, those operators aren't particularly useful by themselves
17:50:26 <ais523> there are two binary operators too
17:50:28 -!- timotiis has joined.
17:50:30 -!- jix has joined.
17:50:34 <ais523> which are called ~ and $
17:50:45 <ais523> $ is probably easier to explain, it alternates bits in its arguments
17:50:53 <ais523> so the last bit of $'s result is the last bit of its second argument
17:51:02 <ais523> the penultimate bit is the last bit of its first argument
17:51:14 <ais523> the 3rd-last bit of its result is the 2nd-last bit of its second argument
17:51:21 <oklopol> (binary_operator number) = (binary_operator number (leftshift number 1)), right?
17:51:46 <ais523> oklopol: rotate, rather than shift, also it's a rightshift
17:52:13 <ais523> $ is pronounced 'mingle' or 'interleave', by the way
17:52:56 <ais523> also, mingles are a pain to do in your head
17:53:03 <ais523> more so than any of the other operators, I find
17:53:20 <ais523> CLC-INTERCAL's guestbook uses them for its CAPTCHA
17:53:25 <ais523> which I often get wrong
17:53:37 <ais523> the remaining operator, ~, is called 'select'
17:53:51 <oklopol> #&1101 = 00001101 & 10000110 in case it's a right rotate, guess i didn't get it after all.
17:54:06 <oklopol> i think i can guess that one
17:54:12 <ais523> #&1101 = 00001101 & 10000110 = 00000100
17:54:19 -!- Sgeo has joined.
17:54:43 <ais523> oklopol: well, it does an ordinary bitwise-and between its arguments (like in C), but then sorts the bits of the result by the bits of the second argument
17:55:30 <ais523> so, say, #12 ~ #5 is 00001100 ~ 00000101 is 000000 10 (the 6 bits corresponding to 0s in the right argument come first, then the 2 bits corresponding to 1s in the right argument)
17:55:40 <ais523> that's actually the most useful and interesting operator in INTERCAL
17:55:49 <ais523> although it needs to be combined with the others to do useful work
17:55:57 <ais523> oh, and it's a stable sort
17:56:10 <ais523> as in, the bits end up in the same order if they correspond to 1s in the second argument
17:56:30 <oklopol> okay it was a bit more interesting than i though.
17:56:58 <ais523> strangely enough, select's the only INTERCAL operator that was ever independently implemented in hardware
17:57:18 <ais523> as in, implemented by someone unaware of INTERCAL, by coincidence
17:57:29 <ais523> one final thing: INTERCAL has no operator precedence
17:57:46 <ais523> you must specify precedences yourself where ambiguous by using explicit ' ' and " "
17:57:51 <ais523> which act like parentheses in other langs
17:58:04 <oklopol> can you start with either @ toplevel?
17:58:17 <ais523> you can even mix them within a level as long as it's unambiguous
17:58:22 <ais523> but doing so can leave the result hard to read
17:58:34 <ais523> alternating on different levels is the standard for relatively readable code
17:59:06 <oklopol> okay, i'm with you sofar, go on.
17:59:23 <ais523> for instance, one common way to simulate C's & operator: " '& .1 $ .2' ~ '#0 $ #65535' "
17:59:34 <ais523> can you see how that works?
18:00:01 <ais523> well, .1 $ .2 alternates bits in .1 and .2
18:00:15 <ais523> then you select every second bit from the result
18:00:25 <ais523> oklopol: no, there isn't
18:00:33 <ais523> the & is applying to '.1 $ .2'
18:00:34 <oklopol> well, unary after binary in this case
18:00:42 <ais523> but it comes one character later than the start of the group
18:01:03 <ais523> well, unary always applies to the thing it's one character inside
18:01:05 <oklopol> i assumed you'd have to do & ".1 $ .2".
18:01:20 <ais523> oklopol: that's a syntax error, the & is one character too early
18:01:48 <ais523> yes, there's unary before binary precedence
18:01:54 <oklopol> yeah, but i get how unaries work now, i think.
18:01:56 <ais523> but the manual won't admit to it
18:02:36 <tusho> ais523: can I name a variable after an expr result
18:02:38 <oklopol> i do get the and now, at least somewhat
18:02:45 <ais523> tusho: what do you mean?
18:02:54 <tusho> would make :<result of #34>
18:03:05 <ais523> after all, Perl does that
18:03:18 <ais523> besides, #34's a syntax error
18:03:29 <ais523> oh, one other important point to mention: in INTERCAL, syntax errors happen at runtim
18:03:39 <ais523> you're allowed to put them in your program
18:03:43 <ais523> so long as they never run
18:03:46 <tusho> :#34 <- .#34
18:03:52 <tusho> put .(that) into :(that)
18:04:07 -!- jix has quit ("This computer has gone to sleep").
18:04:26 <ais523> tusho: as I've sead before, #34's meaningless anyway
18:04:50 <ais523> oklopol: here's another common idiom for you to try: what does " .1 ~ .1 " ~ #1 do?
18:05:54 <ais523> because it ANDs .1 with itself
18:05:59 <ais523> then sorts the bits in the result
18:06:12 <ais523> so if there are any 1 bits in the result, they'll be selected by the ~ #1
18:06:15 <oklopol> yeah i can see the bits flying about in my head
18:06:30 <ais523> time to move on to flow control, then
18:06:45 <ais523> it's possible to give any line a line label
18:06:49 <ais523> by putting a number in parens before it
18:06:57 <ais523> so you could do (10) DO .1 <- #1
18:07:06 <ais523> sorry, s/line/command/
18:07:12 <ais523> because INTERCAL's whitespace-insensitive
18:07:20 <ais523> and INTERCAL-72 has three control-flow commands
18:07:23 <ais523> NEXT, RESUME, and FORGET
18:07:31 <ais523> NEXT is like a procedure call in other langs
18:07:36 <ais523> it jumps to the line you specify
18:07:43 <ais523> and saves the return address on the NEXT stack
18:07:53 <ais523> it's written as DO (10) NEXT
18:07:54 <oklopol> it has an arbitrary limit on height?
18:08:19 <ais523> RESUME takes one argument, which is an expression
18:08:32 <ais523> then it pops that many entries from the NEXT stack and returns at the last one popped
18:08:42 <ais523> so DO RESUME #1 returns from the procedure you're in
18:08:50 <ais523> but DO RESUME #2 returns from the procedure that called that one
18:09:16 <ais523> yes, also, RESUME with a non-constant expression is the main way to do a conditional jump in INTERCAL-72
18:09:34 <ais523> finally, FORGET removes entries from the NEXT stack
18:09:38 <ais523> as in DO FORGET #1 removes 1 entry
18:09:48 <ais523> btw, RESUME's an error if the argument is 0 or too large
18:09:57 <ais523> whereas FORGET just removes no entries or all the entries respectively
18:10:21 <ais523> let's see: the typical way to do a conditional jump's like this:
18:11:20 <ais523> DO .5 <- expression that returns 1 or 2 DO (2) NEXT code if 2 DO GIVE UP (2) DO (3) NEXT DO FORGET #1 code if 1 DO GIVE UP (3) DO RESUME .5
18:11:21 <tusho> ais523: http://esolangs.org/wiki/Antonio_Perez_Ayala
18:11:26 <tusho> this article needs to go away, methinks
18:11:34 <tusho> it starts with {{db-author}}
18:11:36 <tusho> which makes me lol
18:11:52 <tusho> even if you've made esolangs we're not your personal wikipedia outcast!
18:12:12 <ais523> tusho: I'm not sure whether to delete it or not
18:12:15 <ais523> db-author has no meaning in Wikipedia
18:12:23 <tusho> ais523: look at brainsub:
18:12:24 <tusho> # (cur) (last) 23:18, 8 July 2008 Smjg (Talk | contribs) m (hangon (continuing the idea of referencing templates that exist on Wikipedia but not here))
18:12:24 <tusho> # (cur) (last) 03:25, 8 July 2008 Aacini (Talk | contribs) (Replacing page with '{{db-author}}')
18:12:29 <ais523> let me check the history to see if it was always there
18:12:37 <tusho> i say we nuke antonio perez ayala, and BrainSub
18:12:43 <tusho> http://esolangs.org/w/index.php?title=BrainSub&oldid=11350
18:12:45 <tusho> ok, so he made an article
18:12:49 <tusho> and now wants it deleted
18:12:54 <tusho> wtf, man, whatever.
18:13:18 <ais523> well, the page about the author should probably be deleted, I think, due to the db-author
18:13:24 <ais523> Brainsub's a real esolang, though, isn't it?
18:13:28 <ais523> at least I've heard of it
18:13:31 <tusho> yes, but the author replaced it with db-author
18:13:34 <ais523> oklopol: understand my example above?
18:13:37 <tusho> and besides, the article is way too long
18:13:40 <tusho> much longer than the brainfuck article.
18:13:41 <oklopol> i'm just starting to read it
18:13:48 <ais523> tusho: that doesn't mean necessarily delete it, it doesn't on Wikipedia if someone else wants the article
18:14:00 <tusho> ais523: shrug they're both vanity pages
18:14:02 -!- Corun has quit ("This computer has gone to sleep").
18:14:02 <ais523> oklopol: oh, stuff in lowercase is just placeholders
18:14:06 <tusho> (started by the subject and mostly only revised by them)
18:14:07 <ais523> it's not part of INTERCAL syntax
18:14:27 <ais523> tusho: so, most of the stuff on Esolang's like that, and besides that's specifically allowed there
18:14:47 <tusho> (that o was a mistake)
18:14:54 <tusho> that I don't think either of them are particularly valuable articles
18:14:57 <tusho> maybe if it was stripped down a lot
18:15:08 <oklopol> ais523: let me think a sec.
18:15:15 <tusho> http://esolangs.org/wiki/FlogScript
18:15:20 <tusho> zzo38's golfscript answer
18:16:03 <tusho> Ia:{[{\}{.}{;}{+}{_{)()}S0\:}{{(}\+{)}+}{_+:}{P.}{}]_(\:{~:!*(a^S}1/?=~_,0=!F[}~
18:16:45 <ais523> I wonder if that's actually implementing Underlambda, i.e. does S preserve the source code or just paraphrase?
18:17:02 <ais523> oklopol: well, what I've told you is enough to write real and working INTERCAL-72 programs
18:17:09 <ais523> that's the more commonly used subset of the language
18:17:13 <ais523> but there are other useful commands too
18:17:51 <oklopol> come from didn't exist in 72?
18:18:05 <ais523> it's the most common extension
18:18:12 <ais523> so common that it's effectively standard
18:18:17 <ais523> even J-INTERCAL implemented it
18:18:23 <tusho> <ais523> I wonder if that's actually implementing Underlambda, i.e. does S preserve the source code or just paraphrase?
18:19:33 <oklopol> underload in cise, need to make
18:19:56 <ais523> I'd like to have a go in Underlambda too when I finish speccing it, it'll be short but probably not that short
18:20:00 <tusho> i should make ninjascript some time
18:20:13 <oklopol> cise in something, need to implement...
18:20:21 <tusho> it was going to be the only language that could consistently win both speed and size
18:20:44 <oklopol> cise doesn't currently have that much support for parsing
18:21:16 <tusho> here's how to take the factorial of the top element on the stack in ninjacode
18:21:37 <ais523> hmm... Overload (my aborted mammoth project for writing very short langs that I eventually tarpitted into Underload) was going to use Cyclexa for parsing
18:21:51 <tusho> overload is aborted?!
18:21:56 <oklopol> an infinite list of factorials in cise is 1::Il,)&*
18:22:04 <tusho> ais523: like 2..*?
18:22:19 <tusho> so you can start factorials at 2*
18:22:25 <tusho> .. = inclusive range
18:22:30 <ais523> tusho: that fails on factorial 1
18:22:56 <tusho> arithmetic ops, if given a list, do the folding version
18:23:02 <tusho> so * on a list is product
18:23:18 <ais523> tusho: factorial of TOS would be U'*t in Overload
18:23:28 <tusho> what does that mean?
18:23:32 <ais523> or possibly a capital T, it's a while since I did Overload programming
18:24:02 <tusho> oh, and fun fact: if you defined the function '..*', that code's meaning would change
18:24:09 <tusho> (longest name possible, if you want a shorter one, add a space after it)
18:24:42 <ais523> tusho: basically, U produces a list from 1 to TOS, then '* is like (*) in Underload (i.e. push * onto the stack), then t uses the code on TOS to combine all elements of a list
18:24:54 <tusho> U produces a list from 1 to TOS total cheat
18:25:00 <ais523> tusho: no, it's useful
18:25:03 <tusho> i can do that, though
18:25:05 <ais523> very useful for looping, and so
18:25:26 <ais523> J uses a similar method to do loop-like objects, I believe
18:25:47 <tusho> then F is factorial
18:26:20 <ais523> well, if you wanted to risk redefining F, you could do (U'*t)'F#
18:26:24 <ais523> to define F as factorial
18:26:36 <tusho> though ! will probably be already used
18:26:38 <oklopol> tusho: what exactly are the semantics of all of that?
18:26:49 <tusho> oklopol: 1..* actually
18:27:11 <oklopol> 1..*, push 1, n 1 .. => [1.. n], * => 1*2*...*n ?
18:27:12 <tusho> .. = inclusive range
18:27:16 <tusho> * = multiply or product for list
18:27:17 <ais523> tusho: anyway, many lists in Overload are created using u or U and the map operator e
18:27:38 <tusho> : = syntax that reads up to a space and uses that as a name with quotation on TOS
18:27:39 <ais523> let me compile Overload for Linux, it's so long since I last messed with it that the only compiler executable here is for DOS
18:28:28 <oklopol> there is an overload interp?
18:28:36 <ais523> I have at least two interps
18:28:51 <ais523> the first is more finished but was rapidly becoming unmaintainable
18:29:02 <ais523> and the second is less finished and also very slow and probably wouldn't scale
18:29:21 <tusho> the third is ninjacode
18:31:08 <ais523> hmm... my current C++ Overload interp segfaults whenever I load the program from a file
18:31:22 <ais523> that needs fixing before I can start messing with it
18:31:25 <ais523> also, it's unmaintainable
18:31:36 <ais523> because just about every command there messed with the internals of stuff
18:31:39 <ais523> I hadn't abstracted properly
18:31:48 <ais523> come to think of it, the Perl version didn't really abstract properly either
18:35:20 <ais523> hmm... ok, fixed the segfault, it seemed I was fclosing the same file twice
18:35:29 <ais523> now to fix the other valgrind errors...
18:38:49 -!- oerjan has joined.
18:43:05 -!- oklofok has joined.
18:43:42 -!- oklopol has quit (Read error: 104 (Connection reset by peer)).
18:48:42 <ais523> oklofok: anyway, if you're planning to do some INTERCAL programming, it's probably a good idea to look up the system library
18:48:54 <ais523> it's documented in pit/lib/syslib.doc in the distribution
18:49:06 <ais523> basically there are a lot of pre-defined routines for things like addition (that's (1000)) that you can use
18:49:19 -!- Corun has joined.
18:50:57 <oklofok> i'll probably go for a simple interp later on
18:51:14 <oklofok> i'll probably make addition myself
18:51:21 <oklofok> i like to reinvent the wheel
18:51:45 <ais523> addition is nontrivial in INTERCAL, see my sig for the shortest example I know (although my sig has whitespace added for readability) and that uses lots of nonstandard extensions
18:51:57 -!- ais523 has left (?).
18:51:57 -!- ais523 has joined.
18:52:09 * ais523 cycles to show the sig in question
18:53:48 <oklofok> don't worry, i don't get scared of[f] the language if i fail.
18:54:15 <ais523> anyway, to implement addition in INTERCAL yourself, think of the way long addition works in binary, and use a loop
18:54:55 <oklofok> i'm not doing it right now, but i'll try tomorrow, perhaps
18:59:08 <tusho> ais523: i think i'll write an intercal compiler
18:59:15 <tusho> it doesn't sound like lexing is too hard
18:59:20 <tusho> i mean, 5 operators
18:59:20 <ais523> tusho: lexing isn't normally that hard
18:59:27 <tusho> and that's about it
18:59:29 <tusho> ais523: nor parsing
18:59:38 <ais523> tusho: read the array subscript syntax when it comes to parsing, that's an utter pain to get right
18:59:44 <tusho> ais523: what is it
18:59:47 -!- Corun has quit ("This computer has gone to sleep").
18:59:56 <ais523> so much so that there's a clause in the INTERCAL-72 standard designed to make things easier for implementors
19:00:19 <ais523> tusho: tail1[1][2][3] in C is equivalent to ,1 SUB #1 #2 #3 in INTERCAL
19:00:29 <ais523> the issue being that there's nothing between the arguments to SUB
19:00:37 <tusho> that sounds impossible
19:00:40 <ais523> this makes nested array subscripting ambiguous unless you're very careful
19:00:46 <tusho> ais523: so what' s the clause
19:00:53 <tusho> and does it need arrays for tc
19:01:01 <ais523> tusho: no, it doesn't need arrays for TC
19:01:10 <tusho> lemme guess, everything uses them
19:01:56 <ais523> anyway, the clause states that you can't open a ' ' or " " group an array subscript if the character you use could theoretically close a group
19:02:17 <ais523> otherwise, you need infinite lookahead to be able to parse nested array subscripting
19:02:26 <ais523> with that clause you only need one-token lookahead
19:02:36 <ais523> and 'theoretically close a group' means 'based on the tokens received so far'
19:03:55 <oerjan> afair, arrays actually don't even help with TC since each array is limited in size by its type and dimension
19:04:11 <ais523> you can declare very large arrays
19:04:18 <ais523> but each has a number of dimensions fixed at compile time
19:04:32 <ais523> and the size of each dimension has to fit in a 32-bit integer, although can be changed at runtime
19:05:51 <ais523> anyway, http://code.eso-std.org/c-intercal/pit/tests/arrtest.doc is an essay I wrote on the subject of parsing array subscripts in INTERCAL
19:05:58 <ais523> it's actually a text file, though, although it ends .doc
19:06:33 -!- oklopol has joined.
19:06:34 -!- oklofok has quit (Read error: 104 (Connection reset by peer)).
19:08:39 <oerjan> afair from previous discussion, one way of getting TC is by the STASH and RETRIEVE commands which give you an unbounded stack for each variable
19:08:41 <ais523> it's a testament to the difficulty of parsing array syntax that C-INTERCAL didn't get it right until version 0.25
19:08:46 <ais523> oerjan: that's the main way
19:08:52 <ais523> you can also do it using multithreaded programming
19:10:18 <ais523> CLC-INTERCAL definitely gets it right nowadays, it can even handle nondeterministic grammars
19:25:33 -!- oklofok has joined.
19:26:16 -!- oklopol has quit (Read error: 104 (Connection reset by peer)).
19:27:42 -!- Corun has joined.
19:39:07 * ais523 downloads the ICFP contest LiveCD
19:39:21 <ais523> does anyone here want to help make an ICFP contest team?
19:39:31 <ais523> atm I have nobody to work with
19:41:08 * oerjan won't, but his mind suddenly ponders the very hypothetical idea of an INTERCAL entry winning...
19:41:42 <ais523> oerjan: I seriously doubt I'll win, but it would be interesting to have at least enough INTERCAL in the entry for it to register on the leaderboard
19:43:06 <lament> that would be beautiful
19:43:27 <lament> (i don't really have have time for the contest :( )
19:43:43 <ais523> maybe I should quickly code up a practical language that compiles into INTERCAL to use
19:43:48 <tusho> ais523: it'd be nicer to win it with unlambda
19:43:50 <ais523> and just submit the resulting INTERCAL
19:43:59 <tusho> because you know. you can read intercal.
19:44:00 <ais523> tusho: yes, but Unlambda's near-impossible to modify once you've written it
19:44:10 <ais523> I want to use something I can read
19:44:26 <lament> can't you compile something sane to unlambda?
19:44:49 <ais523> but then you'd just submit the sane program
19:44:52 <tusho> ais523: how about iota
19:45:10 <tusho> (input is passed as an argument to the function evaluates to)
19:45:11 <tusho> (result is output)
19:45:16 <tusho> using lambda calculus lists
19:45:18 <tusho> and integer characters
19:45:29 <ais523> tusho: jot has IO, or possibly that was zot
19:46:06 <tusho> iota is more fun though
19:56:13 -!- oerjan has quit ("Rebooting").
19:58:14 -!- oerjan has joined.
20:07:40 -!- jix has joined.
20:20:54 -!- hotidlerchick has joined.
20:21:46 * ais523 is loading up the ICFP contest disk image under qemu
20:21:52 <ais523> it works pretty well, actually
20:22:42 -!- jix has quit ("CommandQ").
20:26:15 -!- jix has joined.
20:29:35 -!- ais523 has quit ("rebooting, will be back soon").
20:33:32 -!- ais523 has joined.
20:40:38 <tusho> GregorR: I figured out how to blocks/functions in plof, really elegantly
20:41:05 <tusho> how to differenciate
20:49:53 -!- ais523_ has joined.
20:50:09 <ais523_> Hello from inside the ICFP live-cd!
20:50:20 <tusho> ais523_: screenshot or it didn't happen
20:52:32 <ais523> (I took the screenshot outside the live-CD, which is why I'm posting this here)
20:52:57 <ais523> http://imagebin.ca/view/D3w7z0Iy.html
20:53:40 <ais523_> It seems I was one of the few people to actually download the image
20:54:32 <ais523_> annoyingly, it seems to use a US keyboard mapping
20:54:46 * Sgeo <3 VMware Server
20:54:55 <ais523_> I think they're part of the default theme in Knoppix
20:55:06 <tusho> ais523: not in the right place, obviously
20:55:11 * Sgeo thinks it might be virtualization issues
20:55:17 <tusho> Sgeo: Nice freedom zero you got there eh.
20:56:03 <ais523_> Sgeo: I doubt it, the bars are only on the panel at the bottom and inside the Konsole window
20:56:17 <Sgeo> It's easy-to-use, and free (as in beer). For some reason, that beats out difficult-to-use and Free (although it's free too)
20:56:53 <ais523_> the bars don't go over the icons, the desktop background, nor text whether white or black, so I think it's the theme
20:56:53 <tusho> Sgeo: I'm pretty sure I've seen you go 'eww, propietary software' in the past.
20:56:57 <tusho> Just letting you reflect over the irony.
20:57:29 <Sgeo> maybe I'm less of an open-source fanatic now?
20:57:40 <ais523_> Sgeo: I didn't find qemu hard to use at all
20:57:41 -!- Corun has quit ("This computer has gone to sleep").
20:59:17 -!- ais523_ has quit ("that's enough showing off for now, I think").
20:59:34 <tusho> Sgeo: Pretty abrupt change
20:59:38 <tusho> anyway qemu is trivial
20:59:49 <tusho> but you seem to balk whenever the console comes up so maybe not
20:59:56 <ais523> anyway, it seems I'm one of the few people who downloaded the LiveCD before they slashdotted their own servers
21:00:05 <ais523> I noticed it was up for download before they announced it, you see
21:00:20 <ais523> so this could in theory give me a headstart if they don't get the problems fixed within a day
21:00:22 <ais523> somehow I doubt it though
21:00:52 -!- pikhq has left (?).
21:03:49 -!- poiuy_qwert has joined.
21:10:43 -!- AnMaster has joined.
21:16:05 <AnMaster> ais523, yeah been on train for about 5 hours, so going to sleep
21:19:02 <AnMaster> ais523, just send a /msg if you want something and I'll read it tomorrow
22:07:54 -!- pikhq has joined.
22:08:17 -!- sohotidlerchick has joined.
22:09:09 -!- hotidlerchick has quit (Read error: 104 (Connection reset by peer)).
22:10:30 -!- Corun has joined.
22:14:36 -!- Corun has quit (Client Quit).
22:14:51 <GregorR> tusho: Blocks and functions are differentiated.
22:14:57 <tusho> without extra syntax
22:15:01 <tusho> like you had before
22:15:41 <GregorR> ... I don't have any extra syntax.
22:17:07 <tusho> GregorR: You did, though
22:17:29 -!- oklopol has joined.
22:17:39 -!- oklofok has quit (Read error: 104 (Connection reset by peer)).
22:17:44 -!- wookie has joined.
22:21:50 <tusho> GregorR: Yeah, well, shush and listen.
22:21:59 <tusho> The problem is essentially that of dynamic variables.
22:22:04 <tusho> You want it to return from where you put it in the code.
22:22:10 <tusho> But it returns it in someone else's code jabbering with it.
22:22:14 <tusho> GregorR: Solution - lexical returns.
22:30:28 -!- jix has quit ("CommandQ").
22:38:00 <ais523> I have to get around to writing my functional extensions to INTERCAL some day
22:40:01 <oerjan> making, finally, the ultimate Greenspun language!
22:55:47 -!- oerjan has quit ("Good night").
22:58:21 -!- sohotidlerchick has quit (Read error: 110 (Connection timed out)).
23:01:17 -!- Slereah_ has quit (Read error: 110 (Connection timed out)).
23:13:38 -!- poiuy_qwert has quit.
23:28:09 -!- Slereah_ has joined.
23:41:08 -!- timotiis has quit ("leaving").
23:41:15 -!- ais523 has quit ("(1) DO COME FROM ".2~.2"~#1 WHILE :1 <- "'?.1$.2'~'"':1/.1$.2'~#0"$#65535'"$"'"'&.1$.2'~'#0$#65535'"$#0'~#32767$#1"").
23:45:59 <tusho> oklopol: so now it's sohotidlerchick
23:46:03 <tusho> not hotidlerchick?
23:59:02 -!- oklofok has joined.
23:59:02 -!- oklopol has quit (Read error: 104 (Connection reset by peer)).
23:59:37 <augur> tusho: he doesnt know the persons gender
23:59:51 <oklofok> augur: that's not what i use in that case, in general.