00:06:38 -!- Pikhq has joined. 00:15:16 what's a good way to determine if a language is turing complete or not? 00:15:31 implement a turing complete language in it 00:15:35 heh 00:15:39 what fun that will be. 00:15:49 ehird`: it's not hard 00:15:58 ehird`: there's several popular options for this 00:16:04 brainfuck, register machine 00:16:07 P'' 00:16:08 lambda calculus 00:16:21 brainfuck probably the easiest. 00:16:25 whatever's the closest to your language 00:32:18 j lccccccccc.n! 00:32:18 k^Newline. 00:32:18 l:10-? 00:32:19 ccccccccccccccc.n! 00:32:19 ^Not a newline. 00:32:19 mwaha 00:32:21 er. flood. 00:38:17 -!- ehird` has quit. 01:28:21 -!- ihope_ has joined. 01:45:29 -!- oerjan has joined. 01:45:46 -!- oerjan has quit (Client Quit). 01:48:28 -!- digital_me has joined. 01:53:55 -!- oerjan has joined. 01:54:00 -!- oerjan has quit (Client Quit). 02:11:58 -!- oerjan has joined. 02:20:27 -!- nooga_ has quit (zelazny.freenode.net irc.freenode.net). 02:20:27 -!- oklopol has quit (zelazny.freenode.net irc.freenode.net). 02:20:27 -!- bsmnt_bot has quit (zelazny.freenode.net irc.freenode.net). 02:20:28 -!- puzzlet_ has quit (zelazny.freenode.net irc.freenode.net). 02:20:28 -!- lament has quit (zelazny.freenode.net irc.freenode.net). 02:20:28 -!- fizzie has quit (zelazny.freenode.net irc.freenode.net). 02:20:28 -!- ville_ has quit (zelazny.freenode.net irc.freenode.net). 02:20:28 -!- helios24_ has quit (zelazny.freenode.net irc.freenode.net). 02:20:28 -!- oerjan has quit (zelazny.freenode.net irc.freenode.net). 02:20:28 -!- EgoBot has quit (zelazny.freenode.net irc.freenode.net). 02:20:28 -!- SimonRC has quit (zelazny.freenode.net irc.freenode.net). 02:41:42 -!- EgoBot has joined. 02:41:42 -!- SimonRC has joined. 02:42:20 -!- fizzie has joined. 02:42:20 -!- helios24_ has joined. 02:42:20 -!- ville_ has joined. 02:42:36 -!- puzzlet_ has joined. 02:42:36 -!- lament has joined. 02:42:51 -!- oklopol has joined. 02:42:51 -!- nooga_ has joined. 02:43:31 -!- bsmnt_bot has joined. 02:44:12 wibbly 02:48:37 -!- oerjan has joined. 03:34:52 -!- ihope_ has quit (Read error: 110 (Connection timed out)). 04:14:14 haha owned by paul graham 04:14:24 "The object-oriented model makes it easy to build up programs by accretion. What this often means, in practice, is that it provides a structured way to write spaghetti code." -- Paul Graham 05:44:19 -!- digital_me has quit ("leaving"). 05:50:59 (yay! got to the castle in NH!) 05:51:01 hmm, still need MR... 05:51:02 * SimonRC goes to bed 06:20:58 -!- oerjan has quit ("leaving"). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 12:06:52 -!- nooga_ has quit (zelazny.freenode.net irc.freenode.net). 12:06:52 -!- oklopol has quit (zelazny.freenode.net irc.freenode.net). 12:08:37 -!- oklopol has joined. 12:08:37 -!- nooga_ has joined. 13:06:39 -!- oerjan has joined. 13:18:28 -!- Pikhq has quit (Read error: 110 (Connection timed out)). 13:52:41 -!- jix__ has joined. 13:54:02 -!- Pikhq has joined. 14:14:51 -!- Pikhq has quit (Read error: 110 (Connection timed out)). 15:51:55 hmm, there has been no apology or explanation for last night's outage. 15:52:14 there was an outage? 15:55:04 actually i may not have noticed because i couldn't reach this account i use for irc because nvg's home directories went down. 15:55:45 although somehow i doubt you are speaking of _that_ outage. 15:56:14 no 15:56:51 there was a mungo netsplit which lasted 20 mins and the netowrk came back in bits and pieces 15:58:50 interesting that irc has so many netsplits because it is tree structured without cycles, and somehow they cannot fix that fundamental flaw 15:59:06 or maybe they have... 15:59:37 when i think about it i read it in the original rfc 16:04:08 routing in a non-tree is a PITA 16:04:36 you need to keep a databse of comments that people have said in the last few seconds, and keep comparing 16:04:45 assuming you want something USENET-like 16:06:19 right 16:08:13 on the other hand once a netsplit is detected there shouldn't have to be 20 minutes to make a new route. 16:08:52 but of course i don't know how smart irc networks actually are about that. 16:13:19 Oooh, wise words from Stroustrup: "I particularly dislike classes with a lot of get and set functions. That is often an indication that it shouldn't have been a class in the first place. It's just a data structure. And if it really is a data structure, make it a data structure." 16:17:28 Oooh, more (from the interviewer): "Anything that's just using the data, but not defending the invariant, doesn't need to be in the class." 16:19:09 * SimonRC worships B.S. 16:19:44 /À/Àð¿ì¤À 16:19:48 oops 16:19:58 * oerjan tests something 16:20:00 puzzlet_: that regex mtches an awful lot 16:20:26 -!- puzzlet_ has changed nick to puzzlet. 16:20:37 what did i say? 16:21:21 :D 16:22:15 16:23:08 16:23:26 will someone else try an emote? 16:25:34 somehow the nick of whoever "worships B.S." did not show up on my screen. I just got colors in irssi after someone removed an old version, but now i seem to have some invisible text. 16:27:11 *sigh* 16:27:31 -!- oerjan_ has joined. 16:27:39 * oerjan_ tests 16:27:58 and so... 16:28:03 -!- oerjan_ has quit (Client Quit). 16:28:25 yep, the nicks of emotes don't show up at all. 16:29:27 * oerjan tests again 16:29:59 it's white on white. the nick is invisible but does affect the indentation of the following text. 16:34:58 -!- oerjan_ has joined. 16:35:06 testing 16:35:16 testing 16:35:45 -!- oerjan_ has quit (Client Quit). 16:37:47 ah! 16:39:28 it's white bold on white, and i have set them equal. 16:48:11 * oerjan boggles at whoever decided "white" in ANSI should not mean white. 16:49:29 -!- sebbu has joined. 16:50:59 oerjan: it comes in two varieties: dark whit and light white 16:51:08 sigh: "The halting problem proves that no algorithm can be proven correct." 16:51:11 * SimonRC fwaps 16:51:20 * SimonRC fwaps the person who said that 16:52:35 yes, but the dark white is for some reason the default background, unless they go one "better" and make it black. 16:54:31 hmph, from the look on my screen it seems like irssi is assuming my text is white on black, because all the highlighted colors are light. 16:55:08 of course dark white on dark black makes more sense than the other way around. 16:55:33 lessee... 16:56:38 -!- crathman has joined. 17:12:58 -!- sebbu2 has joined. 17:16:48 -!- sebbu3 has joined. 17:20:01 -!- Feuermonster has joined. 17:20:48 -!- sebbu has quit (Connection timed out). 17:36:01 -!- sebbu2 has quit (Connection timed out). 17:46:58 "Scheme programmers *do* know about OO. They have each implemented it at least a dozen times." 17:47:01 :-P 17:55:02 -!- sebbu3 has changed nick to sebbu. 18:17:44 what are you reading? 18:21:22 or just randomly googolating for quotes? 18:29:03 -!- Feuermonster has quit (Read error: 110 (Connection timed out)). 18:32:18 * oerjan tests 18:38:04 -!- atrapado has joined. 19:05:25 -!- ehird` has joined. 19:05:45 http://esoteric.sange.fi/brainfuck/bf-source/prog/oobrain.b oh my go 19:05:47 it's beautiful 19:09:32 * sebbu regarde heroes 122 19:10:05 someone make BF++ 19:11:02 interesting. there is already something non-esoteric by that name. 19:11:46 as well as an actual brainfuck extension. 19:12:31 * ehird` wonders what INTERCAL++ would be called 19:12:47 * ehird` honestly has no idea how to add one to a number and assign the var to it in intercal 19:13:15 that's in the INTERCAL standard library. 19:15:41 ehird`: !! 19:16:10 SimonRC: !! at what? 19:16:12 OOP in brainfuck? 19:17:26 yes 19:17:37 did you write that? 19:17:53 I would be nice as a BFM library I suspect. 19:17:55 *it 19:18:02 or rather, framework 19:18:12 no, i didn't 19:18:16 it was written in 2003 19:18:45 -!- nooga_ has quit (Read error: 110 (Connection timed out)). 19:20:01 mod_bf OOP framework? ;;) 19:21:54 it's a framework rather than a library for BF programs because it determines the structure of the code you write 19:22:53 you fit libraries to your code, frameworks fit your code to them 19:25:07 roughly, yes 19:25:47 The stack paradigm actually makes BF not-totally-insane, by increasing the locality of things 19:27:00 * ehird` pasted http://pastie.textmate.org/61810 19:27:05 worse than befunge, methinks.. 19:27:50 linear typing might help too 19:28:03 what language? 19:28:22 "2d" 19:28:23 mine 19:28:32 a horridly morphed 2d language 19:28:54 right... 19:29:00 I will now attempt to decrypt... 19:29:07 hjkl = directions 19:29:10 yes 19:29:12 vi(1) 19:29:33 : = dup, ! = halt, ? = go up if false and down if true 19:29:51 close 19:30:05 left/right turn? 19:30:11 : is "get a character of input and push its ascii value to the stack" 19:30:20 but the rest is correct 19:30:26 digits push themselves, - subtracts 19:30:31 yes 19:30:36 or do *numbers* puh themselves? 19:30:42 the numbers 19:30:49 it basically walks forward until it stops finding digits. 19:30:55 ok 19:30:57 - pops two numbers off the stack, subtracts them, and pushes the result 19:31:02 yes 19:31:10 , must do comparison 19:31:13 erm 19:31:15 < 19:31:19 nope 19:31:32 < swaps two items on the stack 19:31:32 dunno then 19:31:34 ok 19:31:39 [1,2,3] < results in [1,3,2] 19:31:54 why i do that is revealed when you figure out what c does 19:31:58 and the program area must wrap 19:32:10 it /does/, but that's not used here 19:32:29 what is ^ 19:32:45 a character. c pushes the character below itself as an ascii value 19:32:57 ahh 19:32:58 which i suspect could be used in quines if going downwards. 19:33:16 you see, . the printer, since everything on the stack is just a number, can't tell where the string starts 19:33:22 so i just make it stop when it finds ^ ;) 19:33:30 (^, $ - regexp start/end of line) 19:34:06 hm... instead of having a language parse sequences of digits, it could treat a digit as "multiply by ten, then add this". 19:34:16 heh 19:34:39 hmm... 19:34:41 it's not wtf-inspiring though :) 19:34:50 does ? throw away the value at the top of the stack? 19:34:55 i'm considering making the implementation of ? replace itself with j or h depending on the condition, then going back one 19:35:07 and it does, but i've realised it shouldn't 19:35:11 as then i can't print the character 19:35:12 ah 19:35:16 thanks, i was trying to fix that bug! 19:35:49 you need to be consistant, the tradition with stacks is that everything uses up all its input unless there is a very good reason not to. 19:36:11 tradition? this is an esolang, is it not? :) 19:36:40 you should really follow befunge and make the if operators use up their predicate 19:36:52 "Esoteric" not "awkward". 19:37:22 * oerjan wonders if SimonRC ever looked at Glass. 19:37:27 awkward languages are the only fun esoteric ones ;) 19:38:22 I disagree. We all failed to invent linear types, despite them being very esoteric, and *they* are fun and esoteric. 19:39:01 it may not abuse the stack in _that_ particular way, but it is certainly awkward. 19:39:28 oh fine 19:42:34 * ehird` pasted http://pastie.textmate.org/61817 19:42:39 hmmm/.. it's hanging after two lines 19:42:46 god knows why it even DIES on two lines 19:56:09 -!- jix__ has quit ("Bitte waehlen Sie eine Beerdigungnachricht"). 20:00:42 ehird`: I think you are mixing up your l with your 1 20:01:11 the third line of the program should be something like: l10+c<.j 20:01:23 hmm 20:02:12 -!- coatgrinder has joined. 20:02:56 hi 20:03:10 hello. 20:03:51 not much hapenning ATM 20:04:30 Do you know much about C++? 20:05:14 -!- atrapado has quit (Read error: 110 (Connection timed out)). 20:05:28 not much 20:05:54 ok. never mind 20:06:21 SimonRC: no 20:06:31 ? moves up or down, it doesn't change the direction of execution 20:06:56 ah, ok 20:07:19 i add 10 because i had subtracted it previously 20:07:20 oh wait 20:07:22 that's on another copy 20:09:41 -!- sebbu2 has joined. 20:12:20 -!- jix__ has joined. 20:13:14 c++-- 20:14:02 (C++)-- has no seq points, it is undefined. 20:14:16 Possible solution: Seperate the expression into multiple statements. 20:14:26 (at c.c, line 4) 20:14:41 * ehird` reads too many compiler errors 20:15:37 gcc says error: invalid lvalue in decrement 20:18:02 it is wrong 20:18:12 x++ is an lvalue 20:18:17 e.g. *(ptr++) = 2 20:18:34 int C = 0; (C++)--; is undefined, but it probably results in C being 0 20:21:12 i reached mental condition when i can understand the i = i++ + ++i 20:23:50 eh, * doesn't have to be applied to an lvalue. 20:24:08 indeed, x++ probably isn't one. 20:24:29 x++ doesn't make much sense as an lvalue 20:24:37 *x++ does, though 20:26:04 coatgrinder: undefined. 20:26:11 you just understand it as your compiler does. 20:26:15 probably 20:26:32 int i = 15; i = ++i + ++i should be 17 if your compiler is worth its salt 20:26:45 it translates to int i = 15; increment i; increment i; i = i + i 20:26:50 yes 20:26:52 otherwise, it uses a tmp variable and that's slower. 20:28:28 -!- sebbu has quit (Connection timed out). 20:29:19 but it's undefined judging by standards? 20:29:24 correct 20:29:37 i.e. both ways would make a correct compiler 20:29:38 ok. 20:30:49 having it explode would be correct 20:30:54 so would having it cry 20:33:52 http://c-faq.com/expr/evalorder2.html 20:34:22 that would make it rather emoish compiler 20:35:48 hmm 20:35:55 a language entirely made out of the letter Q 20:36:13 unary dialect 20:36:50 QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ 20:38:02 it doesn't differ that much 20:40:08 i'm making it basically http://esoteric.voxelperfect.net/wiki/BF_instruction_minimalization but depending on a magical counter :P 20:41:10 it's .[ in unary i think 20:41:24 which is cute smiley 20:47:25 How does "int i = 15; increment i; increment i; i = i + i" lead to "i == 17"; isn't i+i 34? And anyway, you really can't deduce anything about compiler smartness out of the result; it could easily be running on an architecture where "increment i; increment i;" without some manual delay in-between would result in i being incremented only once, and be a _smart_ compiler and not use the delay, because there really shouldn't be two modifications to i between se 20:47:50 you got cut off 20:48:02 Nothing too interesting there: -- modifications to i between sequence points. 20:48:14 if the standard says it's unspecified, the compiler writers SHOULDN'T bother messing around with making it work on stupid CPUs 20:48:25 "Undefined means that, notwithstanding question 9.2, printf("%d", j++ <= j); can print 42, or ``forty-two.''" 20:49:17 Yes, that's exactly my point: the compiler writer doesn't need to bother adding the manual delay there, because it's undefined. 20:49:30 j++ == j;, always 20:50:19 * ehird` pasted http://pastie.textmate.org/61834 20:50:21 But you can't deduce from the "unexpected" result that the compiler was stupef. 20:50:22 bsmntbombdood: you are trolling 20:50:23 somebody want to prove that's as turing-complete as BF? :) 20:50:36 hmmm 20:50:41 * ehird` pasted http://pastie.textmate.org/61835 20:50:43 with that change it should be 20:51:39 - can be + 127 times, and > can be ->, and + can be +< 20:52:39 bsmntbombdood: In the above code (j++ <= j), it could legally do the evaluation by getting j into onto the stack twice, then comparing, then incrementing j, or by pushing j, incrementing it in memory, then pushing j again. It is therefore undefined what the result is. 20:55:42 a quantum computer might have registers that do not have a physical value if you try to access them in an illegal order. 20:56:41 lol 20:59:33 -!- coatgrinder has quit. 21:04:13 -!- jix__ has quit ("Bitte waehlen Sie eine Beerdigungnachricht"). 21:12:56 -!- atrapado has joined. 21:16:32 -!- Pikhq has joined. 21:25:12 hm... instead of having a language parse sequences of digits, it could treat a digit as "multiply by ten, then add this". <<< i think sadol does this, though dunno if it's actually meant to do that 21:27:50 it doesn't look like it to me 21:29:52 hmm 21:31:00 in a language with such a feature, the digits would have to be commands, and they would ordinarily be prepended with a command meaning "set the register digits act on to 0" 21:33:03 ,41337 is 1337, but ,41,21337 might well be 1000+1300+30+7... 21:33:23 if that's anything close to what you meant earlier :) 21:38:06 i think it is a stretch. it doesn't fit with sadol's general syntax and semantics. 21:38:41 sadol seems no closer than _any_ language allowing sequences of digits to have their usual meaning. 21:39:19 a digit is a command meaning 'press a similarly labeled button on your phone' 21:39:48 but, 0..9 are just functions that return a value 21:40:05 that's what gave me the impression 21:40:27 that numbers are not parsed as such but instead calculated like that 21:40:27 oklopol: what's the type signature? 21:40:28 yes but they are the wrong functions, and they work completely differently after , 21:40:36 okay 21:40:37 well 21:40:49 it would be cool if it worked like that 21:41:27 indeed in the context of Sadol , is a function with variable number of arguments. _it_ has some of this flavor but not the digits themselves. 21:42:17 i would guess that ,3 x y z is 100*x+10*y+z in general, say 21:43:10 i don't see any real difference... might be this pain in my eyes 21:43:54 well in sadol you give , arguments, which possibly need not be digits. 21:44:52 in my idea a digit modifies a number, which may possibly not start as 0 before the first digit. 21:45:20 i'm beginning to understand i misunderstood you earlier 21:45:32 personally i think having digit objects is dumb. 21:45:37 say in a stack based language, 3 might modify the top of the stack 21:46:06 in a way, you're incorporating the decimal system into your language 21:46:19 well it is smart if you are trying to make every token a single character 21:46:20 and it doesn't deserve such niceties :) 21:46:28 well, sure. 21:46:59 which doesn't deserve such niceties? my language or the decimal system? 21:47:10 the decimal system 21:47:12 i hate the decimal system 21:47:35 anyhow so far my language consists of nothing more than these digit functions, and a command to set the top of stack to 0 21:47:56 oerjan: ditch digits, use roman numerals 21:48:00 oerjan: similarly 21:48:15 the semantics of individual commands will be deliciously fucked up 21:49:21 well roman numerals are very close to adding a fixed number 21:49:38 not at all 21:49:49 sometimes, they subtract :) 21:49:57 the subtractions were not in the original system 21:50:59 hm, it might still be possible to make them functions. 21:51:00 i suppose 'IX' and 'IV' are really single tokens 21:52:03 say a roman numeral adds if it divides the current number 21:52:40 *numeral sign 21:52:50 yeah 21:53:41 if not, you take the remainder and inverts its sign first 21:53:55 hehe 21:54:04 *invert 21:54:05 like i said, deliciously fucked up :) 21:54:24 and you could have a mix of both notations 21:54:33 using the same register 21:54:41 in fact you don't need two rules. if the remainder is 0 you don't change anything by inverting it. 21:54:50 true 21:54:53 sweet 21:55:06 that's much better than the state-based system for parsing them that i've read about somewhere 21:55:16 so n s is n+s-2*(n%s) 21:55:29 of course it doesn't catch erroneous numerals but that's just convention 21:56:53 you could require the remainder to have the right relationship to s. 21:57:21 not sure if it's really worth it 21:57:33 and like i said, this way makes it easiest to freely mix roman and arabic digits 21:57:52 that could potentially save you some space compared to either method 21:57:59 though i dunno if it actually does in practice 21:58:17 challenge: write a program to give the shortest 'mixed' numeral for a given number :) 21:59:22 you could do things like 3M = 1997 21:59:23 kinda hard to beat arabic though, usually 21:59:47 yeah :) 21:59:53 i mean 997 22:00:10 M3M is 1997 22:00:35 eh no 22:00:35 3MM is just 3? 22:00:40 M3 is 10003 22:00:50 oh, right 22:00:56 so C3M 22:01:05 no 22:01:08 nevermind :( 22:01:45 is there a good way to write 1997? 22:01:58 C3M 22:02:21 C3 = 1003 22:02:34 1003%1000=3 22:02:37 oh yeah 22:03:17 wow that's fucked up. 22:03:47 thank you :) 22:04:20 at least the algorithm for determining the shortest numeral halts :) 22:04:55 you ppl are sick 22:04:56 -!- ehird` has quit (Remote closed the connection). 22:05:01 how about control flow? 22:05:22 in numerals? exactly who were you calling sick? 22:05:32 you, but it was a complement 22:05:41 compliment 22:05:42 i know, i am used to it 22:07:41 time to fire up another copy of Hugs 22:08:10 i baptize these the Arombiac numbers 22:12:34 -!- digital_me has joined. 22:19:40 -!- ehird` has joined. 22:38:32 * lament generates all the numerals with 5 digits or less 22:38:56 * oerjan suddenly feels Entish 22:39:00 alas 22:39:32 it seems that after 3000 (MMM) there's no more gains 22:40:04 past that, arabic just wins. 22:40:23 that pesky exponential growth! 22:40:33 oh yeah, 1997 = MM7 22:40:44 a "saner" numeral anyway 22:40:49 wait 22:40:51 that's wrong 22:40:59 hah 22:41:03 my entire thing is wrong!!! 22:41:06 indeed that is 20007 22:41:10 one sec 22:41:10 bwahaha 22:41:52 yes so there will be infinitely many gains because you can always prolong a winner 22:41:57 * lament generates again 22:42:30 much better 22:42:43 much better :) 22:43:11 999999 = 1M999 22:43:14 hehe 22:48:10 5009 = D9 but 5010 = L10 22:48:16 evil evil 22:48:35 who said roman numerals were useless? 23:25:53 -!- crathman has quit ("ChatZilla 0.9.78.1 [Firefox 2.0.0.3/2007030919]"). 23:43:30 -!- ehird` has quit. 23:47:21 -!- oerjan has quit ("Good night"). 23:51:56 -!- sebbu2 has quit ("@+"). 23:52:51 -!- atrapado has quit ("etch").