00:00:18 -!- oerjan has joined. 00:00:27 {)}:i{.!!-}:d{.*.256=!*}:s{.p}:o](0\~@ 00:00:30 And I thought Perl was bad. 00:02:32 What's that, awk? 00:03:06 Golfscript. 00:03:06 -!- FireFly has quit (Quit: swatted to death). 00:03:17 Aaah. 00:04:01 So, I want to work on a basic Bayesian filter type program, just to learn the basics of creating one. My goal is to separate between English and Non-English with text that is in Arabic letters. Perhaps also to have multiple languages, how could I start? I was reading some articles I found on Google but none really told me how to begin 00:07:59 * pikhq is willing to bet that this compiler is just too stupid for its own good. 00:12:23 if i wanted to scare people, i would do that. i would also pick a nick like "Guest17101" 00:12:35 at any rate, I see cpressey [...] 00:12:45 and then pretend to have MPD 00:13:34 oerjan: pikhq: any ideas? 00:14:59 i'd imagine counting the occurrences of the 100 most common words in english would go a long way. 00:15:31 although more information might discern shorter texts, maybe 00:16:24 hm idea: design sentences in a non-english language where every word is actually a legal english word 00:17:10 but not actually used as one (i.e. not a transparent borrowing) 00:17:49 sounds boring 00:19:20 hm doing this in norwegian is not as easy as i thought 00:19:30 night 00:19:44 have to avoid the endings with -er. or maybe... 00:20:41 oerjan, your challenge is to do that with Japanese. 00:20:43 I wish you luck. 00:20:54 FUNNY GUY 00:21:09 hur säger man lycka till på norska nu då? 00:21:15 lykke til 00:21:54 obviously the reason that won't work is that all japanese sentences contain transparent english borrowings. 00:21:58 how disappointingly obvious 00:22:14 heh 00:22:36 oerjan, find one valid Japanese word that is also an valid English word (spelling included) 00:22:48 it's just swedish with a different orthology 00:23:02 Lymia: ok there _might_ be another reason then :P 00:23:20 I'm so going to have to rewatch this movie sober later 00:23:39 pikhq: you don't know a japanese character which accidentally looks like an english word, do you? 00:23:46 *happen to 00:23:53 いいえ 00:24:00 -!- Vorpal has quit (Ping timeout: 250 seconds). 00:25:05 well if iiiiz was an english word and you had bad handwriting... 00:25:39 oerjan: No idea. 00:25:43 Lymia: tsunami 00:25:52 :P 00:26:17 Well, I do believe I've pinpointed the source of my woes. 00:26:20 offset (Move x : Loop a y : xs) = Loop (a+x) (Move x : y ++ [Move (x*(-1))]) : (offset $ Move x : xs) 00:26:25 *ouch ouch ouch* 00:26:31 pikhq, nope. 00:26:32 Can you see what's so painful about it? 00:26:35 The Japanese don't spell it like that. 00:26:41 lol, the error in that is so blatantly obvious 00:27:02 olsner: And remember, I was finding the *fixed point* of that function. 00:27:32 pikhq, doing it wrong as always :/ 00:27:44 pikhq, please turn that into English. 00:27:48 Or at least math. 00:28:00 pikhq: um i don't see why that should infinitely recurse at least 00:28:09 oerjan: That's only one line from the function. 00:28:15 Lymia: ehm, fixed points are math aren't they? 00:28:30 oerjan: Aaand it's not infinitely recursing. 00:28:41 just wrong? 00:29:12 oerjan: It's just reconstructing a list is all. 00:29:16 oerjan: See the "++". 00:29:27 olsner, translate that function into math 00:29:39 That list is, incidentally, 2 megabytes before it hits my parser. 00:29:46 Lymia: not my job, I'm just here telling you it could be 00:30:53 Suddenly, it executes in 5 seconds instead of 2 minutes. 00:30:56 i'm assuming this is brainfuck with relative positioning built into the representation 00:31:26 Yeah, relative positioning is built into my intermediate representation. 00:32:04 well that particular rule looks correct to me... 00:32:34 *Correct*, yes. 00:32:43 or maybe you don't want to have that second offset since you apply fixed point anyway 00:32:44 *Insanely slow*, also yes. 00:35:04 well that's the only thing i can think of 00:35:41 The point is not that this optimisation functioned incorrectly. 00:35:48 The point is that it took 2 minutes to execute. 00:36:03 or maybe you don't want to have that second offset since you apply fixed point anyway 00:36:07 the point is blah-di-blah-di-blah? 00:36:30 i can see how that might give a blowup 00:36:41 oerjan: Uh, wouldn't that screw up the correctness of the function? 00:36:57 oh? 00:37:55 are you, or are you not, reapplying offset on the result of offset until a fixed point? 00:38:06 if so then it shouldn't 00:38:18 Oh, duh, I see what you're saying. 00:39:30 Does not seem to have helped, though. 00:39:50 i note you are not applying offset _inside_ the loop 00:39:53 *Loop 00:40:11 I am, however, doing "y ++ [Move (x*(-1))]". 00:40:28 oh you mean the problem is ++ slowness? 00:40:36 Pretty sure. 00:41:12 that would surprise me, unless you put a whole lot of Moves there... 00:41:24 appending a single element isn't slow i think 00:41:29 *To the end*. 00:41:38 I thought prepending was faster than appending. 00:41:45 ++ reconstructs the entire list and replaces the tail. 00:42:00 pikhq: it's a _little_ slower, but it shouldn't be _huge_ 00:42:15 : is O(1). ++ is O(n). Any further questions? 00:42:29 well... 00:42:50 O(1) is O(n). Any further questions? 00:42:51 well you said the list was long 00:43:11 (lost kingdom?) 00:44:31 -!- pikhq_ has joined. 00:44:44 5 minutes and it's still running. 00:44:57 And yes, it's LostKng. 00:45:10 i still don't understand why it should make an enormous difference on a list which you are traversing anyhow 00:46:33 -!- pikhq has quit (Ping timeout: 252 seconds). 00:47:09 pikhq_: have you used profiling? 00:47:46 (note: i never have, but i know ghc has a profiler) 00:48:21 I have been. 00:51:47 another thing: that x*(-1) might be lazily evaluated, since this is too complicated for ghc to notice it is needed? 00:52:32 The fields in the BF type are strict. 00:53:03 hm... i guess. 00:54:34 oh well. my hunch then is to give offset the initial and final offsets as arguments 00:55:11 and recurse immediately instead of building the whole list several times 00:57:46 argh that confused my brain 00:58:53 well maybe just the latter, then: 00:59:24 offset (Move x : Loop a y : xs) = Loop (a+x) (offset $ Move x : y ++ [Move (x*(-1))]) : (offset $ Move x : xs) 01:00:09 oh wait if you used my first idea it would split up: 01:01:33 offset m n (Move x : xs) = offset (m+x) (n-x) xs 01:03:27 offset m n (Loop a y : xs) = Loop (a+m) (offset m n y) : offset m n xs argh i'm not sure that's correct 01:03:54 clearly adding Move's makes things simpler to follow 01:04:45 offset m n xs should be equivalent to the old offset (Move m : xs ++ [Move n]) 01:09:15 offset m n (Loop a y : xs) = Loop (a+m) (offset m (-m) y) : offset m n xs 01:09:42 and 01:09:51 offset m n (Move x : xs) = offset (m+x) n xs 01:10:52 hm maybe that actually _is_ clearer, since you get rid of all the Move's 01:11:29 m and n should probably be strict arguments 01:11:47 pikhq_: ^ 01:12:34 offset _ n [] = [Move n] 01:13:49 hmm, this Move/Loop thing, I recognize it 01:14:17 i realize this last one is redundant at the program top level, but i think it's cleaner this way 01:14:38 olsner: well it's thinly disguised brainfuck 01:16:46 also: even I knew about that magic roundabout, but it was via looking up the children's show 01:17:01 hey even _i_ knew about it. i think it was featured on wikipedia or something. 01:20:53 `addquote You make a fist, shake it at the sky, and shout "why, GNU, why?!" -- that is the standard reportig practice. 01:20:56 ​431) You make a fist, shake it at the sky, and shout "why, GNU, why?!" -- that is the standard reportig practice. 01:22:24 Autotup: on a scale of 1 to "Fuck you", how bad of an idea is it? 01:22:29 oerjan: Hmm. So, rewriting offset to make it actually keep track of all the state, and do its recursion itself... I like that. I like that a lot. 01:22:32 * oerjan wants to see the rest of that scale 01:22:47 yay 01:30:06 And there is absolutely, positively no need to find the fixed point of that function. Yay. 01:34:57 And now the assembler takes longer than my compiler. 01:36:01 Significantly longer, in fact. 01:37:33 -!- iconmaster has quit (Quit: Pardon me, but I have to go die in NetHack again.). 01:40:29 Shame it exhibits incorrect behavior. 01:45:49 -!- davve123 has joined. 01:47:34 -!- Wiz126 has joined. 01:51:27 -!- BeholdMyGlory has quit (Remote host closed the connection). 01:51:57 -!- ralc has quit (Quit: Leaving). 01:58:14 -!- Patashu has joined. 02:02:37 14:52:38 lets see, p[16] will always end up at 1 at the end I think 02:02:37 14:52:42 and p[10] at 0 02:02:45 unless p[10] was 0 to start with 02:05:03 -!- Aune has quit (Quit: Hath Deprated). 02:24:38 So. I am very, very confused by the behavior of this. 02:25:29 mhm? 02:26:00 ... Never mind, it seems to have... Fixed itself? 02:28:05 -!- pikhq has joined. 02:28:16 http://andlinux.sourceforge.net/screenshots/screenshot.png 02:28:18 Made of win. 02:30:31 Oooor not. 02:31:00 -!- pikhq_ has quit (Ping timeout: 255 seconds). 02:49:15 Now to just figure out why this is emitting superfluous "Set 0 0"s... 02:50:18 superfluous "Set 0 0"s that are superfluous 02:50:58 The thing is, the compiler is outputting Set 0 0 immediately after Set 0 0... 02:51:22 Technically not a *wrong* compilation, just a sign of something weird happening. 02:56:55 Lymia, oooh 02:57:09 "32-bit versions only 02:57:10 Oh, I see. Minor issue in my DCE. 02:57:10 " 02:57:32 Sgeo_, I'd love to set up a.... freakish Frankenstein system once they get it working on 64-bit 02:58:30 How much rage do you expect from Windows fanboys/Linux zealots 02:58:42 Might as well as port it to Mac OS too, so the Mac fanboys can have their fun too. 02:59:03 DCE? 03:00:36 pikhq: DCE? 03:09:54 -!- pikhq_ has joined. 03:10:13 oerjan: Dead code eliminator. 03:11:29 -!- pikhq has quit (Ping timeout: 260 seconds). 03:12:55 1.2 second build. 03:17:45 And the output's better, too! 03:17:57 Towers of hanoi now runs in 0.195 seconds. 03:18:38 And is 38756 bytes instead of 39432... 03:19:00 -!- lameNOT has joined. 03:20:20 wow a fox outside the window 03:21:10 And "only" uses 56M to compile. 03:21:34 Which I'd bet is most courtesy of the list structure being so big. 03:22:21 -!- lameNOT has changed nick to lament. 03:23:55 pikhq_: do you use the unbox-strict-fields option? 03:24:06 oerjan: Not presently. 03:25:01 That... Doesn't actually help much. 03:25:20 it only works for fixed size nonrecursive fields, obviously 03:26:35 hm i don't think it even works for Integer fields (since they are unbounded) 03:27:59 i suppose nothing will help much if you are doing optimizations which requires having the whole structure in memory at once 03:28:04 *require 03:29:05 well, nothing based on lists 03:29:51 I'm using Ints, anyways. 03:30:23 ah 03:30:52 definitely should work for those 03:33:05 Welp, my code generator is using half the time now. 03:33:16 And 44% of the RAM. 03:37:23 Thanks, oerjan, for the order-of-magnitude increase. 03:38:22 yay 03:39:34 Perhaps I should swap State for ST in the code gen... 03:41:04 http://sprunge.us/ZCaP Anyways, bam, there it is. 03:47:16 should there even be any consecutive Move's left after the offset pass... 03:47:36 No. 03:47:49 You'll note that I do not take the fixed point of the optimisations anymore. 03:47:54 aha 03:59:16 http://www.tuxradar.com/files/ubuntu_vs_7-3.png 03:59:25 Wtf does Windows use all that space for? 04:02:10 ... My root filesystem is 6.3G. 04:02:35 *I have a freaking full build system there*. 04:05:32 Does Windows use a DVD or CD? 04:05:42 DVD nowadays. 04:06:04 How the hell do you expand that DVD to such a huge amount of space? 04:06:27 A lot of the stuff on there probably compresses well, I suppose. 04:06:44 Is the problem due to the different system architectures, or what? 04:06:50 They should also compare with a full install of Debian. :P 04:07:04 How large is that on average? 04:07:14 Also, I'm curious. 04:07:24 A *full* install of Debian? Let me put it this way: it comes on 2 Bluray discs. 04:07:24 Is a default Windows installation, or Damn Small Linux more featureful? 04:07:29 pikhq_, hah. 04:08:36 I'm pretty sure DSL is more featureful. 04:09:38 Though perhaps you should look at Puppy. 04:09:44 As it's still maintained... 04:09:55 *Also* more featureful, BTW. 04:40:39 gah, i just woke up. 04:40:50 @note 04:40:50 Missing argument. Check @help for info. 04:42:23 @note Vorpal esotope-bfc does not calculate the fixed point of optimization passes due to the performance, so some cases might be missed by the optimization pass (at the first time). 04:42:23 usage: @vote 04:42:29 ..what? 04:42:36 lifthrasiir: @tell 04:42:46 ah, okay. 04:42:54 @tell Vorpal esotope-bfc does not calculate the fixed point of optimization passes due to the performance, so some cases might be missed by the optimization pass (at the first time). 04:42:54 Consider it noted. 04:43:05 Heh, "noted". 04:43:15 so lambdabot will tell him right after he joins again? 04:43:23 right after he speaks 04:44:04 -!- monqy_ has joined. 04:44:18 -!- monqy has quit (Disconnected by services). 04:44:27 -!- monqy_ has changed nick to monqy. 04:56:38 -!- hagb4rd has joined. 04:59:40 good day! 05:01:00 morning! 05:01:12 -!- pikhq has joined. 05:01:18 -!- pikhq_ has quit (Ping timeout: 255 seconds). 05:10:11 -!- augur has joined. 05:51:00 -!- myndzi has quit (Ping timeout: 240 seconds). 05:51:23 -!- myndzi has joined. 05:54:40 -!- monqy_ has joined. 05:55:34 -!- monqy has quit (Disconnected by services). 05:55:38 -!- monqy_ has changed nick to monqy. 06:26:30 lifthrasiir: Say, you're Korean, aren't you? 06:26:40 lifthrasiir: What're your thoughts on fan death? 06:27:03 (I have no fucking clue what that is in Korean) 06:28:21 I woner. 06:28:24 wonder* 06:28:42 What would happen in your average programming class if you submitted obfuscated or golfed code? 06:28:58 https://secure.wikimedia.org/wikipedia/ko/wiki/%EC%84%A0%ED%92%8D%EA%B8%B0_%EC%82%AC%EB%A7%9D_%EC%82%AC%EA%B3%A0 This is apparently the Wikipedia page... 06:29:07 I think your lecturer would give you the eye brow 06:29:12 Unless he's the kind of person who used to do it 06:29:36 And the title is entirely sensible with the hanja. 扇風機死亡事故. See, entirely sensible. 06:39:50 There is a moth in my room :( 06:41:31 i have this trick involving an empty glass and a sheet of paper 06:41:43 To kill moths 06:41:48 Damn thing keeps touching me 06:42:00 um i practice a catch and release policy _most_ of the time 06:42:41 well i guess it needs to settle down for a moment before you can do it 06:43:13 I'm going to just try to go to sleep, I think 06:43:30 (ants get flushed down, after i got the impression they learn to come back - and bring friends) 06:43:59 Also, the only light in my room is the computer 06:44:10 aha 06:44:18 I think it left my room 06:44:31 No, still here 06:44:36 i thought it was unhealthy to use a computer screen without ambient light... 06:44:52 How so? 06:45:06 harder on the eyes? 06:45:08 Can I touch the thing with gloved hands? 06:45:27 well if you're going to kill it anyhow... 06:45:40 I don't care if it dies or not 06:45:46 i've never heard that moths are particularly poisonous 06:45:57 but who knows what exists in other countries 06:45:59 -!- hagb4rd has quit (Quit: hagb4rd). 06:46:38 oerjan: It's not a fear of being poisonous, just a common overreaction to insects. 06:46:55 (we don't even have any dangerous spiders in norway iafaik) 06:47:03 *-i 06:47:11 yeah right 06:47:30 There are certainly dangerous insects in the US, but not fucking moths. 06:47:58 we had this spider having babies in the bathroom one year, and my housemate (my landlady had rented to a girl this year) freaked out 06:48:14 i just collected them all with a clotheshanger 06:49:06 I'm just going to try to go to sleep 06:49:58 although i don't care much about most insects, you don't have to touch them with the glass and paper method 06:52:07 (1) take an empty glass and a piece of paper (2) catch the bug between the glass and some surface (3) slide the paper between the glass and surface (4) remove from surface carefully not letting it escape (5) do whatever you want 06:52:51 I'm just going to go to sleep, I think 06:53:37 GET AWAY FROM MY COMPUTER 06:53:38 * Sgeo_ cries 06:55:46 I'm afraid if I close my computer I'll get moth blood on it 06:56:25 you can wipe that off, i'm sure 06:57:16 * oerjan feels like a pot calling a kettle black in the rare spot where the pot isn't 06:57:56 hm? 06:58:36 Sgeo_: you are freaking out over a practical matter. just like i do all the time. but not with one i have trouble with. 07:01:25 If I leave my door open and the lights in my room off and the light in the hall on, will it fly out? 07:02:05 i've tried that before, with mixed results 07:04:27 -!- shachaf has quit (Ping timeout: 248 seconds). 07:13:02 -!- shachaf has joined. 07:14:24 Yet again, my battery isn't charging despite the laptop being plugged in 07:17:35 -!- augur has quit (Read error: Connection reset by peer). 07:20:15 -!- augur has joined. 07:26:57 -!- Sgeo has joined. 07:27:13 -!- Sgeo_ has quit (Ping timeout: 246 seconds). 07:33:58 -!- adayleryan has joined. 07:38:08 -!- zzo38 has joined. 07:42:40 -!- adayleryan has left ("Leaving"). 07:52:12 -!- cheater__ has changed nick to retaehc. 07:58:08 The damn thing attacked my mouth 08:00:06 oerjan, I think I injured it but not killed it 08:00:19 It's on the floor pathetically. Should I kill it, would that be merciful? 08:00:44 Your moral dillemae amuse me. 08:00:56 Almost as much as unusual plurals do. 08:01:17 -!- Vorpal has joined. 08:18:51 -!- monqy has quit (Quit: hello). 08:24:23 -!- Lymia has quit (Remote host closed the connection). 08:27:27 -!- retaehc has quit (Ping timeout: 240 seconds). 08:39:27 -!- lament has quit (Ping timeout: 240 seconds). 08:42:06 * oerjan guesses it's too late for mercy now 08:48:32 -!- Phantom_Hoover has joined. 08:49:31 It got under something and I can't reach it now 08:50:43 -!- zzo38 has quit (Remote host closed the connection). 08:56:23 How easy/difficult would it be to parse code of a language into an AST in Javascript? 08:56:51 Meh, guess I should just try it 09:12:13 -!- oerjan has quit (Quit: leaving). 09:18:27 Sgeo: Mozilla did it 09:18:56 I am not a group of people 09:19:09 I guess I should figure out what tokenizing is 09:22:54 -!- MigoMipo has joined. 09:27:24 -!- retaehc has joined. 09:31:48 -!- augur has quit (Remote host closed the connection). 09:44:42 -!- retaehc has changed nick to cheater_. 09:45:41 -!- cheater_ has changed nick to retaehc. 09:51:20 -!- augur has joined. 09:58:47 -!- Slereah has joined. 09:59:08 w. t. f. 09:59:08 Vorpal: You have 1 new message. '/msg lambdabot @messages' to read it. 09:59:18 hm 09:59:59 lifthrasiir, ah okay, my program did go for fixed point. And yet it was faster than your. Heh. 10:00:07 (your program did some things better) 10:00:44 weird, make is removing generated files .c at the end of make all. Why 10:00:49 there is nothing in there to do that 10:01:23 %.c : %.pyx 10:01:23 $(CYTHON) $(CYTHONFLAGS) -a $^ 10:01:23 %.so : %.c 10:01:23 $(CC) -fpic $(CFLAGS) -I$(PYINCLUDES) -L$(PYLIBPATH) $(LDFLAGS) --shared -o $@ $^ $(PYLIB) 10:01:27 I have those two rules 10:01:38 yet it removes the .c at the end. WHY 10:02:10 pikhq, there? Maybe you can help with this. 10:03:20 oh found it 10:03:22 http://www.gnu.org/s/hello/manual/make/Chained-Rules.html 10:03:26 hm, how to avoid that 10:07:24 right, found it 10:25:44 -!- FireFly has joined. 10:40:34 -!- CakeProphet has quit (Quit: leaving). 10:41:39 -!- CakeProphet has joined. 10:42:04 -!- Vorpal has quit (Read error: Operation timed out). 10:42:51 -!- Vorpal has joined. 10:44:22 -!- CakeProphet has quit (Client Quit). 10:44:42 -!- CakeProphet has joined. 10:46:19 -!- CakeProphet has quit (Client Quit). 10:49:15 -!- CakeProphet has joined. 10:49:17 -!- CakeProphet has quit (Changing host). 10:49:17 -!- CakeProphet has joined. 10:49:20 !bf_txtgen test 10:49:26 ​61 +++++++++++++[>+>+++++++++>++++++++><<<<-]>>-.>---.<-.+.<---. [308] 10:51:08 -!- CakeProphet has quit (Client Quit). 10:51:35 -!- CakeProphet has joined. 10:54:00 -!- CakeProphet has quit (Client Quit). 10:54:24 -!- CakeProphet has joined. 10:56:10 Lists in LSL are immutable. I am going to cry. 10:56:33 Sgeo, what is LSL in this context 10:56:40 Linden Scripting Language 10:56:43 Sgeo: time to implement a state monad, of course. 10:58:29 Sgeo, never heard of that 11:05:48 lifthrasiir, interesting, in esotope-bfc it isn't safe to run all the optimiser passes more than once. Not sure which ones mess up here yet. 11:09:02 Vorpal, the language used in Second Life 11:09:14 I see 11:09:17 CakeProphet, is that even possible in a language without first-class functions? 11:09:54 I don't think so. There'd be no way to do bind. 11:10:15 unless you can eval strings, or have some other method to treat code as data. 11:10:47 CakeProphet, wouldn't eval be treating code as data rather than data as code? 11:10:53 err 11:10:56 the other way around I meant 11:11:17 hmmm 11:11:22 can go both ways depending on what you mean. 11:11:31 hm, okay 11:11:57 CakeProphet, for me it seems that eval treat data (a string for example) as code (by executing it) 11:12:05 I was thinking of the string as the code being stored as data. But yes, it's also data as code in that the string is data that is being re-interpreted as code. 11:12:16 but if you can treat data as code, you can go the other way around by making the bulk of the code your data 11:12:16 yeah 11:13:16 Sgeo: use Perl instead. 11:13:35 lol use perl in SL 11:13:44 actually bind would look pretty nice in Perl. 11:14:54 sub bind(&$) { my ($codeblock, $monad) = @_; ... #monad-specific implementation code goes here } 11:15:33 bind {$_ + 1} $monad_int 11:15:38 -!- BeholdMyGlory has joined. 11:16:32 though it might be better to swap the arguments of bind since the code block will generally be larger in size than the monad argument. 11:18:08 if you did some like. 11:18:21 bind ($[\&&]) {...} 11:18:35 then you could pass a coderef or a literal anonymous block. 11:18:54 ...for fun and profit. 11:20:35 CakeProphet, check CPAN, if there is no monad library for perl yet, make one 11:21:58 -!- NihilistDandy has joined. 11:23:54 Vorpal: surely it's in CPAN... 11:24:06 yep, there it is. 11:24:09 heh 11:24:10 Class::Monad 11:24:18 er Class::Monadic rather 11:24:22 CakeProphet, what about functors? 11:24:40 oh wait this is something different 11:24:45 monadic methods are "singleton" methods 11:24:49 whatever that means. 11:25:53 well Perl doesn't really have anything like typeclasses, I doubt I could make a Monad module since you'd have to implement the code differently for each monad. 11:26:07 but Monad helper functions? possibly. 11:26:43 CakeProphet, hm. Surely you can do this somehow with perl. I mean, can't you execute pretty much anything at parse time 11:26:51 and thus do some sort of magic transform on the code 11:27:01 I seem to remember some ACME:: modules do that 11:27:18 CakeProphet, so I bet you can fake typeclasses in perl even 11:27:19 :D 11:28:11 well it's not like there's a type system or anything... 11:28:27 well, there is, but not a static one. 11:29:06 CakeProphet, hm what about untyped monads... 11:29:10 would that even work? 11:29:36 well it would work like bind/return but without typechecking, basically. 11:29:56 CakeProphet, sounds good enough for perl 11:30:14 and yeah, I do believe you can apply Perl to Perl code before compilation phase. 11:30:17 so, do notation is possible. 11:30:23 CakeProphet, now I feel like I want do do monads in C, probably using some sort of macros to type it 11:30:32 ...sounds horrid. 11:30:39 at least with Perl there would be some nice syntax. 11:31:30 CakeProphet, saw pikhq's C library with closures? Using lots of preprocessor + some GNU extensions 11:31:38 hm did he do continuations as well? I don't remember 11:31:39 I've seen examples that remove the need for semicolons in perl and just append non-empty lines with semicolons via regex. 11:31:53 I don't have the file for it here I think 11:31:58 ask pikhq when he is around 11:33:30 I guess a Monad module for Perl would just be a class that you could inherit from, that would standardize the names and overload some operators 11:34:25 ...I wonder, if you can overload operators and still do the anonymous {} notation that you can get if use & in the subroutine prototype. 11:34:46 $monad >= {...} 11:34:58 I doubt it. 11:35:16 try it? I have no idea, I'm not very good at perl. 11:35:29 no I think it has to be the original sub by its original name for the parser to know what to do. 11:36:45 to overload operators you have to do something like: use overload ('>=' => \&bind, '+' => \&empty_bind); 11:38:33 -!- wareya_ has joined. 11:38:54 but making a do syntax for Perl sounds like a fun time with regex. 11:40:20 turning a linear list of program lines into a single line of nested binds? I can't wait. 11:41:05 and it's Perl so I'm not allowed to use anything other than regex to do that. 11:41:55 -!- wareya has quit (Ping timeout: 260 seconds). 11:42:43 heh 11:45:31 -!- Phantom_Hoover has quit (Ping timeout: 246 seconds). 12:03:15 -!- BeholdMyGlory has quit (Remote host closed the connection). 12:03:31 Good idea/bad idea: Attempting to compile some code by hand without knowing what the compiler looks like exactly, just a vague idea 12:03:46 I want to get a feel for how it should work 12:16:15 DANGIT I DON'T WANNA WRITE MY OWN GARBAGE COLLECTION 12:19:03 Um, I'm not sure if I need GC... although the fact that I'm wondering that makes me rather nervous about my semantics 12:20:26 Oh, I figured out why. There is no heap. 12:20:31 How worried should I be about this 12:20:32 ? 12:28:18 Oh look, there are mutable structures in LSL. But they can only hold floats 12:40:09 If I detect that call/cc is not used, I can skip the CPS transform! 12:40:57 (inb4 halting) By "not used", I mean not mentioned in the source code 12:52:31 -!- malorie has joined. 13:09:44 -!- pikhq_ has joined. 13:11:28 -!- pikhq has quit (Ping timeout: 244 seconds). 13:47:52 -!- oerjan has joined. 13:54:15 well Perl doesn't really have anything like typeclasses, I doubt I could make a Monad module since you'd have to implement the code differently for each monad. 13:54:50 you might use the scala (iirc) method of letting monad elements be objects of a class that implements bind as a method for its first argument 13:55:07 with a different class for each monad, naturally 13:56:09 -!- NihilistDandy has quit (Quit: *yawn* Breakfast.). 13:56:30 return might be a static method of the class then 13:58:44 oh hm you also need a generic return for use in code for generic monads 14:06:54 -!- copumpkin has quit (Ping timeout: 250 seconds). 14:07:21 -!- copumpkin has joined. 14:32:32 Expanding lists means the old location of the list may get left behind, but I can make a list of free spaces and have new variable allocations check that first 14:40:00 in python, how do you make a one element tuple now again 14:40:14 (x,) ? 14:40:18 oerjan, hm worth a try 14:40:43 oerjan, seems so, stupid syntax but meh 14:49:27 hm how should this expression in python be read: SetMemory(k,v) for k,v in subst.items() if v != Expr[k] ? As if ...: for ...: yeild SetMemory... Or as for ...: if ...: yeild SetMemory... ? 14:49:45 oerjan, since I now assume you are a python expert I ping you 14:50:13 I would assume the latter interpretation 14:50:29 i'm not, but isn't that python's comprehension syntax? 14:50:49 oerjan, I think it is a generator, rather than a comprehension. 14:51:03 yes iirc python makes a difference between them internally 14:51:09 huh 14:51:10 oerjan, but the point is, where should the if go 14:51:18 well they're just different monads probably :D 14:51:23 oerjan, :P 14:51:31 oerjan, is the if like a filter? 14:51:33 It's iffing for each list element separately. 14:51:36 fizzie, ah 14:51:41 So it is like a filter, yes. 14:52:43 lifthrasiir, btw, I managed to reduce time from 59 to 35 seconds with cython + a few hours work. However cython doesn't do metaclass stuff, nor multiple inheritance. So large parts of esotope-bfc can't be converted without some significant rewriting 14:53:05 >>> list(x for x in xrange(10) if x%2) 14:53:05 [1, 3, 5, 7, 9] 14:53:13 That sort of thing. 14:53:16 lifthrasiir, mostly the processing heavy parts that can't be converted. So if you rewrote them I'm sure you would get a significant speedup 14:53:57 um if that is _not_ python's comprehension syntax, what does that look like then 14:54:20 [x for x in ...] would be a list comprehension. 14:54:26 yeah 14:54:32 oerjan, the [] makes the difference 14:54:35 ugly indeed 14:54:36 While the earlier one passes a generator to the list constructor. 14:54:37 huh 14:55:27 The if-filter syntax is I think a bit confusing, since you have there references to the x defined in "for x" coming from both before and after it. 14:55:48 fizzie, still better than x if cond else z :P 14:56:11 fizzie: well it's pretty similar to haskell's list comprehensions in structure 14:56:37 > [x | x <- [1..10], odd x] 14:56:37 [1,3,5,7,9] 14:57:15 just trying to be less mathematically obfuscated i guess 14:57:23 The ternary expression is quite uncomfortable-to-me too, yes. 14:59:17 At least the "else"'s not optional there; it would be quite confusing if both "x for x in y if f(x)" and "x if f(x) for x in y" were allowed, with the difference that the second one would yield, say, None for the non-matching elements instead of omitting them. 15:00:11 fizzie, uncomfortable-to-me <-- why the hypens? 15:02:12 to specify it's not also uncomfortable to *him* (among other people) but that it's is also *uncomfortable* to him (among other things) 15:02:54 which makes sense because no one would ever have guessed that's what he meant. 15:03:09 Yes. Well, actually what I *wanted* to convey was that *it* (among other things) is uncomfortable. 15:03:53 hmm that too 15:04:52 Basically to group the "too" with the uncomfortableness instead of being "me too". 15:05:17 Or the thing. Or something. 15:05:21 I give up. 15:05:56 Yes. Well, actually what I *wanted* to convey was that *it* (among other things) is uncomfortable. <-- hm, to me it was just confusing. Maybe you need to be a Finn to get that... 15:06:28 lol 15:06:29 they probably have their own suffix for it 15:06:50 You may need to be me to get it, and I'm not sure even that helps, since after all this talk I've forgotten what it was I was thinking. 15:06:58 Probably not much. 15:10:00 the fizitive 15:10:33 And we do have a "-kin" adjective/noun suffix that does a bit of an "also, too" thing. "Pöytäkin oli puhdas" = "also the table (among other objects) was clean", "pöytä oli puhdaskin" = "the table was clean too (among other properties of the table)". 15:10:47 Where pöytä = table, puhdas = clean. 15:11:02 oklopol: it's the case for nouns which have been completely lost 15:11:10 haha lol we do 15:11:59 fizzie: you an use it with verbs too 15:12:09 Not to be confused with "pöytä olikin puhdas", which would be basically "the table was clean, and it surprised me". 15:12:40 yeah that, but what about something like "hn si minut, ja ampuikin viel" 15:12:46 maybe that's surprisative too 15:13:04 surprisative :D 15:13:17 surprisative!. 15:13:36 "When attached to verbs, this meaning of this suffix is often hard to translate into English. In the most basic sense, it means "after all", as in an expression of a contadiction of expectations. These sentences are an example of this: 15:13:40 1. Hän tulikin. (He came after all [I didn't expect it].)" 15:14:01 -- http://www.unilang.org/wiki/index.php/The_-kin/-kAAn_suffix 15:17:16 heh 15:35:48 -!- BeholdMyGlory has joined. 15:41:32 -!- iconmaster has joined. 15:41:41 ?join #nethack 15:41:42 Not enough privileges 15:41:53 oops 15:46:23 -!- oerjan has quit (Quit: Good night). 15:46:59 -!- Patashu has quit (Ping timeout: 244 seconds). 16:07:14 -!- Phantom_Hoover has joined. 16:07:20 -!- pikhq_ has quit (Ping timeout: 260 seconds). 16:07:29 What are the haps my friends. 16:08:04 Phantom_Hoover, I try to reinvent the wheel while pondering my language 16:08:34 -!- pikhq has joined. 16:08:38 (Probably. I suspect that every single difficulty I'm imagining has been encountered before and studied repeatedly to death) 16:08:55 Ah, you are Pygmalioning? 16:09:51 ? 16:10:11 http://en.wikipedia.org/wiki/Pygmalion_(mythology) 16:16:23 http://www.timesonline.co.uk/tol/news/weather/uk_and_roi/article1985663.ece 16:17:18 Asimov's observation that the most emblematic victory of science over religion was when churches started using lightning rods comes to mind... 16:17:48 Is it feasible to mix CPS with non-CPS? 16:18:04 My trampoline should be able to handle tail-calls and non-tail-calls with grace 16:18:54 Suggest you change your nick to something innocuous in case elliott comes in. 16:19:06 hmm? 16:20:56 * Phantom_Hoover logreads, sees Sgeo's tribulations at the hands of a moth. 16:21:18 10:56:10: Lists in LSL are immutable. I am going to cry. 16:21:32 Sgeo, remind me how long you've been playing SL for? 16:22:08 It's never been an issue before that somelist += [whatever] only reassigns what somelist contains. 16:30:56 -!- davve123 has left. 16:48:04 -!- ais523 has joined. 16:57:23 -!- quintopia has quit (Ping timeout: 258 seconds). 16:58:26 -!- quintopia has joined. 16:58:26 -!- quintopia has quit (Changing host). 16:58:26 -!- quintopia has joined. 16:59:34 Stop fucking waking me up every hour, people. 16:59:46 Just because *you* are awake does not mean that I am. 17:00:20 And the more you wake me up, the later it'll be until I will actually wake up. 17:01:20 I apologise, pikhq. 17:02:08 pikhq, you don't turn off sound on your computer or what? 17:02:37 Vorpal: No, I'm not ranting about you. 17:02:44 I'm ranting about the people I physically live with. 17:03:16 Just because you're up and at'em at 06:00 daily does not mean I am. Or can be. 17:03:44 Seriously, I have to use an alarm clock to be up before noon, and they're not helping. 17:03:53 ah 17:04:30 And it's not like I'm up *that* late. It's just that I will tend towards consciousness at noon. 17:04:44 If that means 4 or 16 hours of sleep. 17:07:07 my IRC client uses a visible bell 17:07:15 so it's unlikely anyone would wake me by nickpinging me 17:07:17 same 17:08:33 My IRC client just highlights the window number in its activity bar. 17:08:40 Quite impressive for that to wake me 17:08:48 Especially with my monitor off. 17:10:37 -!- Phantom_Hoover has set topic: "Show me how it doos" — James Clerk Maxwell | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D. 17:16:43 Wow. 17:16:53 Canada has a smaller population than Greater Tokyo. 17:18:55 the state of alabama has a population much much smaller than greater london; the state of alabama has slightly more land area than england. 17:22:11 -!- SimonRC has quit (Ping timeout: 252 seconds). 17:22:43 -!- SimonRC has joined. 17:23:37 -!- monqy has joined. 17:33:19 lifthrasiir: What're your thoughts on fan death? --> i think it's too stupid to believe it. 17:35:02 is it a common belief? 17:35:08 I've always found that hard to believe 17:35:10 Distressingly. 17:35:20 lifthrasiir, hi did you see my ping above? 17:35:34 There are quotes on the WP article from very authoritative people who think it's true. 17:36:20 lifthrasiir: What're your thoughts on fan death? --> i think it's too stupid to believe it. <-- fan death? Is this the same thing as happened to my PSU recently or is it about a completely different sort of fans? 17:38:23 * Vorpal googles 17:38:36 err, what... that's stupid... 17:50:57 -!- lament has joined. 17:51:04 Vorpal: Yes, yes it is. 17:51:08 copumpkin: Yes, yes it is. 17:52:18 pikhq, only way a fan can kill you would be if it was *very* cold already (why use fan then) or there was an electrical fault 17:55:41 lifthrasiir: i think fan death is a horrible way to lose a CPU. i think that's why AMD-provided fans are so loud: so you notice when it dies. 17:56:04 (yes, i know what you were talking about, i'm not a complete idiot) 17:59:47 -!- ais523_ has joined. 18:00:35 -!- Lymia has joined. 18:00:55 -!- ais523 has quit (Ping timeout: 250 seconds). 18:01:15 -!- ais523_ has changed nick to ais523. 18:01:18 gah, the spambot is back 18:02:02 May god have mercy on us all. 18:02:42 also, I was trying to figure out where the spam had gone in Recent Changes, before I realised I habitually delete spam from Recent Changes in order to stop it getting cluttered 18:02:49 (you can use the "show bots" link if you want to see it) 18:20:11 hm a = --b; in c would be the same as a = b; b = b - 1; but arguably it should instead be read as a = -(-b); 18:20:16 I mean, that would be more logical 18:20:44 err, switch the operations 18:20:50 in the middle bit of code 18:20:51 (typo) 18:27:15 -!- ralc has joined. 18:28:45 Vorpal: -- is one token, - - is two 18:28:57 just like && is different from & & 18:29:08 ais523, yes but logically it should work like this 18:29:10 or in C++, > is different from > 18:29:14 ais523, but & & would be a syntax error 18:29:21 or well 18:29:23 error anyway 18:29:29 it's a semantic error, I think 18:29:39 taking the address of an address is illegal, but not for syntactical reasons 18:29:47 ais523: In C++0x, > is > 18:29:53 ais523, oh I read that as bitwise and :P 18:30:06 ais523, as in int1 & & int2 18:31:33 -!- Sgeo has quit (Ping timeout: 260 seconds). 18:31:55 pikhq: heh, they changed it? 18:32:00 Yes. 18:32:12 Because nobody would *actually want* the alternate reading. 18:32:17 is it a change to the tokenisation, or can the >> token close two angle bracket brackets now? 18:32:30 Change to the tokenisation. 18:32:37 also, I can see very plausible reasons to put << in a template argument 18:32:48 writing, say, 1<<5 rather than 32 18:32:57 presumably, if you really want a rightshift you have to put it in parens? 18:33:13 Think so. 18:34:25 I suppose greater-than has the same issue 18:40:36 -!- variable has quit (Remote host closed the connection). 19:06:36 -!- lament has quit (Ping timeout: 252 seconds). 19:10:06 -!- copumpkin has quit (Ping timeout: 240 seconds). 19:10:32 -!- copumpkin has joined. 19:12:45 ... *Wow*. The domesticated silkmoth is completely and utterly incapable of surviving in the wild. 19:12:57 Its adult form can neither fly nor feed. 19:35:39 and yet it's likely to survive as long as humans want silk 19:35:45 so it's a sensible adaptation to its environment 19:37:01 pikhq, inability to feed is not uncommon in adult insects. 19:38:54 Phantom_Hoover: Not ones which live long adult lives. 20:03:24 -!- monqy has quit (Quit: Lost terminal). 20:04:19 What is it with Americans pronouncing solder "sodder"? 20:08:33 -!- monqy has joined. 20:17:02 Phantom_Hoover, lödtenn. 20:17:36 (or in case of the verb, löda) 20:21:54 Hmm, no elliott today. 20:24:05 Phantom_Hoover: We despise your English. 20:24:40 pikhq, what is solder in Japanese? 20:24:52 pikhq, (both the verb and the noun) 20:25:15 -!- elliott has joined. 20:25:23 Vorpal: No idea. 20:25:29 Hmm, no elliott today. [...] * elliott (~elliott@unaffiliated/elliott) has joined #esoteric 20:25:32 :D 20:26:27 Apparently, "hantà" (ハンダ、半田). 20:26:32 For the noun. 20:26:39 pikhq, and for the verb? 20:27:32 hantàtuke (半田付け), apparently. 20:27:37 Phantom_Hoover: Invent me a geometry where I can have the curvature of the Earth because it's pretty, but still have an infinite world in every dimension. 20:27:37 You *saw* that 720° rotunda, yes? 20:27:37 Yes. 20:27:37 I mean you have to make it geometrically coherent. 20:27:37 Ask oerjan. 20:27:40 aww, he's not here 20:27:49 Literally, "to apply solder". 20:27:56 elliott, yes, but then I linked you to that IWC annotation. 20:28:31 Well, actually, it's a suru verb, so the verb would actually be "hantàtuke suru". 20:28:38 Constant positive curvature necessitates a closed surface. 20:28:42 pikhq, in Swedish it is the other way around in that the noun is a compound word including the verb. 20:29:09 pikhq, literally the noun is "solder tin" 20:29:17 as in the element tin 20:31:09 And 半田 literally means "half field". As in where you do agriculture. 20:31:18 I have no fucking *clue* of the etymology of that. 20:31:29 pikhq, can't you find that by googling? 20:31:30 hm 20:32:22 pikhq, hm, maybe related to semi-conductors? ;) 20:32:32 hm wait, that doesn't work well in English 20:32:51 semi conductor = sv:halvledare = literally "half conductor" 20:34:11 Which is literally what "semiconductor" means... 20:34:37 pikhq, wait is semi = half? I thought semi = partially? 20:34:46 semi more literally is "half". 20:34:51 ah 20:35:24 Anyways, "semiconductor" in Japanese is pretty obviously a calque from the English... 20:35:31 http://i.imgur.com/RHtwS.jpg 20:35:34 半導体. Literally "half conductor". 20:35:40 I cannot bring myself to agree with Reddit on this one. 20:36:19 Phantom_Hoover: How so? 20:36:32 Phantom_Hoover, that image seems familiar. Very much so. 20:37:04 pikhq, because I think that there is genuine sense behind what is taught in English classes, but it suffers the same problem as mathematics. 20:37:31 i.e. people think you can get the benefits of understanding things just by learning their outcomes. 20:37:32 Phantom_Hoover: The issue in *my* estimation is worse in English classes. 20:37:36 Phantom_Hoover: Yes, clearly they should teach advanced literary criticism at school level. Wait. 20:37:44 Wait, no. Literary criticism is retarded to. 20:37:46 [asterisk]too. 20:38:32 Not only are the English classes heavily removed from any sensible pedagogy, they are *fucking lying* to students. 20:38:41 pikhq, well, yes. 20:39:13 They don't have the fact-checking that maths education is constrained by. 20:39:28 Literary criticism is not some highly essential bit of understanding literature, and the bog-standard essay *format* is mother-fucking pitiful and terrible style. 20:39:44 Indeed, that essay format is positively crippling. 20:43:33 AND WHY THE FUCK WOULD YOU EVEN ASK TO FIND THE SYMBOLISM IN HEMINGWAY'S WRITING, ANYWAYS. 20:43:43 THIS IS A MAN WHO SAID, AND I QUOTE, "Symbolism is shit." 20:43:52 pikhq: the shit represents his love 20:43:59 elliott: For feces. 20:44:03 Riiiight. 20:44:04 pikhq, ah, you see, we're even weirder in Scotland. 20:44:05 and symbolism 20:44:31 The Higher exam, the only one I've done, /gives literally indication what texts you should use/. 20:44:46 It has to be in English and... that's it. 20:44:55 ... It states... What? 20:45:05 In theory you could literally make up a poem and write an essay on it. 20:45:45 Could you reread the line: < Phantom_Hoover> The Higher exam, the only one I've done, /gives literally indication what texts you should use/. 20:45:48 ? 20:45:59 Oh, *no indication 20:46:08 Thanks for curing my confusion. 20:46:19 Phantom_Hoover, huh 20:46:24 Define "English". 20:46:25 :P 20:46:36 givesl iterally induction 20:46:41 [asterisk]gievs literally 20:46:43 The critical essay section of the Higher English exam. 20:46:46 Phantom_Hoover, so uh, does it have to be a novel or anything like that? Or could it be something like a newspaper? 20:46:48 In theory you could literally make up a poem and write an essay on it. 20:46:51 I would write an essay about my essay. 20:46:53 No, I mean as in "has to be in English". 20:47:09 "For a start, my essay is very self-referential." 20:47:19 "The main point of my essay is that it never states a main point." 20:47:27 pikhq, as in it has to be in English... wait, you might be allowed to use Gaelic as well. 20:47:37 Wait, no, you can't. 20:47:55 Phantom_Hoover: There's at least three distinct languages that are called "English". 20:48:09 "It was written in English" is I think the rule of thumb. 20:48:20 Oh god pedantry 20:48:22 * Phantom_Hoover ducks 20:48:36 pikhq, go on 20:48:47 At a minimum, Old English, Middle English, and Modern English. 20:48:55 -_- 20:49:17 Well, you'd get away with Shakespeare. Not sure about the Canterbury Tales. 20:49:36 pikhq, are there sharp borders between these? Or did the change happen gradually? 20:49:49 Yes, Shakespeare is essentially writing the same damned language we are... 20:49:50 I mean from an historical perspective 20:49:52 pikhq: Sometimes your pedantry is really annoying :P 20:50:11 Vorpal: The borders are roughly 1 or 2 hundred years. 20:50:31 pikhq, so gradual. So you can't say that "that exact date, it switched" 20:50:42 Well, no, you can't do that for any language ever. 20:50:47 pikhq, indeed. 20:51:20 There's even often gradual borders between contemporary languages... 20:51:42 pikhq, indeed! 20:53:54 -!- quintopia has quit (Ping timeout: 258 seconds). 20:54:30 -!- azaq23 has joined. 21:07:07 "From 26th May 2011 websites in the UK need to ask for permission before they can set cookies not required for ‘essential’ means." 21:07:09 seriously? 21:07:15 ais523 is going to have a party 21:07:30 elliott: it's actually very easy to do 21:07:36 haha, google analytics is now illegal to use in the uk 21:07:41 even better 21:07:42 ais523: easy to do what, have a party? 21:07:45 -!- lament has joined. 21:07:49 ask for permission before setting cookies 21:07:52 just ask on your login form or whatever 21:07:59 lol 21:08:13 there's no way this is getting enforced anyway 21:08:14 ais523, you realise cookies are far more widely-used than that? 21:08:20 Phantom_Hoover: usefully? 21:08:50 Phantom_Hoover, essential means would cover most things except click tracking I think 21:09:00 ais523, given that you thought the web was one of porn, ads and spam I have no idea how you define 'useful'. 21:09:08 Vorpal: google analytics doesn't do click-tracking AFAIK 21:09:12 and is still apparently illegal now 21:09:27 elliott, what does google analytics require cookies for then 21:09:38 Vorpal: hmm, good point 21:09:47 google analytics can do most of whta it does without a cookie, I think 21:10:05 elliott, the only thing I can think of right now is, indeed, click tracking 21:10:21 elliott, and I'm no fan of click tracking, so I would be happy to see that gone 21:10:33 I would be fine with click tracking being illegal 21:10:33 of course I doubt anyone will follow this law 21:10:38 A blanket cookie law is stupid, though 21:10:44 elliott, yes. 21:10:46 It's like patenting an implementation 21:11:03 uh I don't quite see the similarity 21:11:16 Vorpal: cookies are just a mechanism which can be used for tracking 21:11:24 You want to ban tracking, not cookies 21:12:37 indeed 21:12:51 -!- Sgeo has joined. 21:12:54 elliott, while I agree it is stupid I don't think there is any direct analogy to patents 21:13:03 Yes there is. 21:13:07 elliott, which one is that 21:13:21 You can't patent methods/implementations, only general specifications. 21:13:30 (Of course this isn't adhered to in practice, but it's the principle of the thing.) 21:13:41 Cookies = implementation, tracking = general. 21:14:03 hm 21:17:31 how feasible would it be to try to optimise brainfuck algorithms that deals with several fields into one with a larger word size 21:17:35 for example: 21:17:54 ending up with say *((short*)p)++ 21:18:06 for a 2-word addition algorithm 21:18:23 well, increment in this case 21:18:23 Sounds feasible but perhaps not very effective. 21:18:31 elliott, you think it is too rarely used? 21:18:47 No, I just think detecting the loops will be difficult. 21:18:50 Unless you just hardcode it. 21:18:54 elliott, hm true 21:19:28 elliott, anyway, I think lifthrasiir should implement that SSA thing in esotope-bfc (after porting it from slow python to something else) 21:19:50 Porting it will be a microoptimisation. 21:20:00 What it does is pretty inherently computationally intensive, isn't it? 21:20:07 I mean he's doing it anyway but performance is a bad reason. 21:20:19 And a few minutes on LostKng doesn't matter, LostKng is the biggest program and incredibly bad anyway. 21:20:24 Since it can be size-optimised to hundreds of kbs easily. 21:20:55 elliott, gcc generates 1.1 MB binary for it at -O0 from esotope-bfc. -O1 makes me swap trash 21:20:58 XD 21:21:12 Well that's LostKng's fault, not esotope's :P 21:21:18 elliott, anyway, there is quite a lot of data shuffling 21:21:40 02:28:16: http://andlinux.sourceforge.net/screenshots/screenshot.png 21:21:40 02:28:18: Made of win. 21:21:40 Nice, except for the Windows part. 21:21:44 Also the KDE part. 21:21:59 They should just make the rest of the system Linux too, and then uninstall KDE. Then it'd be made of win. 21:22:10 Well, made of mediocre since it's still a sloppy Unix derivative. :p 21:22:24 02:57:32: Sgeo_, I'd love to set up a.... freakish Frankenstein system once they get it working on 64-bit 21:22:24 02:58:30: How much rage do you expect from Windows fanboys/Linux zealots 21:22:35 There are Linux fanboys too. :p 21:22:35 elliott, cython provides a speedup of about 2.3x. But then I haven't converted the most computationally heavy part (cond and expr) because they use metaclasses and cython can't handle it 21:22:43 and I don't understand how he uses metaclasses 21:22:47 I don't know of any Windows zealots, but they probably exist, just they'll be /really/ stupid. 21:23:04 elliott, windows zealots? Look at gamers. 21:23:06 Vorpal: That's a meagre optimisation if it takes a few minutes anyway. 21:23:08 And no, they're fanboys. 21:23:34 elliott, it goes from about 1 minute to slightly less than half a minute 21:23:49 Yes; irrelevant. 21:24:02 03:59:16: http://www.tuxradar.com/files/ubuntu_vs_7-3.png 21:24:02 03:59:25: Wtf does Windows use all that space for? 21:24:02 They should add OS X, then it'll be one full pole and a bunch of near-zeroes. 21:24:06 elliott, and yes, doing away with the metaclasses and handling that bit would probably provide another 2x speedup 21:24:21 (OK it only takes up about three times that of Vista and that's with iLife installed.) 21:24:26 (Sixteen bit Vista, that is.) 21:24:37 Vorpal: Now test it on any program but LostKng. 21:24:40 LostKng is irrelevant. 21:24:40 elliott, they should add windows xp to that graph 21:25:39 elliott, it provides less optimisation for anything but lostking. I mean for mandlebrot.bf it doesn't provide such a HUGE advantage compared to simply merging +++ and so on 21:25:53 LostKng is irrelevant since it's fast enough with just about everything. 21:25:58 Only the startup really changes. 21:26:07 hm 21:26:26 elliott, not for the bf interpreter I wrote in bash once :P 21:26:26 It's incredibly badly coded, in elementary brainfuck terms ("can be optimised majorly with a simple bf->bf translation"), and not computationally intensive at all after it starts up. 21:26:30 So it's really a terrible benchmark in every way. :p 21:27:08 what kind of bf -> bf trans 21:27:09 elliott, BUT it is fun to play :P 21:27:31 yeah the minecraft of brainfuck 21:27:36 oklopol: removing obvious dead code, basic constant/addition optimisation 21:27:36 oklopol, there is some dead code. Not any major difference but there is some 21:28:19 removing dead code is optimization? 21:28:25 -_- 21:28:46 elliott, http://www.tuxradar.com/files/ubuntu_vs_7-3.png <-- hm I have windows 7 / x86_64 around here. It uses 7.9 GB... 21:28:50 if dead code stuff you don't execute, aren't you just optimizing away a jump 21:28:59 elliott, that is pro version, probably ultimate uses more 21:29:00 *is 21:29:07 but the graph doesn't say which version 21:29:08 08:56:23: How easy/difficult would it be to parse code of a language into an AST in Javascript? 21:29:12 Completely impossible. 21:29:26 elliott, err? 21:29:35 Completely. Impossible. 21:29:38 I would say it is possible 21:29:39 Vorpal, also, I am the pope. 21:29:42 but a stupid idea 21:29:47 A stupid idea? 21:29:52 JS is just another programming language, you know. 21:30:04 elliott, using js is a bad idea :P 21:30:10 and basic constant/addition optimization? how can you make that stuff faster within bf? 21:30:15 unless it is Gregor doing it 21:30:26 in which case the result is invariably awesome 21:30:35 it seems like the fastest code for making a constant is + times that constant 21:31:00 oklopol: I really forget exactly what makes it tiny :P 21:31:06 We're talking size optimisation, anyway 21:31:08 Not speed 21:31:11 ohhh 21:31:31 that changes everything ofc 21:32:18 12:40:09: If I detect that call/cc is not used, I can skip the CPS transform! 21:32:25 What a pointless waste of time, writing two compilers when one would do. 21:32:33 speed optimization within bf would probably be more about changing numbers to small-ary representation and reorganizing memory and stuff like that, seems hard to do anything useful locally 21:32:36 elliott, I'd like a reasonable language on top of bf that made it non-painful to code for, but didn't produce stupidly large bf code as a result 21:32:37 14:32:32: Expanding lists means the old location of the list may get left behind, but I can make a list of free spaces and have new variable allocations check that first 21:32:40 ... 21:32:43 elliott, know any? 21:32:44 Vorpal: PEBBLE 21:32:51 elliott, oh that, link 21:32:56 hm 21:32:58 It's on nonlogic which evaporated. 21:33:01 Get a tarball of pikhq. 21:33:04 ah 21:33:05 The host went down ages ago, and I haven't bothered to find another. 21:33:13 pikhq, can you give me a tarball 21:33:15 Vorpal: It's still not "comfortable", all it has is macros, not functions, and you need to manage temporary variables (by creating them and passing them), but it's better than nothing. 21:33:22 And you could easily make a "real" language out of it with macros. 21:33:31 What with it having been 4 years since I actually did stuff with it... 21:33:35 Sgeo, now do you see why I told you to change your nick to something innocuous? 21:33:45 Vorpal: I really have no idea where to even upload a tarball to right now. 21:33:48 elliott, I suggest m4 on top of brainfuck 21:33:51 pikhq, filebin? 21:33:52 14:50:49: oerjan, I think it is a generator, rather than a comprehension. 21:33:54 or such? 21:33:56 It's a comprehension which creates a generator. 21:34:00 14:49:27: hm how should this expression in python be read: SetMemory(k,v) for k,v in subst.items() if v != Expr[k] ? As if ...: for ...: yeild SetMemory... Or as for ...: if ...: yeild SetMemory... ? 21:34:05 Neither; it's "yield". 21:34:06 (But latter.) 21:34:09 Vorpal: filebin is down. 21:34:13 pikhq: | uuencode | sprunge :-) 21:34:13 huh 21:34:21 Or there's the annoying-but-easy mediafire.com. 21:34:34 elliott, uh that is a PITA to use yes 21:34:43 -!- variable has joined. 21:34:45 Not really. 21:34:50 You just click a link to download it. :p 21:34:56 elliott, and wait iirc 21:34:58 No. 21:34:59 and what not 21:35:00 That's the other ones. 21:35:00 hm 21:35:10 Mediafire might require JS, but it certainly doesn't require any waiting or captcha. 21:35:11 elliott, oh mediafire is the one which never works for me 21:35:17 Have you tried enabling JS. 21:35:20 elliott, I have enabled js yes 21:35:24 I'm not stupid 21:35:31 elliott, I tried enabling cookies too 21:35:32 Maybe it uses Flash. Nah, doubt it. (It does to upload.) 21:35:42 elliott, all I got was a static progressbar image 21:35:54 elliott, well I won't do flash. Just no. 21:35:56 There is no download progress-bar. 21:35:59 You are thinking of another site. 21:36:28 pikhq, what about dropbox? 21:36:29 Vorpal: http://sprunge.us/BQDV 21:36:39 wget -O- | uudecode 21:37:12 $ sha512sum pebble-1.0.tar.xz 21:37:12 0ed0b0f52b195263e59941869f8a153776a01ae7f81be920c707a42ee5345f9909a333a36a08a48e2f6b1dc26823d03296bd61f376504872da4487f5332e6c16 pebble-1.0.tar.xz 21:37:15 pikhq, can you verify it 21:37:25 0ed0b0f52b195263e59941869f8a153776a01ae7f81be920c707a42ee5345f9909a333a36a08a48e2f6b1dc26823d03296bd61f376504872da4487f5332e6c16 pebble-1.0.tar.xz 21:37:34 mmmm, yep looks correct 21:38:17 Vorpal: seriously? 21:38:24 Especially that last line. 21:38:31 "Hmm, they could have sabotaged it by changing one digit of the hash..." 21:38:32 elliott, what? dropbox? 21:38:40 elliott, hardly 21:38:45 It was sprunge, not dropbox. 21:38:46 elliott, I didn't say that 21:38:55 elliott, no that I mentioned dropbox above 21:38:56 ... 21:39:07 Congratulations, you have not been coherent for a whole five lines. 21:39:40 elliott, right 21:39:52 Six. 21:39:52 elliott, anyway what was wrong with verifying checksum? 21:40:03 Vorpal: PEBBLE, BTW, was quite specifically designed to let you write Brainfuck without stupidly retarded output. 21:40:14 pikhq, nice 21:40:27 Course, that's pretty easy when it is literally just a macro system. 21:40:34 pikhq, I see I need to install tcl 21:40:42 And Tcllib. 21:40:45 17:56:04: (yes, i know what you were talking about, i'm not a complete idiot) 21:40:45 Nice jab. 21:40:47 elliott, hm? 21:40:55 Vorpal: I never pinged you. 21:40:59 err 21:41:01 pikhq, ^ 21:41:08 elliott, misnick 21:41:22 Tcllib is another dependency of PEBBLE. 21:41:49 It is almost certainly in your package manager. 21:41:58 right 21:42:09 18:29:53: ais523, oh I read that as bitwise and :P 21:42:09 18:30:06: ais523, as in int1 & & int2 21:42:11 Still illegal. 21:42:23 elliott, yes that was the whole point 21:42:29 elliott: Not without some explicit casts. 21:42:30 pikhq, is it what causes the error "package require cmdline" 21:42:40 Vorpal: Yes, that's in Tcllib. 21:42:45 pikhq: s/Not w/W/ 21:44:44 Incidentally, if I had to do this all over again, I'd write it in Haskell with a proper parser. 21:44:53 And also make it LISP 21:44:59 That is shouted Lisp not retro-capitalisation Lisp 21:45:15 (as it is, PEBBLE is just Tcl with alternate words defined) 21:47:09 Man, I did love my backronyms then. 21:47:23 pikhq, what does PEBBLE stand for? 21:47:32 Practical Esoteric Brainfuck-Based Language, Eh? 21:47:53 pikhq, ah, any other backronyms or what made you say " Man, I did love my backronyms then."? 21:48:08 PFUCK, a Brainfuck compiler in PEBBLE. 21:48:11 PFUCK was a backronym too I think. 21:48:13 Ninja'd. 21:48:14 (the P is silent) 21:48:25 Ninja'd. <-- ? 21:48:26 Pebble's Fucked Up Compiler, Kay? 21:48:47 Vorpal: Yes. 21:48:51 elliott, what do you mean 21:49:10 Vorpal: pikhq said it while I was typing. 21:49:30 elliott, indeed, his message arrived 2 seconds earlier for me 21:50:40 * pikhq wonders if oerjan still has that script used to generate stdcons.bfm... 21:51:33 (stdcons.bfm, BTW, is an automated PEBBLE port of the 2-cell wrapping versions of constants from http://esolangs.org/wiki/Brainfuck_constants) 21:54:39 pikhq: have you seen lucky star 21:54:57 that shit is way more fucked up than elfen lied if you ask me 21:56:07 oklopol: No, I have not seen らき☆すた. 21:56:09 pikhq, strange... 21:56:17 pikhq, for 255 on that page: 21:56:18 - (1, 1) wrapping 21:56:18 >- (2, 2) wrapping 21:56:21 pikhq: alrighty 21:56:21 wait what 21:56:23 for the last one 21:56:34 Vorpal: Well, it uses two cells, doesn't it? :P 21:56:40 pikhq, yes but WHY 21:56:44 what is the point of that 21:56:45 Beats me. 21:58:13 pikhq, do you have any example program in PEBBLE? 21:58:19 -!- ais523 has quit (Remote host closed the connection). 22:01:48 http://sprunge.us/DSBW 22:01:56 !help 22:01:56 ​help: General commands: !help, !info, !bf_txtgen. See also !help languages, !help userinterps. You can get help on some commands by typing !help . 22:02:05 !help languages 22:02:05 ​languages: Esoteric: 1l 2l adjust asm axo bch befunge befunge98 bf bf8 bf16 bf32 boolfuck cintercal clcintercal dimensifuck glass glypho haskell kipple lambda lazyk linguine malbolge pbrain perl qbf rail rhotor sadol sceql trigger udage01 underload unlambda whirl. Competitive: bfjoust fyb. Other: asm c cxx forth sh. 22:02:16 pikhq, what is the target it compiles to? 22:02:18 - (1, 1) wrapping 22:02:18 >- (2, 2) wrapping 22:02:22 that latter one needs removing 22:02:36 elliott, there are lots of those for many of the large values 22:02:37 !sh ls 22:02:39 ​interps 22:02:40 Vorpal: PFUCK compiles to C. 22:02:50 !sh ls interps 22:02:50 ​1l 22:02:56 !sh ls interps/1l 22:02:57 ​1l_a.bin 22:02:58 And is minimally optimising. 22:03:12 pikhq, what is the file extension that should be used for pebble source? 22:03:21 .bfm 22:03:25 For hysterical raisins. 22:03:44 pikhq, brain fuck module? 22:04:49 !sh echo 'Congratulations you've beat the game!' > trap.txt 22:04:49 ​/tmp/input.29889: line 1: unexpected EOF while looking for matching `'' 22:05:09 s/module/macros/ 22:05:21 pikhq, ah 22:05:23 weird. 22:05:48 pikhq, so it is pebble.tcl or brainfucktopebble.tcl that you use? 22:05:51 !sh echo "$PATH" 22:05:52 ​/usr/local/bin:/usr/bin:/bin:/usr/games 22:05:52 pikhq, both are +x 22:06:06 !sh ls / 22:06:06 brainfucktopebble obviously converts brainfuck to PEBBLE. 22:06:06 ​bin 22:06:08 CakeProphet, why not use HackEgo instead? 22:06:13 I deduced this by not being an idiot. 22:06:22 Vorpal: hmmm? 22:06:23 elliott, oh I read it backwards somehow 22:06:31 `help 22:06:34 Runs arbitrary code in GNU/Linux. Type "`", or "`run " for full shell commands. "`fetch " downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert " can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/ 22:06:49 CakeProphet, egobot having sh too is a bit silly 22:07:05 !sh file interps/1l/​1l_a.bin 22:07:06 ​interps/1l/​1l_a.bin: ERROR: cannot open `interps/1l/​1l_a.bin' (No such file or directory) 22:07:08 pebble.tcl 22:07:13 !sh ls interps/1l/ 22:07:14 ​1l_a.bin 22:07:18 !sh ls interps/1l/ -l 22:07:18 ​/bin/ls: interps/1l/: Function not implemented 22:07:23 !sh ls -l interps/1l/ 22:07:24 ​/bin/ls: interps/1l/: Function not implemented 22:07:26 brainfucktopebble.tcl is just a stupid, pointless compiler from Brainfuck to PEBBLE. 22:07:26 what 22:07:41 pikhq, what is with stdlib/c ? 22:07:56 Alternate implementation of functions for the C backend. 22:08:09 `ls / 22:08:10 ​bin \ dev \ etc \ home \ lib \ lib64 \ opt \ proc \ tmp \ usr 22:08:17 pikhq, and stdlib/interpret for an interpreter? 22:08:26 Yeah. 22:08:30 CakeProphet, it is sandboxed. Both are. 22:08:31 `ls /usr 22:08:32 ​X11R6 \ bin \ games \ include \ lib \ lib64 \ local \ sbin \ share \ src 22:08:34 For the really, really stupid interpreter. 22:08:38 pikhq, heh 22:08:39 `ls /home 22:08:40 ​hackbot 22:08:46 `ls /home/hackbot 22:08:48 ​hackbot.hg 22:08:53 heh 22:09:00 CakeProphet, and versioned yes 22:09:20 now if only I could find something useful to do with it... 22:09:23 CakeProphet, both use this: http://plash.beasts.org/wiki/ 22:09:48 it would be cool if you could run background processes with stdin being this channel 22:10:01 `ps 22:10:03 ​PID TTY TIME CMD \ 30766 ? 00:00:00 ld-linux.so.2 22:10:24 it would be cool if you could run background processes with stdin being this channel <-- run your own bot :P 22:10:43 I've got a very poorly featured bot written in Perl at the moment 22:10:43 or on further consideration, don't 22:12:01 `find / -name '*.pl' 22:12:02 No output. 22:12:12 `find / -name '*.py' 22:12:13 No output. 22:12:57 `find / -name '*.txt' 22:12:59 No output. 22:13:03 :( 22:16:34 `run find / -name '*.txt' 22:16:35 No output. 22:16:37 hm 22:16:40 `run find / -name '*.pl' 22:16:42 No output. 22:16:43 `run find / -name '*.py' 22:16:44 No output. 22:16:47 `run find / -name '*' 22:16:48 ​/ 22:16:55 `run find / -type f -name '*.*' 22:16:56 No output. 22:16:58 eh 22:17:03 `touch test 22:17:05 No output. 22:17:08 `ls 22:17:09 ​1 \ babies \ bin \ bluhbluh \ env \ foo \ paste \ ps \ quine \ quotes \ quotese \ test \ test.c \ tmpdir.31660 22:17:12 `run find / -type f -name '*.*' 22:17:14 No output. 22:17:17 okay 22:17:25 `fine / -name *.pl -printf 22:17:26 `run which find 22:17:26 CakeProphet, I don't know why it does that, but well 22:17:27 No output. 22:17:27 ​/usr/bin/find 22:17:37 `find / -name \* 22:17:39 No output. 22:17:40 `run find / -name \* 22:17:41 `rm test 22:17:42 ​/ 22:17:43 No output. 22:17:45 just needs two>andone 22:17:49 to see errors 22:17:58 `run find / -type f -name '*.*' 2>&1 22:17:59 ​/usr/bin/find: `/': Function not implemented 22:18:03 what 22:18:13 Gregor, please explain this 22:18:59 I've never seen 2>&1 before. 22:19:11 * CakeProphet just recently learned some advanced bash stuff. 22:19:30 That 22:19:34 that is not advanced 22:19:36 CakeProphet, redirect fd 2 to fd 1 22:19:40 and yeah not advanced 22:19:43 Gregor, please explain this 22:19:44 plash 22:19:47 Explained. 22:19:50 elliott, hm probably yeah 22:20:00 elliott, weird errno for it 22:20:00 No, definitely. 22:20:17 `run rm -rf /bin 2>&1 22:20:18 ​/bin/rm: cannot remove `/bin': Function not implemented 22:20:22 heh 22:20:55 well I didn't mean to say that it was advanced, I was just explaining that I'm still learning and probably overlooked it 22:21:04 elliott, should be EACCESS not ENOSYS 22:21:22 Vorpal: it may be trying to fool software. 22:21:30 That is, malicious software, perhaps. 22:21:32 elliott, hm 22:21:38 No reason to give away the game if you don't have to. :p 22:22:06 elliott, for standard compatibility? 22:22:09 "TIL the value of a Moon Rock is $50,800 per gram and they are illegal to sell" 22:22:15 I don't think that's how value works... 22:22:22 `cd / && find . 22:22:24 No output. 22:22:34 `cd / && find . 2>&1 22:22:35 No output. 22:22:36 CakeProphet, that needs run 22:22:37 Phantom_Hoover: Black market? 22:22:42 `run cd / && find . 2>&1 22:22:43 `run cd / && find . 2>&1 22:22:44 ​. \ /usr/bin/find: `.': Function not implemented 22:22:45 ​. \ /usr/bin/find: `.': Function not implemented 22:22:48 yeah 22:23:01 CakeProphet, mutiple commands need run 22:23:15 without run you aren't doing it in sh, but plain exec() iirc 22:23:23 ah 22:23:36 well, execev or so probably 22:23:51 execv* 22:24:15 Vorpal: no, it actually only passes a single argument 22:24:18 so that addquote etc. work 22:24:28 elliott, heh 22:24:41 `type run 22:24:43 No output. 22:24:47 `run type run 22:24:48 No output. 22:24:52 `run type run 2>&1 22:24:53 ​/bin/bash: line 1: type: run: not found 22:24:55 mhm 22:25:06 elliott, I had hoped run was just eval "$1" :P 22:25:27 ..Perl? 22:25:34 CakeProphet, what? 22:25:45 oh, bash I guess. 22:25:50 yes... 22:26:26 that would, you know, make more sense. 22:27:52 that's weird that find is preventing a find on /. Why not just prevent -delete? 22:28:03 It's not find, it's plash. 22:28:08 i.e. libc. 22:28:59 How does subtraction work. 22:29:18 you add the negative of the right-hand operand. :) 22:29:55 for example, 2-1 becomes 2+(-1) 22:29:58 :P 22:30:44 How does subtraction work. <-- seriously? 22:31:27 yes. 22:31:29 HOW. 22:32:12 With our minds I guess? 22:32:31 elliott, for (i=0;i assuming two-complement 22:32:53 elliott, any questions? 22:33:15 HOW 22:33:25 elliott, please clarify 22:34:19 undefined :: (DivLoop T5 T5 qt rm) => (qt,rm) 22:34:20 :: (O (O (O Z)), O (O (O Z))) 22:34:20 GAH. 22:34:28 HOW DOES SUBTRACTION WORK 22:34:38 elliott, I told you above 22:34:49 elliott, which language is that btw? haskell? 22:35:03 Haskell type system. 22:35:10 looks like someone is trying to much around with the type system. 22:35:10 Actual typeclass I just made: SubHelperThatIsRealHelper. 22:35:20 (RealSubHelper and RealSubHelperHelper are taken.) 22:35:31 CakeProphet: Yes, I'm muching around with it a lot. 22:35:32 elliott, oh so you actually meant to ask who subtraction in the type system works? 22:35:44 in which case I don't know 22:36:05 well it certainly works me 22:36:32 -!- pikhq has quit (Ping timeout: 246 seconds). 22:36:34 SubHelperThatIsRealHelperHelper 22:36:36 it's like java 22:36:59 heh 22:37:34 elliott: as long as nothing matches /Manager/ 22:37:38 then it's still not Java. 22:37:40 managerfactorymanager 22:37:48 once you have a SubHelperManagerThatIsRealHelperHelperManager 22:37:57 then you might actually be coding in Java. 22:39:35 you know 22:39:44 I don't think the universe intended for us to write programs in type systems. 22:40:19 `ls /proc/self 22:40:20 ​attr \ auxv \ cgroup \ clear_refs \ cmdline \ coredump_filter \ cpuset \ cwd \ environ \ exe \ fd \ fdinfo \ io \ limits \ loginuid \ maps \ mem \ mountinfo \ mounts \ mountstats \ net \ numa_maps \ oom_adj \ oom_score \ pagemap \ personality \ root \ sched \ sessionid \ smaps \ stack \ stat \ statm \ status \ syscall \ task \ wchan 22:40:23 `ls /proc/self/fd 22:40:24 ​0 \ 1 \ 10 \ 11 \ 12 \ 13 \ 14 \ 15 \ 16 \ 17 \ 18 \ 19 \ 2 \ 20 \ 21 \ 22 \ 27 \ 29 \ 3 \ 4 \ 5 \ 6 \ 7 \ 8 \ 9 22:40:58 `ls -l /proc/self/exe 22:40:59 No output. 22:41:02 `ls -l /proc/self/exe 2>&1 22:41:04 No output. 22:41:06 `ls /proc/self/personality 22:41:07 ​/proc/self/personality 22:41:09 `run ls -l /proc/self/exe 2>&1 22:41:10 ​/bin/ls: /proc/self/exe: Function not implemented \ lrwxrwxrwx 1 5000 5000 0 May 28 22:41 /proc/self/exe -> /usr/bin/python2.5 22:41:16 huh 22:41:20 nice one 22:41:22 `cat /proc/self/personality 22:41:23 ​00000000 22:41:32 what a boring personality. 22:41:41 -!- pikhq has joined. 22:41:48 `run ls -l /proc/self/fd 2>&1 | tr '\n' '|' 22:41:50 ​/bin/ls: /proc/self/fd: Function not implemented|/bin/ls: /proc/self/fd/0: Function not implemented|/bin/ls: /proc/self/fd/1: Function not implemented|/bin/ls: /proc/self/fd/2: Function not implemented|/bin/ls: /proc/self/fd/3: Function not implemented|/bin/ls: /proc/self/fd/4: Function not implemented|/bin/ls: /proc/self/fd/5: 22:42:05 `run ls -l /proc/self 2>&1 | tr '\n' '|' 22:42:07 ​/bin/ls: /proc/self: Function not implemented|lrwxrwxrwx 1 0 0 64 May 28 22:16 /proc/self -> 1995| 22:42:13 `run ls -l /proc/self7 2>&1 | tr '\n' '|' 22:42:15 ​/bin/ls: cannot access /proc/self7: No such file or directory| 22:42:21 err 22:42:25 `run ls -l /proc/self/ 2>&1 | tr '\n' '|' 22:42:26 ​/bin/ls: /proc/self/: Function not implemented|/bin/ls: /proc/self/task: Function not implemented|/bin/ls: /proc/self/fd: Function not implemented|/bin/ls: /proc/self/fdinfo: Function not implemented|/bin/ls: /proc/self/net: Function not implemented|/bin/ls: /proc/self/environ: Function not implemented|/bin/ls: /proc/self/auxv: 22:42:34 `run ls -l 2>&1 | tr '\n' '|' 22:42:35 ​/bin/ls: 1: Function not implemented|/bin/ls: babies: Function not implemented|/bin/ls: bin: Function not implemented|/bin/ls: bluhbluh: Function not implemented|/bin/ls: env: Function not implemented|/bin/ls: foo: Function not implemented|/bin/ls: paste: Function not implemented|/bin/ls: ps: Function not implemented|/bin/ls: 22:42:55 Gregor, what is this non-implemented function mentioned all the time 22:43:00 `run stat bin 2>&1 | tr '\n' '|' 22:43:02 ​File: `bin'|.Size: 4096..Blocks: 8. IO Block: 4096 directory|Device: ca01h/51713d.Inode: 832795. Links: 2|Access: (0755/drwxr-xr-x) Uid: ( 5000/ UNKNOWN) Gid: ( 5000/ UNKNOWN)|Access: 2011-05-28 22:43:01.000000000 +0000|Modify: 2011-05-28 22:43:01.000000000 +0000|Change: 2011-05-28 22:43:01.000000000 +0000| 22:43:07 hm not that 22:43:19 `run ls -l /proc/self/ 2>/dev/null | tr '\n' '|' 22:43:20 ​total 0|dr-xr-xr-x 2 5000 5000 0 May 28 22:43 attr|-r-------- 1 5000 5000 0 May 28 22:43 auxv|-r--r--r-- 1 5000 5000 0 May 28 22:43 cgroup|--w------- 1 5000 5000 0 May 28 22:43 clear_refs|-r--r--r-- 1 5000 5000 0 May 28 22:43 cmdline|-rw-r--r-- 1 5000 5000 0 May 28 22:43 coredump_filter|-r--r--r-- 1 5000 5000 0 May 28 22:43 22:43:41 `run ls /proc/self/ | tr '\n' '|' 22:43:43 ​attr|auxv|cgroup|clear_refs|cmdline|coredump_filter|cpuset|cwd|environ|exe|fd|fdinfo|io|limits|loginuid|maps|mem|mountinfo|mounts|mountstats|net|numa_maps|oom_adj|oom_score|pagemap|personality|root|sched|sessionid|smaps|stack|stat|statm|status|syscall|task|wchan| 22:43:56 `run ls /proc/self 22:43:58 ​attr \ auxv \ cgroup \ clear_refs \ cmdline \ coredump_filter \ cpuset \ cwd \ environ \ exe \ fd \ fdinfo \ io \ limits \ loginuid \ maps \ mem \ mountinfo \ mounts \ mountstats \ net \ numa_maps \ oom_adj \ oom_score \ pagemap \ personality \ root \ sched \ sessionid \ smaps \ stack \ stat \ statm \ status \ syscall \ task \ wchan 22:44:00 HackEgo does it itself, dude. 22:44:21 `perl -e 'open 0; print <0>' 22:44:22 No output. 22:44:25 heh. 22:44:26 `run ls -l /proc/self/root 22:44:27 ​lrwxrwxrwx 1 5000 5000 0 May 28 22:44 /proc/self/root -> / 22:44:36 `run ls -l /proc/self/exe 22:44:37 ​lrwxrwxrwx 1 5000 5000 0 May 28 22:44 /proc/self/exe -> /usr/bin/python2.5 22:44:45 wat 22:44:56 HackEgo, buggered if I knew 22:45:05 `run cat /proc/self/cmdline 22:45:06 ` echo 'open 0; print <0>' > quine.pl 22:45:07 ​/usr/bin/python 22:45:07 No output. 22:45:16 `perl quine.pl 22:45:18 No output. 22:45:21 .. :( 22:45:37 `run cat /proc/self/cmdline | cat -e 22:45:38 ​/usr/bin/python^@/usr/bin/pola-run^@-B^@-f=/lib64^@-f=/etc/alternatives^@-f=/proc^@-f=/opt^@-tw^@/tmp^@tmpdir.2822^@-fw=/tmp/hackenv.2822^@-f=/home/hackbot/hackbot.hg/multibot_cmds/lib/limits^@--prog=/home/hackbot/hackbot.hg/multibot_cmds/lib/limits^@-a=/usr/bin/nice^@-a=-n10^@-e^@bash^@ 22:45:43 what 22:45:52 hm 22:46:03 `run cat /proc/self/cmdline | tr '\0' ' ' 22:46:03 Oh, right. 22:46:04 ​/usr/bin/python /usr/bin/pola-run -B -f=/lib64 -f=/etc/alternatives -f=/proc -f=/opt -tw /tmp tmpdir.2896 -fw=/tmp/hackenv.2896 -f=/home/hackbot/hackbot.hg/multibot_cmds/lib/limits --prog=/home/hackbot/hackbot.hg/multibot_cmds/lib/limits -a=/usr/bin/nice -a=-n10 -e bash 22:46:20 `run cat /proc/self/cmdline | tr '\0' ' ' | tail -c 20 22:46:21 ​ice -a=-n10 -e bash 22:46:24 It'll exec itself. 22:46:28 right nothing cut off 22:48:17 `ls 22:48:19 ​1 \ babies \ bin \ bluhbluh \ env \ foo \ paste \ ps \ quine \ quotes \ quotese \ test.c \ tmpdir.3130 22:48:20 elliott, I find it funny that it doesn't emulate /proc 22:49:02 `ls quine 22:49:03 ​quine 22:49:09 ..lol 22:49:17 `cat quine 22:49:18 ​`cat quine 22:49:22 Vorpal: Why would it? 22:49:23 eh 22:49:25 `rm quine 22:49:26 No output. 22:49:31 elliott, what was quine 22:49:35 `cat quine 22:49:35 ​`cat quine 22:49:37 come on 22:49:40 Vorpal: A file. 22:49:40 `cat bluhbluh 22:49:42 No output. 22:49:42 right 22:49:49 `run ls -lh bluhbluh 22:49:50 ​-rw-r--r-- 1 5000 5000 0 May 28 22:49 bluhbluh 22:50:02 `quote 22:50:02 `quote 22:50:03 `quote 22:50:03 `quote 22:50:03 `quote 22:50:04 ​312) lol @ closed character set standard "What does this codepoint represent?" "Nobody knows." 22:50:04 ​229) [...] ALWAYS OPEN TO TRYING NEW THINGS. 22:50:05 ​178) pigeons are very smart. all the known ways to show a language is not regular are based on pigeons. 22:50:06 ​392) [...] OOPS.. my cockfile got destroyed 22:50:06 ​315) Phantom_Hoover: I have just one tvtropes page open in elinks, but my tvtropes.txt "queue" has 38 tvtropes.org URLs waiting for processing. 22:50:55 `echo 'open 0; print <0>' > quine.pl 22:50:56 ​'open 0; print <0>' > quine.pl 22:51:13 use `run 22:51:16 but that is a cheat quine 22:51:21 elliott: shhh 22:51:27 `run echo 'open 0; print <0>' > quine.pl 22:51:28 `quote 22:51:29 No output. 22:51:29 `quote 22:51:29 `quote 22:51:29 `quote 22:51:30 `quote 22:51:30 ​132) I am an inherently pornographic being. 22:51:31 ​176) Never ever use a quote which contains both the words "aloofness" and "gel" (verb). 22:51:32 ​408) `quote django ​352) django is named after a person? thought it would be a giraffe or something \ 407) `quote django ​352) django is named after a person? thought it would be a giraffe or something thankfully only one thankfully only two 22:51:32 ​393) when I command it to do couple useful operations it instead mutilates my cock. 22:51:34 ​38) is there a problem with it being carbonized :D yes: carbonized coffee bean is known more commonly as "charcoal" 22:51:35 CakeProphet, how does it work? 22:51:41 CakeProphet, I don't know perl 22:53:30 Vorpal: I'm not entirely sure. But "open 0" I believe treats 0 to be a symbolic reference since there's no second argument, so it grabs the value held in $0, which is the name of the program, and saves it to the filehandle 0 because Perl can do that apparently. And then <0> is the read operator on the filehandle 0. 22:53:58 normally you use open like this: open my $fh, 'filename.here' 22:54:04 `quine.pl test 22:54:06 No output. 22:54:12 nope doesn't work 22:54:13 `perl quine.pl 22:54:15 speaking of carbonated coffee, coffee and coca cola is a nice combination 22:54:15 ​open 0; print <0> 22:54:21 ah 22:54:36 -!- hagb4rd has joined. 22:55:52 Vorpal: it's very much cheating though. 22:56:01 olsner: Er, nice :P 22:56:07 In a really horrific way. 22:56:36 hmmm, I wonder. 22:57:11 `run echo 'print ' > quine2.pl 22:57:13 No output. 22:57:17 `perl quine2.pl 22:57:19 ​open0 22:57:26 ..heh, not quite. 22:57:38 `cat quine2.pl 22:57:39 ​print 22:57:58 ...though I have no idea why it produced that output. 22:58:05 `rm quine2.pl 22:58:06 No output. 22:58:22 night 22:58:33 good night. 22:59:40 `run echo -e '#!/bin/perl\nopen 0; print ()=<0>' > quine2.pl 22:59:42 No output. 22:59:50 `run ./quine2.pl 22:59:51 No output. 22:59:55 awww 23:00:42 honestly -e should be default and -E should be the option you have to type, for echo. 23:00:58 well, maybe not. 23:01:16 since, if you're not dealing with a string literal, you'd usually want -E. 23:02:29 * augur murders Phantom_Hoover 23:03:13 Honestly, augur. 23:03:14 `rm quine2.pl 23:03:15 No output. 23:03:16 I'm already dead. 23:03:22 -!- MigoMipo has quit (Read error: Connection reset by peer). 23:03:39 -!- pikhq_ has joined. 23:03:48 o 23:03:57 `run echo -e '#!/bin/perl\nopen 0; print (()=<0>)' > quine2.pl 23:03:58 No output. 23:04:05 `perl quine2.pl 23:04:06 No output. 23:04:45 oh wait, duh. 23:04:59 `run echo -e '#!/bin/perl\nopen 0; print while <0>' > quine2.pl 23:05:01 No output. 23:05:08 `perl quine2.pl 23:05:10 ​#!/bin/perl \ open 0; print while <0> 23:05:53 * pikhq_ wonders if the BIOS in this motherboard can be replaced with OpenBIOS. BIOSes suck. 23:06:11 in my experience, the answer to that has been 'no'. 23:06:38 Erm. s/OpenBIOS/coreboot/ 23:06:41 That's what I actually meant. 23:06:50 -!- pikhq has quit (Ping timeout: 264 seconds). 23:06:55 And probably "no", but you can hope. 23:06:57 BIOSes suck. 23:06:58 AMD To Support Coreboot On All Upcoming Processors - Slashdot 23:07:00 How... useful :P 23:07:06 If they had said "motherboards" :P 23:07:13 It's supposed to be chipsets. 23:07:15 (I realise there are probably actual incompatibilities but still.) 23:07:25 Slashdot just fucked it up. 23:07:28 I wonder if "support" means they'll give you tech support for it :-) 23:08:12 `run wget -O quine3.pl 'http://www.perlmonks.org/bare/?abspart=1;displaytype=displaycode;node_id=119526;part=1' 23:08:14 No output. 23:08:33 `wget --help 23:08:35 ​GNU Wget 1.11.4, a non-interactive network retriever. \ Usage: wget [OPTION]... [URL]... \ \ Mandatory arguments to long options are mandatory for short options too. \ \ Startup: \ -V, --version display the version of Wget and exit. \ -h, --help print this help. \ -b, --background go to 23:08:36 CakeProphet: `fetch 23:08:59 `fetch --help 23:09:07 It is just `fetch url. 23:09:13 -!- quintopia has joined. 23:09:17 -!- quintopia has quit (Changing host). 23:09:18 -!- quintopia has joined. 23:09:18 and then you use > ? 23:09:47 `run fetch 'http://www.perlmonks.org/bare/?abspart=1;displaytype=displaycode;node_id=119526;part=1' > quine3.pl 23:09:49 GNU Wget 1.11.4, a non-interactive network retriever. Usage: wget [OPTION]... [URL]... Mandatory arguments to long options are mandatory for short options too. Startup: -V, --version display the version of Wget and exit. -h, --help print this help. -b, --background go to background after startup. -e, --execute=COMMAND execute a `.wgetrc'-style command. Logging and input file: -o, --output-file=FILE log message 23:10:07 CakeProphet: No. 23:10:09 "`fetch url". 23:10:10 That is it. 23:10:16 You can use mv afterwards. 23:10:23 ... Oh, hey. Some people complained at the motherboard vendor about bugs that were tripping up Linux, and they actually fixed it. 23:10:35 lies 23:10:36 `run fetch 'http://www.perlmonks.org/bare/?abspart=1;displaytype=displaycode;node_id=119526;part=1' 23:10:38 No output. 23:10:39 elliott: lame 23:10:43 `ls 23:10:44 ​1 \ babies \ bin \ bluhbluh \ env \ foo \ paste \ ps \ quine.pl \ quine2.pl \ quine3.pl \ quotes \ quotese \ test.c \ tmpdir.6174 23:10:52 man. 23:10:56 CakeProphet: No quotes. 23:10:57 it feels so weird to have money 23:10:58 And no `run. 23:11:01 Please listen to what I actually say. 23:11:28 pikhq: that is one redeeming feature about your country 23:11:32 `fetch http://www.perlmonks.org/bare/?abspart=1;displaytype=displaycode;node_id=119526;part=1 23:11:34 2011-05-28 23:11:33 URL:http://www.perlmonks.org/bare/?abspart=1;displaytype=displaycode;node_id=119526;part=1 [87] -> "index.html?abspart=1;displaytype=displaycode;node_id=119526;part=1" [1] 23:11:35 elliott: never 23:11:47 `ls 23:11:49 ​1 \ babies \ bin \ bluhbluh \ env \ foo \ index.html?abspart=1;displaytype=displaycode;node_id=119526;part=1 \ paste \ ps \ quine.pl \ quine2.pl \ quine3.pl \ quotes \ quotese \ test.c \ tmpdir.6313 23:12:04 `run mv *index quine3.pl 23:12:05 No output. 23:12:11 `cat quine3.pl 23:12:13 No output. 23:12:26 ..oh, lol 23:12:33 `run mv index* quine3.pl 23:12:34 No output. 23:12:37 `cat quine3.pl 23:12:38 ​syntax error at =# line 2, at EOF. \ Execution of =# aborted due to compilation errors.. 23:12:50 `perl quine3.pl 23:12:51 No output. 23:12:57 they LIED. 23:13:52 `perl quine3.pl 2<&1 23:13:53 No output. 23:14:07 `run mv *index quine3.pl 23:14:11 wrong location of- 23:14:13 oh you fixed it 23:14:19 CakeProphet: fail 23:14:22 it's > not < 23:14:35 "AMD made their platform code work for coreboot. That is, the same code they ship to board and BIOS makers, they release to coreboot, and even went the extra mile to integrate it. 23:14:35 Intel doesn't support coreboot. In fact, they hinder us and we'll have to get each bit of information out of the hardware or by massive coercion. Every support of Intel hardware in coreboot exists despite Intel's efforts." 23:14:36 pikhq_: Aweome. 23:14:44 `perl quine3.pl 2>&1 23:14:46 No output. 23:15:28 elliott: would help if I understood what it is. Is it (2)>(&1) or is it 2(>&)1 or....? 23:15:56 Former. 23:16:08 I'm guessing 1 is fd for stdout and 2 is for stderr. I've never seen &1 though. 23:16:13 The syntax is [source]>[destination]. source, when omitted, defaults to one (stdout). 23:16:15 Destination is usually a file. 23:16:20 So 2>foo.txt works. 23:16:26 Prefixing an ampersand means "to an fd, not a file". 23:16:34 ah 23:17:23 in any case this syntax error is not a quine. 23:17:30 or I'm doing something wrong. 23:17:31 `perl quine3.pl 2>&1 23:17:31 Fail. 23:17:40 Use `run for sh. 23:17:44 oh right 23:17:46 What you did was perl 'quine3.pl 2>&1'. 23:17:55 `run perl quine3.pl 2>&1 23:17:56 ​syntax error at quine3.pl line 2, at EOF \ Execution of quine3.pl aborted due to compilation errors. 23:18:02 there we go. :P 23:18:08 the best quine of all. 23:18:16 except the # needs to be changed to the file name 23:18:54 #=, even 23:21:17 `run perl -pi 's/#=/quine3.pl/g' quine3.pl 23:21:19 No output. 23:21:27 `cat quine3.pl 23:21:28 ​syntax error at =# line 2, at EOF. \ Execution of =# aborted due to compilation errors.. 23:21:36 `run perl -pi 's/=#/quine3.pl/g' quine3.pl 23:21:37 No output. 23:21:39 `cat quine3.pl 23:21:40 ​syntax error at =# line 2, at EOF. \ Execution of =# aborted due to compilation errors.. 23:21:55 ...I see 23:22:36 `run perl -pie 's/=#/quine3.pl/g' quine3.pl 23:22:38 No output. 23:22:45 `cat quine3.pl 23:22:47 ​syntax error at =# line 2, at EOF. \ Execution of =# aborted due to compilation errors.. 23:22:58 I apparently no nothing about Perl's command line options. 23:23:02 *know even 23:24:05 `run perl -pi -e 's/=#/quine3.pl/g' quine3.pl 23:24:06 No output. 23:24:14 `cat quine3.pl 23:24:15 ​syntax error at quine3.pl line 2, at EOF. \ Execution of quine3.pl aborted due to compilation errors.. 23:24:18 ah 23:24:39 -!- xps has joined. 23:24:43 * CakeProphet is no pleased with this waste of time, and does something else that is equally pointless. 23:24:50 *now .... 23:25:54 `run quine3.pl 23:25:55 No output. 23:26:00 `run perl quine3.pl 23:26:02 No output. 23:26:05 yeah it's stderr 23:26:10 CakeProphet: replace the newline in it with " \ " for extra points :D 23:26:20 ... What the *hell*? 23:26:47 pikhq_: ? 23:26:55 wodim, stop trying to write with my DVD-ROM drive. 23:27:12 Woe di me. 23:27:22 elliott: eh, since HackEgo uses \ for \n I don't see anything wrong with leaving it as is. 23:27:30 CakeProphet: it's not a _proper_ quine :D 23:27:38 nonsense. 23:27:42 Also, Debian, would it kill you to symlink your forked shit to cdrecord/mkisofs/cdda2wav? 23:27:48 pikhq_: Debian testing is still on Haskell Platform 2010.1.0.0.1. 23:27:48 Lame. 23:27:50 Y'know, like anyone sane would expect? 23:27:53 properness is for stuffy British gents 23:28:03 pikhq_: And thus GHC six. 23:28:28 * CakeProphet is an American. We don't play by the rules. 23:28:37 Ahahaha, the release manager of wodim is also called Joerg. 23:29:35 -!- xps has quit (Remote host closed the connection). 23:29:52 MacFUSE is a dead project. Nice. 23:30:00 (Author works on proprietary competitor now.) 23:30:06 so was using perl -pi -e the best option or is there some other magic I could use in those situations? 23:30:10 But a guy on the tup list forked it. :p 23:30:15 CakeProphet: sed -i 23:30:21 * CakeProphet is developing his leet sysadmin skills or whatever. 23:30:26 * pikhq_ needs a new CD burner. This thing sucks. 23:31:25 CakeProphet: -pie works just fine, btw. 23:31:26 rather than -pi -e. 23:31:47 it didn't work for some reason. 23:31:59 Hmm. 23:33:08 ah, but I'll have to try using sed sometimes. Seems slightly more convenient for that kind of thing 23:33:44 s/// is exactly the same in sed bt the regexps are less powerful :P 23:34:06 is it at least the same syntax... or is it more like emacs-style? 23:34:12 It's the same syntax... and what? 23:34:23 is it incredibly stupid, in other words. 23:34:30 but you answered my question, so nevermind. :) 23:35:01 So you're not liking emacs, eh. 23:35:09 no emacs is fine. I just don't like its regex 23:35:30 Well you need some more backslashes with sed, yes. 23:35:34 But it still uses s///. 23:35:40 And it's \ rather than [dollar] for backrefs. 23:35:42 I'm like emacs for the most part. It's still a little awkward to use, but I enjoy being able to make windows. 23:36:25 and I've recently starting doing magical things. 23:36:28 *started 23:36:33 my typo rate is ridiculous today. 23:39:53 for example C-a C-k is pretty handy. And C-a C-space C-e C-w 23:40:27 but actually, C-k does the same thing as the second one right? 23:42:40 undefined :: (DivLoop T5 T5 qt rm) => (qt,rm) 23:42:40 :: (SubHelperThatIsRealHelperHelper b (O Z) m2, 23:42:40 SubHelperThatIsRealHelper m' m1, 23:42:40 SubHelperThatIsRealHelper m'1 m, 23:42:40 Equals Z b1 b, 23:42:43 SubHelper (O (I Z)) (O (I Z)) m2 m', 23:42:44 SubHelper (I (O (I Z))) (I (O (I Z))) m1 m'1, 23:42:46 DivHelper m (I (O (I Z))) (I (O (I Z))) qt rm) => 23:42:49 (qt, rm) 23:42:50 Fuck. 23:43:06 Where's that from 23:43:43 Deewiant: My code. 23:43:52 elliott: perhaps this is an indication that you shouldn't be doing this craziness. ;) 23:43:53 What code 23:44:03 Deewiant: It's a snowman in disguise. 23:44:26 Cleverly disguised 23:44:48 Yes. 23:44:49 Very. 23:44:54 -!- zzo38 has joined. 23:45:38 -!- pikhq_ has quit (Remote host closed the connection). 23:45:58 I like how you have no indication of which typeclass is failing. 23:46:04 Oh here we go. 23:47:29 elliott: perhaps if you write a Haskell compiler in Haskell types you can implement better error messages. 23:48:36 X-D 23:48:37 Totally. 23:50:16 * Phantom_Hoover → sleep 23:50:19 -!- Phantom_Hoover has quit (Quit: Leaving). 23:50:43 VACUOUS 23:53:47 what, Perl has a printf? why? 23:53:58 I guess for padding? 23:54:26 -!- pikhq has joined. 23:54:28 printf is sometimes useful, actually, even in things like Perl and whatever, I think. 23:55:54 Although, I have worked a bit with Python (but not much) and I think the % operator on strings acts like sprintf? I don't really know, though. 23:56:00 -!- augur has quit (Remote host closed the connection). 23:56:23 zzo38: yes it does. 23:57:31 except sprintf is in-place I believe, and Python's % is not 23:57:36 %= is though 23:58:12 I would be surprised if Perl's sprintf was in-place. 23:58:16 In C, sprintf first takes a destination parameter (of type char*) and then the format string, and then the values to sbustitute into %s and that kind of stuff. 23:58:48 ah 23:58:50 Since these kind of scripting languages do not work that way, it would just return the new value instead