00:01:11 * GregorR reappears. 00:01:35 What was your configure line? 00:01:42 ../configure --prefix=/opt/jsmips --target=mips-jsmips --with-newlib --disable-libssp 00:01:50 and i'm on os x 10.4, x86 00:02:11 It's possible, although a grim and unpopular possibility, that you need to use Apple's GCC sources rather than baseline GCC. 00:02:29 I don't know whether a baseline GCC will compile on Mac OS X even for cross-compiling. 00:03:07 Ah. 00:03:16 But hm, it shouldn't even be trying to compile libiberty for the target, and on the host I'm sure you have strings.h :P 00:03:18 Shit. Where are apple's gcc sources? 00:03:48 Actually, before going down that ugly path, could you pastebin more of the context of those errors? 00:03:53 'k 00:04:38 http://rafb.net/p/SQFojI35.html 00:05:34 GregorR: I have more context if needed. 00:06:41 AWESOME. 3 appeals of CFJ 1966c! 00:06:52 GregorR: Any ideas? 00:07:06 -!- jix has quit ("This computer has gone to sleep"). 00:07:22 Well that's odd. 00:07:29 It's trying to compile libiberty for the target ... 00:07:36 But there's no reason for it to compile libiberty for the target ... 00:07:46 GregorR: Let's venture to #gcc. Together! 00:08:06 Yeehaw! 00:08:21 (Also a perfect opportunity to subtly "doink" jsmips :P ) 00:08:46 You state the problem. I've already stated it once. 00:08:46 :P 00:10:22 GregorR: TREASURE THIS MOMENT. You can pretend you have a mac. 00:13:13 GregorR: And pretend #gcc isn't dead 00:14:06 GregorR: So. What should I do now. 00:14:29 Not sure. Get GNU/Linux? :P 00:14:35 GregorR: Fail. :P 00:14:42 (Double fail for "GNU/Linux") 00:15:01 Not sure. Get the GNU operating system utilizing the kernel Linux? :P 00:15:24 How about "Get Linux" 00:16:27 Not sure. Get GNU? (with whatever kernel you'd like) 00:16:49 GregorR: ROLE REVERASL IN #GCC 00:17:03 Hahaha 00:20:51 http://www.opensource.apple.com/darwinsource/projects/other/gcc-5483/ // OK, there must be an actual tarball somewhere :P 00:22:28 http://www.opensource.apple.com/darwinsource/tarballs/other/gcc-5483.tar.gz 00:22:59 I would try with Apple's GCC *shrugs* ... gross, but possibly necessary. 00:23:44 GregorR: What, exactly, is gross about Apple's GCC? 00:24:41 What's gross is that a different GCC would be necessary on a different OS when you're not even targeting that OS. 00:25:46 GregorR: OS X is a bit of a weird system 00:25:46 :-P 00:26:11 Yeah, to be fair, you need a different GCC on Windows too :P 00:31:17 . 00:33:36 OHWAIT 00:33:49 Did you download gcc-core, or the full gcc? 00:35:08 GregorR: full 00:35:13 *smacks self in head* 00:35:17 Try configuring with --enable-languages=c 00:35:21 GregorR: Name your patches right, bitch. :P 00:35:37 Well, it'll patch against either, it just doesn't touch anything out of the core. 00:36:08 --enable-languages=c will suppress all the other compilers, so it'll be the same compile as gcc-core. 00:36:52 (Again, I have too much experience writing cross-compilers for my own good, I'm quite used to downloading only the core :P ) 00:37:16 *writing* cross-compilers or compiling them? :P 00:37:32 olsner_: Wrompiling them. 00:37:36 Fair enough: Too much experience compiling GCC cross compilers. 00:37:49 olsner_: Oh, and you know that blohsom I was writing about? Well it turns out Hobix, though written in Ruby, can do it all. 00:37:56 And, what's more, I actually got it to work. 00:38:08 HobixThatActuallyWorksAndIsMaintained: Coming to a ESO git repository near you! 00:38:14 heh, report a bug "Not writting in Haskell" and see what they do about it :P 00:38:17 *written 00:38:21 Hahaha 00:38:24 olsner_: they = _why the lucky stiff 00:38:27 * GregorR wrote a raycaster in Haskell! >_> 00:38:33 One of the most prominent members of the ruby community 00:38:36 So I wouldn't think much :P 00:38:47 Oh, and the website hasn't been updated since 2005. 00:38:59 Which is why a hobix that actually works and is maintained is such a wonderful thing for ESO to do! 00:38:59 oh... so maybe it needs rewriting anyway :P 00:39:07 olsner_: Nah, hackety.org still uses it. 00:39:10 And it's active. 00:39:13 So ... _why still uses it. 00:39:14 :P 00:39:17 And it works well. For stuff. 00:39:35 oh, so "_why the lucky stiff" is a person? 00:39:49 olsner_: yes 00:40:07 AKA _why, why the lucky stiff, and most confusingly 'why' 00:40:11 also, he has a gui lib named 'Shoes', singular 00:40:19 Why just released Shoes, which is a GUI library. 00:40:22 :D 00:40:24 http://whytheluckystiff.net/ 00:40:41 you might have seen Hackety Hack, he made that 00:41:14 I haven't seen much of the Rubites at all (maybe I've been avoiding them) 00:42:34 olsner_: Me testing hobix' default install that actually works: 00:42:36 http://eso-std.org/~tusho/hobix/ 00:42:43 http://eso-std.org/~tusho/hobix2/ (With comments. That don't work.) 00:43:23 "posted by elliott hird"? 00:43:32 tusho == ehird? 00:43:39 olsner_: YOU GOT ME 00:43:44 *gasp* 00:43:46 :P 00:44:03 In #esoteric today: the three people who didn't know that already 00:44:49 I was pretty sure I'd seen tusho and ehird speaking at the same time and acting like different persons 00:45:01 olsner_: um.. nope 00:45:17 GregorR: GCC BUILT 00:45:40 anyway, I assumed my personality was unique enough that there'd be no confusion 00:45:45 I'm slightly offended :P 00:45:55 tusho: YAY ^^ 00:46:03 GregorR: Link to newlib, I'm a lazy ass. 00:46:12 http://www.google.com/search?q=newlib 00:46:30 GregorR: It's more snarky if you use tinyurl to link to justfuckinggoogleit.com/?q=newlib. 00:46:43 lalala 00:46:55 tusho you're ehird? 00:46:59 make that four people. 00:47:04 augur: No, 3. 00:47:08 I predicted the third. 00:47:11 -!- ehird has joined. 00:47:12 AWESOME. 00:47:16 ... 00:47:21 gasp! 00:47:23 you lie! 00:47:24 GregorR: You got my real name rong. 00:47:25 *wrong 00:47:27 tusho: WTF, you're still here pretending to be me! 00:47:30 It's two t's. 00:47:32 ORLY? Crap :P 00:47:35 -!- ehird has quit (Nick collision from services.). 00:47:44 Pwnt. 00:47:46 :P 00:47:46 you're just names to me, and if the names dont match, i dont know :( 00:47:54 augur: ehird. tusho. ehird. tusho. Repeat. 00:48:06 like if oklopol didnt alternate to oklofok 00:48:06 GregorR: WTF NEWLIB IS 12MB 00:48:25 augur: 'ehird' is deprecated, fyi. :P 00:48:40 how did you pronounce "ehird" btw? 00:48:49 Ee hurd. 00:48:58 hm. 00:48:59 For ... Elliott Hird. 00:48:59 tusho: The various per-system stuff is 16MB alone. 00:50:18 at least oklo* usually takes nicks with oklo* ... besides, I'm kind of suspecting the different oklo*'s aren't quite the same person :P 00:50:32 oh they are olsner 00:50:40 i can assure you 00:50:45 every _inch_ of them is the same... 00:50:51 >d 00:50:54 augur: You would know, you've explored every inch. 00:51:00 OHHHH SNAP 00:51:02 yes, that WAS the implication 00:51:05 yes 00:51:07 thank you captain obvious 00:51:08 I was being silly 00:51:13 pah 00:51:19 you werent BEING silly 00:51:21 you ARE silly 00:51:23 nobody appreciates sarcastic captain obviouses, augur 00:51:30 GregorR: OK now how do I shot newlib. 00:51:32 you're, what, 15? all 15 year olds are silly. 00:51:47 15? no. :P 00:51:55 16, whatever 00:51:56 ;P 00:51:58 no 00:51:59 :P 00:52:04 14? 00:52:05 13? 00:52:08 you cant be THAT young 00:52:08 ;) 00:52:12 augur: you fail at logreading! 00:52:38 apparently you fail are remembering the joke we had the other day about you being 15 and pedobear coming to snatch you up :( 00:52:42 bad tusho! bad! 00:52:59 afk eating cake and drinking coffe 00:52:59 * GregorR reappears. 00:53:01 e 00:53:01 wait, is this like double sarcasm 00:53:02 :d 00:53:09 tusho: Same config flags as binutils: ../configure --prefix=... --target=mips-jsmips 00:53:10 anyway, changing nicks is evil... you shouldn't expect every other person on irc to link your new nick to your old self *manually* - it's easier for them (us) to just treat you as an entirely new and unknown entity 00:53:24 i am infinitely recursive sarcasm 00:53:26 and irony 00:53:32 * augur is gone 00:53:34 fractal irony? 00:53:46 * tusho wonders how many levels of sarcasm most people have /me's age wrapped up in 00:53:51 GOGOGOGOGOGO 'MAKE' 00:53:53 olsner_: I choose to treat everyone as a completely new and unknown entity, even if I've talked to them a hundred times before. 00:54:19 wise choice, nicks being so very easy to falsify 00:54:22 olsner_: Makes it easier, since I don't have to remember anyone. 00:54:32 D'OH 00:54:35 * tusho fixes path 00:54:36 /bin/sh: line 1: mips-jsmips-cc: command not found 00:54:56 GregorR: Wait, what LD environment variables do I have to change for /opt/jsmips/lib 00:55:08 You shouldn't need any ... 00:55:31 Why, what do you have in /opt/jsmips/lib ? 00:55:37 Should just be a couple of .a files. 00:55:53 (And the gcc/ directory, but GCC figures that one out itself) 00:56:06 GregorR: Oh, hah, it's trying mips-jsmips-cc 00:56:07 it needs 00:56:10 mips-jsmips-gcc 00:56:21 It's probably trying -cc because -gcc wasn't in $PATH when it configured. 00:56:29 ic,ic 00:57:24 Which is a pretty stupid decision, really :P 00:57:29 Anyway, for the logs, my age is fib(4+3)+5-4. 00:57:43 fib(7)+1? 00:57:49 Err. 00:57:52 -6 00:58:03 fib(4+3)+5-6 00:58:08 fib(7)-1? 00:58:20 olsner_: Shut up, I obfuscate everything 00:58:20 :P 00:58:37 Is that a 0-indexed fib() function or a 1-indexed fib() function? 00:59:00 GregorR: fib(0)=0, fib(1)=1 00:59:31 tusho: Having more luck with newlib now? 00:59:35 GregorR: Yeah. 00:59:38 It's compiling. Sloooooooooooooowly. 00:59:47 OK, then the pain is probably mostly over :P 00:59:58 GregorR: I think JSMIPS is the real pain. 01:00:16 :P 01:00:19 -!- puzzlet_ has joined. 01:00:24 I meant the pain of cross compiling, but sure. 01:00:59 GregorR: You know, I think we'll have to hand-code a gui with . X11 will just be too slow 01:00:59 :P 01:01:12 #include ! 01:01:17 * GregorR is not even remotely considering GUIs yet :P 01:01:36 tusho: ehm, you're 12!? 01:02:07 olsner_: sheesh, welcome to like 5 days ago 01:02:10 GregorR: how long does newlib take to compile exactly? 01:02:14 7 years? 01:02:25 Approximately. 01:02:36 Longer than GCC, bizarrely enough. 01:03:07 really!? I thought newlib was supposed to be small? 01:03:15 olsner_: so did I.. 01:03:23 GregorR: I think the first JSMIPS thing I'll do is a JS FFI 01:03:44 -!- timotiis has quit (Read error: 110 (Connection timed out)). 01:03:50 That'd be pretty nifty, and not actually too difficult. 01:03:56 js_t *js_eval(char *src); 01:04:03 Just make sure you associate it with a syscall # that isn't commonly assigned to a UNIX syscall. 01:04:21 js_t *js_prop(js_t *obj, char *name); 01:04:41 void *js_to_func(js_t *obj); 01:04:41 etc 01:04:53 (fib 7) + 1 huh 01:05:16 thats 14, tusho. 01:05:23 and yet you said you WERENT 14. 01:05:24 augur: -1 01:05:28 I corrected myself. 01:05:39 you're really 12? 01:05:45 yes :P 01:05:52 GregorR: JSMIPS IS DONE 01:05:53 tusho: did the second boss, continued for some while and missaved to a place where i can only return back to the beginning of the game :D 01:05:55 ZOMGZZZZZ!!! 01:05:55 im ten years older than you? 01:06:00 tusho: Uh, you mean newlib, right? 01:06:01 oklopol! :D 01:06:04 er 01:06:04 yes 01:06:06 ::pounce:: 01:06:07 <3you 01:06:18 * GregorR records this momentous orgy. 01:06:23 augur: If you're 22 then you're ten years older than me. 01:06:29 If you're something else then you're not. :P 01:06:36 yes, i'm 22. :P 01:06:41 ::rapes tusho:: 01:06:43 so oklopol 01:06:47 so cool 01:06:49 i have an evaluation model for Reactance 01:07:03 Sheesh. You rape me and don't even give it a second thought! 01:07:03 me too, i implemented it 01:07:11 GregorR: i686-apple-darwin8-gcc-4.0.1: bin2arr.c: No such file or directory 01:07:11 i686-apple-darwin8-gcc-4.0.1: no input files 01:07:12 ;_; 01:07:18 tusho: why would i? it's RAPE. 01:07:24 oklopol: implemented it in JS? 01:07:30 augur: BUT IT'S NOT CARING RAPE. 01:07:32 with IO? 01:07:39 all rape is not caring rape, tusho. 01:07:42 okay, i'm stopping iwbtg, a game is not worth playing if there's a possibility of having to start over 01:07:45 CARING RAPE IS 01:07:45 tusho: I forgot to add that before, hg pull to get it. 01:07:55 CARING RAPE DOES NOT EXIST. 01:07:57 ugh fine 01:08:00 augur: just has output 01:08:26 ::rapes tusho then kisses him on the forehead:: 01:08:33 oklopol: in JS tho? 01:08:34 * tusho reports to the fbi 01:08:37 can i see some working code? 01:08:44 augur: i've never coded anything in JS 01:08:50 lame :P 01:08:58 whats your implementation in? 01:09:01 python 01:09:03 augur: Python I gues 01:09:04 s 01:09:21 GregorR: Can I make the test program more exciting 01:09:22 can i _see_ anything or is it just /ostensibly/ implemented 01:09:34 i've pasted the source 01:09:38 tusho: Of course. 01:09:40 god i'm pissed at iwbtg 01:09:44 what the fuck 01:09:44 o its ostensibly implemented :) 01:09:56 tusho: That was just whatever random crap I decided to test with :P 01:10:00 i didn't even see the save button, was a misfire 01:10:13 i like how tusho knows more about haskell than I do 01:10:14 :D 01:10:17 and tusho's 12 01:10:21 ahh kids 01:10:33 DAMN WHIPPERSNAPPERS AND THEIR HASKELL 01:12:05 eh? 01:12:09 get off my lawn! 01:13:13 -!- puzzlet has quit (Read error: 110 (Connection timed out)). 01:13:31 GregorR: Pushed. 01:13:37 I made the test program all modular. :P 01:14:13 tusho: Doesn't fit in the console though :P 01:14:21 GregorR: Nor does your previous example. 01:14:24 Can I make it scrollable? :P 01:14:33 Or, if not scrollable, bigger. 01:15:05 Bigger, yes, but scrollable would be tricky because I'd eventually like to have full vt100 support. 01:15:31 Anyway, I'm just going to swap the newlines for spaces in the fibo output and push ;) 01:16:22 GregorR: 01:16:22 setTimeout(mipses[this.num].run, 0); 01:16:24 that should work 01:16:25 why doesn't it? 01:16:38 it dies after hello world 01:16:57 I have no idea why it doesn't, but my current unmodified version does :P 01:17:09 GregorR: But it's slower. 01:17:16 (Inherently) 01:17:21 I think that the expression is actually reevaluated in the global scope. 01:17:32 When the timeout fires. 01:17:34 Which is lame :( 01:17:43 That's why I had to make the array of mipses in the first place. 01:17:47 Otherwise you could just do this.run 01:18:17 GregorR: Regardless, it eval()s a string and that's really slow for js 01:18:19 it'll be our bottleneck 01:18:32 I realize that, but have no solution. 01:18:40 Feel free to invent one, but until you do, don't just break it :P 01:21:16 GregorR: Done. 01:21:18 It's so much faster now. 01:21:23 [[ var func = function () { func.mips.run(); }; 01:21:23 func.mips = this; 01:21:23 setTimeout(func, 0);]] 01:21:31 * tusho eliminates the mips array 01:21:59 GregorR: Hm. Where else is mipses used? 01:22:02 Hm, didn't realize that would work, but good to know that it does. 01:22:07 tusho: Pretty much nowhere :P 01:22:13 Why did it suddenly stop working then 01:22:21 I need to fix test.head and test.tail. 01:22:26 er 01:22:32 tusho why are you doing it that way?? 01:22:36 you can just use closure.. 01:22:39 augur: Nope. 01:22:45 They get re-evaluated with self = Window. 01:22:55 er this 01:22:55 wha? 01:22:58 Oh, actually: Leave mipses in so the 'Stop MIPS' button can stop all the MIPSes. 01:23:00 well whatever, i'll trust you :p 01:23:49 aha, even better 01:23:50 var self = this; 01:23:50 setTimeout(function () { self.run(); }, 0); 01:24:06 setTimeout((function(m){ return function(){ m.run(); }; })(this), 0); 01:24:09 GregorR: K, pull. 01:24:10 OK, fine, just push something X-P 01:24:18 Of course I said that JUST too late X_X 01:24:22 yay makeshift lets :) 01:24:32 OK, that console is a BIT gigantic ... 01:25:05 Doesn't fit on my screen. 01:25:08 GregorR: Well, I like it. Shrink if you want to 01:25:19 Eh *shrugs* 01:26:02 GregorR: Tweaked. 01:26:03 Pull. 01:26:37 Whoot. OK, I'm going to fix up test.head and test.tail to work better with the new setup. 01:27:24 GregorR: Ah, wait 01:27:27 Let me fix that 01:27:37 Er 01:27:40 I already pushed it :P 01:28:30 GregorR: Too bad, I pushed a more awesomer version 01:28:37 Besides, we can currently only have one mips 01:28:40 So why do we need mipses? 01:28:45 We don't, really. Can I remove it? 01:29:09 We can currently only have one mips: Until threads are implemented >: ) 01:29:11 GregorR: even Start MIPS will only start _one_ 01:29:34 Also, we should NOT do threads by using multiple VMs... 01:30:15 If you make a new MIPS and point its memory at the previous MIPS' .mem, you get threads with no significant overhead or complication. 01:30:32 GregorR: But if you just make MIPS itself handle the threads, it's less ugly. 01:30:36 And less memory intensive. 01:30:37 And faster. 01:30:45 That'll be important when we start running real MT apps 01:30:55 I would contest that it's more ugly, less memory intensive, and neither faster nor slower. 01:31:05 Since you'd need to implement a bunch of thread switching code. 01:31:20 GregorR: Yes faster, because it's one streamlined operation chain 01:32:15 The only difference is whether we implement context switching in JavaScript or allow the JavaScript interpreter's already-existent context switching for supporting setTimeout do it for us. 01:32:51 GregorR: Meh, fine. Don't make jsmips any slower while I sleep. 01:32:51 :P 01:33:20 BAYYYEE 01:33:25 -!- tusho has quit. 01:33:52 wow, 12!? friggin twelve 01:46:35 -!- RedDak has quit (Remote closed the connection). 01:58:38 -!- Corun has quit ("This computer has gone to sleep"). 02:01:12 -!- puzzlet_ has quit (Remote closed the connection). 02:01:17 -!- puzzlet has joined. 02:07:53 -!- Corun has joined. 02:19:40 -!- Corun has quit ("This computer has gone to sleep"). 03:03:11 -!- Phenax has quit (Remote closed the connection). 03:03:20 -!- Phenax has joined. 03:14:04 okokokokokokokoko 03:14:22 okookkoooooooooooooooooooooooooooooooooooooooooooooooooooooooo 03:37:04 that's a bad oko 04:36:02 -!- crink has joined. 04:43:30 hi 04:43:44 is there brainfuck written in assembler? 04:53:32 probably ... brainfucks abound 05:15:04 -!- crink has quit ("Leaving."). 05:22:40 -!- GreaseMonkey has joined. 05:23:26 Deewiant: i see you're doing projecteuler 05:44:01 when did you start? 07:46:51 -!- arekinath has joined. 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:18:53 -!- kar8nga has joined. 08:53:52 -!- oklofok has joined. 08:53:59 -!- oklofok has quit (Remote closed the connection). 09:04:19 -!- oklopol has quit (Read error: 110 (Connection timed out)). 09:08:04 -!- oklopol has joined. 09:34:47 oklopol: timestamp of the solution to the first one is 2006-04-02 11:22 09:34:54 but I haven't been doing it much lately 09:35:46 i did some 80 tasks near christmas, and started doing again a few days ago 09:36:11 (actually *during* christmas) 10:24:51 -!- GreaseMonkey has quit ("Remote closed the previous member app"). 10:40:10 -!- arekinath has quit. 10:51:31 -!- Hiato has joined. 11:17:43 -!- kar8nga has left (?). 11:17:50 -!- Hiato1 has joined. 11:22:17 -!- Corun has joined. 11:29:44 -!- Slereah_ has joined. 11:32:33 -!- oklofok has joined. 11:34:29 -!- oklopol has quit (Read error: 113 (No route to host)). 11:34:46 -!- Hiato has quit (Read error: 110 (Connection timed out)). 11:43:00 -!- Slereah has quit (Read error: 104 (Connection reset by peer)). 11:48:16 -!- Corun has quit (Read error: 104 (Connection reset by peer)). 11:48:49 -!- Corun has joined. 11:51:54 * SimonRC congratulates Russel T Davis on a brilliant tale of multiple-critical-miss on the "Influence Mob" roll. 11:52:26 *Davies 12:15:36 -!- RedDak has joined. 12:31:32 -!- kar8nga has joined. 12:36:26 -!- timotiis has joined. 12:44:20 -!- oklofok has quit (Read error: 113 (No route to host)). 12:44:34 -!- oklopol has joined. 12:56:14 -!- kar8nga has left (?). 13:02:59 -!- oklofok has joined. 13:03:15 -!- oklopol has quit (Read error: 113 (No route to host)). 13:12:53 -!- atsampson has quit (Read error: 104 (Connection reset by peer)). 13:14:20 -!- atsampson has joined. 13:50:12 -!- ais523 has joined. 13:57:22 -!- kar8nga has joined. 14:06:33 I'm back people 14:09:07 Fuck 14:09:14 My pi book still didn't arrive. 14:09:16 Slereah_: hi 14:09:19 I hope it's here tomorrow. 14:10:04 That will teach me to order from a bookstore called Quartermelon. 14:10:20 -!- timotiis_ has joined. 14:11:01 -!- timotiis has quit (Nick collision from services.). 14:11:07 -!- timotiis_ has changed nick to timotiis. 14:36:14 -!- oklopol has joined. 14:37:26 -!- oklofok has quit (Read error: 113 (No route to host)). 14:50:49 -!- RedDak has quit (Remote closed the connection). 15:00:21 -!- Corun has quit ("This computer has gone to sleep"). 15:08:20 -!- olsner has joined. 15:11:04 -!- puzzlet has quit (Remote closed the connection). 15:11:08 -!- puzzlet has joined. 15:12:53 -!- olsner_ has quit (Read error: 110 (Connection timed out)). 15:13:32 -!- jix has joined. 15:24:43 -!- oklopol has quit (Read error: 113 (No route to host)). 15:38:29 -!- puzzlet_ has joined. 15:39:00 -!- puzzlet has quit (Remote closed the connection). 16:04:20 -!- tusho has joined. 16:05:31 hi ais523 16:05:37 tusho: hi 16:05:46 I'm inventing a crazy new version number system for C-INTERCAL 16:05:56 because I'm thinking about doing things like betas and release candidates 16:06:01 and also want to number repository entries 16:06:17 here, take a look: 16:06:18 [[ 16:06:21 22.-3.0.29 (alpha in repository, before any betas) 16:06:21 1.-2.0.29 (beta, thus the -2) 16:06:21 1.-1.2.-2.0.29 (repository revision preparing for another beta) 16:06:21 2.-1.0.29 (this means the second release candidate for 0.29) 16:06:21 0.29 (version 0.29 itself) 16:06:22 1.29 (a bugfix for 0.29) 16:06:24 ]] 16:06:34 ais523: Needs more imaginary numbers 16:06:41 tusho: nah, I like it as it is 16:06:45 it's simple and easy to understand 16:07:07 ais523: no, it's not 16:07:11 all I need to do now is figure out how to get darcs to number things like that 16:07:13 negative numbers were crazy enough 16:07:18 and how to get Debian to do things 16:07:18 but imaginary numbers crazier 16:07:23 and, you can't make darcs do that 16:07:26 darcs just tracks revisions. 16:07:38 tusho: it allows pre-commit scripts IIRC 16:07:44 they can update the version number for me 16:07:51 ais523: that'll be unpredictable 16:08:05 not if only one person ever pushes 16:08:13 each push would increment the version number 16:08:30 ais523: what if you let me push because i'm so awesome 16:08:31 huh 16:08:32 anyway, figured out how it works yet? 16:08:33 16:08:35 and no 16:08:42 ais523: anyway 16:08:46 CLC-INTERCAL already uses negs 16:08:47 tusho: it's lexicographical right-to-left, numerical within the sections 16:08:50 I told you it was easy 16:08:55 tusho: yes, but it interprets them in decimal 16:08:55 so you should use something else 16:09:05 if not imaginary numbers then something else 16:09:06 tusho: I'm not just trying to be esoteric 16:09:12 this is actually a good version number system 16:09:40 how else could you number, for instance, a repository revision intended to eventually become part of the second beta for version 0.29? 16:10:03 ais523: 0.29a 16:10:08 or, if you wanna be more precise 16:10:12 0.29a 16:10:12 like 16:10:15 0.29a254 16:10:27 so, that's a non-esoteric system. If we wanna be esoteric... 16:10:33 tusho: no, that doesn't work 16:10:38 it needs to become before beta 2 16:10:43 but after beta 1 16:10:45 in the versioning system 16:11:05 so it would be 0.29beta2~pre1 or something silly like that in existing systems 16:11:12 ais523: Make version numbers cellular automata. 16:11:28 tusho: seriously, though 16:11:29 ais523: Each revision = step the cellular automata one step. 16:11:39 Do something more fancy for betas, alphas, minors and majors. 16:11:45 It would certainly make debian hate you 16:12:01 tusho: I'm writing a backwards-compatible C-INTERCAL to Debian version number compiler 16:12:04 in INTERCAL 16:12:11 bah 16:12:15 hi SimonRC 16:12:18 ais523: Do it with my cellular automata idea. 16:12:21 BUT 16:12:22 I wish I had the motivation to do useful stuff like you do 16:12:26 Make the cellular automata description language 16:12:31 made up of 0-9, minus, and . 16:12:32 Well, useful compared to the stuff I do 16:12:41 and - can only come before a number and a . 16:12:48 and . can't be at the end or the start 16:12:51 and . can't come after . 16:13:05 That is, things like 3345.-45.2343.-346883.-34.342.4 16:13:07 bbl 16:13:15 does . or : come first in alphabetical order? 16:13:17 * ais523 checks 16:13:30 . comes first 16:13:45 now I just have to try to figure out the implications of that... 16:15:40 ais523: you don't like my idea. 16:15:43 GregorR: You there? 16:15:45 no, I don't 16:15:55 I'm actually trying to do something which is almost serious here 16:16:18 my system is flexible enough to have release candidates for alphas for betas, if necessary 16:16:33 and it can be expressed Debian-style if necessary 16:16:33 ais523: you can do that with mine! 16:16:38 ditto 16:16:39 tusho: how? 16:16:53 oh, and by Debian-style I mean also sorting correctly 16:16:56 ais523: well, I'm not entirely sure, but I know it's _possible_ 16:17:01 here's the basic idea to the system 16:17:12 - code up some kind of cellular automata thingy 16:17:20 - find an initial pattern that grows and shrinks indefinitely 16:17:25 I did have to download the source code for dpkg to figure out how its sorting worked, though 16:17:30 - write an input language with that format 16:17:41 - each 'most minor' release, step it 16:17:45 I dunno what to do for more important releases 16:17:52 ais523: oh, and because of repeating patterns, prefix it with the year 16:17:58 so 2008.3345.-45.2343.-346883.-34.342.4 16:18:02 well 16:18:05 it'd be smaller most of the time 16:18:06 like 16:18:13 2008.-34.5563.3563.-45861 16:18:17 mine gives smaller names to the most important releases 16:18:32 ais523: then you could step it until it shrinks N for more important releases 16:18:59 also it embeds the C-INTERCAL version number at the end of the Debian version number 16:19:21 ais523: I'm pretty sure you can convert mine to dpkg 16:19:26 with a bit of magic 16:19:34 oh, in theory you can convert anything to dpkg 16:19:36 The most stupid solution is to make the debian version the generation number 16:19:40 because you can convert anything to my system 16:19:43 but there's gotta be better ways 16:19:47 But that would work. 16:19:59 mine is basically a binary tree 16:20:08 expressed in numbers and hyphens and dots 16:20:13 so you can insert anywhere into it 16:20:28 ais523: Welp, I think my solution is very intercally 16:20:37 tusho: then you don't get INTERCAL 16:20:44 :< 16:22:17 tusho: you understand how a tree-sort works? 16:22:21 Yes 16:22:24 my system's a serialisation of that 16:22:40 thus making it obvious that you can add a new version number anywhere in the tree 16:22:55 and it's pretty elegant too 16:23:17 apart from the weird historical right-to-left reading, it's pretty much a perfect version number scheme 16:23:54 just imagine how useful it would be for people like Firefox to be able to release a release candidate for 3.0 16:24:00 and, say, call it 3.0.-1.1 16:24:11 and then have 3.0.-1.2 available for the second release candidate 16:24:38 and 3.0.-1.2.-1.130 (or whatever) available for their repository versions that were partially-fixed versions of the second release candidate 16:25:33 ais523: I don't think they'd be so enthusiatc 16:25:36 *enthusiastic 16:26:17 but they don't have meaningful version numbers for those at the moment 16:26:32 they end up with separate version number schemes for repo versions and released versions 16:30:32 incidentally, 1.-1.2.-2.0.29 Debianises to 29:0~8.2~9.1.-1.2.-2.0.29 16:30:42 ten's complement FTW 16:31:35 jrj 16:31:36 *hrh 16:31:37 *heh 16:33:26 -!- Corun has joined. 16:35:32 *whistle 16:36:12 * ais523 faces the terrifying prospect of having to do string handling in INTERCAL 16:36:42 write a string library! 16:36:54 is there a way to pass arrays as arguments? 16:36:57 SimonRC: that would involve doing string handling 16:37:09 SimonRC: well, you don't pass things as arguments, as such 16:37:15 each variable is scoped individually 16:37:18 yes 16:37:25 so you pass values in globals and scope them to simulate argument passing 16:37:31 that works for arrays just as well as it works for scalars 16:37:35 Oh I know that... 16:37:53 I wondered if you could somehow have array references 16:37:55 Wait 16:38:00 After the combine base 16:38:06 so you don't have to copy things into specific arrays all the time 16:38:08 HAHAHAHAHAHAHAHAAH:[ 16:38:09 [[Tell me what to use then. Having read as far as to page p. 22 in the K&R, it doesn't mention another way of printing ``".]] 16:38:18 Ah, wrong window 16:38:20 We should make a language with 50 ways of printing the empty string 16:38:38 tusho: C has an infinite number of ways to print the empty string 16:38:47 ais523: No, but I mean, nothing else 16:39:05 don't all NOPs print an empty string, anyway? 16:39:18 exactly 16:39:20 taht's what's so hilarious 16:39:23 SimonRC: there aren't exactly references 16:39:25 someone posted a program with printf(""); 16:39:30 but you can have overloaded variables 16:39:31 and someone laughed at it and told them why it was stupid 16:39:34 and they responded with that 16:39:34 that can do a similar thing 16:39:54 you can't overload arrays in C-INTERCAL 16:39:59 but you can in CLC-INTERCAL 16:40:04 it's sort of like symlinking 16:40:20 so you can, for instance, do DO .999 <- ",1/,2" SUB #1 16:40:32 to give yourself a pretext to evaluate ,1/,2 16:40:40 from then on ,1 is an alias to ,2 16:40:50 and you can scope the aliases as much as you like 16:41:01 sounds like it might work 16:41:08 the issue, though, is that if someone STASHes ,2, the new value will be referenced by ,1 rather than the old one 16:41:12 so you can't reference auto variables 16:41:14 only globals 16:41:23 yeah 16:41:38 the only reason symlinks work is that filesystems don't have scoping rules 16:41:52 although scoped filesystems are an interesting idea, now I think about it 16:42:04 it would be a greatly improved way to do temporary files 16:42:16 and chrooting, for that matter 16:42:36 ais523: I agree 16:42:53 It would be nice if there were a proper system call to create anonymous files and directories 16:43:21 SimonRC: a scoped method would allow you to create named files and directories that you could see, but no other process could, that vanished when your process ended 16:43:22 rather than doing a hope-its-atomic open-and-unlink 16:43:37 and it wouldn't cause trouble if you picked the same name as another process 16:43:40 ais523: anonymous directories might work quite well for that 16:43:51 SimonRC: yes, they might be one way to implement them 16:43:55 except... 16:44:24 I fear that Java File objects will interact poorly with anonymous directories and such 16:44:41 well, my method would let you name a tempfile anything 16:44:41 If I recall correctly, they use full paths a lot. 16:44:49 ais523: why name it at all? 16:44:54 you could name it /etc/passwd and your program would still work 16:44:55 ais523: so I came up with the craziest JS thing ever. 16:45:04 ais523: oh, I see what you mean now 16:45:07 SimonRC: so you can override a system file's contents like that 16:45:35 PLan9's union filesystems are a bit like that 16:46:12 I'm not surprised 16:46:25 however, somehow I doubt they ended up inventing symlinks for variables in programming languages 16:46:39 but scoped files and symlinked variables are both sensible concepts in some sense 16:46:47 ais523: hardcore plan9ers would like to make variables symlinks, probably 16:46:52 they like the fs quite a lot :P 16:46:58 after all, Macs have references to files 16:47:05 in the same way that you can have pointers to variables 16:47:14 ais523: macs references to files are, uh, symlinks. 16:47:19 tusho: no, as in numbers 16:47:25 they aren't in the filesystem 16:47:30 they're ints that can be passed from program to program 16:47:34 and used internally 16:47:37 ais523: uh, file descriptors? 16:47:43 tusho: the file has to be open to do that 16:47:50 I don't think most Unices can manage it 16:47:55 but the Mac filesystem is weird 16:47:58 sorry, I don't think os x is any different in this area 16:48:02 ais523: HFS+ isn't that weird 16:48:14 there are 6 different ways of representing a file IIRC 16:48:30 it corresponds sort of to passing around inode numbers in a typical Unix program 16:48:32 but saner 16:49:35 hmm... does any programming language have permissions on variables? 16:49:52 I suppose OO languages have private/protected/public, but it's not quite the same 16:50:03 don't think so 16:50:10 arguably some languages have things like character special variables 16:50:10 ais523: you know, I really dislike filesystems 16:50:19 because I don't think heirarchically. 16:50:23 tusho: what would you use instead? 16:50:34 although I think a multidimensional filesystem would be good 16:50:39 it would be based on tagging, I think 16:50:41 ais523: Something tagged. Multidimensional sounds nice. 16:50:44 but tags could themselves be tagged 16:50:49 yes 16:50:50 that sounds very good 16:50:51 so you could do hierarchies if necessary 16:50:56 ais523: and, then, files are just tags 16:51:09 turtle solutions are always nicer, I feel 16:51:19 /etc/passwd would mean "a file tagged with (passwd tagged with an untagged etc)" 16:51:25 ais523: kind of, yeah 16:51:27 except it would be 16:51:35 that way it's backwards-compatible to real filesystems 16:51:48 a tag tagged with [the tag passwd tagged with [the tag etc tagged with []]] 16:51:48 the difference would be that instead of, say, /home/ais523 16:51:58 you could have /home&/ais523 16:51:58 ais523: it would be /user/ais523 16:52:09 a tag ais523 tagged with [the tag user tagged with []] 16:52:15 ais523: and look, users are just tags! 16:52:21 gosh, that's so elegant. 16:52:23 tusho: I'd take that as corresponding to the user ais523 16:52:27 ais523: yes 16:52:29 users can just be tags! 16:52:36 you lose canonical names 16:52:39 also, with my idea, files could have subfiles 16:52:42 whereas /user/ais523&/home would be the same as /home&/user/ais523 16:52:44 SimonRC: of course you do. I don't see that as a bad thing 16:52:51 ais523: I don't really like that idea 16:52:53 why seperate the concepts 16:52:56 and there are fewer safeguards against things having duplicate names or no names 16:52:57 now I need some way to get /home/ais523 and /user/ais523/home to map to those 16:53:02 mine lets you make EVERYTHING a tag 16:53:02 tusho: the & just means 'tagged with both'' 16:53:08 tusho: so are mine 16:53:14 but this is the multidimensionality I'm talking about 16:53:18 ais523: I don't see why /user/ais523 is not perfect 16:53:24 tusho: that's the user itself 16:53:27 /user/ais523/passwd 16:53:28 not eir home directory 16:53:31 /user/ais523/code/c-intercal/ 16:53:35 what's wrong with that? 16:53:43 tusho: clashes 16:53:56 how does one divide up space between things and programs? 16:53:56 ais523: wait, how about this: 16:53:57 because, say, /user/ais523/group might be "www-data" 16:54:01 wait, wait 16:54:03 look: 16:54:20 SimonRC: presumably, programs would be tagged with /bin 16:54:20 you might have 1000 packages installed; what stops them colliding? 16:54:33 /user/ais523/[code,c-intercal] 16:54:36 err 16:54:36 or 16:54:36 SimonRC: well, /bin/pager might be ambiguous 16:54:42 /[user,home]/ais523/[code,c-intercal] 16:54:43 hmm 16:54:49 ais523: really, we need tags to be predicates with arguments 16:54:56 but /bin/pager&/less would be unambiguous, as would /bin/pager&/more 16:55:00 and a nice way to do composition 16:55:11 well, /package/less and /package/more, probably 16:55:15 ais523: user.home/ais523/code.c-intercal 16:55:28 ah, I see where you are coming from 16:55:30 ais523: oh, and file extensions would be gone 16:55:37 because they're just tags 16:55:41 tusho's . is the same as my &, I think, just with a different precedence 16:55:52 so having both would be simple enough 16:55:59 I would like a bit of heirarchy though still... 16:56:01 /user.home/ais523/documents/test 16:56:03 /user.home/ais523/documents.pdf/test 16:56:05 /user.home/ais523/documents.txt/test 16:56:10 hey look, it's MultiViews :P 16:56:13 some tags only make sense if certain other tags are applied 16:56:21 SimonRC: that's why tags can be tagged themself 16:56:23 SimonRC: have dependent tags then 16:56:27 that's what the / does 16:56:30 ah, ok 16:56:32 so it looks like a normal system 16:56:42 so you have a heirarchy of tags? 16:56:46 SimonRC: yes 16:56:46 SimonRC: no 16:56:49 no 16:56:50 you don't 16:56:58 you have a folksonomy of tags 16:57:00 except... not exactly a hierarchy 16:57:02 (terirble word) 16:57:07 and I don't know what folksonomy means 16:57:18 ais523: you have 'a heirarchy of tags' as much as you have 'a heirarchy of files' 16:57:24 you don't, because they're tagged 16:57:30 not heirarchically sorted 16:57:45 yes, well it isn't a hierarchy because, say, */documents makes sense 16:57:52 that means "things tagged with documents" 16:57:58 ok 16:58:01 without specifying anything about what documents is tagged with 16:58:47 tusho: are you sure about that /user.home/ thing? 16:58:59 I would have thought it would be (/home./user/ais523)/documents/test 16:59:15 because the document is in the home section, and belongs to user ais523 16:59:30 ais523: not sure 16:59:32 ah, but some tags are transitive 16:59:39 it's not right to have all tags transitive, though 16:59:53 but, for instance, if a tag is tagged /user/ais523, so should the thing it tags 17:00:02 hmm... no, that's wrong too 17:00:20 Well, I started off feeling that the whole system had feet of clay, but that feeling is going away. 17:00:59 datestamps would be tags too? 17:01:06 SimonRC: of course 17:01:14 it would be great if there could be tags like "yesterday" too 17:01:20 which are automanaged by the system 17:01:26 you would definitely need an equivalent to the pwd 17:01:31 in shells, at least 17:01:40 SimonRC: well, my idea is you'd have a 'working tag' 17:01:46 yes 17:01:48 that's automatically prepended to any tag specification you use 17:02:07 ais523: tags like yesterday - just add algorithmic tags 17:02:13 tusho: yes 17:02:15 [now the FS is undecidable, but who cares?] 17:02:41 tusho: algorithmic tags could probably be inefficient, though 17:02:46 some tags "change faster" than others, but only typicaly so 17:02:47 for practical use I'd recommend special-casing them 17:03:14 for example, the tag specifying the current user will change very rarely 17:03:38 ais523: remember that everything is a tag 17:03:40 not just the fs 17:03:40 tusho: I think we need 3 precedences for the . operator 17:03:43 I mean _everything_ 17:03:45 tusho: yes 17:03:53 ais523: that is, the whole system is the kernel + tags 17:04:04 it's like microkernels, but to the incomprehensible extreme 17:04:12 there is something else you lose... 17:04:15 and I love it 17:04:18 tusho: what I mean, is, created/20080615 is a tag 17:04:21 which is fine 17:04:24 ais523: yes 17:04:26 to store in a system somewhere 17:04:32 given a set of tags, it is hard to tell if it identifies a unique file or not 17:04:32 but yesterday shouldn't be stored 17:04:32 ais523: except 17:04:36 created/2008/06/15 17:04:40 or more specifically 17:04:41 created/2008/06/15/* 17:04:45 since seconds etc will be tracked too 17:04:47 so 17:04:48 SimonRC: that isn't much of a problem 17:04:52 (created/2008/*)/* 17:04:57 will get you all tags created 2008 17:04:59 you could always write inode/100 if you needed to specify a file definitely 17:05:01 and adding a file might change an unambiguous tag into an ambiguous one 17:05:04 ais523: good or what. 17:05:15 SimonRC: yes, but that's deliberate 17:05:18 / is a bit of a jarring character though 17:05:25 (created,2008,*),* 17:05:29 tusho: / means tagged with 17:05:29 meh .. don't like that 17:05:34 ais523: yes 17:05:35 and we need three ways to do 'and' 17:05:36 it's a bit jarring 17:05:38 considering how common it is 17:05:41 and no, we don't 17:05:42 we just need parens 17:05:47 yes, but for simple use 17:06:00 (created*2008*?)*? 17:06:02 hmmm 17:06:06 say we have low-precedence &, high-precedence . and onesided-precedence , 17:06:06 (created#2008#*)#* 17:06:19 then it's /user/ais523,home/documents,pdf/test 17:06:22 ais523: I prefer , over all of them 17:06:22 that looks good 17:06:27 if a little hard to understand 17:06:27 so let's just have , 17:06:38 also, , is the most useful of them 17:06:54 ah, so we are still keeping inodes or equivalent? 17:06:56 a/b,c/d is ((a/b),c)/d 17:07:03 ais523: 17:07:04 (/created/2008/*)/user/ais523,home/documents,pdf/* 17:07:05 SimonRC: they'd be a physical thing 17:07:11 all pdf documents in ais523's home created in 2008 17:07:22 utter. win. 17:07:27 tusho: no, that's wrong 17:07:30 gah 17:07:34 it should be 17:07:37 if two files end up with exactly the same set of tags, how do you distinguish them? 17:07:38 /created/2008/*,/user/ais523,home/documents,pdf/* 17:07:40 ais523: right? 17:07:40 /created/2008/*&/user/ais523,home/documents,pdf/* 17:07:42 SimonRC: they couldn't 17:07:48 since tags would include their inode and similar 17:07:51 tusho: pretty much 17:07:58 ok 17:07:59 it's just a case of operator precedence 17:08:13 ais523: 17:08:13 (/created/2008/*),/user/ais523,home/documents,pdf/* 17:08:21 don't need &, really 17:08:22 yes, that's also correct 17:08:23 this gun can be pointed at whole new feet, it seems 17:08:25 it's too uncommon, ais523 17:08:30 , will be fine 17:08:53 wait, no, you've put the parens on the wrong side of , 17:09:03 ais523: ahh 17:09:08 ok, we need one more operator then 17:09:10 how about $ 17:09:11 like haskell 17:09:17 /created/2008/*,(/user/ais523,home/documents,pdf)/* 17:09:21 /created/2008/*$/user/ais523,home/documents,pdf/* 17:09:24 tusho: that's what I was using & for 17:09:39 ais523: right 17:09:39 hmm... does the , include an implied / 17:09:45 ais523: no 17:09:49 hm 17:09:51 or do we make tagged "home" the same as untagged "home" 17:09:52 do we even need / 17:09:57 your way's more elegant 17:10:04 ais523: i do believe that saying: 'home' tagged with anything 17:10:06 doesn't make much sense 17:10:07 but incapable of emulating a standard UNIX filesystem 17:10:12 since a load of those 'home's will mean nothing 17:10:18 tusho: as in, what if I want a dir called "home"? 17:10:20 and I don't think we should think about backwards compatibility 17:10:23 ais523: directories don't exist 17:10:28 but you're right 17:10:32 don't imply / 17:10:32 well, I'm thinking of backward compatibility 17:10:38 well, don't 17:10:41 this is too strange to 17:10:55 /created/2008/*&/user/ais523,home/documents,pdf/* 17:10:59 I like that 17:11:01 so do I 17:11:16 where documents is a tag I've defined myself, in that example 17:11:26 ais523: you don't define tags 17:11:28 you just use them 17:11:33 well, yes 17:11:36 and they automagically exist 17:11:42 I mean that that means "documents with ais523's interpretation" 17:11:49 yes 17:12:10 ais523: presumably, you'd make /user/ais523,home/documents tagged with /documents 17:12:16 (or /data/documents, whatever the OS calls them) 17:12:34 tusho: yes 17:12:52 ais523: am I the only one who desperately wants to use a system where _EVERYTHING_ is this tag system, like, right now? 17:12:54 so it could also be written /created/2008/*&/user/ais523,documents,pdf/* 17:12:58 tusho: no 17:13:02 good 17:13:08 why has nobody thought of this before? 17:13:14 i've heard of non-heirarchical FS' 17:13:16 but not to this degree 17:13:19 probably someone has but hasn't been bothered to implement it 17:13:22 and not one that leaves the idea of an FS behiind 17:13:25 and makes EVERYTHING in the tag system 17:14:01 well, mine would be backwards-compatible too 17:14:09 so systems that only knew about FSs would still work 17:14:29 sort of the same way that DOS programs which only understand short filenames nevertheless run on 32-bit Windows 17:14:48 ais523: if EVERYTHING is in the tag system, you can kiss native compatibility goodbye 17:14:53 you can build an emulation layer 17:15:00 but this is only truly amazing if it's unique 17:15:22 well, the emulation layer could just use my translations 17:15:34 and prefix underscores to filenames or something like that if there are clashes 17:15:39 ais523: anyway, it occurs to me that file lookups are TC 17:15:42 but nevertheless everything will be a tag 17:15:50 tusho: really? I can't think of a way to do a loop 17:16:04 ais523: no, but there'll be some tag somewhere a long the line that lets you 17:16:05 they're boolean search operations 17:16:05 you just know it 17:16:16 if processes, and EVERYTHING are tags 17:16:28 well, * and symlinks allow loops as it is 17:16:39 and what would be done here wouldn't even be symlinks, or even hardlinks 17:16:41 more like be-links 17:16:46 where two things are the same things 17:16:49 but written different ways 17:18:22 oh dear, this is starting to remind me of Feather again 17:18:26 ais523: indeed 17:18:52 tusho: here's a good reason for , to imply /: 17:19:00 you could have a versioned tagsystem 17:19:19 where, say, if a 'file' was deleted, it would no longer be accessible except by using versioning tags 17:19:35 but you could still find it using wildcard prefixes 17:20:20 ais523: meh 17:20:24 it removes too much flexibility 17:20:27 things become hideously verbose 17:20:29 no it doesn't 17:20:37 ais523: write your pdf thing with it 17:20:44 PDFs in your documents tag in your home created 2008 17:20:47 tusho: it looks the same 17:20:52 how can it 17:20:53 because I was considering pdf to be a global tag 17:21:00 ais523: but the 'documents' tag was local 17:21:02 to ais523 17:21:05 what would be a good way to copy a file? 17:21:06 tusho: yes 17:21:09 , has one-sided scoping 17:21:14 ais523: yeck 17:21:23 tusho: not really 17:21:31 because you want to factor in lots of global tags 17:21:37 your meaning, you just change the last , to . 17:21:44 and then it's ais523's pdf tag 17:22:03 well, say I've defined documents and pdf tags 17:22:29 then it would be /user/ais523/documents.pdf/* 17:22:43 whereas /user/ais523/documents,pdf/* uses the global pdf tag 17:23:10 and /user/ais523/documents&pdf/* selects either my documents tag, or any PDF file 17:23:14 so the last isn't particularly usful 17:23:20 ais523: it should be ,.pdf 17:23:27 ,type/pdf probably 17:23:31 ais523: no 17:23:33 err 17:23:34 I mean 17:23:35 it should be 17:23:36 bah 17:23:37 but with an abbreviation 17:23:39 basically, I don't like , implying / 17:23:40 sorry. 17:23:44 it just seems inelegant 17:23:47 ,mimetype/application/pdf 17:24:05 tusho: well, use . then 17:24:06 which doesn't 17:24:10 I invented , as shorthand 17:24:20 because it'll come up so often 17:24:57 it's shorthand for add ( at the start of the string and replace the , with )./ 17:25:04 it's just that comes up a lot 17:25:23 anyway, at this rate it's probably best for us both to invent things in our own systems 17:25:36 and see which one looks better 17:25:38 ais523: nah, they're close enough 17:25:43 but 17:25:46 ,/ 17:25:46 incidentally, permissions could be done like this too 17:25:48 is trivial enough 17:25:52 so just let , not imply it 17:25:52 as is ,* 17:25:54 and get more elegance 17:26:06 tusho: , is a typing aid 17:26:11 ais523: yes, but it's a terrible one 17:26:11 so use it for what it's usually used for 17:26:15 it's not a useful one 17:26:21 and it impacts the elegance of the system 17:27:31 tusho: let me come up with some paths in my system to see how much I use the three operators 17:28:36 ais523: hmm, wait 17:28:45 isn't /* superflouous? 17:28:52 /user/ais523,home/documents == /user/ais523,home/documents/* 17:28:55 /user/ais523/esoteric/intercal,home.(/apps/darcs/repos) 17:29:02 tusho: not exactly 17:29:06 the first is the tag itself 17:29:09 the second is all things tagged with ti 17:29:11 s/ti/it 17:29:18 s/$/\// 17:29:19 ais523: a tag is defined by its tags, and the tags tagged with it 17:29:30 therefore, I'd say /* is wrong 17:29:36 well, you normally need to distinugish between a directory and the files in it 17:29:46 ais523: but let's pretend you don't 17:29:48 e.g. suppose I want to tag a file with /user/ais523/mynewtag 17:29:58 that's different from tagging a file with all tags tagged by /user/ais523/mynewtag 17:30:05 ais523: just wait 17:30:05 i.e. tagging it with /user/ais523/mynewtag/* 17:30:10 /created/2008&/user/ais523,home/documents 17:30:19 so much more elegant without the /*s 17:30:34 tusho: that's just a scoping problem 17:30:59 actually, what does the 'home' tag even mean? 17:31:04 it should mean 'stored on the home partition' 17:31:12 ais523: don't think about low level details like that 17:31:18 no, I mean semantically 17:31:20 what does /home means 17:31:29 it means back this up preferentially over other things 17:31:33 ais523: it means a user's home 17:31:34 s/means/mean/ 17:31:40 tusho: that concept doesn't exist now 17:31:46 ais523: yes it does 17:31:55 the home tag is how you differenciate a user from their file storage 17:31:57 well, is what important the fact that it's in my home 17:32:05 or that it's mine, and it's home? 17:32:16 say we're working on something together 17:32:25 wouldn't it be great to tag it with something like /user/ais523.ehird/ESO 17:32:30 ais523: no 17:32:35 that'd go in /projects 17:32:37 or similar 17:32:44 as in, things that we both tag with that 17:32:45 and projects beloning to ais523 would be tagged /user/ais523 17:32:54 that'd go in /projects 17:32:56 and projects beloning to everyone in the group ESO would be tagged /group/ESO/* 17:32:56 you miss the point 17:33:08 it goes in /projects AND /user/ais523 AND /user/ehird 17:33:14 but it should also go in /home 17:33:23 because of the semantics that has for backup, etc 17:33:27 i think we've reached the flaws of this system 17:33:40 I'm beginning to think that /user/ais523/tag should mean "tag as defined by /user/ais523" 17:33:58 however, your meaning of home is probably a good one to prevent problems 17:34:02 except I think it should be called tags 17:34:09 as in, things I define 17:34:12 rather than things that tag me 17:34:15 ais523: heh, I think we're kind of reaching a mental block 17:34:17 like 17:34:19 there's this huge unifying thing in front of us 17:34:21 that makes everything elegant and fitting 17:34:23 BUT 17:34:29 because our minds are so stubborn, like all humans' minds 17:34:33 and the fact that paths superficially look similar 17:34:37 our minds are blocking it out 17:34:54 no, I don't think that's what it is 17:35:05 ais523: really? Because whenever I reach one of them stuff like this always happens 17:35:16 I sort of get how this new system works 17:35:23 I'm just having problems trying to figure out how it's organised 17:35:55 the issue is, I think, distinguishing between a tag as an object (something you can do things with) and a tag as a subject (i.e. it tags things) 17:35:56 ais523: maybe a slight break will help 17:36:04 because I just figured out a crazily silly javascript workflow 17:39:23 ais523: interested? 17:39:25 it's very silly 17:39:33 moderately interested 17:39:38 depending on what it is 17:40:03 ais523: http://ecmascript4.com/ <-- a python program that converts most of the stable parts of ECMAScript 4 to regular browser-accepting JS 17:40:08 now, the crazy idea is 17:40:15 set up a workflow that automatically compiles them (obviously) 17:40:21 now, write the serverside using Rhino 17:40:27 which is mozilla's java implementation of JS 17:40:33 you can do this because it can interface with java libs 17:40:44 so write ecmascript4 that uses rhino to interface a java webserver, etc 17:40:52 then, write the clientside in ecmascript4 too 17:40:54 and, 17:41:03 have a 'common' part which contains ecmascript4 for client and server side 17:41:05 all automatically compiled 17:41:06 >:D 17:41:33 hmm 17:41:50 the way things are going, you're going to end up combining clientside and serverside somehow 17:41:52 which gives me an idea 17:42:01 a website that doesn't run on a server at all 17:42:12 everything is entirely client-side 17:42:16 ais523: been done 17:42:18 oh so many times before 17:42:22 whenever a new client visits it, they actually get the information from the other clients 17:42:29 and there's no server involved 17:42:35 just the information flying backwards and forwards 17:42:46 if ever nobody's visiting the website, it simply ceases to exist 17:42:53 ais523: you can't do p2p communication with JS 17:42:55 sorry. 17:43:02 tusho: no, you'd have to use Java 17:43:07 ais523: eek 17:43:12 if anything, Flash, please ;) 17:43:15 at least flash is stable 17:43:24 also, make it a 1x1 px flash that is off the screen 17:43:29 and just make it interface with JS (it can do that) 17:43:29 tusho: well, personally I'd say "anything but Silverlight" 17:43:30 to build the page 17:43:35 ais523: quite 17:43:40 anyway 17:43:40 Java's security model is much better than Flash's, though 17:43:46 I got my idea after seeing http://280slides.com/Editor/ runs on 'Objective-J' 17:43:46 which is why I have Java but not Flash installed 17:43:48 which I told you about 17:44:03 which is, essentially, JS with Objective-C class & method sending syntax 17:44:10 and some functions & constants like objective-c 17:44:17 it's very very crazy 17:44:19 and perhaps not that logical 17:44:21 but I can actually understand it 17:44:26 I mean 17:44:27 why they did it 17:45:09 'cause http://280slides.com/Editor/1213027183/Document.j doesn't actually look all that bat 17:45:10 *bad 17:45:19 ais523: but then I thought, wait a minute, ecmascript4 has all of this 17:45:29 nice classes, strong typing, good error handling, all of that 17:45:35 and I came up with my Evil Idea. 17:45:38 yes, the first thing I noticed was that it was typed 17:45:48 ais523: optionally, though 17:46:12 ais523: select the Structural types example 17:46:14 it's ADTs! 17:46:16 like haskell 17:46:22 I'm slightly disappointed that it has classes, though 17:46:27 it has parametized types, like Java, too, check that example 17:46:31 ais523: yes, I prefer prototype inheritance 17:46:32 but still 17:46:35 it looks really nice 17:46:36 but I suppose it would have been too much to ask for them to use the IO or Self method 17:46:46 ais523: It's Io 17:46:46 not IO 17:46:50 ok 17:46:54 also, check out hte Typed higher-order functions thing 17:46:56 well, let me try opening it in FF 17:47:00 it's scary but it looks like C# :-P 17:47:05 the examples dropdown doesn't work in Konqueror 17:47:08 oh, it has namespaces too 17:47:14 and union types.. 17:47:19 (that is var test : (String|int|double) = "test";) 17:47:34 ais523: and nullable types, whereby you can specify with a type what can contain a null and what not 17:47:39 (i.e. Java I'm Looking At You) 17:47:52 it has a typed browser api, too 17:48:07 tusho: that's the same for all browsers? 17:48:20 ais523: It's just the w3c dom. 17:48:25 Which everything but IE4 supports, really. 17:48:35 document.all 17:49:01 ais523: don't use document.all. 17:49:08 no, I don't 17:49:12 not nowadays, anyway 17:49:16 IE supports the regular dom too, you know 17:49:20 and I translated my old programs from it 17:49:32 tusho: it's what Microsoft teach, in the hope that people will end up writing IE-only programs 17:49:51 anyway I learnt the DOM originally by writing reflective JS programs to look at it 17:49:59 ais523: *used to teach 17:49:59 nowadays I generally use the Mozilla docs, which are pretty good 17:50:07 tusho: they've fixed that? 17:50:08 that's good 17:50:15 ais523: they're getting better 17:50:20 tusho: in some cases 17:50:24 the IE team aren't evil, from what I've read of their blog 17:50:25 I think they're confused 17:50:27 just a bit misguided sometimes 17:50:32 most of the employees aren't evil 17:50:32 -!- kar8nga has left (?). 17:50:33 and, yes a bit confused 17:50:45 i think they just need some time to catch up 17:50:53 they're a bit slow, though, admittedly 17:51:00 I think the company itself may have become sentient 17:51:07 and is doing evil things against the wishes of its employees 17:51:09 heh 17:51:22 * SimonRC points ais523 at the Ubersoft comic 17:51:22 ais523: LOL! Oh lord this ecmascript 4 compiler sucks hard 17:51:27 [[It is licensed under Creative Commons Attribution-Noncommercial-Share Alike 3.0 17:51:27 after all, its management structure is sufficiently complicated that I wouldn't be surprised if it was TC 17:51:27 17:51:27 which basically means you can use it freely for non-commercial purposes.]] 17:51:34 Creative Commons almost = FAIL by itself 17:51:39 but creative commons NONCOMMERCIAL? 17:51:42 * tusho dies laughing 17:51:47 oh, CC for code 17:51:50 yes, that's wrong 17:51:58 for a moment I was wondering why you were so agitated 17:52:03 ais523: CC's NC licenses aren't even OSI or DFSG or anything 17:52:10 well, no 17:52:15 unacceptable 17:52:21 but more to the point, they don't take into account the fact that code can be compiled 17:52:22 ais523: oh and the translator doesn't even include the source 17:52:27 it's a load of *.pyc files 17:52:29 (bytecode) 17:52:42 CC-by-sa can almost survive for interpreted languages 17:52:44 almost 17:52:50 but for compiled languages it just fails 17:53:26 ais523: oh lol: 17:53:28 [[(Sorry for the parentheses, haven't figured out how to enter HTML in blogger)]] 17:53:33 they don't even know html entities.. 17:54:41 ` 17:54:55 (I justify my company's work by saying that we're a service company, not a product company) 17:55:06 ais523: May I humbly suggest using § instead? 17:55:08 It's more elegant. 17:55:09 SimonRC: what does your company do? 17:55:16 tusho: it's harder to type 17:55:22 ais523: no it's not 17:55:30 tusho: what sort of keyboard are you using? 17:55:34 ais523: apple 17:55:35 alt-5 ;) 17:55:44 ` is on my keyboard, without even pressing modifier keys 17:55:47 it's to the left of 1 17:55:53 ais523: we get all the funnest modifier keys on alt, you see. 17:56:00 err 17:56:02 unicode chars 17:56:07 -ø,˚,¯˝ð•ª¥œª´•¶º•˚ª•‚—·°̄·° ̑̆̂̄°‡‡‡̋̂̆̀ 17:56:16 and alt-5 switches to the fifth tab in most programs running on Ubuntu 17:56:29 they mess with the keyboard shortcuts if they don't follow the Ubuntu standard 17:56:34 we make stuff that processes tax forms 17:56:40 as do Debian with their keyboard standards 17:56:47 notably the backspace/delete thing in Emacs 17:56:53 I spend much of my time: 17:58:01 writing Java that takes in Excel spreadsheets and produces xml that it uses to modify xml that specifies how another java program should produce some more xml that processes xml 17:58:31 SimonRC: that sounds like you should submit it to thedailywtf 17:58:59 it's not bad though 17:59:07 apart from the coice of technologies 17:59:11 * ais523 remembers finding that OpenOffice's scripting language was so awful that I just went and parsed .ods with a Perl program I wrote myself instead 17:59:35 I like OpenDocument format, because I managed to figure out how it worked even without docs, just from the content of the file itself 18:00:07 tusho: is it worth trying to decompile their code? 18:00:11 no 18:00:15 python's thing is a stack machine 18:00:20 ah 18:00:21 so you won't get much useful 18:00:27 decompiled Java tends to be very useful 18:00:32 ais523: so since ECMAScript 4 is out of the question, what other language should I hybridise :P 18:00:41 tusho: Smalltalk! 18:00:49 ais523: objective-c is basically c+smalltalk 18:00:50 * ais523 imagines a Smalltalk to JS compiler 18:00:55 so objective-j is basically js+smalltalk 18:00:57 * SimonRC goes away for breakfast and radio 7. 18:01:14 -!- oerjan has joined. 18:01:33 tusho: either that, or just wait for a Feather interp with the required features to spontaneously pop into existence 18:01:45 ais523: ooooh 18:01:47 however, that's ridiculously unlikely, which is why bootstraps are generally needed 18:01:48 Feather in JS 18:01:52 that would work really well 18:01:58 since you could share interps you make with it 18:02:01 tusho: actually, if you can do continuations easily, it would work well 18:02:06 ais523: yes 18:02:08 continuation passing style 18:02:11 JS has all the other features needed 18:02:21 ais523: i have a new project: JS -> CPS JS 18:02:33 I was thinking about a lambda + call/cc interp in C 18:02:36 it'll be part of Feathejs 18:02:43 (Feathers? Feathejs? Get it?) 18:02:44 whose only purpose was to optimise for the operations Feather did 18:02:48 ais523: naww 18:02:52 JS will be more fun 18:02:57 anyway, i'll go make a feathejs.git 18:02:59 tusho: I'm thinking about computational order here 18:03:17 ais523: the good thing about feather in JS is that it'll be totally detached from traditional consoles 18:03:24 since it'll be the dom 18:03:28 on the downside 18:03:30 it'll be the dom 18:03:36 the major unusual operation in Feather is giving an argument to a continuation which is almost identical to what the call/cc returned in the first place 18:04:06 that can be optimised to prevent having to rerun the whole program since the call/cc, in many cases 18:04:15 ais523: what should I write js2cps in do you think? 18:04:17 JS? :-P 18:04:26 JS is not a bad choice 18:04:54 ais523: hmm 18:04:57 the browser itself should do the cps 18:05:03 it'll load the cps translator 18:05:07 then make a request to the feathejs source 18:05:09 then run the cps translator 18:05:11 then eval 18:05:21 tusho: it depends on how client-side you're doing things 18:05:25 you like hobix, for instance 18:05:41 ais523: well, for feathejs it just seems RIGHT 18:05:44 ok 18:05:50 it will have a server-side for sharing feather images, though 18:05:54 this is going to be hilariously inefficient, though 18:05:58 of course 18:05:59 anyway, it needs to be client-side 18:06:00 so is Feather 18:06:04 and no 18:06:09 the sharing app will be server-side 18:06:15 since I don't want people tampering with that, it's dangerous ;) 18:06:20 tusho: because say if you're writing a feather interp in JS 18:06:22 but the actual thing that saves it will be writteni n feather 18:06:36 and you're compiling into JS-with-continuations 18:06:42 that then needs to be compiled into JS-with-CPS to run 18:06:50 anyway, a Feather interp in Feather is trivial 18:06:55 because it has eval 18:07:00 well, almost 18:07:04 the difference is: 18:07:13 most languages have eval so that you can build code at runtime 18:07:19 Feather has eval so that you can modify it 18:07:36 and yes, modifying eval does change the syntax of the language 18:08:16 ais523: I think we should write js2cps first 18:08:19 then worry about feathejs 18:08:19 :P 18:08:20 yes 18:08:40 ais523: shall we just call feathejs ... feather? 18:08:50 it seems official enough if we're both working on it 18:08:50 why? 18:08:55 and it's on eso-std.org 18:08:58 ais523: feathejs is a mouthful 18:08:59 it's rare to call the interp the same thing as the lang 18:09:02 ... 18:09:03 what 18:09:03 call it feathers 18:09:05 as a compromise 18:09:06 no it's not 18:09:09 it's terribly common 18:09:15 Ruby, Python, Perl. 18:09:17 tusho: actually, more commonly the lang is named after the interp 18:09:19 (don't go on about Perl vs perl.) 18:09:24 ais523: well, yes 18:09:27 e.g. those three cases 18:09:38 but when the lang's named first, I reckon the interp should be called something else 18:09:43 ais523: feathers will just make people mix up feather and feathers 18:09:47 I like the idea of multiple feather interps 18:09:50 being possible 18:09:51 alright then 18:09:53 feathejs 18:10:11 after all, feather images /are/ portable between interps 18:10:22 although reloading them on the same interp is much faster than porting them from one interp to another 18:10:43 ais523: btw, who should own /home/feathejs? 18:10:46 tusho:feathejs? 18:10:57 yes, I think so 18:10:59 -!- sebbu2 has joined. 18:15:36 ais523: git clone ssh://eso-std.org/home/feathejs/feathejs.git 18:15:48 only one file there, and it's the runtime library for js2cps 18:16:26 that's a short runtime library 18:16:47 also, that return looks wrogn 18:16:50 s/wrogn/wrong/ 18:16:52 this is CPS, right? 18:17:00 ais523: it's fully correct, sorry 18:17:03 because you finish it off like this 18:17:08 main(function (x) { return x; }); 18:17:16 besides, 'return' is an optimization hint 18:17:24 it means: 'this is the end of this call stack thingy' 18:17:38 the Chicken scheme compiler does CPS conversion and it does his 18:17:41 oh, that's going to be processed by js2cps too? 18:17:44 ais523: no 18:18:03 -!- sebbu has quit (No route to host). 18:18:03 -!- sebbu2 has changed nick to sebbu. 18:18:04 ais523: it's fully correct, just trust me. 18:18:08 anyway 18:18:12 since we're still using the js stack 18:18:16 we will run out of it eventually 18:18:18 which is where the wonderful 18:18:28 super-delicious BAKER TRAMPOLINE THINGY WHAT'SITSCALLED 18:18:37 comes in. Basically, in C, it's a setjmp/longjmp. 18:18:40 the CPS conversion is function(a,b) { /* code */ return c; /* code */} into function(cont,a,b) { /* code */ cont(c); /* code */} 18:18:43 And then you go back to the latest stack frame 18:18:48 ais523: no 18:18:51 it's to return cont(c); 18:19:04 perhaps you should read up on why you should do that. 18:19:05 ah, for tail-recursion in the JS interp itself? 18:19:32 ais523: yes, pretty much 18:19:34 it's just correct 18:19:41 ais523: anyway, basically 18:19:44 since we still use the js stack 18:19:45 probably written CPS never needs to do returns, but they can be useful to avoid running out of stack 18:19:49 but we keep the continuations along 18:19:54 only the top stack element is useful 18:19:58 yes 18:19:58 while the others just take up space 18:20:00 what we do is 18:20:00 yes 18:20:07 we let it grow, until we have, say, 100 elements 18:20:13 then, we throw an exception down 18:20:20 with the information of our locals, current function, etc 18:20:28 then, the trampoline at the bottom catches it, and reinitiates the call 18:20:33 tusho: actually, the exception only needs to throw a continuation and the argument to give it 18:20:36 when it grows to 100 again, it drops down and bounces again 18:20:39 ais523: ah, yes 18:20:48 but yeah, this is the best way to do js cps 18:21:04 so why the return? 18:21:20 ais523: sorry, you're making no sense again 18:21:24 * tusho writes the trampoline 18:21:43 as in, you wouldn't need to write return in return cont(c) if you're exception-throwing downwards 18:21:48 because none of those returns ever happen 18:22:28 ais523: yes they do 18:22:33 if you don't reach 100 stack elements 18:22:37 and besides 18:22:39 they do happen 18:22:44 when? 18:22:47 ais523: uh.. 18:22:51 you're making no sense. 18:22:52 sorry. 18:23:04 tusho: the end of a function is never reached in CPS 18:23:11 you always call a continuation right at the end 18:23:12 ais523: yes, it is. when the program is finished. 18:23:22 tusho: even then you just continuation out to an exit 18:23:32 sorry. you're wrong. yes, that is pure cps 18:23:35 or in JS's case, throw an exception 18:23:36 but that's not how it's done mostly. 18:23:53 read up on the chicken scheme compiler if you want to know more, but it'll become self-evident when cps2js evolves 18:23:59 *js2cps 18:24:02 hey, I've just realised that my IOCCC thing I showed you was in continuation-passing style 18:24:19 except the continuations were defined elsewhere 18:24:51 tusho: I see how exploiting the returns could be useful as an optimisation in some cases 18:24:56 no 18:24:57 sorry 18:25:03 but it isn't needed 18:25:15 * tusho is just going to keep repeating that as he's explained it to the best of his ability 18:25:24 if you don't understand it, well, you'll just have to wait until the code takes shape I guess 18:25:29 -!- timotiis has quit (Remote closed the connection). 18:25:34 you haven't explained it at all, just asserted it repeatedly 18:26:30 I've pointed you to more information 18:26:34 (the Chicken compiler) 18:27:01 tusho: if I write my own code that doesn't use return, will you concede that it isn't needed? 18:27:06 ais523: it is not needed 18:27:09 but it is far more useful 18:27:15 far more? 18:27:17 yes 18:27:31 well, then it's an optimisation, like I said 18:27:34 no 18:27:36 it's not an optimization 18:27:43 that's like saying c is an optimization of brainfuck 18:27:45 it's not true 18:28:08 tusho: would you say that PEBBLE's an optimisation of brainfuck? 18:28:48 no 18:29:24 well, I would 18:29:37 anyway, Narcissus (JS in JS) has a JS parser in JS 18:29:41 which simplifies our work greatly 18:29:50 yes, I was wondering where we'd get one of those 18:29:59 incidentally, how many people told them to just use eval? 18:30:06 ais523: heh 18:30:11 it's buried in the mozilla cvs 18:30:18 so I bet anyone who found it wouldn't be that dumb 18:30:34 ais523: oh and I think it only works in mozilla 18:30:37 but who cares, honesty 18:30:38 *honestly 18:30:49 tusho: what, mozilla-specific JS? 18:30:55 as in, not working in WebKit, for instance? 18:30:55 ais523: yeah, __proto__ and stuff 18:30:58 that could be a problem 18:31:00 webkit does __proto__ 18:31:01 i believe 18:31:03 maybe 18:31:14 opera doesn't though 18:31:15 and nor does ie 18:31:26 ais523: thankfully, this'll only be usable with FF3 or a webkit nightly 18:31:28 what does __proto__ do? 18:31:32 since those are both blazing fast 18:31:37 and prototypical inheritance confusing stuff 18:31:47 tusho: actually, the version of Konqueror I've got is pretty fast on complex JS 18:31:53 ais523: no, sorry 18:31:56 it might seem like it 18:32:03 but FF3 isn't, at least on Linux, because it has disk access problems 18:32:14 it's a release-blocking bug that they're looking into at the moment 18:32:14 but here's a comparison: FF3 can do what Safari3 lagged the system and took 10+ seconds to do, 18:32:17 in about 3 seconds 18:32:22 ais523: they've fixed that.. 18:32:29 it's at release candidate 3 now 18:32:38 ah, I only have rc1 over here 18:32:39 but 3? 18:32:46 why wasn't rc2 good enough? 18:32:56 ais523: rc3 just changed on mac os x 18:32:58 not sure what they did 18:33:04 a mac specific bug I think 18:33:19 -!- puzzlet has joined. 18:33:38 ais523: do you mind if I depend on jquery 18:33:46 what is jquery? 18:34:05 ais523: a tiny, tiny JS library that makes DOM manipulation a cinch 18:34:05 http://jquery.com/ 18:34:08 very popular 18:34:19 it does stuff chained 18:34:24 which means all the methods return self 18:34:28 very useful in practice 18:34:45 ais523: Bonus points - if we use jQuery we can use jQuery UI - http://ui.jquery.com/ 18:34:51 its also a pain in the ass to work with when making big complicated programs. :) 18:34:53 which is some WEB TWO POINT OH-style gui widgets for jquery 18:34:58 which will be useful for feather apps 18:35:01 like the class browser 18:35:04 augur: bullcrap 18:35:11 if you say so :) 18:35:12 it just doesn't do anything but dom manipulation 18:35:14 and that's by design 18:35:32 tusho: well, you need a proper separation 18:35:38 it would be useful for writing IO commands 18:35:45 but the class browser itself would be written in Feather 18:35:51 ais523: yes, of course 18:35:55 also, ideally the IO commands would be the same between interps 18:35:55 I mean we would interface jquery ui into feather 18:36:11 tusho: you would make the jquery UI available as IO commands that Feather could use 18:36:18 ais523: 'IO commands'? 18:36:20 you mean classes, right 18:36:25 because jQuery UI is a class library 18:36:27 tusho: IO commands are lower-level 18:36:28 so we'd expose them as objects 18:36:32 you expose them via classes, though 18:36:32 ais523: no, I don't like that 18:36:39 it should have a proper ffi 18:36:46 tusho: they have to exist even if classes don't for some reasona 18:36:57 ais523: well, then you can't use jQuery UI 18:36:59 big whoop 18:37:01 and FFIs are kind-of difficult with a language which can change its paradigm at will 18:37:16 tusho: yes you can, you just reimplement it in Feather 18:37:21 now see, this is why i find it absolutely hilarious that people like JQuery 18:37:24 you know how introspective Smalltalk is? 18:37:25 im in their little demo page 18:37:30 Feather is worse 18:37:31 and half their shit doesnt even work 18:37:32 much worse 18:37:35 augur: uh, yes it does 18:37:44 uh, no it doesn't 18:37:46 tusho: actually, it didn't for me when I tried on Konqueror 18:37:53 ais523: what, jQuery UI? 18:37:58 jQuery UI is in preprepreprepreprperpeprepreprepalpha, basically. 18:37:59 the example on their homepage 18:38:13 ais523: WFM 18:38:25 it did nothing when I tried it 18:38:40 ais523: WFM 18:39:00 yes, I was just explaining what symptomps I sawa 18:39:03 now im not saying _everything_ in JQuery doesn't work 18:39:18 but man, so much of it is buggy its not even funny 18:39:28 augur: i don't think you've actually used jquery. 18:39:29 i may be wrong. 18:40:11 tusho, i've never used it because every time i try to, in the DEMOS, it fails. 18:40:25 its like scriptaculous 18:40:29 Works for me and tons of other people too, including some of the most-visisted websites. 18:40:34 im sure it does, tusho 18:40:37 You may be using w3m or something. 18:40:46 most of the demos are working for me, sort of, in Konqueror 18:40:49 but some things go wrong 18:40:51 but it doesnt matter to ME that it works for YOU 18:40:58 e.g. the DOM screws up a bit on some of them 18:41:09 ais523: konqueror isn't really that good, anyway. 18:41:15 incidentally, have you seen how badly anagolf screws up on Konqueror when you use the back button? 18:41:32 theres a wonderful software development adage, about bug fixing 18:41:53 about how a coder should never EVER say something like "Well it works fine here!" 18:41:55 augur: yes, several in fact, which one are you thinking of? 18:42:16 because it doesnt MATTER that it works fine on his computer, the only thing that ever matters is that it works fine on the user's computer 18:42:17 augur: do you know about Schrodingbugs? 18:42:32 tusho: JQuery UI's messing up too badly for me to be usable 18:42:45 ais523: jquery ui is in pre-alpha 18:42:49 anyway, remember 18:42:52 are those bugs that result from not collapsing wave functions? :p 18:42:54 well, that explains why it isn't usable 18:42:59 feathejs will be impossible slow on konq and everything else, ais523 18:43:09 FF3 and nightly WebKits are the only things it'll be usable on, I suspect 18:43:14 just because of the nature of feather 18:43:18 and implementing it in something as slow as JS 18:43:27 oh i love it man 18:43:29 "Supports IE 6.0+, FF 2+, Safari 3.1+, Opera 9.0+." 18:43:29 so, it doesn't matter if it doesn't work on anything else 18:43:30 augur: no, they're bits of code that works fine for everyone, but then someone looks at the source and sees that they never should have worked in the first place, then suddenly they break for everyone 18:43:32 for JQuery UI 18:43:41 augur: it's pre-alpha. 18:43:48 it will support that when they actually officially release. 18:43:49 heh well, i'm using Safari 3.1.1 18:43:55 tusho, where does it say it's prealpha 18:43:58 augur: and yes, I know that doesn't make any sense, but some people swear they exist on occasion 18:44:10 augur: tusho's just assuming that it's prealpha because it isn't working properly 18:44:15 ais523: no, i'm not 18:44:18 ofcourse he his 18:44:20 is* 18:44:25 jesus christ, no I'm not 18:44:43 http://ui.jquery.com/functional_demos/#ui.dialog <-- tusho: does that seriously work for you? 18:44:44 he's 12, so what can you expect, really 18:44:45 ;) 18:45:05 ais523: works for me 18:45:06 -!- puzzlet_ has quit (Read error: 110 (Connection timed out)). 18:45:11 no template file. 18:45:16 ok, the dialog one doesn't 18:45:18 same error here too 18:45:22 because, guess what, they just launched the new site 18:45:28 like, yesterday. 18:45:54 interestingly, they're up to the 1.5 version 18:45:59 which means its post post post alpha :P 18:46:02 its post RC. 18:46:21 this isnt alpha stuff, tusho 18:46:26 augur: no, sorry, you're wrong 18:46:28 1.5 changed a lot 18:46:32 so it isn't stable 18:46:45 besides, it's not the library itself that's particuarly unstable, it's THE SITE. 18:46:46 well i dont think this version is 1.5 18:46:48 The site launched may 5th. 18:46:49 but they're working on 1.5 18:46:57 ___it's the site___ 18:47:28 hmm... if ais523 numbers were calculated using chains of people who had ever agreed with me, the results would be quite different, I expect 18:47:29 ah no, they're on 1.5 18:47:53 augur: _THE._ _SITE._ 18:47:54 man, ressig is a fucking idiot. 18:48:04 um 18:48:08 what about the site, tusho. 18:48:12 resig doesn't even work on jquery ui 18:48:17 and that was totally uncalled for 18:48:34 wow, tusho, you're a bit of a ressig whore arent you 18:48:37 ... 18:48:49 i simply recommended using jquery and jquery ui 18:48:55 and then defended it from incorrect criticism 18:49:06 now resig is a fucking idiot and I'm a 'resig whore'? Yeah, fuck you. 18:49:07 *correct criticism. 18:49:11 augur: stop trying to wind ehird up 18:49:18 even though e deserves it 18:49:19 apparently i dont even have to try 18:49:23 i just have to disagree with him 18:49:29 the bit at the end was a bit uncalled-for 18:49:32 -!- tusho has quit ("got better things to do"). 18:49:33 man, 12 year olds are bitchy 18:49:53 and /quit rather than /part? 18:50:11 besides, I haven't seen em that angry before 18:50:26 all because _I_ don't like JQuery 18:51:03 really, he IS a resig whore. or a jquery whore. or whatever you wanna call him. 18:51:10 what or who is resig, anyway? 18:51:19 the guy who developed jquery 18:51:43 well, the UI stuff seems very different from the rest of it 18:51:51 he gets lots of praise for building JQuery and everything i've seen that uses JQuery extensively doesn't work 18:52:02 ah, I can see why that would annoy you 18:52:08 * ais523 wonders if ehird's logreading 18:52:15 who cares 18:52:20 my guess is no, actually 18:52:33 it doesnt matter 18:52:34 but e'll come back and read the logs eventually 18:52:48 dude, hes 12 years old. you cant expect him to act maturely 18:53:05 augur: it's generally bad manners to say how old someone else is on the Internet 18:53:14 COPPA and all that, it can lead to trouble 18:53:15 HE said how old he was the other day. 18:53:17 its in the logs. 18:53:21 yes, but... 18:53:22 its public information. 18:53:24 but nothing 18:53:31 it's the principle of the thing 18:53:36 anyway, my morals are weird 18:53:39 at least according to ehird 18:53:46 i have to agree with him here 18:53:51 yes 18:53:55 quite a lot of people do 18:54:00 I reckon my morals are weird too 18:54:10 ehird started trying to find loopholes in them, but morals don't work like that 18:54:29 they do. PEOPLE don't work like that tho. ;) 18:54:48 well, if there are loopholes in my morals it's because the words I expressed them in are wrong 18:56:21 -!- jix has quit ("This computer has gone to sleep"). 18:57:32 looking for loopholes in a set of morals just defeats the point of morals 18:58:26 no doubt, though, ehird's morals are Turing-complete, operate like a nomic, and have FFIs to twelve different languages 18:58:38 or if they didn't before I said that they do now 18:58:47 * oerjan thought that 12 year old thing was a joke someone had made while he wasn't here... 18:58:55 maybe it is 18:59:56 *he = oerjan 19:00:01 no, its not 19:00:06 tusho said it himself. 19:00:08 numerous times. 19:00:24 augur: you've said it multiple times 19:00:30 not sure about tusho emself, though 19:00:32 ive repeated it multiple times ;) 19:00:39 look at the logs, ais. 19:00:43 -!- tusho has joined. 19:00:46 hi tusho 19:00:47 tusho how old are you. 19:00:57 -!- tusho has quit (Remote closed the connection). 19:01:02 lol 19:01:08 augur: really, that's not funny 19:01:28 hey, i only asked him his age 19:01:37 augur: yes, that's not a wise thing to do 19:01:42 especially given the circumstances 19:01:46 why? am i going to break him? 19:01:49 it may have been the reason e left in the first place 19:01:54 -!- tusho has joined. 19:02:03 hmph. my message didn't get through 19:02:06 ais523: yes they do / oerjan: no it wasn't 19:02:07 -!- tusho has quit (Client Quit). 19:02:09 augur: AFAIR doing that's illegal in America, anyway 19:02:18 ais, are you serious? tusho isnt a fragile piece of china 19:02:24 ais, no its not illegal to ask someone their age 19:02:30 it is if they're under 13 19:02:36 and you seem to think e is 19:02:45 no, its not illegal if theyre under 13 19:02:46 lol 19:03:07 where did you get such a silly idea 19:03:16 that you cant ask how old someone is if they're under 13 19:03:17 be serious 19:03:18 I'm a bit unfamiliar with US law, not being American, I'll look it up 19:03:33 -!- tusho has joined. 19:03:48 tusho, ais thinks its illegal to ask someone their age if they're under 13. 19:03:59 I'm looking it up 19:04:01 it's unwise anyway 19:04:03 even if not illegal 19:04:13 why is it unwise, ey? 19:04:13 to clear it up since you're not shutting up about it: yes, i'm 12, no, responding to everything I do with "oh but he's 12, you can't expect him to be reasonable!!1" is not a clever idea, because it's stupid and an invalid argument. and also my age is irrelevant. 19:04:15 -!- tusho has quit (Client Quit). 19:04:28 yes, tusho is right here 19:04:36 and apparently logreading, so I was wrong 19:04:49 hes right that his age is irrelevant, or it would be if it wasn't clearly a factor in his illogical arguments. 19:05:19 i mean, really? im looking at the site, seeing bugs, and he says i'm not seeing bugs? lets be serious here 19:05:28 either its because hes 12 years old 19:05:36 or its because hes mentally retarded 19:05:39 -!- puzzlet has quit (Remote closed the connection). 19:05:44 -!- puzzlet has joined. 19:05:45 augur: no, it's because e uses a different browser 19:05:51 yes but thats not what he said 19:05:56 he didnt say "well i dont see it" 19:06:01 he said "no YOURE not seeeing it" 19:06:26 anyway, COPPA sec. 1303 (a) (1) debatably bans asking for personal information from people you suspect are under 13 19:06:32 -!- tusho has joined. 19:06:37 although I'm not a lawyer, therefore am not sure 19:06:43 augur, unless you're an expert in reality manipulation, or the logs are forged, I absolutely did not 19:06:44 -!- tusho has quit (Remote closed the connection). 19:06:52 lmfao haha 19:06:54 and no, e didn't, on that 19:07:01 actually could we do a compromise and say you are _both_ mentally retarded for continuing this quarreling? 19:07:18 "augur: uh, yes it does" 19:07:23 oerjan: no, that's not a compromise, a compromise would be to say they're 50% wrong each 19:07:34 anyway, it's past 7 on a Sunday, so I have to go 19:07:36 bye everyone 19:07:37 is TOO a compromise 19:07:46 hope the flame war's gone by the time I get back here on Monday 19:07:48 -!- 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""). 19:08:06 so oerjan, whats your esolang of choice 19:08:18 gotta be unlambda 19:09:27 hmm 19:10:22 boring. :p 19:11:27 i mean REAL esolang, not just combinatorial calculus 19:20:15 can you read unlambda or do you have to sit and decompose it? 19:20:45 decompose i guess 19:21:24 hm. 19:21:31 -!- tusho has joined. 19:22:11 do you know of any esolangs that aren't incomprehensible, they just do things in a very different fashion? 19:23:01 augur: intercal 19:23:14 intercal is so incomprehensible X.x 19:23:23 only if you don't know it 19:23:25 (which I don't) 19:23:29 ais523 can read it fine 19:23:34 i mean something you can just look at and understand easily, and could be used for real programming 19:23:41 augur: prolog could count 19:23:50 prolog is so fucking esoteric XD 19:24:11 there is your answer then 19:24:23 but prolog doesnt do it differently :( 19:24:30 augur: what 19:24:30 prolog is older than programs! 19:24:31 yes it does 19:24:35 well, yeah, sure 19:24:37 well, in spirit anyway 19:24:38 but it sure does things differently 19:24:55 yeah differently than most programming languages 19:25:00 but i mean REALLY different 19:25:05 -!- Corun has quit ("This computer has gone to sleep"). 19:25:09 augur: dunno then 19:25:13 prolog is pretty different to me. 19:25:17 i dont know what that would MEAN mind you 19:27:51 -!- augur has quit (Read error: 104 (Connection reset by peer)). 19:28:09 -!- augur has joined. 19:28:09 damn interblogs 19:28:22 GregorR: ping 19:28:28 damn interblogs disconnected me! >| 19:31:22 i wonder if anyones ever set up a big complicated prolog environment 19:31:31 with lots of implications 19:31:35 and then did something like 19:31:47 "find all truths" 19:34:01 itd be interesting. plug in the laws of physics and let prolog have a go. :p 19:34:27 augur: find all the truths makes prolog complain 19:34:36 lameprolog 19:34:44 augur: 19:34:44 ?- X. 19:34:44 % ... 1,000,000 ............ 10,000,000 years later 19:34:44 % 19:34:45 % >> 42 << (last release gives the question) 19:34:52 (SWI-Prolog) 19:36:14 lolwut 19:37:11 augur: it actually does that 19:37:55 tusho, what do you think of the idea that variables can store multiple simultaneous values? 19:38:09 augur: quantum arrays 19:38:09 :P 19:38:13 not values in data structures, but just multiple values 19:38:17 quantum arrays? lol 19:38:18 :) 19:38:26 im toying with the idea of something like 19:38:30 5, 3 -> x 19:38:37 x == 5 // true 19:38:40 x == 3 // true 19:39:03 augur: you lose a lot of nice properties 19:39:06 but it could work 19:39:10 nice properties?? 19:39:42 i rather like it because you could get a bunch of nice stuff 19:39:49 for instance 19:40:00 (1, 2, 3, 4)*2 == 2, 4, 6, 8 19:40:37 or if you had a let like thing 19:41:03 if x = 5, 3 19:41:09 let z = x such that x > 4 19:41:19 would sort of filter 19:42:59 augur: what about mixing it with my inside-out conditionals 19:43:11 what are you inside out conditions?? 19:43:30 if n == 0 { fact n = 0 } else { if result == n * fact (n-1) { fact n = result } } 19:43:36 you can do conditionals to assert things 19:43:42 if x `member` xs { select xs = x } 19:44:22 im not entirely sure how that works, but conditionals on multiple values will simultaneously evaluate for all matching multiple values 19:44:24 e.g. 19:44:30 x = 2, 3 19:44:39 if x > 2, y = x+1 19:44:43 y == 3, 4 19:44:59 but 19:45:04 if x > 4, z = x+1 19:45:13 z == undefined 19:45:25 augur: im not sure how it works 19:45:26 sorry, that should've been x > 1 obviously :p 19:45:29 ihope suggested an alternate syntax 19:45:35 if { fact n = 0 } then n == 0 19:45:43 which makes more sense I guess 19:45:53 if { select xs = x } then { x `member` xs } 19:45:55 well, what are inside out conditionals, first 19:46:41 augur: what I just demonstarted 19:46:44 *demonstrated 19:47:02 i dont see what that /means/ tho 19:47:11 i can see an example of syntax, but i dont know what it does 19:48:30 augur: nor do I 19:48:34 but it makes sense, really 19:48:35 lol 19:48:43 how can it make sense if you dont know what it does? :P 19:49:46 if { f x && x `member` xs && x `member` ys } then { filter f xs = ys } 19:50:14 ah, so its implicational 19:50:23 e.g. 19:51:04 filter(f, xs, ys) :- member(x,xs), member(x,ys), f(x) 19:51:11 augur: yeah, I likened it to prolog too 19:51:14 I guess it IS just prolog 19:51:24 mind you, that definition of filter is incorrect ;) 19:51:28 well, yes 19:51:29 :-P 19:51:43 augur: it's just quite funny - if you 'unwrap' the conditional from the function body, kinda, you get prolog 19:51:59 well, its actually exactly prolof 19:52:02 prolog** 19:52:10 because prologs :- is a logical implication 19:52:17 x :- y 19:52:22 is equivalent to 19:52:24 x if y 19:52:30 or, if y, then x 19:52:38 which is yours :) 19:52:44 if { y } then { x } 19:53:23 augur: well yeah 19:53:27 i just find it funny how little you have to chance 19:53:28 *change 19:53:39 i guess :) 19:54:26 the real reason that theres so little to change is not the "reversal" thing but rather because you dont need to have ys available first 19:54:29 i mean 19:54:38 i could easily see that being some sort of /assertion/ 19:54:39 like 19:54:54 if( ... ){ ys_is_a_filter_of_xs = true; } 19:55:04 or something like that 19:55:18 assert( ys = filter f xs ) 19:55:34 but that only works if ys already exists 19:55:41 which i dont think you were implying in your version 19:58:25 I wasn't no 20:02:30 augur: So is bollflflllflflflf a dskfsdjflsdfsdf? 20:02:39 (This is very important.) 20:05:12 no, only folflfblblbbb is. 20:05:15 -!- timotiis has joined. 20:06:41 its an incredibly common error that people math, tho, and i dont know why 20:06:52 -!- SimonRC has quit ("Reconnecting"). 20:06:56 -!- SimonRC has joined. 20:07:12 that people math? 20:08:00 -!- SimonRC has quit (Client Quit). 20:08:27 -!- SimonRC has joined. 20:09:29 -!- SimonRC has quit (Client Quit). 20:09:39 -!- SimonRC has joined. 20:11:57 make 20:12:02 i cant type ;) 20:13:37 btw, do you know if prolog can do reverse deductions 20:13:41 e.g. 20:13:46 if theres some rule 20:13:47 x :- y 20:13:51 can you assert some y 20:13:57 and prolog will say aha, x! 20:14:51 it cant, right? 20:18:43 augur: uh 20:18:44 no 20:18:45 it can't 20:18:49 that would be slightly impossible, i think 20:18:57 nuh 20:19:11 x :- y is just a biconditional 20:19:16 x iff y 20:20:21 i can envision some ways to achieve it 20:21:50 i mean 20:22:08 the classic example of prolog is the grandparentage thing 20:22:14 no, just one-way conditional (in prolog anyway) 20:22:21 er 20:22:33 no, its biconditional. to show x, show y 20:22:48 that's one way 20:23:02 its biconditional. there are no cases where x is true but y is false 20:23:07 and where y is true but x is false 20:23:08 :P 20:23:14 sure there can be 20:23:17 how? 20:23:21 if you have this: 20:23:24 x :- y 20:23:40 and if y :- true 20:23:42 then x :- true 20:23:48 you can have another statement x :- z, say 20:24:00 ah, no sorry i guess i was thinking more strictly not prolog syntax 20:24:03 x :- y 20:24:05 x :- z 20:24:14 is just one conditional statement spread over two lines 20:24:18 x :- y | z 20:24:51 so yeah, in that regard single rules in prolog arent biconditional 20:25:01 well as long as x is an atom 20:25:22 but prolog systems are biconditional in that all the ORs on the left are part of a larger biconditional statement 20:25:38 i mean, if you have x :- y; x :- z 20:25:50 then logically thats x iff y or z 20:26:04 are you familiar with horn clauses? 20:26:15 yeah, they're not that complicated. 20:26:16 :P 20:27:01 i suppose you may be correct when you make the closed world assumption 20:27:04 i guess you can say its not strictly biconditional since prolog doesn't treat absence as negation 20:27:20 i.e. assuming nothing is true unless it is provable from the given set 20:27:22 yeah, im assuming the rules you put in are all there is and nothing more ;) 20:28:06 you cant run logic backwards to discover new rules :p 20:28:29 but in the grandparent example, for instance 20:28:43 its relatively clear that if I just assert 20:28:50 parent(a,b), parent(b,c) 20:28:58 its trivial to run the logic backwards and decude 20:29:01 deduce* 20:29:05 grandparent(a,c) 20:29:12 even if i dont ASK ?- grandparent(a,c) 20:31:01 well proof search is possible it just tends to blow up for anything complicated 20:31:11 so? :) 20:31:27 so yeah 20:31:36 were in #esoteric. uselessness up in the face of complexity is practically the motto of this place 20:32:21 why did i type up? that makes no sense. 20:34:51 augur: #haskell are making co-jokes 20:36:46 again? 20:36:55 yes 20:37:20 yes but are they doing them in cotime 20:37:23 thats the question 20:37:26 what a bunch of co-nuts 20:37:37 coconuts 20:37:43 coconuts are just nuts 20:37:52 BAHAHAHAHAHAHAHAHA 20:37:54 conuts, on the otherhand 20:38:04 are nuts that exist in perpendicular time. 20:39:54 HAHAHAHAHA 20:40:00 im listening to macbreak weekly 20:40:16 and theyre talking about how steve jobs was quite gaunt looking at wwdc 20:41:05 and ihnatko said "it's not that he didn't look good, but... he looked like a vegan" 20:49:19 -!- B|u35un has quit (Read error: 110 (Connection timed out)). 20:49:56 -!- B|u35un has joined. 21:11:36 -!- oklopol has joined. 21:14:51 NOM NOM NOM 21:15:17 GregorR: <3 YOU"RE HERE 21:15:24 I have so many awesome jsmips ideas. 21:15:36 GregorR: For example. I figured how to make it 'TEH FAST'. 21:15:47 Compile to JavaScript and use eval(). 21:15:54 Far, far faster than interpreting it. 21:16:14 That's on my future agenda, interpretation was just a "is-this-even-feasible?" step. 21:16:14 GregorR: Of course, startup goes terribly slowly, but then the program blazes. 21:16:22 And, what's better, you can just save the compiled version. 21:16:26 I'd like to compile ELF files directly to JavaScript code and then just include a foo.js 21:16:27 GregorR: Well before you get in too deep.. 21:16:34 Hmm. 21:16:38 I was thinking more intermediate. 21:16:46 That is, it uses the current code 21:16:50 but produces a function on-the-fly at startup 21:17:31 Hm, not sure what you mean. 21:17:33 GregorR: Anyway, we don't need mipses even with threads. 21:17:43 OH right 21:17:44 Just make a MIPS object keep track of its 'children' (threads created in itself) 21:17:52 Then make the MIPS object stop its children when it is stopped. 21:18:07 more elegant. 21:18:16 The problem isn't controlling the children, that's easy, the problem is context switching. 21:18:31 GregorR: You still don't need mipses. 21:18:40 (I mean the global array) 21:18:45 Oh duh - yeah, they could all still run. 21:18:51 *slaps head* 21:18:57 I have no idea why I thought mipses was necessary for that. 21:19:04 GregorR: Because you're a retard? 21:19:08 O wait. 21:19:08 :P 21:19:20 I'm gonna go assasinate mips 21:19:20 es 21:19:56 GregorR: And change .stopped = true; into .stop() 21:20:22 Good ol' accessor functions :P 21:20:36 GregorR: By the way, I have another speed increase, but it involves basically jiggling about the whole of mips.js 21:20:45 ...? 21:20:48 Specifically, you're doing everything in the constructor, whereas you should be putting functions and the like on to MIPS.prototype 21:20:53 Permission to convert 'em all? 21:21:02 It'll make MIPS creation faster, and is also 'better' 21:21:26 Feel free, I'm not particularly used to JavaScript's prototype syntax - I like the system, never liked the syntax, so I never got used to using it :P 21:21:46 OK, then don't touch the code while I do this 21:21:48 It won't merge 21:21:48 :P 21:24:56 GregorR: JS just has function scope 21:24:58 for (var i 21:25:00 is misleading 21:25:05 -!- Corun has joined. 21:25:33 I suppose that's true *shrugs* 21:28:34 GregorR: Shit, I broke it. :P 21:28:58 Oh. 21:28:59 Duh. 21:29:01 *shocker* 21:29:41 -!- oklofok has joined. 21:29:57 oklofok, one of the oklofolk 21:30:27 * tusho kicks js for being stupid 21:30:53 -!- kar8nga has joined. 21:31:06 * GregorR kicks tusho for offending the JavaScript gods. 21:31:09 -!- kar8nga has left (?). 21:31:43 GregorR: wtf zeroArray is not defined 21:31:48 YES IT IS 21:32:54 GregorR: Hm. 21:33:00 I have a great way to speed up performance. 21:33:11 Your include stuff isn't actually needed, all of them can be included in tandem. 21:33:15 In the section 21:34:52 hm the oklofolk. small blue gnomes living in Finland, in the valley next to the muumins 21:35:09 or am i confusing with smurfs 21:38:36 GregorR: ok, now just to fix the mountain of bugs 21:38:36 :D 21:38:59 um 21:39:05 ah 21:39:12 oh 21:39:42 er 21:39:48 uh 21:40:02 eh 21:40:07 oo 21:40:21 -!- oklofok has quit (Read error: 104 (Connection reset by peer)). 21:40:27 DAMNIT OKLOFOK 21:40:33 ha 21:40:39 c-c-c-connection reset by peer 21:41:01 GregorR: if I do this 21:41:04 function initMIPSIO() { 21:41:06 in mipsio.js 21:41:11 and I include mipsio.js in my 21:41:20 and use that function in window.onload 21:41:24 why does it say it's not defined? 21:42:00 -!- oklofok has joined. 21:44:31 GregorR: ? 21:47:04 GregorR: ping 21:47:41 -!- oklopol has quit (Read error: 110 (Connection timed out)). 21:47:54 -!- oklopol has joined. 21:48:10 GregorR: ping 21:49:22 GregorR: ping 21:51:13 -!- oklofok has quit (Read error: 113 (No route to host)). 21:51:18 -!- oklopol has quit (No route to host). 21:58:56 GregorR: ping 22:00:09 * oerjan gets the strange feeling #esoteric went into a time loop... 22:00:18 oerjan: ping 22:00:24 a slightly imprecise one 22:00:36 John McCain: ping 22:00:44 -!- olsner has quit (heinlein.freenode.net irc.freenode.net). 22:00:44 -!- GregorR has quit (heinlein.freenode.net irc.freenode.net). 22:00:54 kubrick.freenode.net: ping 22:01:54 ping: oerjan 22:02:12 gnop 22:02:20 error 22:02:21 error 22:02:21 error 22:02:22 error 22:02:22 error 22:02:23 error 22:02:24 error 22:02:25 error 22:02:27 rorre 22:02:31 lol 22:02:39 lol: ping SimonRC 22:04:30 -!- Hiato1 has quit ("Leaving."). 22:04:37 * SimonRC tries to recall what computer system it was that suffered from a certain piece of memory getting corrupted always in the same way, and it had a way to detect this corruption and abort with an error message, but alas the corruption always overwrote the length-and-pointer of the error message string, giving the same substring of the error message each time. 22:04:55 SimonRC tries to recall what computer system it was that suffered from a certain piece of memory getting corrupted always in the same way, and it had a way to detect this corruption and abort with an error message, but alas the corruption always overwrote the length-and-pointer of the error message string, giving the same substring of the error message each time. 22:07:18 * SimonRC curses BB software 22:07:18 SimonRC tries to recall what computer system it was that suffered from a certain piece of memory getting corrupted always in the same way, and it had a way to detect this corruption and abort with an error message, but alas the corruption always overwrote the length-and-pointer of the error message string, giving the same substring of the error message each time. 22:07:31 SimonRC tries to recall what computer system it was that suffered from a certain piece of memory getting corrupted always in the same way, and it had a way to detect this corruption and abort with an error message, but alas the corruption always overwrote the length-and-pointer of the error message string, giving the same substring of the error message each time. 22:07:47 for some reason, BB software writers think it is a really great idea to abbreviate the list of pages of a thread 22:07:56 for some reason, BB software writers think it is a really great idea to abbreviate the list of pages of a thread 22:08:13 SimonRC: Kareha doesn't do that 22:08:13 :P 22:08:36 goodness, we couldn't be expected to actually handle a list of 50 page nubers all on our own 22:08:43 -!- olsner has joined. 22:08:43 -!- GregorR has joined. 22:08:46 Kareha doesn't doooooooooooooooo that. 22:08:48 GregorR: Ping. 22:10:44 tusho: gee I wonder wht youwatched on the telly last night 22:10:54 SimonRC: huh? 22:11:15 um, the way you repeated everything I said was a bit of a give-away 22:11:24 -!- lifthras1ir has joined. 22:11:30 -!- lament has quit (heinlein.freenode.net irc.freenode.net). 22:11:30 -!- lifthrasiir has quit (heinlein.freenode.net irc.freenode.net). 22:11:55 SimonRC: I'm sorry. I have no idea what you're talking about. 22:12:14 maybe it is just a co-incidence 22:12:18 Probably. 22:12:23 What are you talking about? 22:12:26 I was referring to Midnight 22:12:41 The latest Doctor Who episode 22:12:50 -!- lament has joined. 22:13:01 YAY NETSPLIT 22:13:07 GregorR: Yeah. 22:13:07 tusho: You'd better not have removed my include stuff. 22:13:17 GregorR: Haven't committed but yes. 22:13:25 It's unneeded. :P 22:13:27 which includes an inteligence that (initially) repeats what everyone says 22:13:30 tusho: Some ridiculously tiny performance benefit at the cost of requiring the user to include everything from html? God that's stupid. 22:14:06 GregorR: Um, it's 6 files. 22:14:14 And regardless of the performance benefit, it has two extra pros: 22:14:17 tusho: That means that if somebody else was using this code from their html, they'd have to update their include list if we had the audacity of adding a new header. 22:14:19 1. firebug doesn't mess up the location info 22:14:22 2. it's a lot simpler 22:14:25 1. who cares. 22:14:27 2. no it isn't 22:14:50 GregorR: You are assuming that anyone is actually going to use this project, and even write their own page using it... 22:15:05 Even if that's not the case, I should support that possibility. 22:15:18 GregorR: Well it's a bit late, as this is bundled with my prototyping 22:15:35 Which is working fine, apart from one bug. 22:15:47 If you push the removal of includes, I revoke your push privileges. You can push by sending things in for my approval. 22:16:08 * tusho shrugs. Fine. 22:16:09 Seriously, that's really annoying. Don't make giant architectural changes to my code for really stupid performance benefits at a disadvantage to the user of the code. 22:16:20 giant architechtural changes? .. it was a few lines 22:16:28 also, firebug is very useful. 22:16:31 It was a few /lines/, but a giant /architectural/ change. 22:16:36 I'll just fork, I guess. 22:16:40 X_X 22:16:42 Which is really silly, of course. 22:16:48 But I like this project. So. 22:17:15 Can somebody else come into this conversation on how ridiculous it is to remove a working include() primitive from JavaScript? After I finally got include() working in a language that stupidly has no include()? 22:17:36 Which allows the user of the code to not have to maintain a ridiculous include list. 22:17:46 GregorR: include() is pretty common in JS .. it's just rarely needed 22:18:33 include() allows extensibility. Without include(), any time you add a new .js file you have to update every .html file that uses the code. 22:19:23 GregorR: what's wrong with one more line?... 22:19:48 One more line times X files where X is a number not within your control = bad. 22:20:05 ... This is silly. 22:20:14 The actual chance of this happening = 0. 22:20:20 The actual chance of wanting to use firebug = 1. 22:22:05 GregorR: but feel free to revoke my push privileges; I'm happy developing a fork 22:22:34 -!- augur has quit (heinlein.freenode.net irc.freenode.net). 22:22:34 -!- atsampson has quit (heinlein.freenode.net irc.freenode.net). 22:23:05 -!- augur has joined. 22:23:05 -!- atsampson has joined. 22:23:08 BRB. 22:23:19 -!- GregorR has quit (heinlein.freenode.net irc.freenode.net). 22:23:19 -!- olsner has quit (heinlein.freenode.net irc.freenode.net). 22:23:41 -!- atsampson has quit (Remote closed the connection). 22:23:56 -!- atsampson has joined. 22:28:30 -!- RedDak has joined. 22:29:01 -!- olsner has joined. 22:29:01 -!- GregorR has joined. 22:30:01 Yaaaay netsplits. 22:30:22 -!- clog has joined. 22:30:22 -!- clog has joined. 22:37:35 BACK. 22:37:37 *Back 22:42:11 -!- GregorR has quit (clarke.freenode.net irc.freenode.net). 22:42:12 -!- olsner has quit (clarke.freenode.net irc.freenode.net). 22:49:27 -!- tusho has quit (clarke.freenode.net irc.freenode.net). 22:49:27 -!- Phenax has quit (clarke.freenode.net irc.freenode.net). 22:49:27 -!- bsmntbombdood has quit (clarke.freenode.net irc.freenode.net). 22:49:27 -!- oerjan has quit (clarke.freenode.net irc.freenode.net). 22:49:27 -!- lament has quit (clarke.freenode.net irc.freenode.net). 22:49:27 -!- timotiis has quit (clarke.freenode.net irc.freenode.net). 22:49:27 -!- fizzie has quit (clarke.freenode.net irc.freenode.net). 22:49:27 -!- lifthras1ir has quit (clarke.freenode.net irc.freenode.net). 22:49:27 -!- puzzlet has quit (clarke.freenode.net irc.freenode.net). 22:49:27 -!- Polar has quit (clarke.freenode.net irc.freenode.net). 22:49:27 -!- AAAAAAue4njxuz has quit (clarke.freenode.net irc.freenode.net). 22:49:27 -!- Dewi has quit (clarke.freenode.net irc.freenode.net). 22:49:27 -!- Deewiant has quit (clarke.freenode.net irc.freenode.net). 22:49:27 -!- B|u35un has quit (clarke.freenode.net irc.freenode.net). 22:49:27 -!- RedDak has quit (clarke.freenode.net irc.freenode.net). 22:49:27 -!- Corun has quit (clarke.freenode.net irc.freenode.net). 22:49:27 -!- sekhmet has quit (clarke.freenode.net irc.freenode.net). 22:49:27 -!- dbc has quit (clarke.freenode.net irc.freenode.net). 22:49:27 -!- mtve has quit (clarke.freenode.net irc.freenode.net). 22:49:27 -!- SimonRC has quit (clarke.freenode.net irc.freenode.net). 22:49:27 -!- Slereah_ has quit (clarke.freenode.net irc.freenode.net). 22:49:27 -!- sebbu has quit (clarke.freenode.net irc.freenode.net). 22:49:27 -!- atsampson has quit (Connection reset by peer). 22:49:27 -!- atsampson has joined. 22:49:27 -!- GregorR has joined. 22:49:27 -!- olsner has joined. 22:49:27 -!- RedDak has joined. 22:49:27 -!- lament has joined. 22:49:27 -!- lifthras1ir has joined. 22:49:27 -!- Corun has joined. 22:49:27 -!- B|u35un has joined. 22:49:27 -!- SimonRC has joined. 22:49:27 -!- timotiis has joined. 22:49:27 -!- tusho has joined. 22:49:27 -!- puzzlet has joined. 22:49:27 -!- sebbu has joined. 22:49:27 -!- oerjan has joined. 22:49:27 -!- Slereah_ has joined. 22:49:27 -!- Phenax has joined. 22:49:27 -!- fizzie has joined. 22:49:27 -!- Deewiant has joined. 22:49:27 -!- bsmntbombdood has joined. 22:49:27 -!- Polar has joined. 22:49:27 -!- AAAAAAue4njxuz has joined. 22:49:27 -!- sekhmet has joined. 22:49:27 -!- Dewi has joined. 22:49:27 -!- dbc has joined. 22:49:27 -!- mtve has joined. 22:49:27 GregorR: Anyway, for when you have multiple files, the overwhelmingly common thing to do is to concat them all together, then run them through a JS packer 22:49:28 for distribution 22:49:34 So, still only one include for this mythical external user who wrote his own page. 22:50:31 -!- olsner has quit (clarke.freenode.net irc.freenode.net). 22:50:31 -!- GregorR has quit (clarke.freenode.net irc.freenode.net). 22:54:16 tusho: lack of includes is the reason pages include dozens of hundreds of kb of unused script 22:54:24 dozens or hundreds, even 22:54:34 Dewi: that's called "bad coding" 22:54:43 thankfully, JSMIPS depends on all of itself. 22:54:46 tusho: huh? 22:54:59 tusho: how is it bad coding to not be able to do the impossible? 22:55:30 tusho: requiring a whole server-side infrastructure just to have dynamically loading scripts is stupid 22:55:44 ... 22:55:49 I think you're misguided as to what I am talking about. 22:56:14 javascript needs includes almost as badly as it needs decent namespacing 22:57:10 Dewi: ecmascript4 has namespaces 22:57:29 -!- olsner has joined. 22:57:29 -!- GregorR has joined. 22:57:39 tusho: GregorR: Anyway, for when you have multiple files, the overwhelmingly common thing to do is to concat them all together, then run them through a JS packer 22:57:39 [22:50] tusho: for distribution 22:57:40 [22:50] tusho: So, still only one include for this mythical external user who wrote his own page. 22:57:47 (in case he missed it due to netsplit) 23:00:45 OK, that's a good point >_> 23:01:02 * tusho feels victorious :-P 23:01:09 I forgot all about packing. 23:01:14 tusho: hmm... I've seen techniques based on people adding