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