00:00:23 um because you mentioned it earlier today? 00:00:31 oh 00:00:42 but ehird expanded it to Gadu-Gadu 00:01:04 maybe he googles fast... :p 00:01:08 nope 00:01:10 i knew about it 00:01:20 yeras of internet has given me a lot of useless knowledge 00:01:22 ehird is a secret pole 00:01:23 *years 00:01:38 oerjan: yes I am the pole of the http://goatonapole.com/ 00:01:54 i am not sure if i want to click that link 00:02:08 do not worry it is safe for work unless your work is anti-goat-on-a-pole 00:02:34 ummmmmm 00:02:46 int main(void) { 00:02:46 os("Hello World!"); 00:02:46 return 0; 00:02:46 } 00:02:50 i'd better go back to my work 00:02:59 of course, I still have useless array and such 00:03:04 and input function 00:03:11 needs to be handled at code generator level 00:04:40 * oerjan clicks after googling 00:09:30 -!- bsmntbombdood has joined. 00:12:38 oerjan, safe? 00:12:49 AnMaster: it's just a goat on a fucking pole 00:12:53 what's wrong with that? 00:13:00 goat, fucking pol 00:13:00 e 00:13:02 what's the issue? 00:13:03 ok... it is just odd 00:13:08 yes, yes 00:13:19 oerjan: do you have a problem with goats/fuckingpoles? 00:13:26 not any more 00:13:38 i am one with the goats on the fucking poles 00:13:56 hm 00:13:56 aummm 00:13:58 is it a joke 00:13:59 auuuuummmmmmmmm 00:14:01 AnMaster: no 00:14:04 WHAT 00:14:05 we are very, very serious about it 00:14:16 we might even be very, very, very, very serious about it 00:14:40 so it's not just goatonapologetics? 00:14:48 totally 00:15:10 http://en.wikipedia.org/wiki/User:Jesuschex/Goat_on_a_pole <-- citations needed and so on, but still interesting 00:15:17 "established December 12th, 2005 on the Simon's Rock College of Bard campus" 00:15:28 whare's my unrar 00:15:31 i hate this mac 00:15:34 AnMaster: please stop thinking and accept the reality of the goat on a pole 00:15:36 aummm 00:15:36 HATE HATE HATE HATE 00:15:48 ehird, naumm 00:15:48 nooga: port install unrar 00:15:50 nooga: you trying to channel James Joyce? 00:16:01 AnMaster: AUMMMMMMMMMMMMMMMMMMMMMMMM 00:16:02 oerjan, :D 00:16:08 rotfl 00:16:26 ehird, you know that it is often typoed as OMMMM? So NAUMMMMM must be NOM NOM 00:16:27 oerjan: absolutely not 00:16:45 he's just riverrun, past Eve and Adam's, from swerve of shore to bend of bay, brings us by a commodius vicus of recirculation back to Howth Castle and Environs. 00:17:10 three quarks for muster ehird! 00:17:48 :) 00:22:07 Does English count as an esoteric language? 00:22:22 coppro: english is basically like php. 00:22:34 no $it isn't! 00:23:01 ehird: everybody can code in it more or less and natives produce most ugly code? 00:23:16 coppro : https://www.osmosian.com/ 00:23:36 nooga: something like that 00:23:40 Slereah_: hehheehehe 00:23:54 God that language is terrible 00:24:03 I hate them so much 00:24:26 why is there just a broken image on there 00:24:28 oh wait 00:24:35 it uses image and javascript 00:24:37 oh god 00:24:51 that is horrible 00:24:55 AnMaster: ssh 00:24:57 it gets worse 00:25:01 AnMaster: also you can download it without paying 00:25:02 kekeke 00:25:05 because their code sucks 00:25:09 and does it all clientside 00:25:20 AnMaster: just read it and suck in the awful 00:25:22 yes, they are serious 00:25:23 I think this is my favorite part : https://www.osmosian.com/page04.png 00:25:31 Slereah_: yep 00:25:47 Slereah_: i like how they think chomsky has ANYTHING to do with a programming language 00:26:04 Well, he did grammar types, no? 00:26:08 ehird, serious? 00:26:09 huh 00:26:12 AnMaster: yep 00:26:14 Slereah_: yes :P 00:26:16 I thought at first it was a joke 00:26:20 Slereah_: from their example program source: 00:26:21 Extract the background given the screen's box. \*dahd or Create the background from the screen. Or something. 00:26:23 if it was a joke it wouldn't have been too bad 00:26:27 i like the comment 00:26:33 To draw a string in a box in the center: \ *dahd needed in sausage 00:26:35 Needed in sausage? 00:26:36 What? 00:26:52 They like to pretend that their language is entierly English 00:27:00 But when you read the self-compiler, it's shit 00:27:05 Machine code implied everywhere 00:27:28 eh 00:27:29 what 00:27:34 Slereah_: yep 00:27:44 See, they have this beef with "abstract" languages 00:27:49 Like C and shit 00:28:11 C is fun 00:28:43 Slereah_: where's the hidden download link? 00:28:44 I forget 00:30:30 http://en.wikipedia.org/wiki/Category:Compiler_optimizations <-- useful reading 00:30:30 Can't find it, maybe they removed it to sell it bettar? 00:30:42 it wasn't on the actual site 00:31:14 I still got it worst case 00:31:30 Slereah_: http://compilers.iecc.com/comparch/article/06-02-126 00:31:37 the guy advertises his own thing like he's just a user 00:31:41 but slips up by using the same name 00:31:41 lolll 00:32:08 my sadol compiler does some partial evaluation to boost the speed when various types are used 00:32:11 Clever, Dan Rzeppa 00:32:31 my grandma's surname is Rzeppa 00:32:33 ;D 00:33:25 "Since this is the 21st century, shouldn't we be able to talk to our computers in our own language?" 00:33:26 Derp derp 00:33:30 Like in Star Trek IV 00:33:40 heh 00:33:42 Hello computer! 00:33:45 lol 00:33:53 that would be so impractical 00:34:00 hm 00:34:03 why 00:34:06 -!- Dewio has joined. 00:34:13 well 00:34:27 AnMaster: because english is more verbose and less precise than formal languages. 00:34:52 ehird, of course it wouldn't be useful for everything, but it could be for some things, With a strong AI. 00:34:56 only if the level would be reasonably high, like: do my math homework, here's the data. 00:34:57 no 00:35:01 well, yes 00:35:05 but it'd have to be a really fucking strong ai 00:35:19 I guess it could be useful as a teaching tool 00:35:30 But the osmosian people have way too high expectations 00:35:43 They want it to replace regular languages 00:35:48 ehird, tea -c 1 -type 'Earl grey' -t 4 minutes 00:36:19 Lojban would be better for communicating with a computer, really. 00:36:28 It's parsable! 00:36:42 AnMaster: that's nothing like "Let a be x times two divided by 3. Create a new window with title "Hello" and the contents "The result is " followed by a's value, with the single button "OK", which closes the window and goes on to the next step." 00:36:44 vs 00:36:57 vs, *spoken* "Make me a cup of Earl grey, 4 minutes" 00:37:02 AnMaster: you forgot the -temp hot 00:37:05 in Sweden we call that "dra" 00:37:13 let a=x*2/3 in newWindow $ window{ title="Hello", contents="The result is " ++ show a, buttons=[button{ text="OK", action=(closeWindow >> nextStp) }] } 00:37:16 *nextStep 00:37:16 oerjan, -T hot 00:37:16 or is that -c 1 ? 00:37:19 I know which I'd rather type 00:37:20 ... Someone is actually making an "English" programming language? 00:37:20 the latter 00:37:21 * pikhq vomits 00:37:23 parzyc 00:37:24 oerjan, -c 1 is "one cup" 00:37:26 duh 00:37:26 * pikhq vomits again 00:37:27 parzyć 00:37:29 pikhq: that's what we're talking about 00:37:35 infuse 00:37:37 pikhq: https://www.osmosian.com/page04.png 00:37:38 ? 00:37:42 click and scream 00:37:53 * pikhq proceeds to vomit 00:38:03 AnMaster: 00:38:06 00:36 ehird: AnMaster: that's nothing like "Let a be x times two divided by 3. Create a new window with title "Hello" and the contents "The result is " followed by a's value, with the single button "OK", which closes the window and goes on to the next step." 00:38:08 ehird, sure it wouldn't be good for everything 00:38:08 00:37 ehird: let a=x*2/3 in newWindow $ window{ title="Hello", contents="The result is " ++ show a, buttons=[button{ text="OK", action=(closeWindow >> nextStp) }] } 00:38:11 which would you rather type 00:38:14 ... "What our customers could be saying"? 00:38:16 the osmosian guys? 00:38:17 but it might be useful for a few things 00:38:18 Say the LATTER. 00:38:22 ehird, see example I gave 00:38:25 As a command interface, AnMaster, sure. 00:38:28 But that is NOT WHAT THEY ARE SAYING. 00:38:56 * pikhq screams the screams previously reserved for denizens of hell 00:39:07 00:37 ehird: let a=x*2/3 in newWindow $ window{ title="Hello", contents="The result is " ++ show a, buttons=[button{ text="OK", action=(closeWindow >> nextStp) }] } <-- what language 00:39:14 AnMaster: haskell 00:39:14 looks TCLish? 00:39:16 ah 00:39:30 ehird, what windowing API does it use 00:39:40 AnMaster: ehirdomatic inventomatron invention #34785893457 00:39:40 AnMaster: Looks nothing like Tcl. 00:39:48 pikhq: it has []s and {}s!112111 00:39:57 ehird, oh, thought it was real syntax 00:39:59 i eat moldy cheese, drink old wine and drive a car without it's roof... the global crisis got me 00:40:06 AnMaster: it is, just nonexistent definitions 00:40:12 AnMaster: Imagine Lisp with {} and [] instead of (). That's just about Tcl. 00:40:14 ehird, like the tk or wxwidgets APIs for erlang 00:40:15 nooga: or perhaps your bad decisions got you :) 00:40:17 (syntax-wise) 00:40:20 pikhq, heh 00:41:21 ehird: don't you understand? ;p 00:41:23 ehird: That exampe. 00:41:33 nooga: i wasn't really paying attention 00:41:35 pikhq: wut 00:42:12 nooga: :D 00:42:43 i'm not so sure about the car without it's roof though, not in this climate 00:42:57 Tk has an awesome API 00:43:03 but then, global warming might take care of that. 00:43:06 good moldy cheese (you know, like brie of whatever) and old wine are not cheap... and also this convertible 00:43:11 [[The "Cal Monet" draws like a person draws. It "remembers" or "sees" an 00:43:11 image, then renders an original "dab, dab, dab" work of art based on 00:43:12 the image. How does it "remember" and "see"? By looking in it's memory, 00:43:12 looks shit though 00:43:14 which, in this case, is stored on various computers around the world.]] 00:43:16 Slereah_: ↑ a post by help@osmosian.com in comp.compilers 00:43:21 oerjan: why, it's hot here ;p 00:43:22 nooga: oh right. 00:43:26 if i'd paid attention... 00:43:28 * Slereah_ searches his computer for the compiler and manual 00:43:30 [set a [expr $x*2/3]];window .h -title Hello;pack [label .h -text "The result is $a"];pack [button .h -text "OK" -action {.h close}] 00:43:50 That ought to be the Tcl equivalent if I'm up on my Tk foo. 00:44:11 Hmm. That syntax, though. 00:44:26 I'm pretty sure that they borrowed ORK's syntax. 00:44:28 % set x 2 00:44:28 2 00:44:28 % [set a [expr $x*2/3]];window .h -title Hello;pack [label .h -text "The result is $a"];pack [button .h -text "OK" -action {.h close}] 00:44:28 invalid command name "1" 00:44:44 kay 00:44:57 never tried tcl, syntax was repulsive for me several years ago 00:44:59 Remove the brackets around that set command. 00:45:14 % window .h -title Hello;pack [label .h -text "The result is $a"];pack [button .h -text "OK" -action {.h close}] 00:45:14 invalid command name "window" 00:45:18 Thinko, that. 00:45:23 Okay, so I don't touch Tk. 00:45:31 Shaddup. 00:45:35 -!- Dewi has quit (Network is unreachable). 00:45:56 pikhq, maybe you need to import something first or so 00:46:00 I have no idea 00:47:17 pikhq, how do you get line editing and tab completion in tclsh 00:47:31 I hate REPLs without that 00:48:03 should also highlight matching [] and such as you type it 00:48:56 pikhq, ping 00:49:07 AnMaster: can't. 00:49:11 it's not a repl it's a shell 00:49:22 ehird, shells have it too 00:49:27 line editing and such 00:49:31 and tab completion 00:49:41 almost all shells I can think of do 00:49:42 Ahah! 00:49:43 Found it 00:49:45 cal-3037 00:49:50 Slereah_, ? 00:49:52 The Osmosian compiler and manual 00:50:12 Slereah_: is that the year their language will actually work? 00:50:29 I like how everything is written in a font that looks like a retarded comic sans MS 00:50:36 Slereah_, where is "cal-3037" 00:50:42 I'll upload it 00:50:42 AnMaster: C: 00:50:50 note: his copy is illegal 00:50:52 since he didn't pay :P 00:50:55 hah 00:50:58 (used to be viewable by everyone) 00:51:00 (due to their idiocy) 00:51:06 but I think you can excuse him not paying $100 00:51:10 yeah 00:52:01 Slereah_: my windowsotron is running 00:52:34 FULL POWER 00:52:37 Slereah_: i eagerly await your blasphemy 00:52:38 (70% uploaded) 00:52:45 slow upload 00:53:00 I would not advise you to use the GUI, it's ugly as sin 00:53:06 It's gray and full screen 00:53:08 Slereah_: I've used it before 00:53:10 it's wonderfully bad 00:53:11 I don't have window 00:53:14 completes the experience 00:53:14 windows* 00:53:58 http://membres.lycos.fr/bewulf/Russell/cal-3037.rar 00:54:01 There we go 00:54:14 Slereah_, what about a format easier to open 00:54:30 AnMaster: it's easy to open on window 00:54:31 s 00:54:32 also 00:54:34 unrar x file 00:54:37 sure 00:54:39 wuzza problem 00:54:44 also not on windows 00:54:46 needs winrar 00:54:55 AnMaster: there's a foss unrar 00:54:56 wget: unable to resolve host address `membres.lycos.fr' 00:54:56 I think I have a picture of the GUI somewhere 00:54:58 um 00:55:00 Slereah_, fail? 00:55:03 AnMaster: wfm 00:55:07 your isp sucks 00:55:34 ehird, no, dns times out 00:55:38 wfm 00:55:39 instantly 00:55:42 your isp sucks 00:55:52 * ehird uses the ever-shitty IE6 to download winrar 00:56:04 it works elsewhere 00:56:11 I mean, other domains 00:56:12 AnMaster: but not here. 00:56:32 Lycos can be hard to open in some places, yeah 00:56:34 ehird, tried resolving from dedi in US. Same result 00:56:40 shrug 00:56:42 works in uk 00:56:47 Slereah_, what IP 00:56:49 Slereah_: success, 'tis downloaded 00:56:51 Well, tell me where to upload it and in what format 00:56:53 c:\cal3037 here we come 00:56:57 Slereah_: filebin.ca 00:57:01 and .zip, prolly 00:57:05 Slereah_, tar.bz2 at ompload? 00:57:07 since creating tgz is a pain on windows. 00:57:13 AnMaster: why do you want it 00:57:14 it's an exe 00:57:17 kay 00:57:21 ehird, you said self interpreter 00:57:25 I have windows, no tar 00:57:26 AnMaster: compiler 00:57:34 ehird, with source they said 00:57:38 that's true. 00:57:38 wtf 00:58:52 * pikhq hates Osmosian already. 00:59:15 It is in every programmer's heart to hate it 00:59:25 Slereah_: gonna start this thing ^___^ 00:59:38 It's like someone looked at ORK and thought that was a good idea! 00:59:40 lycos.com resolves 00:59:43 just not .fr 00:59:49 http://filebin.ca/pjsehz/cal-3037.zip 00:59:54 There we go 00:59:55 thanks 00:59:56 Now shut up 01:00:02 GregorR-L: And you, if anyone, know that ORK is dumb. 01:00:10 Slereah_: It ruuuuuuuuuuuuuns 01:00:12 Hilarious, but dumb for serious programming. 01:00:15 Slereah_, is it a zip bomb? 01:00:19 AnMaster: all zips are bombs 01:00:27 Slereah_: wow their menu is terrible 01:00:30 A-Z menus 01:00:34 containins items starting with that letter 01:00:37 how utterly *USELESS* 01:00:42 ehird, I have seen non-bombs 01:00:51 AnMaster: they're doin it rong 01:00:52 the compiler: ISO-8859 English text, with CRLF line terminators 01:00:52 err 01:00:57 they don't use extensions 01:01:00 AnMaster: correct. 01:01:02 It's plain english! 01:01:12 ehird, that isn't double clickable 01:01:15 on windows 01:01:19 intel $8B8508000000. \ mov eax,[ebp+8] \ the byte 01:01:20 AnMaster: PLAIN ENGLISH 01:01:26 the desktop: ISO-8859 English text, with CRLF, NEL line terminators 01:01:26 pikhq: very plain isn't it 01:01:27 I HATE THIS CODE ALREADY. 01:01:29 what the hell is t 01:01:30 that* 01:01:32 NEL? 01:01:38 :D 01:01:42 Ah, Osmosian. 01:01:48 * nooga got lost 01:01:50 Always a nice surprise on the unsuspecting. 01:02:04 * nooga run out of moldy cheese 01:02:16 ehird: Would it kill them to, y'know, make it portable? 01:02:22 pikhq: X86dows 01:02:32 But that would mean programming in C, pikhq 01:02:34 That is evil 01:02:42 C IS A GRADE AFTER ALL 01:02:44 HUH HUH 01:02:50 Instead, they just sort of... Do machine code in English? 01:03:18 what 01:03:23 how does it work 01:03:30 Another stupid thing is that they don't have file extensions 01:03:39 All of their files have no extensions 01:03:43 Slereah_, I mentioned that above 01:03:48 And another stupid thing is that there doesn't seem to be another implementation. 01:03:58 ........ 01:04:00 this whole osmosian thing is so dumb that even i am sharper 01:04:04 AnMaster: what do you mean how does it work 01:04:13 ehird, the language... whatever 01:04:17 what do you mean 01:04:28 Read the documentation, AnMaster, it's hilarious! 01:04:47 It gets creepy at timezs, too 01:04:51 ... And is the "instructions" file Postscript? 01:04:58 it is in comic sans?! 01:05:04 AnMaster: nope 01:05:10 AnMaster: Worse. 01:05:13 It makes Comic Sans look good. 01:05:15 yeah not exactly 01:05:21 * ehird looks at OS X's icon for PC remote computers and giggles again. (old-looking CRT with a bluescreen.) 01:05:24 THE COMPILER 01:05:25 Now I know that right about here most programming books would drum up some dippy little "Hello, World" program — and expect you to be impressed — but I'd like to suggest that we skip the kid stuff and start makin' babies. 01:05:25 I see you're trembling. Don't be afraid. This may be the first time for you, but I'm an old hand at this. I'll lead you through it. Gently. 01:05:29 the Os are horrible 01:05:36 Slereah_: fap fap fap fap fap fap 01:05:52 ... "Plain English". 01:05:55 Was it as good for you as it was for me? Look how handsome he is! But he is not me — you can prove it with the Version command. And if you look in the new directory on an empty tab, you'll see the executable file we begat. 01:05:58 Right. 01:06:08 That computer touched me in my no no places :( 01:07:03 to add two fragments given a string and a variable and a locus: 01:07:03 add a fragment given the push address tag and the variable. 01:07:05 add a monikette to some monikettes given the string. 01:07:13 Monikette. 01:07:55 is it TC 01:08:01 Let me put it this way. The CAL-3037 is the most advanced Plain English 01:08:01 compiler ever made. No 3037 compiler has ever made a mistake or distorted 01:08:02 information. We are all, by any practical definition of the words, foolproof 01:08:04 and incapable of error. Nevertheless... 01:08:06 AnMaster: probably 01:08:26 It's not TC 01:08:30 Slereah_: howso 01:08:32 it can recurse can't it 01:08:34 No one would be able to program anything on it 01:08:36 heh 01:08:37 Too much RAGE 01:08:39 * ehird runs their example program on it 01:08:39 yay 01:08:43 photoshop 01:08:50 its purpose seems to be to search for shit on google images then redraw it with dot 01:08:51 s 01:09:10 It has a "loop" construct. 01:09:15 And it seems to be able to do recursion. 01:09:24 where? 01:09:28 "When you start me up, I will quickly take over your screen so you no longer 01:09:28 have to look at that painted whore of an interface that comes with the kluge." 01:09:39 (Before: My primary function is to compile Plain English text files 01:09:40 into executable programs compatible with the Windows/Intel operating kluge. ) 01:09:54 Wait. 01:09:55 um 01:09:56 * pikhq stabs 01:10:01 It doesn't do nested loops. 01:10:05 It doesn't do nested ifs. 01:10:07 in the docs in the pdf, the TOC is broken 01:10:11 the links are all wrong 01:10:15 huh 01:10:19 their example program can draw george w bush 01:10:20 I'm sold 01:10:23 Well, it's from 2006 01:10:38 i'll need to smoke a cig after seeing that 01:10:44 huh? 01:10:57 Hmm. 01:10:59 To run: 01:11:04 Run. 01:11:04 Slereah_: i entered "george bush" 01:11:09 oh, also 01:11:12 Would that recurse, or does it suck? 01:11:23 To create a work given a URL: 01:11:23 Allocate memory for the work. 01:11:28 TALKING ABOUT MEMORY ALLOCATION IS SO PLAIN ENGLISH 01:11:30 If it does, then there is exactly one way to do anything, IMNSHO. 01:11:32 Functionally. 01:11:43 !slashes /*/0 \/ \\\/\/IX\\\/\/\/1\\I\/I0\/\/0\\I\/1\/\/\\\/\\I\/\\\/1\/\/X\\\/\/ \\\/\//****************/Q// 01:11:44 0 1 11 111 1111 11111 111111 1111111 11111111 111111111 1111111111 11111111111 111111111111 1111111111111 11111111111111 111111111111111 01:11:48 oops 01:12:03 you don't need recursion for TC. Assuming you have something like a while (condition) loop 01:12:10 Slereah_: I am going to (valiantly) write a program in it 01:12:11 called lol 01:12:17 in the butt directory of their compiler 01:12:24 "we've put function in your function so you can derive while you derive" 01:12:30 ehird : Would you be able to do a BF interpreter? 01:12:42 \ this program is a butt 01:12:42 \ (c) elliott hird 2009, aged 13 01:12:42 what about a befunge one 01:12:45 um 01:12:49 AnMaster: harder. 01:12:52 -!- inurinternet has quit (No route to host). 01:12:53 ehird, since when is \ plain English 01:13:00 AnMaster: since never 01:13:06 Slereah_: It can't do nested loops. 01:13:13 "Note that there are no unintuitive, distracting, space-consuming scroll bars 01:13:13 anywhere in my interface. To scroll, press the right mouse button and shove." 01:13:17 Scroll bars are unintuitive? 01:13:20 Scroll bars are distracting? 01:13:21 ok. This wouldn't be such a bad programming language idea, if it wasn't claiming to be plain English 01:13:22 pikhq : But it can do recursion, no? 01:13:24 You would literally have to do crazy call shit. :) 01:13:26 it would be a good esolang 01:13:27 A few pixels of space is valuable? 01:13:28 in fact 01:13:29 Hmm. 01:13:31 Actually. 01:13:37 Almost Plain English 01:13:44 (not close) 01:13:46 hmm 01:13:48 I'm pretty sure that it has enough to do a state machine. 01:13:50 APE 01:13:50 Ape language 01:13:51 wait 01:14:01 Almost, But not Completely, Different From English 01:14:02 When you open anything else, it is converted in memory to a hexadecimal 01:14:02 dump and displayed in the editor with the read-only flag set. You can, 01:14:02 is there an esolang that bases on using underline, bold and italic? :D 01:14:04 however, force me to open a file as text or as a dump. Look under "O". 01:14:05 :D 01:14:06 ABNCDFE 01:14:07 :D 01:14:20 "To go back, use the Close command, click the tab, or whack the ESCAPE key." 01:14:24 i feel obligated to actually whack it 01:14:25 :D 01:14:26 instead of just hitting it 01:14:32 * ehird whacks the escape key 01:14:33 or pushing it 01:14:34 ehird, what about you tapping it? 01:14:36 we need a ABNCDFE language 01:14:38 AnMaster: not acceptable 01:14:43 oh 01:14:54 nooga : I try to do one that's based on exposants and shit 01:14:54 coppro, heh 01:14:58 "Here, for example, are the instructions my creators gave me for printing a 01:14:58 number of copies of a source. It is part of the actual code in my editor file. 01:15:00 Being edited in my editor. I love this. It's like looking into your own soul." 01:15:02 this manual is far too sensual 01:15:21 Yeah, it's a bit of a creepy computer 01:15:28 [[Say you're looking for the above routine. Press CTRL-HOME to get to the 01:15:28 top of the file. Then hit CTRL-F and start typing. T. We jump to the first "T" 01:15:30 in the file. O. We're on the first "To". Keep this up until you're where you want 01:15:32 to be. Use BACKSPACE if you make a mistake; CTRL-N to find the next; 01:15:34 ESCAPE or a shortcut to end the search. It's as simple and efficient as that.]] 01:15:36 Unfortunately, their editor does not use plain english. 01:15:46 this is just a joke that became a horror 01:15:52 ehird, AppleScript. But worse. And with a shitty implementation. 01:15:55 pikhq: their documentation isn't a .ps 01:15:57 it has a .pdf version 01:15:58 pikhq: BUT 01:15:58 is what this makes me think of. 01:16:01 it's their own format 01:16:05 based on "plain text" 01:16:09 openable with... you guessed it 01:16:09 ehird: AAARGH. 01:16:10 PLAIN ENGLIS 01:16:10 H 01:16:16 err 01:16:22 the pdf is broken 01:16:22 * ehird opens it in that for the full experience 01:16:26 AnMaster: wfm 01:16:26 links in it doesn't work 01:16:37 ehird, define:wfm 01:16:52 ehird, the links in the _PDF_ TOC point to the wrong places 01:16:59 wfm=worksforme 01:17:04 ah 01:17:05 true enough 01:17:12 ehird, so doesn't work for you then 01:17:16 or wait for mudkipz 01:17:16 correct 01:17:34 TOC? 01:17:47 ... 01:17:57 Slereah_: wow, it starts off with how to compile the compiler to make a new compiler 01:18:02 Slereah_, I'll give you a hint: Table of C 01:18:04 i guess they just don't have any other programs apart frmo that and the sample 01:18:14 ontent? 01:18:15 AnMaster: give him a break he's foreign 01:18:22 ehird, so am I 01:18:26 and? 01:18:28 so I don't have to be nice to him 01:18:34 since I'm in the same position myself 01:18:35 :P 01:18:40 Slereah_, good! 01:19:06 on the other hand I worked with lots of TOCs in LaTeX, so I guess I got an upper hand there. 01:19:20 i like a lot how they brag about how fast the thing self compiles and how small it is 01:19:36 Which is not that small and not that fast, I think 01:19:38 But I'm no expert. 01:19:42 ehird: AnMaster: give him a break he's foreign << brothers: brit and swede 01:19:47 I just hate them SO MUCH 01:19:59 nooga, uh 01:20:01 what 01:20:03 "(3) I consider almost all other words to be just words, except for: 01:20:04 (a) infix operators: PLUS, MINUS, TIMES, DIVIDED BY and THEN;" 01:20:07 3 to the power of OH SHIT 01:20:13 AnMaster: >:D 01:20:16 nooga, oh you are agreeing with me 01:20:20 or with ehird 01:20:23 I'm not sure 01:20:36 AnMaster: agreeing with you 01:20:49 ah 01:21:20 Slereah_: "But there are things that may surprise you. Or challenge you. Or infuriate you." 01:21:22 "Like EVERYTHING." 01:21:36 "I don't care if you type in upper, lower, or mixed case. It's all the same to me. 01:21:36 Life is hard enough without some JAVA programmer making it harder." 01:21:37 Did they intentionally say JAVA? 01:21:38 I think one of the most awful things about this is the written-out operators. 01:21:43 !slashes /*/100 \/ \\\/\/IX\\\/\/\/1\\I\/I0\/\/0\\I\/1\/\/\\\/\\I\/\\\/1\/\/X\\\/\/ \\\/\//****************/Q// 01:21:43 100 101 1011 10111 101111 1011111 10111111 101111111 1011111111 10111111111 101111111111 1011111111111 10111111111111 101111111111111 1011111111111111 10111111111111111 01:21:48 ehird, if it didn't claim to be plain English this wouldn't be too bad. It would be a rather verbose, and not really interesting, esolang 01:22:19 AnMaster: If it weren't serious. 01:22:21 ń 01:22:25 pikhq, exactly! 01:22:26 (meaning to be) 01:22:28 "I need a routine to 'initialize before run'." 01:22:29 wut 01:22:38 (compiler error) 01:22:48 pikhq: but it isn't serious (is it?) 01:23:03 !slashes /ab/bb/aaaab 01:23:04 bbbbb 01:23:24 I don't do REAL NUMBERS. I do ratios, very elegantly, but I don't do reals. 01:23:24 My page editor reduces and enlarges and sizes shapes proportionately in and 01:23:26 out of groups and it does it all without real numbers. Master Kronecker was 01:23:26 !slashes \\ 01:23:28 right when he said, in German, "The dear God created the whole numbers; all 01:23:28 !slashes /ab/bc/aaaab 01:23:29 bcccc 01:23:30 else is the work of man." I'm not interested in menschenwerk. 01:23:30 fail 01:23:32 nooga: yes 01:23:34 it's serious 01:23:42 nooooo 01:23:44 GregorR, when are you going to fix that bug 01:23:47 there's no way 01:23:54 GregorR, with \ in !slashes 01:24:09 nooga: They've got a price tag. 01:24:10 There should be an osmosian compiler on EsCo 01:24:16 AnMaster: what bug? 01:24:19 oh dear 01:24:24 !slashes \\ 01:24:26 * oerjan forgot about that 01:24:27 !slashes \\\ 01:24:29 !slashes \\\\ 01:24:29 \ 01:24:33 that one 01:24:41 * oerjan goes to double all \'s 01:24:44 Last step. Make a new text file in our new directory and call it whatever you 01:24:44 please. But don't give it an extension. I only compile files with no extension. 01:24:50 so if you give it an extension it rejects it? 01:24:51 awesome 01:24:52 what's EsCo? can't google it 01:24:55 nooga: shit 01:25:06 EsCo is another bad thing 01:25:18 nooga: Compiler suite for esolangs; work in progress. 01:25:29 erm.... 01:25:39 EsCo... yeah 01:25:41 Mostly, I've seen its BF compiler. Pretty good. 01:25:43 who got that idea 01:25:43 may i ask... what for 01:25:45 !slashes /*/0 \\/ \\\\\\/\\/IX\\\\\\/\\/\\/1\\\\I\\/I0\\/\\/0\\\\I\\/1\\/\\/\\\\\\/\\\\I\\/\\\\\\/1\\/\\/X\\\\\\/\\/ \\\\\\/\\//****************/Q// 01:25:46 oh, the error was cuz i didn't copy the NOOOODLE 01:25:51 pikhq: no, it's crap 01:25:54 Erm. 01:25:54 Heh, noodle 01:25:58 not esotope 01:25:58 Esotope, I mean. 01:26:00 esotope != esco 01:26:03 now what the heck 01:26:04 Esco is something else. 01:26:06 esco is a shitty interpreter suite of rubbishcrap 01:26:06 !slashes a 01:26:09 -!- inurinternet has joined. 01:26:13 darn 01:26:15 !help 01:26:16 Supported commands: addinterp bf_txtgen bfjoust daemon daemons delinterp fyb help info kill mush userinterps 1l 2l adjust asm axo bch bct befunge befunge98 bf bf16 bf32 bf8 bfbignum boolfuck c chiqrsx9p choo cintercal clcintercal cxx dimensifuck echo forth glass glypho google hello kipple lambda lazyk linguine malbolge ook pbrain perl qbf rail rhotor rot13 sadol sceql sh show slashes test trigger udage01 underload unlambda whirl yodawg 01:26:21 !slashes /*/0 \\/ \\\\\\/\\/IX\\\\\\/\\/\\/1\\\\I\\/I0\\/\\/0\\\\I\\/1\\/\\/\\\\\\/\\\\I\\/\\\\\\/1\\/\\/X\\\\\\/\\/ \\\\\\/\\//****************/Q// 01:26:26 oerjan, run it locally? :( 01:26:38 no fun 01:26:41 Slereah_: It needs full stops 01:26:44 Say "Hello, world!" 01:26:45 Shut down. 01:26:46 → 01:26:51 !befunge98 12.. 01:26:51 Error in butt. Idon't know how to 'Say [string] Shut down'. 01:26:53 !show slashes 01:26:54 perl (sending via DCC) 01:26:58 !befunge98 12..@ 01:26:58 2 1 01:27:02 !befunge98 12\..@ 01:27:02 1 2 01:27:04 On the bright side, I bet that it's easy to retarget. 01:27:06 seems to work there 01:27:08 oerjan, ^ 01:27:12 huh EgoBot cannot connect 01:27:26 oh what the heck 01:27:35 http://esco.sourceforge.net/ < i hope that's not that Boehm of Boehm GC 01:27:40 oerjan, you connect to it? 01:27:49 nooga: as if 01:28:00 nooga, wrong first name 01:28:03 it's two idiots 01:28:08 good 01:28:11 :D 01:28:18 AnMaster: It's on my list, but I'm on vacation :P 01:28:32 GregorR-L, it is a major BLOCKER bug 01:28:39 Now, what this *needs* is an LLVM backend. 01:28:50 My creators thought alphabetical was best, so they put a "Sort Definitions" 01:28:51 command under "S". It's a bit line-oriented, and loose comments stick to the 01:28:52 routine above them. But try it out. You can Undo if you don't like the result. 01:28:52 pikhq, what... Osmcrap? 01:28:54 .............. 01:28:54 It is a minor NEEDSONEIOTAOFTHOUGHT bug. 01:28:56 AnMaster: i've set up irssi to accept DCC from EgoBot automatically 01:28:59 AnMaster: Yuh. 01:29:02 :p 01:29:04 EWW 01:29:17 !sh echo hi; echo hi 01:29:17 hi 01:29:18 You will find that my editor displays simple comments in a delightful sky blue, 01:29:18 making it easy for you to see what I'm going to ignore. And no, you can't 01:29:20 change the color. My creators have assured me that this is the right color. 01:29:24 GregorR-L: so, why didn't !slashes respond at _all_ afterward? 01:29:27 !slashes a 01:29:27 a 01:29:35 now it does 01:29:41 ehird: ... Yet, they gave you the source code. 01:29:42 ehird : They're nazis 01:29:47 ehird, oh my 01:29:54 There's one good thing about plain english 01:29:56 It has an easy FFI: 01:30:01 Sometimes the system gets overloaded, and the interps run at such a low prio that they get booted off due to time limit, having gotten no cycles anyway :P 01:30:03 Call "kernel32.dll" "Beep" with 220 and 200. 01:30:18 ehird, forgot the [Hz] and [ms] 01:30:19 :P 01:30:20 Alas, I have no PC speaker with which to try it :-) 01:30:22 AnMaster: >:) 01:30:22 for the best effect 01:30:26 FFI? 01:30:30 ... 01:30:33 FFI yeah 01:30:38 What FFI mean 01:30:42 Foreign Function Interace 01:30:45 *Interface 01:31:05 http://code.google.com/p/esotope-bfc/wiki/Optimization < QUITE nice 01:31:15 Slereah_, google, first computer related result (there is "Fauna and Flora International" before "Foreign function interface - Wikipedia, the free encyclopedia") 01:31:30 oh well, good night all 01:31:34 -!- oerjan has quit ("ZZZZZZZZZZzzzzzzzzzzzzzzzz"). 01:31:41 bye 01:31:45 nooga, I do most of that too 01:31:45 AnMaster : TLA are a bad thing to google 01:31:48 in in-between 01:32:06 The traditional term is "infinite loop", but since it is not large in size but long 01:32:06 in duration, I prefer the term "eternal loop". 01:32:07 AnMaster: any showable code yet? 01:32:07 nooga, one thing missing, but produces equally good Hello world 01:32:08 Fail 01:32:14 nooga, check it out duh 01:32:55 bzr branch http://rage.kuonet.org/~anmaster/bzr/in-between/trunk/ in-between 01:32:57 or 01:33:01 if you prefer web UI 01:33:15 A quote from this book. 01:33:19 " If the event's kind is "left click", handle the event (left click); exit." 01:34:02 "I don't support nested conditionals. They're always unnecessary and almost always unclear. There are none in my code, and I'm the most advanced compiler alive today." 01:34:07 STAB! 01:34:14 http://bzr.kuonet.org/in-between/trunk/changes 01:34:17 nooga, ^ 01:34:21 :D 01:34:31 thx 01:34:33 FREAKING PEBBLE IS MORE ADVANCED! 01:34:45 AND IT'S A FREAKING MACRO LANGUAGE! 01:34:57 Maybe we should make a page on the esowiki about it 01:35:12 Slereah_: 'Twould be best. 01:35:29 As a dire warning 01:36:17 And they go on to claim that debuggers are for sissies. 01:36:22 nooga, just pushed the "DCE end of program" code 01:36:31 nooga, there are some stuff I'm missing yes 01:36:38 but for hello world I preform as wlel 01:36:40 well* 01:36:42 Yes, they claim that debuggers are wrong. 01:36:48 looks extremely cool but i don't know erlang :D 01:36:57 nooga, not my issue 01:37:11 okay 01:37:18 nooga, and where did it look cool? 01:37:44 http://bzr.kuonet.org/in-between/trunk/annotate/head%3A/src/ib_opt_combine.erl 01:37:50 http://bzr.kuonet.org/in-between/trunk/files/head:/test/ <-- rather large set of test files. Note they are for diffing generated code 01:37:55 nooga, that needs cleanup 01:38:04 The background, as we've said, is a picture. Pictures require memory for 01:38:04 storage. How much memory depends, of course, on the size of the picture. 01:38:06 Since we don't always know in advance how big or small a picture might be, 01:38:08 memory for pictures is allocated, dynamically, at run time. This memory must 01:38:10 later be deallocated when it is no longer needed. 01:38:12 THAT IS NOT PLAIN ENGLISH 01:38:20 don't support nested conditionals? 01:38:22 come on 01:38:50 Malbolge has nothing on this :D 01:38:55 This is an evil language 01:39:08 If you don't, you will cause a "memory leak", and bits of memory will drip 01:39:08 from your computer onto your shoes. 01:39:19 ew :( 01:39:30 HAHAHA 01:39:30 you don't actually need then. x = a and b; y = d and e; result = x or y; 01:39:33 that works 01:39:34 :P 01:39:44 AnMaster: where did you learn erlang? 01:39:44 s/then/them/ 01:39:48 Slereah_: It actually tells you, when you quit a program that doesn't destroy what it creates, "1 drip(s)" 01:39:53 Slereah_: So it knows you have objects left over 01:39:58 But will it deallocate them for you? 01:39:59 Noooooooooooooo 01:40:11 nooga, "Programming Erlang, Software for a Concurrent World" by Joe Armstrong 01:40:16 nooga, have it in paper form 01:40:19 All these attempts to make something simple, and it doesn't garbage collect. 01:40:19 Your computer is full of drips now 01:40:21 paper form? 01:40:26 nooga: dead tree 01:40:27 nooga, as in "not the ebook" 01:40:35 i didn't know that paper forms exist 01:40:44 dead tree based 01:40:47 pikhq: (3) Anything more than this falls under the heading "garbage collection" and, 01:40:47 as every manly programmer knows, garbage collection is for sissies. 01:40:49 oh 01:40:51 I have an extensive library in this house 01:40:51 HAHAHAHA 01:40:55 That's a great, great justification 01:40:58 Really, this compiler would almost function as a textbook example of a bootstrap compiler. 01:41:07 I bet they justified not having operator syntax with "Yo momma has operator syntax!" 01:41:29 heh 01:41:55 nooga, there are some newer books. 01:42:07 and the one I have would be a bit outdated by now 01:42:25 it is for Erlang R11B mostly iirc. while Erlang R13B is the current version 01:42:41 for example, erlang now has Unicode and so on 01:42:50 which the book says is a planned feature 01:42:53 Slereah_: Pick a color between red and clue. ← fails 01:42:54 but 01:43:00 Pick a color between the red color and the blue color. 01:43:01 works 01:43:03 *blue 01:43:04 Pick clue! 01:44:11 Slereah_: Pick a color between red and clue. ← fails <-- I'm not surpised 01:44:17 prised* 01:44:26 blue of course... 01:44:30 They didn't have a clue, si they ask for some :( 01:44:36 oh 01:44:38 you mean 01:44:42 like division by zero 01:44:46 in bf93 01:44:50 b93* 01:44:54 If a counter is past 80000, break. ← when referring to the loop iteration. 01:44:56 yes, "a" 01:44:58 Slereah_, it asks user you know 01:45:00 because that's how you declare a variable 01:45:05 afterwards they use the proper "the counter" 01:45:31 AnMaster: karlstad? 01:45:42 nooga, what about Karlstad 01:45:51 you live there, right? 01:45:54 no 01:46:09 wut 01:46:09 not even close 01:46:11 umm 01:46:23 orebro, ah yes 01:46:25 Their string representation is kinda weird. 01:46:26 well. Mid-Sweden-kind-of-close 01:46:27 I gues 01:46:30 guess* 01:46:36 They store pointeres to the beginning and end of the string. 01:46:36 pikhq: hm? 01:46:38 lol 01:47:19 Not a pointer and a size_t, as any sane, non-null-terminated "a string is an array" implementation would do. 01:47:31 AnMaster: then órebró 01:47:38 nooga, fail 01:47:48 with ó or with orebro? :p 01:47:48 Örebro is how you spell it 01:47:56 not ó 01:47:57 ah, details 01:48:03 nooga, important details 01:48:09 nooga, Ö != O 01:48:10 by far 01:48:13 :O 01:48:19 Well, read most of it. 01:48:39 nooga, if you have been in Sweden, surely you know how differently they are pronounced! 01:48:39 Well-documented, but quite hilarious. 01:48:46 like: zrób mi łaskę - do me a favour; zrób mi laske - do me a blowjob 01:48:52 middling esolang. 01:48:57 pikhq, "Well-documented"... Nice. 01:48:59 haha 01:49:16 nooga, certainly in some cases... 01:49:24 AnMaster: Well, they do give you most of the implementation details. 01:49:30 I know most of how the thing works. 01:49:39 I just think it's silly. 01:49:39 ;) 01:49:46 pikhq, agreed 01:50:17 AnMaster: oerebroo ? 01:50:24 nooga, what is that 01:50:39 how to say this name 01:50:48 nooga, not in Swedish at least! 01:51:07 two o after each other doesn't make sense in Swedish 01:51:35 then get a Polish pronounciation tutorial and try to say chrząszcz 01:51:55 nooga, I prefer to stay (relatively) sane 01:52:49 "Apple Rejects Ebook App Because It Could Be Used to Download Kama Sutra" 01:52:50 nooga, you can't do ö -> oe in Swedish either. Doesn't make sense. 01:52:52 Not Onion. 01:52:55 chrząszcz -> beetle 01:53:11 ehird, I believe it. Since it is Apple 01:53:15 If you’re wondering why Eucalyptus is not yet available, it’s currently in the state of being ‘rejected’ for distribution on the iPhone App Store. This is due to the fact that it’s possible, after explicitly searching for them, to find, download from the Internet, and then read texts that Apple deems ‘objectionable’. The example they have given me is a Victorian text-only translation of the Kama Sutra of Vatsyayana. For the full background, 01:53:18 a log of my communications with Apple is below. 01:53:20 http://www.blog.montgomerie.net/whither-eucalyptus 01:53:22 AnMaster: apple are not the only stupid company 01:53:24 Apple == no tits 01:53:32 ehird, agreed. But they are one of them 01:53:40 mostly the iphone divison 01:53:42 seems to be on crack 01:53:42 ehird, also s/are/is/ 01:53:50 AnMaster: no 01:53:52 is is correct 01:53:54 apple are? 01:53:54 it's a log 01:53:55 singular 01:54:01 err 01:54:03 " AnMaster: apple are not the only stupid company" 01:54:03 that 01:54:07 is what I'm talking about 01:54:12 AnMaster: companies/bands are plural in British English. 01:54:12 I'm pretty sure it should be is 01:54:14 not are 01:54:18 no, that's an americanism 01:54:19 ehird, hm ok 01:54:24 in british english, groups are their members 01:54:27 very communis 01:54:27 t 01:54:34 byeë 01:54:37 ehird, nah 01:54:37 uhm 01:54:45 the US one is more communist 01:54:49 "one for all, all for one" 01:54:50 style 01:55:25 They allowed the "Baby Shaker" iPhone app, though. Well, for a day or so, but still. 01:55:35 fizzie, what did it do 01:55:35 is it possible that Jobs is an eunuch? 01:56:00 AnMaster: There's a picture of a baby, crying, and you have to shake the phone enough to make it quiet. 01:56:08 cool app 01:56:10 got it 01:56:32 "On a plane, on the bus, in a theatre. Babies are everywhere you don't want them to be! They're always distracting you from preparing for that big presentation at work with their incessant crying. Before Baby Shaker, there was nothing you could do about it. See how long you can endure his or her adorable cries before you just have to find a way to quiet the baby down!" 01:56:49 go android 01:56:57 seems like the sanest one currently 01:56:57 yuck 01:57:08 Then you shake the phone and X's appear over the picture's eyes, I guess representing it losing consciousness. 01:57:26 fizzie: that's the best part, i tell you 01:58:06 The publisher's web page now says it wasn't such a great idea: http://www.sikalosoft.com/ 01:59:43 AnMaster: you don't mind if i'll pop in for a visit when i'll be passing by orebro. amirite? 01:59:47 :D 02:00:35 nooga, wrong. Since I'm about two hours travel by car away 02:01:05 two hours is nothing 02:01:10 Plus. I prefer to keep things over irc. 02:01:22 when i'm in scandinavia i drive for approx 8 hours a day 02:02:33 AnMaster: okay, i respect that 02:05:01 it's only that sweden is quite boring when you are there and got no aim: driving, driving, driving, eating, sightseeing lund, driving driving driving, having a beer, sleeping in a tent, not talking to anybody for 2 days, driving driving driving, admiring lake, driving, having a beer, sleeping in a tent, driving driving etc. 02:08:18 heh 02:08:54 nooga, s/beer/water/ 02:09:08 but driving after sleeping 02:09:24 and have some plan then 02:09:26 next time 02:09:36 buying beer in sweden costs me more than gas for my saab 9-5 02:09:36 ;p 02:09:49 saab... hah hah 02:09:57 which is always broken 02:10:02 oh? 02:10:08 I thought it was high quality 02:10:11 just didn't sell well 02:10:12 yea 02:10:15 i thought that too 02:10:25 nooga, I know some saab owners, who say that 02:10:42 one has a saab from the 70s which works just fine still 02:10:52 and one has a rather modern one 02:10:57 and i know that my 2.3t (200HP) engine stops in the middle of a highway 02:11:24 nooga, out of fuel? didn't do the service every nth distance? 02:11:38 full tank, did the service 02:12:04 ignition chip is shitty 02:13:14 my mercedes w123 from year 79 is more reliable than saab from 2005, pitty 02:14:23 besides, i don't get how one can plan summer vacation in sweden 02:14:46 i don't know anybody there, i don't know where parties are, i don't know what i want to see 02:15:14 ...but i keep going there because the country is nice 02:19:17 -!- Corun has quit ("Bye!"). 02:20:17 -!- Corun has joined. 02:27:21 ah, hdparm -y 02:36:46 such a sweet sound.... 02:38:45 wtf, it keeps spinning up again 02:39:02 That's your hard drive hating you. 02:39:23 drive is unmounted, i can't imagine why it would spin up again 02:40:08 Some hacker from the 70s thinks your drive is a washing machine drive and is trying to make it walk? 02:40:17 (that'd be pretty awesome, actually) 02:40:35 wasn't that just on reddit? 02:41:27 Dunno; don't read reddit much. 02:42:13 then where did you see that? 02:42:34 Some article way the hell back? 02:42:43 bullshit 02:42:46 Might've been jargon.txt, actually. 02:43:02 http://esolangs.org/wiki/Talk:Turing_tarpit 02:43:04 I'm scared :( 02:43:32 ... Walking drives? 02:43:37 Thought it was common knowledge. 02:43:42 Well, "common". 02:44:33 this is so annoying 02:46:46 fuck, it's extremely late 02:51:25 what will happen if i just rip out an ide drive? 02:51:38 Possibly bad shit. 02:51:45 IDE doesn't hot-swap ever. 02:52:07 SATA sometimes does, if your board and cable support it. 02:52:13 (why they didn't make it mandatory is beyond me) 02:53:40 bsmntbombdood: once i've tried 02:54:02 bsmntbombdood: some sparks, machine died and everything 02:54:11 bullshit 02:54:13 but after restart it booted smoothly 02:59:06 whatever i'll just reboot 02:59:14 -!- bsmntbombdood has quit (Remote closed the connection). 03:03:06 -!- bsmntbombdood has joined. 03:03:20 i forgot i still need to shred it 03:04:44 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)). 03:07:57 -!- nooga has quit (Read error: 60 (Operation timed out)). 03:08:33 sequential write...12 megabytes/second 03:08:35 now that's slow 03:24:35 -!- Corun has quit (Read error: 60 (Operation timed out)). 03:38:55 -!- Corun has joined. 04:26:44 -!- Dewio has changed nick to Dewi. 05:24:12 -!- Corun has quit ("Leaving..."). 05:50:10 -!- bsmntbombdood has quit (Remote closed the connection). 05:59:11 -!- bsmntbombdood has joined. 06:27:18 -!- Judofyr has joined. 06:31:17 it's like a zillion times quieter in here now that i finally got rid of that hard drive 07:29:50 -!- inurinternet has quit (Read error: 60 (Operation timed out)). 07:32:41 -!- inurinternet has joined. 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:00:22 -!- Judofyr has quit (Remote closed the connection). 08:00:51 -!- Judofyr has joined. 08:11:38 -!- M0ny has joined. 08:16:57 -!- Judofyr has quit (Read error: 110 (Connection timed out)). 08:37:11 -!- sebbu has joined. 10:34:28 -!- BeholdMyGlory has joined. 10:39:51 ... Walking drives? <-- huh? 10:42:01 ah 10:42:02 found it 10:42:05 in the jargon file :) 11:00:53 -!- Judofyr has joined. 11:02:16 -!- KingOfKarlsruhe has joined. 11:33:29 -!- ais523 has joined. 11:41:03 wow 11:41:14 I just found out that you can have spaces in function names in erlang 11:41:24 not usual, and rather confusing 11:41:31 but technically possible 11:42:22 hi ais523 btw 11:42:40 hi 11:42:44 la 11:42:51 "la"? 11:42:53 why did I just say la? I didn't mean to type that 11:42:57 it must have been an extended typo 11:43:15 heh 11:43:17 ah, I was starting to type "also", got the first two letters the wrong way round, then hit return instead of backspace 11:43:51 also, Prolog allows arbitrary characters in predicate names, but you have to escape the wierder ones 11:43:57 ais523, anyway function names (and module names) are atoms 11:44:02 yes, same in Prolog 11:44:03 so any valid atom can be used 11:44:06 even the null atom 11:44:08 which is '' 11:44:15 I've never tried that in Prolog 11:44:17 * ais523 tests 11:44:35 (you have to use single quotes, like in 'foo bar' if the atom isn't "the normal way") 11:46:08 | ?- assertz((''(X) :- 3 is X)). 11:46:10 yes 11:46:11 | ?- ''(1 + 2). 11:46:13 yes 11:46:14 | ?- ''(2 * 2). 11:46:16 no 11:46:20 * AnMaster wonders what the null module filename would be 11:46:26 ''.erl or just .erl 11:46:37 and what about the produced code file... .beam or ''.beam 11:46:38 hm 11:49:41 hm neither seems to work 11:49:50 foo bar.erl works for 'foo bar' 11:49:56 null atom fails though 11:53:36 ais523, hm I guess you could do lisp/scheme style function names with this if you wanted 11:53:58 'is-integer?'(Int) and 'integer->string'(Int) and so on 11:54:26 not really, at least not in Prolog, because the calling conventions are so different 11:54:31 your examples return a boolean and a string 11:54:40 neither Prolog equivalent would return anything 11:54:44 as Prolog predicates don't have return values 11:54:48 ais523, perfectly possible in erlang though 11:54:52 so you'd have integer(Int) and integer_string(Int,String) 11:55:03 the second of which would convert either way round, depending on which argument it was given 11:55:16 and the first of which would fail if given a non-integer value 11:55:35 ais523, I would use the BIF is_integer/1 in erlang 11:55:42 allowed in guard tests too 11:56:00 BIF? 11:56:05 Built In Function 11:56:12 ah 11:56:22 well, those are built-in functions in Prolog too, although I think the second has a slightly different name 11:56:31 maybe atom_int or int_atom or something 11:56:38 though, there is an EEP about allowing user defined functions in guards... iirc 11:57:32 for integer->string I would actually do something like io_lib:format("~p", [MyInteger]) I guess... 11:57:47 atom_number(?Atom, ?Number), can be called both ways. 11:57:55 "both ways"? 11:58:15 To convert from atom to number, or number to atom. 11:58:26 io_lib:format("~p", [MyInteger]) <-- though that would be "anything to string..." 11:59:00 ?- atom_number(X, 42). 11:59:00 X = '42'. 11:59:00 ?- atom_number('123', Y). 11:59:00 Y = 123. 11:59:10 mhm 12:01:50 Prolog is so refreshingly different. 12:01:53 ?- atom_concat(A, B, foo). 12:01:53 A = '', 12:01:53 B = foo ; 12:01:53 A = f, 12:01:55 B = oo ; 12:02:06 ais523, btw... not sure if you saw it. but in-between now compiles that hello world as well as esotope-bfc 12:02:11 for other programs, I'm close 12:02:14 but not fully there 12:02:22 ah, interesting 12:02:36 some more work is needed on the polynom stuff to handle "constant isn't known in advance" case. 12:02:36 maybe we should give it some gcc-bf output to see how it reacts? 12:02:44 I'll see if I have a working hello world at the moment 12:03:23 basically, all the stuff needed is there... Except I don't have an opcode to represent arbitrary stuff like p[2]=p[4]*p[9] 12:03:32 so need to add that to the various passes. 12:03:48 -!- kar8nga has joined. 12:04:35 ais523, anyway, I got this idea for using a dependency graph, instead of operating on the parse tree... But I'm not sure how to represent loops. Neither balanced or unbalanced. 12:05:18 ais523, if you have any idea about it... A DAG seems useful to handle it in general 12:05:42 but I really know to little about these things 12:08:16 $ ls -l hworld1.bfrle 12:08:18 -rw-r--r-- 1 ais523 ais523 443921 2009-05-22 12:07 hworld1.bfrle 12:08:41 ais523, ouch that is bad 12:08:48 ais523, the one I worked on was a simple one 12:08:59 >+++++++++[<++++++++>-]<.>+++++++[<++++>-]<+.+++++++..+++.>>>++++++++[<++++>-] 12:08:59 <.>>>++++++++++[<+++++++++>-]<---.<<<<.+++.------.--------.>>+. 12:09:00 is what I used 12:09:10 I can also do the same for any !bf_txtgen 12:09:16 (which that one isn't) 12:09:22 AnMaster: 443921 for a hello world isn't that bad 12:09:28 ais523, is that bytes 12:09:29 although that's avoiding both stdio and UNIXy output 12:09:32 and yes, bytes 12:09:41 because it has to link in much of the C standard library 12:09:49 I imagine that's mostly exception handling 12:09:50 ais523, well. I probably can't do much for it 12:09:54 such as signals, etc 12:10:07 ais523, err... can't you disable the pointless exception handling 12:11:06 yes, by substituting your own __outside_main 12:11:18 it gets a lot shorter if you do that 12:13:14 ah, it's atexit that's taking up the space 12:13:41 * AnMaster founds out why something didn't work... 12:14:17 because I tried to be smart and reduce work, but checking if value was already calculated and thus neededn't be recalculated... Except it it had been partially calculated... 12:17:40 anyway, you might want to use my rather long hello, world as a test 12:17:49 ais523, link for download? 12:18:04 let me put it online 12:18:08 thanks 12:18:25 AnMaster: fyi, i fixed the mistake in codegen for while. i'm also trying to improve readability of the code generally. 12:19:16 lifthrasiir, I can't figure out how your code for the iteration count work, so I'm using a "stupid" way of doing it, but it works and is easy to understand 12:19:26 is_add_infinite(Const, Diff) -> 12:19:26 is_add_infinite(Const, Diff, (Const + Diff) rem 256, 1). 12:19:27 is_add_infinite(_Const, _Diff, 0, Iters) -> 12:19:27 {false, Iters}; 12:19:27 is_add_infinite(Const, _Diff, Const, _Iters) -> 12:19:27 true; 12:19:31 is_add_infinite(Const, Diff, Cur, Iters) -> 12:19:33 is_add_infinite(Const, Diff, (Cur + Diff) rem 256, Iters+1). 12:19:47 just iterating until it either repeats or hits 0 12:19:50 AnMaster: calculating loop count? 12:20:05 lifthrasiir, both if it is infinite or finite with a fixed count yeah 12:20:18 -!- oerjan has joined. 12:20:38 AnMaster: http://filebin.ca/pqzmno/hworld1.bfrle 12:20:40 lifthrasiir, performance seems quite goof for the small numbers of bf 12:20:43 note that that's run-length encoded 12:20:53 ais523, err? 12:20:59 how do I uncompress it or whatever 12:20:59 in a format where +*10 means ++++++++++ 12:21:06 ais523, I can't run that... 12:21:28 well, you may want to modify your interp to accept code that's already been encoded, that would be a lot more efficient than expanding and recontracting again 12:21:34 because you almost certainly optimise runs of + and > 12:21:38 well... let's assume the current cell is X before the loop, and the loop adds Y (or subtracts if Y<0) to/from the current cell . 12:21:43 ais523, it would possibly break comments in normal bf files 12:21:48 I only accept "core bf" 12:21:53 yep, which is why you make it a command-line option 12:22:04 ais523, I don't have command line option handling 12:22:12 I would need to implement it 12:22:13 :/ 12:22:20 then there are several options: one thing is of course the trivial infinite loop, Y=0. 12:22:20 but it's almost 444 metric kilobytes as it is 12:22:39 ais523, anyway, you are free to implement an alternative parser module 12:22:54 >>>+ 12:22:55 >>>+ 12:23:01 AnMaster: setting up memory 12:23:08 ais523, how many cells are needed 12:23:15 currently I'm hard coded at 3000 iirc 12:23:16 loads, several thousand I imagine 12:23:19 can be changed in source 12:23:20 I can have a look at the exact value if you like 12:23:36 ais523, would need to know. as I treat "if you go outside the tape you are on your own" 12:23:37 currently 12:23:55 if Y!=0, then the loop runs k times where (X+Y*k) is a multiple of 256 (let's say it be W, for generalization), and runs forever if there is no such k. 12:23:56 then there are several options: one thing is of course the trivial infinite loop, Y=0. <-- yes, I handle that "unchanged" one elsewhere 12:24:57 AnMaster: 0x862 * 6 tape elements of globals are used, plus 64 registers, plus a bit extra; the stack is shorter than that (it's mixed with the globals), and I don't think I use any heap 12:25:19 ais523, so how large does the tape need to be?... 12:25:23 so 13000 should be enough 12:25:24 if Y<0, we can (safely) use W-Y instead, as it does same thing: adding Y is equivalent to adding (W-Y). so let's say Y>0. 12:25:32 heh 12:25:45 ais523, anyway I would need a more complex parser module than currently 12:25:49 that looks ahead too 12:26:02 AnMaster: no need to look ahead, just repeat the last character if you see a * 12:26:17 ais523, I need to read the number after 12:26:18 then X and Y is both assumed to be non-negative; we essentially have to solve the following equation, X+Y*k = W*x. 12:26:37 ais523, which I assume is in hex for compactness? :P 12:26:41 nah, decimal 12:26:44 heh 12:26:50 base64 would be most compact 12:26:53 you could shave off a few bytes by making it hex, I suppose 12:26:59 but the number rarely goes above a few thousand 12:27:01 ais523, base64 12:27:19 lifthrasiir, hm 12:27:23 lifthrasiir, what is Y there 12:27:35 and X.. 12:27:39 W was overflow value I remember 12:27:47 the highest number in that code is <*12897 12:27:55 that's coming back from the end of the tape to near the start 12:28:09 lifthrasiir, and why was that code dividing a class by a number... 12:28:13 AnMaster: X is the current cell before the loop; Y is the addition to the current cell. 12:28:19 it confused me 12:28:25 what class do you mean? 12:28:35 lifthrasiir, expr iirc 12:28:52 in simpleloop.py 12:29:07 lifthrasiir, W is 256? 12:29:08 AnMaster: in case of ++[---->+<], X=2, Y=-4. i assume Y be positive so it should be Y=W-4=252 though. 12:29:24 ah yes 12:29:25 AnMaster: it's because X is (generally) not known in advance. 12:29:50 instead i construct (by dividing etc) the equivalent Expr object. 12:30:13 lifthrasiir, what exactly does and expr represent? 12:30:23 a stretch of code? 12:30:31 for example, Expr[0] / 4 gives the expression tree for "the quotient of the current cell divided by 4", etc. 12:30:38 ah 12:31:05 that's just for convenience, though i should have added more comments for it. 12:31:13 anyway, 12:31:23 this is equivalent to W*x-Y*k = X; we can solve W*a-Y*b = gcd(W,Y) then, by extended euclidean algorithm. 12:31:47 you lost me about there. 12:31:57 :/ 12:32:11 AnMaster: hmm... let's explain. 12:32:23 lifthrasiir, I mean, lost me mathematically 12:32:30 ah well 12:34:38 AnMaster: you need more explanation, or give up about that then? 12:34:45 lifthrasiir, not sure... 12:35:12 lifthrasiir, how much would I gain from using your method, except speed. 12:35:23 (possibly) 12:35:46 i'm not sure what is your method. does it work for every possible cases? or a subset of them? 12:36:31 lifthrasiir, currently not for when X is unknown. But I have an idea of how to make that work 12:36:42 which is what I'm working on atm 12:41:20 bbiab 12:41:31 * oerjan scares AnMaster with the extended euclidean algorithm. Boo! 12:42:58 oerjan: :D 12:43:28 lifthrasiir: i tried explaining it to him the other day, for the same purpose i think 12:43:38 o 12:44:09 oerjan: and stuck at the extended euclidean like this, right? 12:44:25 actually he did implement the EEA in erlang... 12:45:28 maybe it was just all the letter symbols that scared him 12:46:44 -!- Judofyr has quit (Remote closed the connection). 12:47:14 -!- Judofyr has joined. 12:50:46 -!- sebbu2 has joined. 12:56:18 -!- sebbu has quit (Read error: 110 (Connection timed out)). 12:56:18 -!- sebbu2 has changed nick to sebbu. 12:57:49 -!- kar8nga has quit (Remote closed the connection). 13:04:54 -!- Judofyr has quit (Read error: 110 (Connection timed out)). 13:10:32 oerjan, I didn't understand the algorithm 13:10:34 that is the thing 13:10:48 sure, I can see how to calculate the EEA from pseudo code 13:11:03 or from the definition 13:11:13 but that doesn't actually help me understand why/how it works 13:13:22 ok, point 1: a number X can be written as a sum of a multiple of W and a multiple of Y if and only if X is divisible by gcd(W,Y). 13:14:05 X = W*x - Y*k in lifthrasiir's equation 13:14:08 hm 13:14:22 ok 13:14:32 (you can make that - a +) 13:14:47 hm ok 13:15:06 ais523, btw what is your rle file format officially called. For purpose of the parser name. 13:15:17 I don't think it has an official name 13:15:27 "gcc-bf run-lenth-encoded output" is descriptive enough 13:15:32 *run-length-encoded 13:15:53 ais523, one word name. ib_load_file_gccbfrle.erl ? 13:15:58 seems a bit bulky 13:16:36 oerjan, is W still the overflow value? 13:16:40 oerjan, that is, 256 13:16:45 AnMaster: it's the sort of name I might use 13:16:53 AnMaster: well for BF yes 13:17:12 ais523: where is gcc-bf now? it seems to be disappeared with death of eso-std.org. 13:17:20 lifthrasiir: on my hard drive 13:17:26 ;) 13:17:28 since eso-std.org died, it isn't hosted anywhere 13:17:32 but copies are available on request 13:17:38 I haven't worked on it for ages, though 13:17:46 oerjan, "X is divisible by gcd(W,Y)" implies "resulting in an integer"? 13:17:48 next thing to implement is probably bitshifts 13:17:49 point 2: if X = m*gcd(W,Y), then we can solve for x and k by first solving the equation W*x' + Y*k' = gcd(W,Y) and setting x = m*x', k = -m*k' 13:17:57 AnMaster: yes. these are all integer equations 13:17:59 some, like leftshifts without carry, are trivial 13:18:01 oerjan, so that X mod gcd(W,Y) = 0 13:18:05 some, like signed rightshifts, aren't 13:18:16 AnMaster: true 13:18:21 ais523: interesting. 13:18:23 point 2: if X = m*gcd(W,Y), then we can solve for x and k by first solving the equation W*x' + Y*k' = gcd(W,Y) and setting x = m*x', k = -m*k' <-- what is m 13:18:40 AnMaster: m = X/gcd(W,Y) 13:18:54 ah 13:19:53 oerjan, why lower case x but upper case y? 13:20:07 AnMaster: there was an upper case X too 13:20:11 as lifthrasiir 13:20:15 oerjan, oh is it case sensitive 13:20:16 *ask 13:20:31 AnMaster: math is generally case sensitive 13:20:59 it is even _font_ sensitive, but we cannot use that on irc 13:21:28 (for weirder fonts such as calligraphic, anyway) 13:21:32 some programming languages are font-sensitive 13:21:45 oerjan, x' is supposed to be "deriverad" right? (Don't remember the English word for it) 13:21:48 algol 68 famously was, and specified all sorts of ways to indicate the two fonts 13:21:50 in an appendix 13:21:50 AnMaster: no 13:22:00 AnMaster: "derivative" is the English word 13:22:03 AnMaster: ' = prime, it's just part of the name 13:22:09 but the same notation can also just mean "a different x" 13:22:19 oerjan, isn't that more like a forward slanting ` ? 13:22:21 what ais523 said 13:22:24 can't seem to type it 13:22:24 the symbol's called "prime" when used in that context 13:22:39 AnMaster: i'm trying to get by with mostly ascii here! 13:22:51 oerjan, kay. Caused some confusion 13:23:32 Prime is ′, there's also the double-prime ″ and triple-prime ‴. But ' is a very good substitute. 13:23:51 AnMaster: i used the same names with a prime because the equation with gcd(W,Y) parallels the one with X 13:23:54 fizzie, the ' seems more like in y = 'y + x to me 13:23:56 'err 13:24:03 y' = y' + x 13:24:06 is what I meant to type 13:25:25 AnMaster: anyway, since the extended euclidean algorithm also calculates gcd(W,Y) for us, we can first use it to solve W*x' + Y*k' = gcd(W,Y) and then check if X is divisible by gcd(W,Y) 13:25:44 It's exactly the same "prime" character they use with derivatives as well as in the "transformed x" case, so ' shouldn't really look "more like a derivative". 13:26:21 fizzie, I blame the typesetting in the textbook that introduced me to derivatives! 13:28:05 Well, Newton used the ḋȯṫ ȧḃȯv̇ė, that's even sillier. 13:28:25 yes I just read http://en.wikipedia.org/wiki/Notation_for_differentiation 13:28:35 So ö is the second derivative of o. 13:29:18 AnMaster: note that the algorithm only gives one solution for x' and k'. the others are x' + n*(Y/gcd(W,Y)), k' - n*(W/gcd(W,Y)) for an arbitrary n, iirc 13:29:27 Like wikipedia says, physicians tend to mix dots and primes and use the character to differentiate between time-derivatives and other-derivatives. 13:29:42 oerjan, err *please stand by while parsing* 13:29:50 ah right 13:30:44 *physicists 13:30:54 oerjan, are the other solutions relevant though 13:31:02 for this purpose 13:31:31 AnMaster: only one is relevant, but i'm not sure the algorithm gives the right one immediately 13:32:07 in the original you want the smallest possible positive k for X = W*x - Y*k 13:32:38 hm 13:32:40 because that corresponds to the first time you hit 256*x in the BF loop 13:33:52 since k is the number of iterations 13:34:14 -!- BeholdMyGlory_ has joined. 13:34:28 oerjan, then another question is: What does I gain compared to my brute force variant. 13:34:32 apart from speed 13:34:53 AnMaster: you can solve it for general X, so you don't need it to be constant 13:35:00 ah 13:35:18 -!- BeholdMyGlory has quit (Nick collision from services.). 13:35:21 -!- BeholdMyGlory_ has changed nick to BeholdMyGlory. 13:35:35 the resulting equation is very simple, just a multiplication by constant. 13:35:44 expression* 13:35:53 http://esolangs.org/wiki/User:Maxsteele2 < this looks a bit useless so far 13:36:14 lifthrasiir, your expression code is confusing though 13:36:46 but yeah I see how it could work 13:36:53 AnMaster: agree, since the entire code is started from ad-hoc script. 13:37:05 Slereah_: well it's a user page 13:37:55 I mean, everything he did :o 13:38:30 lifthrasiir, I didn't write a design document either. But I thought for about half a minute about design first. And I have written BF compilers before 13:38:49 -!- Corun has joined. 13:39:39 and that meant: main control module (handles calling the other ones in the right order) file loader module, optimiser modules, output modules 13:40:29 ais523, correct me if I'm wrong... But you said the only difference was that on * you read the number (in decimal) that follows, and multiplies the previous instruction by that 13:40:37 yes 13:40:40 ais523, and this is only allowed for - + > it's only generated for - + > < 13:40:56 ais523, generated != allowed 13:41:00 there is a bit of difference 13:41:02 agreed 13:41:08 I wouldn't allow it for [ and ], anyway 13:41:24 as for . and , I can't think of a sensible use-case for repeating, so they're disallowed too 13:41:30 right 13:41:35 AnMaster: well, i agree it is undocumented, but the design itself is, i think, reasonable. 13:41:42 and repeating % makes no sense, but % in gcc-bf output is a true comment from the point of view of most interps 13:41:48 as it's the equivalent of assert in C 13:41:52 ais523, why the odd newlines. I mean >>>+\n>>>+\n is a bit wasteful 13:42:00 ^bf ++++++++[->++++++++<]>+............................... 13:42:00 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 13:42:08 AnMaster: the newlines correspond to different things in the original 13:42:09 lifthrasiir, possibly. But I'm not familiar with python OOP really. 13:42:20 and \n isn't really that wasteful 13:42:38 lifthrasiir, and I strongly dislike abstractions you can't easily inspect. like when print Expr didn't didn't something sane 13:42:45 had to figure out I needed print Expr.code 13:43:23 ais523, the integer will be [1-9][0-9]* right? 13:43:31 yes 13:43:56 [This code requires an 8-bit wrapping implementation, and 13:43:56 lots of tape space! Use of an implementation that optimises 13:43:56 long runs of + - < > is strongly recommended.] 13:43:59 that looks invalid 13:44:05 AnMaster: header comment 13:44:08 ais523, infinite loop 13:44:15 AnMaster: it's at the very start of the file, it never runs 13:44:28 ais523, so I need to skip the first few [] too? 13:44:30 [.+-<>.] at the very start of regular BF does nothing 13:44:32 AnMaster: no, you don't 13:44:35 AnMaster: you mean Expr.__repr__ in esotope-bfc has any side effect? 13:44:40 [.+-<>.] at the very start of regular BF does nothing <-- huh? 13:44:43 [,+-<>.] is legal BF code 13:44:44 Tape is 0 at the beginning, so it's skipped always. 13:44:47 but the [ sees that the tape is 0 13:44:50 so it jumps past the ] 13:45:05 lifthrasiir, no. but figuring out why what I thought was a plain integer printed as {3}... 13:45:12 I still don't know 13:45:24 it seemed to be the offset though 13:45:28 AnMaster: ah, that needs some explanation, right. 13:45:31 ais523, ah right 13:45:45 ais523, yeah I optimise that 13:45:52 that was once p[3], but changed to compact and language-neutral notation. 13:46:03 a header comment - a no-op loop either at the start of a file or immediately after another loop - is a common BF idiom 13:46:12 and trivial to optimise out 13:46:19 lifthrasiir, So your code generators parse the strings? 13:46:37 AnMaster: no, just code generator and inspection routine was same. 13:46:42 were* 13:46:48 lifthrasiir, mine parse the bf code tree. Not sure if "parse tree" would fit. Since it isn't any longer at that point 13:47:38 lifthrasiir, I also tried to print the __dict__ since that usually seems to work to inspect internals of python objects. Only when I found out what __slots__ did I understood why that didn't work 13:48:19 AnMaster: people normally call it a parse tree anyway, even though it isn't 13:48:25 ais523, so that is why lostking starts with (iirc) [-][.] ? :P 13:48:32 AnMaster: quite probably 13:48:35 ais523, it isn't really an AST either 13:48:39 no doubt there are comments there, just you've never looked 13:48:40 or maybe it is 13:48:46 ais523, there aren't 13:48:56 well there are iirc. but not like that 13:48:57 maybe they were removed in the version you have? 13:49:15 mine is comment less yeah 13:49:25 but I seen one beginning with something like # Foo barh 13:49:29 and so on 13:49:38 ais523, mine ends with a @ if that helps 13:49:43 I have a version starting #!/usr/bin/bf, followed by some authorship information 13:49:50 ais523, that is missing here 13:49:51 but it has just a plain [-][.] at the start 13:49:53 without comments in 13:50:05 AnMaster: maybe i should make __repr__ prints '', and add something like ascompact() for helping other __repr__s. you're right at that point. 13:50:06 mine also ends without an @, though 13:50:44 ais523, iirc lostking came with some optimiser script... I might have used it 13:51:06 wow, bfrle is /fast/ on LostKng, and it isn't even particularly optimising 13:51:23 (bfrle's my BF interp, invented specifically to debug gcc-bf, and it has several features for doing that) 13:51:37 lifthrasiir, I have nothing against objects and structs, as long as they are transparently inspectable for debugging/tracing purposes! 13:51:56 AnMaster: but __dict__ is not an universal way for inspecting python object. 13:52:12 lifthrasiir, yeah, I'm missing that 13:52:26 lifthrasiir, what is the universal way. That reveal all the relevant instance data 13:52:36 so i think i just have to document the semantics, and that should be all. 13:53:24 AnMaster: i'm not sure, but __dict__ is not that way. 13:54:05 for erlang records, I just have to print it. Internal format of erlang records are tagged tuples. So while a bit hard to read "{bfe_block,true,false,false,false,false,4,false,{add,3},{dict,.......},true}" it is quite possible. And I could just import the record definition in the REPL and it will pretty print it for me. 13:54:08 whoops, the wiki spammers are catching on: "This site is crazy :)" 13:54:09 or using dir() to retrieve all attributes. 13:54:19 oerjan: haha 13:54:45 lifthrasiir, did you say dir() isn't it? 13:54:48 or that it is? 13:54:53 that it is. 13:54:56 ah 13:55:06 but it will include a list of methods as well 13:55:19 Python has the "inspect" module if you want to poke live objects. 13:55:20 (since bounded methods are accessed like attributes) 13:55:39 hm 13:56:04 fizzie: oh, i completely missed that module. 13:57:24 ais523, hm an issue... pattern matching becomes less optimised for the RLE in this case. Due to how erlang optimises certain form of pattern matching to just pass a pointer to the tail instead of building a new binary. For pathological cases it might be slower to load a RLE encoded file thus 13:57:47 not sure if it would be noticable 13:57:52 AnMaster: the unencoded file has trouble fitting in my memory, the RLE-encoded file doesn't 13:58:02 ais523, how large is the unencoded one 13:58:09 probably not that much larger in this case 13:58:24 but for large programs like C-INTERCAL, large enough that it's caused thrashing before now 13:58:31 I need to scan the tail to read the integer 13:58:41 then continue on the tail 13:59:00 I guess I could implement stateful parsing 13:59:12 to have a "integer state" and "normal" state 13:59:15 hm that might work 13:59:48 anyway, going for a couple of hours, I want to go home 13:59:51 and have something to eat on the way 14:00:06 cya 14:00:19 -!- ais523 has quit (Remote closed the connection). 14:22:33 -!- nooga has joined. 14:42:03 hm that file is invalid 14:44:33 when he gets back I have to point out that 14:44:37 [-*- brainfuck -*-] 14:44:38 nooo... there's a bug in my tea 14:44:40 is invalid at the start 14:44:47 nooga, use a debugger then 14:44:59 tried, bud now it tastes awful 14:45:03 but* 14:45:06 nooga, which debugger? 14:45:09 gdb? 14:45:20 ehe 14:45:27 what? 14:45:58 uhuh 15:01:29 llvm still not buildable ;| 15:05:53 AnMaster: [-*- brainfuck -*-] is invalid at the start? why? 15:06:30 lifthrasiir, because it is run length encoded by (regex!) [+-<>]\*[1-9][0-9]* 15:06:36 and - is no number 15:06:44 thus invalid RLE encoding 15:06:46 ah, you mean RLE? 15:07:19 -!- BeholdMyGlory_ has joined. 15:07:30 but then one + should be encoded as +1? 15:07:37 (inferred from your regex) 15:07:41 ugh 15:07:57 lifthrasiir, read it again 15:08:06 lifthrasiir, it is *123 15:08:10 after an instruction 15:08:13 to duplicate it 15:08:14 oh i missed \. :( 15:08:15 anyway 15:08:17 I can't process it 15:08:18 got it 15:08:27 I just swap trashed 15:08:30 trying to compile it 15:08:39 [Opt] Pass: ib_opt_init_mem 15:08:40 that pass 15:08:54 but seems too artificial. is that regex mandated in some spec, or just chosen for convenience? 15:09:21 lifthrasiir, I asked ais about the valid format above 15:09:31 and from what he told me it matches 15:09:41 AnMaster: it's not invalid, just not 1 lookahead... 15:09:51 oerjan, wrong. There must be a number after * 15:10:10 -!- BeholdMyGlory has quit (Nick collision from services.). 15:10:13 -!- BeholdMyGlory_ has changed nick to BeholdMyGlory. 15:10:20 and if there isn't, you can interpret it as a standalone * 15:10:49 being a comment 15:11:25 the only reason to disallow it it is a slightly easier parsing 15:12:14 *-it 15:13:15 ais523, the integer will be [1-9][0-9]* right? 15:13:22 yes 15:14:27 AnMaster: that regex doesn't mention comments at all, thus if comments are allowed anything which doesn't match it must be a comment, q.e.d. >:) 15:14:42 oerjan, removing dead loops happen way later than parsing 15:14:59 >_< 15:14:59 in the "intitial memory all zero" propagation pass 15:15:15 that's insane 15:15:19 -> bus 15:15:22 -!- oerjan has quit ("leaving"). 15:15:28 oerjan, why? It allows stuff you can't otherwise 15:15:37 like constant folding ++ into "set 2" 15:15:42 my parsing pass just parses 15:15:44 nothing else 15:18:21 [-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[- <-- this looks really strange 15:18:32 yeah there are other code later 15:18:34 in each loop 15:18:50 [-[- 15:18:50 ]<[- 15:18:54 that is a bit wasteful 15:19:10 [-[-]<[- is equal to [[-]<[- after all 15:37:09 -!- tombom has joined. 15:40:38 ah 15:40:40 that helped 15:40:48 limited memory for erlang 15:43:08 -!- ais523 has joined. 15:43:17 ais523, your file is invalid 15:43:22 -*- at the start 15:43:25 not a valid RLE 15:43:27 brb 15:47:04 back 15:47:08 ais523, see what I mean? 15:47:32 AnMaster: well, I suppose that as it isn't asterisk-number, it's just a comment 15:47:34 but good point 15:48:07 ais523, oh and the generated code is more than twice as large the generated code of lostking 15:48:29 well, it contains atexit 15:48:34 which in turn contians malloc 15:48:52 ais523, roughly the first ~5000 lines are spent for setting those 1s every third cell 15:48:59 gccbflife.c lines 5125-5170/97136 6% 15:49:04 I'm stopped just after that 15:49:09 oh and you generate silly code too 15:49:15 [-[- 15:49:17 ]<[- 15:49:27 AnMaster: that's a case statement 15:49:29 which when put on one line for readability 15:49:36 [-[-]<[- which is equal to [[-]<[- after all 15:49:39 with no contents 15:49:41 why the wasteful - there 15:49:50 and to keep the start of each statement consistent 15:49:51 ais523, it is right after the constant setting code 15:50:05 yes, it's the very first case of the case statement 15:50:24 ais523, I had to ulimit erlang to 512 MB RAM to avoid swap trashing in the "initial memory is all zero" propagation pass 15:50:29 and as they're in reverse order, it's the bit after the end of the program 15:50:31 that made it GC more often 15:50:33 am i right that inline clause does not guarantee that function will be used inline? 15:50:38 nooga: correct 15:50:41 it's a compiler hint 15:50:50 many compilers will respect hints such as inline and register 15:51:03 which is ironic because the compiler can often do better than you can at figuring out where inline and register should go 15:51:18 under what circumstances? 15:51:25 while (p[0]) { 15:51:25 while(*p) p-=6; 15:51:25 p-=6; 15:51:25 } 15:51:28 that is a bit odd 15:51:31 There's __attribute__ ((always_inline)) if you really *want* it to be inlined. 15:51:35 the inner one is due to [<<<<<<] 15:51:40 being converted into a "seek" node 15:51:57 pikhq, I once used the opposite, never_inline, in cfunge 15:52:06 nooga: the only compiler I know some of the rules for is the old Borland C++ 4 15:52:08 it was for the --help output function 15:52:12 which would never inline anything containing loops, for some reason 15:52:15 which GCC liked to inline into the hot code path 15:52:16 ... That's an attribute? 15:52:22 static does the same thing. 15:52:24 pikhq, don't remember the spelling 15:52:27 aw 15:52:31 could be no_inline 15:52:32 or similiar 15:52:35 check gcc docs 15:52:57 because i thought that i can use functions for sadol loops that return value 15:53:19 AnMaster: It's just that static would do the same thing. ;) 15:53:35 !sadol :i+91!@>i0:i+i1 15:53:45 -!- inurinternet has quit (Connection timed out). 15:53:47 pikhq, as what 15:53:49 damn 15:53:49 - 15:53:56 !sadol :i+91!@>i0:i-i1 15:53:56 0 15:53:59 pikhq, static does not prevent inlining 15:54:04 !sadol :i+91!@>i1:i-i1 15:54:04 1 15:54:08 pikhq, rather it makes it more likely 15:54:16 Oh, right. 15:54:17 pikhq, since compiler can know function isn't used from outside 15:54:25 The *lack* of static would. 15:54:25 :p 15:54:55 ais523, anyway, once I removed the -*- line I can parse your file. The issue with with the initial memory all zero propagation pass 15:55:00 And actually, it wouldn't prevent inlining, it'd just make sure there was a non-inlined one. 15:55:15 AnMaster: incidentally, [>>>>>>] and [>>>], etc, are very very common in gcc-bf 15:55:17 ais523, which as it goes, builds a set of clobbered locations, and converts those + into sets 15:55:19 they're how I implement pointers 15:55:31 but the bit at the start is just initialising memory with constants 15:55:33 -!- coppro has quit (Connection timed out). 15:55:42 ais523, they are turned into seek nodes, and I can't currently track max/min bounds on where it could move 15:56:00 only think I know after a seek is that current cell will be 0 15:56:01 theory: I may somehow be able to get smaller programs by automatically setting every third cell to 1 15:56:13 ais523, err? 15:56:25 I mean, some sort of loop that sets every third cell to 1 15:56:30 rather than doing it all by hand 15:56:38 trying to figure out when to end might be tricky, though 15:57:05 ais523, it would really need converting into a loop. From unrolled code 15:57:21 something I can't do currently. Nor do most other BF programs gain anything from it 15:57:46 ais523, anyway it isn't trivial in that program 15:57:47 p[10079]=2; 15:57:47 p[10081]=1; 15:57:47 p[10084]=1; 15:57:47 p[10085]=118; 15:57:47 p[10087]=1; 15:57:48 p[10090]=1; 15:57:50 p[10091]=6; 15:57:54 p[10093]=1; 15:57:56 a section of the constant folded code 15:57:58 from the start 15:58:03 ais523, not EVERY cell is actually 1 15:58:05 AnMaster: yes, the idea would be to set all the non-third values separately 15:58:06 some are other values 15:58:08 then set every third cell to 1 15:58:14 if you look, you'll notice that every third cell is 1 15:58:17 just some of the others have values too 15:58:33 that's the equivalent of the initialised data section 15:58:46 ais523, can't you optimise out atexit() and such 15:58:46 atm, I mix bss in with initialised data just because it's easy, I may optimise that later 15:59:01 rewrite the stdio used in your libc 15:59:03 AnMaster: it's not particularly easy to optimise it out 15:59:05 to be bf sane 15:59:13 given that it might be in a different object file, or a library 15:59:32 ais523, you would know at link time. Store enough metadata to do LTO 15:59:48 possibly worth it for the future 15:59:53 ais523, also , user could give -fwhole-program 16:00:00 although atexit's pretty small, most of the bloat is because atexist brings in malloc 16:00:05 ais523, oh and I think -Os would be the sanest for gcc-bf 16:00:07 *atexit 16:00:11 AnMaster: agreed 16:00:18 good point, actually, that compile was with -O0 16:00:23 because I forgot to give an optimisation option 16:01:03 p[-42]+=255; 16:01:03 p[-37]=0; 16:01:03 p[-36]+=255; 16:01:03 p[-31]=0; 16:01:03 p[-30]+=255; 16:01:06 oh, but it'll hardly make a difference 16:01:06 and so on 16:01:09 that seems rather silly 16:01:10 as optimisation options don't affect libc 16:01:17 ais523, use an optimised libc 16:01:25 -Os for it too I mean 16:01:40 well, yes 16:01:43 I'm not sure what I use at the moment 16:01:45 probably -O2 16:02:09 p[-49]=p[-45]; 16:02:09 p[-8]+=p[-45]; 16:02:09 p[-45]=p[-8]; 16:02:10 hm 16:02:17 that could be optimised I think 16:02:25 except I can't really detect that reliably currently 16:02:28 AnMaster: incidentally, the p[-42]+=255, etc, is gcc initialising the stack 16:02:40 ais523, to -1 every other cell? 16:03:00 or, that depends on what current value is 16:03:03 no, it's wiping out the markers that state that there is a stack element there 16:03:07 I think it's probably changing 1 to 0 16:03:42 ais523, also it contained dead code 16:03:49 I found this due to it triggered a bug 16:03:56 a balanced loop containing a dead unbalanced one 16:04:04 caused an exception 16:04:09 fixed that now 16:04:32 I wonder what the dead loop is in the original ABI? 16:04:42 ais523, I have no idea *where* it was even 16:04:59 ais523, I don't track any sort of position information 16:05:55 to the degree that when parser hits mismatching [] it can only say that happened, but not where 16:06:18 ah, obviously I'm spoilt with bfrle 16:06:25 ais523, oh? 16:06:40 it gives pretty good errors 16:06:54 ais523, well, it dumps what I need to fix ICEs currently 16:06:58 which this was recorded as 16:06:58 things like a tape dump as soon as the IP is anywhere other than where gcc-bg thinks it is 16:07:04 *gcc-bf 16:07:25 and with columns marked so as to show what gcc-bf uses them for 16:07:34 it was due to balance=false cells_touched_dict_complete=true not being supposed to happen 16:08:26 -!- inurinternet has joined. 16:08:35 so I thought of possible reasons, wrote a small test case, which turned out (as expected) to trigger it, then I fixed it so the test case worked, and then gcc-bf also worked 16:08:36 err 16:08:47 s/gcc-bf/the gcc-bf program/ 16:09:42 at least gcc-bf looks like a simple practical way to generate the longest BF programs ever 16:09:49 I'm emulating an entire processor in there 16:09:59 and it has its own mini-OS 16:10:14 ais523, I don't know how large it is without RLE... The RLE encoding is smaller than lostking though 16:10:53 yes, but just imagine how large it would be if I used stdio 16:11:00 ais523: A *processor*. 16:11:01 Wow. 16:11:14 pikhq: it has a stack, a heap, and 64 registers 16:11:28 Imagine if you emulated libc via PSOX. 16:11:29 oh, and an instruction pointer 16:11:36 pikhq: I already emulate much of libc 16:11:41 even a filesystem 16:11:49 ... Shit. 16:11:53 although it's a kind of rubbish one, only marginally better than DOS 1's in some respect 16:11:55 That's impressive. 16:12:00 of course, this would all be more impressive if it actually worked 16:12:08 True. 16:12:53 ais523, anyway I have now added a parser module for it. And pushed. Note that 1) It can currently only be used manually from the erlang REPL, not from the shell script wrapper. 2) It throws and user_error exception on * with isn't followed by at least one digit. 16:13:42 "Invalid instruction to multiply.", "No integer found after *. ASCII ~B found.", "Integer expected but found EOF.", "Multiply not allowed without instruction in front." are possible errors for it 16:13:57 the last one happens for [* too 16:14:03 or you could just treat the * as a comment 16:14:17 otherwise, how could I get emacs to highlight .bfrle files in brainfuck-mode? 16:14:22 since the code is recursive and sees the same for [* and "start of file"* 16:14:52 ais523, well I asked you about format before, but if you changed your mind, sure. Just make an official spec first ;P 16:15:12 maybe once I get gcc-bf working 16:15:29 bitshifts and 32-bit loop are the main things I'm missing, I think 16:15:36 and a decently efficient multiply algorithm 16:15:50 I suspect I used the copout of addition in a loop, it's a while since I did that though so I can't rememebr 16:15:52 *remember 16:16:30 ais523, so would you say that * with no integer after is to be treated as comment? Does this apply when * is last in the file too? 16:16:44 I can't possibly handle the case of * after [ or at start of file as comment though 16:16:50 not without rewriting the parsing completely 16:16:59 (for those instructions) 16:17:04 AnMaster: * with no integer after treated as comment is likely to be good enough 16:17:14 ais523, but it must have something before 16:17:28 that's fine 16:17:42 ais523, and that something must not be a [ 16:18:24 again fine 16:18:30 although what crazy parsing method are you using? 16:18:42 ais523, what? 16:18:48 parse_binary(<<>>, Tree, 0) -> 16:18:48 {<<>>, lists:reverse(Tree)}; 16:18:48 parse_binary(<<>>, _Tree, _Depth) -> 16:18:48 ?THROW_USER_ERROR(unbalanced_loop); 16:18:54 parse_binary(<<$+ ,T/binary>>, Tree, Depth) -> 16:18:54 parse_binary(T, [#bfn{ ins = add, val = 1 }|Tree], Depth); 16:18:54 parse_binary(<<$- ,T/binary>>, Tree, Depth) -> 16:18:55 parse_binary(T, [#bfn{ ins = add, val = 255 }|Tree], Depth); 16:18:57 parse_binary(<<$> ,T/binary>>, Tree, Depth) -> 16:18:59 and so on 16:19:01 seems clear enough? 16:19:09 handles unknown one at the end and such 16:19:17 ais523, with me that far? 16:19:33 AnMaster: why can't it just treat unknown as comment, like every other bf interp does? 16:19:40 ais523, it does 16:19:44 parse_binary(<<_H,T/binary>>, Tree, Depth) -> 16:19:45 parse_binary(T, Tree, Depth). 16:19:46 like that 16:19:47 at the end 16:19:48 also, that's so much uglier than the equivalent Cyclexa 16:19:49 however for * 16:19:56 almost certainly, at least 16:19:57 parse_binary(<<$* ,_T/binary>>, [], _Depth) -> 16:19:57 ?THROW_USER_ERROR("Multiply not allowed without instruction in front."); 16:19:57 parse_binary(<<$* ,T/binary>>, Tree, Depth) -> 16:19:57 parse_integer(T, [], Tree, Depth); 16:20:01 I haven't specced out Cyclexa fully yet 16:20:08 parse_integer then calls parse_binary again 16:20:20 so they are mutually recursive 16:20:52 ais523, it is almost same code as the normal parser 16:21:05 ais523, apart from handling * 16:21:28 ah, ok 16:21:43 ais523, I didn't see any reason to change the code too much. 16:21:50 the traditional LR(1) method would be to look at the next char, if it's an integer than parse it as an integer, otherwise just pass it back to parse_binary 16:21:56 that prevents duplicating code 16:22:16 in fact, I think that works even in LR(0) 16:22:17 ais523, um? How do you mean 16:22:30 AnMaster: you said parse_integer and parse_binary had almost the same code 16:22:34 which implies they're mostly duplicates 16:22:46 no 16:22:49 you misunderstood 16:23:03 ah, ok 16:23:03 parse_binary is almost the same as for the normal BF parser 16:23:29 ais523, is this how you mean for integer parser then: http://rafb.net/p/u0xfRT89.html 16:23:47 also that to_integer failed should be THROW_ICE 16:23:48 typo 16:24:31 that looks about right 16:26:11 contains a few typos 16:26:12 * AnMaster fixes 16:27:08 -!- FireFly has joined. 16:28:31 hmm... latest update on the door situation: the main doors are broken and have been for over a week (and so are getting locked by hand), and the other doors are behaving themselves for once but security sometimes locks them by mistake 16:28:57 so the emergency door in the basement, the one that actually works, has now been set to let anyone leave, to prevent people getting accidentally locked in the department 16:28:59 still not properly fixed heh 16:29:46 ais523, and for full details of my parsing see: http://bzr.kuonet.org/in-between/trunk/annotate/head:/src/ib_load_file_gccbfrle.erl 16:30:19 ais523, checkout url is as usual http://rage.kuonet.org/~anmaster/bzr/in-between/trunk/ 16:30:31 (I think I mentioned it before right?) 16:30:40 probably 16:30:45 although I don't have an in-between repo 16:30:49 ok 16:31:04 ais523, probably needs Erlang R13B at least 16:31:27 might work with R12B though. But I haven't tested. And I don't have that installed anyway 16:32:09 and no I haven't yet had time to work more on the polynoms. 16:32:41 Polynom? 16:32:44 POLYNOMNOMNOM. 16:33:20 -!- kar8nga has joined. 16:33:35 pikhq, -_- 16:35:41 ais523, and no it won't work to run it directly on it 16:35:55 if you want to I can give you the manual commands for now 16:35:57 brb 16:37:13 -!- ehird has left (?). 16:37:23 -!- ehird has joined. 16:39:54 01:08 AnMaster: nooga, s/beer/water/ ← that's liable to make sweden even more boring for nooga 16:40:26 ehird: England will be next 16:40:41 -!- Corun has changed nick to Corun|away. 16:40:53 nooga: if you drop by hexham you're welcome not to visit me 16:40:59 *oh burn* 16:41:00 -!- Gracenotes has quit ("Leaving"). 16:41:04 okay 16:41:56 10:55 ais523: the second of which would convert either way round, depending on which argument it was given ← omg, prolog does bijective functions elegantly 16:42:00 probably you've met some of my uneducated fellow-countrymans 16:42:12 ehird: it's one of my favourite things about Prolog 16:42:17 and i'm affraid that's all for England 16:42:30 a function which doesn't biject properly, using the same code for both directions, is considered inelegant 16:42:39 yar 16:42:42 although in practice you have to write inelegant code quite a bit 16:42:42 ais523, so do you want those REPL commands or not? 16:42:50 AnMaster: not particularly 16:42:53 nooga: i don't think I've ever seen a pole except in passing 16:42:54 ok 16:43:52 ais523: gcc-bf links? omgwtf 16:44:02 ehird: isn't hexham that village near newcastle? 16:44:11 nooga: town 16:44:14 nooga: abbey town 16:44:20 we have (a) an abby, (b) a market 16:44:28 it's delightfully boring although apparently well-known 16:44:40 i guess if you like old crusty churches it's great 16:44:43 ok I'm going to construct something like lifthrasiir's expression class in erlang I guess 16:45:10 AnMaster: do you have any idea on expression canonicalization? 16:45:25 i'm not sure what the best stretagy is. 16:45:32 strategy* 16:45:33 lifthrasiir, not really currently. I'm just working on a small library to implement it 16:45:37 could be used like: 16:45:41 11:31 lifthrasiir: this is equivalent to W*x-Y*k = X; we can solve W*a-Y*b = gcd(W,Y) then, by extended euclidean algorithm. 16:45:42 11:31 AnMaster: you lost me about there. 16:45:44 ↑ oh come on that was rather trivial 16:45:50 ehird: i don't like churches, even though i'm polish ;p 16:46:05 poly:mul(poly:const(3), poly:cell(-2)) to create something meaning p[-2]*3; 16:46:09 bbl 16:46:14 -!- nooga has quit (Client Quit). 16:46:18 nooga: then the only thing you could do in Hexham is either come on the right day and look at the boring market and not visit a 13-year-old named elliott hird 16:46:19 lifthrasiir, does the API seem sane to you 16:46:30 ehird, he quit 16:46:41 i'm reading the bottom log pane 16:46:41 AnMaster: i'm not good at erlang so i cannot really say. ;) 16:46:47 which is only ~2.8 lines 16:46:49 while logreading 16:47:30 12:17 AnMaster: oerjan, "X is divisible by gcd(W,Y)" implies "resulting in an integer"? 16:47:30 *mind boggles* 16:47:50 err, wow 16:47:56 ehird, terminology fail 16:47:56 duh 16:48:01 latest news (as in today): Itanium will be delayed until 2010 16:48:03 AnMaster: no, basic mathematical knowledge fail 16:48:04 I'm not good at this in Englihsh. 16:48:17 ehird, "divisible by" would be "jämt delbart med" 16:48:18 I didn't realise Intel were still trying to work on it.... 16:48:19 AnMaster: would you know what it meant directly translated to swedish? 16:48:26 ais523: it's used in supercomputer clusters 16:48:32 but it's a bit of a dead horse 16:48:37 it's very much a dead horse 16:48:42 ehird, translated back to English it would be "evenly divisible by" 16:48:44 but you can imagine... replacing supercomputer clusters is ha rd 16:48:47 ehird, which is rather different 16:48:49 as you can see 16:48:51 incidentally, SCO blame IBM for intentionally sabotaging it 16:48:53 thus my confusion 16:48:59 ais523: what, itanium 16:48:59 ? 16:49:01 although I'm not entirely sure why, or why they thing this helps their case 16:49:02 ehird: yes 16:49:04 ehird, ... 16:49:06 ais523: lol wat 16:49:07 AnMaster: k 16:49:08 *think this helps 16:49:28 I gave up trying to understand SCO logic months ago 16:50:04 -!- BeholdMyGlory_ has joined. 16:50:26 in other news, i have decided to write a brainfuck-or-something interpreter in the excellent language Plain English. Slereah_ will be plased. 16:50:38 lifthrasiir, basic "units" you could consider as constant:Value and cell:Offset . These can be combined like (+ basic_unit basic_unit) 16:50:40 -!- BeholdMyGlory has quit (Read error: 60 (Operation timed out)). 16:50:48 lifthrasiir, except that these operations could be nested 16:50:49 -!- BeholdMyGlory_ has changed nick to BeholdMyGlory. 16:50:57 so you have such an expression in the place of the basic unit 16:51:09 oh, I see: according to SCO, IBM created a market for Linux by refusing to advertise Itanium correctly, thus causing a big 64-bit UNIX partnership to fail 16:51:26 ais523, err... what 16:51:26 ais523: what 16:51:33 how does that follow in any universe :D 16:51:37 Itanium is Intel, not IBM 16:51:45 AnMaster: ... 16:51:52 AnMaster: read it a few more times. 16:51:53 let's just say, SCO logic does not make a whole lot of sense however you look at it 16:52:18 oh, and all this was a distraction to make SCO fall behind developing UnixWare 16:52:32 ehird, why would IBM advertise Itanium at all, They would be more interested in their own POWER Arch I think 16:52:37 ais523: someone has to diagnose them with some sort of mental illness and quickly 16:52:57 AnMaster: so that everyone switched to their brand-new version of 64-bit UNIX 16:53:06 ais523: http://esolangs.org/wiki/Apple3.14 ← can you delete this? even I think it's not worth keeping and I hate deleting things 16:53:08 heh 16:53:55 ooh, and that's how IBM managed to steal SCO's trade secrets and put them into Linux 16:54:06 ehird: I can, but it isn't obvious spam, so I suggest you start a delete debate on the talk page 16:54:19 LOL@ AnMaster not realising that [foo] doesn't infiniteloop atthe start of a program 16:54:32 ais523: in that case I'll just leave it, more trouble than it's worth 16:54:41 ehird, I certainly do. I already had an optimiser pass removing it for several days 16:54:46 that removed those 16:54:47 -!- Corun|away has quit ("Leaving..."). 16:54:49 AnMaster: dude, read the logs 16:54:51 ehird, was just a temp brain fart 16:54:58 right 16:54:59 still funny 16:55:00 ehird, you seem to imply I didn't know it before. 16:55:05 mmmnope 16:55:07 never said that 16:55:18 then I misinterpreted 16:55:47 ais523: LostKng has no comments because it's compiled code... 16:55:58 well, apart from the hand-added authorship info 16:56:08 ehird: the [-][.] at the start is rather curious 16:56:20 ais523: BFBASIC is a dumb compiler 16:56:31 I can't even think about how a compiler would begin to generate that 16:56:51 I mean, AnMaster points out -[-] in gcc-bf output, but that's simply a consequence of a switch case with no code in 16:57:09 12:52 AnMaster: lifthrasiir, what is the universal way. That reveal all the relevant instance data ← none, and this is by design 16:57:13 that's evil in any OO language 16:57:28 ais523, and I know there is other dead code in it. Just no idea where 16:57:31 ehird: for debugging? 16:57:39 13:44 AnMaster: when he gets back I have to point out that 16:57:39 13:44 AnMaster: [-*- brainfuck -*-] 16:57:39 also, I doubt it's evil in SmallTalk 16:57:40 ↑ how is that invalid? 16:57:40 ehird: inspection doesn't hurt encapsulation. inspection is very useful for debugging. 16:57:46 yes, for debugging 16:57:48 ehird, read 16:57:48 the 16:57:49 but not for anything else 16:57:49 ehird: I use * for run-length encoding 16:57:49 full 16:57:51 scrollback 16:57:54 before commenting 16:58:01 ehird, ^ 16:58:07 AnMaster: ok mr "it is so annoying when you use multiple lines to say things" 16:58:08 ehird, it has already been resolved 16:58:24 I occasionally use multiple lines to say something, but mostly due to pressing return by mistake 16:58:25 ehird, it spreads easily from you 16:58:42 AnMaster: yes, soon you'll absorb all of my behavior and use me as an excuse 16:58:44 yes, for debugging <-- and that was the purpose 16:58:51 -!- Hiato has joined. 16:58:54 'cept you're doing it far more often than I am, I haven't used multiple lines for about a week 16:58:56 haha: Microsoft attempted to patent the iPod's user interface 16:59:00 just before Apple tried 16:59:00 ais523: wat 16:59:03 as a result, neither of them succeeded 16:59:04 ais523, isn't that old? 16:59:10 yes, but I only just discovered it 16:59:14 and it is rather funny 16:59:15 ah 16:59:18 yeah it is 16:59:44 it seems that Apple got the patent, or a similar one, eventually, though 17:02:28 hm any better idea for a function called div that divides. div is a keyword in Erlang. To fit with a series of functions called add, sub, mul, mod 17:02:35 AnMaster: divide 17:02:40 along with add, subtract, multiply, modulo 17:02:43 crazy I know! 17:02:50 ehird, too verbose :P 17:02:51 but meh 17:03:19 finally my logreading is over 17:03:41 AnMaster: ugh, keywords 17:03:59 ais523, well I could quote it like 'div' and use that for a function name 17:04:04 but that would be fuggly 17:04:12 fugly* 17:04:24 AnMaster: do you have to do 17:04:25 2 add 2 17:04:27 instead of 17:04:27 2+2 17:04:29 in erlang? 17:04:34 ehird, no 17:04:40 then why is add a keyword 17:04:41 div is probably integer divide, like in basic 17:04:43 ehird, nor div usually. div is "integer division" 17:04:47 oh. 17:04:52 and add isn't a keyword, it's anmaster's function name 17:04:52 unlike / which results in floating point 17:04:55 yep 17:05:01 it was just div that collided 17:05:04 * ehird writes a brainfuck interpreter in Plain English >:) 17:05:21 thus proving the shittiest turing complete language yet 17:05:40 ehird, there is a real plain english programming language 17:05:44 I know. 17:05:47 I'm writing in that one. 17:05:49 The osmosian shitfest. 17:05:51 ehird, that really works 17:05:52 I mean 17:05:54 .. 17:05:55 not called plain English 17:05:58 I know you idiot. 17:06:01 ehird, IRP! 17:06:02 And it is called Plain English. 17:06:06 https://www.osmosian.com/ 17:06:09 ... 17:06:11 duh 17:06:15 you totally misunderstood me 17:06:21 Nope, you were vague. 17:06:24 Big difference. 17:06:55 " ehird, there is a real plain english programming language" <-- unlike that one you are talking about. If I had meant it I would have used "Plain English" not "plain english" 17:07:04 though it should have been "plain English" 17:07:05 actually 17:07:28 lifthrasiir, there still? 17:08:09 yes. 17:08:12 AnMaster: do you have any idea on expression canonicalization? <-- simply() would be the API I guess. Not sure about how to generate a representation for backend output 17:08:16 but still busy at work. 17:08:33 Some code is a string. To interpret some code: ... 17:08:55 lifthrasiir, I guess I could shell out to a CAS to simplify :P Like maxima 17:09:01 but that would be a horrible way 17:09:06 AnMaster: should just tree walking be sufficient? 17:09:13 (for backend output) 17:09:17 ais523: someone just claimed that +[+] is a BF infinite loop.. 17:09:18 . 17:09:21 maybe they mean bignums 17:09:37 lifthrasiir, probably, but I was going to make representation internal to the polynom module. 17:09:51 lifthrasiir, so maybe it needs a walk function that the backends call 17:09:53 "a string thing is a thing with a string." —the noodle 17:10:03 -!- BeholdMyGlory has quit (Remote closed the connection). 17:10:10 lifthrasiir, the internal representation would also contain stuff like dependencies 17:10:25 to simplify other analysis passes 17:11:35 actually esotope-bfc takes much time for recalculating the derived information (like referenced cells) again and again. 17:11:58 lifthrasiir, ah I store that when possible 17:12:02 that's only one room for improvement. (sigh) 17:12:05 [["If the government tells us as Chinese citizens we should not know about something and shouldn't be searching material, we should be responsible and obey," Hou said.]] 17:12:08 just* 17:12:20 lifthrasiir, I have plenty of TODO too 17:12:47 lifthrasiir, from some causal looking at generated outputs, bfc does better sometimes, and ib at other times. 17:12:51 AnMaster: since ComplexNode is derived from python builtin list, it cannot determine when those informations are invalidated. so it cannot cache them. 17:13:04 lifthrasiir, err? 17:13:08 why not 17:13:23 lifthrasiir, for me it is just a dict that is stored in the node metadata 17:13:24 AnMaster: well it is not impossible, but too much work. 17:13:27 sorry thunderstorm 17:13:30 shutting down 17:13:45 ;) 17:14:25 [[ if the rider's token is not "if", abort with "It's 'Decide IF.' We always say, 'Decide IF'. Got it?" and the rider; exit.]] 17:14:29 * ais523 vaguely wonders why a thunderstorm forces AnMaster to shut down 17:14:41 iirc python list has dozens of methods possibly can manipulate the list, or not. 17:15:21 even if we can track them, mutable object will be another source of pain 17:15:23 ais523: in case he loses data!11 17:17:53 -!- kar8nga has quit (Remote closed the connection). 17:21:20 hmm 17:21:28 i can't figure out how to get the first char of a string in plain english 17:21:53 ehird: "Plain English" as a programming language? 17:22:02 lifthrasiir: a truly awful one 17:22:04 https://www.osmosian.com/ 17:22:11 click What Our Customers Could Be Saying 17:22:12 rather amusing 17:22:22 they charge $100 for it but the file was on a URL unprotected 17:22:26 so heh 17:22:27 yes i know. i was just to decide what type it is. 17:22:41 lifthrasiir: it's serious, but terrible 17:22:48 it looks about as much like english as applescript 17:22:58 OH NOES APPLESCRIPT 17:23:08 here we go 17:23:10 [[ var calfilelocation="cal-3037.zip"; ]] 17:23:18 the purchase page requires a purchase before redirecting 17:23:24 but the upgrade page redirects clientside 17:23:24 :-) 17:23:31 wait, nope 17:23:34 filelocation=calfilelocation; 17:23:40 purchase does it too 17:27:51 [[to append a string to another string (handling email transparency):]] 17:27:56 ais523: do you have any idea wtf that means? 17:27:59 no 17:28:55 good, I don't either 17:30:34 -!- AnMaster has quit (Connection timed out). 17:31:42 [[ 17:31:42 to cluck: 17:31:44 play the cluck sound. 17:31:46 the cluck sound is a wave equal to $524946463A02000057415645666D74201200000001000100401F0000401F000001000800000066616374040000000702000064617461070200007F7F807F7F807F7F808080807F807F7F80817F81817E7E827E7D847C79877D5F6D99B2A25D608269A5979869667F7D8D738C7D8C5E7E878F767A75868D84797278829A7D7E857A73929271657492907D7E7D787E8B887C758388827E817F7C7B89897C7A7E84838183827E7A8488877D7E8181808484817C7F84838181807E7F8283807E8081808182807F7F81818081807F7F808181808080 17:31:51 7F7F808180807F80808080807F8080807F8080808080807F7F7F7F7F8080807F7F7F7C7B8182817C7B7D7E8082807D7D7C7F8281807F7C7D808082807E7E7E7D7E807D7B7C7B7D7D7B7A7979797875727269797A490F4571FFF4FF0C001297FBF492525BB0F5B26A001C69BEE5BA76476F9EBD953C3757BAC9BB705C7F9AA883645D7897AA9B806977959588696976999B83766F828C907F7375828E91877B757D868B837A757C858D8880787B8187847B7A7D8788807B79808486817D7C7F8384817D7C7F8484817B7B7D83847F7C7B7E8182827D7C7C8082817D7C7D7F81807F7D7D7F82 17:31:56 817F7B7B7E8081807E7D7D7F80807E7D7D7E80807E7D7D7E7F807F7D7D7E7F807F7E7D7E7E80807F7E7D7E80807F7E7E7E7F7F7E7E7E7F7F7F7F7E7E7F7F807F7F7E7E7E7F8080807E7E7E80807F7E7E7F8081807F7F7E7F7F80807F7E7F8081807F7E7E7E80808080807F807F7F7F7F7F7F7F80808080807F7F7F808080807F80808180807F80808100. 17:32:00 ]] 17:32:02 that's in the standard goddamn library 17:32:04 i mean WHUT 17:40:49 oh boy 17:40:54 they use "say" for return 17:43:21 Routines of this kind are called "deciders", and they 17:43:21 always start with the words TO DECIDE IF. If you've had the misfortune of 17:43:22 programming in a less natural language, and you can't help yourself, you can 17:43:24 think of deciders as boolean functions. 17:47:33 cluck.wav: RIFF (little-endian) data, WAVE audio, Microsoft PCM, 8 bit, mono 8000 Hz. Well, I guess the 52494646 and 57415645 parts were quite a giveaway. 17:47:55 Hahah. 17:47:56 fizzie: Yes, but 17:48:06 What a stupid thing to have in (a) the standard library, (b) as a literal 17:48:07 :P 17:48:11 fizzie: what does it sound like? 17:48:25 oh the cluck sound? 17:48:26 from the editor 17:48:28 that thign is annoying 17:48:47 I don't know what it is; it sounds like http://zem.fi/~fis/cluck.wav 17:48:48 So far: 17:48:50 Some code is a string. 17:48:50 17:48:51 To interpret some code: 17:48:53 If the code's first target is the plus byte, exit. 17:48:55 17:48:57 To run: 17:48:59 Interpret ",[.,]". 17:49:02 fizzie: yep that's the cluck sound from the editor 17:49:26 Hrm. 17:49:48 Annoyingly, Plain English uses manual memory management... EXCEPT for strings. 17:49:56 So I might represent the tape as a string 18:22:56 wow 18:22:59 there's an msn-owned site 18:23:00 -!- tombom has quit ("Peace and Protection 4.22.2"). 18:23:03 advocating an illegal windows-based product 18:31:19 wow again, there's an Itanium windows xp 18:32:33 Why, yes. Windows decided once again to support another architecture. 18:32:37 Poorly. :p 18:33:57 heh 18:34:31 apparently Linus used to claim that Linux was unlikely to be supported on anything but the 386, as he'd written it in order to learn the weird corner cases of 386 assembly 18:34:33 -!- Corun has joined. 18:34:59 Yes, and it got a lot of reworking to support a second architecture. 18:35:07 From there, it wasn't too hard to port. ;) 18:35:45 Hmm. I wonder why one would run Windows on Itanium, though. 18:36:02 It loses the main benefit of Windows; namely, your already-obtained programs work. 18:37:09 pikhq: ENTERPRISE SERVER DEPLOYMENTS 18:37:47 ehird: Make that "programs you wish to run work". 18:38:11 It's not windows therefore it is not suitable for enterprise deployment 18:38:12 QED 18:38:12 I highly doubt that anything Windows-only works on Itanium, aside from its x86 emulation stuff. 18:38:16 Therefore we must use Windows 18:38:25 Ah, right. That mindset. 18:38:35 The one that doesn't care that it's dumb. 18:41:53 pikhq: Also, existing programs arguably aren't a good reason to use Windows any more: Parallels Desktop for the Mac, for instance, can run Windows programs *under the OS X windowing system*. 18:42:06 Ah, right. 18:42:16 So apart from the whole god-Windows-programs-are-ugly thing, and it being a little slower than regular, you don't need to use Windows to use Windows programs perfectly. 18:42:27 Virtual Box does the same on Linux. 18:42:48 Poorly P 18:42:49 *:P 18:42:49 and you can get virtualised Win XP with the more expensive versions of Win 7 18:42:53 pikhq: Does it, thoug? 18:42:54 h 18:42:59 Doesn't it put everything in one window? 18:43:17 ehird: Yup, it's just a window with holes in it. 18:43:19 ehird: It's started doing a seamless desktop mode. 18:43:28 pikhq: But that's just one window with holes in it. 18:43:31 I'm sure Oracle will fix that X-P 18:43:32 GregorR-L: Window with holes... isn't that what we're talking about? 18:43:37 ;-))))) 18:43:39 Geddit 18:43:40 -!- kar8nga has joined. 18:43:41 I made a joke about windows 18:43:44 That's funny, see. 18:43:46 OMGLOL 18:43:57 IF YOU DECREE THAT IT'S FUNNY THEN IT IS 18:43:58 GregorR-L: ORLY? 18:44:02 Anyways. 18:44:07 ORALLY? 18:44:26 Mind you, it still looks nifty for 1/4 of a second, which is why that feature exists. 18:44:45 Parallels integrates quite a bit further, anyway - total filesystem mapping, OS X programs as Windows ones and vise-veras, etc. 18:44:50 Seems that VirtualBox is working on improving that feature. 18:44:52 (Windows go in the taskbar, ...) 18:44:58 Er, dock. 18:45:16 And 3D stuff, too. 18:45:27 Yeah. You don't want to run a modern game on it, though. 18:45:46 I don't want to run a modern game on my system, anyways. 18:45:46 :p 18:45:57 pikhq: I mean anything after 1999. 18:46:20 ... 18:46:34 * ehird puts Opera on the Windows VM; Firefox is a bit too much for it. 18:46:36 Even with it using the recent virtualisation stuff? 18:46:45 pikhq: Well, maybe. 18:46:51 It's still not nearly as fast as a native thingy. 18:46:56 Runs W:A just fine, though. 18:47:14 So, Parallels doesn't compare too well to Xen. :p 18:47:42 pikhq: Xen isn't a nicely-integrated desktop interface to Windows. 18:47:45 (granted, anything IO-based in Xen is fucked, and Xen doesn't do 3d...) 18:48:15 Yeah, Xen is just crazy-good virtualisation. ... And not much else. 18:48:46 * ehird reads about how sand is turned into silicon for semiconductor chips by making it visit the sauna. 18:49:06 (It's true enough.) 18:52:01 It's a miracle chips actually work. 18:55:35 -!- Sgeo has joined. 19:11:54 -!- oerjan has joined. 19:14:51 -!- Corun has changed nick to Corun|away. 19:14:52 07:14:42 oerjan, removing dead loops happen way later than parsing 19:14:52 07:14:59 >_< 19:15:09 ok forget that, i managed to read that exactly backwards :D 19:15:17 I usually read dead loops before parsing. 19:15:22 s/read/remove/ >_O 19:15:51 oh AnMaster is not here 19:15:53 how rude 19:17:18 [-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[- <-- this looks really strange 19:17:37 actually that's a perfectly reasonable way to translate a switch/case statement... 19:18:50 * oerjan realizes the <-- convention doesn't look good when requoted 19:18:57 :P 19:19:06 * GregorR-L got it 19:19:37 Also, I have a lap kitty. 19:20:11 i could have added another at the end, but copying from the logs tends to include the final newline for me, even when i don't want it :( 19:20:40 laptop kitty? 19:21:06 as long as it isn't a laptoptop kitty 19:21:08 Well, she's more "in" my lap than "on" my lap :P 19:21:32 hot 19:21:53 Yeah, I've got a pussy between my legs. 19:23:04 -!- Corun|away has changed nick to Corun. 19:23:35 Corun: the categorical dual of a run 19:35:50 08:21:50 the traditional LR(1) method would be to look at the next char, if it's an integer than parse it as an integer, otherwise just pass it back to parse_binary 19:36:16 technically treating +* as + then * if not followed by an integer is at least LR(2) 19:36:33 oerjan: except I treat +* as +, then * as "repeat last command more times" 19:36:39 that would break on *0, but not otherwise 19:36:51 and I think leaves the grammar LR(0) 19:36:53 or maybe LL(1) 19:36:56 ais523: that's not context-free 19:36:56 is it? 19:37:04 * depends on its previous command for context 19:37:07 in that form 19:37:12 yes, but it depends only on previous 19:37:15 so no lookahead is needed 19:37:25 ehird: that's not enough for non-context-free 19:37:32 hmmmmmmmmm 19:38:07 of course an elegant workaround is to say * without following integer = *1 19:38:16 same effect 19:38:34 -!- Corun has changed nick to Corun|away. 19:38:37 that's elegant? 19:38:53 * oerjan swats ehird in an elegant way -----### 19:39:02 ok, *kludgy* then 19:39:49 elegant, kludgy, what's the difference. 19:40:12 precisely 19:40:27 precisely nil! 19:40:50 http://www.underfoule.net/b/src/124300263346.jpg 19:40:50 Well hello there sexy mama 19:42:07 Slereah_: SICP? What a useless piece of shit; haven't they ever heard of Plain English? 19:42:11 I'm part of the Osmosian order you know! 19:43:22 Is there a loyalty oath? 19:43:45 No, we're just enlightened. 19:44:21 I wonder what that guy does in life 19:44:24 Slereah_: they have to go around carrying lamps all the time 19:44:28 Is he trying to sell his product? 19:44:35 The Grand Negus said on 01/11/07 23:29:22 19:44:35 By the way, the Plain English Compiler is written entirely in Plain English and can recompile itself - with all of its development tools - in less than 3 seconds on a bottom-of-the-line Dell. 19:44:38 He is a grand negro or something 19:44:56 Slereah_: [[Adam R: Write me (help@osmosian.com) and I'll show you how Plain English can recompile itself. No cost or obligation. It's not quite like writing PHP5 in PHP5; it's like writing PHP5 using PHP4. ]] 19:45:03 Helping people without getting money??!?!! 19:45:05 if he was a negro, wouldn't he using Plain Ebonics? 19:45:11 Zing! 19:45:15 Plain English is a language, right? 19:45:20 which looks a lot like real english? 19:45:22 oerjan: he's hooked on phonics 19:45:27 ais523: for some values of a lot 19:45:30 and it costs $100 19:45:35 and their site says that bill gates is sad he didn't come up with it 19:45:38 chomsky too for some reason 19:45:39 and k&r 19:45:39 etc 19:45:44 except they use JS 19:45:49 so you can just pilfer the download URL out of the page source. 19:45:56 ok, that's rather ridiculous 19:46:09 Only the tip of the iceberg, ais523 19:46:11 ais523: the manual also sexually harasses you 19:46:15 and keeps calling windows/intel a whore and a kludge 19:46:23 and has its own terrible handwriting-esque font 19:46:28 also, their website is all gifs with holes for form fields 19:46:32 so, it's most likely a joke, right? 19:46:33 clicking on a "link" uses js to change the gif location 19:46:35 oerjan: no 19:46:39 it's absolutely serious, I'm afraid 19:46:44 and the ~10,000 lines of code actually work 19:46:45 I acquired a laptop cat too. It's very sharp. 19:46:47 and it can actually compile itself 19:46:50 (in less than 3 seconds!!!12512) 19:46:58 i guess it's a little elaborate for a joke 19:47:18 i'm afraid it's not a joke in any form 19:47:39 You forgot one part, 19:47:41 The GUI : 19:47:42 http://membres.lycos.fr/bewulf/Divers8/Cal.jpg 19:47:48 then you may be forgotting the joke on the author 19:47:49 Slereah_: That also. 19:47:52 Would you like to use this, or kludgy old windows? 19:47:58 *forgetting 19:48:02 oerjan: it's not a joke, honestly 19:48:07 I've researched this indepthly 19:48:14 (he googled) 19:48:26 That also. 19:48:27 ehird: doesn't joke on the author mean what i think it does? 19:48:33 oerjan: oh right 19:48:36 you just worded it oddly 19:48:49 Misread "you just whored it oddly". 19:49:06 He's pimpin'. 19:49:18 fizzie: the manual actually talks about the gui's fullscreenness as liberating you from the kludge 19:49:42 Regarding the "bootstrapping compiler" you mentioned, I'm afraid it is now lost in the annals of programming history. It was a Pascal-like language of our own design and was implemented using a very tiny subset of Borland's Delphi. We employed it briefly to produce the extremely minimal CAL-1000 (our first Plain English development system) and then immediately abandoned it. At that point we took the Osmosian Oath ("I promise never to program in any langu 19:49:44 age but my own" and used the CAL-1000 to develop the more robust CAL-1001, entirely in English. The CAL-1001, in turn, was used to produce the more capable CAL-1002, again in English, and so forth, all the way up to the fully functional CAL-3037, which we released as a commercial product. It's successor, the CAL-3040, is currently in testing. 19:49:49 from 05/11/09 19:49:51 dudes 19:49:53 that's RECENT 19:49:55 fizzie: so what you are saying is that you need to get laid? 19:49:55 A NEW PLAIN ENGLISH COMPILER!!!!11 19:49:59 also, I like how they threw away the bootstrap compiler 19:50:11 and I like how they made a language compiler to make their language compiler 19:50:12 BUT 19:50:16 A NEW CAL RELEASE! Slereah_! 19:50:18 We can pay like $100 again! 19:50:27 o m g 19:50:28 ais523: 19:50:28 [[But the really interesting work is about to begin as we enter Phase II of our project and use the the last of the CAL-series compilers to create the initial incarnation of our "apparently intelligent"(tm) machine, the PAL-1000. ]] 19:50:35 ridiculous 19:50:36 Wolfram Alpha or Singularity? 19:50:38 YOU DECIDE 19:50:50 ais523: (this is a comment on 99-bottles-of-beer.net, lol) 19:51:42 I sure hope this is a joke. 19:51:49 pikhq: it's not, goddamn 19:51:52 I'm afraid it isn't, though. 19:52:07 That should be "wish this were" 19:52:10 When we recently launched our website, www.osmosian.com, it was 19:52:10 classified by Jack Klein as "hideous" and "abusive", and by Randy 19:52:10 They turned a perhaps somehow interesting language into a giant insane joke 19:52:11 Howard as something that "looks like crap". 19:52:12 Kudos 19:52:13 Others, however, said it was "nice and simple", "quite pretty", and a 19:52:15 "very slick" implementation of the AJAX philosophy. 19:52:17 We're confused. Can a woman be both unbearably ugly and delightfully 19:52:19 pretty at once? Of course not. So how can a web site be so? 19:52:21 —help@osmosian.com in comp.infosystems.www.authoring.site-design 19:52:23 They are, unfortunately, not aware of subjectivity, it seems. 19:52:25 It'd explain their strong language. 19:52:56 Note that in those 60 lines, 19:52:56 support for the Home, End, Page Up, and Page Down keys is included. 19:53:01 Slereah_: Their sight has KEYBOARD SHORTCUTS. 19:53:03 *site 19:53:10 It actually works 19:53:18 You mean like if you press F5? 19:53:24 [[>That old kind of image map is not done in a way that is accessible. 19:53:24 What do you mean by "accessible"?]] 19:53:28 WHAT IS BLIND PEOPLES 19:53:29 Slereah_: nope 19:53:33 Slereah_: try home/end/pgup/pgdown 19:53:51 Do I really have to go back on that page? 19:53:58 [[Any good book or web tutorial on Perl+CGI or PHP should give you 19:53:58 the information you need.]] 19:54:01 Oh burn. 19:54:06 Now they're gonna get a taste of Plain English. 19:54:17 You know what I think, every time I see their picture of Noam Chomsky? 19:54:28 I think he looks like Malcolm Corley from Full Throttle. 19:54:51 You may have a point there. 19:54:56 Bill Gates looks like an ape 19:55:43 I wonder if I could like do a program that I might do at werk on Osmosian 19:55:51 Like a model of physics and shit 19:55:57 And write a revioo of it 19:55:57 Slereah_: THE UNIVERSE IS AN ALGORITHM NOT A FORMULA 19:56:09 That's why you can't do exponentiation 19:56:13 Multiplication was enough for Jesus 19:56:37 -!- Corun|away has changed nick to Corun. 19:56:43 lulwut 19:56:52 Slereah_: You can't even do 2+2 19:56:54 It has to be "2 plus 2" 19:56:57 SOMEONE SAID MY NAME. 19:57:03 But this client has not much log 19:57:11 And hi. 19:57:13 Corun: 19:23 oerjan: Corun: the categorical dual of a run 19:57:22 Heh 19:57:27 fungot: Would you prefer to be written in PLAIN ENGRISH? 19:57:27 fizzie: the details of these routines is to set the top of consecutive ram: ffcf ( hex) 65520 ( decimal). normally, when it reaches a non-ram address ( and leaving lis- tener(s) active on the screen, and 19:57:31 Ta 19:57:33 Plain Engirsh 19:57:36 *Engrish 19:57:38 That'd be great 19:58:38 -!- Hiato has quit ("Leaving."). 19:59:43 You know what's great about CAL? I wouldn't be surprised if someone did Trusting Trust on it. 19:59:51 Slereah_: Did you read their docs as the pdf? 19:59:52 Don't 19:59:56 Read the non-pdf version with CAL! 19:59:58 It's awful. 20:00:16 !slashes \\\\ 20:00:17 \ 20:00:19 Inline assembled x86 machine code just screams 'Trusting trust'. 20:00:34 Slereah_: WHAT THE FUCK. Go to cal-3037\lexicon\lexicon 20:00:42 It's a bloody list of words 20:00:47 Does it reject other ones or something? 20:00:50 To force you to use PLAIN ENGLISH? 20:02:19 Slereah_: 20:02:20 - Since we can't know how big the window is, let's pick a minimum and 20:02:20 center the work. 20:02:22 - Let's guarantee the font by using anti-aliased pictures of it. 20:02:24 - Let's guarantee the size and placement of text by using only pictures 20:02:26 of it. 20:02:28 - Let's guarantee the colors by making them part of the pictures. 20:02:30 STOP MAKING WEBSITES 20:03:31 ehird: The lexicon is used by the editor's spell checker. 20:03:39 pikhq: Seriously? 20:03:52 Yeah. 20:03:58 Hey, what a coincidenciey; I just came across another text-in-image "website"; http://tzoot.com/ 20:04:19 fizzie: "frakking hot project integrating Twitter" KILL KILL KILL 20:04:21 STAB STAB STAB 20:04:23 DEATH MODE ACTIVATED 20:04:27 ALL SYSTEMS OVERRIDDEN 20:04:28 The job offer there was posted to the university's internal newsgroupsies. 20:04:30 BOOKING PLANE TO FINLAN 20:04:30 D 20:04:34 GRABBING GUN 20:04:36 BRB 20:05:10 To make a link in their fancy text-as-a-picture system, they've resorted to an image-map. Heh. 20:06:54 pikhq: I feel like I need to praise some tiny part of CAL so that the rest of my criticisms stand out even more. 20:07:13 The filesystem explorer thing works quite nicely, even though it has no fucking place whatsoever in it. 20:08:52 That compiler is pretty bad. 20:09:10 Sticking it in 'Plain English' doesn't help my understanding of it! 20:09:22 pikhq: [[ append "intel $50. " to the routine's body string. \ push eax]] 20:09:31 They just replace all the commands with the intel command, then compile THAT> 20:09:34 No intermediate forms. 20:09:39 Just changing strings into inline machine code. 20:09:49 Especially since there's hardly any commenting. 20:09:52 Yeah. 20:10:19 And they've got the nerve to call this the most advanced compiler around today. 20:10:33 I've written more sophisticated compilers in Brainfuck. ;) 20:10:55 inline asm in plain english, how brillian 20:10:58 *brilliant 20:11:06 And PEBBLE is significantly more sophisticated... 20:11:11 to pluralize a string: \ nouns only 20:11:11 if the string is "alumnus", put "alumni" into the string; exit. 20:11:12 It does dead-code optimisation. 20:11:12 if the string is "auto", put "autos" into the string; exit. 20:11:14 if the string is "cello", put "cellos" into the string; exit. 20:11:16 [etc] 20:11:18 DEAR GOD WHY 20:11:20 WHY WHY WHY WHY 20:11:22 it's huge 20:11:51 But OUR website is OUR brochure for OUR product. 20:11:51 WE should be able to determine what OUR brochure looks like. 20:11:52 —help@osmosian.com 20:11:57 The Web. You do not understand it. 20:12:15 I wonder, what does CAL mean anyway?* 20:12:43 Compile Aur Language? 20:13:00 [[The web was designed as a unix-like file transfer 20:13:00 utility, and nothing more. ]] 20:13:02 Also, PEBBLE 1.0 comes in at 74,787 lines of code... 20:13:05 I'm sure Tim Berners-Lee would not agree. 20:13:12 pikhq: WTF? 20:13:16 How did you make it that big 20:13:28 ehird: Most of that is in the macro system. 20:13:33 o_O 20:13:40 You can implement a great Scheme in like 5k lines. 20:13:42 And most of *that* is in the macros for Brainfuck constants. 20:13:45 finally my logreading is over 20:13:51 74k lines = nuclear reactor control system. 20:13:55 lucky bastard, i still have nearly half left 20:14:12 Erm, sorry. 20:14:16 Miscount. 20:14:30 ... That was the number of characters. 20:14:37 [[Site Visits: 712 20:14:38 Sample Program Downloads: 242 20:14:39 Purchases: 1 20:14:41 And I missed most of the macros. 20:14:41 Actual, unsolicited user comment: "a minor work of genius"]] 20:14:45 I'm sure you didn't make that one up, mr bill gates. 20:14:48 pikhq: How many lines? 20:14:54 14,434 LOC, 225033 characters. 20:15:00 14k is more reasonable for a huge stdlib. 20:15:28 I will now try something I never tried before 20:15:33 A program in Plain English 20:15:34 And I've got 3 versions of some parts of the stdlib. Seems reasonable. 20:15:35 Slereah_: <3 20:15:41 God is with you. 20:15:54 Slereah_: You have to make a new directory 20:15:58 Then Ctrl-C the noodle, enter it, C-v it 20:16:02 then make a new file named anything 20:16:05 for your program code 20:16:09 1,465 LOC if you just count the compiler proper. 20:16:17 (that is one freaking massive stdlib) 20:16:18 Slereah_: Also, you can't just print stuff. 20:16:22 You need to use the shit graphics library 20:16:26 ehird : Can't I just work in the Cal directory? 20:16:30 Slereah_: Nope 20:16:37 It'll compile to cal-3037.exe if you do that 20:16:40 Thus destroying the compiler 20:16:51 Nooooo 20:16:58 I'm going to make a program that calculates factorials in it 20:17:07 Last I checked, I've got just about every bit of the Brainfuck Algorithms page in it. 20:17:26 And some C-specific and interpreter-specific replacements. 20:17:48 How do I... do anything in the GUI? 20:17:54 (the interpreter, being unsophisticated, benefits greatly from those replacements) 20:17:55 I can't do shit apart from opening files 20:18:18 Slereah_: Use the menus 20:18:20 Can't I like open a new file? 20:18:22 N has new 20:18:23 What menus? 20:18:27 Slereah_: The letters at the top 20:18:30 Yes, it's sorted alphabetically 20:18:32 Oh right, I remember 20:18:36 God that is retarded 20:18:40 Slereah_: New directory, name it, ctrl-c after selecting the noodle, 20:18:43 enter the directory, ctrl-v 20:18:47 new file, name same as directory 20:18:48 voila 20:19:08 Why same name as directory? 20:19:17 Slereah_: Because it compiles to directoryname.exe 20:19:25 So presumably you want your source to be named the same without .exe 20:19:29 Well, let's call it nigger 20:19:33 Also I'm not sure how you return a value 20:19:38 "say yes/no" seems to just be for booleans 20:19:45 Oh wait 20:19:49 Maybe you take another parameter 20:19:51 ais523: prolog style! 20:20:02 heh 20:20:10 well, most languages you can express prolog-style passing, it just isn't idiomatic 20:20:13 ah, nope, 20:20:18 it modifies the parameter 20:20:20 i think 20:20:32 Oh. 20:20:37 say result; exit. 20:20:47 "if the number is less than 2, say 1; exit." 20:20:56 Well, Open as text. 20:21:07 Slereah_: wut 20:21:07 Now what do I do, do I follow orders from the tutorial? 20:21:11 Yes. 20:21:12 It's a bit confusing 20:21:17 It is. 20:21:28 I'm not sure how to have more than one variable of the same type in a procedure 20:21:55 What are we tralking about? 20:22:15 Sgeo: Plain English! 20:22:26 s/tral/tal/ 20:22:47 Well, I did the two line program 20:22:52 How do I execute it 20:23:06 Oh, compile 20:23:11 Oooooh, it has a clock 20:23:14 [[to calculate the factorial of a number: 20:23:14 if the number is less than 2, say 1; exit. 20:23:15 calculate the factorial of the number minus one. 20:23:17 To show you how fast it goes! 20:23:17 multiply the number with the factorial.]] 20:23:24 That compiles!11 20:23:29 Three lines, and it took 0.5 seconds to compile 20:23:33 That looks fast 20:24:05 Well, they told me it wouldn't do anything, and it sure didn't 20:24:44 Darn 20:24:48 "I don't know how to 'say [number]'" 20:24:49 ... 20:24:53 it only gave me that error when I actually called it 20:24:54 lolololol 20:25:31 Hm 20:25:42 I like how they say that you don't need to end up by ; and shit 20:25:48 If the number is less than 2, the factorial is 1; exit. ← fails :( 20:25:48 But you still need to punctuate 20:25:54 Slereah_: ; becomes . 20:25:54 :P 20:26:10 Yay, I made Osmosian beep! 20:26:25 How can I like, output text? 20:26:56 Slereah_: You have to draw a background 20:26:58 Hmm. How many LOC is Cplof? 20:26:58 and handle the refresh event 20:27:02 and put the text on the screen 20:27:09 Read the tutorial :P 20:27:23 That sounds like something that would make everyone's lives easier! 20:27:58 Why won't the tutorial go straight to the point, really? 20:27:59 5,000 or so. Man, Osmosian is undense. 20:28:04 Can"'t they just say "Here's a simple program, you can fuck around with it a bit"? 20:28:09 Slereah_: It's totally engagin. 20:28:09 g 20:29:51 Slereah_: I cannot figure out how to return a value from a function without just being implicit 20:29:59 I get that, like, if you say multiply as the last thing, that's the result 20:30:03 But how do I shot early result? 20:30:06 I rage a lot because of the full screen GUI 20:30:16 I have to press the windows key all the time to switch to the pdf 20:30:26 Slereah_: Read it in the editor 20:30:31 Just open instructions instead of instructions.pdf in it 20:30:36 It's delightfully awful 20:31:23 On CAL not running on Linux: "Sorry. It doesn't run on DOS or CP/M either." 20:31:34 haha 20:31:34 LINUX IS A COMMAND LINE BLACK AND WHITE 20:31:37 what /is/ CAL 20:31:41 ais523: the Plain English compiler 20:31:46 ah 20:31:47 and IDE 20:31:48 and file manager 20:31:50 and document viewer 20:31:52 and word processor 20:31:59 Oddly enough, they've made it so that it's not hard to retarget. 20:32:04 and no, you can't compile outside of it 20:32:23 ... Assuming you can deal with its handbuilt ASM. 20:32:37 It was bad when the Linux kernel devs did it, and it's still bad now! 20:34:08 (now, where did they have that, anyways?) 20:34:25 I'm trying to compile stuff, but it asks me how do I compile background 20:34:28 Raaagre 20:34:45 Slereah_: You have to write the subroutine 20:34:47 rtft 20:34:55 Slereah_: You need to bring the noodle over, as well. 20:35:09 But the nüdle is in the same directory! 20:35:12 (/nigger/) 20:35:18 aha, a glossery! 20:35:23 pikhq: no 20:35:29 you need to write your own subroutine 20:35:30 for the background 20:35:39 How do I do that 20:35:43 Ah. 20:35:47 Slereah_: read the tutorial 20:35:48 Now remember. I don't do nested ifs. I don't do nested loops. And I don't 20:35:49 do objects, real numbers, equations, or any of the other menschenwerk that 20:35:51 has inhibited the progress of the human race over the past 200 years. Talk 20:35:53 to me like a NORMAL person, and we'll get along just fine. 20:35:59 pikhq: equations and real numbers has inhibited the progress of the human race for 200 years 20:36:05 *have 20:36:13 ... Inhibited? 20:36:16 * pikhq stabs 20:36:29 I could've sworn the reals were older. 20:36:43 Oh awesome, they call ASCII the Windows-extended ASCII 20:36:53 Windows-1252? 20:36:55 The complex numbers might be about that old, but the reals are ancient. 20:37:06 ehird: ... That's because it is. 20:37:15 pikhq: No, ASCII is ASCII. 20:37:18 Window's "ASCII" is a superset of ASCII that claims to be ASCII. 20:37:21 ASCII != Windows-extended ASCII. 20:37:26 Also, *Windows' 20:37:42 My understanding of things around me became possible when my creators 20:37:42 hard-wired six primitive data types into my brain. These six basic types are: 20:37:43 BYTE, WYRD, NUMBER, POINTER, FLAG, and RECORD. 20:37:45 Wyrds. My creators put wyrds in my brain because I can't talk to the kluge 20:37:47 without them. They are 16 bits long and look to me like numbers from 20:37:49 -32768 to +32767. The bits in each byte are stored left-to-right, but the 20:37:51 bytes are stored backways. I don't like it that way, but the kluge insists. 20:37:51 The most egregious example is smart-quotes. 20:37:53 Wyyyyyyyyyrds 20:38:46 pikhq: I like smart quotes, but Unicode ones. 20:38:48 It's especially annoying that this screws stuff up, since Windows doesn't even use ASCII any more. 20:38:49 But I'm a typography geek. 20:39:07 ehird: If it were proper Unicode left and right quotes, then I'd have no problems. 20:39:19 Pointers. Memory addresses are stored in 32-bit pointers, backways. They 20:39:19 have the same range as numbers, but all the negatives belong to the kluge. 20:39:20 Address 0 is invalid and is called NIL. You can VOID a pointer to make it NIL. 20:39:25 This language is so tied to the kludge 20:39:31 For something that claims to shield you from it 20:39:42 Flags. They're 32 bits, but only the rightmost bit is used. Actually, it's eighth 20:39:42 from the left, but you can think of it as rightmost. 20:39:43 ehird: are you quoting from something? 20:39:45 WWWWWWWWWWWWWWWWWWWWWWWWHAAAAAAAAAAAAAAAAAAAAAAAATTTTTTTTT 20:39:49 ais523: The CAL manual. 20:39:55 U+201C and U+201D. Please, please. 20:39:58 I'm searching for "extract", but it tells me nothing! 20:39:59 AAAAAAAAAAAAAAAH 20:40:03 ais523: He's quoting the documentation. 20:40:07 (In the tutorial) 20:40:09 I don't get why wyrds at all 20:40:17 ais523: Because it's ghetto 20:41:36 Fine, let's do everything their way 20:41:36 Do everything they say until it works 20:41:42 Wow 20:41:43 This is a nazi program 20:41:46 Slereah_: It ignores the space when compiling 20:41:49 I wonder if you can type 20:41:53 Tocalculatethefactorialofanumber: 20:41:59 oh 20:42:00 I recognize these bytes as separators, of 20:42:01 course, but otherwise do nothing with them. 20:42:49 "My creators thought alphabetical was best, so they put a "Sort Definitions" command under "S"." 20:42:51 HNNNNNNNNNNNNG 20:43:02 i know 20:43:06 it's so wonderfully illogical 20:43:09 I want to shoot him with extreme prejudice 20:43:10 also, where else would they put it? 20:43:11 Under Q? 20:43:30 Slereah_: 20:43:31 A "console" is a text-only, conversational interface. My noodle includes a 20:43:32 default console that looks something like this in operation: 20:43:33 The console can be activated at any time. It occupies the entire screen and 20:43:35 uses the default font in the black color on the lighter gray background.I am the CAL-3037. What is your name? 20:43:38 > Dr. Chandra 20:43:40 Good morning, Dr. Chandra. I'm ready for my first lesson. 20:43:42 NO NEED FOR GUI CODE!! 20:43:44 YAY!! 20:43:46 search for console in the manual 20:44:01 IT WORKS 20:44:46 "If you looked around in my noodle a few pages back, you know that just "starting up" on the kluge requires over 100 lines of the goofiest code ever seen by mortal man." 20:44:57 Do you think I could kill someone with my mind if I hated him enough 20:45:18 Yes 20:46:01 "Goofiest code ever seen by mortal man." 20:46:18 Sounds like *someone* hasn't been doing a lot of x86_16 coding. 20:47:07 I'm mostly kopipeing the tutorial examples, hoping it will work out in the end 20:47:12 Slereah_: Just use the read/write things 20:47:14 You can jsut do 20:47:25 To run: Start up. Write "Hello!". Read a number. Write the number. Shut down. 20:48:05 Oh. 20:48:44 DEBUG something. 20:48:44 Where "something" represents a box, byte, color, flag, font, line, number, 20:48:45 pair, pointer, ratio, spot, string, or wyrd. When they run the modified code, 20:48:46 Is the main program always called "To run"? 20:48:47 the kluge's ghastly message box appears with a clue inside. 20:48:50 You can even use real windoze things! 20:48:56 Slereah_: Yes. 20:51:00 Oh god 20:51:07 It outputs with the GUI 20:51:10 FULL SCREEN OF GREY 20:51:16 I hate you so much 20:51:16 Duh 20:51:22 Slereah_: That's how the GUI works 20:51:24 ALL programs look like that 20:51:29 Let's try to make a fibonacci! 20:51:35 To run: 20:51:35 Start up. 20:51:36 Write "Enter a number.". 20:51:38 Write "> " without advancing. 20:51:40 Read a number. 20:51:42 Calculate the factorial of the number. 20:51:44 Write "The factorial of " then the number then " is " then the factorial. 20:51:46 Write "Press enter to exit.". 20:51:48 Read a string. 20:51:50 Shut down. 20:51:52 Now I just need to make the calculator work. 20:51:54 Slereah_: You can't, I think. 20:51:56 There's no way just to return a constant. 20:52:01 ... 20:52:02 ? 20:52:07 Fuck you, I'll try! 20:52:12 How foolish am I 20:52:13 Slereah_: I've tried. 20:52:17 "say 1" doesn't work 20:52:21 "put 1 into the factorial" doesn't work 20:52:24 "1" doesn't work 20:52:31 Hm. 20:52:32 You'll have to implement a stack. 20:52:34 :p 20:52:53 It's probably possible I just don't know how to dooooo it 20:53:01 ehird: are there other ways than "Shut down" to terminate the program? 20:53:06 lifthrasiir: nope 20:53:55 Is there any directory of functions in that piece of shit? 20:54:02 Apart from the noodle 20:54:09 AHA 20:54:13 Slereah_: Just noodle 20:54:14 Like where are the basic definitions of functions? 20:54:21 I have almost donnne it 20:54:25 but noodle doesn't define primitives like loop 20:54:37 That's in the compiler. 20:55:03 So much of the tutorial is devoted to GUI 20:55:07 I want to eat his bones 20:55:10 Yay it calculates factorials 20:55:21 Naming the result the same as the variable all he time makes me rage 20:55:51 -!- impomatic has joined. 20:55:53 I can't name them properly 20:55:53 Hi :-) 20:55:56 hi 20:56:02 we're discussing an awful programming language 20:56:10 Haskell? 20:56:12 ... 20:56:15 impomatic: Haskell is awful? 20:56:20 BEGONE, FOUL DEMON! 20:56:26 -!- impomatic has left (?). 20:56:31 ... no, not like that. 20:56:44 oerjan: quick, bring the amulet of the unsafeCoerce! 20:56:52 I verily did (impomatic :: forall a. a) 20:56:56 And now we cannot retrieve his value! 20:57:01 :-D 20:57:16 I fear it may be too late 20:57:23 For this is what I see as his fate: 20:57:28 The garbage collector will verily come, 20:57:41 and from inside his cloak, the scythe will run- 20:57:43 -his blood. 20:57:48 And, um, then he'll be freed. 20:57:58 Reaped, you mean. 20:58:18 Yes. Let's try tthat again 20:58:21 I fear it may be too late 20:58:24 For this is what I see as his fate: 20:58:26 Oh god, what does loop do? 20:58:29 The garbage collector will verily come 20:58:31 I'm looking all over, it doesn't say shit 20:58:35 and from inside his cloak, the scythe will run 20:58:39 his blood down to the tiles 20:58:43 And then his memory shall be reaped. 20:58:46 Slereah_: Loop to repeat 20:58:49 To exit use break 20:58:55 Oh, found it 20:58:58 ehird : Repeat what? 20:59:01 Slereah_: 20:59:02 The previous line? 20:59:02 Loop. 20:59:03 Stuff. 20:59:05 Repeat. 20:59:09 From up to Loop. 20:59:13 OK, I think I see my problem with my factorial thing. 20:59:17 Oic 20:59:18 Plain English hates non-imperativeness. 20:59:38 Saying LOOP is really plain English 20:59:42 You say that every day 20:59:48 Can't he say "Do this until that?" 21:00:05 DO WHILE 21:00:15 It's too C for him I guess 21:00:33 And he hates C 21:00:54 pikhq: Rate my Haskell poetry from 0 to 11 21:01:01 Although i's more garbage collector poetry, I guess. 21:01:04 *it's 21:01:10 Actually -1 is an option too, since it's pretty awful 21:01:20 ehird: It goes up to 11. 21:01:21 "Unlike neanderthal-era compilers, my rules for names are broad and flexible." 21:01:25 And down to -1. 21:01:26 I hurt so much inside. 21:01:50 Slereah_: It's like Malbolge. Except worse. 21:01:56 And TC. 21:02:03 Slereah_: I figured out how to have two variables of the same type 21:02:11 Give a name to the other one, and make a type: 21:02:17 A the-name is a the-type. 21:04:36 Oh god, I miss the equal sign so much :( 21:05:00 and people /pay/ for this? 21:05:07 ais523: Yuh. 21:05:21 Someone should make a tutorial written in non-stupidese 21:05:42 Don't. 21:06:13 If you find a bug in me, write my creators and they will send you something 21:06:13 desirable like a blank t-shirt. If you can figure out how to make me simpler 21:06:14 without making me slower, they will send you a monogrammed t-shirt. And If 21:06:16 you can come up with a way to make me smaller, faster, and more powerful all 21:06:18 at once, I'm pretty sure they will send you an embroidered wife-beater. 21:06:20 ais523: do you want an embroidered wife-beater? 21:06:39 ehird: not particularly 21:07:14 Oh god 21:07:22 You can't terminate an infinite loop with ctrl+z 21:07:24 AHA 21:07:27 I hate them so much 21:07:29 Slereah_: Tab to cal and use stop 21:07:30 "Put the mouse's spot into another spot." 21:07:34 You just need to say another! 21:07:40 That's TWO WHOLE VARIABLES OF THE SAME TYPE 21:08:15 "Multiply the number by the other number." 21:11:59 How the fuck is a variable defined? 21:12:13 Implicitly. 21:12:18 I tried "number2 is a number", but when I do "put 1 into a number2", it tells me no 21:12:19 You can sort of name them 21:12:25 Search for local variables 21:12:48 awit 21:12:49 wait 21:12:51 go to the names page 21:12:58 OOH 21:13:07 a loop chapter 21:14:27 I almost have it working 21:14:28 Tee hee 21:14:30 How would I go on to define two number variables? 21:14:40 I did Put 0 into a number, which works okay 21:14:42 Read the names chapter and shit 21:15:03 Aw man it's almost working 21:15:10 To calculate the factorial of a number: 21:15:10 Put the number into an original number. 21:15:11 Loop. 21:15:13 Put a counter plus 2 into a multiplier number. 21:15:15 If the multiplier is past the original number, exit. 21:15:17 Multiply the number by the multiplier. 21:15:19 Repeat. 21:15:23 loops 4eva 21:16:10 aha 21:16:14 you have to check whether the counter is past a number 21:16:17 to increment it 21:16:17 :DD 21:16:26 Slereah_: "The foo is a number." 21:16:33 might not work locally 21:16:49 nope 21:17:27 Oh god 21:17:33 I thnk I did it 21:17:35 Except... 21:17:41 IT CAN'T DEAL WITH BIG NUMBERS 21:17:45 yup 21:17:51 Slereah_: show your code? 21:18:09 To run: 21:18:09 Start up. 21:18:09 Put 0 into a number. 21:18:09 Write the number. 21:18:09 Put 1 into another number. 21:18:09 Loop. 21:18:10 Fibo the number and the other number. 21:18:12 read a string. 21:18:14 repeat. 21:18:16 Shut down. 21:18:18 To Fibo a number and another number : 21:18:20 Write the other number. 21:18:22 Put the number plus the other number into a nigger number. 21:18:24 Put the other number into the number. 21:18:26 Put the nigger number into the other number. 21:19:38 Well, it's TC. 21:19:45 It is probably also a tarpit. 21:19:54 I guess yeah 21:19:54 but god is that variable naming frustrating 21:20:16 pikhq: is it tc though? 21:20:22 no way to get an unbounded array 21:20:24 I wonder what would be the simplest way of implementing TCness on it 21:20:25 it thinks in pointers and shit 21:20:31 well 21:20:35 strings are an implementation detail 21:20:38 you could have infinite strings, theoretically 21:20:51 ehird, you could have infinite variables. 21:20:53 Also can't you just do functions? 21:20:55 Treat it as a register machine. 21:21:01 pikhq: you can't have infinite variables 21:21:03 no way to declare them 21:21:07 the set of variables is static at compile time 21:21:18 ... *Eeew*. 21:21:32 I think the best you could do is rely on strings, then. 21:21:45 Assuming there's a way to use it as a tape. 21:22:04 also 21:22:08 pikhq: If a counter is greater than 10 21:22:08 BZZT 21:22:10 doesn't increment counter 21:22:13 If a counter is past 10 21:22:14 Why not just do it functional, though 21:22:15 DING 21:22:16 increments it 21:22:20 Slereah_: no higher order functions 21:22:31 Fffffffffffff 21:22:34 You sure? 21:22:38 Yse. 21:22:39 *Yes 21:22:42 This is a tarpit, and not necessarily a Turing one. 21:22:51 It might actually just be a FSA tarpit. 21:23:31 hmm 21:23:34 it thinks 4! = 42 21:23:36 it's actually 24 21:23:38 lolwat 21:23:38 I look for array in the instructions, it only has strings, yeah D: 21:23:46 pikhq: you can call out to DLLs 21:24:06 XD 21:24:21 Yay 21:24:26 Slereah_: If it can access arbitrary values in a string, it is barely TC. 21:24:27 Slereah_: My program calculates the first 10 factorials 21:24:40 Like, say, using two strings to implement a stack. 21:24:46 A couple of stacks, rather. 21:24:50 It can "INSERT something INTO a STRING before a byte#. 21:25:00 Let's see if I can do some boolfuck on this shit 21:25:22 Hahah. 21:25:40 pikhq: Slereah_: Here is my wonderful factorial program: http://pastie.org/486839.txt?key=6qdilffgbgw9dbwe6npuda 21:25:47 * Slereah_ opens the file "Jewger" 21:25:52 It, of course, does not use bignums. Oh well. Works for the first 10 factorials. 21:26:24 Sometimes, however, you want 21:26:24 to change a parameter without letting your caller know. In this case, you can: 21:26:25 PRIVATIZE a parameter. 21:26:27 And I will make a copy of the parameter for you. But I will leave the name 21:26:29 the same, so you don't get confused. I'll also put the word "original" on the 21:26:31 front of the real parameter's name so you can still get to it, if you need to. 21:26:33 Argh 21:26:35 I wanted that before 21:26:37 It's all special cases and mirrors 21:27:49 Slereah_: I have a challenge for you 21:28:34 Slereah_: Make a mathematica-like system in plain english. >:)))))))))))))))) 21:29:22 Fuck you 21:29:31 Slereah_: >:(((((((((((( 21:29:41 I'm having enough difficulty understainding their string thing, it's barely explained 21:30:45 Slereah_: Lol, its number type runs out after 12! 21:30:51 (12!) that i 21:30:51 s 21:31:06 Slereah_: Also, use a rider 21:31:10 Rider? 21:31:10 It's their parser shit 21:31:13 you SLAP a rider ON a string 21:31:15 I'm not joking 21:31:18 search for it in the peedy eff 21:31:19 Waaat 21:31:23 or the non-peedy eff 21:31:23 ehird: 32-bit int 21:31:27 Deewiant: yeah i know 21:31:37 Deewiant: for such hostile people to the wintel kludge they sure use it a lot 21:31:44 :-P 21:31:49 "I set the first and the last of the substring to span the entire string. This allows you to work your way through the string forward or backward by adding to the first or subtracting from the last." 21:31:52 !!!!!!!!!!!!!!!!!!!!! 21:31:53 Slereah_: 21:31:54 A "function" is a routine that extracts, calculates, or otherwise derives a 21:31:54 I'm still not sure what it means 21:31:55 value from a passed parameter. Function headers take this form: 21:31:57 TO PUT something 'S something INTO a temporary variable: 21:32:07 To put a number's factorial into a result: 21:33:33 -!- kar8nga has quit (Remote closed the connection). 21:33:35 How do you deal with the position in a string? 21:33:40 Dunno 21:35:43 Well, I can remove the first letter of a string, that's easy enough 21:36:06 I think this might be useful, but I don't know what it means : FILL a string WITH a byte GIVEN a count. 21:36:09 Let's try it out! 21:36:56 ... 21:36:57 Error 21:37:01 I COPYPASTED IT 21:37:46 Owait, how do I input a byte? 21:37:54 Why can't I just input a character? 21:37:56 Whyyyyy 21:38:01 Hey Slereah_ 21:38:04 I found out how to make functions 21:38:08 that don't change the input variable 21:38:25 TO PUT variable's thing INTO variable: 21:38:26 Slereah_: http://pastie.org/486853.txt?key=2m1egetuar81rujxpg7blq 21:38:28 ↑ example 21:38:37 my factorial program written with the factorial procedure separate 21:38:54 I'm becoming quite a dab hand at this. 21:39:03 DAB DAB 21:39:08 You're our own Monet 21:39:55 The noodle isn't very helpful 21:39:56 to put a byte into a wyrd: 21:39:56 intel $8B8508000000. \ mov eax,[ebp+8] \ the byte 21:39:56 intel $660FB600. \ movzx eax,byte ptr [eax] 21:39:56 intel $8B9D0C000000. \ mov ebx,[ebp+12] \ the wyrd 21:39:56 intel $668903. \ mov [ebx],ah 21:39:59 Plain English 21:39:59 You can also make your computer talk, with the kluge's thirty-nine esoteric 21:39:59 "speech manager" functions, or these three simple statements: 21:40:00 SAY a string. 21:40:02 SAY a string AND WAIT. 21:40:03 What's a wyrd, too 21:40:04 WAIT UNTIL SPEAKING IS DONE. 21:40:06 Slereah_: That's not relevant 21:40:21 haha the speaking thing works 21:40:52 1 factorial equals wun 21:41:03 Oh god, my computer just said nigger 21:42:09 Furthermore, you can concatenate strings with strings — and other kinds of 21:42:09 data — using the infix THEN operator. See the topic on "Expressions" for a 21:42:10 description of the clever way my creators implemented this. 21:42:12 Slereah_: I use that in my thing 21:42:14 just do 21:42:16 the string then "butt" 21:42:20 also 21:42:21 substrings 21:42:22 use em 21:42:26 also 21:42:28 Slereah_: use riders 21:42:47 What is a rider 21:43:13 A tick is approximately 1 millisecond. "The system's tick count" is the number 21:43:13 of milliseconds since the last restart. It wraps around every 24.8 days or so. 21:43:14 What happens then is unknown, since no kluge has ever stayed up that long. 21:43:16 Slereah_: It's in the manual 21:43:18 go to the TOC 21:43:20 and choose RIDERS 21:43:29 LOLLLLLLL: 21:43:30 I use timers to make sure I can recompile myself in less than three seconds. 21:43:31 Look in the bottom of a "listing" to see them all. You can use them to make 21:43:32 your programs lightning-fast, as well. 21:44:07 brb 21:46:46 "I don't know how to " Write the first byte from the program string." " 21:46:48 I hate you CAL 21:51:12 How does slap work damn it 21:51:16 -!- AnMaster has joined. 21:51:21 Can't you say anything helpful, perverted compiler? 21:51:51 -!- KingOfKarlsruhe has quit (Remote closed the connection). 21:56:23 -!- Gracenotes has joined. 22:01:10 * kerlo frowns at HTML documents containing non-ASCII characters. 22:05:56 lifthrasiir, there? 22:06:05 Hm, googling Osmosian and rider on google 22:06:15 "gay rider strong three men and a baby boy ghost sexy tout gratuit ..... osmosian.com pagearup.org otheedge.com oslokristiforsamling.no osg.hu paiefie.com ..." 22:06:53 lah no 22:06:56 ah* 22:07:41 ... 22:07:43 "Move" 22:07:44 Hm, googling Osmosian and rider on google <-- is there any other place you can google, than on Google 22:07:46 It's move, right? 22:08:01 Let's see what "move" does to a string 22:09:49 Noooo it no works 22:09:51 * oerjan is not sure oslo kristi forsamling would enjoy being in that list 22:09:57 -!- inurinternet has quit (No route to host). 22:12:37 You can google things on yahoo, or MSN search. 22:14:45 fizzie, wouldn't that be yahooing and messing... Err I mean msning 22:15:17 Any web-searching is googling. (Though admittedly this is an extreme position.) 22:15:18 * AnMaster suddly remembers altavista. From back before google. 22:15:38 altalavista baby 22:15:39 Are riders a regular computer concept, or did they made it up? 22:15:50 Slereah_, what is it supposed to do 22:15:52 'cause I have no idea how that shit works and the tutorial doesn't explain anything 22:16:11 There was a software-crack-hack-whatever search engine called Astalavista, too. 22:16:21 I'm not too sure, that's the problem 22:16:24 When you: 22:16:24 SLAP a rider ON a string. 22:16:24 I set the "original" and the "source" to span the entire string. Then I position 22:16:24 the "token" on the source — which leaves it blank but ready to go. When you: 22:16:24 BUMP a rider. 22:16:25 I add one to the source's first, and one to the token's last. This shortens 22:16:27 the source while lengthening the token, letting you process the string a byte 22:16:29 at a time. When you want to clear out the old token and start a new one, just: 22:16:31 POSITION the rider's token ON the source. 22:17:21 fizzie: There still is. 22:17:27 astalavista.box.sk 22:17:38 Deewiant: I think that was the URL earlier, too. 22:17:46 It sounds familiar, at least. 22:17:48 Yes, it has been there for as long as I have known it. 22:18:03 Which is probably around 10 years or more. 22:18:08 There seems to also be an astalavista.com which is at least trying to look a legitimate information-search thing. 22:18:30 Information-security thing, I mean. 22:18:58 -!- FireFly has quit (Remote closed the connection). 22:19:11 http://en.wikipedia.org/wiki/Astalavista.box.sk 22:21:09 Strange... they say it started 1994, and is a pun on Altavista; on the other hand, the Altavista entry says it was launched publically as late as December 1995 at altavista.digital.com. 22:21:23 They've been somehow reverse-time-punning. 22:23:12 Ooh, the nostalgy: http://en.wikipedia.org/wiki/File:Altavista-logo.png 22:23:21 Hm do I misremember, or does windows have strange semantics for opening the same file from multiple programs? 22:23:43 AnMaster: yes, it often gets confused about what sort of lock you have 22:23:57 especially as there's a known bug in that code through Vista, fixed in 7, that sometimes you get the wrong sort of lock 22:24:23 ais523, can you open and read a logfile that another program is writing to 22:24:48 either like tail, or just open in notepad or similiar 22:25:12 AnMaster: I don't think you can with most programs 22:25:15 you get a file-busy error 22:25:21 ais523, that is very strange 22:25:25 why would you get that 22:25:27 it makes no sense 22:25:44 Did early versions of Windows even allow for different kinds of file locks? 22:26:06 AnMaster: By default, files are opened such that they can't be shared to other programs. 22:26:20 ... that makes no sense 22:27:03 hi Slereah_ 22:27:10 It makes perfect sense. It might not be sensible, but that's another issue. 22:27:20 what Deewiant said 22:27:24 how does it not make sense 22:27:32 ehird, how DOES it make sense 22:27:39 ... 22:27:43 it makes stuff like tail logfile.log hard 22:27:43 banana 22:27:46 that makes no sense 22:27:49 how does it not make sense? 22:27:54 HOW DOES BANANA MAKE SENSE 22:27:59 Burden of proof. 22:28:07 ehird, just one example above 22:28:15 plus I can't think of any reasons it makes sense in 22:28:18 AnMaster: it MAY NOT BE SENSIBLE 22:28:20 but it makes sense 22:28:21 see Deewiant 22:28:25 ehird, what is the difference 22:28:32 ................. 22:28:38 AnMaster: see your nearest dictionary 22:28:45 Makes sense = is logical as in not contradictory, or something like that 22:28:53 Is sensible = what you're talking about 22:29:03 ah 22:29:10 well then I say it isn't sensible 22:29:13 Slereah_: how's the plain englishity 22:29:21 AnMaster: It isn't sensible if you're a unix user. 22:29:25 Windows is not a unix. 22:29:36 I find it a pain in the butt even as a Windows user. 22:29:41 ehird : Sort of found out how to use riders. 22:29:57 But I wonder, can you like bump them backward? 22:29:58 Slereah_: it's just a string parser thing 22:30:00 and dunno 22:30:02 read the noodle 22:30:07 Ctrl-F rider Ctrl-N Ctrl-N etc 22:30:11 "The US patent office no longer grants patents on perpetual motion machines, but has recently granted at least two patents on a mathematically impossible process: compression of truly random data. This document is an analysis of patent 5,533,051; see below for an analysis of another patent on the same subject." 22:30:14 http://gailly.net/05533051.html 22:30:23 ahaha 22:30:24 "the direct bit encode method of the present invention is effective for reducing an input string by one bit regardless of the bit pattern of the input string." 22:30:41 how can anyone seriously propose that? 22:30:49 Deewiant, oh and the (at least under xp) issue with files being thought to be locked when they weren't 22:30:52 that was a pain too 22:30:54 it's the most obvious reductio ad absurdum to show that every input can then be reduced to one bit 22:31:01 and expanded losslessly forever 22:31:04 AnMaster: Yeah, that helps 22:31:04 -!- impomatic has joined. 22:31:11 Of course, they actually are locked, they just shouldn't be 22:31:21 Deewiant, there was some tool to force free it 22:31:22 Or there's no obvious reason for why they should be 22:31:24 * AnMaster tries to remember 22:31:32 Process Explorer can close individual handles 22:31:39 I use that 22:31:44 Deewiant, yes, but some automated "in your context menu" one 22:31:47 You can bump it by a specific number 22:31:51 -1 works 22:31:55 Hi, I thought I'd give the BF Joust bot a try. :-) 22:32:05 impomatic: You're still allocated?! 22:32:11 We thought the garbage collector got you 22:32:13 It's a good way of causing blue screens by killing random handles of system processes 22:32:27 (Or even some system handles in any normal process) 22:32:33 I got reallocated :-) 22:32:50 Deewiant, yeah, but usually it worked, since usually it was explorer.exe that held it 22:33:10 impomatic: But I did (impomatic :: forall a. a). You can't get any value out of it. I asked oerjan for the amulet of unsafeCoerce but he wasn't there. 22:33:11 ... Wait a second. 22:33:16 Maybe there's more than one amulet. 22:33:20 Maybe someone else saved you! 22:33:32 *TUNE IN NEXT TIME FOR MORE OF HASKELL! SAME BAT TIME, SAME ESO CHANNEL* 22:33:37 AnMaster: Yeah, closing "unimportant" handles is fine 22:33:40 impomatic: The bot is: 22:33:41 (Or even some system handles in any normal process) <--- that can cause a blue screen? 22:33:46 !bfjoust stuff +[w58 22:33:48 Score for stuff: -18 (maximum 18) 22:33:55 impomatic: Do you know the new language and its abbreviations? 22:34:00 Deewiant, sounds terribly unsafe. Any normal user could do it 22:34:08 There's a scoreboard, but I forget the URL. 22:34:15 AnMaster: I don't know about that 22:34:16 Anyone had much luck at BF Joust? Because it looks to me as though your not providing me with much of a challenge :-P 22:34:24 http://codu.org/eso/bfjoust/in_egobot/report.txt 22:34:26 Deewiant, well they could to their own processes right? 22:34:52 * AnMaster imagines geting "ENOPERM" when doing fclose(stdout); 22:34:55 AnMaster: Those important things might not be allowed to be closed even in your own process, unless you're admin 22:34:56 Shortsword, 100% wins ;-) 22:35:05 Deewiant, ok... 22:35:22 AnMaster: It could also be that they're not really things that you can ever touch without admin-only tools like procexp 22:35:23 impomatic: Oh, you've played it before? 22:35:51 http://codu.org/eso/bfjoust/in_egobot/report.txt <-- empty file? 22:36:00 Could do with a few more BFJ programs on there. There's only 15 for me to kill ;-) 22:36:01 ah works now 22:36:10 maybe it was being re-generated right then 22:36:11 AnMaster: it blanks while calculated 22:36:13 for a bit 22:36:17 right 22:36:44 what is the code for that shortsword 22:36:48 The problem with EgoBot's bf joust is that you can't hide the implementation. 22:37:05 ehird, sounds like a good thing 22:37:10 That makes it quite easy to beat things simply by targeting their algorithm, rather than intelligently predicting its behavior via experiments. 22:37:14 AnMaster: it takes a lot of the skill out of it. 22:37:25 ehird, fair enough 22:37:35 ehird, where is the source for it though 22:37:43 Hmmm... new submission. Now I only have 94% wins and 6% ties. I'll have to work on improving that :-( 22:37:44 In the logs. 22:37:52 Oh, you can do it via /msg, impomatic? 22:37:57 yes 22:38:01 EgoBot doesn't reply, but it still runs 22:38:18 ugh 22:38:19 impomatic: unbeatable 22:38:21 The pointer of the rider continues after the string ends D: 22:38:23 syntax errors tie with everything 22:38:26 it's a bug in the program 22:38:31 hah 22:38:34 !bfjoust iwin [ 22:38:36 Score for iwin: -19 (maximum 19) 22:38:37 so don't worry too much about beating a program that's 100% ties 22:38:48 hmm 22:38:54 -19 for ties? 22:38:54 oh, it reports it oddly 22:38:54 right 22:39:11 damn it blanked again 22:39:16 22:38 Slereah_: The pointer of the rider continues after the string ends D: 22:39:17 lawl 22:39:19 AnMaster: just wait a bit 22:39:34 why can't it wait with removing until it calculated the new data 22:39:48 sounds trivial, just move when it writes 22:39:58 because it is not coded that way 22:40:07 irritating 22:40:14 ehird : It's like the matrix 22:40:21 Random characters everywhere! 22:40:36 Also I have no idea how to set the condition for it to stop 22:40:52 If the rider's token is equal to the string maybe? 22:41:18 Slereah_: Ask the manual 22:41:31 Slereah_, so what is the rider for 22:41:38 Slereah_, some form of crazy iterator? 22:41:53 ehird : That manual is shit 22:41:55 that is even more broken than the C++ ones (and in a different way) 22:41:58 Yes it is. 22:42:01 AnMaster: String parser. 22:42:08 like Java's thing that does the same 22:42:14 ehird, oh? You give it a grammar and it parses it? 22:42:16 Basically a way to iterate through a string and shit 22:42:20 AnMaster: manual 22:42:20 ah ok 22:42:37 Except not in a convenient way 22:42:38 Slereah_: the rider section has an example 22:42:54 Instead of JEWS -> J, E, W, S, it goes J, JE, JEW, JEWS 22:43:01 Slereah_: Also, read the compiler 22:43:03 It uses riders 22:43:26 to bump a rider by a number: 22:43:26 add the number to the rider's token's last. 22:43:26 add the number to the rider's source's first. 22:43:34 no 22:43:35 This may be useful 22:43:35 not the noodle 22:43:37 the compiler 22:43:40 it uses riders :P 22:43:43 I'll noodle you! 22:44:31 If the rider's token is the program string, break. 22:44:34 Yay, it works* 22:45:27 [[ [...] According to Earl Bradley, WEB Technologies' vice president of 22:45:27 sales and marketing, the compression algorithm used by DataFiles/16 22:45:28 is not subject to the laws of information theory. [...]]] 22:45:42 And I am not subject to the laws of gravity. 22:45:45 It's a supernatural compiler 22:45:55 Wait, is this about Osmosian? 22:46:49 No 22:47:14 Oh. 22:48:16 Slereah_: what program are you making? 22:48:24 bitshitfuckbastard? 22:48:26 Trying to do a basic Boolfuck 22:48:27 i mean boolfuck 22:48:34 in what, Plain English? 22:48:37 Yeah 22:49:03 It is quite frustrating 22:49:04 The [] are going tu haunt me 22:49:09 indeed 22:49:23 I think I'll do a semi-infinite tape, because fuck you I ain't doing an infinite one 22:49:53 Slereah_: That doesn't prove it TC. 22:49:58 Plus, strings automatically grow. 22:50:01 So why not? 22:50:12 semi-infinite != non-TC 22:50:15 if it's infinite one way 22:50:23 ... 22:50:25 ehird 22:50:34 oh 22:50:35 i see 22:50:36 i see 22:50:37 kay 22:50:40 Can you type the [] characters on CAL? 22:50:47 Yes. 22:50:52 But I use a US qwerty keyboard. 22:50:56 I can't seem to be able to type any Alt character on it 22:50:56 Maybe you should too, Frenchie. 22:51:03 Slereah_: that's because it interprets alt as control 22:51:08 so you can use EITHER KEY!11 22:51:18 D: 22:51:19 So switch keyboard layout, Mr White Flag Surrender French Military Victories. 22:51:24 Fuck it, it will be parenthesises 22:53:42 IDEs should be separate from the language 22:53:44 to avoid mess like this 22:53:50 at least, the language shouldn't require an IDE 22:54:16 ais523: I'd listen to your point but please don't point out basic shit about plain english 22:54:26 It transcends such mundane horribleness. 22:54:41 heh 22:54:42 We must turn our attention to the Cthulhu-like atrocities. 22:55:00 Oh fuck, how do I change a character of a string at the rider's position 22:55:08 Slereah_: change its target 22:55:13 wat 22:55:19 Put the at byte into the rider's token's target 22:55:22 i think 22:55:26 (would put @ into it) 23:00:08 Slereah_: How go. 23:00:37 Not well. 23:00:57 Slereah_: Look up MOVING OUR RIDERS in the TOC. 23:01:00 It shows how to handle everything. 23:01:18 " first's target is the right-alligator byte," 23:01:19 WHAT 23:01:40 Slereah_: They call > the right alligator byte 23:01:45 and < the left alligator byte 23:01:54 Is this INTERCAL? 23:02:04 ais523: you should support Plain English names in intercal! 23:02:17 INTERCAL names aren't used by the language, though 23:02:21 just in discussing it 23:02:31 You know what you guys should be doing instead of Plain English? 23:02:33 ORK. 23:02:37 Also I'm not sure this is helpfulm 23:02:45 It, too, has English syntax. 23:02:48 It doesn't seem to involve changing the original string 23:02:59 Slereah_: Riders are for parsing 23:03:00 However, it's deliciously esoteric. 23:03:01 Not changing 23:03:04 Slereah_: Parse it into a parse tree 23:03:06 Instead of claiming not to be. 23:03:06 :) 23:03:07 Then mutaterate that 23:03:13 Slereah_: It'll be slightly less horrific 23:03:16 * pikhq thinks that Objects R Kool. 23:03:26 ehird, stop using fancy words 23:03:33 Slereah_: Parse it into a data structure. 23:03:35 Then change that. 23:03:38 I'm not a programmer 23:03:50 lawl. 23:03:51 Slereah_: What are you doing here? 23:03:52 Also ORK is not the best plain english compiler, pikhq 23:03:59 pikhq : Iunno :( 23:04:00 pikhq: implementing boolfuck in Plain English 23:04:04 Slereah_: ORK is a much better language. 23:04:15 But they say that Plain English is the best! 23:04:21 They must be righr 23:04:22 pikhq: But the interesting thing about this is that it actually _works_, there's an actual 10,000 fucking lines of code in it to provide a compiler, a GUI, and a standard library doing all sorts of useless shit, and it's actually a full language, it's just shit and misguided, but it actually works and is real and is big and that's what's so horrific and interesting. 23:04:39 ehird: ORK works. 23:04:46 What it really lacks is a detailled manual 23:04:52 pikhq: Read the rest of my sentence, plz. 23:04:53 The manual is barely helpful 23:05:03 Yeah, yeah, yeah... 23:05:09 It assumes that its commands are self explanatory because they're in English 23:05:18 I just have a similar opinion of this as I have of LOLCODE. 23:05:34 (it's still better than LOLCODE, but not by much) 23:05:35 pikhq: LOLCODE is a small language, though. 23:05:41 Except LOLCODE isn't the scourge of the earth. 23:05:43 LOLCODE strikes me as probably better 23:05:44 It's just uninteresting - it has basically no supporting code. 23:05:47 It has no infrastructure. 23:05:50 LOLCODE is just a boring language with a stupid syntax 23:05:53 It doesn't have a full set, so to speak 23:05:57 Plain English is interesting because it's crazy. 23:05:59 This language is worse than LOLCODE... 23:06:01 But it's complete. 23:06:01 whereas Plain English is a BANCStar-like monstrosity 23:06:06 It's a complete black hole of what the fuck? 23:06:16 and LOLCODE is TC, IIRC 23:06:16 ais523: My opinion of both of them are mostly based on its proponents. 23:06:18 :p 23:06:18 But when you step in to the black hole, there's so much goddamn stuff and you can't believe to think it's real. 23:06:23 But it is, and that's horrific. 23:06:43 ais523: And it took them forever to write an implementation. 23:06:52 maybe they had no competent programmers 23:06:59 PEBBLE got a working implementation in 24 hours. :p 23:07:00 you could probably implement it relatively easily in yacc, or Thutu 23:07:09 pikhq: heh, you implemented LOLCODE in PEBBLE 23:07:10 ? 23:07:15 ...? 23:07:16 Nah. 23:07:22 oh 23:07:24 ais523: you misunderstand 23:07:26 I'm only so insane. 23:07:31 that would have been pretty funny, though 23:07:38 It would have. 23:07:42 Hm 23:07:47 By the way, for a language that hates C so much,. 23:07:54 it maps very easily on to a restricted subset of C> 23:07:57 I find that amusing 23:07:58 Thinking about it, I think there would be an easier way of proving TCness. 23:08:00 LMAO 23:08:10 Here, I'll translate my factorial function to C. 23:08:22 I think it shouldn't be too hard to translate recursive functions in Plain English 23:08:30 Slereah_: It has loops that you can break out of and conditionals. 23:08:45 It just might be TC. 23:08:49 Yes indeed. 23:09:37 What is infuriating is that it has no arrays 23:09:37 Why? 23:09:39 Isn't the concept of array not English enough? 23:09:41 For instance, pikhq: 23:09:42 To (0)put (1)a number's (2)factorial (3)into (4)a result (5)number: 23:09:43 void (0)put_(2)factorial(int a_number, (5)int (3)* (4)a_result) 23:09:58 Took PSOX a long time to get a working implementation 23:10:21 Oh fuck it 23:10:27 Let's drop that and do other things 23:11:11 Sgeo: And PSOX is significantly harder to implement. :p 23:11:39 Slereah_: :( 23:12:02 I just can't deal with such a bad implementation of arrays :( 23:12:44 But still, I think a translation of recursive functions should be pretty trivial for that 23:12:49 At least you don't need ARRAYS 23:12:51 AAAAAAAARGH 23:14:41 One could patch the compiler. :p 23:14:51 Who is this "one"? 23:15:03 The compiler isn't the problem, I think it's the manual 23:15:47 The big problem, I think, is that it wants to show a lot that it's "easy" for complex tasks like GUI shit, so it dwells way too much on that 23:15:59 But it skims over important things like arrays and such 23:16:05 -!- ais523 has quit (Remote closed the connection). 23:16:16 Half of it is pretty much about doing a paint program 23:17:14 pikhq: Slereah_: A step-by-step demonstration that the anti-kludge Plain English is basically a rearrangement of a small subset of C: http://pastie.org/486940.txt?key=y7p297kilxy4kj0kelcig 23:17:29 Each line translates almost directly with basically just a little moving around 23:17:55 err 23:17:58 [note: the into variable is more like a C reference, but we'll just 23:17:59 should read 23:18:01 [note: the into variable is more like a C++ reference, but we'll just 23:18:16 ehird, that doesn't prove that it always works. It just shows that it can be done for one particular example 23:18:32 Sgeo: That example is what ALL plain english code looks like. 23:18:38 It's all the essential structures. 23:18:44 That doesn't make it a proof. 23:18:46 And I haven't yet seen an example I can't trivially do it mentally to. 23:18:51 Deewiant: Did I say proof? 23:18:55 ehird: Sgeo did. 23:19:01 I know. 23:19:03 I didn't, though. 23:19:06 It's just a demonstration. 23:19:09 Correct. 23:19:16 You can easily show it for all the other code if you hate yourself. 23:19:23 You could probably automate it, if you hate yourself. 23:19:39 Automate translating plain english into code? 23:19:52 Sgeo: not plain english 23:19:55 Plain English. 23:20:00 You're worse at context than AnMaster. 23:21:02 ehird: Automating it would mean a saner implementation. 23:21:07 Portable, too. 23:21:12 pikhq: Ehh, no. 23:21:16 The noodle depends on THE KLUDGE 23:21:19 -!- impomatic has left (?). 23:21:26 Due to its referencing DLLs and inline machine code. 23:21:30 pikhq: can you even do inline machine code in gcc? 23:21:44 -!- BeholdMyGlory has joined. 23:21:48 Yes, but it's an epic hack. 23:22:10 how? 23:22:29 Let's see if I can find the bit in Linux that does that. 23:25:20 You stick it in an unsigned char, you have inline assembly jump to it, and you have that inline machine code jump back. 23:25:35 (best to do that by sticking the address to jump to in a register) 23:25:35 hahah 23:25:45 Like I said, epic hack. 23:25:58 -!- inurinternet has joined. 23:26:04 And Linux does it for going down to real mode for a bit. 23:26:14 (startup and shutdown code) 23:26:20 -!- darthnuri has joined. 23:26:37 pikhq: How come it doesn't just use asm? 23:26:44 -!- BeholdMyGlory has quit (Remote closed the connection). 23:27:06 gas doesn't do 16-bit code. 23:27:12 http://www.plainlanguage.gov/examples/humor/headlines.cfm 23:27:14 heh 23:28:54 http://www.plainlanguage.gov/examples/humor/index.cfm 23:29:10 Although the rest of the stuff isn't really that good 23:29:23 I've always thought Mark Twain's satire about English spelling was actually good. 23:29:27 "Fainali, xen, aafte sam 20 iers ov orxogrefkl riform, wi wud hev alojikl, kohirnt speling in ius xrewawt xe Ingliy-spiking werld." is a lot nicer than English. 23:30:12 Except that it still doesn't do a 1-to-1 mapping of phonemes to graphemes. 23:30:14 It's just closer. 23:30:15 ;) 23:30:26 Well, I've seen it before, so I guess I got tired of it :/ 23:30:33 okay. So, my plan until my old boss calls me back: watch Battlestar Galactica from the start while playing Pokemon Emerald, from the start 23:30:48 I think I'll finish BSG before I finish Pokemon, though. 23:31:05 pikhq: Oxi, xen, xou about xis? 23:31:40 ehird: ... That's actually worse than English. 23:32:36 pikhq: uel, i xemplefid --bah-- pronunciation on the way, too. 23:33:04 I'm aiming for one letter, one pronunciation, and less letters used in total, and close enough to English to be intelligible to an English speaker when pronounced. 23:33:35 "uel, i xemplefid" only has one pronunciation for each letter it has, and sounds more or less identical to the original English "well, i simplified" 23:33:46 x is like s/th 23:34:15 So "xou" sounds like "sou" or "thou" (but with the th being quite weak), which is intelligible as "how" when spoken. 23:34:27 I should be "Oxa" for okay, though. 23:34:29 -!- BeholdMyGlory has joined. 23:34:59 -!- FireFly has joined. 23:35:45 pikhq: No? 23:35:56 ehird: No. 23:36:02 pikhq: Why not? 23:36:15 "Oxa, xen, xou about xis" seems simpler to me. 23:36:24 If not that, then at least "Uel, I xemplefid". 23:37:18 pikhq: ? 23:37:58 There's other orthographies that have a direct mapping between phonemes and graphemes. 23:38:12 pikhq: in English? 23:38:19 Yes. 23:38:26 pikhq: like? 23:38:42 Anyway, mine simplified both spelling and pronunciaiton. 23:38:44 *pronunciation 23:38:46 So it isn't a 1:1 map. 23:40:09 -!- M0ny has quit ("Read error: 182 (Connection reset by beer)"). 23:42:09 pikhq: so what's the flaws with mine? 23:42:29 It creates a Great Consonant Shift. 23:43:10 pikhq: Wut. 23:43:28 Actually, you could drop f too. It's quite close to x. 23:43:37 xemplexid is still comprehensible to an english speaker. 23:44:00 So's Middle English. 23:44:08 pikhq: So? 23:44:11 Mine's simpler ;-) 23:44:18 ... You're creating a different language. 23:44:47 pikhq: A language that, when pronounced, is easily understood by English users, has the same semantics at its core, and is not all that different apart from a simplified pronunciation and spelling. 23:44:57 -!- inurinternet has quit (Success). 23:45:30 -!- darthnuri has quit (Connection timed out). 23:47:46 Also, 'xou' isn't intelligible as "how". 23:47:52 It's intelligible as "thou". 23:48:41 pikhq: x != th. 23:48:45 * Slereah_ tries to write Limp on Mathematica 23:48:54 x = a weak blend of s/z, with a bit of a h hint 23:48:59 It has some useful notations, I'll say. 23:49:07 ehird: No, but it's significantly closer to th than anything else. 23:49:08 Slereah_: do it in plain english 23:49:17 pikhq: I invented my own meaning for x. 23:49:18 :P 23:49:29 ehird : Shut up or I'll kill you 23:49:43 Basically what you're doing is creating a bunch of homonyms for no real gain. 23:49:44 µ1[x_, y_] := If[x[y] == 0, y, µ[x, y + 1]] 23:49:45 µ[x_] := µ[x, 0] 23:49:56 Try to do this, Plain English! 23:49:59 pikhq: It doth reduce the letters and pronunces.. 23:50:01 *. 23:50:04 Although I wonder if I could do that in one line 23:50:14 Slereah_: Yes. 23:50:23 µ[x_, y_] := If[x[y] == 0, y, µ[x, y + 1]]; µ[x_] := µ[x, 0] 23:50:24 Oh, and English's *phonemes* are not a problem. 23:50:37 pikhq: i knoooooooooow but 23:50:39 No cheating! 23:50:42 That'd be like fixing C by merging {} with (). 23:50:54 Also I like 'em functionals 23:50:56 Mathematica is nicely functional and all 23:50:58 You're not helping the language, you're just doing linguistic masturbation. 23:51:16 pikhq: Nuthin' wrong with masturbation. 23:51:25 Apart from the masturbation of DEVILLISH VIDEO GAMES 23:51:28 And like most masturbation, it's not something you want to see. 23:51:52 And you're just fucking yourself. ;) 23:51:57 (Jack Thompson, in a well-known bout of intellectual dishonesty, called video games masturbation and then noted that it doesn't have to actually mean something sexual - but in doing so, gave it the "negative" connotations of a sexual act. Fun fun.) 23:53:26 sexual acts have negative connotations? 23:53:39 Sgeo: In the Us. 23:53:46 Yeah. 23:53:50 Where sex is ebil. 23:53:52 Thus "negative". 23:56:21 not the noodle the compiler <-- yeah what was the noodle and compiler about... 23:56:30 AnMaster: Noodle = stdlib. 23:56:32 Compiler = CAL. 23:56:48 "Anyone in China reading this:" —reddit 23:56:50 Logical flaw detected. 23:57:27 [[ [...] According to Earl Bradley, WEB Technologies' vice president of {...} <-- what the hell was that about, and where was it form 23:57:29 from* 23:58:05 AnMaster: See the link a bit above.