←2007-10-20 2007-10-21 2007-10-22→ ↑2007 ↑all
00:01:12 <immibis> !irp helloworld.irp
00:01:15 <EgoBot> helloworld.irp: Unknown file or directory
00:01:24 <immibis> !ls
00:01:27 <EgoBot> bf/, glass/, linguine/
00:01:34 <immibis> !ls glass
00:01:37 <EgoBot> dice.glass, hangman.glass, urls.glass
00:01:45 <immibis> !irp glass/dice.glass
00:01:47 <EgoBot> glass/dice.glass: Unknown file or directory
00:01:48 <immibis> ?
00:02:02 <GregorR> !ls d
00:02:04 <GregorR> Erm
00:02:05 <EgoBot> /bin/ls: ./files/d: No such file or directory
00:02:06 <GregorR> !ps d
00:02:09 <EgoBot> 1 ais523: daemon ul bf
00:02:11 <EgoBot> 2 immibis: daemon cat bf
00:02:13 <EgoBot> 3 GregorR: ps
00:02:28 <GregorR> OK, it's not a daemon, so it's just a user command :P
00:02:40 <GregorR> Probably just takes its input and adds "Unknown file or directory"
00:02:45 * immibis slaps GregorR with a rainbow trout
00:02:47 <GregorR> !irp fddfashfdfdsafds
00:02:51 <EgoBot> fddfashfdfdsafds: Unknown file or directory
00:02:57 <immibis> !irp asdfjkl;
00:03:01 <EgoBot> asdfjkl;: Unknown file or directory
00:03:20 <immibis> !irp immibis: you suck. irp
00:03:23 <EgoBot> immibis: you suck. irp: Unknown file or directory
00:03:33 <immibis> !irp fatal error: helloworld.irp
00:03:37 <EgoBot> fatal error: helloworld.irp: Unknown file or directory
00:03:39 <immibis> !usertrig show
00:03:41 <EgoBot> No such user trigger:
00:03:45 <immibis> er?
00:03:56 <GregorR> !help
00:03:59 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
00:04:01 <EgoBot> 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl
00:04:03 <GregorR> !help usertrig
00:04:05 <EgoBot> Use: usertrig <command> <trig-command> Function: manage user triggers. <command> may be add, del, list or show.
00:04:16 <GregorR> !usertrig show irp
00:04:19 <EgoBot> (irp): bf ,[.,]+++++++++++[>+++++>+++>++++++++++>++++++++++<<<<-]>+++.>-.<+++++++++++++++++++++++++++.>>.>---.+++.+.<+++++++++.---------.<.<+++++++++++++++++.+++.>>--.-------.<.>>.+++.<<.>-.<<.>>>.<+.--.>++.-----.+++.+++++++.
00:05:15 <pikhq> Is it just me, or are there new EgoBot features?
00:05:23 <immibis> it's just you.
00:05:32 <pikhq> Ah.
00:05:34 <immibis> this feature has been around for a long time.
00:06:43 <GregorR> usertrigs predate daemons.
00:06:51 <GregorR> They turned out to be useless, so I added daemons :P
00:06:54 <GregorR> Then nobody used usertrigs.
00:06:59 <immibis> er, i did.
00:07:08 <GregorR> +much
00:07:19 <pikhq> Huh.
00:07:21 <ehird`> back
00:07:25 <pikhq> And you never removed usertigs.
00:07:35 <pikhq> !irp foo
00:07:39 <EgoBot> foo: Unknown file or directory
00:07:46 <pikhq> Hmm.
00:08:42 <ehird`> GregorR: egobot is a veritable hodgepodge, isn't it?
00:08:52 <GregorR> Yup
00:09:16 <ehird`> lots of unused stuff
00:09:17 <ehird`> :P
00:09:19 <ehird`> !help
00:09:23 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
00:09:25 <EgoBot> 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl
00:09:39 <ehird`> !ps
00:09:40 <GregorR> Daemons are fairly used, the filesystem is never used but I stole the concept from EsoBot so eh *shrugs*
00:09:43 <EgoBot> 3 ehird`: ps
00:09:48 <ehird`> Esobot?
00:09:50 <ehird`> !ps d
00:09:53 <EgoBot> 1 ais523: daemon ul bf
00:09:55 <EgoBot> 2 immibis: daemon cat bf
00:09:57 <EgoBot> 3 ehird`: ps
00:10:14 <ehird`> !undaemon 1 2
00:10:15 <ehird`> :D
00:10:17 * ehird` is evil
00:10:20 <immibis> !daemon cat ,[.,]
00:10:25 <immibis> !undaemon cat
00:10:29 <EgoBot> Process 2 killed.
00:10:29 <ehird`> oh
00:10:31 <ehird`> !undaemon ul
00:10:33 <EgoBot> Process 1 killed.
00:10:34 <ehird`> !undaemon cat
00:10:37 <ehird`> mwahaha
00:10:40 <ehird`> i am evil for no specified reason
00:10:51 <immibis> !daemon cat +[,[.,]+]
00:10:55 <immibis> !ping pikhq
00:10:59 <EgoBot> pikhq: No such nick/channel
00:11:07 <immibis> !ping yadayadayada
00:11:08 <ehird`> !ping ehird`
00:11:11 <EgoBot> ehird`: No such nick/channel
00:11:13 <EgoBot> yadayadayada: No such nick/channel
00:11:19 <ehird`> !ping EgoBot
00:11:21 <immibis> !usertrig show ping
00:11:23 <EgoBot> (ping): bf ,[.,]+++++++++++[>+++++>+++>++++++++++>+++++++++<<<<-]>+++.>-.<++++++++++++++++++++.>>+.<.>++++.++.>.+++++.<<.>-------.-----.<<+++++++++++++++++++++.>>++.<+++++++++++++++.<.>>>.<<<--.>>+++..> ---.<--.
00:11:25 <EgoBot> EgoBot: No such nick/channel
00:11:27 <ehird`> hah
00:11:30 <ehird`> its like the irp daemon
00:11:33 <immibis> yes
00:11:34 <ehird`> !ping #esoteric
00:11:37 <EgoBot> #esoteric: No such nick/channel
00:11:38 <immibis> but with a different message.
00:11:43 <ehird`> !help usertrig
00:11:47 <EgoBot> Use: usertrig <command> <trig-command> Function: manage user triggers. <command> may be add, del, list or show.
00:11:48 <immibis> actually, my client does that.
00:11:49 <GregorR> These commercials advertise that they have 25MPG highway and say you can feel really smart because your gas mileage is so good. My car gets 40MPG. WTF universe do I live in.
00:11:52 <immibis> [12:11] ->> #esoteric :No such nick/channel
00:12:10 <ehird`> !usertrig list
00:12:13 <EgoBot> Triggers: decode encode irp ping urls
00:12:17 <ehird`> !urls x
00:12:26 <ehird`> !usertrig show urls
00:12:27 <immibis> !encode WhatDoesThis Do? I wonder?
00:12:27 <EgoBot> (urls): glass {M[m(_u)(URLs)!(_i)I!(_i)l.?(_u)u.?]}
00:12:31 <EgoBot> 1192921948-inahdkjjaaagclaenheekjafbc
00:12:35 <immibis> !encode WhatDoesThis Do? I wonder?
00:12:39 <EgoBot> 1192921956-jonefedoneaknkiibhbopmllgd
00:12:40 <immibis> ?
00:12:42 <ehird`> !decode 1192921956-jonefedoneaknkiibhbopmllgd
00:12:45 <EgoBot> Error: bad message.
00:12:50 <GregorR> lol
00:12:52 <immibis> !decode 1192921956-jonefedoneaknkiibhbopmllgd
00:12:53 <ehird`> !decode jonefedoneaknkiibhbopmllgd
00:12:55 <EgoBot> Error: bad message.
00:12:57 <EgoBot> Error: bad message.
00:13:00 <ehird`> !decode YOUR MOM
00:13:03 <EgoBot> Error: bad message.
00:13:05 <ehird`> HA HA HA HA HA.
00:13:12 <GregorR> !usertrig show decode
00:13:15 <EgoBot> (decode): linguine file://linguine/decode.lng
00:13:16 <immibis> !usertrig show decode
00:13:17 <EgoBot> (decode): linguine file://linguine/decode.lng
00:13:23 <immibis> !cat linguine/decode.lng
00:13:25 <EgoBot> Huh?
00:13:26 <ehird`> linguine?
00:13:29 <immibis> ?
00:13:29 <ehird`> what is linguine?
00:13:31 <immibis> !help
00:13:31 <ehird`> !help
00:13:35 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
00:13:36 <immibis> obviously a language.
00:13:37 <EgoBot> 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl
00:13:39 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
00:13:41 <EgoBot> 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl
00:13:42 <immibis> !show linguine/decode.lng
00:13:43 <ehird`> http://esolangs.org/wiki/Linguine ah
00:13:45 <EgoBot> No such process!
00:13:54 <GregorR> <EgoBot> HELP, I'm being spammed to death 8-O
00:14:12 <ehird`> GregorR: you. write a cat command
00:14:18 <ehird`> or implement it as a daemon, which would be hardcore
00:14:22 <immibis> i did.
00:14:24 <immibis> !ps d
00:14:27 <EgoBot> 1 immibis: ps
00:14:29 <immibis> cat is easy.
00:14:31 <immibis> maybe not
00:14:34 <GregorR> immibis: No, to cat a file from the filesystem.
00:14:36 <ehird`> does it cat FILES, though?
00:14:39 <immibis> !daemon cat +[,[.,]+]
00:14:42 <immibis> no
00:14:48 <ehird`> that's what i want
00:14:49 <immibis> !cat hello.
00:14:51 <GregorR> immibis: You need to tell it what language it is X_X
00:14:52 <ehird`> so we can cat stuff on the file system
00:14:53 <EgoBot> Huh?
00:14:57 <immibis> oh
00:15:01 <immibis> i always make that mistake :P
00:15:12 <immibis> !daemon cat bf +[,[.,]+]
00:15:16 <GregorR> !cat file://linguine/decode.lng
00:15:19 <EgoBot> file://linguine/decode.lng
00:15:27 <ehird`> GregorR: suggestion
00:15:28 <GregorR> Thought that might work :P
00:15:30 <ehird`> add a < command
00:15:32 <ehird`> and a > command
00:15:34 <ehird`> well, not command. syntax
00:15:38 <ehird`> which will do as in shells
00:15:46 <ehird`> !cat <file://linguine/decode.lng for a file
00:15:52 <ehird`> !cat <http://blah.com/blah for a web page
00:15:59 <ehird`> this also means that interpreters which can also take files and urls
00:16:02 <ehird`> can be much simplified
00:16:05 <ehird`> as it's all done through < and >
00:16:06 -!- EgoBot has quit (Read error: 104 (Connection reset by peer)).
00:16:12 <ehird`> maybe even a | pipe if you want, but that's hardcore ;)
00:16:13 -!- EgoBot has joined.
00:16:15 <immibis> what to do with file://linguine/../../../../../../../../../../../../../etc/passwd
00:16:21 <ehird`> immibis: it's sandboxed
00:16:22 <ehird`> duh
00:16:58 * immibis wonders why gregorr made egobot quit
00:17:08 <GregorR> WHY YOU KILL EGOBOT
00:17:08 <ehird`> it didn't
00:17:09 <ehird`> it crashed
00:17:27 <bsmntbombdood> foooooooof
00:17:32 * GregorR goes to work on Plof3 for a bit :P
00:17:38 -!- pikhq has quit ("leaving").
00:17:42 <ehird`> glargh
00:17:50 <ehird`> GregorR: i will give you $39742397234 if you implement <
00:17:54 <ehird`> $239847239872398234 extra if you do >
00:17:59 <ehird`> and $293847293482698723648724628934623986986987236498234623874 for |
00:18:02 <ehird`> :D
00:18:21 * immibis implements < > and | for free because ehird` only offered that to gregorr
00:19:00 <ehird`> can you change egobot? :P
00:19:05 <immibis> no
00:19:24 <immibis> i could download the source and change it and send it to gregorr.
00:19:29 <ehird`> heh
00:24:39 <bsmntbombdood> what's < > | ?
00:24:46 <ehird`> piping!
00:24:51 <bsmntbombdood> oh
00:24:54 <ehird`> !cmd <(file or url)
00:24:57 <EgoBot> Huh?
00:25:02 <ehird`> !language no longer has to do it itself
00:25:05 <EgoBot> Huh?
00:25:06 <ehird`> and custom programs can have it too!
00:26:15 <immibis> !cat < file://bf/../../../../../../../../../../../../../../../../../../../../../../etc/password
00:26:17 <EgoBot> Huh?
00:26:25 <ehird`> immibis: i already told you how stupid that is
00:26:28 <ehird`> egobot is sandboxed
00:26:36 <ehird`> the filesystem is completely seperate from the normal fs
00:26:41 <immibis> as in chroot'd?
00:26:49 <ehird`> iirc it's not even a real fs
00:26:57 <ehird`> it's a wrapper around some files on an fs
00:27:06 <ehird`> but, the EgoBot running is chrooted afaik
00:27:29 * SimonRC goes to bed
00:31:28 * bsmntbombdood bumps SimonRC's keys
00:33:57 -!- pikhq has joined.
00:36:13 <immibis> !ping pikhq
00:36:15 <EgoBot> Huh?
00:36:32 <bsmntbombdood> !stfu immibis
00:36:35 <EgoBot> Huh?
00:38:26 <immibis> !ping bsmntbombdude
00:38:29 <EgoBot> bsmntbombdude: No such nick/channel
00:38:36 <immibis> !ping bsmntbombdood
00:39:03 <EgoBot> bsmntbombdood: No such nick/channel
00:39:10 <bsmntbombdood> stfu
00:40:06 <ehird`> haha i just realised
00:40:09 <ehird`> that actually DOES ping
00:40:10 <ehird`> XD
00:41:13 <immibis> no it doesn't!
00:41:18 <immibis> !usertrig ping show
00:41:18 <ehird`> yes
00:41:19 <EgoBot> Huh?
00:41:20 <ehird`> it does
00:41:24 <ehird`> nick: BLAH
00:41:27 <immibis> !usertrig show ping
00:41:28 <ehird`> and clients highlight on nick
00:41:29 <EgoBot> (ping): bf ,[.,]+++++++++++[>+++++>+++>++++++++++>+++++++++<<<<-]>+++.>-.<++++++++++++++++++++.>>+.<.>++++.++.>.+++++.<<.>-------.-----.<<+++++++++++++++++++++.>>++.<+++++++++++++++.<.>>>.<<<--.>>+++..>---.<--.
00:41:30 <ehird`> so it does ping them
00:41:32 <ehird`> if unintentionally
00:41:34 <immibis> no.
00:41:41 <ehird`> umm yes
00:41:47 <immibis> it just says nick: No such nick/channel.
00:41:53 <ehird`> yeah
00:41:56 <ehird`> and clients will highlight it
00:41:58 <ehird`> because nick is in it
00:42:00 <immibis> some clients.
00:42:03 <immibis> mine doesn't.
00:42:39 <ehird`> your client sucks
00:42:39 <ehird`> :/
00:43:39 -!- ehird` has quit ("Leaving.").
00:51:06 <GregorR> He was so offended by your client's lack of highlighting, he left in a huff.
00:51:32 <immibis> actually it because i kept annoying him.
00:57:16 <bsmntbombdood> !immibis stfu
00:57:19 <EgoBot> Huh?
00:57:36 <bsmntbombdood> Holy Underwear, Human!
00:58:31 <immibis> bsmntbombdood, please type the following: !daemon bsmntbombdood bf +[,[.,]+]
00:58:38 <immibis> in a query
00:58:40 <immibis> with egobot
00:58:56 <bsmntbombdood> !daemon immibis bf +[,[.,]+]
00:59:11 <immibis> !immibis stfu
00:59:13 <EgoBot> stfu
00:59:44 <immibis> it has to be in a query between me and egobot, or it shows up wherever it was created
01:00:04 <immibis> ok, NOW !immibis sends a message to me.
01:00:26 <pikhq> !immibis Sure 'bout that?
01:00:41 <immibis> yeo
01:00:43 <immibis> yep
01:00:49 <immibis> [13:00] <EgoBot> Sure 'bout that?
01:06:01 <immibis> !bsmntbombdood hello
01:06:03 <EgoBot> Huh?
01:06:07 <immibis> !help
01:06:11 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
01:06:13 <EgoBot> 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl
01:25:37 -!- jix has quit ("This computer has gone to sleep").
01:39:08 <immibis> IRP SHOW THE IRP MANUAL
02:20:16 <RodgerTheGreat> 'sup, everyone?
02:20:26 <RodgerTheGreat> immibis: go to hell
02:20:40 <RodgerTheGreat> the manual is long
02:20:57 <bsmntbombdood> the manual includes the entire english language
02:20:59 <bsmntbombdood> hmm
02:21:06 <bsmntbombdood> how long would a manual for english be?
02:22:05 <RodgerTheGreat> if there are 50,000 words, (roughly), and we assume the manual is in BNF or something, about 50 pages for grammar and the rest would fall into vocab
02:22:09 <immibis> do you mean IRP go to hell?
02:22:19 <immibis> !daemon cat +[,[.,]+]
02:22:32 <bsmntbombdood> english isn't context free so it can't be BNF
02:22:33 <RodgerTheGreat> about the size of an unabridged dictionary with some additional pages
02:22:36 <RodgerTheGreat> hm
02:22:40 <RodgerTheGreat> dang- that's true
02:23:30 <immibis> i meant the manual for the command IRP, as in how to invoke it.
02:24:25 <immibis> IRP SAY IRP SAY IRP SAY IRP SAY IRP SAY IRP GO TO HELL
02:28:36 <GregorR> Except that proper IRP is English.
02:34:45 <RodgerTheGreat> GregorR: a large subset of English.
02:35:12 <GregorR> A large and unpredictable subset of English :P
02:37:17 <RodgerTheGreat> fair enough
02:38:13 <pikhq> An undefined subset of English.
02:38:41 <GregorR> Nah, it's defined, just based on factors you can't know.
02:39:10 <pikhq> You know, I wonder if a context-free subset of English could be made.
02:39:38 <RodgerTheGreat> pikhq: oh, certainly. It really depends on how much you want to be able to express.
02:39:49 <pikhq> Oooh.
02:39:58 <GregorR> It'd probably just be sort of clumsy to talk in.
02:40:05 <RodgerTheGreat> for the purposes of conventional programming, you could make one fairly easily.
02:40:22 <pikhq> I want a (potentially useless) English in YACC. ;)
02:40:40 <pikhq> "Add x to y" is probably easy to do context-free.
02:41:28 <RodgerTheGreat> my guess is that you'd end up with something that looked an awful lot like COBOL.
02:41:39 <pikhq> XD
02:42:39 <GregorR> Or ORK.
02:43:12 <RodgerTheGreat> probably an ungodly mix of the two.
02:43:28 <RodgerTheGreat> especially if it's invented in this channel. :S
02:54:13 <pikhq> :)
02:54:27 <pikhq> ORKBOL, here we come!
02:54:41 <pikhq> Or maybe just CORK?
02:56:02 <immibis> IRP SAY IRP SAY IRP SAY IRP SAY IRP SAY IRP GO TO HELL
03:01:44 <RodgerTheGreat> That expression- you keep saying it. I don't think it means what you think it means.
03:01:49 -!- Tritonio has joined.
03:02:18 <immibis> firefox just told me "Oops: Firefox cannot load this page for some reason"
03:02:39 <RodgerTheGreat> sweet
03:02:41 <GregorR> Those exact words?
03:02:45 <RodgerTheGreat> sounds like firefox
03:02:50 <immibis> it either means to say "IRP SAY IRP SAY IRP SAY IRP SAY IRP GO TO HELL" or to say "IRP IRP IRP IRP IRP" and go to hell.
03:03:01 <immibis> actually, i typed in about:neterror into the title bar
03:03:14 <immibis> but that won't stop me sending it to www.worsethanfailure.com
03:04:35 <RodgerTheGreat> my interpreter module won't parse expressions that use more than one level of parentheses because I don't care enough
03:05:00 <RodgerTheGreat> the same goes for recursive statements or anything repetitive
03:05:15 <bsmntbombdood> when did the daily what-the-fuck become the daily worse-than-failure?
03:05:25 <immibis> no idea.
03:05:37 <immibis> it still abbreviates to WTF though.
03:06:11 <galt> bsmntbombdood, about a year agot, give or take
03:06:35 <galt> I think dailywtf.com still works though
03:06:48 -!- calamari has quit ("Leaving").
03:07:22 <immibis> and also one where AVG Antivirus told me that it was out-of-date just after it updated itself.
03:07:27 <immibis> it does.
03:08:02 <immibis> worsethanfailure.com even loads ads from syndication.thedailywtf.com
03:25:08 <immibis> IRP (goToPlace (getPlaceFromList (getPlaceList "Places not in this world") "Hell"))
03:25:36 <immibis> [15:25] [NickServ PING Reply] : 1 minute 58.906 seconds
03:25:36 <immibis> guess something must be up with my client today
03:44:52 <bsmntbombdood> http://sexualidad.wordpress.com/2006/04/17/sexo-en-grupo/ , yay studies about sex
03:49:09 -!- Tritonio_ has joined.
03:49:12 -!- Tritonio_ has quit (Client Quit).
03:51:26 <RodgerTheGreat> hot damn, DFAs are fun
04:07:27 -!- Sgeo has quit (Remote closed the connection).
04:13:35 <bsmntbombdood> dumb french assholes
04:26:10 <GregorR> Deterministic Finite Automaton
04:26:30 <GregorR> What are you doing on #esoteric if you don't know that expansion :P
04:27:03 * immibis wonders what he's doing on #esoteric as he didn't know that expansion
04:27:44 <bsmntbombdood> i do know that expansion
04:33:32 <pikhq> I didn't think of it right away.
04:33:40 <pikhq> I was getting assraped in FreeCiv, though.
04:34:56 <GregorR> That's my experience with FreeCiv too.
04:35:13 <pikhq> That's the first time I've lost. . .
04:35:17 <pikhq> In 4 years.
04:35:26 <bsmntbombdood> what's freevic?
04:35:46 <pikhq> A free software Civilization game. . .
04:36:04 <GregorR> pikhq: Yeah? Well grep 'Gregor Richards' `find ~/freeciv/src -type f`
04:36:05 <GregorR> :P
04:37:31 <pikhq> I salute you.
04:37:39 <pikhq> Also, the hard AI cheats.
04:37:47 <pikhq> I'm truly, truly convinced that it cheats.
04:39:42 <pikhq> GregorR: You may wish to know this. . .
04:39:48 <GregorR> Doubt it!
04:39:53 <pikhq> $ grep 'Gregor Richards' `find . -type f`
04:39:53 <pikhq> $
04:40:15 <GregorR> OK, I don't know if any of my code actually survives :P
04:40:32 <pikhq> Not actually contributed since 1.14.2?
04:40:51 <GregorR> 1.14.1 IIRC
04:41:14 <pikhq> Well, there's been a rewrite since then. . .
04:41:42 <GregorR> Well, that explains that :P
04:41:52 <GregorR> I haven't played it in a while, I'm frustrating awful at it :P
04:42:21 -!- galt has changed nick to [[g4lt]].
04:42:25 <pikhq> I'm usually good at it. . .
04:42:49 <pikhq> Although the hard AI has convinced me that largepox rules ought to be the default. :p
04:43:06 * pikhq is used to playing with 3 cities. . . Producing about 500 bulbs/turn. . .
04:47:38 <bsmntbombdood> i wonder if solving sudokus (or similar game) is turing complete
04:48:20 <pikhq> What exactly would the act of solving a game being turing complete *entail*?
04:48:27 <pikhq> Capable of being solved on a Turing machine?
04:48:32 <bsmntbombdood> no
04:48:39 <pikhq> The game itself *being* a Turing machine?
04:48:41 <bsmntbombdood> the solver being the turing machine
04:48:45 <bsmntbombdood> yes
04:50:36 -!- [[g4lt]] has changed nick to [[g4lt]]-somethi.
04:50:46 <bsmntbombdood> a CAPTCCHA, if you will
04:50:46 <immibis> [16:45] * pikhq is used to playing with 3 cities. . . Producing about 500 bulbs/turn. . . <--- what?
04:51:17 <pikhq> What, don't play Civ?
04:51:28 <bsmntbombdood> immibis: they are part of a perverted sex-cult
04:51:35 <immibis> ok
04:51:35 <bsmntbombdood> immibis: that's part of their disgusting lingo
04:51:50 -!- [[g4lt]]-somethi has changed nick to g4lt-sb100-away.
04:51:57 <bsmntbombdood> immibis: sexual deviants like him are dangerous to society
04:52:09 <pikhq> A bulb is the unit of scientific research in FreeCiv. . .
04:52:30 -!- g4lt-sb100-away has changed nick to [[g4lt]].
04:52:39 <immibis> ok
04:52:40 <bsmntbombdood> translation: "my sex-cult is a danger to YOUR CHILDREN!!"
04:52:47 <GregorR> It's also an unsafe sexual toy for anal fetishists *shrugs*
04:54:12 <bsmntbombdood> i've been thinking that paraphilias are just sexual orientations
04:54:36 <pikhq> XD
04:56:11 <bsmntbombdood> males who are androphilic aren't diseased...so why should males who are pedophilic be?
05:03:50 <RodgerTheGreat> this is an instance where the lines between disease, disorder and natural genetic variation become very fuzzy.
05:04:48 <bsmntbombdood> yes
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:42:01 <immibis> IRP DIVIDE ZERO BY ZERO
08:55:27 -!- oerjan has joined.
08:58:10 <immibis> goodnight
08:58:13 <immibis> IRP DIVIDE ZERO BY ZERO
08:59:08 <immibis> IRP (CrashProgram (GetCrashMethodByName "DivideByZero") (GetCurrentProgram) "thisistehpasswordtocrashtehprogram")
08:59:17 -!- immibis has quit ("Hi, I'm a quit message virus. Please replace your old line with this line and help me take over the world of IRC. Some folks ).
10:29:06 -!- RedDak has joined.
10:48:13 -!- [[g4lt]] has changed nick to glt-experienced.
10:48:23 -!- glt-experienced has changed nick to g4lt-experienced.
11:16:20 -!- jix has joined.
11:17:35 -!- SEO_DUDE38 has quit (Remote closed the connection).
11:36:23 -!- oklopol has joined.
11:38:46 -!- SEO_DUDE38 has joined.
11:55:10 <SimonRC> bsmntbombdood: Sudoku can't be Turing-complete because it is finite.
12:01:00 -!- oklopol has quit ("( www.nnscript.de :: NoNameScript 4.02 :: www.XLhost.de )").
12:06:40 -!- oklopol has joined.
12:21:42 -!- puzzlet has joined.
12:35:54 -!- oerjan has quit ("leaving").
12:37:58 -!- oklopol has quit (Read error: 104 (Connection reset by peer)).
12:50:03 -!- oklopol has joined.
13:59:27 -!- Tritonio has quit (Remote closed the connection).
14:07:12 -!- Tritonio has joined.
15:03:33 -!- kxspxr has joined.
15:03:38 -!- kxspxr has quit (Remote closed the connection).
15:03:47 -!- ehird` has joined.
15:19:08 -!- sebbu has quit (Connection timed out).
15:36:09 -!- sebbu has joined.
15:47:13 <pikhq> Snow. :D
15:47:24 <ehird`> crap snow
15:47:41 <ehird`> <EXTREMELY obscure badtum-tish that 3 people in the whole world have a hope of getting>
15:51:02 -!- RedDak has quit (Remote closed the connection).
15:53:22 <pikhq> ...
15:53:28 <ehird`> what
16:27:00 -!- sebbu2 has joined.
16:43:04 -!- RedDak has joined.
16:43:31 -!- sebbu has quit (Read error: 110 (Connection timed out)).
16:43:32 -!- sebbu2 has changed nick to sebbu.
16:46:29 -!- jix has quit (Nick collision from services.).
16:46:39 -!- jix has joined.
17:39:56 -!- RedDak has quit ("I'm quitting... Bye all").
17:49:05 -!- Tritonio has quit (Read error: 110 (Connection timed out)).
17:50:30 -!- Tritonio has joined.
17:51:07 -!- Tritonio has quit (Remote closed the connection).
17:52:23 -!- puzzlet_ has joined.
17:52:23 -!- puzzlet has quit (Remote closed the connection).
17:56:15 -!- Tritonio has joined.
17:57:46 -!- puzzlet has joined.
18:09:48 -!- puzzlet_ has quit (Read error: 110 (Connection timed out)).
18:12:07 <Tritonio> does anybody use gutsy gibbon?
18:13:42 <pikhq> Certaintly *someone* does. . .
18:13:43 <pikhq> Just not me.
18:13:51 <ehird`> no
18:13:53 <ehird`> 0 people use ubuntu
18:13:55 <ehird`> in the world
18:15:54 <Tritonio> i mean here... i have a little crazy stupid problem with the windows list applet...
18:24:19 <bsmntbombdood> SimonRC: turing complete without unbounded
18:24:45 <ehird`> SimonRC: ?
18:26:53 <bsmntbombdood> pikhq: how much do you have?
18:27:01 <bsmntbombdood> pikhq: there's barely a dusting on the ground here ;(
18:27:11 <ehird`> no snow here
18:27:12 <ehird`> :)
18:27:15 <pikhq> I'd guess somewhere between 1/4" to 1/2".
18:27:19 <pikhq> Not much, really.
18:27:25 <ehird`> it's how you use it
18:27:35 <bsmntbombdood> my contact near denver tells me 4 inches
18:27:48 <pikhq> Well, the Steelers game ought to be interesting, then.
18:27:53 <bsmntbombdood> what's that?
18:28:06 <pikhq> Steelers @ Broncos, 6:15PM today.
18:28:10 <bsmntbombdood> ...
18:28:19 <pikhq> What?
18:28:20 <bsmntbombdood> oh, football?
18:28:23 <pikhq> Yeah.
18:29:17 <ehird`> playing around with stack-based languages is dangerous to the mind... i'm actually considering factor for my next project
18:29:40 <pikhq> Playing around with obfuscating C is pretty dangerous to the mind, as well. . .
18:30:01 <ehird`> you consider obfuscated C for your next project?
18:30:08 <ehird`> job security, i guess
18:30:36 <pikhq> I'm in high school. Coding's just a massive game ATM. ;)
18:30:47 <ehird`> ;)
18:30:53 <pikhq> http://pikhq.nonlogic.org/bubble.c And my, what a fun one.
18:30:59 <ehird`> haha wow, imagine an online game based on coding
18:31:01 <ehird`> that would be odd
18:31:39 <bsmntbombdood> oh em gee i'm in high school too
18:31:47 <ehird`> gosh, what a coincidence
18:31:59 <ehird`> pikhq: now do quicksort
18:32:00 <ehird`> ;)
18:32:20 <pikhq> ;)
18:32:42 <ehird`> without recursing
18:32:43 <ehird`> :D
18:33:23 <pikhq> Good idea.
18:33:51 <ehird`> keep lines to 72 characters, and keep it 4 lines or less, so it fits into a sig
18:34:07 <ehird`> extra points for being gcc-only and requiring crazy compiler flags
18:34:21 <ehird`> (you could probably squeeze a lot of the program into flags, knowing gcc...)
18:34:25 * pikhq takes a look at his sane quicksort implementation
18:34:34 <pikhq> I always assume GCC. . .
18:34:47 <pikhq> foo?({goto g;}):({goto h;}) is so much fun. ;)
18:34:49 <ehird`> hmm, if you specify gcc flags though you either need to have it 3 lines so you can fit gcc flags on the last line, or be able to fit a comment into a 4-line block
18:35:32 <ehird`> but - if you can fit a non-recursing quicksort, with the compiler flags (if any) needed to compile it included, in 4 lines or less where a line is 72 characters, then i am amazed
18:35:37 <ehird`> i don't think it's possible :P
18:35:57 <pikhq> Obviously, I'll need to choose a really, really simple pivot algorithm. . .
18:36:06 <pikhq> Hmm.
18:36:12 <pikhq> This could be trickier than I though.
18:36:27 <ehird`> the more flags are required the more fake-points you get :P
18:36:48 <pikhq> I don't think it's possible, with the non-recursing requirement.
18:36:57 <ehird`> if the flags specified require a certain shell to work properly, you get infinity points
18:36:59 <ehird`> :P
18:37:02 <ehird`> hmm
18:37:09 <ehird`> 6 lines, then
18:37:12 <ehird`> at 80 characters per line
18:37:17 <ehird`> that gives you some more space :P
18:37:30 <pikhq> It's the non-recursing requirement that makes it tricky, I fear.
18:37:56 <ehird`> ok, then just make it tail-recursive :P
18:38:02 <ehird`> (bam! just-as-hard requirement substituted!)
18:41:39 <RodgerTheGreat> ehird`: an online game based on coding, eh?
18:41:46 <RodgerTheGreat> ever heard of Koth.org?
18:42:01 <ehird`> RodgerTheGreat: that's a corewars-alike right?
18:42:07 <ehird`> that isn't really what i was thining :P
18:42:20 <RodgerTheGreat> hm
18:42:26 <RodgerTheGreat> more like an MMO or something?
18:42:33 <ehird`> something like that
18:42:36 <ehird`> which would be hilarious
18:42:37 <pikhq> Screw it.
18:42:42 <ehird`> "collect the magic gem of printf!"
18:42:46 <pikhq> I'll just do an obfuscated quine.
18:42:50 <RodgerTheGreat> I've had some thoughts about it
18:42:59 <RodgerTheGreat> but collecting commands sounds retarded, I must say.
18:43:04 <ehird`> ;)
18:43:08 <ehird`> pikhq: pff ;)
18:43:11 <ehird`> ok you can recurse
18:43:20 <ehird`> but then 72 characters and 4 lines restriction comes back in
18:43:21 <RodgerTheGreat> it'd need to be something more like Uplink
18:43:37 <RodgerTheGreat> ehird`: what's he doing, punching these on cards?
18:43:57 <ehird`> RodgerTheGreat: putting them in ~/.sig, obviously
18:44:02 <RodgerTheGreat> ah
18:45:29 <ehird`> pikhq: you are of course allowed to use bad practices like old-style definitions
18:45:39 <ehird`> func(a1,a2) instead of int func(int a1, int a2)
18:46:37 <RodgerTheGreat> bonus points for anything involving comparisons or complex math performed directly upon pointers
18:46:44 <oklopol> it'd be awesome if there'd be a game where each level is a shell, and you need to kinda find out what you can do in it and hack your way into whatever the point of the current level is
18:47:09 <ehird`> RodgerTheGreat: bitwise operations on pointers for mega points
18:47:24 <oklopol> or the goal could always be to crash the system :P
18:47:26 <ehird`> oklopol: there are a few iirc
18:47:29 <oklopol> oh
18:47:38 <ehird`> oklopol: uplink is only tangentally related to that but there are games basically totally like that
18:47:43 <ehird`> maybe not as flexible as you'd like though
18:47:50 <oklopol> can i see one?
18:47:54 <pikhq> ehird`: Of course.
18:48:00 <ehird`> pikhq: :D
18:48:33 <oklopol> ehird`: do you know a name?
18:48:41 <ehird`> nope
18:48:42 <pikhq> q(s)char*s;{ anyone?
18:48:43 <ehird`> wikipedia
18:48:53 <ehird`> pikhq: pff you can get that shorter
18:49:00 <ehird`> why not make it operate on ints?
18:49:01 <pikhq> How?
18:49:11 <ehird`> q(l)int*l;{
18:49:14 <ehird`> shorter
18:49:17 <pikhq> Then I have to convert the command-line argument to ints.
18:49:22 <pikhq> Which takes space.
18:49:30 <ehird`> oh, i didn't say you had to do command-line arguments
18:49:32 <pikhq> . . . Or I can just cast it.
18:49:33 <ehird`> but ok then :P
18:49:35 <ehird`> YES
18:49:36 <ehird`> cast it
18:49:37 <ehird`> :D
18:49:49 <ehird`> well, i guess casting is bigger, though
18:49:50 <pikhq> For more WTF-ness. :)
18:49:53 <pikhq> Not really.
18:49:55 <ehird`> fun:
18:50:01 <pikhq> *Implicit* casting. :D
18:50:06 <ehird`> mwaha
18:50:07 <ehird`> yes
18:50:10 <ehird`> main(c,v)char*v;{...}
18:50:18 <ehird`> no need to specify the type of c, it's default int :-)
18:50:19 <ehird`> fun
18:50:29 <pikhq> :)
18:50:36 <ehird`> i'm not sure the final ; is vital there
18:50:37 <ehird`> might be
18:50:39 <ehird`> ah probably
18:50:43 <ehird`> since the literal syntax for arrays/structs
18:50:50 <pikhq> We can check. :p
18:50:58 <ehird`> :D
18:51:34 <oklopol> hmph, ehird` is such a fun-ruiner
18:51:38 <ehird`> it'd be extra-funny if you could compact it to three lines without either " or ' (one but not both)
18:51:49 <ehird`> then you could put the compiling command completely in the sig :D
18:52:02 <ehird`> (well, 3 and a half lines, really, since you have the rest of the first one)
18:52:11 <ehird`> that would be really hard though
19:11:10 <pikhq> I've almost succeded.
19:11:15 <pikhq> Somewhre, I have a segfault.
19:11:20 <pikhq> :(
19:11:24 <ehird`> gdb!
19:11:59 <pikhq> It's fairly amusing to see what indent makes of it, though.
19:12:30 <ehird`> haha
19:12:34 <ehird`> show me! :D
19:12:38 <ehird`> (the indent-ed version that is)
19:12:57 <pikhq> http://pikhq.nonlogic.org/quick.c
19:13:14 <ehird`> haha
19:13:31 <ehird`> int *\n<lots of space>s;
19:13:35 <ehird`> that makes no effing sense :D
19:13:40 <ehird`> then again we all know indent is retarded
19:13:55 <ehird`> whoa, uh, you're calling strlen on s
19:14:04 <pikhq> And?
19:14:04 <ehird`> why don't you take length as an extra perameter
19:14:09 <ehird`> then you can have:
19:14:25 <ehird`> g[n], l[n], p = (n / 2)...
19:14:27 <ehird`> it'd be shorter
19:14:28 <pikhq> True.
19:14:38 <ehird`> and, it's just two extra chars in the definition
19:14:44 <ehird`> since you don't have to specify the type sa int
19:15:01 <ehird`> and q(1[v],strlen(1[v])) is still pretty short
19:15:08 <ehird`> overall, it'd be much shorter and much less readable :D
19:15:37 <ehird`> also
19:15:38 <ehird`> char **v
19:15:40 <ehird`> not char *v
19:15:41 <ehird`> for main
19:16:29 <pikhq> I forgot one thing. . .
19:16:34 <ehird`> what?
19:16:45 <pikhq> (BTW, the char *v instead of char**v was the segfault's cause)
19:16:47 <pikhq> Output.\
19:17:01 <ehird`> puts(q(1[v],strlen(1[v]))
19:17:07 <ehird`> you get a newline free, too
19:17:08 <pikhq> :)
19:17:42 <pikhq> . . . And now it segfaults.
19:17:52 <ehird`> gdb to the rescue
19:17:56 <ehird`> (alternatively, show me the new code)
19:18:00 <ehird`> oh, wait
19:18:03 <pikhq> I only added puts.
19:18:05 <ehird`> what type does q return
19:18:16 <ehird`> a NEW pointer, right?
19:18:17 <pikhq> Unspecified.
19:18:18 <ehird`> or an array?
19:18:23 <ehird`> no i mean what does it return in practice
19:18:24 <pikhq> I need to do a memcpy. XD
19:18:32 <ehird`> thought so
19:18:46 <pikhq> Or output in q itself.
19:18:58 <ehird`> nahh
19:19:02 <ehird`> cause then q wouldn't qsort
19:19:04 <ehird`> it'd qsort-and-print
19:19:12 <pikhq> . . . Right.
19:19:34 <ehird`> so does it work? :D
19:19:40 <pikhq> Or strdup.
19:19:51 <ehird`> strdup is shorter
19:19:53 <ehird`> go for it! :P
19:20:01 <pikhq> And a nice little memory leak. ;)
19:20:05 <ehird`> heh
19:20:14 <ehird`> this does do ascii-sorting for commandline args right? like qsort adb -> abd
19:20:17 <pikhq> Yeah.
19:21:10 <ehird`> is it finalized?
19:21:15 <ehird`> how big is it with 72 char lines? :)
19:21:19 <pikhq> Odd.
19:21:24 <pikhq> It's *still* segfaulting.
19:21:28 <pikhq> With the puts.
19:21:32 <ehird`> well
19:21:35 <ehird`> show me the current code
19:21:39 <pikhq> strdup(s) would *surely* copy s. . .
19:21:48 <ehird`> i might be able to help
19:22:00 <pikhq> Uploaded.
19:22:21 <ehird`> indented or normal? ;)
19:22:28 <pikhq> Indented.
19:22:33 <ehird`> heh
19:22:39 <pikhq> It's still weird, but it's easier to edit.
19:22:53 <ehird`> s[n / 2]
19:22:54 <ehird`> (n / 2)[s]
19:23:00 <ehird`> you're wasting space trying to be clever
19:23:05 <pikhq> I know.
19:23:11 <ehird`> well, isn't that pretty silly? :P
19:23:13 <pikhq> If I don't fit the space bounds, I'll get rid of that.
19:23:22 <ehird`> you get extra points for smaller code ;p
19:23:57 <ehird`> x = 0, i = x, j =
19:23:57 <ehird`> (i ^= i)
19:23:57 <ehird`> isn't that equiv. to x=i=j=0?
19:24:10 <pikhq> Yes.
19:24:11 <pikhq> :)
19:24:24 <ehird`> sheesh, this isn't obfuscation, it's golf :P
19:24:58 <pikhq> x=(i=(x=(j=0))); or x=0,i=x,j=(i^=i);?
19:25:42 <pikhq> My version, by my count, is the same length. . .
19:25:46 <pikhq> But more WTF-y.
19:26:07 <ehird`> x=0,i=x,j=(i^=i)
19:26:07 <ehird`> x=i=j=0
19:26:13 <ehird`> you have duplicate x=
19:26:16 <ehird`> and you don't need the prens
19:26:19 <ehird`> *parens
19:26:53 <pikhq> x=i=j=0; doesn't compile.
19:27:10 <ehird`> wha?
19:27:11 <pikhq> And the parens wouldn't help.
19:27:14 <ehird`> i'm pretty sure it does
19:27:17 <ehird`> why doesn't it
19:27:25 <pikhq> int x=i=j=0;.
19:27:26 <pikhq> ;)
19:27:44 <ehird`> ahhh
19:27:55 <ehird`> aern't ints 0 by default?
19:27:59 <ehird`> i mean, its unportable
19:28:00 <ehird`> but...
19:28:10 <pikhq> In a function, no.
19:28:14 <ehird`> give it a try, you could reduce it to: x,i,j
19:28:17 <ehird`> i'm pretty sure they are
19:28:21 <ehird`> at least with default gcc
19:28:21 <pikhq> No.
19:28:40 <pikhq> Believe me, they're not 0.
19:28:54 <pikhq> If they're declared *outside* a function, they are, though. . .
19:29:32 <ehird`> gogogogogogo
19:29:34 <ehird`> global rangers!
19:30:57 <pikhq> Now, do you know how that segfaults?
19:31:08 <ehird`> nope but i will in a few minutes
19:31:09 <ehird`> brb.
19:36:06 -!- g4lt-experienced has changed nick to glt-mordant.
19:36:14 -!- glt-mordant has changed nick to g4lt-mordant.
19:39:19 -!- puzzlet_ has joined.
19:41:21 -!- oerjan has joined.
19:42:00 <ehird`> ok
19:42:03 <ehird`> when i say a few minutes
19:42:05 <ehird`> i mean ten
19:42:33 <ehird`> pikhq: well how about this
19:42:34 <ehird`> return 1[s] ? s : 0;
19:42:37 <ehird`> the first line of q
19:42:43 <ehird`> all the other code is, uh, not executed.
19:43:04 <pikhq> Shit. You're right.
19:43:12 <ehird`> ahahahahahahaha
19:45:37 <ehird`> http://fabrice.bellard.free.fr/otcc/ ok, this is awesome :-)
19:45:52 <ehird`> i now have an urge to write a small c compiler not obfuscated but compact
19:46:07 <pikhq> Which means there is *still* a segfault. :(
19:46:20 <ehird`> pikhq: use gdb damnit!!
19:46:21 <pikhq> Caused by puts.
19:46:25 <pikhq> I will. . .
19:46:26 <ehird`> hm
19:46:28 <ehird`> yeah
19:46:29 <ehird`> use gdb
19:48:37 <pikhq> The fuck?
19:48:42 <pikhq> ./a.out cb
19:49:00 <ehird`> i don't have a c compiler on this system (stuck on windows atm)
19:49:02 <ehird`> what does it output
19:49:06 <pikhq> It calls q, then gets to "1[s] ? ({return s;}):0;". . .
19:49:09 <pikhq> And returns.
19:49:16 <ehird`> that's the first statement in q
19:49:18 <ehird`> i told you that
19:49:24 <ehird`> anyway
19:49:28 <ehird`> indent shows it as
19:49:30 <ehird`> wait
19:49:31 <pikhq> I changed that statement so that it doesn't always return.
19:49:33 <ehird`> of course 1[s] is true
19:49:38 <ehird`> is 'c' true?
19:49:38 <ehird`> yes!
19:49:42 <ehird`> so, it runs return s
19:49:47 <ehird`> so q is just returning your input
19:49:55 <pikhq> Dammit. Need !1[s], don't I. XD
19:50:02 <ehird`> orrr just:
19:50:07 <pikhq> Switch it around.
19:50:10 <ehird`> 1[s]?0:({return s})
19:50:11 <ehird`> yes
19:50:12 <ehird`> but
19:50:14 <ehird`> why are you doing that
19:50:25 <pikhq> Hmm. . .
19:50:32 <ehird`> i mean... what's the point?
19:50:33 <pikhq> That's a good question.
19:50:45 <ehird`> remember
19:50:52 <ehird`> s[1] will just segfault, mostly
19:50:56 <ehird`> why? because it's int*
19:51:06 <ehird`> if you q(0, { })
19:51:07 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
19:51:10 <ehird`> s[1] -> BOOM anyway
19:51:15 <ehird`> so, just check length for 0
19:51:26 <pikhq> I want it to return when n>=1, not when s[1]==NULL.
19:51:49 <ehird`> what is n? sorry, i have not analyzed the code in depth
19:52:19 <pikhq> n is the length of the array. . .
19:52:27 <pikhq> Or, at least, should be.
19:52:28 <ehird`> right, right
19:52:30 <ehird`> that's what i meant
19:52:39 <ehird`> "so just check length for 0"
19:54:28 <pikhq> Shouldn't x[s] ? test for NULL?
19:54:42 <ehird`> err i guess
19:54:49 <ehird`> i thought length would be 0 on empty string
19:56:40 <pikhq> I think the bit about int*s rather than char*s is causing *this*. . .
19:57:33 <pikhq> And now I started something *completely different* into a segfault.
19:57:50 <pikhq> 4 puts (q (strlen(v[1]),1[v]));
19:58:03 <pikhq> That line, before q gets called, is causing a segfault.
19:58:07 <pikhq> . . . Oh.
19:58:11 <ehird`> oh what
19:58:12 <pikhq> set args abc
19:58:13 <pikhq> Duh.
19:58:18 <ehird`> ......
19:58:20 <ehird`> sifg.
19:58:21 <ehird`> *sigh
19:59:08 <pikhq> And now my recursion is done wrong.
19:59:13 <pikhq> q(l). XD
19:59:17 <ehird`> XDE
19:59:18 <ehird`> *XD
20:01:49 <pikhq> Interesting. . .
20:02:00 <pikhq> q(3, "c") gets called.
20:02:09 <ehird`> do you subtract from length each recurse?
20:02:20 <ehird`> :)
20:02:23 <pikhq> I do strlen with recurse.
20:02:31 <ehird`> right, well don't i think
20:02:33 <ehird`> just subtract manually
20:02:42 <ehird`> (gcc 3.4.4 good enough to compile this? I assume so :P)
20:02:44 <ehird`> (Bloody cygwin)
20:04:08 <pikhq> (yes)
20:04:13 <pikhq> (I hope)
20:04:54 <oerjan> not there
20:05:13 <ehird`> ?
20:05:23 <oerjan> ihope
20:05:43 <ehird`> heh
20:06:52 <pikhq> Now to figure out how q(3,"cba") calls q(1,"\0x01") and q(1,"c"). . .
20:07:49 <pikhq> Although it's easy to see how it segfaults.
20:08:10 <pikhq> That first line's return s;? Yeah, s gets freed in that return. ;)
20:08:33 <ehird`> hah
20:08:39 * ehird` presses Next >, hopes cygwin server doesn't suck
20:08:42 <pikhq> Now, I've just got a fucked up quicksort.
20:08:53 <ehird`> hmm, 150kb/s
20:08:55 <ehird`> not bad
20:09:04 <pikhq> (fucked up, as in "returns 'c\0x01' for 'cba'")
20:09:11 * ehird` is installing cygwin on this machine out of frustration
20:09:17 <ehird`> i'll compile and debug your code soon, pikhq ;)
20:09:32 <ehird`> (right after laughing at xeyes working on windows)
20:10:12 <pikhq> Latest version uploaded.
20:10:40 * ehird` wonders how big an x11 binary is
20:10:55 <ehird`> thank god i'm getting rxvt-unicode though
20:10:59 <ehird`> i am getting tired of cmd
20:12:27 <ehird`> cygwin 30%, not to obad
20:22:24 * pikhq thumbtwiddles, refusing to work on it for a while
20:22:39 <ehird`> :P
20:22:46 <ehird`> i'll be more help when cygwin installs
20:26:21 <ehird`> DAMNIT!
20:26:25 <ehird`> I closed it by mistake...
20:26:35 <ehird`> and lost all the package selections :'(
20:28:03 <oerjan> that's - ominous
20:28:12 <pikhq> :(
20:28:16 * ehird` goes through the whole list again
20:28:20 <ehird`> thankfully! it doesn't have to redownload.
20:28:24 <ehird`> it saves all the files it's downloaded.
20:28:28 <ehird`> but... i have to remember WHAT i wanted..
20:29:05 <oerjan> i guess that's a good rule in general: always remember what you want
20:29:17 * ehird` hunts down where cygwin1.dll was
20:29:24 <ehird`> it crapped out on that at some point too
20:30:47 <ehird`> ok, WTF
20:30:59 <ehird`> cmd tab completion - and cygwin setup - finds c:\windows\system32\cygwin1.dll
20:31:01 <ehird`> but it's NOT THERE
20:31:13 <ehird`> wtf, notepad sees it
20:32:49 <pikhq> ...
20:33:01 <ehird`> yeah.
20:33:07 <ehird`> it isn't in explorer's list or `dir`
20:33:13 <ehird`> yet setup.exe sees it, and so does notepad
20:33:17 <ehird`> and del claims Could Not Find
20:33:22 <ehird`> lolololololololololol.
20:33:25 <ehird`> windoze.
20:36:04 <oerjan> wild guess: maybe it's a hidden file?
20:36:22 <ehird`> del removes hidden files and i have hidden files to show in explorer
20:42:56 <ehird`> finally
20:42:56 <ehird`> fixed
20:43:00 <ehird`> now to remember which packages i did
20:43:07 <ehird`> pikhq: soon, soon, i'll help ;)
20:43:39 <pikhq> :)
20:44:02 <ehird`> i wish cygwin would look BEFORE installing all that crap though
20:48:05 <ehird`> gogogogogo install
20:53:37 <ehird`> on to post-install, pikhq
20:53:46 <ehird`> i shall be gcc&gdb-helpering you very soon :P
20:54:26 <g4lt-mordant> bah, dtrace FTW
20:54:35 -!- Tritonio has quit (Read error: 110 (Connection timed out)).
20:54:41 <ehird`> that's not the point, i mean just cygwin :P
20:54:49 <ehird`> woot
20:54:50 <ehird`> installed
20:54:55 <pikhq> w00t.
20:54:55 * ehird` starts rxvt-unicode, hopes
20:55:29 <ehird`> well, just bash first
20:55:30 <ehird`> to test
20:55:45 <ehird`> test@f6b2c69 ~
20:55:45 <ehird`> $ gcc --version
20:55:45 <ehird`> gcc (GCC) 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)
20:55:46 <ehird`> woot!
20:55:58 -!- Tritonio has joined.
20:57:02 <ehird`> hmm
20:57:07 <ehird`> urxvt won't run.
20:57:23 <ehird`> nor does any x11 app
20:57:24 <ehird`> wait
20:57:26 <ehird`> did i start x11?
20:57:48 <ehird`> answer: no
20:57:50 <ehird`> lol am dum
20:58:25 <pikhq> XD
20:58:41 <pikhq> Any reason for Cygwin having GDC?
20:58:48 <ehird`> gdc?
20:59:08 <ehird`> the d compiler?
21:00:41 <pikhq> Yeah.
21:00:52 <ehird`> because it has software
21:00:52 <ehird`> :P
21:00:53 <ehird`> woot
21:00:54 <ehird`> xeyes runs
21:01:56 * ehird` gets himself some of dat urxvt runnin'
21:02:21 <oklopol> YOU ARE TALKING :OOOOOOOOO
21:02:36 <ehird`> yes
21:02:37 <ehird`> i am?
21:03:33 <oklopol> that is all.
21:08:31 <ehird`> jesus christ
21:08:34 <ehird`> god damn windows
21:08:37 <ehird`> its frozen up the start menu
21:08:41 <ehird`> so i'm talking blind
21:09:01 <ehird`> kill'd explorer
21:09:49 <ehird`> now
21:09:53 <ehird`> time to make an urxvt shortcut
21:11:57 <ehird`> gosh, cygwin is ugly
21:11:59 <ehird`> and hacky
21:19:07 <ehird`> bah
21:19:29 <lament> i'm currently suffering without it
21:19:41 <lament> i need scp
21:19:56 * ehird` asks in #cygwin how to make the shortcut
21:22:36 <bsmntbombdood> http://www.yale.edu/ypu/blog/ninja1.JPG
21:22:40 <bsmntbombdood> LOOK FEMALE NINJA
21:23:40 <bsmntbombdood> hot.
21:24:14 <lament> not really.
21:25:04 <bartw> shirt ninja
21:28:40 <pikhq> But she's an *RMS* groupie.
21:28:44 <pikhq> You sure you want that?
21:29:10 <oerjan> copyleft ninjas?
21:29:11 <bsmntbombdood> i'd do rms
21:29:18 <ehird`> bsmntbombdood: oh god
21:29:29 <ehird`> you know what? i hate you
21:29:29 <ehird`> :P
21:29:36 <pikhq> oerjan: Reenacting xkcd. ;)
21:29:43 <bsmntbombdood> why? because rms loves me more than you?
21:29:47 <ehird`> http://upload.wikimedia.org/wikipedia/commons/c/cf/Portrait_-_Denmark_DTU_2007-3-31.jpg sexy rms!
21:29:55 <ehird`> XD
21:30:53 <bsmntbombdood> OH DAMN
21:30:56 * bsmntbombdood changes his pants
21:31:00 <ehird`> lmao
21:31:14 <ehird`> http://upload.wikimedia.org/wikipedia/commons/6/64/Wikimania_stallman_keynote2.jpg
21:31:46 <bsmntbombdood> he could stand to lose some weight
21:32:41 <pikhq> If he cut his hair & bear, he'd probably lose a good 20 pounds. :p
21:32:45 <pikhq> s/bear/beard/
21:33:19 <ehird`> this is all academic, rms is a crazy hobo and would kill you for even suggesting that he is not perfect
21:33:20 <ehird`> ;)
21:33:34 <bsmntbombdood> fine, s/weight/paunch/
21:33:48 <bsmntbombdood> because cutting his hair and beard would make him not rms
21:34:01 <ehird`> i think that would be a good thing
21:34:03 <ehird`> :)
21:39:40 -!- RedDak has joined.
21:41:37 -!- puzzlet_ has quit (Remote closed the connection).
21:41:38 -!- puzzlet has joined.
21:43:34 <pikhq> ehird`: Any ideas?
21:44:09 <ehird`> pikhq: asking in #cygwin
21:44:15 <ehird`> then i can get urxvt
21:47:33 <ehird`> woot
21:47:34 <ehird`> i did it
21:48:09 <ehird`> pikhq: okies here goes
21:48:14 <pikhq> w00ts.
21:48:24 <ehird`> sorry for, heh, taking 2 hours
21:49:25 <ehird`> ok
21:49:28 <ehird`> your problem seems to be
21:49:30 <ehird`> actually
21:49:32 <ehird`> your problem is
21:49:37 <ehird`> is that q has a type of int, by default
21:49:40 <ehird`> so, when it returns the string
21:49:43 <ehird`> it returns (int)string
21:49:49 <ehird`> and then puts(an_int) is called
21:49:57 <ehird`> gcc just told me this when i compiled it.
21:51:36 <ehird`> n>2?0: ({return strdup(s);}); does not do what you think it does
21:51:43 <ehird`> you want: (n>2)?0: ({return strdup(s);});
21:51:54 <ehird`> right now it is:
21:52:02 <ehird`> n > (2 ? 0 : NEVER EXECUTED)
21:52:05 <ehird`> -> n > 0
21:52:06 <ehird`> -> nop
21:52:30 <ehird`> at least, i think so, pikhq
21:53:10 <ehird`> ok, you are doing something wrong with l and g
21:53:18 <ehird`> since they become things like "0K\020ac^\200|{j\020@"
21:53:27 <ehird`> pikhq: i doubt any of that is helpful, but :)
22:00:00 <pikhq> I know something is wrong with l and g; that much is obvious. :p
22:05:23 <ehird`> back
22:05:25 <ehird`> heh
22:05:27 <ehird`> ok, let's see
22:05:56 <ehird`> x[s] is just checking the first character isn't 0, so i can safely assume the first block is being executed... let me see...
22:06:13 <ehird`> p is half-way through the string, the pivot...
22:06:33 <ehird`> x <= p
22:06:33 <ehird`> if we are earlier than the pivot in the string, ...
22:06:38 <ehird`> ok, that's not fucking up obviously :P
22:06:54 <ehird`> er, wait
22:06:57 <ehird`> if this is less than the pivot
22:06:59 <ehird`> right, got it
22:07:09 <pikhq> BTW, that q returns an int doesn't matter. . . The call to puts makes it basically puts((char*)(int)(char*)"foo");. ;)'
22:07:10 <ehird`> pikhq: you mean: if x[s] <= p
22:07:23 <pikhq> . . . Oh, duh.
22:07:26 <pikhq> That would do it.
22:07:31 <ehird`> lololololololol
22:07:33 <ehird`> ;)
22:07:42 <ehird`> i'll make that change in my copy so You Don't Have To
22:07:51 <pikhq> That makes it output ac instead of abc. ;)
22:08:08 <ehird`> right, i think it's because of the \0 at the end of the strings
22:08:15 <ehird`> strip it somehow, so that n is actually the length of s
22:08:56 <ehird`> oh, also...
22:09:04 <ehird`> you aren't clearing out g[n] and l[n] to 0.
22:09:09 <ehird`> you should zero them out
22:09:16 <ehird`> memzero if i am not mistaken
22:10:12 <pikhq> *That* is a signifigant issue.
22:10:24 <pikhq> Heisenbugs will abound because of that mistake. . .
22:10:26 <ehird`> which? the \0 on the string or the non-zeroing-out g and l
22:10:33 <ehird`> heisenbug
22:10:34 <ehird`> i like it
22:10:43 <pikhq> Non-zeroing-out g and l.
22:10:47 <ehird`> thought so
22:11:08 <ehird`> upload a new version its a major enough change after that =)
22:11:32 <pikhq> Now, what's a good esoteric way to add in bzero?
22:11:53 <ehird`> just do memzero(ptr, size)
22:12:00 <pikhq> bzero, not memzero.
22:12:09 <pikhq> I want it esotericy, though.
22:12:14 <ehird`> ok
22:12:38 <ehird`> bzero(bzero(g,n)&&l,n)
22:12:38 <ehird`> :P
22:12:56 <ehird`> hm
22:12:59 <ehird`> bzero is deprecated
22:13:05 <ehird`> why not just memset(ptr,0,n)
22:13:51 <pikhq> Deprecated is even more cause for it. ;)
22:14:05 <ehird`> oh come on, esoterica yes but we don't want to make this break in the future ;)
22:14:15 <pikhq> Too late.
22:14:23 <ehird`> blargh ok :P
22:14:25 <pikhq> My function definitions are already depricated.
22:14:30 <ehird`> hehe
22:14:31 <ehird`> new version@
22:15:08 <pikhq> BTW, void value not ignored as it should be for your suggestion. ;)
22:15:31 <ehird`> bzero((bzero(g,n)&&l)||l,n)
22:15:34 <ehird`> of course
22:15:36 <ehird`> why use & and |?
22:15:38 <ehird`> er
22:15:39 <ehird`> && and ||?
22:15:44 <ehird`> you could probably use & and |
22:15:46 <pikhq> bzero returns void.
22:15:49 <ehird`> argh
22:15:50 <ehird`> damn
22:15:51 <ehird`> well
22:15:56 <ehird`> fit some bitwise pointer arithmetic in there
22:15:58 <ehird`> :-)
22:16:31 <pikhq> Memset, however, returns void*. ;)
22:17:09 <ehird`> MWAHAHA :D
22:17:12 <ehird`> yes yes yes
22:17:31 <pikhq> I'll use both and some bitwise stuff. ;)
22:17:45 <ehird`> (um, does this still fit in 4 72-character lines?)
22:17:59 <pikhq> Um, dunno.
22:18:29 <ehird`> i'll compress the current version to see
22:19:22 <pikhq> Still a Heisenbug, though. . .
22:19:31 <pikhq> cba, sorted, is apparently bac.
22:19:46 <pikhq> And acb is a segfault.
22:19:58 <pikhq> Uploaded the new one, though.
22:20:12 <ehird`> let me tell you something
22:20:16 <ehird`> run in gdb and step over
22:20:22 <pikhq> That's my plan.
22:20:24 <ehird`> when a nested q call is made
22:20:31 <ehird`> you will see that, the strings have loads of garbage
22:20:33 <ehird`> in the argument
22:21:06 <ehird`> pikhq: good news
22:21:07 <ehird`> it fits
22:21:09 <pikhq> Not now.
22:21:34 <ehird`> http://www.nonlogic.org/dump/text/1193001671.html
22:21:39 <ehird`> please ignore the automatic indesntation...
22:21:47 <pikhq> I'm getting just q(1, "c") and q(2, "ba") called.
22:21:53 <ehird`> ok
22:22:00 <ehird`> well
22:22:07 <ehird`> wait!1
22:22:08 <ehird`> i know!!
22:22:18 <pikhq> s/(n>2)/(n>1)/. . .
22:22:19 <ehird`> when yu copy to the two arrays
22:22:25 <ehird`> you don't copy the whole thing
22:22:26 <ehird`> so
22:22:30 <ehird`> they won't have \0 in
22:22:31 <ehird`> BUT
22:22:33 <ehird`> they are passed to q
22:22:35 <ehird`> which calls strlen
22:22:54 <pikhq> The behavior you're trying to explain does not *exist* here. . .
22:23:08 <ehird`> solutions: 1. pass i and j instead of a strlen
22:23:19 <pikhq> ./a.out cba sorts right.
22:23:34 <pikhq> Everything else. . . Segfaults.
22:23:35 <pikhq> gdb'ing.
22:24:22 <ehird`> cab works
22:24:26 <ehird`> it sorts to acb though
22:24:38 <pikhq> I'm getting infinite recursions.
22:24:57 <pikhq> Which is causing the segfault.
22:25:51 <ehird`> ok, just change
22:25:54 <ehird`> q(strlen(l),l) to:
22:25:57 <ehird`> q(i,l)
22:26:00 <ehird`> and q(strlen(g),g)
22:26:00 <pikhq> Although I must salute my system for going through at least 25473 recursions.
22:26:06 <ehird`> to q(j,g)
22:26:12 <ehird`> i bet it will work
22:26:47 <pikhq> Nope.
22:26:55 <pikhq> Still have infinite recursions.
22:27:01 <pikhq> (n>1)?0: ({return strdup(s);});
22:27:02 <ehird`> i'll gdb
22:27:10 <pikhq> This is the offending line, I fear.
22:27:14 <ehird`> pikhq: are you sure that actually returns
22:27:19 <ehird`> i think it'll only return from the {} block
22:27:32 <pikhq> If n>1, yes.
22:27:35 <pikhq> Erm.
22:27:38 <pikhq> If n<1.
22:27:47 <pikhq> Otherwise, it goes on.
22:27:58 <pikhq> See what happens with q(2, "ab"). . .
22:28:02 <ehird`> ok, let's just go through this mechanically:
22:28:09 <ehird`> let's use "hello" as arguments
22:28:20 <ehird`> now, lots of stuff goes okay, then we recurse into n=1,s="o"
22:28:30 <ehird`> this goes fine and returns
22:28:34 <ehird`> now, we get into n=4 s="hell"
22:28:46 <pikhq> The pivot is l again.
22:28:59 <pikhq> Thus, we get to n=4, s="hell".
22:29:11 <ehird`> then, it goes through
22:29:14 <ehird`> and recurses n=0 s=""
22:29:19 <ehird`> which returns
22:29:21 <ehird`> !!!! oh my
22:29:23 <EgoBot> Huh?
22:29:32 <ehird`> then we get to... n=4 s="hell\002"
22:29:43 <pikhq> Just n=4 s="hell" over here.
22:29:50 <ehird`> oh. well... ok
22:29:54 <ehird`> maybe it's because i modified my version
22:29:55 <ehird`> heh
22:29:55 <ehird`> ok
22:30:01 <pikhq> Which obviously loops forever.
22:30:06 <ehird`> right, wait
22:30:08 <ehird`> i think i know why
22:30:15 <pikhq> Pivot selection.
22:30:21 <ehird`> well, yeah
22:30:44 <ehird`> i'll try and write a better pivot
22:30:50 -!- oerjan has quit ("Good night").
22:30:54 <ehird`> hmm, but what
22:31:55 <ehird`> how about we just make it choose a random pivot :-)
22:32:09 <pikhq> :)
22:33:32 <pikhq> q (n=3, s=0x7ffff7ac6580 "abc��\177") at quick.c:9
22:33:37 <pikhq> ?!?
22:33:56 <ehird`> yeah i think we have a problem here
22:34:16 <ehird`> hey, how about you ask #c? AHAHAHAHAHAHAHAHAHAHAHAHAHAHAH-ehm.
22:34:28 <ehird`> (also known as the least helpful channel on freenode)
22:34:52 <ehird`> i wonder if poppavic still goes there, he had a really good continuous stream of nonsense generator installed in his brain
22:35:35 <pikhq> How's about p = (rand()%n)[s] instead of p=rand(). :p
22:35:43 <ehird`> ooh, interesting idea ;)
22:35:45 <ehird`> but...
22:35:49 <ehird`> doesn't rand() return, uh, a float?
22:35:50 <ehird`> from 0 to 1
22:35:57 <pikhq> No.
22:36:00 <ehird`> hm, ok
22:36:07 <pikhq> It returns an int from 0 to MAXINT.
22:36:09 <pikhq> Erm.
22:36:11 <pikhq> MAXRAND.
22:36:13 <ehird`> crazy c ;)
22:36:30 <pikhq> There should be a better pivot selection, though.
22:36:38 <ehird`> ehm
22:36:42 <ehird`> this new version with random pivot
22:36:45 <ehird`> sorts acb to acb
22:36:46 <pikhq> Works.
22:36:52 <pikhq> Odd.
22:37:03 <ehird`> test@f6b2c69 ~/cygwin
22:37:03 <pikhq> Maybe you've got other changes?
22:37:03 <ehird`> $ ./a.exe yourmom
22:37:03 <ehird`> mmooryu
22:37:11 <ehird`> also it sorts hello to hello
22:37:19 <pikhq> New version uploaded.
22:37:24 <ehird`> http://www.nonlogic.org/dump/text/1193002622.html mine
22:37:32 <pikhq> It segfaults on hello, though.
22:37:56 <pikhq> Heisenbugging.
22:37:58 <jix> does it sort bytes?
22:38:23 <pikhq> It sorts cbaefgh to, alternately, abcefgh, segfault, and abce�fg.
22:38:38 <ehird`> acb is a heisenbug
22:38:42 <ehird`> i just tried it three times
22:38:45 <ehird`> it sorted to "abc
22:38:48 <ehird`> a blank output
22:38:49 <ehird`> and abc
22:38:57 <pikhq> You need (n>1), not (n>2).
22:39:02 <ehird`> so you're doing things with the pivot wrong
22:39:02 <ehird`> and
22:39:05 <ehird`> i just downloaded your version
22:39:32 <ehird`> anyway
22:39:37 <ehird`> fix what you're doing with the pivot :P
22:39:42 <ehird`> because ANY pivot should work
22:40:13 <pikhq> *Should*, not is. ;)
22:40:39 <ehird`> i'm going to write CRAZYSORT!
22:40:46 <ehird`> which is my crazy sort algorithm which is like a fucked up quicksort
22:40:47 <ehird`> ;)
22:42:16 <pikhq> I've discovered that, somehow, having two elements equal to each other *guarantees* a segfault.
22:42:23 <ehird`> haha
22:43:15 <pikhq> And it's still heisenning.
22:43:23 <g4lt-mordant> you need to have nullity support ;P
22:43:41 <ehird`> haha, g4lt-mordant
22:43:48 <ehird`> it's SUPER-TURING!
22:43:50 <ehird`> ;)
22:44:42 <bsmntbombdood> The Missed Symphony - Classical Mushroom - Infected Mushroom
22:51:44 * pikhq still doesn't see *what* is fucked up here
22:53:48 <ehird`> tee hee my algorithm is really funny
22:54:05 <ehird`> it's basically quicksort, except the pivot is the first element, and i only sort the right list
22:55:20 <ehird`> hmm
22:55:31 <ehird`> http://fabrice.bellard.free.fr/otcc/
22:55:34 <ehird`> inspiring ;)
22:55:38 <ehird`> i might write a compiler like that
22:55:45 <pikhq> *Doh*.
22:55:51 <ehird`> compiles just a small enough subset of c to do basic stuff and compile itself
22:56:00 <pikhq> It may help to have a pivot that's *in the list*.
22:56:09 <ehird`> pikhq: wow, really?
22:56:44 <pikhq> That doesn't explain the infinite recursion of sorting "ab", though.
22:58:05 <pikhq> Sure, it select b as the pivot. . .
22:58:12 <ehird`> hmm, actually a c compiler should actually be TRIVIAL to write...
22:58:16 <ehird`> a simple, old-style one
22:58:26 <ehird`> especially the parsing, you could write a very simple parser by hand
22:59:06 <ehird`> i mean, what does it take to parse: NAME "(" [NAME ","...] ")" VARS BLOCK?
22:59:28 <ehird`> i'd bet the parser for functions would just be a few lines, and only need to call the name, maybe namelist, declarations and the block parser
22:59:37 <ehird`> plus it isn't exactly hard to compile...
22:59:37 <ehird`> hmmmm
23:02:03 -!- GreaseMonkey has joined.
23:02:49 <pikhq> I suspect that my quicksort implementation has something fundamentally wrong.
23:03:22 <ehird`> hmm, otcc, unobfuscated, with all comments and whitespace, is just 632 lines
23:03:26 <ehird`> and it compiles itself
23:03:26 <ehird`> amazing
23:03:41 <pikhq> Otcc, unobfuscated, is what we call "tcc".
23:03:48 <ehird`> no
23:03:50 <ehird`> different codebase
23:03:57 <pikhq> By the same guy. . .
23:04:00 <ehird`> sure
23:04:03 <ehird`> look
23:04:04 <ehird`> http://fabrice.bellard.free.fr/otcc/
23:04:09 <ehird`> he officially provides non-obfuscated versions
23:04:09 <pikhq> And from the same code base. . .
23:04:12 <ehird`> not just a link to tcc
23:04:15 <ehird`> they're different, ok?!
23:04:18 <ehird`> tcc is much expanded
23:04:25 <ehird`> otcc is a lot simpler and only compiles basic code
23:04:28 <pikhq> Although tcc has had many features added since he started on tcc and otcc.
23:04:40 <ehird`> exactly, they're practically seperate now
23:05:08 <ehird`> look at otccn.c
23:05:11 <ehird`> it's way different from tcc
23:05:16 <ehird`> and much easier to read for me
23:05:20 <ehird`> and also very very VERY tiny
23:09:37 <jix> i did a program that sorts the byte of argv[1] in 144 bytes
23:09:41 <jix> *bytes
23:09:46 <ehird`> jix: with quicksort?
23:09:50 <jix> nope ;)
23:10:05 <ehird`> bogosort?
23:10:10 <jix> nope
23:10:15 <ehird`> bubblesort?
23:10:18 <ehird`> mergesort?
23:10:20 <jix> nope
23:10:26 <jix> it runs in linear time
23:10:34 <ehird`> some sort of trick, then? ;)
23:10:39 <ehird`> quantum bogosort?
23:10:42 <jix> nope
23:10:48 <ehird`> oh just tell me
23:10:56 <jix> bucket sort
23:11:08 <jix> the number of different items that can be sorted is finite
23:11:13 <jix> so it can be done in linear time
23:11:23 <jix> and as the number is small it can be done very fast in linear time
23:11:32 <jix> main(c,v)unsigned char**v;{unsigned int q[256],x=0;++v;while(255&++x)x[q]=0;while(**v)++q[*(*v)++];while(255&--x)while(q[x]--)*--*v=x;puts(*v);}
23:14:15 -!- RedDak has quit (Remote closed the connection).
23:16:07 <ehird`> =)
23:16:19 <jix> how it works should be obvious from the source
23:17:26 <jix> uh the ints don't have to be unsigned
23:17:40 <jix> main(c,v)unsigned char**v;{int q[256],x=0;++v;while(255&++x)x[q]=0;while(**v)++q[*(*v)++];while(255&--x)while(q[x]--)*--*v=x;puts(*v);}
23:17:46 <jix> 135 byte
23:22:33 <ehird`> pikhq: how is it doing?
23:22:34 <ehird`> by the way
23:22:37 <ehird`> random pivot idea
23:22:42 <ehird`> sum(list)/length(list)
23:22:50 <ehird`> probably too long to run btu eh
23:22:51 <ehird`> but eh
23:23:24 <pikhq> strcat() is a bad choice for combining the two strings. . .
23:25:00 <bsmntbombdood> orly?
23:25:24 <bsmntbombdood> http://en.wikipedia.org/wiki/Orly_Airport <-- lol
23:29:16 -!- jix has quit ("CommandQ").
23:31:28 <ehird`> Orally Airport.
23:34:07 -!- puzzlet_ has joined.
23:34:07 -!- puzzlet has quit (Remote closed the connection).
23:34:25 <ehird`> someone propose an esoteric and silly sorting algorithm idea so i can implement it :P
23:37:57 <pikhq> Stooge sort.
23:38:02 <ehird`> =
23:38:03 <ehird`> what
23:38:11 <pikhq> Wikipede it.
23:38:27 <ehird`> nice time complexity
23:40:28 <bsmntbombdood> bubble sort is my favorite
23:40:47 <bsmntbombdood> stooge sort is the one by knuth right?
23:40:55 <ehird`> stooge sort is a joke sort
23:41:03 <bsmntbombdood> oh, nope
23:41:05 <ehird`> bubble sort really sucks anyway :P
23:41:24 <bsmntbombdood> the knuth one i'm thinking of has factorial time complexity
23:41:55 <bsmntbombdood> it rearanges the array randomly untill it's sorted
23:41:58 <ehird`> bogosort
23:42:34 <bsmntbombdood> ahh yes
23:45:46 <bsmntbombdood> "Satanic music, jazz, and swing, result from marijuana use."
23:46:19 <ehird`> haha where's that from
23:46:24 <ehird`> (... it is satirical right?)
23:46:46 <bsmntbombdood> nope, not satirical in the least
23:46:50 <bsmntbombdood> http://www.heartbone.com/no_thugs/hja.htm
23:47:15 <bsmntbombdood> direct quote from the commisioner of the burea of narcotics
23:48:40 <ehird`> "...the primary reason to outlaw marijuana is its effect on the degenerate races."
23:48:44 <ehird`> lolololoLOOOOOOOOL
23:48:47 <bsmntbombdood> yeah
23:49:10 <ehird`> he appears to mention nothing about the obviously superior whites using ti :P
23:50:57 <ehird`> however that heartbone.com site is kind of kooky, it has a link on the home page: Theory on the fundamental nature of the physical universe, which links to a page with many animated "UNDER CONSTRUCTION" gifs and the title "HeartBone Physical Universe Theory Page"
23:51:26 <bsmntbombdood> ya lol
23:51:49 <ehird`> "THE PHYSICAL UNIVERSE IS COMPOSED OF 2 PARTS POT AND ONE PART WHOOOAAA DUDE" -- leaked copy of the theory
23:56:09 <ehird`> haha i'm throwing random shuffling code together and calling it a sorting algorithm
23:56:26 <ehird`> my favourite so far is BONOSORT!
23:57:32 -!- sebbu has quit ("@+").
23:57:37 <ehird`> get an output list and an appended list. reverse the list. for every index i in the list, if i is the last element in the list, skip this. otherwise, if the element is greater than the next element of the list and the next index in the list is not in appended, append the next element to the result and append the next index to appended. then: if i is not in appended, append the element to the result
23:57:43 <ehird`> it produces... something that isn't sorted :D
←2007-10-20 2007-10-21 2007-10-22→ ↑2007 ↑all