←2009-01-12 2009-01-13 2009-01-14→ ↑2009 ↑all
00:00:12 <ehird> oi, revel in its awesomosity
00:00:27 <kerlo> It reminds me of...
00:00:30 <AnMaster> ehird, forth is a fun language
00:00:34 <AnMaster> but why upper case?
00:00:42 <AnMaster> is it to show it is a SERIOUS LANGUAGE?
00:00:45 <AnMaster> ;D
00:00:47 <ehird> AnMaster: ANS Forth only guarantees that the standard routines are available in uppercase form
00:00:55 <ehird> so, generally, you just TURN ON THE CAPSLOCK AND TYPE
00:01:21 <ehird> kerlo: of...
00:01:26 <AnMaster> ehird, well. ok. but I mean upper case only languages reminds me of COBOL and SQL. Not a nice combination
00:01:38 <AnMaster> even though SQL is okish
00:01:42 <kerlo> : CAT [ , . ] ;
00:01:44 <ehird> Forth is mainly used for embedded work. It's not pretty. It's a pretty closed-world system.
00:01:52 <AnMaster> true
00:01:52 <ehird> kerlo: That's essentially it :P
00:02:03 <ehird> I mean, key returns as soon as one keyboard key is pressed.
00:02:06 <AnMaster> ehird, it also reminds me of INTERCAL
00:02:18 <ehird> and if you press <ENTER>, it just does a carriage return and goes to the start of the line
00:02:23 <ehird> no new line, no clearing of the current one
00:02:37 <ehird> err
00:02:41 <ehird> s/carriage return/line feed/
00:02:43 <kerlo> Are you trying to tell me that KEY gets a keystroke?
00:02:46 <AnMaster> ehird, it wants CRLF?
00:02:46 <ehird> or w/e
00:02:48 <ehird> kerlo: yes
00:02:50 <ehird> AnMaster: no
00:02:55 <AnMaster> ehird, err what?
00:03:10 <kerlo> A line feed goes to the start of the line and does not give you a new line?
00:03:18 <kerlo> In other words, it returns the carriage and does not feed a line?
00:03:25 <ehird> Okay, okay, it's a carriage return
00:03:33 <ehird> but in forth, the word CR prints a carriage return/line feed so :P
00:03:34 <ehird> confusing
00:03:50 <AnMaster> indeed confusing
00:04:04 <ehird> gah, my nc is not BIG_GAPING_SECURITY_HOLE'd
00:04:09 * ehird tries to make it so
00:04:59 <oerjan> make it .so
00:06:53 <ehird> kfdfhgf
00:08:00 <ehird> someone give me a working netcat
00:09:18 <fizzie> Didn't I have a befunge interpreter in forth somewhere? Maybe I should try enhancing it to do funge-98 some day...
00:09:28 <ehird> : INIT-USER ." USER forthbot forthbot forthbot forthbot" CR ;
00:09:28 <ehird> : INIT-NICK ." NICK forthbot" CR ;
00:09:30 <ehird> : INIT-JOIN ." JOIN #esoteric" CR ;
00:09:32 <ehird> : INIT INIT-USER INIT-NICK INIT-JOIN ;
00:09:34 <ehird> : MAIN-LOOP ;
00:09:36 <ehird> : RUN INIT MAIN-LOOP ;
00:09:38 <ehird> is that good style? :P
00:10:08 * kerlo takes a look at su
00:11:09 <fizzie> Here's my Forth style, but I have no idea whether it's good or not; probably not: http://zem.fi/~fis/be.fs.html
00:11:58 <ehird> BE-GETC is vey long
00:12:05 <ehird> and you have stack diagrams up the wazoo
00:13:10 <AnMaster> wazoo?
00:13:32 <fizzie> They are aligned in vim; I think the syntax/2html.vim gets confused by them tabs somehow.
00:13:48 <AnMaster> ehird, wazoo - Zoo in, Washington, US
00:13:48 <AnMaster> ?
00:13:55 <AnMaster> s/in,/in/
00:14:07 <ehird> fizzie: yes but you're not meant to have them outside of word definitions
00:14:09 <ehird> AnMaster: fail
00:14:20 <AnMaster> ehird, was just guessing
00:14:27 <ehird> A damn useful little "backend" utility begun 950915 or thereabouts,
00:14:27 <ehird> as *Hobbit*'s first real stab at some sockets programming. Something that
00:14:29 <ehird> should have and indeed may have existed ten years ago, but never became a
00:14:31 <ehird> standard Unix utility. IMHO, "nc" could take its place right next to cat,
00:14:33 <ehird> cp, rm, mv, dd, ls, and all those other cryptic and Unix-like things.
00:14:35 <ehird> lol, nc was the guy's first sockets prorgam
00:14:53 <ehird> great program, wonder why he fell of the face of the earth
00:15:11 <AnMaster> nc rocks
00:15:19 <fizzie> ehird: Well, they were useful when debugging the thing.
00:15:22 <ehird> AnMaster: not gnu nc
00:15:24 <AnMaster> however I usually use socat instead
00:15:26 <ehird> gnu netcat sucks
00:15:29 <AnMaster> it is way more powerful
00:15:36 <AnMaster> ehird, why does gnu netcat suck?
00:15:48 <AnMaster> apart from bloated size
00:15:52 <ehird> bloated, shitty, like all gnu programs, and not a real improvement over hobbit's original code
00:16:04 <flexo> yea, gnu sucks in general
00:16:07 <AnMaster> ehird, gnu emacs isn't shitty!
00:16:10 <ehird> yes it si
00:16:12 <AnMaster> but apart from that, sure
00:16:14 <AnMaster> si
00:16:15 <AnMaster> right
00:16:16 <flexo> all bloated, un-unix-ish
00:16:19 <AnMaster> Spanish?
00:16:21 <ehird> original netcat is only 1668 lines long and does everything gnu netcat does
00:16:27 <flexo> trying to do vender-lockin all the time
00:16:31 <AnMaster> ehird, well yes, I prefer socat
00:16:33 <AnMaster> as I said
00:16:44 <flexo> and they code c like it was lisp
00:16:47 <AnMaster> it is pretty awesome
00:16:58 <flexo> the gnu coding standard is horrible
00:17:06 <AnMaster> flexo, agreed
00:17:16 <AnMaster> but gnu emacs rocks
00:17:18 <ehird> gnu cat is a good laugh
00:17:22 <AnMaster> that is the single exception
00:17:27 <flexo> i like netbsd
00:17:33 <ehird> gnu emacs is exactly like the rest of the gnu tools
00:17:33 <AnMaster> I like freebsd
00:17:44 <fizzie> The original netcat doesn't do ipv6. Although I have to admit I use here openbsd's netcat, which is the original with IPv6 support patched in.
00:17:47 <flexo> yea, well, i've got taste
00:18:12 <AnMaster> flexo, I also use openbsd
00:18:16 <flexo> that's the reason i don't like emacs either
00:18:22 <fizzie> Still, I think the GNU compiler collection doesn't suck that much.
00:18:27 <flexo> agreed
00:18:34 <AnMaster> oh it does
00:18:37 <flexo> the gnu coding style is used there too though
00:18:45 <AnMaster> yes and it sucks too
00:18:48 <flexo> gcc is about the only gnu program which doesn't totally suck
00:18:55 <AnMaster> flexo, it sucks more than gnu emacs
00:19:00 <flexo> nope.
00:19:07 <AnMaster> flexo, that is your opinion
00:19:11 <ehird> gcc is alright
00:19:12 <flexo> yea, and i'm right
00:19:22 <AnMaster> flexo, except it is subjective clearly
00:19:30 <flexo> actually.. nope
00:19:46 <ehird> gcc is only nice because it works, though
00:19:47 <ehird> code-wise, more of the same
00:19:50 <AnMaster> flexo, well, I'm sure vim has nicer coding style, EXCEPT it doesn't do what I need
00:19:50 <flexo> i disagree
00:19:54 <AnMaster> so that is irrelevant
00:20:04 <flexo> yea, vim isn't so nice
00:20:10 <ehird> flexo don't bother arguing with AnMaster, he doesn't have mutable state
00:20:12 <flexo> it's rather bloated
00:20:20 <AnMaster> flexo, same for vi, it doesn't do what I need
00:20:24 <flexo> ehird: look again, do you see me arguing?
00:20:27 <ehird> yes :D
00:20:33 * AnMaster agrees with ehird
00:20:36 <flexo> "yea, and i'm right" is not really an argument
00:20:52 <fizzie> Anyways, g'netcat. I mean, g'night.
00:20:53 <flexo> AnMaster: well, you need the wrong stuff
00:20:55 <AnMaster> ehird, I have a mutable state except when I don't
00:21:02 <AnMaster> flexo, now that is subjective
00:21:07 <flexo> nope
00:21:25 <ehird> things can be subjective but there only be one right answer.
00:21:28 <ehird> 's called taste.
00:21:31 <flexo> exactly
00:21:33 <ehird> but then AnMaster is a hypocrite
00:21:38 <ehird> see: "rock music"
00:21:41 <AnMaster> ehird, how so?
00:21:47 <ehird> hmm wonder why forthbot isn't joining
00:21:48 <AnMaster> also I dislike rock music, and what about it?
00:21:54 <AnMaster> how is that hypocritical?
00:21:57 <flexo> emacs is like rock music
00:22:00 <flexo> don't you see the connection?
00:22:01 <AnMaster> nop
00:22:04 <ehird> AnMaster: you force that on anyone who mentions rock music
00:22:05 <flexo> ask ehird about it
00:22:06 <AnMaster> flexo, it isn't
00:22:26 <AnMaster> ehird, no it is my personal view point, which I indeed promote
00:22:40 <ehird> that's it
00:22:41 <ehird> you promote it
00:22:43 <ehird> I don't go
00:22:45 <ehird> hey AnMaster classical sucks
00:22:49 <AnMaster> ehird, I learned how by your way of promoting OS X
00:22:49 <ehird> whenever you mention classical music
00:22:50 <AnMaster> :P
00:22:55 <AnMaster> so you are a hypocrite too
00:22:59 <ehird> i only do that when people are having an OS pissing match
00:23:05 <ehird> or i'm blabbing to myself
00:23:16 <flexo> os x sucks, actually
00:23:24 <flexo> :)
00:23:33 <AnMaster> flexo, not really
00:23:37 <flexo> ..
00:23:47 <flexo> this is how i got into esoteric programming
00:23:50 <AnMaster> flexo, I mean, not compared to windows
00:23:51 <flexo> i got so fucking frustrated
00:23:56 <ehird> i like os x. some people with poor taste dislike it.
00:23:57 <ehird> that's ok.
00:24:00 <ehird> they're just misguided.
00:24:00 <flexo> because all programming languages suck at some point
00:24:02 <flexo> all apis suck
00:24:05 <flexo> are inconsistent
00:24:07 <ehird> everything sucks, flexo
00:24:11 <flexo> the operating systems are buggy
00:24:11 <flexo> etc.
00:24:13 <ehird> the thing to do is to optimize for least suckage
00:24:13 <AnMaster> ehird, YES!
00:24:16 <AnMaster> I agree
00:24:19 <AnMaster> everything sucks
00:24:31 <ehird> yes. it's just a matter of paying the right amount.
00:24:34 <flexo> but in brainfuck it's not possible to do inconsistent APIs
00:24:35 * ehird *groan*
00:24:38 <flexo> to break naming schemes
00:24:42 <flexo> or use sillyOnes
00:25:05 <AnMaster> flexo, err yes it is, see gcc-bf
00:25:07 <AnMaster> compiles C to bf
00:25:15 <flexo> so?
00:25:17 <ehird> % ./forthbot.sh
00:25:17 <ehird> USER forthbot forthbot forthbot forthbot
00:25:19 <ehird> NICK forthbot
00:25:21 <ehird> JOIN #esoteric
00:25:23 <ehird> PRIVMSG #esoteric :I am an awesome cake
00:25:25 <ehird> [hangs]
00:25:27 <ehird> isn't that sufficient?
00:25:28 <flexo> brainfuck is by definition always beautiful
00:25:32 <flexo> i like that
00:25:43 <AnMaster> flexo, obviously it must be related, so you can trace it back to the original code
00:25:48 <AnMaster> even though names have been lost
00:26:02 <flexo> it's related - so?
00:26:06 <flexo> all the uglyness has been compiled out
00:26:14 <flexo> no functions
00:26:29 <flexo> no "real" abstraction mechanisms
00:26:33 <ehird> ok, forth phails at unix pipes
00:26:34 <ehird> tee hee
00:26:36 <AnMaster> but you could do inconsistent parameter order, like stack_pop(stack, count) stack_push(count, stack, outvariable)
00:26:37 <AnMaster> and so on
00:26:42 <AnMaster> and it would be there in the result
00:26:50 <ehird> flexo: another non-sucky piece of gnu software: gforth
00:26:51 <flexo> yea well. but you don't see it.
00:26:52 <AnMaster> ehird, funny
00:27:01 <AnMaster> flexo, yes the calling convention you see
00:27:06 <flexo> in brainfuck?
00:27:12 <flexo> you don't see anything in brainfuck code
00:27:14 <AnMaster> flexo, certainly, check gcc-bf out
00:27:21 <AnMaster> if ais found somewhere to host it
00:27:29 <AnMaster> ask ehird about details where it is hosted
00:27:45 <flexo> i'm not going to check anything out to have you destroy my worldview
00:28:04 <AnMaster> hah, ok
00:28:15 <ehird> % ./forthbot.sh |cat
00:28:16 <AnMaster> at least I accept that I'm wrong, when I *am* wrong
00:28:17 <ehird> [hang]
00:28:29 <AnMaster> ehird, funny, so gforth sucks?
00:28:33 <ehird> no
00:28:36 <AnMaster> what?
00:28:36 <flexo> AnMaster: so do i
00:28:37 <ehird> trying to get forth to integrate with unix sucks
00:28:41 <AnMaster> ehird, ah
00:28:42 <flexo> i just happen to never .. am?
00:28:48 <flexo> eh. be!
00:29:02 <AnMaster> flexo, hah
00:29:05 <flexo> ...
00:29:06 <flexo> :)
00:29:19 <ehird> If you pipe into Gforth, your program should read with read-file or read-line from stdin (see General files).
00:29:20 <AnMaster> well I'm sometimes wrong, but well saying subjective is objective is a bad one
00:29:21 <ehird> o.k.
00:29:34 <flexo> AnMaster: you know, i might have been kidding
00:29:36 <AnMaster> ehird, the other way around then?
00:29:37 <kerlo> Now, time to try to figure out how to use Hugs.
00:29:46 <ehird> AnMaster: type instead of ."
00:29:47 <ehird> it seems
00:29:48 <flexo> i'm fully aware that it's not possible to argue with insane people
00:29:48 <AnMaster> kerlo, use ghc?
00:29:48 <ehird> kerlo: don't
00:29:50 <ehird> ghci
00:29:52 <ehird> :P
00:29:57 <flexo> someone prefering emacs over vi is obviously insane
00:30:06 <flexo> so i must have been kidding in my tries to argue
00:30:09 <AnMaster> <ehird> AnMaster: type instead of ." <--?
00:30:16 <ehird> ." a"
00:30:16 <ehird> should be
00:30:19 <ehird> S" a" type
00:30:20 <ehird> well
00:30:22 <ehird> it should be
00:30:23 <ehird> char a emit
00:30:24 <AnMaster> ehird, is that forth code?
00:30:25 <ehird> but :P
00:30:27 <ehird> yes
00:30:30 <kerlo> AnMaster: GHC doesn't work under Xen, I believe.
00:30:30 <ehird> hmm that doesn't work
00:30:34 <ehird> kerlo: wat
00:30:36 <ehird> of course it does
00:30:39 <ehird> i use ghc on rutian occasionally
00:30:42 <AnMaster> kerlo, err there is no reason it shouldn't
00:31:01 <kerlo> Well, when I run GHCi, it gives me a fancy error.
00:31:15 <AnMaster> kerlo, well whatever causes that it isn't xen
00:31:22 <AnMaster> did you check if it was something else?
00:31:30 <AnMaster> also why not look around for that error
00:32:36 <ehird> aha, just need to flush stdout
00:32:46 <ehird> : say stdout write-line stdout flush-file ;
00:32:50 <kerlo> I looked around for that error. The bug page says it seems to be caused by Xen.
00:32:55 <AnMaster> ehird, it doesn't flush at exit?
00:32:59 <ehird> i want line-flush
00:33:07 <AnMaster> kerlo, what is this error?
00:33:25 -!- forthbot has joined.
00:33:25 <forthbot> I am an awesome cake
00:33:25 <AnMaster> ehird, what is wrong with flush-file?
00:33:29 <ehird> woop woop
00:33:30 <ehird> it works
00:33:34 <ehird> AnMaster: flush-file flushes it
00:33:36 <ehird> stop being stupid
00:33:40 <ehird> ." didn't work
00:33:42 <ehird> neither did write-line
00:33:43 <ehird> i needed to flush
00:33:44 <ehird> so i did
00:33:46 <ehird> as i said above
00:33:46 -!- forthbot has quit (Remote closed the connection).
00:33:51 <AnMaster> ehird, well "<ehird> i want line-flush" <-- why?
00:34:03 <ehird> ok, i'm not talking to you until you can comprehend basic english
00:34:10 <AnMaster> you made no sense
00:34:15 <ehird> i see.
00:34:22 <AnMaster> and if flush-file works, why did you want flush-line?
00:34:28 <AnMaster> what would the difference be?
00:34:30 <kerlo> Okay, maybe it's not quite so Xen-related.
00:34:31 <kerlo> http://hackage.haskell.org/trac/ghc/ticket/2063
00:35:25 <kerlo> Though it doesn't actually look like that bug; it looks like this one: http://hackage.haskell.org/trac/ghc/ticket/2013
00:37:33 <AnMaster> why do they need 32-bit
00:37:40 <AnMaster> can't they use full 64-bit pointers?
00:41:31 -!- oerjan has quit ("Good night").
00:43:44 <AnMaster> kerlo, idea, if you have multilib, just build an -m32 haskell
00:43:51 <AnMaster> ghc/ghci that is
00:43:54 <ehird> he didn't build haskell.
00:43:56 <ehird> almost certainly.
00:44:00 <ehird> building ghc is nigh-on impossible
00:44:11 <ehird> i.e., it takes 4-5 hours even on this fast machine
00:44:15 <ehird> with parallel make
00:44:20 <AnMaster> ehird, true, even gentoo offers a binary package for it
00:44:46 <AnMaster> ghc, openoffice, firefox and thunderbird all have binary packages
00:44:53 <ehird> what about x11/kde
00:45:03 <ehird> compiling those is stupid, wasteful and slow
00:45:06 <AnMaster> ehird, no, but they are much faster here
00:45:13 <ehird> hm. k
00:45:16 <AnMaster> X11 takes about 2 hour at most
00:45:26 <ehird> kde takes like 8 hours
00:45:26 <AnMaster> a complete KDE would take a bit less than 5 hours
00:45:45 <AnMaster> ehird, depends, I only use kdebase and kdesdk + a few random other apps
00:45:51 <AnMaster> gentoo uses split ebuilds for them
00:45:58 <AnMaster> so you can just merge the programs you want
00:46:12 <AnMaster> no need to compile each whole kde package
00:46:32 <ehird> Here's an example of an invocation of Gforth that is usable in a pipe:
00:46:32 <ehird> gforth -e ": foo begin pad dup 10 stdin read-file throw dup while \
00:46:34 <ehird> type repeat ; foo bye"
00:46:39 <ehird> kill it
00:46:50 <ehird> i don't think that can handle lines of more than 10 chars
00:47:14 <AnMaster> ehird, ouch
00:47:23 <ehird> This example just copies the input verbatim to the output. A very simple pipe containing this example looks like this:
00:47:24 <ehird> cat startup.fs |
00:47:26 <ehird> gforth -e ": foo begin pad dup 80 stdin read-file throw dup while \
00:47:28 <ehird> type repeat ; foo bye"|
00:47:30 <ehird> head
00:47:32 <ehird> and it magically changes to 80
00:47:32 <AnMaster> hah
00:47:34 <ehird> confirming my suspicions
00:47:38 <AnMaster> yes
00:47:45 <AnMaster> ehird, can't you copy n chars?
00:47:50 <AnMaster> where n is unknown
00:47:52 <ehird> probably.
00:47:59 <ehird> but I don't want to figure it out until tomorrow.
00:48:02 <ehird> on that note... ciao
00:48:06 <AnMaster> ehird, night!
00:48:10 <AnMaster> sleep well
00:48:15 <AnMaster> or whatever you say in English
00:48:25 <ehird> that works
00:48:44 <AnMaster> :)
01:13:02 -!- Corun has quit ("This computer has gone to sleep").
01:41:55 -!- seveninchbread has joined.
01:53:54 -!- seveninchbread_ has joined.
02:02:01 -!- CakeProphet has quit (Read error: 110 (Connection timed out)).
02:13:08 -!- seveninchbread has quit (Connection timed out).
02:16:14 -!- Corun has joined.
02:47:04 -!- seveninchbread_ has changed nick to CakeProphet.
04:11:29 <kerlo> Okay. Can anyone name *any* IRC bot that allows IRC users to more or less execute arbitrary code, other than lambdabot and bsmnt_bot?
04:11:41 <bsmntbombdood> why?
04:11:51 <bsmntbombdood> it's a pretty stupid thing to do
04:12:10 <kerlo> The guys who run lambdabot and bsmnt_bot do it.
04:13:57 <bsmntbombdood> and we are pretty stupid
04:14:19 <kerlo> Oh.
04:14:53 <kerlo> Okay, let me see if I can hack GHC into working on normish.org.
04:16:51 <kerlo> Oh, let's try a newer version.
04:26:53 <Asztal> kerlo: geordi
04:27:12 <Asztal> (in ##c++)
04:27:53 <kerlo> Oh, please. That is *so* last ten-minute period.
04:36:49 -!- kerlo has quit (Remote closed the connection).
04:45:57 -!- kerlo has joined.
05:07:08 -!- Corun has quit ("This computer has gone to sleep").
05:22:12 -!- psygnisfive has quit (Read error: 110 (Connection timed out)).
05:41:32 <bsmntbombdood> <3 job karma
05:42:12 <oklopol> ooooooooooooooooooo
05:52:13 -!- psygnisfive has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:10:58 -!- CakeProphet has quit (Read error: 110 (Connection timed out)).
08:12:48 -!- CakeProphet has joined.
08:25:50 -!- oerjan has joined.
10:22:19 -!- oklopol has quit (Read error: 110 (Connection timed out)).
10:51:48 -!- Hiato has joined.
12:24:29 -!- oerjan has quit ("leaving").
12:42:32 -!- Hiato has quit (Read error: 110 (Connection timed out)).
13:03:18 -!- jix has joined.
13:51:30 -!- Corun has joined.
14:42:54 <ehird> 04:14 <kerlo> Okay, let me see if I can hack GHC into working on normish.org.
14:42:54 <ehird> 04:16 <kerlo> Oh, let's try a newer version.
14:43:00 <ehird> itt: kerlo has never heard of apt-get
14:44:17 <Slereah_> ehird
14:44:22 <Slereah_> I want to eat your bones.
14:44:28 <ehird> okay
14:44:29 <ehird> do so
14:45:14 <Slereah_> Could you send your bones through the mail?
14:45:18 <ehird> done
14:45:36 <Slereah_> I hope they arrive soon.
14:54:08 -!- Corun has quit ("This computer has gone to sleep").
15:23:39 <ehird> http://ws.apache.org/xmlrpc/apidocs/org/apache/xmlrpc/server/RequestProcessorFactoryFactory.html?rel=html
15:31:54 <ehird> we need a higher-order factory calculus
15:34:35 <MizardX> Abstractions run amok
15:39:01 <ehird> [[Please, use more civilized language; remember, you're on the Internet.]] -- reddit
16:05:03 -!- KingOfKarlsruhe has joined.
16:18:20 -!- oerjan has joined.
16:21:00 <oerjan> <ehird> http://ws.apache.org/xmlrpc/apidocs/org/apache/xmlrpc/server/RequestProcessorFactoryFactory.html?rel=html
16:21:07 <oerjan> clearly this is a monad
16:21:14 <ehird> moar liek gonad
16:21:38 <oerjan> requestProcessorFactoryFactory :: IO (IO Processor)
16:21:42 <ehird> :D
16:21:57 <ehird> oerjan: does yi work
16:22:05 <oerjan> never tried it
16:22:13 <ehird> i am downloading it :D
16:22:40 -!- FireFly has joined.
16:23:21 <oerjan> actually there should probably be another IO on that, since the initial request is really a factory too
16:24:16 <oerjan> (IO replaced with another monad as appropriate, of course)
16:24:45 <oerjan> <ehird> [[Please, use more civilized language; remember, you're on the Internet.]] -- reddit
16:25:00 <ehird> <oerjan> <ehird> [[Please, use more civilized language; remember, you're on the Internet.]] -- reddit
16:25:00 <oerjan> that would be sensible.
16:25:10 <oerjan> unfortunately, the internet rarely is.
16:26:02 <ehird> CWD="`(cd \"\`dirname \\\"$0\\\"\`\"; echo $PWD)`"
16:26:04 <ehird> impressive
16:26:23 <oerjan> O_O
16:27:37 <oerjan> rube goldberg programming?
16:43:30 -!- MigoMipo has joined.
16:57:33 -!- KingOfKarlsruhe has quit (Remote closed the connection).
17:45:44 <AnMaster> ehird, http://rcfunge98.com/rcsfingers.html#UNIX <-- crazy idea. And format of mask isn't specced
17:45:58 <ehird> That's not crazy.
17:46:01 <ehird> That's reasonable.
17:46:07 <ehird> Also, you know what a umask is, presumably.
17:46:20 <ehird> That spec is fine, and looks useful.
17:46:36 <ehird> Change file access <- the only really vague part
17:46:57 <AnMaster> true, guess: permissions
17:47:08 <ehird> yes, probably chmod
17:47:20 <ehird> almost certainly, in fact.
17:47:42 <AnMaster> ehird, also his list of fingerprints is now crazily long
17:47:52 <ehird> he's an odd guy.
17:48:01 <ehird> but that spec is one of the better ones, it's just terse
17:48:01 <AnMaster> ehehehe,,,, yes...
17:48:16 <ehird> AnMaster: want vagueness?
17:48:16 <ehird> http://rcfunge98.com/rcsfingers.html#TRGR
17:48:54 <AnMaster> ehird, indeed, my policy nowdays is to avoid implementing any RCS fingerprints that mycology doesn't test.
17:49:01 <ehird> that's no fun
17:49:09 <ehird> AnMaster: you should implement TRGR without looking at rc/funge
17:49:09 <AnMaster> yes he wrote his own test suites sometimes, but often they are buggy
17:49:22 <ehird> just implement what it says there, make up the unspecified parts (like wtf a trigger is) youreslf
17:49:30 <ehird> and claim it to be spec-compliant, which it would be
17:49:51 <AnMaster> ehird, well I have done similar before and it ended up with flames
17:49:59 <ehird> when, which?
17:50:16 <AnMaster> ehird, hm, interpreting REXP as using a global buffer for example
17:50:22 <ehird> ah.
17:50:25 <ehird> "flames"?
17:50:31 <ehird> i don't think i've ever seen mikeriley show emotion :D
17:50:38 <AnMaster> ehird, eheheheheheh,,,,,,,,,,,,!
17:50:47 <ehird> ok, that got old when I specced mkry
17:51:12 <AnMaster> ehird, true
17:52:57 <Deewiant> I love the way that spec is called "UNIX" when it provides 15 instructions related mostly to unix permissions
17:53:31 <ehird> it seems reasonable to me
17:53:33 <ehird> they're unix syscalls
17:53:43 <Deewiant> "UNIX", to me, implies all of unix
17:53:47 <AnMaster> ehird, what about other unix stuff
17:53:56 <AnMaster> I mean UPRM might have been a better name
17:54:01 <ehird> i guess
17:54:34 <Deewiant> Either provide all of unix in one fingerprint or split it into multiple fingerprints each of has a cohesive purpose
17:54:45 <AnMaster> Deewiant, agreed
17:54:45 <Deewiant> Not "some unix permission stuff and oh, domain names too"
17:54:54 <ehird> it does domain names?
17:54:55 <ehird> ok, thats stupid
17:54:56 <Deewiant> D and N
17:55:00 <Deewiant> what the hell's the difference anyway
17:55:11 <AnMaster> why not use SCKE?
17:55:19 <AnMaster> doesn't it perform those?
17:55:34 <ehird> no
17:55:36 <ehird> that makes sens
17:55:37 <ehird> e
17:55:41 <Deewiant> why
17:55:44 <ehird> one is a reverse dns lookup of the current host
17:55:48 <ehird> one is the /etc/hostname
17:55:56 <AnMaster> hm
17:55:56 <Deewiant> which is which
17:55:58 <ehird> i'd only provide the latter, admittedly
17:56:02 <ehird> Deewiant: N is hostname
17:56:04 <ehird> D is domainname
17:56:09 <ehird> figure it out :P
17:56:30 <AnMaster> H( -- id)Get host id
17:56:31 <AnMaster> huh?
17:56:33 <AnMaster> what is that
17:56:45 <ehird> ummmmmmm.
17:56:45 <Deewiant> ehird: domainname comes from uname according to man 2 getdomainname
17:56:48 <ehird> AnMaster: i don't know
17:57:03 <Deewiant> in which case that may make sense but it still doesn't fit in the same fingerprint IMO
17:57:08 <ehird> yes
17:57:10 <ehird> but teh separation isn't bad
17:57:28 <Deewiant> right, I just got what you meant by "one is a reverse dns lookup"
17:57:31 <Deewiant> you meant SCKE, not D
17:57:49 <Deewiant> AnMaster: hostid
17:58:17 <AnMaster> hm
17:58:41 <AnMaster> `hostid' prints the numeric identifier of the current host in
17:58:42 <AnMaster> hexadecimal. This command accepts no arguments. The only options are
17:58:42 <AnMaster> `--help' and `--version'. *Note Common options::.
17:58:43 <AnMaster> interesting
17:58:47 <AnMaster> so those aren't arguments?
17:58:56 <Deewiant> no, they're options
17:59:02 <AnMaster> ok
17:59:07 <AnMaster> whatever
18:00:09 <Deewiant> hostid supposedly comes from the MAC address of eth0 but I don't see the resemblance
18:00:16 <AnMaster> nor do I
18:00:44 <ehird> % hostid
18:00:44 <ehird> 00000000
18:01:03 <Deewiant> ahaha
18:01:10 <Deewiant> 007f0100
18:01:14 <Deewiant> I just realised what that is
18:01:16 <Deewiant> besides my hostid
18:01:17 <ehird> what
18:01:22 <Deewiant> it's 0.127.1.00
18:01:23 <ehird> ??
18:01:28 <ehird> lol wat
18:01:30 <AnMaster> Deewiant, ah yes, and it is same as mine
18:01:31 <Deewiant> which is the byte transposition of 127.0.0.1
18:01:35 <ehird> XDD
18:01:40 <Deewiant> which is unsurprisingly what's under localhost in /etc/hosts
18:01:41 <ehird> yeah, 0.0.0.0 also works
18:01:44 <Deewiant> and that's my unique host id
18:01:45 <AnMaster> ehird, well it seems like a rather silly command
18:01:52 <ehird> ::1 localhost
18:01:55 <AnMaster> Deewiant, it tries to read /etc/hostid btw
18:01:56 <ehird> I suppose that's what's causing it
18:02:00 <AnMaster> doesn't seem documented
18:02:06 <Deewiant> AnMaster: yes, if you've got one
18:02:08 <AnMaster> the file doesn't exist though
18:02:23 <AnMaster> Deewiant, can't find what the file is supposed to do
18:02:31 <Deewiant> ehird: yeah, it probably does a scanf("%3d.%3d.%3d.%3d") :-P
18:02:46 <ehird> no, 0.0.0.0 resolves to this machine
18:02:47 <ehird> here
18:02:53 <AnMaster> wtf
18:02:57 <ehird> that's usual
18:02:58 <ehird> try it
18:03:00 <AnMaster> err
18:03:02 <Deewiant> AnMaster: echo "foo" > /etc/hostid
18:03:02 <Deewiant> hostid
18:03:05 <AnMaster> ehird, resolves in what way?
18:03:06 <Deewiant> 0a6f6f66
18:03:09 <ehird> Deewiant: doesn't work for me
18:03:14 <AnMaster> ehird, DNS?
18:03:14 <ehird> AnMaster: as an ip.
18:03:17 <AnMaster> ah
18:03:25 <Deewiant> ehird: what doesn't
18:03:25 <AnMaster> ehird, because it doesn't resolve in DNS
18:03:29 <ehird> running a server on 127.0.0.1 doesn't let anyone else access it
18:03:33 <ehird> does with 0.0.0.0
18:03:33 <AnMaster> but if you mean it is possible to bind to...
18:03:37 <ehird> so, slightly different semantics on listening
18:03:41 <AnMaster> ehird, yes of course, but that isn't same as "resolve"
18:03:43 <ehird> but for connection
18:03:45 <ehird> it's the same
18:03:46 <AnMaster> it means "listen to all"
18:03:47 <ehird> AnMaster: oh stfu
18:03:55 <ehird> you can connect to 0.0.0.0
18:03:57 <ehird> and get localhost
18:03:59 <ehird> that's what i'm saying
18:04:00 <AnMaster> ehird, resolve means "reverse DNS resolve"
18:04:07 <ehird> shut upppppppp
18:04:21 <ehird> just because you're a freaking pedant doesn't mean you have to complain even if you understand me
18:04:42 <oerjan> yes it does!
18:04:50 <Deewiant> AnMaster: let resolve = "reverse DNS " ++ resolve in resolve ===> "reverse DNS reverse DNS reverse DNS reverse DNS " ...
18:05:09 <oerjan> wait, i'm late for that argument thread...
18:05:28 -!- Hiato has joined.
18:05:30 <AnMaster> Deewiant, checking if the result from reverse lookup resolves to same ip is a common check
18:05:32 <oerjan> ^ul ((reverse DNS )S:^):^
18:05:32 <fungot> reverse DNS reverse DNS reverse DNS reverse DNS reverse DNS reverse DNS reverse DNS reverse DNS reverse DNS reverse DNS reverse DNS reverse DNS reverse DNS reverse DNS reverse DNS reverse DNS reverse DNS reverse DNS reverse DNS reverse DNS reverse DNS reverse DNS reverse DNS reverse DNS reverse DNS reverse DNS reverse DNS ...too much output!
18:05:39 <AnMaster> for example ircds use it before showing host
18:05:49 <AnMaster> if it doesn't exist someone is trying to fake reverse dns
18:05:56 <AnMaster> a lot of other software also use it
18:06:09 <ehird> wow, AnMaster excells further in the field of "totally irrelevant misunderstandings leading to ranting about minor points"
18:06:17 <ehird> someone give him a reward
18:06:26 <AnMaster> ehird, nice!
18:06:27 * Deewiant gives reward to AnMaster
18:06:47 <oerjan> AnMaster: now you need to give a speech
18:06:54 <ehird> oh god, you'll set him off again
18:07:13 <AnMaster> oerjan, oh? what sort of speech?
18:07:15 <Deewiant> ^ul ((acceptance speech )S:^):^
18:07:15 <fungot> acceptance speech acceptance speech acceptance speech acceptance speech acceptance speech acceptance speech acceptance speech acceptance speech acceptance speech acceptance speech acceptance speech acceptance speech acceptance speech acceptance speech acceptance speech acceptance speech acceptance speech acceptance speech ...too much output!
18:08:09 <AnMaster> Well I think this rewardm which seems to be oerjan's frying pan with the word "reward" painted on it, is very nice
18:08:17 <AnMaster> but isn't stealing it a bit mean Deewiant?
18:09:20 <Deewiant> Whence do you infer that I stole it
18:09:43 <AnMaster> Deewiant, because I don't think oerjan would give it away voluntarily
18:09:57 <Deewiant> You thought wrong
18:10:13 <oerjan> you said it was for short selling!
18:10:27 <ehird> deewiant if I write a befunge-98 implementation in 5 characters will you rewrite mycology to give it all GOODs
18:11:16 <Deewiant> ehird: no
18:11:22 <ehird> deewiant why not
18:11:33 <Deewiant> ehird: mu
18:12:23 <ehird> deewiant why not
18:13:07 <Deewiant> ehird: why would I rewrite something only to recreate the original: if your implementation is a befunge-98 implementation it will get all GOODs
18:13:20 <ehird> well it would be a fuzzy implementation.
18:13:26 <ehird> specifically, it would execute random parts of memory.
18:13:30 <ehird> sometimes, that will run befunge-98 code.
18:13:35 <Deewiant> you can do that in 5 chars?
18:13:55 <oerjan> then sometimes it will pass mycology. what's the problem?
18:14:06 <ehird> Deewiant: yes.
18:14:18 <ehird> ignoring the main() { } boilerplate.
18:14:21 <ehird> well.
18:14:24 <ehird> it'll be more like 10 chars.
18:14:34 -!- oklopol has joined.
18:14:51 <oerjan> i thought it was gonna be J or something...
18:15:14 <oklopol> jjjjjjjjjjjjjjjjjjjjjj!
18:15:34 <oerjan> but J is probably memory safe
18:15:40 <ehird> Deewiant:
18:15:44 <ehird> #include<stdlib.h>
18:15:47 <ehird> main(){return((int(*)(int))rand())();}
18:16:21 <ehird> well, that doesn't bode for command args
18:16:22 <ehird> ok
18:16:23 <ehird> try this
18:16:38 <ehird> #include<stdlib.h>
18:16:39 <ehird> main(a,v){return((int(*)(int))rand())(a,v);}
18:18:00 <ehird> hmm wait
18:18:02 <ehird> that needs to be
18:18:10 <ehird> #include<stdlib.h>
18:18:12 <ehird> main(a,v){return((int(*)(int,char**))rand())(a,v);}
18:18:12 <ehird> yw
18:18:32 <Deewiant> RAND_MAX is too small, it'd only work on a small part of my memory
18:18:48 <ehird> Deewiant: patches welcome, but that isn't an issue
18:19:02 <ehird> i mean, the chances of the befunge-98 interp in ram being at a piece of ram < RAND_MAX is like 100%
18:19:14 <AnMaster> ehird, is it?
18:19:18 <ehird> yes.
18:19:18 <Deewiant> hmm
18:19:23 <AnMaster> ehird, why?
18:19:25 <Deewiant> can one see from somewhere where stuff is in memory
18:19:29 <ehird> AnMaster: because of magic
18:19:33 <ehird> Deewiant: wut
18:19:41 <Deewiant> and possibly set a minimum memory location where they must live ;-)
18:20:01 <oklopol> O0oOOOooo0ooo0oOoooo0oO0oOOoo0oo0000oo.......
18:20:02 <Deewiant> ehird: well, stuff tends to have mappings to virtual memory
18:20:18 <Deewiant> I'd guess there's something in /proc that'd tell me
18:20:22 <AnMaster> Deewiant, you can see where things are mapped in the current process cat /proc/self/maps
18:20:23 <AnMaster> iirc
18:20:27 <AnMaster> on linux
18:20:38 <AnMaster> mostly useful for debugging
18:20:58 <Deewiant> so I see
18:21:06 <Deewiant> hmm
18:21:25 <Deewiant> any chance of seeing where the program counter is? :-P
18:21:32 <AnMaster> Deewiant, gdb
18:21:37 <AnMaster> attach gdb to it
18:21:53 <Deewiant> meh
18:21:56 <AnMaster> then it is show registers or something like that
18:22:14 <Deewiant> cat I had installed, gdb I don't :-P
18:22:46 <AnMaster> Deewiant, well obviously replace the "self" part in the path with the pid you are interested in
18:23:17 <Deewiant> doesn't solve the problem of lacking gdb
18:23:45 <AnMaster> Deewiant, well I guess you could write your own debugger to do it
18:23:45 <ehird> I should write this interp in haskell. Wait, Asztal's done that
18:24:01 <lament> OoOOoO
18:24:17 <ehird> waiiiiiiit
18:24:19 <ehird> Asztal: that's in C++!!!
18:24:23 <ehird> who did it in haskell?
18:24:44 <Deewiant> I forget his nick, the finnish guy
18:25:13 <ehird> :DD
18:25:14 <ehird> fizzie?
18:25:21 <ehird> oooh
18:25:22 <ehird> ilari?
18:25:25 <Deewiant> nope
18:25:30 <oklopol> did what?
18:25:30 <ehird> has to be
18:25:32 <Deewiant> not here now, I don't think
18:25:32 <ehird> it's the rubiks cube guy
18:25:34 <ehird> right?
18:25:55 <Deewiant> I know a lot of finnish rubik's cube guys :-P
18:26:02 <ehird> XD
18:26:15 <Deewiant> ehird: looking at some programs on my machine it seems they all have their IP at locations beyond RAND_MAX
18:26:16 <AnMaster> Deewiant, hm something on f?
18:26:23 <ehird> Deewiant: that's their problem
18:26:35 <ehird> Deewiant: the idea isn't to hit into a program
18:26:37 <Deewiant> ehird: your interpreter likely has a 0% chance of success
18:26:42 <ehird> the idea is to hit into some memory that happens to be valid machine code
18:26:45 <ehird> that runs befunge-98 programs
18:27:08 <Deewiant> funktio
18:27:10 <Deewiant> that was his nick
18:27:10 <AnMaster> ehird, err no, it is likely you will hit an unmapped area. then segfault due to that
18:27:16 <Deewiant> http://funktio.awardspace.com/misc/hsfunge/
18:27:17 <ehird> AnMaster: wait, why are you using an OS?
18:27:20 <Deewiant> and it's no longer up
18:27:20 <ehird> I don't support operating systems
18:27:42 <AnMaster> ...
18:27:48 <Deewiant> ehird: good luck getting such memory without an OS
18:27:55 <Deewiant> without stuff going on, the memory doesn't change much :-P
18:27:58 <ehird> Deewiant: sure, it's meant to fit into your own OS
18:27:59 <ehird> in kernelspace
18:28:17 <Deewiant> does that not mean supporting operating systems
18:28:26 <ehird> no, i don't support oses i.e. i don't support it in userspace
18:28:32 <Deewiant> right
18:29:49 <Deewiant> so I guess hardware drivers don't support much of anything then :-P
18:29:55 <AnMaster> Deewiant, how goes work on ccbi2?
18:30:44 <Deewiant> AnMaster: stalled since september due to DMD bug #2339
18:30:54 <AnMaster> Deewiant, still not fixed. huh
18:31:08 <Deewiant> AnMaster: my oldest open bug is from 2006 june
18:31:19 <AnMaster> Deewiant, how many have patches?
18:31:25 <Deewiant> AnMaster: ~none
18:31:27 <Deewiant> a few might
18:31:29 <AnMaster> ok
18:31:40 <Deewiant> not by me, though
18:31:54 <Deewiant> it /is/ a frontend problem so I /could/ fix it... if I could
18:31:56 <AnMaster> also poll: should I make up a fingerprint for interfacing SQL databases? If yes which of these DBs: SQLite, MySQL, PostgreSQL
18:32:02 <AnMaster> note I may not implement it
18:32:09 <Deewiant> DB-independent
18:32:16 <Deewiant> interpreter-defined
18:32:30 <AnMaster> Deewiant, you still need DB-dependent connection of some sort hm
18:32:47 <AnMaster> Deewiant, or it would be quite useless
18:33:04 <Deewiant> interpreter-defined
18:33:18 <ehird> i'll do better
18:33:23 <ehird> i'll write OBJDB
18:33:28 <ehird> well.
18:33:33 <AnMaster> GRDB?
18:33:33 <ehird> OBDB
18:33:38 <ehird> funge object database.
18:33:43 <ehird> basically, persistent fungespace. >:D
18:33:45 <AnMaster> ehird, what about graph DB?
18:33:52 -!- Hiato has quit ("Leaving.").
18:33:54 <Deewiant> ehird: basically o and i?
18:33:55 <ehird> AnMaster: no, that's too ... practical
18:34:05 <ehird> Deewiant: yes but, can you use fingerprints with that?
18:34:11 <AnMaster> ehird, FILE?
18:34:14 <Deewiant> ehird: meaning what?
18:34:15 <ehird> basically
18:34:24 <ehird> Deewiant: e.g. say you have an OOP fingerprint that stores objects in fungespace
18:34:29 <ehird> you could make it use the persistent fungespace
18:34:39 <ehird> instead of regular fungespace
18:34:43 <Deewiant> ehird: sure, you could use o and i to store that
18:34:48 <ehird> Deewiant: o rly?
18:34:50 <ehird> i mean like
18:34:51 <ehird> new object
18:34:54 <ehird> just gives you fungespace coords
18:34:59 <ehird> the actual fungespace is in the fingerprint code
18:35:01 <Deewiant> sure
18:35:05 <ehird> but the persistent fungespacer
18:35:08 <ehird> makes the fingerprint use it
18:35:12 -!- Hiato has joined.
18:35:15 <ehird> can't do that with o/i
18:35:26 <AnMaster> no clue what you mean.
18:35:27 <Deewiant> ehird: VMEM?
18:35:38 <Deewiant> ehird: sounds like virtual memory, anyway :-P
18:35:41 <AnMaster> Deewiant, that exists?
18:35:46 <AnMaster> RCS I assume?
18:35:49 <Deewiant> AnMaster: nope
18:35:55 <AnMaster> ah
18:35:58 <ehird> Deewiant: it's basically mmap
18:36:10 <AnMaster> wait hm, paging segments in funge space
18:36:10 <AnMaster> ?
18:36:10 <ehird> you can swap out some fungespace usage with a version that writes to a fil
18:36:11 <ehird> e
18:36:18 <AnMaster> VMEM indeed then
18:36:28 <ehird> combine with an OOP fingerprint
18:36:30 <AnMaster> ehird, also a crazy nice idea
18:36:31 <ehird> and you have a funge object database.
18:36:33 <ehird> :DD
18:36:36 <Deewiant> ehird: you can write fungespace to a file using threads which do o every tick
18:36:49 <AnMaster> but the code would need to handle paging itself
18:36:51 <AnMaster> of course
18:37:00 <AnMaster> fingerprints can't do it behind the scens
18:37:01 <Deewiant> ehird: so the only new thing here is something like virtual memory unless I misunderstood
18:37:02 <AnMaster> scenes*
18:37:14 <ehird> Deewiant: that's 1) inefficient, 2) it's a separate fungespace: you can have multiple of them, and only do some things in them, etc
18:37:37 <Deewiant> ehird: 1) that's probably how I'd implement it on windows anyway
18:37:41 <Deewiant> ehird: 2) MVRS
18:37:58 <AnMaster> VMEM should have memory protection too
18:38:02 <ehird> Deewiant: can MVRS cause certain fingerprints to write to one of the fungespaces,
18:38:05 <ehird> but have the rest of the program outside of it?
18:38:11 <ehird> and still be able to access the fungespaces the fingerprints are using?
18:38:17 <ehird> without these fingerprints knowing about mvrs, that is
18:38:26 <AnMaster> hm. some nice ideas for this vmem
18:38:34 * AnMaster writes them down
18:38:36 <Deewiant> ehird: yes, just run the code in a different mvrs?
18:38:41 <AnMaster> basically a DMA-hole to disk!
18:38:41 <Deewiant> er, universe
18:38:44 <AnMaster> by mmap()
18:39:01 <ehird> meh
18:39:04 <AnMaster> also DMA has nothing to do with it
18:39:10 <ehird> how far did hsfunge get?
18:39:11 <AnMaster> but it sounds cool ;P
18:39:13 -!- olsner has joined.
18:39:26 <Deewiant> ehird: it found a bug in mycology, can't remember if he did any fingerprints though
18:40:02 <ehird> so should i do this in haskell or C :P
18:40:11 <ehird> i should do it in haskell and be faster than cfunge for the lulz
18:41:14 <Deewiant> good luck with that
18:41:31 <ehird> :P
18:42:06 <AnMaster> brb
18:42:18 <Deewiant> I have some hidden ideas for funge-space algos which should be comparatively about as fast as cfunge without being as lame as 'static array the size of the biggest program I know of'
18:42:41 <Deewiant> but only 'about' because that's obviously cheating and can't really be beat :-P
18:43:18 <ehird> well, the static array thing is a good idea, but the biggest program i know of is kind of stupid
18:44:04 <Deewiant> it's the size of mycology rounded up to powers of two
18:44:18 <Deewiant> (256*1024)
18:44:25 <ehird> yeah
18:44:41 <ehird> still, the static array is still a good idea, right?
18:44:42 <Deewiant> mycology is 180*800 or so and uses a bit of space on the negative side making it around 190*810
18:44:55 <Deewiant> I don't like static arrays :-P
18:45:14 <ehird> why not :P
18:45:54 <Deewiant> if you have dynamic data it's just extra complexity
18:46:01 <Deewiant> or a source of bugs :-P
18:51:05 <ehird> poll time
18:51:15 <ehird> "BEFUNGE-98EHIRD": C or Haskell or Other
18:53:48 <oerjan> Other. Specifically, Malbolge.
18:54:18 <ehird> invalid option
18:54:20 <Deewiant> Factor
18:54:37 <ehird> Doesn't run on OS X Tiger because slava pestov is a kid with ADHD and can't stop using shiny APIs.
18:54:45 <Deewiant> Joy
18:54:53 <ehird> Does Joy even have file IO?
18:55:30 <Deewiant> Doesn't it?
18:55:41 <oerjan> hm, "Grief programming language"
18:55:45 <ehird> Well, okay, does it have any other OS interfaces Deewiant?
18:56:15 <Deewiant> Probably not, I don't know
18:56:38 <Deewiant> ehird: Cat, then.
18:56:53 <AnMaster> <ehird> "BEFUNGE-98EHIRD": C or Haskell or Other <- other, weird
18:57:04 <AnMaster> or is it wired? can't remember
18:57:07 <ehird> AnMaster: The author of Cat is a retard. he claimed that a lazy map function was O(1).
18:57:11 <ehird> AnMaster: wierd
18:57:16 <AnMaster> ehird, ah yes
18:57:17 <AnMaster> thanks
18:57:22 <AnMaster> well I suggest using it
18:57:25 <lament> of course it's O(1)
18:57:29 <ehird> AnMaster: no
18:57:31 <Deewiant> all lazy functions are O(1)
18:57:36 <ehird> well, exactly
18:57:41 <ehird> but you don't talk about them like that
18:57:44 <ehird> because that's _idiotic_
18:57:44 <Deewiant> Haskell—the constant-time programming language
18:57:50 <AnMaster> ehird, also i and o are optional
18:57:56 <ehird> your mom is optional
18:57:59 <AnMaster> so you can manage without file io
18:58:10 <AnMaster> ehird, also I admit jitfunge is faster
18:58:13 <Deewiant> AnMaster: he has to read the befunge file somehow
18:58:19 <Deewiant> AnMaster: whence the source without I/O?
18:58:26 <AnMaster> Deewiant, hm true
18:58:49 <AnMaster> Deewiant, anyway fast mmaped IO in funge space sounds fun
18:58:59 <ehird> hhmm.
18:59:03 <ehird> can't you load fungespace with mmap?
18:59:04 <AnMaster> I'm not sure how much it will impact stuff when I need to check if some area should be mmaped
18:59:08 <AnMaster> for every read/write
18:59:12 <ehird> and copy-on-write
18:59:27 <AnMaster> ehird, I open with mmap() to avoid issues like fread() ends with \r and next start with \n
18:59:43 <AnMaster> ehird, one issue is the source file line length will vary
18:59:49 <ehird> I mean
18:59:51 <ehird> without parsing
18:59:53 <AnMaster> you need to build a line index or something
18:59:53 <ehird> just mmap() and go
19:00:11 <AnMaster> ehird, well don't think so due to varying line length, you need to locate newlines somehow
19:00:18 <AnMaster> I did consider that a lot you know
19:00:21 <AnMaster> for extra speed
19:00:37 <AnMaster> and at least I couldn't figure out a way to do it
19:01:02 <AnMaster> ehird, so basically you need to parse for \r, \r\n and \n
19:01:08 <AnMaster> all are valid line ending
19:01:21 <AnMaster> mycology uses \r\n for example
19:01:37 <ehird> i'm gonna go for haskell because i don't wanna fuck with memory management more than i have to
19:02:00 <AnMaster> hm copy on write in C, I know kernel does it by page faults and such
19:02:02 <ehird> now convince me not to call it butts
19:02:16 <AnMaster> ehird, call what butts?
19:02:22 <ehird> the interp.
19:02:36 <ehird> well, interp-and-possible-future-compiler-to-llvm because haskell has libraries for that and i am fucking nuts
19:02:37 <AnMaster> well why should I convince you about that?
19:02:40 <ehird> (nutphillia)
19:02:48 -!- MigoMipo has left (?).
19:03:03 <ehird> AnMaster: because if you try it out you'll have to phrase things awkwardly to avoid mentioning its name
19:03:07 <AnMaster> ehird, and I only claimed cfunge was the current fastest _interpreter_
19:03:18 <AnMaster> I admit that jit compilers like jitfunge are faster
19:03:46 <oerjan> ehird: butts has nothing to do with fungi, and therefore cannot be the name of a funge implementation. that's just the way it is.
19:03:55 <AnMaster> oerjan, good point
19:04:15 <ehird> ok then, i'll call it neocallimastigomycota
19:04:35 <AnMaster> oerjan, what about FBBI? Flaming Bovine Befunge Interpreter
19:04:39 <ehird> funge
19:04:40 <AnMaster> written by C. Pressy
19:04:42 <ehird> is in befunge
19:04:44 <ehird> is in FBBI
19:04:44 <AnMaster> ehird, true
19:04:51 <AnMaster> good point
19:05:35 <ehird> oerjan: link to that page with funge-related names?
19:05:37 <ehird> you linked to it a while ago iirc
19:05:43 <AnMaster> ehird, and don't claim I can't admit when I was wrong in the future, now that it actually happened you saw me admit that right above
19:05:55 <AnMaster> ~
19:06:21 <AnMaster> http://rcfunge98.com/rcsfingers.html#IMTH <-- why...
19:06:47 <AnMaster> quite a few of those exist in FIXP
19:07:03 <AnMaster> the rest are trivial without IMTH I think
19:07:21 <oerjan> ehird: this time i might suggest http://en.wikipedia.org/wiki/Category:Lists_of_fungal_species
19:07:49 <ehird> meh
19:07:52 <ehird> I preferred the flat list
19:07:56 <oerjan> darn latin
19:08:04 <oerjan> yeah those were in english
19:09:36 <oerjan> here's a big one: http://www.britmycolsoc.org.uk/files/ENGLISH_NAMES.pdf
19:09:43 <ehird> it wasn't a pdf either :P
19:10:12 <oerjan> _and_ i didn't save the link
19:10:13 <AnMaster> ehird, that isn't an issue when they open inline in the browser and without silly plugins
19:10:23 <AnMaster> it just works here with konqueror
19:10:31 <ehird> umm, that's a plugin.
19:10:35 <ehird> also, pdfs suck anyway.
19:10:54 <AnMaster> ehird, hm? kpdf is a kpart, which is used both by kpdf itself and by konqueror
19:11:11 <ehird> AnMaster: kpart - you mean, a plugin
19:11:18 <AnMaster> ehird, no a module
19:11:29 <ehird> wow. it's not a module, it's a plugin.
19:11:31 <ehird> how profound.
19:11:32 <AnMaster> or kingerprint
19:11:34 <AnMaster> ;P
19:11:34 <ehird> a rose by any other name.
19:11:55 <AnMaster> ehird, well I said "silly plugins", implying third party acrobat one
19:12:03 <AnMaster> so sure it may be a plugin
19:12:15 <AnMaster> if that makes you happier
19:15:21 <oerjan> another one: http://www.english-country-garden.com/fungus.htm
19:15:21 <AnMaster> Deewiant, looks like Mike did his own variant of SNGL... SGNE
19:18:33 * AnMaster ponders a 3 letter fingerprint: SQL
19:18:36 <AnMaster> well
19:18:50 <AnMaster> I got some ideas for the "db independent"
19:19:46 <AnMaster> all I will need is basic common SQL support. I mean, the concept of a database with one or more schemas, with views and tables (and possibly stored procedures and so on)
19:19:50 <AnMaster> btw I just got an idea
19:19:54 <AnMaster> for PostgreSQL
19:20:12 <AnMaster> there is PL/pgSQL
19:20:17 <AnMaster> and PL/Tcl
19:20:19 <AnMaster> and several more
19:20:22 <AnMaster> what about
19:20:26 <AnMaster> PL/Befunge
19:20:27 <AnMaster> :D
19:20:38 <AnMaster> ehird, what do you thing?
19:20:43 <AnMaster> think*
19:20:43 <ehird> ?
19:20:53 <AnMaster> ehird, about a PL/Befunge for Postgres
19:20:57 <ehird> it's a crappy idea, like most of yours.
19:20:57 <AnMaster> just a wild idea
19:21:04 <ehird> did you want that, or the lie?
19:21:08 <AnMaster> ehird, why is it crappy?
19:21:20 <ehird> it's thoroughly uninteresting
19:21:22 <AnMaster> there is a PL/sh even
19:21:25 <AnMaster> which is worse IMO
19:21:46 <AnMaster> (third party)
19:25:36 <ehird> possible name: milkcap
19:26:28 <AnMaster> ehird, for your interpreter?
19:26:34 <ehird> yes
19:27:31 <AnMaster> ehird, also if you decide to jit I'm not going to care, I don't have the time to add jitting to cfunge currently, no idea about later
19:28:26 <oerjan> it's the jitterbug
19:28:54 <AnMaster> sigh
19:29:16 <ehird> hm. mutability violating the liskov subtitution principle. interesting.
19:29:27 <AnMaster> oerjan, that was too bad even for a groan
19:33:04 <AnMaster> night all
19:34:17 <ehird> Joel Spolsky reaches the minimum in substantive content: http://www.joelonsoftware.com/items/2009/01/13.html
19:34:31 -!- olsner_ has joined.
19:34:45 <lament> what, he has even less content now?
19:34:56 <lament> you should have said reaches a new mininum
19:34:59 <ehird> :-)
19:35:34 <ehird> lament: he's still got a bit to lose, though... he wrote a full title summarizing the article which he found & linked to, he picked a quote to excerpt, and found a relevant picture and resized & embedded it into the post
19:35:37 <lament> pianos are so nice, they have black keys and white keys
19:35:39 <ehird> still way too much work
19:35:51 <lament> while on a fretboard all notes look the same :(
19:36:15 <oerjan> ebony and iiiivory...
19:36:55 <lament> i seriously conteplate labeling a fretboard.
19:41:04 -!- MigoMipo has joined.
19:41:07 -!- olsner has quit (Read error: 110 (Connection timed out)).
19:46:44 -!- CakeProphet has quit (Read error: 110 (Connection timed out)).
19:48:47 -!- CakeProphet has joined.
20:02:00 <ehird> http://www.riffraff.info/2009/1/12/writing-a-shakespeare-interpreter-with-parrot
20:11:17 <oerjan> ^style
20:11:17 <fungot> Available: agora alice darwin discworld europarl ff7 fisher ic irc* lovecraft pa speeches ss wp
20:11:34 <oerjan> ^style ss
20:11:34 <fungot> Selected style: ss (Shakespeare's writings)
20:11:56 <oerjan> fungot: don't you think these parrots are getting uppity?
20:11:57 <fungot> oerjan: lucil. seruilius? you are they that hear their detractions, and can digest as much: make no compare between that love a woman can bear me and that i am
20:15:12 -!- kar8nga has joined.
20:21:26 -!- KingOfKarlsruhe has joined.
20:21:30 <FireFly> ^style irc*
20:21:30 <fungot> Not found.
20:21:35 <FireFly> ^style ff7
20:21:35 <fungot> Selected style: ff7 (Full script of the game Final Fantasy VII)
20:21:48 <ehird> * means selected
20:21:50 <ehird> fungot: poop.
20:21:51 <fungot> ehird: aooooooh!! get in the attack on weapon. we can't use it in time! don't let your guard down! or ain't my hospitality good enough for you to the ancients, only aerith can save our lives.
20:21:55 <ehird> fungot: poop out some text.
20:21:55 <fungot> ehird: we've finally found you.
20:22:12 <oerjan> oh dear oh dear
20:25:01 -!- Corun has joined.
20:30:47 <oklopol> two yesses and i'll watch an ep, otherwise not.
20:30:49 <oklopol> ^bool
20:30:49 <fungot> Yes.
20:30:50 <oklopol> ^bool
20:30:50 <fungot> Yes.
20:30:55 * oklopol watches
20:37:58 <oerjan> fungot: you enabler you
20:37:58 <fungot> oerjan: got it going to let them get any customers so. your orders? where are you talking about this? simply destroy a group like that you a copy once i push this button, they'll hear you.
20:41:55 -!- KingOfKarlsruhe has quit (Remote closed the connection).
20:46:53 -!- KingOfKarlsruhe has joined.
21:08:58 -!- Hiato has quit (Read error: 110 (Connection timed out)).
21:21:29 -!- Sgeo has joined.
21:23:37 -!- Corun has quit ("Leaving").
21:23:44 <MizardX> Is the answer to this question "No."?
21:23:44 <MizardX> ^bool
21:23:45 <fungot> No.
21:23:57 <oerjan> Great Success!
21:24:47 <ehird> Is the answer to this question maybe?
21:24:48 <ehird> ^bool
21:24:48 <fungot> Yes.
21:25:10 <oerjan> erm...
21:25:15 <FireFly> According to fungot, the answer to MizardXs question isn't "No."
21:25:16 <fungot> FireFly: i thought you were alive somewhere... before. goin' on!? da-chao statue and leviathan are ashamed!! you all right
21:25:25 <FireFly> 'kay.
21:25:39 <ehird> Is the answer to this question yes?
21:25:41 <ehird> ^bool
21:25:42 <fungot> Yes.
21:30:44 <oerjan> What is the answer to this question?
21:30:51 <oerjan> ^ul (A cheat.)S
21:30:51 <fungot> A cheat.
21:37:07 -!- MigoMipo has quit.
21:37:34 <Sgeo> How did Vundo manage to protect itself even in Safe Mode?
21:39:57 -!- BeholdMyGlory has joined.
21:40:28 <ehird> idea:
21:40:39 <ehird> a virtual machine running unpatched windows xp, with a mail account
21:40:46 <ehird> a daemon runs on the machine containing it
21:40:54 <ehird> whenever it gets an email with an attachment, it puts the attachment into the vm
21:40:57 <ehird> and executes it
21:41:03 <ehird> any next buttons are automatically clicked or sth
21:41:11 <ehird> and, regularly, screenshots are automatically taken
21:41:14 <ehird> and posted to a website
21:41:16 <ehird> -> chaos
21:43:25 <MizardX> ehird: http://xkcd.com/350/
21:44:19 <ehird> ha
21:58:37 <Sgeo> I'm pretty sure a file I have on my computer is part of Vundo, even though almost nothing detects it
21:58:43 <Sgeo> Is there any place I can submit it?
21:59:06 <ehird> yes. email a security company.
21:59:52 <Sgeo> Like who?
21:59:56 <ehird> try google
22:01:02 <Sgeo> Found a place
22:01:20 <ehird> where
22:01:55 -!- comexk has changed nick to comex.
22:02:32 <oerjan> "Because Vundo has random file names, it is not possible for VundoFix to have a 100% detection rate. Often, the infected files must be removed using VundoFix's "Add more files" option (they cannot be removed manually in any way)."
22:02:38 <oerjan> maybe that is relevant?
22:03:10 <Sgeo> VundoFix has an "Add more files" option?
22:03:24 * Sgeo goes to use
22:03:27 <oerjan> (from wikipedia:VundoFix)
22:03:38 <Sgeo> Although, if I knew of that earlier, I would not have found this second file
22:04:17 <ehird> sgeo, how did you get infected?
22:04:26 <Sgeo> Don't know
22:04:27 <ehird> stoopid :|
22:04:38 <ehird> so why are you using windows again
22:04:48 <Sgeo> Various windows-only games
22:05:18 <ehird> wut is wine/vmware
22:05:28 <oklopol> oooooooooooooooooooooo
22:05:35 <Sgeo> VMware doesn't work with 3d
22:06:13 <Sgeo> and WINE doesn't work with one of the programs I want
22:06:38 <ehird> so use wine with all but the one which it doesn't work with, use vmware for that one
22:06:41 <oklopol> better not have fun than to use windows.
22:06:56 -!- olsner_ has changed nick to olsner.
22:06:57 <Sgeo> The one it doesn't work with is a 3d program
22:07:11 <oklopol> just stop playing and quit wineing.
22:07:25 <ehird> Sgeo: so boot into windows for that one
22:07:47 <Sgeo> Or have a separate Windows laptop maybe.. OH WAIT
22:20:24 -!- Corun has joined.
22:24:27 -!- Corun has quit (Client Quit).
22:25:18 <ehird> funge 98 in haskell project
22:25:19 <ehird> i
22:25:20 <ehird> s
22:25:22 <ehird> GO
22:25:54 -!- pikhq has quit ("leaving").
22:26:00 <ehird> i wonder what i should implement first
22:26:12 <oerjan> >
22:26:18 <ehird> wut?
22:26:35 <oerjan> or maybe v ?
22:26:38 -!- kar8nga has quit (Read error: 110 (Connection timed out)).
22:26:43 <ehird> oerjan: nowhere near that stage first
22:26:50 <ehird> that has to come after a complete fungespace impl...
22:27:47 -!- flexo has quit (Remote closed the connection).
22:27:53 -!- flexo has joined.
22:28:57 <ehird> hm
22:32:48 <ehird> so. who's alive of {fizzie,Deewiant,AnMaster,Asztal}?
22:32:52 <ehird> {,Azstal}
22:33:18 <oerjan> hm?
22:33:30 <ehird> trying to get the funge implementors :^)
22:33:51 <oerjan> oh that sz/zs thing
22:34:31 <ehird> :-P
22:36:42 <oklopol> MEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
22:37:17 <oerjan> i detect a distinct lack of membership in the presented set
22:37:25 <oklopol> :|
22:37:31 <oklopol> :<
22:37:34 <oklopol> :(
22:37:36 <ehird> have you implemented funge-98 oklopol
22:37:48 <oklopol> nope, nuvvah
22:37:53 -!- KingOfKarlsruhe has quit (Remote closed the connection).
22:38:05 <oklopol> 93 a few times, does that count as one 98? :P
22:38:41 <ehird> no :P
22:38:51 <oklopol> oh :(
22:39:45 <oerjan> i guess the first problem is to choose the datastructure for an infinite, reasonably efficient mutable array, 93 experience won't help there
22:40:06 <ehird> oerjan: also, N-dimensional
22:40:27 <oerjan> yeah
22:40:47 <ehird> also, lahey space
22:40:54 <oerjan> oh right
22:41:04 <oerjan> so need to detect line ends
22:41:22 <oerjan> scratch my Data.Map suggestion for simplicity then
22:41:34 <ehird> Data.Map wouldn't be nearly fast enough anyway.
22:41:40 <ehird> Note, oerjan, that it does need to be sparse.
22:41:52 <oerjan> Data.Map is sparse
22:41:55 <ehird> yes
22:41:57 <oklopol> oerjan: {}
22:42:05 <ehird> I need an infinite efficient mutable sparse array in N dimensions, that I can use as a lahey space
22:42:10 <oerjan> oklopol: hm?
22:42:13 <ehird> I'm going to tell #haskell that
22:42:14 <ehird> :DD
22:42:16 <oklopol> oerjan: py
22:42:24 <ehird> hmm
22:42:27 <ehird> oerjan:
22:42:28 <ehird> The requirements for a line in Lahey-space are the following: Starting from the origin, no matter what direction you head, you eventually reach the origin. If you go the other way you reach the origin from the other direction.
22:42:37 <ehird> doesn't that break down for infinite arrays?
22:42:57 <oerjan> er
22:43:21 <oerjan> as i said, you need to detect the end
22:43:49 <oklopol> well just store max coords in all directions.
22:43:52 <oerjan> (of inhabited space)
22:44:34 <ehird> oerjan: then... that's not fungespace
22:44:39 <ehird> fungespace is finite, isn't it?
22:44:40 <ehird> AnMaster?
22:44:41 <ehird> Deewiant?
22:44:49 <lament> http://www.gopromusic.com/get.php?id=1235
22:44:52 <oerjan> what are you talkin about?
22:45:13 <oerjan> lahey-space was invented for funges afaik
22:45:23 <oerjan> and they are infinite
22:46:31 <ehird> meh, okay
22:46:37 <ehird> but
22:46:37 <ehird> oerjan:
22:46:40 <ehird> Starting from the origin, no matter what direction you head, you eventually reach the origin.
22:46:43 <ehird> that implies finiteness
22:47:04 <oerjan> only in an abstract sense
22:47:11 <oerjan> what really goes on iirc:
22:47:45 <oerjan> when you reach the end of the inhabited part of a line, you turn around and go to the other end, then turn again
22:47:50 <ehird> ah
22:47:54 <ehird> so you jsut keep track of current bounds
22:47:57 <oklopol> oerjan: i just mean that's a way to know when there's only uninhabited shit left.
22:47:58 <ehird> and expand when you put stuff further?
22:48:01 <oerjan> yep
22:48:03 <oklopol> max coords of el habitation.
22:48:51 <ehird> oerjan: but e.g. "g" still works on uninhabited space
22:48:51 <ehird> like
22:48:56 <ehird> if we just have 0,0 inhabited
22:49:00 <oerjan> also, the "going to the other end" is of course without executing anything
22:49:01 <ehird> does 1,1 == 0,0
22:49:02 <ehird> when you g it?
22:49:05 <ehird> i.e., does g wrap
22:49:07 <ehird> or only the ip
22:49:21 <oerjan> only the ip
22:49:41 <oerjan> heck otherwise there would be no easy way to expand the space...
22:49:52 <ehird> no
22:49:53 <ehird> that'd be using p
22:49:56 <ehird> im talking about g
22:50:04 <oerjan> well yeah
22:50:18 <ehird> http://search.cpan.org/~jquelin/Language-Befunge-4.07/ latest release november, i wonder if it works under mycology
22:50:19 <oerjan> but they are opposites so it would be insane
22:50:24 <ehird> tru
22:50:40 <oerjan> i don't _think_ funge-98 is insane in that particular way
22:51:38 <oklopol> it's not exactly obvious how it's wrap if it wrapped.
22:51:45 <oklopol> *it'd
22:52:26 <oerjan> lucky i have fuzzy parsing on :D
22:53:56 <oerjan> keeping only global bounds could be inefficient though
22:54:16 <ehird> what do you do then
22:54:29 <oerjan> keeping bounds for each line
22:54:49 <ehird> ah
22:54:50 <ehird> so
22:54:57 <ehird> >
22:54:57 <ehird> aaaaaaaaa
22:55:02 <ehird> the first > meets itself instantly?
22:55:08 <oerjan> right
22:55:09 <oklopol> ofc
22:55:17 <ehird> befunge-98 is fucking crazy
22:55:30 <oerjan> the wrapping is instantaneous
22:55:37 <ehird> holy fack.
22:55:38 <oklopol> the other option is to loop infinitely anyway
22:55:45 <ehird> lol
22:55:50 <oerjan> which is important for synchronized threading iirc
22:56:14 <oklopol> well not that important, you don't actually need to wrap, ever.
22:56:27 <oklopol> what is more important is that whitespace is instaneous
22:56:53 <oerjan> i vaguely recall someone mentioning it was ambiguous if it wrapped in a string
22:57:58 <oklopol> huh?
22:58:11 <oklopol> like if you have string mode and start moving into the infinite?
22:58:16 <oerjan> yes
22:58:24 <oklopol> err
22:58:32 <oklopol> in string mode, was whitespace space or not?
22:58:51 <oerjan> well obviously it's space if it's inside
22:59:03 <oklopol> if it's space, then moving out of bounds should, imo, simply start making an infinite string and exhaust all memory.
22:59:16 <Asztal> the whitespace is collapsed XML-style in a string :)
22:59:27 <oerjan> O_O
22:59:33 <ehird> yep
22:59:34 <oklopol> the idea is just whitespace is a special optimized nop
22:59:36 <ehird> 'tis
22:59:37 <oerjan> ok that part _may_ be insane :D
22:59:38 <ehird> hi Asztal
22:59:44 <Asztal> hello
22:59:47 <oklopol> it's not in string mode
22:59:55 <ehird> Asztal: i assume you're willing to answer my endless qs :D
23:00:15 <Asztal> I can try :)
23:01:08 <ehird> i wonder if I should ask Haskell "So. I need an infinite efficient mutable sparse array in N dimensions (settable at runtime), that I can use as a lahey space" again
23:09:17 <oerjan> again?
23:10:34 <ehird> yes
23:11:19 -!- Corun has joined.
23:18:37 <ehird> 23:18 <rwbarton> from that page: "Lahey-Space is a mathematical model of the space used in Funge-98" <-- that is a lie
23:18:38 <ehird> 23:18 <ehird> rwbarton: is it now
23:19:01 <ehird> 23:18 <rwbarton> Yes
23:19:02 <ehird> 23:18 <rwbarton> There is no math in the subsequent section
23:19:03 <ehird> fail
23:21:27 -!- Corun has changed nick to SomeGuy.
23:21:45 -!- SomeGuy has changed nick to KEITH-EMULATOR.
23:22:04 -!- olsner has quit ("Leaving").
23:22:06 -!- KEITH-EMULATOR has changed nick to Corun.
23:22:32 <oerjan> Corun: so there's a shortage of real keiths now?
23:22:35 <Corun> <_<
23:22:36 <ehird> Syntax
23:22:36 <ehird> The syntax for identifiers draws from the best parts of the esteemed languages BASIC and Perl. Like Perl, all identifiers must be preceded by a $ symbol, and like BASIC, identifiers must be followed by a symbol indicating their type. Except we don't care about their type really, so we say they must be followed by $. (Studies also show that this syntax can help serious TeX addicts from "bugging out".)
23:22:41 <ehird> -- http://catseye.tc/projects/quylthulg/doc/quylthulg.html
23:24:17 <oklopol> ehird: sure it was fail and not a joke?
23:24:22 <ehird> oklopol: nope
23:24:26 <ehird> it was fail
23:24:27 <ehird> >_<
23:24:37 <oklopol> i mean it was a pretty classic joke.
23:24:58 <oklopol> was a pretty lucky fail
23:25:45 <Asztal> I'm glad I didn't bother with the N dimensions thing
23:25:50 <ehird> As an example,
23:25:50 <ehird> -foreach $x$ = [2, 3, 4] with $a$ = 1 be *$a$*$x$* else be null-1-
23:25:51 <ehird> will evaluate to 23. On the other hand,
23:25:53 <ehird> foreach $x$ = null with $a$ = 1 be $a$ else be 23
23:25:55 <ehird> will also evaluate to 23.
23:26:24 <oerjan> i think there's still some serious tex bugging there
23:27:03 <ehird> Now you see why we don't need arguments to these macros: you can simply use macros as arguments. For example,
23:27:03 <ehird> {*[SQR][*{X}*{X}*]}{*[X][5]}{SQR}
23:27:35 <ehird> The first school (Chilton County High School in Clanton, Alabama) says that most comments that programmers write are next to useless anyway (which is absolutely true) so there's no point in writing them at all.
23:27:36 <ehird> The second school (Gonzaga College S.J. in Dublin, Ireland — not to be confused with Gonzaga University in Spokane, Washington) considers comments to be valuable as comments, but not as source code. They advocates their use in Quylthulg by the definition of macros that are unlikely to be expanded for obscure syntactical reasons. For example, {*[}][This is my comment!]}. Note that that macro can be expanded in Quylthulg using {}}; it's just that the Gon
23:27:41 <ehird> zaga school hopes that you won't do that, and hopes you get a syntax error if you try.
23:27:43 <ehird> The third school (a school of fish) believes that comments are valuable, not just as comments, but also as integral (or at least distracting) part of the computation, and champions their use in Quylthulg as string literals involved in expressions that are ultimately discarded. For example, <"Addition is fun!"<+1+2+<.
23:31:05 -!- BeholdMyGlory has left (?).
23:38:50 -!- FireFly has quit ("Later").
23:39:22 <Sgeo> Is Quylthulg turing complete?
23:39:35 <ehird> yes.
23:40:02 <oerjan> beyond all doubt, apparently
23:40:03 <lament> with addition of the turing-completeness instruction?
23:40:54 * oerjan sprays Sgeo and lament with Doubt-B-Gone
23:42:19 <lament> PHHSHHHHHHHHHHHHHHTt.
23:42:51 <ehird> a language with no iteration would be fun
23:42:54 <ehird> the code is a list
23:43:04 <ehird> so loops are making lists that cycle a few times
23:45:26 <oerjan> a cyclopean language
23:46:08 <lament> it cycles, just like the bass guitar fretboard
23:57:13 <Sgeo> AAAAAAHHHHHHHRRRRRRRGGGGGGGHHHHHHHH!
23:57:34 <ehird> what
23:57:38 <ehird> why did you say that in both channel
23:57:39 <ehird> s
←2009-01-12 2009-01-13 2009-01-14→ ↑2009 ↑all