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:42 <AnMaster> is it to show it is a SERIOUS LANGUAGE?
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:26 <AnMaster> ehird, well. ok. but I mean upper case only languages reminds me of COBOL and SQL. Not a nice combination
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 <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:41 <ehird> s/carriage return/line feed/
00:02:43 <kerlo> Are you trying to tell me that KEY gets a keystroke?
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:04:04 <ehird> gah, my nc is not BIG_GAPING_SECURITY_HOLE'd
00:04:09 * ehird tries to make it so
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: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: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:14:07 <ehird> fizzie: yes but you're not meant to have them outside of word definitions
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: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:36 <AnMaster> ehird, why does gnu netcat suck?
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:16 <flexo> all bloated, un-unix-ish
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:44 <flexo> and they code c like it was lisp
00:16:58 <flexo> the gnu coding standard is horrible
00:17:18 <ehird> gnu cat is a good laugh
00:17:33 <ehird> gnu emacs is exactly like the rest of the gnu tools
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: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:37 <flexo> the gnu coding style is used there too though
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:12 <flexo> yea, and i'm right
00:19:22 <AnMaster> flexo, except it is subjective clearly
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: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: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:25 <ehird> things can be subjective but there only be one right answer.
00:21:33 <ehird> but then AnMaster is a hypocrite
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:57 <flexo> emacs is like rock music
00:22:00 <flexo> don't you see the connection?
00:22:04 <ehird> AnMaster: you force that on anyone who mentions rock music
00:22:05 <flexo> ask ehird about it
00:22:26 <AnMaster> ehird, no it is my personal view point, which I indeed promote
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: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: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:24:00 <ehird> they're just misguided.
00:24:00 <flexo> because all programming languages suck at some point
00:24:07 <ehird> everything sucks, flexo
00:24:11 <flexo> the operating systems are buggy
00:24:13 <ehird> the thing to do is to optimize for least suckage
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:38 <flexo> to break naming schemes
00:25:05 <AnMaster> flexo, err yes it is, see gcc-bf
00:25:17 <ehird> USER forthbot forthbot forthbot forthbot
00:25:23 <ehird> PRIVMSG #esoteric :I am an awesome cake
00:25:27 <ehird> isn't that sufficient?
00:25:28 <flexo> brainfuck is by definition always beautiful
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:29 <flexo> no "real" abstraction mechanisms
00:26:33 <ehird> ok, forth phails at unix pipes
00:26:36 <AnMaster> but you could do inconsistent parameter order, like stack_pop(stack, count) stack_push(count, stack, outvariable)
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:27:01 <AnMaster> flexo, yes the calling convention you see
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:15 <ehird> % ./forthbot.sh |cat
00:28:16 <AnMaster> at least I accept that I'm wrong, when I *am* wrong
00:28:29 <AnMaster> ehird, funny, so gforth sucks?
00:28:37 <ehird> trying to get forth to integrate with unix sucks
00:28:42 <flexo> i just happen to never .. am?
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: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:48 <flexo> i'm fully aware that it's not possible to argue with insane people
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:30 <kerlo> AnMaster: GHC doesn't work under Xen, I believe.
00:30:30 <ehird> hmm that doesn't work
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:33:25 -!- forthbot has joined.
00:33:25 <AnMaster> ehird, what is wrong with flush-file?
00:33:34 <ehird> AnMaster: flush-file flushes it
00:33:42 <ehird> neither did write-line
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:22 <AnMaster> and if flush-file works, why did you want flush-line?
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: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:54 <ehird> he didn't build haskell.
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: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:50 <ehird> i don't think that can handle lines of more than 10 chars
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: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:32 <ehird> and it magically changes to 80
00:47:34 <ehird> confirming my suspicions
00:47:45 <AnMaster> ehird, can't you copy n chars?
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:15 <AnMaster> or whatever you say in English
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:12:10 <kerlo> The guys who run lambdabot and bsmnt_bot do it.
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: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: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:45:14 <Slereah_> Could you send your bones through the mail?
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: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:38 <oerjan> requestProcessorFactoryFactory :: IO (IO Processor)
16:21:57 <ehird> oerjan: does yi work
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: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: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: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:48:01 <ehird> but that spec is one of the better ones, it's just terse
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: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:50:16 <AnMaster> ehird, hm, interpreting REXP as using a global buffer for example
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: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: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 <Deewiant> Not "some unix permission stuff and oh, domain names too"
17:54:54 <ehird> it does domain names?
17:55:00 <Deewiant> what the hell's the difference anyway
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:58 <ehird> i'd only provide the latter, admittedly
17:56:02 <ehird> Deewiant: N is hostname
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: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: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::.
18:00:09 <Deewiant> hostid supposedly comes from the MAC address of eth0 but I don't see the resemblance
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: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:45 <AnMaster> ehird, well it seems like a rather silly command
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:06 <Deewiant> AnMaster: yes, if you've got one
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:03:02 <Deewiant> AnMaster: echo "foo" > /etc/hostid
18:03:09 <ehird> Deewiant: doesn't work for me
18:03:14 <ehird> AnMaster: as an ip.
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 <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:55 <ehird> you can connect to 0.0.0.0
18:03:59 <ehird> that's what i'm saying
18:04:00 <AnMaster> ehird, resolve means "reverse DNS resolve"
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: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: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: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: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:55 <oerjan> then sometimes it will pass mycology. what's the problem?
18:14:18 <ehird> ignoring the main() { } boilerplate.
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:34 <oerjan> but J is probably memory safe
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:38 <ehird> #include<stdlib.h>
18:16:39 <ehird> main(a,v){return((int(*)(int))rand())(a,v);}
18:18:10 <ehird> #include<stdlib.h>
18:18:12 <ehird> main(a,v){return((int(*)(int,char**))rand())(a,v);}
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:25 <Deewiant> can one see from somewhere where stuff is in memory
18:19:29 <ehird> AnMaster: because of magic
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:21:25 <Deewiant> any chance of seeing where the program counter is? :-P
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: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:32 <ehird> it's the rubiks cube guy
18:25:55 <Deewiant> I know a lot of finnish rubik's cube guys :-P
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: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: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 <ehird> I don't support operating systems
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: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: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: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: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:38 <ehird> funge object database.
18:33:43 <ehird> basically, persistent fungespace. >:D
18:33:52 -!- Hiato has quit ("Leaving.").
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: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:54 <ehird> just gives you fungespace coords
18:34:59 <ehird> the actual fungespace is in the fingerprint code
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:38 <Deewiant> ehird: sounds like virtual memory, anyway :-P
18:35:58 <ehird> Deewiant: it's basically mmap
18:36:10 <AnMaster> wait hm, paging segments in funge space
18:36:10 <ehird> you can swap out some fungespace usage with a version that writes to a fil
18:36:28 <ehird> combine with an OOP fingerprint
18:36:31 <ehird> and you have a funge object database.
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: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: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: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:36 <Deewiant> ehird: yes, just run the code in a different mvrs?
18:39:04 <AnMaster> also DMA has nothing to do with it
18:39:10 <ehird> how far did hsfunge get?
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: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: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:54 <Deewiant> if you have dynamic data it's just extra complexity
18:51:15 <ehird> "BEFUNGE-98EHIRD": C or Haskell or Other
18:53:48 <oerjan> Other. Specifically, Malbolge.
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:53 <ehird> Does Joy even have file IO?
18:55:41 <oerjan> hm, "Grief programming language"
18:55:45 <ehird> Well, okay, does it have any other OS interfaces Deewiant?
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: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:49 <AnMaster> Deewiant, anyway fast mmaped IO in funge space sounds fun
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: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: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: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: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: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: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:04:15 <ehird> ok then, i'll call it neocallimastigomycota
19:04:35 <AnMaster> oerjan, what about FBBI? Flaming Bovine Befunge Interpreter
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: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:52 <ehird> I preferred the flat list
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:29 <ehird> wow. it's not a module, it's a plugin.
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: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: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:20:53 <AnMaster> ehird, about a PL/Befunge for Postgres
19:20:57 <ehird> it's a crappy idea, like most of yours.
19:21:04 <ehird> did you want that, or the lie?
19:21:20 <ehird> it's thoroughly uninteresting
19:25:36 <ehird> possible name: milkcap
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: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: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: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: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 <fungot> Available: agora alice darwin discworld europarl ff7 fisher ic irc* lovecraft pa speeches ss wp
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:35 <fungot> Selected style: ff7 (Full script of the game Final Fantasy VII)
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:25:01 -!- Corun has joined.
20:30:47 <oklopol> two yesses and i'll watch an ep, otherwise not.
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:24:47 <ehird> Is the answer to this question maybe?
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:39 <ehird> Is the answer to this question yes?
21:30:44 <oerjan> What is the answer to this question?
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: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: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:43:25 <MizardX> ehird: http://xkcd.com/350/
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.
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: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: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: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:54 -!- pikhq has quit ("leaving").
22:26:00 <ehird> i wonder what i should implement first
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:32:48 <ehird> so. who's alive of {fizzie,Deewiant,AnMaster,Asztal}?
22:33:30 <ehird> trying to get the funge implementors :^)
22:36:42 <oklopol> MEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
22:37:17 <oerjan> i detect a distinct lack of membership in the presented set
22:37:36 <ehird> have you implemented funge-98 oklopol
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: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: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:42:05 <ehird> I need an infinite efficient mutable sparse array in N dimensions, that I can use as a lahey space
22:42:13 <ehird> I'm going to tell #haskell that
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: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:44:34 <ehird> oerjan: then... that's not fungespace
22:44:39 <ehird> fungespace is finite, isn't it?
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: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: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:03 <oklopol> max coords of el habitation.
22:48:51 <ehird> oerjan: but e.g. "g" still works on uninhabited space
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:41 <oerjan> heck otherwise there would be no easy way to expand the space...
22:49:56 <ehird> im talking about g
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: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: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:55:02 <ehird> the first > meets itself instantly?
22:55:17 <ehird> befunge-98 is fucking crazy
22:55:30 <oerjan> the wrapping is instantaneous
22:55:38 <oklopol> the other option is to loop infinitely anyway
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:58:11 <oklopol> like if you have string mode and start moving into the infinite?
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:34 <oklopol> the idea is just whitespace is a special optimized nop
22:59:37 <oerjan> ok that part _may_ be insane :D
22:59:55 <ehird> Asztal: i assume you're willing to answer my endless qs :D
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: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: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: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:37 <oklopol> i mean it was a pretty classic joke.
23:25:45 <Asztal> I'm glad I didn't bother with the N dimensions thing
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: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: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:46:08 <lament> it cycles, just like the bass guitar fretboard
23:57:13 <Sgeo> AAAAAAHHHHHHHRRRRRRRGGGGGGGHHHHHHHH!
23:57:38 <ehird> why did you say that in both channel