00:12:27 kipple: there is a bug in the java interpreter 00:12:39 it hangs if i put a string into a comment 00:12:42 # "a">o 00:13:04 really? 00:13:25 it seems to dislike comments at all 00:13:56 but if i don't put a string into a comment it stops hanging if i run another program 00:13:56 hmm. I have used plenty of comments without problems. I can understand it could be a problem with strings though 00:14:35 your talking about the applet? 00:14:51 yes 00:15:06 ah a empty program just a comment.. that is a problem for the applet 00:15:44 can't reproduce it 00:15:55 hmm maybe it's a bug of my java vm 00:16:02 though there seem to be an issue with the mouse cursor with empty programs 00:16:19 yes! 00:16:42 not only with empty programs but with all programms that ends with an unterminated comment (# but no \n) 00:17:17 but does it really hang, or is it only the cursor that doesn't change back from hourglass? 00:17:45 i think it's the cursor because it turns back to normal if i run another program 00:18:04 if you can run another program at all, it isn't hung 00:18:22 i first thought i can't run another programm 00:18:39 a minor bug then, but thanks for letting me know! 00:18:47 but it was because x-chat was in front when i clicked and the first click just activated safari 00:19:36 maybe i find some more bugs by trying to copy the java interpreter's behavior 00:20:02 it crashes on infinite loops... 00:20:36 with the command line version you can just ctrl-c, but in the applet you loose whatever code you've written.... 00:20:57 kipple: i can still copy the code even if the program is in an infinity loop 00:21:06 you can? 00:21:29 i'm sure i've done that yesterday 00:21:32 I can't 00:21:59 1>a (a 1>a) 00:22:00 i can 00:22:23 i LOVE mac os x ;) 00:22:28 can you switch between code, input and output as well 00:22:38 no 00:23:10 ok. probably just a minor difference in java runtime then (the textarea is not locked in yours) 00:23:47 bah. now Opera crashed as well >:( 00:24:03 i think it's because on mac os x the UI refreshes/actions aren't all handled by the program 00:25:05 bbl 00:25:13 -!- calamari has quit ("Leaving"). 00:28:24 ok comments are implemented 00:32:01 -!- Keymaker has quit ("Freedom!"). 00:39:50 i hate string parsing in c 00:40:17 it is hard but it isn't fun like with an esolang 01:16:56 the parser knows + and - 02:02:05 -!- jix has left (?). 02:12:37 OMG! this is the best star wars movie in ages: http://www.storewars.org/flash/index.html :D :D 02:36:56 i have decided against a kipple->brainfuck compiler! 02:36:59 i'm too lazy :( 02:45:28 -!- kipple has quit (Read error: 60 (Operation timed out)). 02:50:29 what if you write the compiler in C, as opposed to brainfuck? 02:52:07 you mean to c? 02:52:32 seems trivial 02:52:56 no, i mean use C to write the kipple->brainfuck compiler 02:53:02 you were writing it in brainfuck before, yes? 02:53:16 no 02:53:22 am i crazy??? 02:53:40 i just realized i don't like brainfuck :( 02:53:48 darn 02:55:27 has anyone worked with choon? 02:55:40 not i 02:55:48 anyone who has, should add information on it to the wiki 02:56:10 it seems like a cool language 02:56:37 i have read about it, but not used it 02:56:38 at the same time, it seems whoever wrote it wasn't in the esoteric community 02:56:52 or maybe he was... 02:59:44 i just like the idea of a music language 04:06:03 we should spend more time writing programs in existing languages 04:06:34 iag, for instance, is almost totally unexplored 04:10:05 there's hundreds of unexplored languages out there 04:10:10 well... tens 04:10:24 no, there probably are hundreds 04:10:35 maybe tens that are actually notable 04:10:48 (Ook! and COW don't need serious exploration) 04:11:24 haha 04:20:07 maybe if COW stood for Copy-On-Write it would be an interesting language 04:20:15 i mean, if it somehow applied that principle in esoteric excess 04:21:27 haha 04:23:44 uh oh 04:23:51 the file extension .i seems to be used for both INTERCAL and iag 07:30:07 who runs the channel logging bot? 07:41:39 i was going to download all the esologs to back them up, but the robots.txt is stopping me 07:42:04 no it isn't :P 07:42:10 yeah 07:42:18 i'm potentially being an asshole, and have set wget to ignore that 07:42:24 there we go :D 07:42:53 i figure whoever runs the site realizes the alternative would be for me to manually download every file, which doesn't save him any bandwidth 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 09:04:21 oh, man :( 09:04:41 there's a gzip quine out there somewhere 09:04:43 but I can't find it 09:05:48 oh, wait, web archive and some ingenuity might save the day :D 09:18:48 !! 09:18:53 haha, that's so awesome 09:21:58 http://members.dodo.com.au/~sgentle/selfgz.gz 09:42:43 -!- kipple has joined. 10:15:12 that might or might not be really cool 10:15:21 depending on the specifics of gz which i have no clue about 10:27:40 hi 10:29:08 O_O 10:29:48 I do and I'm utterly impressed 10:32:58 $ gzip -l selfgz.gz 10:32:58 compressed uncompressed ratio uncompressed_name 10:32:58 210 210 8.6% selfgz 10:34:35 the 8.6% looks a bit arbitrary :P 10:34:57 with the given data, that is 10:35:06 haha 10:35:36 http://web.archive.org/web/20040808020638/http://caspian.arts-centre.net/ 10:35:39 ripped it from there 10:36:27 wow. that is cool 10:37:34 Choon is also interesting 10:37:37 next challenge is to dig into gzip's internals and write a gzip quine (as opposed to this one which is gunzip) ;) 10:37:37 now who's gonna write 99 bottles in Choon? 10:37:44 :D 10:37:57 I want to write 99 bottles in Dis 10:38:06 gzip quine would be... strange 10:38:28 it'd be implementation-specific, too :/ 10:38:32 it surely would need a specific -1..-9 setting 10:38:34 yep 10:38:55 well, zlib is a good reference point 10:39:12 but yes, it may be zlib-version-specific 10:39:23 what is Choon, kipple? 10:39:31 http://www.stephensykes.com/choon/choon.html 10:39:45 found it in the log for last night 10:39:47 John Cage 10:39:47 The John Cage instruction ('%') causes a one note silence in the output stream. 10:39:48 hahaha 10:40:10 who's John Cage? 10:41:25 he made a song called 4'33", which is four minutes and 33 seconds of silence 10:41:35 :) 10:52:38 wow, that's awesome! 11:12:51 -!- ZeroOne has joined. 11:32:14 -!- jix has joined. 11:32:49 hi jix 11:32:54 moin 11:33:03 how's the interpreter going? 11:33:24 the parser scanns for + and - commands and the executing part is done 11:37:00 if a program that plays the 99bob song in choon is a 99bob program, then I've got one :) 11:37:57 what do you mean? is there a melody for the song? 11:38:06 yup 11:38:30 cool. 11:38:40 I still need to make it loop 99 times but I think the output will be huge in that case 11:39:05 You should submit it to the 99 bottles page. 11:39:22 but, of course, it should loop 99 times :) 11:39:33 yeah I know 11:41:28 now i have to implement > and < ... 11:41:31 ? is done 11:43:55 for those interested the current WIP is here: http://www.formauri.es/personal/pgimeno/temp/99bob.choon 11:45:04 that loops just twice and plays an spurious note at the beginning which I plan to eliminate 11:59:36 hm, I can't eliminate it at all 12:16:28 darn, rfwav segfaults 12:17:08 < is 20% done 12:19:56 30% 12:21:25 sigh 12:21:31 wish I was writing an esolang instead of doing my assignment 12:21:36 know that murphy's law which says: "The first 90% of the work will take 10% of the time. The other 10% will take the remaining 90%" 12:22:12 that's not murphy... I can't remember whose that is, actually 12:22:34 oh sorry, it was in a book entitled "murphy's law" 12:22:53 Murphy's law is probably one of the most misquoted laws there is... 12:24:09 okay, s/murphy's// above 12:24:23 :) 12:24:39 the name ah 12:24:41 er 12:24:44 s/the name // 12:24:54 it's called pareto's principle - the 80/20 rule 12:30:08 jix: in case you're interested, here is an early version of the Kipple 05 spec: http://rune.krokodille.com/lang/kipple/kipple05.html 12:31:45 -!- J|x has joined. 12:31:55 -!- jix has quit (Nick collision from services.). 12:32:18 -!- J|x has changed nick to jix. 12:34:44 pfoo.. 12:35:22 network problems? 12:35:33 no.. 24h disconnect 12:35:50 what's that? 12:36:47 in germany t-online disconnect's dsl users every 24h.. 12:36:55 s/'// 12:36:57 nasty 12:37:26 did you get my link before you disconnected? 12:37:33 no 12:37:41 13:25:46s/the name // 12:38:04 early version of the Kipple 05 spec: http://rune.krokodille.com/lang/kipple/kipple05.html 12:38:17 Escape characters are currently not supported.++ 12:38:32 what? 12:38:47 was ther a problem with my message? 12:39:02 i think it's good that the string preprocessor does not support escape characters 12:39:05 or are you talking about something else 12:39:09 haha 12:39:29 anyway, the string preprocessor is optional 12:40:35 but i want to implement it 12:40:48 sure. It's nice to have 12:41:47 hmm.. is it possible to implement the @ stack in kipple 12:41:58 sure, why not? 12:42:14 just because.. it would be like interactive IO 12:42:28 what do you mean? 12:42:31 i push a number, read from the stack, push a number, read from the stack 12:43:27 it should work 12:44:28 ok another example: a<1 (top of a is now 2).. how to implement that in kipple ? 12:45:00 I don't understand what you mean 12:45:26 a stack that adds 1 to all pushed values? 12:45:31 yes 12:45:50 well it can't be named a (a-z are reserved for normal stacks) 12:46:44 oh.. yes... %<"a" %>o outputs "b" 12:46:59 $:{ i+1 i>o } 12:47:35 the code gets executed with every push ? 12:48:10 that's where I'm not decided yet 12:48:17 or with every pop 12:48:52 hmm.. for the @ stack every push would be optimal.. but if one would like to have the opposite of @ every pop would be better 12:49:25 currently a push sets the "evaluate" flag. On a pop the code is executed if the flag is set. then the topmost value of the custom stack's o is popped 12:51:44 < is done 13:03:36 > is done 30% 13:04:12 i'm at 360 lines of code 13:05:42 kipple has 8 instructions 13:06:08 depends on what you counts a an instruction 13:06:50 but how do you get to 8? 13:07:05 1: a<1 2: b>a 3: a+1 4: a+a 5: a-1 6: a-b 7: a? 8:(a ) 13:07:47 you count + and - two times? 13:08:23 yes because adding a value and adding a value popped from a stack are two different things 13:08:59 yes, but they are still the same insctruction IMHO 13:09:26 ( and ) could be considered two instructions 13:09:41 but in my internal representation they are one instruction 13:11:03 ok. in mine they are separate tokes 13:11:06 tokens 13:11:28 but there is only one + and one - 13:12:12 but my interpreter is written for speed and it's faster if it knows if it has to add a value stored in the program or stored in a stack 13:12:31 true 13:12:37 mine is not written for speed 13:12:47 and the looping is faster if i just say: loop with this subprogram instead of go back to this thing if blablabla... 13:12:51 will be intersting to see how they compare 13:13:42 i think i still have to finetune the values for reallocating the stack memory 13:14:13 I tokenize the code into a linked list, and corresponding ( and ) 's are linked directly 13:14:47 i tokenize the code into a linked tree and the loop instruction forks the tree 13:15:56 my parser is really ugly code 13:16:06 probably more efficient way to do it than mine 13:16:29 for(i3=1;lchr+i3 in c i always have to check for bounds to get sure that i'm not reading from outside the string 13:18:04 in java too 13:18:27 yes? .. i thought java Strings have bound checking 13:18:41 yes, they do 13:19:05 if go outside the bounds you get an exception 13:19:20 that's what i want 13:19:31 so you can choose: check yourself, or handle the exception 13:19:42 I chose to check manually 13:20:02 if i read outside of the string i can be sure that the instruction is incomplete and just skip it 13:20:33 which string are you talking about btw? I though you meant the entire source code string 13:20:40 yes 13:20:58 how about 12>a 13:21:16 a<12 ok ? i'm not done with > 13:21:21 never mind, I'm thinking in the way I've implemented it 13:21:52 I start at the operator and then moves to both left and right to parse the operands 13:22:03 and then I have to check that I don't go out of bounds 13:22:21 "a<12" check 'a' is 'a' an instruction ? no.. next char: '<' .. instruction! it needs a stack on the left site.. ok end on the right site is.. a number so seek until the end of the string OR to a nonnumber char 13:23:08 ok. then we do it a bit differently 13:23:39 I read until I find an operator ( <>+-?() ). only then do I look for operands 13:24:00 I don't consider 'a' an instruction 13:24:09 i neither.. 13:24:30 check 'a' is 'a' an instruction ? no.. 13:24:31 sorry, I misread 13:25:37 i'm done with > 13:25:57 seems we do it pretty much the same way after all, then :) 13:26:02 yes 13:26:12 but we handle () differently 13:27:49 and I use lots of objects, so your's is probably faster 13:27:59 i use lots of structs 13:28:20 hmm.. one for every stack .. and one for every instruction 13:28:33 2 different struct types 13:28:48 but i inline the stack methods ! 13:28:51 I have one object for every stack, instruction and operand (including numbers) 13:29:23 operands are part of the instruction struct 13:29:57 union { stack* s; int i;} op_a; 13:30:20 for stack and int.. op_b has also an p for a sub program (looping) 13:37:36 i'm done! 13:37:40 testing 13:39:14 1 bug fixed 13:40:00 refixed the bug 13:45:03 IT WORKS the parser works 13:45:14 :D 13:45:25 now i can test the interpreter 13:57:32 hmm there is a bug 13:57:43 i get tons of malloc warnings 13:57:53 and the program doesn't terminate 14:04:41 uh.. i thought it was the interpreter.. but it was the token-tree-freeer 14:35:10 hmm the parser doesn't parse (@>o) correctly 14:38:11 ok fixed the "one instruction bug" 14:59:14 fixed the nested loop bug 15:00:20 getting close to a release? 15:00:30 jep 15:00:35 but the @ stack doesn't work 15:01:45 i wrote a small debug feature that allows me to dump out the token-tree (the output is valid kipple) 15:03:23 hum... 15:28:56 ok fixed all bugs 15:29:24 hmm. there is no 99 bottles of beer enty in Chef... 15:29:32 maybe I'll have to write one 15:29:46 jix: good news :) 15:30:34 heh 15:30:42 HQ9+ is the best language ever 15:31:30 but it lacks some important features! 15:31:59 mainly the F command (print fibonacci numbers) and the P command (prime numbers) 15:32:02 haha 15:32:55 extend it F prints the first fibonaccis and P the first primes 15:33:18 oh and what about calculating pi ? 15:33:26 what? using the accumulator? I find that offensive! 15:33:41 ok.. F prints all fibonacci numbers 15:33:45 and P all primes 15:33:48 hehe 15:34:32 yes. all would be best 15:36:23 sure, but it does so using a Las Vegas method 15:36:33 so you get an output at the end :P 15:37:25 and the interpreter optimizes this so it is extrememly fast: while(true) 15:37:30 :D 15:37:50 and we could call the language zzzzbest 15:51:50 i'm done with version 0.1 15:52:35 does windows need special header files ? 15:53:08 don't know 15:53:16 what are you developing with? 15:53:22 x-code 15:53:36 will it compile with gcc? 15:54:03 yes 15:54:09 x-code uses gcc 15:54:13 but not make etc... 15:55:42 be warned my c coding style is baaaad... 15:56:06 don't care... 15:56:18 as long as it compiles :) 15:56:23 without warnings 15:56:36 but i use no header files 15:56:43 no function prototypes 15:56:56 i reuse variables for different things 15:57:05 all in all very clean code ^^ 16:02:22 http://www.harderweb.de/jix/cipple.c 16:02:31 oh.. 16:02:33 wait 16:03:41 done 16:04:25 now download it and have fun 16:05:17 kipple: ping 16:07:39 pong 16:07:44 it works! 16:08:01 faster? 16:08:42 it mops the floor with my intperpreter! 16:08:51 7 times faster on prime.k 16:11:57 nice work :) 16:13:11 hehe 16:13:54 generating primes<1000 right now 16:14:25 real 0m28.048s user 0m23.518s sys 0m0.117s 16:14:45 and also try compiling it with -DINSPECT 16:15:20 what does that do? 16:15:34 dump the internal representation to kipple code 16:15:52 how is that different from the source code? 16:16:34 it includes the internal instructions 16:17:02 http://rafb.net/paste/results/E46ILK92.html this is the dump of prime.k with primes<1000 16:17:31 ah. nice 16:19:14 hmm does it handle a+a correctly ? 16:19:34 I don't know. How does it handle a+a? 16:19:52 the wrong way 16:20:24 or.. hmm 16:20:27 *test* 16:20:50 the correct way: case '+': operand1.push(operand1.peek() + operand2.pop()); 16:21:00 correct 16:22:06 my interpreter took 6.42 mins to run the brainfuck interpreter with 99 bottles of beer as input 16:22:15 and my ? 16:22:16 now timing cipple... 16:22:55 1:31 16:23:04 yay! 16:23:25 wait for ppcipple the kipple > ppc compiler 16:23:35 don't have a ppc... 16:23:37 but now i have to do homework 16:23:49 and I have too eat 16:24:04 later 16:26:17 isn't there a free ppc emulator one can download, the way there are myriad x86 emulators? 16:26:51 ppc emulators are slow 16:27:02 x86 emulators are fast 16:27:43 the ppc has more registers so a ppc emulator needs to put the registers into the ram.. the other way around the registers are stored all in registers 16:29:22 well, i could at least use your compiler, though 16:29:37 how about a ppc emulator for amd64? amd64 has more registers 16:29:59 i don't know 16:30:17 kipple > pcc G5 .. have fun 16:45:51 man, i've been prevented from downloading channel logs off that meme.b9.com site 16:45:52 Throttled 16:45:53 Your request has been denied from ip68-100-130-21.dc.dc.cox.net and logged into our system for exceeding the throttle limits. 16:45:53 HTTP/1.1 503 Service Unavailable Date: Sun, 29 May 2005 15:45:56 GMT Connection: Close Server: AllegroServe/1.2.42 Content-Type: text/html 17:41:08 maybe they'll provide a .gz if you ask? 17:53:48 cipple 1.2 is faster 17:54:20 reduced calls to realloc malloc and free 17:55:21 memory requirements for small programs are higher but primes<1000 is 8.736s vs 28.048s 17:56:11 0.2 not 1.2 18:23:50 is the 0.2 version uploaded to your web, or is that still 0.1? (would be nice if you included version # in the comments 18:24:43 -!- calamari has joined. 18:26:57 i got all the logfiles from http://tunes.org/~nef/logs/esoteric/ 18:27:24 i'll provide a zipped paq6 file to anyone interested in making a backup 18:27:46 maybe we should store them in the files archive 18:28:08 a monthly zip or somehting 18:30:00 tgz would compress a lot better 18:30:27 a was using zip as a generic term. didn't mean to imply any particular algorithm 18:30:56 correction: I was using... 18:32:53 oh, of course then 18:33:28 ...what happens if someone invents an esoteric language called 'logs'? 18:43:26 huh? 18:43:38 ah, you mean with the archive? 18:43:59 i decided to put the logs in an esoteric/logs directory 18:44:25 a bit more descriptive name would be nice 18:44:34 why, what's wrong with that name? 18:44:36 irc_logs perhaps 18:44:50 it doesn't say what kind of logs 18:45:13 what if we find out that there are other things we want to log? 18:45:33 maybe logs/irc/ 18:46:29 we may want to retain other things, but i doubt we'll want to log them 18:46:37 collections of mailing list messages are called 'archives' 18:46:46 ok 18:47:04 I would still call it irc_logs or something, just to make it more obvious 18:47:37 but it's not a big deal 18:49:37 okay, they are now in esoteric/irclogs 18:51:43 *sigh* I was in the process of writing an INTERCAL article in the wiki, and the accidently close the wrong tab :( 18:52:05 dang, my spelling is bad today.... 18:53:03 that sucks 18:53:16 the INTERCAL thing, more than the spelling 18:53:35 well, the spelling too :) 18:57:42 tar bzip2 is one of the best compressions for text (imho) and more people have bzip2 than paq6 18:57:51 paqwhat? 18:58:22 the online version is 0.1 19:00:20 now 0.2 19:01:14 will that be the place you'll keep it (and later versions)? 19:01:29 i.e. can I link to it from the Kipple page? 19:02:48 brb in a while 19:03:40 www.harderweb.de/jix/cipple/cipple.c is always the newest version 19:03:48 www.harderweb.de/jix/cipple/cipple.x.x.c is version x.x 20:30:41 -!- calamari has quit ("Leaving"). 21:12:55 -!- J|x has joined. 21:22:29 -!- jix has quit (Read error: 110 (Connection timed out)). 21:29:08 -!- Keymaker has joined. 21:29:14 hi 21:29:57 i finally made my version of 99 bottles of beer in brainfuck. here's the result: http://www.bf-hacks.org/hacks/beer.b 21:30:22 warning: brainfuck or/and beer destroys braincells! 21:30:37 as well, i don't support alcohol drinks 21:31:13 i'll probably make a shorter version sometime.. 21:32:14 i started the code the previous night and continued during this day 21:32:20 well, not all the time, of course 21:32:46 anyways, good night. zzZzzz.... 21:32:51 -!- Keymaker has left (?). 21:41:39 * lament wonders why keymaker doesn't support alcoholic drinks 21:54:55 -!- J|x has changed nick to jix. 22:41:39 lament: doesn't really fit with the finnish stereotype, does it? 22:42:09 kipple: you got the new url of cipple 22:42:29 www.harderweb.de/jix/cipple/cipple.c ? 22:42:32 yes 22:42:54 then I do :) 22:43:30 i wrote a new kipple programm 22:43:37 read a number from input square it and output it 22:43:52 nice 22:44:05 and it ignores spaces and \n in input.. 22:45:34 I'll put it on the web site if you want 22:50:50 -!- wooby has joined. 22:59:42 wooby: was it you who owned the esolangs.org domain? 22:59:51 kipple: yes 23:00:05 any reason it points to the old wiki? 23:00:23 kipple: laziness 23:00:32 ok 23:00:32 -!- wooby has quit. 23:01:17 -!- wooby has joined. 23:01:27 woops 23:03:52 ok it's pointing at 70.85.100.4 23:04:55 it will take a little bit to kick in 23:10:19 hm 99bob page: Use Whitespace, TABs and Returns to make your code readable.. is it ok to not use them ? 23:10:36 because my dc solution doesn't use them 23:10:44 dc? 23:10:50 desk calc 23:10:51 man dc 23:11:01 ah 23:11:29 well, the Malbolge entry isn't exactly readable ;) 23:18:16 ok 23:18:18 submitted 23:18:34 http://rafb.net/paste/results/sx4WtH56.html 23:19:05 nice 23:19:17 and for square.k : http://rafb.net/paste/results/OZLhGE38.html 23:20:14 dc seems to be an esolang 23:22:23 night 23:23:15 -!- jix has quit ("Banned from network").