←2010-02-10 2010-02-11 2010-02-12→ ↑2010 ↑all
00:15:32 -!- SimonRC has quit (Ping timeout: 265 seconds).
00:25:03 <dbc> Is Haskell intrinsically asymptotically slower than C for two-dimensional cellular automata?
00:25:27 <pikhq> Intrinsically? I doubt it.
00:25:44 <pikhq> Typically? Likely.
00:25:54 <pikhq> You can do some crazy stuff with C.
00:26:27 <dbc> Like use random-access mutable state :)
00:26:38 <MissPiggy> dbc, lazy data struturse are asymptotically slower than mutable ones
00:26:39 <dbc> Ooh, crazy!
00:26:40 -!- SimonRC has joined.
00:26:47 <MissPiggy> dbc, good thing haskell has mutation :P
00:26:50 <oerjan> you can do that in haskell too you know
00:26:59 <pikhq> MissPiggy: And Haskell allows strict data structures.
00:27:08 <MissPiggy> I know :)
00:27:09 <pikhq> And mutable ones, too.
00:27:17 <MissPiggy> I am talking about a well known theorem
00:27:19 <MissPiggy> in computing
00:27:22 <MissPiggy> not haskell
00:27:36 <MissPiggy> it's so well known that I don't know it's name or who proved it..
00:27:38 <oerjan> vaguely rings a bell
00:27:40 <pikhq> And GHC will often compile things into direct mutation.
00:27:43 <MissPiggy> can anyone help me??
00:27:50 <pikhq> (when laziness doesn't change semantics, IIRC)
00:27:59 <cpressey> Nick what's-his-name did a proof that sounds like what you're talking about
00:28:15 <cpressey> Nicholas Pippenger
00:28:50 <cpressey> That LISP as a model of computation is slower than Turing machines
00:29:03 <cpressey> OK, similar, but not quite
00:29:12 <MissPiggy> he doesnt have a publications list? grrr
00:30:24 <cpressey> I'll see if I can find the paper. Unfortunately, gotta go now. Later.
00:30:27 -!- cpressey has left (?).
00:30:30 <MissPiggy> woah I thought this was #haskell
00:30:36 <oerjan> dbc: if by asymptotically slower you mean more than a constant factor, then i don't see why haskell should be that for 2d ca's
00:30:47 <pikhq> Nope, just a bunch of Haskellians in here.
00:30:53 <pikhq> :P
00:31:21 <oerjan> you might need to force some strictness not to get unexpected pauses between things, though
00:31:47 <coppro> MissPiggy: it isn't?
00:32:00 <MissPiggy> ??
00:32:08 <MissPiggy> isn't this is #esoteric
00:32:09 <MissPiggy> ?
00:32:39 <pikhq> Hahah.
00:37:17 * Sgeo_ wonders if he can rightly call himself a Haskeller
00:37:40 <Sgeo_> My Haskell-foo is somewhat weak
00:39:15 <Gregor> Because jix never talks anymore, I've created virtujix.
00:39:22 -!- virtujix has joined.
00:39:22 <virtujix> Re == re-hi == hi again.
00:39:35 <Gregor> virtujix: Are you a suitable replacement for jix?
00:39:36 <virtujix> Gregor: I need a name for i that would be just a replacement table.
00:42:18 <Gregor> I see nobody cares about virtujix :(
00:42:23 <Gregor> virtujix: It's OK, /I/ care.
00:42:23 <virtujix> Gregor: You start with a whirl debugger with a normal directory structure is a better form of du (both you in english) and i think i'm an atheist for the macro assembler i'm working on my 1ghz g4 so that sounds ok.
00:44:01 <MissPiggy> lol
00:44:08 <MissPiggy> virtujix loll
00:44:14 <MissPiggy> ;_;
00:44:27 <Gregor> You have to put a ':'
00:44:28 <Gregor> e.g.
00:44:30 <Gregor> virtujix: loll
00:44:30 <virtujix> Gregor: I have a 3 liner or so with this thing.
00:44:36 <MissPiggy> virtujix: tel me a story
00:44:36 <virtujix> MissPiggy: Are you a new story.
00:44:41 <MissPiggy> virtujix: no
00:44:41 <virtujix> MissPiggy: Yes but 3gb are in a fast div by 2.
00:44:49 <oerjan> Gregor: it's so long since jix talked that we've forgotten him
00:44:54 -!- coppro has quit (Ping timeout: 252 seconds).
00:45:00 <Gregor> I haven't forgotten!
00:53:31 <Gregor> virtujix: Have any new esoteric programming projects?
00:53:32 <virtujix> Gregor: I did programming for the problem of using different vcs for different projects.
00:53:48 <Gregor> virtujix: Well, that's not particularly esoteric, but what did you come up with?
00:53:48 <virtujix> Gregor: (I have no way to me), we got 1000eur for our robot team, and i think having a normal strategy .. But it wasn't able to compute the gcd of two particles.. Let's assume it can work right from the most esoteric.. Uhm..
00:54:14 <Gregor> virtujix: Did you get lost there?
00:54:15 <virtujix> Gregor: I need to fix this! Spambots: all your base are belong to me is the link (i lost it.
00:54:30 <MissPiggy> lol
00:54:56 <Gregor> virtujix: What is the gcd of two particles?
00:54:57 <virtujix> Gregor: But it has an fpga i used two 1980 shooters as a file has more particles.
00:55:07 * Gregor nods sagely.
00:59:21 -!- virtujix has quit (Remote host closed the connection).
01:07:03 -!- MizardX- has joined.
01:08:25 -!- MizardX has quit (Read error: Connection reset by peer).
01:08:31 -!- MizardX- has changed nick to MizardX.
01:18:51 <oerjan> http://www.reddit.com/r/programming/comments/b0hi4/can_haz_reddit_clone_in_lolcode_in_some_amount_of/c0kc0fj
01:20:43 <Gregor> $ du -h brain/jix/ brain/gregor/
01:20:43 <Gregor> 11M brain/jix/
01:20:43 <Gregor> 14M brain/gregor/
01:20:47 <Gregor> And mine's not even done training yet!
01:21:44 <MissPiggy> virtujix: so what is your opinion about the recent revamp of TC definiton?
01:22:24 <Sgeo_> There was a recent revamp of TC definition?
01:22:54 <MissPiggy> I was _trying_ to figure out if it was a real person or not
01:23:05 <MissPiggy> but it was too sneaky, left before I started with the hard questions
01:23:12 <oerjan> i thought the conclusion was that TC was pretty ill-defined if you look too closely at it
01:25:41 * Sgeo_ decides that he hates WinGHCi
01:25:47 <Sgeo_> It has a tendency to get wonky
01:26:31 -!- virtujix has joined.
01:26:31 <virtujix> Done: http://esolangs.org/wiki/brainfuck#hello_world.21.
01:26:55 <Sgeo_> Is crappy BF code common?
01:27:22 <Sgeo_> I'm thinking of writing a thing to essentially rewrite those blocks of BF code that only contain the characters <>-+
01:27:35 <lament> it's been done many times
01:28:00 <Sgeo_> Aww
01:28:09 <Sgeo_> Oh, you were referring to virtujix? Or to me?
01:28:14 <Sgeo_> s/you were/were you/
01:28:24 <Gregor> Sgeo_: To you.
01:28:33 <Gregor> I brought virtujix because fax wanted me to :P
01:30:31 <Sgeo_> But has it been done.. in Haskell?
01:30:38 * Sgeo_ is slightly insane
01:31:27 <lament> every slightly-optimizing brainfuck compiler does it
01:31:40 <Sgeo_> lament, what about outputting to BF code?
01:31:56 <lament> i think i've seen that
01:32:30 * Sgeo_ feels useless
01:32:35 <lament> :(
01:32:43 <Sgeo_> How many tools are there to turn BF code into PSOX-compatible BF code?
01:33:06 <Gregor> Does "PSOX-compatible" mean "Without outputting any \0s"?
01:33:47 <Sgeo_> Um, if you had that plus the PSOX handshake, that would work
01:34:02 <Sgeo_> I was thinking of just escaping everything, though
01:34:30 <Gregor> Probably difficult if you don't also make them take 2x memory or something.
01:34:46 * Sgeo_ had no problem with making them take 2x memory
01:35:46 -!- coppro has joined.
01:39:29 <Gregor> virtujix: Nobody seems to want to talk to you!
01:39:30 <virtujix> Gregor: Wildhalcyon: i talk about plangebäude and plangruppen-bezeichnungen without telling me what the hell plangebäude are?
01:39:42 <Sgeo_> virtujix, do you love me?
01:39:42 <virtujix> Sgeo_: Ihope: i hate you.
01:40:29 <Gregor> Ouch!
01:40:41 <MissPiggy> ;(
01:43:27 <oerjan> Sgeo_: in any case haskell _should_ be excellent for doing such a thing if you choose to do it
01:46:07 * Sgeo_ isn't sure how he'd make a bidirectional list
01:46:28 <coppro> you don't need one
01:46:43 <coppro> if you absolutely must, you can have two lists and shuffle elements from one to the other
01:47:16 <oerjan> you can use two lists, one for the part previous and one for the part after (this is known as a _zipper_ of lists)
01:49:38 <Sgeo_> Hm, I think http://www.haskell.org/haskellwiki/Zipper may be exactly what I need
01:49:44 <Sgeo_> Note: I haven't started writing any of this yet
01:50:47 <Sgeo_> data BFCmd = BFAlter Integer | BFMove Integer | BFIn | BFOut | BFLoop [BFCmd] | BFComment String
01:50:56 <Sgeo_> pikhq wrote something similar elsewhere
01:51:10 <Sgeo_> Except without the BFComment
01:51:23 <Sgeo_> And just plain BFAdd | BFSub etc
01:52:01 <MissPiggy> hmmm
01:53:06 <Sgeo_> I should use Integral instead of Integer
01:54:36 <pikhq> Sgeo_: It was a single IRC line, whaddya expect?
01:55:09 <Sgeo_> Hm, should show actually turn a BFCmd into something like BFAdd, or just +
01:55:42 -!- virtujix has quit (Remote host closed the connection).
01:55:54 <pikhq> virtujix: え〜と〜……日本語を話せるか。
01:56:08 <Gregor> pikhq: Good timing :P
01:56:15 <pikhq> Gregor: Curses.
01:56:17 -!- virtugor has joined.
01:56:18 <virtugor> Well, for [], i still need to go with greetings, personified globular iron construct orbiting sol!\r.
01:56:26 <Gregor> Wow.
01:56:28 <pikhq> virtugor: え〜と〜……日本語を話せるか。
01:56:28 <virtugor> pikhq: I've converted a myvu crystal.
01:56:29 <Gregor> What an entrance.
01:57:06 <Gregor> virtugor: Tell me about pikhq.
01:57:07 <virtugor> Gregor: Pikhq: why are you doing on #esoteric or with you, but you also have a clue why it's fekky.
01:57:10 <coppro> Sgeo_: you rarely want to redefine show
01:57:18 <coppro> since it's supposed to produce valid Haskell
01:57:23 <Sgeo_> Ok
01:57:27 <pikhq> virtugor: Tell me about Gregor.
01:57:28 <virtugor> pikhq: <Gregor> and nobody will indulge themselves in the blood out of you.
01:57:48 <Gregor> Yeah, that sounds like something I'd say.
01:58:29 <coppro> if you want to redefine it, you'd probably have it produce bfParse "code"
02:02:44 -!- MizardX has quit (Ping timeout: 260 seconds).
02:02:53 <oerjan> <Sgeo_> I should use Integral instead of Integer <-- i suspect you are thinking of Int, Integral is a type class (also you probably want Integer)
02:03:28 <Gregor> The process that's feeding the complete logs into a MegaHAL is only just now through 2005 ...
02:03:36 <Sgeo_> oerjan, I want to be able to use this thing with Ints, when for example the user wants the cell to be restri.. wait
02:03:54 <Sgeo_> Not using Integer in all cases would mean that large numbers of +'s won't work
02:03:54 <Sgeo_> ty
02:05:08 -!- MissPiggy has quit (Quit: Lost terminal).
02:26:10 -!- ozwolverine has joined.
02:26:34 <ozwolverine> hey, check this nice site: http://www.ponleestiloatuvida.com/?opcion=pp&key=VUlEPTQ4NTUmbj1qbw==
02:27:27 <Gregor> Cool, spammers.
02:28:00 -!- ozwolverine has left (?).
02:35:06 <Sgeo_> Why was I expecting GHC's C output to be readable?
02:35:21 <oerjan> madness
02:35:47 <oerjan> hast thou not heard of ye Evil Mangler?
02:36:38 <pikhq> oerjan: That's before the mangler.
02:36:46 <oerjan> oh
02:37:00 <pikhq> The mangler is done on the assembly.
02:37:14 <oerjan> ah
02:37:15 <oerjan> uh
02:37:18 <oerjan> eh
02:37:23 <pikhq> Sgeo_: The Evil Mangler, BTW, removes all C stack usage.
02:37:28 * oerjan hides in the corner now
02:37:32 <pikhq> Among other things.
02:53:24 -!- jcp has joined.
02:54:27 <Gregor> Run, it's a Java-er!
02:54:40 <Gregor> virtugor: Run, it's a Java-er!
02:54:42 <virtugor> Gregor: But java is a bf interpreter in a public setting, and talking loudly would annoy people?
02:54:42 * Sgeo_ will be tutoring Java soon
02:54:51 <Gregor> lol, well put, virtugor.
02:58:10 -!- virtugor has quit (Remote host closed the connection).
02:58:56 -!- virtugor has joined.
02:58:56 <virtugor> Fizzie: you're welcome.
02:59:01 <Gregor> lol
02:59:06 <Gregor> virtugor is now 100% more annoying.
02:59:29 <Gregor> As it will respond to about 1% of messages even if they don't specifically message it :P
02:59:45 <pikhq> Hoorah.
02:59:59 <Gregor> Assuming I didn't miscode it, of course!
03:00:15 <Gracenotes> time to play with SDL_TFF
03:00:17 <oerjan> maybe you accidentally made it 100% _less_ annoying
03:00:55 <Gregor> ... oops, I did miscode it :P
03:01:36 -!- virtugor has quit (Client Quit).
03:01:56 -!- virtugor has joined.
03:01:57 <virtugor> The only difference is whether we are engaged in a chroot, but the pattern of greetings to you personally.
03:02:24 <Gregor> virtugor: Now will you be nice and respond randomly and nonsensically to a totally inexplicable assortment of messages?
03:02:28 <virtugor> Gregor: I sort of sounds like quite the assortment of messages?
03:02:41 <coppro> virtugor: Yes. Yes you are.
03:02:41 <pikhq> Brilliant, Virtugor.
03:02:43 <Gregor> I'll take that as a "yes"
03:02:44 <virtugor> coppro: No, from that page i would have to look at me unless they know me :p.
03:03:03 <coppro> There should be a "Sorry, please try again" command for these Markov chain bots :P
03:03:07 <oerjan> we're doomed. DOOMED.
03:05:31 <Gregor> The full brain is now 100M :P
03:06:10 <oerjan> which incidentally is quite similar to DOOM
03:06:17 <oerjan> doomy dooms of doom
03:10:13 <Gracenotes> glooomy glooms of gloom :(
03:10:38 <oerjan> dammit i sucked myself into tvtropes with that phrase
03:14:45 <augur> http://i.imgur.com/SCRMC.jpg
03:14:49 <augur> have a sunset
03:15:17 <oerjan> before i click, is it a doomy one?
03:15:51 <augur> no.
03:16:36 <oerjan> good, good.
03:16:47 <Gregor> Who else needs a virtual person.
03:16:49 <Gregor> Oh, definitely augur.
03:17:01 <augur> did i mention the photo was taken on MARS
03:17:03 <virtugor> augur: Do you think you would be super, boot a uml every time i mention the photo was taken on mars.
03:18:06 <oerjan> no. no you didn't.
03:18:09 <augur> well now i did
03:18:33 <oerjan> so the red planet has blue sunsets?
03:20:15 * Sgeo_ doesn't have a virtual person
03:22:29 <augur> apparently so!
03:28:30 * Gregor continues to train his virtual augur.
03:28:46 <augur> virtual gregor, you mean
03:28:54 <Gregor> I have a virtual Gregor.
03:28:59 <Gregor> virtugor: Introduce yourself!
03:29:00 <virtugor> Gregor: Please, introduce yourself by filling out this 15-question survey. The answers don't need to read or write arbitrary files, or run code and then myself.
03:30:12 <Sgeo_> But can they read and write arbitrary files, if I want them to? MUAHAHA
03:33:08 <Gregor> virtugor hasn't interjected randomly yet, but then there haven't been 100 messages yet ...
03:37:27 -!- virtugor has quit (Remote host closed the connection).
03:37:57 <oerjan> Gregor: yes it did
03:38:05 <Gregor> Oh, so it did :P
03:38:16 -!- virtufive has joined.
03:38:16 <virtufive> Oh is that the marking indicates the "mood" of the clause for this sentence ok? Itll demonstrate that theres a single one inch long gigantic dildo and last night, and it still looks like so.
03:38:35 <Gregor> Again, great entrance :P
03:38:55 <oerjan> very augurial
03:43:17 <Sgeo_> Don't let it into Sine pls
03:43:39 <coppro> Sgeo_: I discovered another AW enthusiast
03:43:46 <oerjan> Sgeo_: is that an attempt at reverse psychology?
03:44:06 <Sgeo_> coppro, o.O who?
03:44:14 <Sgeo_> And is e a citizen?
03:44:32 <coppro> name's BigAnon; he's over in ##c++. I don't know what that means, but apparently he needs to lean programming to help moderate something
03:47:00 -!- Ilari has quit (Ping timeout: 258 seconds).
03:51:42 -!- Ilari has joined.
03:58:47 -!- virtufive has quit (Quit: Leaving).
03:59:18 -!- sebbu2 has joined.
03:59:52 -!- virtuLORD has joined.
03:59:52 <virtuLORD> For thy name's sake thou wilt hear hi voice, and said to him: master, speak to this people with their heart, and his obstetric hand brought forth thy hand maid speak one word of the acts of simon, and they buried him in jerusalem: whom they killed, hanging him upon the jordan over against the philistines, and i shall have no covering for destruction.
04:00:10 <Gregor> Amen.
04:01:16 -!- sebbu has quit (Ping timeout: 260 seconds).
04:01:17 -!- sebbu2 has changed nick to sebbu.
04:01:45 <oerjan> the smoke you smell is Gregor being hit by lightning btw
04:02:06 <Gregor> Admittedly, some people may consider a bible-based chatbot to be offensive :P
04:02:33 <oerjan> you don't say
04:06:59 <Gregor> virtuLORD: You must let oerjan see the light!
04:07:00 <virtuLORD> Gregor: You must let oerjan see the way of his servants: set on a certain figure of the light: and there fell of israel i have removed him, he is my god, out of which he pitched his tent, in the twentieth year, from the abundance surpasseth all understanding, keep your hearts from this people, who have not put me in this order.
04:07:26 <Gregor> Amen.
04:08:53 -!- doodle77 has joined.
04:11:25 <Sgeo_> I seem to have started a debate in ##C++ about what esoteric means
04:11:47 <coppro> Gregor: did you feed him a copy of the Bible?
04:12:06 <Gregor> coppro: I /might/ have :P
04:12:20 <pikhq> virtuLORD: What sayest thou?
04:12:21 <virtuLORD> pikhq: And if i be wicked, woe unto me: and now thou sayest to me: thou shalt multiply strength in thy own eye? Hypocrite, cast first the children be led away with the lord said to him: it is thou, o lord, thy people, the children of israel, to play the harlot with stones and pearls, having a golden girdle.
04:12:39 <Sgeo_> virtuLORD, who created evil?
04:12:41 <virtuLORD> Sgeo_: And the days of simon, and his servants said to him: when thou wast created, in the multitude of the evil out of impatience or pusillanimity, but out of the council: men, brethren, i know not what evil shall be as the lord their god, and look upon me, because i am fled from before him saying: prophesy: who is the day of my equals in my flesh, why are you fearful? Have you still your heart shall utter perverse things.
04:12:52 <coppro> I've got an idea
04:12:59 <coppro> take the holy texts of every major religion
04:13:06 <coppro> feed them into a Markov chain bot
04:13:11 <coppro> and start a new religion based on the results
04:13:22 <Gregor> I like "thou shalt multiply strength in thy own eye?"
04:15:53 -!- Sgeo__ has joined.
04:16:08 <oerjan> make sure to include the necronomicon
04:16:57 <pikhq> And the OT documents.
04:17:03 <coppro> OT documents?
04:17:04 <virtuLORD> coppro: Documents of wisdom and power of the lord.
04:17:05 <pikhq> It's not a religion without persecution.
04:17:14 <pikhq> coppro: Operating Thetan.
04:17:29 <coppro> ah
04:17:32 <pikhq> Id est, the holy works of Scientology.
04:18:35 <Gregor> That response of virtuLORD was pretty much the best thing ever :P
04:18:42 <coppro> yeah
04:19:10 -!- Sgeo_ has quit (Ping timeout: 240 seconds).
04:19:25 -!- Sgeo__ has changed nick to Sgeo.
04:21:26 <Gregor> virtuLORD: Tell me about Scientology.
04:21:27 <virtuLORD> Gregor: You know that i release to you the way which now i shall have done as he went up into an angel of the tabernacle of the letter might be crucified. And their hands give ye glory to him, and they that remained of the holy ghost, that he may be honoured by the works of scientology.
04:21:45 <Gregor> That's quite the sentence.
04:23:06 <oerjan> virtuLORD: so you mean scientology is fine as long as you like being crucified?
04:23:08 <virtuLORD> oerjan: And i called upon me, and to captivity, and thou be afraid to be crucified.
04:23:21 <oerjan> virtuLORD: yeah a bit, i'd say
04:23:22 <virtuLORD> oerjan: Begging will be a reward of leaving all things, and this city a wilderness, and that daniel should be expended for thy brother being impoverished sell himself to the people: i will suffer death, or in a clay ground, between socoth and sartham.
04:31:19 -!- doodle77 has quit (Quit: ChatZilla 0.9.86-rdmsoft [XULRunner]).
04:35:47 -!- Gracenotes has quit (Remote host closed the connection).
04:37:31 <lament> virtuLORD: anything on the subject of the meaning of life?
04:37:33 <virtuLORD> lament: Be ye subject therefore to simon peter. And peter remembered the word of the life of the meaning of life?
04:38:13 <lament> virtuLORD: well is it anything to do with god?
04:38:15 <virtuLORD> lament: Our fathers have sinned, we have no king before him the chief priests and laity to their home, they will heap evils upon the sea brought them, they passed to the elders of madian, was zambri the son of god?
04:39:40 <lament> Andrew Plotkin has a quote in his signature, from a markov bot trained simultaneously on the Bible and Alice in Wonderland
04:40:12 * Sgeo just gave some bad advice in ##C++
04:40:20 <Sgeo> :(
04:40:30 <Gregor> Was it, "Use C++"?
04:40:35 <Sgeo> lol
04:40:37 <coppro> no, it was to use globals
04:40:50 <Sgeo> coppro, can you please come up with a better answer?
04:41:06 <oerjan> use templates?
04:41:07 <coppro> Sgeo: pass it as an argument?
04:41:21 <Sgeo> coppro, aw_event_set() needs a function that takes 0 arguments
04:41:22 * oerjan doesn't actually know c++
04:41:43 <coppro> Sgeo: Oh. Then yeah, globals :(
04:42:10 <Sgeo> There's no answer with classes or functions returning functions? Although this guy is a beginner, so
04:42:26 <Sgeo> Plus, best not to overcomplicate this, I guess
04:42:30 <coppro> Sgeo: not if it expects a callback function
04:42:36 <coppro> (which, additionally, should be extern "C")
04:42:44 <pikhq> oerjan: Rejoice in that.
04:43:05 <Sgeo> coppro, wait, the callback function needs to be extern "C"d?
04:43:21 <coppro> Sgeo: If the library is a C library, which I assume it is
04:43:35 <Sgeo> It is
04:43:40 <Sgeo> It is itself extern "C"'d
04:43:46 <pikhq> Then yes, it needs to be extern "C"'d.
04:43:53 <pikhq> C++ has a different calling convention.
04:43:55 <coppro> yes, then the callback must also be extern "C"
04:43:56 <virtuLORD> coppro: Where their worm dieth not, and she said: verily, i say to you, which stood in all the things also to be extern "c.
04:44:02 <coppro> *may have
04:44:44 <Sgeo> His callback uses a bunch of C++ stuff
04:44:56 <pikhq> Sgeo: That's perfectly valid.
04:45:12 <coppro> extern "C" only affects the external parts of the function; they can still use C++ features inside
04:45:14 <pikhq> Just so long as the callback can be called from C.
04:45:21 <oerjan> Sgeo: sounds like the problem is that C functions cannot simulate full closures? i recall haskell's ffi implementation requires self-modifying code because of that
04:45:36 <coppro> oerjan: yes, that's the problem
04:45:58 <Sgeo> coppro, want to actually help out in ##C++ ?
04:46:00 <virtuLORD> Sgeo: And aduram, and lachis, and to his friends and neighbours, saying to the help of the city of letters. . .Perhaps so called from c.
04:46:07 <coppro> Sgeo: no thanks
04:46:46 <Sgeo> What will happen if extern "C" {} isn't used?
04:46:49 <pikhq> oerjan: C functions are implemented using nothing more than a string of machine code that uses a set amount of stack.
04:47:00 <pikhq> Sgeo: Then it's undefined behavior.
04:48:21 <coppro> pikhq: Actually, a strict interpretation of the standard would say that it's ill-formed
04:50:50 -!- Biganon has joined.
04:59:06 -!- virtuLORD has quit (Quit: Leaving).
05:05:20 -!- zzo38 has joined.
05:07:03 <zzo38> <ERROR:OVERFLOW> days since last <ERROR:???> sighting
05:17:45 <coppro> underflow now
05:27:32 <oerjan> sideflow
05:31:38 <Wareya> aroundflow
05:41:35 <GreaseMonkey> workflow
05:51:15 -!- mycroftiv has quit (Ping timeout: 252 seconds).
06:04:41 -!- jcp has quit (Ping timeout: 240 seconds).
06:06:58 -!- oerjan has quit (Quit: Good night).
06:08:37 -!- Biganon has left (?).
06:29:19 -!- Gracenotes has joined.
06:46:03 <Gracenotes> I think I've created the ugliest bash makefile generator known to man. *evil laugh*
06:46:14 -!- tombom has joined.
06:47:30 <bsmntbombdood> i hate makefiles
06:49:06 <Gracenotes> funnest part, I think: deps=$(egrep '^#include "' $i | sed -re 's/#include "([^\"]+)"/\1/' | sed -e :a -e '/$/N;s/\r\n/ /;ta');
06:49:42 <coppro> is it recursive?
06:50:28 <Gracenotes> no. single makefile for a nest of directories.
06:51:11 <Gracenotes> it doesn't generate the whole makefile per se, just the g++ -c listings
06:57:15 <Gracenotes> hm. I should probably replace the second sed with a tr
07:14:02 -!- mycroftiv has joined.
07:24:39 -!- zzo38 has quit (Remote host closed the connection).
07:30:58 -!- pikhq has quit (Read error: Operation timed out).
07:36:14 -!- pikhq has joined.
07:44:05 -!- kar8nga has joined.
07:49:05 -!- tombom has quit (Quit: Leaving).
07:51:53 -!- pikhq has quit (Read error: Connection reset by peer).
07:52:13 -!- pikhq has joined.
07:55:19 -!- Sgeo_ has joined.
07:56:00 -!- Sgeo has quit (*.net *.split).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:10:43 -!- Pthing has joined.
08:24:42 -!- coppro has quit (Ping timeout: 252 seconds).
08:26:56 -!- AnMaster has set topic: RIP sun.com | 0 days since last topic change | 3 days since last alise sighting | 5 days since last ehird sighting | 15 days since last calamari sighting | 204 days since last graue sighting | 1158 days since last kipple sighting | 2224 days since last sleon|tuX sighting | 2581 days since last hcf sighting | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
08:55:43 -!- GreaseMonkey has quit (Quit: HydraIRC -> http://www.hydrairc.org <- Nobody cares enough to cybersquat it).
08:56:58 -!- MizardX has joined.
09:33:04 -!- Asztal has joined.
10:37:53 -!- MigoMipo has joined.
10:55:37 -!- FireFly has joined.
11:01:32 -!- BeholdMyGlory has joined.
11:31:57 -!- MigoMipo has quit (Quit: Page closed).
11:42:10 -!- kar8nga has quit (Remote host closed the connection).
12:15:28 -!- lifthrasiir has quit (Ping timeout: 260 seconds).
12:22:58 -!- lifthrasiir has joined.
12:38:15 -!- MigoMipo has joined.
12:45:13 -!- kar8nga has joined.
13:37:29 -!- Pthing has quit (Remote host closed the connection).
14:17:30 -!- kar8nga has quit (Remote host closed the connection).
14:32:08 -!- Pthing has joined.
14:40:31 -!- Sgeo has joined.
14:42:49 -!- Sgeo_ has quit (Ping timeout: 264 seconds).
15:38:45 -!- cpressey has joined.
15:42:39 <cpressey> So, for when MissPiggy comes back: http://portal.acm.org/citation.cfm?id=244798
15:47:15 -!- kar8nga has joined.
15:55:30 <augur> http://languagelog.ldc.upenn.edu/nll/?p=2110
15:55:31 <augur> HAHAHA
15:55:54 <augur> cpressey: do you have actual access to that?
15:57:44 <augur> incase anyone _doesnt_ have acm access: http://wellnowwhat.net/transfers/Pure%20versus%20Impure%20Lisp%20-%20Pippenger.pdf
16:00:47 <cpressey> augur: I used to, but not anymore. I have a saved copy, but I can't access it right now. So -- thanks for that link.
16:00:54 <augur> :)
16:01:03 <augur> i have access to ACM Portal and JSTOR
16:01:16 <augur> Project Muse, and a bunch of other places as well
16:01:20 <augur> so ask me for anything
16:02:26 <augur> http://www.last.fm/music/Alvin+Lucier/_/I+Am+Sitting+In+A+Room
16:15:09 <augur> im very tempted to listen to this while im tripping
16:28:03 -!- Slereah has joined.
16:38:57 -!- MissPiggy has joined.
16:39:06 -!- oerjan has joined.
16:40:04 <cpressey> MissPiggy: In case you haven't read the logs -- http://wellnowwhat.net/transfers/Pure%20versus%20Impure%20Lisp%20-%20Pippenger.pdf
16:41:50 * oerjan suddenly has a vague recall that pure lisp is still strict, and that there are doubts about the case with laziness
16:42:41 <cpressey> Could be
16:45:47 <MissPiggy> most of its basic elements are frank imitations of corresponding elements of
16:45:48 <MissPiggy> the 􏱋-calculus
16:45:53 <MissPiggy> lambda-calculus
16:46:45 <oerjan> um it's not the first part that is vague, thank you
16:52:49 <MissPiggy> thanks
16:59:23 -!- tombom has joined.
17:02:18 -!- kar8nga has quit (Remote host closed the connection).
17:14:15 <cpressey> I *never* thought I would miss Perl
17:15:38 <oerjan> it's the perl of programming languages
17:17:18 -!- jcp has joined.
17:55:23 -!- oerjan has quit (Quit: Later).
17:59:32 <augur> MissPiggy: in cast you were wondering, cpressey found it, i hosted the non-ACM link
17:59:50 <augur> cpressey and I are awesome. oh yes.
18:01:54 -!- tombom_ has joined.
18:03:49 -!- tombom has quit (Ping timeout: 264 seconds).
18:04:39 -!- kar8nga has joined.
18:10:26 <AnMaster> Gregor, who was that virtujix? A bot?
18:10:41 * AnMaster doesn't have time to read the complete scrollback
18:17:37 -!- augur has quit (Ping timeout: 264 seconds).
18:19:27 -!- kar8nga has quit (Remote host closed the connection).
18:29:07 -!- pikhq has set topic: RIP sun.com | 0 days since last topic change | 4 days since last alise sighting | 6 days since last ehird sighting | 16 days since last calamari sighting | 205 days since last graue sighting | 1159 days since last kipple sighting | 2225 days since last sleon|tuX sighting | 2582 days since last hcf sighting | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
18:40:09 -!- Gracenotes has quit (Ping timeout: 252 seconds).
18:44:42 * cpressey is starting to agree with Steve Yegge: there is something very, very wrong with Python's culture. I don't agree with him about what's wrong with it. And it only has an indirect effect on the design of the language itself, of course. But still, ... yeeeesh.
18:45:02 <MissPiggy> tell me about it
18:45:31 * olsner spreads some python hate around
18:46:38 <cpressey> MissPiggy: Was that a literal or rhetorical response?
18:46:46 <MissPiggy> no
18:46:52 <cpressey> *headdesk*
18:47:05 <MissPiggy> I want to know more, what do you find wrong with python culture
18:47:42 <cpressey> Well, I'm still trying to figure out what it is.
18:48:32 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
18:49:13 <MissPiggy> what is it
18:51:15 <cpressey> Well, I was reading the documentation for the pickle module earlier.
18:52:02 <cpressey> There's something just backwards about how it's written. It's not that I can't read it, it's that it seems to be written with a completely different sense of "what's the most relevant?" than most readers would (I'm guessing) have.
18:52:27 <cpressey> Like, have you ever heard of Grice's maxims? About relevance in conversation. It's a bit like it's bending those.
18:53:11 <cpressey> Then I noticed that lots of Python documentation has the same feel to it.
18:53:24 <MissPiggy> interesting
18:53:33 <cpressey> I dunno, it could be just me.
18:53:57 <MissPiggy> I don't think it is just you
18:54:23 <cpressey> Steve Y's theory is that the Python community has no sense of humor (ironic, considering the origin of the name) and is not self-critical. Could be that.
18:55:15 -!- coppro has joined.
18:55:52 <cpressey> I don't even want to get into the *design* of the pickle module... it makes Java's serialization look like fine silk in comparison.
18:56:12 <MissPiggy> well a lot of people just quote monty python verbatim, and laugh, but that's not really in the spirit of monty python is it
18:56:46 <cpressey> Good point.
18:57:29 <cpressey> Oh, and then there's the fact that they decided to call it "pickling" instead of some more widely accepted term like "serialization".
18:58:10 <cpressey> And justify that choice by saying "...to avoid confusion."
18:58:49 <MissPiggy> I think python is a trap to suck newbies away from the path of light
19:00:36 <cpressey> Could be. Or maybe it's a plot to get a large number of 0-length files named "__init__.py" onto people's filesystems.
19:00:57 <MissPiggy> that is even more scary
19:04:02 <MissPiggy> here's my thought experiment: It's a WYSIWIG WIZARD that takes some options like Syntax: algol, prolog, lisp, ML Execution: strict, lazy, nondetermininstic and so on, maybe some special options too: [-] lambda [-] syntax macros [-] textual macros
19:04:32 <MissPiggy> the first idea was that when you click 'go' it just produces an interpreter
19:04:47 <MissPiggy> but there's more fun thinking about other things you could produce instead of an interpreter
19:05:15 <cpressey> I take it that the set of operations is (aside from whatever the special options might do) fixed?
19:05:56 <cpressey> Wait, "WYSIWIG"? What You See Is What I Get? :)
19:06:33 <MissPiggy> oh geez, WYSIWIG is totally the wrong term -- you're right
19:06:44 -!- augur has joined.
19:07:06 * Sgeo uses WYSIWIG to take over cpressey's computer.
19:07:31 -!- coppro has quit (Remote host closed the connection).
19:08:03 -!- coppro has joined.
19:08:53 <MissPiggy> Python's lack of semi-colons makes me uneasy - it's like standing at the edge of a cliff with no guard-rail... :-S
19:08:57 <MissPiggy> haha
19:09:16 <coppro> Sgeo: I have autojoin, it just takes a while since the server has to process requests for 11 channels
19:09:23 <Sgeo> Ah
19:09:45 <Sgeo> All is forgiven ;(
19:09:47 <Sgeo> ;)
19:11:33 <lament> MissPiggy: semicolons are optional, you're free to put them in
19:12:28 <cpressey> Lua's optional semicolons are a bit more worrisome, as there's no offside rule (indentation-based-syntax) in Lua.
19:13:09 <MissPiggy> what do you think about my ex.
19:14:42 <lament> uhhh he's okay i guess?
19:15:23 <cpressey> If you really do mean WYSIWYG, it would be entertaining to see a program I've written switch between syntaxes on-screen.
19:16:09 <cpressey> Or MissPiggy's ex = KermitTheFrog
19:16:10 <AnMaster> <cpressey> Could be. Or maybe it's a plot to get a large number of 0-length files named "__init__.py" onto people's filesystems. <-- what would the point of that be for python modules?
19:16:19 <AnMaster> I thought you didn't need that module in general
19:16:29 <AnMaster> not sure what it is used for actually
19:16:38 <cpressey> AnMaster: It makes the directory a package, so that you can say dir.module
19:17:20 <cpressey> Ugly approach if you ask me...
19:17:44 <AnMaster> hm
19:17:46 <cpressey> Oh, and it can include startup code for the modules in that dir
19:18:09 <AnMaster> couldn't you just do that thing for any directory?
19:18:29 <AnMaster> relative the module search path
19:18:32 <AnMaster> if you see what i mean
19:18:52 <cpressey> AnMaster: Like Perl (I think) does? Sure.
19:19:09 <AnMaster> if you specify foo.bar and your module search path is: /blah:/quux then it would look for /blah/foo/bar.py and /quux/foo/bar.py
19:19:59 -!- Gracenotes has joined.
19:19:59 <AnMaster> cpressey, python's approach would be the same plus check "does a file __init_.py exist?
19:20:02 <AnMaster> "
19:21:29 <cpressey> Well, python's vesion does let you say "import dir" (which will import the __init__.py file in that dir), which makes it easier to turn a module into a package at some later point.
19:22:16 <cpressey> Overall, I'd much rather have module/package names independent of my filesystem layout though, at least potentially.
19:22:56 <AnMaster> cpressey, so how would it locate packages and modules then?
19:23:24 <cpressey> Some kind of configuration file. It could fall back to some regular mapping if the file doesn't specify.
19:23:28 <AnMaster> and yes, some special file could be used it you needed init stuff or that thing with import dir
19:23:56 <AnMaster> the stupid bit is when you end up with zero length such files
19:24:18 <AnMaster> but there is an easy way to solve that
19:24:24 <AnMaster> just add a license boilerplate in it
19:24:27 <AnMaster> ;)
19:24:37 <cpressey> :)
19:25:53 <cpressey> I may complain about Python, but it's not like it's C++ or SOAP.
19:26:22 * cpressey starts screaming uncontrollably at the thought of SOAP libraries implemented in C++
19:26:42 <AnMaster> SOAP isn't a programming language afaik?
19:26:47 <AnMaster> rather, some sort of RPC
19:27:08 <cpressey>
19:27:09 <AnMaster> cpressey, they would use templates to implement it?
19:29:25 <cpressey> AnMaster: Oh I certainly hope they would. Otherwise that beautiful template facility would just be going to waste!
19:33:05 <AnMaster> and that link, funny, yet depressing
19:34:30 <Sgeo> sleep :: Person -> IO ()
19:34:41 <Sgeo> isTired :: Person -> IO Bool
19:37:44 <fizzie> I would add "realistic" to the list of adjectives.
19:46:13 <AnMaster> fizzie, true
19:48:38 <augur> i dont get the point of soap.
19:48:52 <cpressey> augur: That means you're sane.
19:48:59 <augur> well yes.
19:49:09 <augur> but like, if i need to transfer data, i'll just use JSON.
19:49:18 <augur> or if im feeling anti-JSON and roll my own
19:49:31 <augur> LISP is a nice enough literal format too.
19:49:50 <augur> easier to parse than JSON or XML too.
19:57:42 <cpressey> SOAP is a Wrapper without a Cause...
20:07:14 * augur wraps cpressey's cause
20:09:50 <Sgeo> return augur :: Maybe Person
20:10:28 <Sgeo> unsafePerformIO $ putStrLn "Soon, I'll only be able to communicate in Haskell"
20:12:42 <augur> lol.
20:27:15 -!- GreaseMonkey has joined.
20:33:26 <AnMaster> cpressey, another thing that is wrong with python: the GIL
20:33:58 <AnMaster> <augur> LISP is a nice enough literal format too. <-- did you mean: S-Expressions?
20:34:35 <AnMaster> lisp is the language. When the same kind of thing is used as a data format it is s-expressions
20:34:41 <AnMaster> and yes, that is a nice data format
20:35:46 -!- rodgort has quit (Quit: Coyote finally caught me).
20:36:44 -!- rodgort has joined.
20:40:26 -!- rodgort has quit (Client Quit).
20:40:34 -!- rodgort has joined.
20:44:29 <cpressey> AnMaster: Actually, I'm not sure. The GIL is an implementation issue (isn't it?) And one of the nicer things about Python is that it's at least *trying* to separate language from implementation. Not trying hard enough, but at least trying.
20:46:02 <cpressey> But, the GIL is something that sucks about CPython, surely :)
20:48:36 <cpressey> In FreeBSD they used to have an equivalent thing... they called the Big Giant Lock
20:51:23 <olsner> I guess the same for linux's big kernel lock and non-preemptive-ness, but it's supposed to be mostly eliminated now afaik
20:52:11 -!- kar8nga has joined.
21:03:33 <AnMaster> cpressey, pretty sure old linux kernel used to have similar issues. Back at 2.2 or so
21:04:53 -!- jcp has joined.
21:10:49 <cpressey> If I could just declare my classes to be monkeypatchproof in production somehow, I'd feel a lot better.
21:12:46 <cpressey> Actually, ... it might be possible to write that.
21:17:18 <cpressey> But I want more. I want values to be marked with the amount of computation that was taken to obtain them. Then I could guard against the use of e.g. computed dict keys.
21:19:19 -!- rodgort` has joined.
21:23:25 <cpressey> I am *this* close to designing my own language.
21:23:35 <MissPiggy> what's your language
21:23:42 <MissPiggy> you can use my wizard if you like
21:24:04 <Deewiant> You've designed a bunch already, what's one more?
21:24:09 <cpressey> My language is the only language that isn't frustratingly stupid, of course!
21:34:37 <cpressey> Actually, sadly, I think it would be too close to Scheme to justify creating it. And adoption would never reach critical mass, because Scheme Scares People<tm>.
21:35:15 -!- coppro has quit (Remote host closed the connection).
21:37:19 -!- coppro has joined.
21:41:35 <cpressey> Still, as Deewiant says, what's one more? :)
21:45:38 <AnMaster> "<cpressey> If I could just declare my classes to be monkeypatchproof in production somehow, I'd feel a lot better." <-- wth does that mean
21:46:12 -!- coppro has quit (Quit: car trip).
21:46:21 <cpressey> AnMaster: Code shouldn't be allowed to monkeypatch my classes. If it tries, something ought to break.
21:46:30 <AnMaster> cpressey, "monkeypatch"?
21:46:33 <cpressey> Except maybe in unit tests
21:47:08 <cpressey> Yes, "monkeypatch". http://en.wikipedia.org/wiki/Monkey_patch
21:47:44 <AnMaster> cpressey, so use a language compiled to machine code. Sure it can still be done there, but would be painful
21:48:06 <AnMaster> cpressey, also make a variant of befunge that forbids it
21:48:08 <AnMaster> :D
21:49:46 * Sgeo might end up monkeypatching getElementById on a school website
21:50:03 <AnMaster> Sgeo, huh?
21:50:12 <cpressey> That's kinda what I'm saying -- if I have to switch to a different language (not that that's practical), I might as well design my own
21:50:27 <Sgeo> AnMaster, on Chrome, getElementById doesn't seem to be working the way I think it should, and that's causing problems
21:50:47 <AnMaster> Sgeo, submit a bug report?
21:50:49 <AnMaster> for chrome
21:51:06 <Sgeo> I guess that would entail making a page that can reproduce the issue
21:51:18 <AnMaster> that would be helpful at least
21:54:16 <AnMaster> <cpressey> But I want more. I want values to be marked with the amount of computation that was taken to obtain them. Then I could guard against the use of e.g. computed dict keys. <-- I don't get this
21:54:20 <cpressey> Monkey patching is the self-modifying code of the scripting world. Its presence is also just as confounding to bug-hunting.
21:54:25 <AnMaster> cpressey, also __slots__ as I said
21:54:37 <cpressey> I mean, I can live without static types, but does EVERYTHING have to be undecidable??
21:54:56 <cpressey> AnMaster: __slots__ will do that?
21:55:01 <AnMaster> cpressey, at least python parses into a nice AST, with LL(1) even iirc
21:55:19 <AnMaster> cpressey, well not sure what you meant, but if I didn't completely misunderstand you: maybe
21:55:40 -!- MigoMipo has quit (Remote host closed the connection).
21:55:53 <cpressey> I mean I want foo(int) to be able to tell if it was called with: foo(5) or foo(2+3)
21:55:54 <AnMaster> cpressey, __dict__ isn't used with it at least. So making up a new self.foo on the fly won't work unless __slots__ include a foo
21:56:03 <AnMaster> (for a variable at least)
21:56:11 <AnMaster> not sure how it works for functions
21:56:25 <cpressey> AnMaster: oh, you mean __slots__ to guard against monkey patching. I see.
21:56:28 <AnMaster> cpressey, anyway, anyone could just copy your source file and make some changes, no?
21:56:33 <AnMaster> cpressey, possibly. Or both
21:56:48 -!- Gracenotes has quit (Quit: Leaving).
21:56:51 <AnMaster> <cpressey> I mean I want foo(int) to be able to tell if it was called with: foo(5) or foo(2+3) <-- compile time transformations?
21:56:54 <cpressey> AnMaster: I don't care if they copy it.
21:56:58 <AnMaster> I assume those would be constant folded
21:57:01 <AnMaster> in the bytecode
21:57:24 <cpressey> a = 3; foo(2 + a), then
21:57:31 <AnMaster> cpressey, also if they do that sort of stuff, they only have themselves to blame
21:57:32 <pikhq> Constant folded.
21:57:38 <AnMaster> what pikhq said too
21:57:48 <AnMaster> since it would propagate the constant value of a
21:57:56 <cpressey> AnMaster: You're thinking in a completely different paradigm -- this isn't library code for other people's use -- this is in-house stuff.
21:58:14 <AnMaster> hm
21:58:35 <cpressey> If there's some class out there that's monkeypatching my class, and my tool/app/page/whatever is crashing because of it, I can't just blame the author of the other class
21:58:44 <AnMaster> yell at them if they screw stuff up? Plus some sort of coding guidelines might help
21:59:48 <cpressey> Yes, but I've found culture always changes more slowly than code. I can't just start telling everybody their code sucks.
22:00:10 <pikhq> I encourage it.
22:00:31 <pikhq> Most code does, in fact, suck.
22:00:36 <pikhq> And quite horribly, too.
22:00:36 <AnMaster> true
22:01:25 <AnMaster> this is why academical work is best. That way you don't have to maintain it for that long, and people around you tend to not be *that* stupid.
22:04:12 <cpressey> Oh, academic work is fantastic that way. It doesn't really have to work, you just have to be able to defend it from questions from people who don't really understand it anyway.
22:04:45 -!- lament has quit (Ping timeout: 252 seconds).
22:05:18 <MissPiggy> boooooo
22:05:27 <Sgeo> ROFL
22:05:31 <cpressey> Most code does in fact suck quite hard, but as for telling engineers that that applies to *their* code, I've never been able to figure out the politics of that.
22:05:35 <AnMaster> cpressey, :D
22:05:51 <Sgeo> Got a Google Calender reminder telling me something about "Esome, Baby!"
22:05:55 <Sgeo> There was a map link
22:07:29 <Sgeo> Apparently, it's located in Brooklyn
22:07:42 <Sgeo> http://maps.google.com/maps?q=Esome,+baby!&hl=en
22:08:17 -!- lament has joined.
22:10:40 <Sgeo> lament, http://github.com/clivecrous/vultures/raw/master/vultures/gamedata/music/lament2.ogg
22:13:19 <Ilari> Hmm... Are there any esolangs with non-euclidean IP space topology?
22:13:54 <lament> what
22:14:04 <cpressey> AnMaster: you're right, __slots__ is what I'm looking for. I'll probably get into arguments with other engineers though, about how "inflexible" it makes things.
22:14:19 <lament> Ilari: what about C
22:14:22 <AnMaster> cpressey, heh
22:14:33 <cpressey> That's what I mean about culture :)
22:14:34 <AnMaster> cpressey, there is also a performance argument for it iirc
22:14:35 <lament> Ilari: i realize it's not an esolang, but in what sense is the IP space topology euclidean?
22:15:10 <AnMaster> cpressey, being stored in object (with an offset) rather than in a dict
22:15:14 <AnMaster> or something such
22:15:18 <AnMaster> better check that up
22:15:22 <AnMaster> I might misremember
22:15:59 <cpressey> I don't think Euclid had much to say about topology
22:17:23 <Ilari> non-euclidian topology meaning space that's not topologically equivalent to euclidean space.
22:18:04 <Ilari> Including such things as toroidial spaces...
22:18:46 <cpressey> Ilari: Oh. Well, Befunge, then?
22:18:53 <Ilari> Ah yes, befunge...
22:19:20 <Ilari> But are there esolangs with even more "exotic" IP spaces than Befunge?
22:19:53 <cpressey> I would also tend to agree with lament that most "non-esoteric" languages have a highly non-euclidean "space" for IPs. I'm not a mathematician so I can't describe it...
22:21:20 <lament> oh yeah, duh, befunge is a good example too
22:21:48 <MissPiggy> IP ??
22:21:55 <Ilari> MissPiggy: Instruction pointer.
22:22:07 <cpressey> Program Counter for all you 6502 fans out there
22:24:13 <fizzie> I'm sure 6502 isn't the only one who calls it that; the corresponding register is called PC for Z80 too, for example.
22:24:21 <AnMaster> cpressey, what about a möbius (sp?) befunge
22:24:26 <AnMaster> that would be interesting
22:24:55 <AnMaster> or to extend to 3d: klein befunge
22:25:00 <Ilari> Well, simpler discrete spaces can be described by describing each axis: n positions (linear), n positions (360 degree symmetry), n positions (720 degree symmetry), half-infinite, infinite.
22:25:05 <olsner> "IP" sometimes stands for IntraProcedural register (i.e. a temp register)
22:26:44 <Ilari> It starts to get really exotic when space can't be described as cartesian product of those axis types.
22:27:01 <AnMaster> Ilari, examples?
22:27:32 <Ilari> AnMaster: Spaces containing "wormhole"-type constructs.
22:27:54 <AnMaster> Ilari, right now I'm imagining a trefunge with wormholes
22:27:58 <AnMaster> it should be possible
22:28:15 <AnMaster> and I imagine it could be done with a fingerprint WORM
22:28:19 <Ilari> Actually, one only needs two dimensions to have wormholes.
22:28:22 <olsner> "a trefunge with wormholes" sounds like an infested mushroom
22:28:24 <AnMaster> Ilari, true
22:28:28 <AnMaster> olsner, :D
22:28:40 <fizzie> Funge-98's ; command could be considered wormholey.
22:28:57 <AnMaster> fizzie, it is more like "skip to matching"
22:29:22 <AnMaster> rather this would mean that touching a given space would dump you somewhere else, possibly going in a different direction
22:29:24 <fizzie> Well, it's traversed in no time, so it's not like other instructions.
22:29:39 <AnMaster> fizzie, so is space
22:29:45 <AnMaster> so: like one other instruction
22:30:00 <fizzie> Space is not an instruction.
22:30:18 <AnMaster> hm...
22:30:42 -!- tombom_ has quit (Quit: Leaving).
22:30:44 <Ilari> Wormhole would take time to transverse, the wormhole has interrior and it is part of space.
22:30:53 <AnMaster> true
22:31:04 <AnMaster> this would be one cool befunge fingerprint
22:31:16 <Ilari> The wormhole interrior space would be something like linear x 360 degree.
22:31:24 <fizzie> Given how much ; and empty space are alike, it wouldn't feel too wrong to describe ; as just a notation about the 'shape' of the IP space.
22:31:27 <AnMaster> (meaning it might be implemented in efunge, but never cfunge)
22:31:35 <AnMaster> Ilari, couldn't there be wormholes in the wormhole?
22:31:42 <cpressey> You could have a non-commutative geometry where going north then south is not guaranteed to put you back where you were.
22:31:52 <AnMaster> true
22:31:54 <cpressey> Or is that non-associative?
22:32:00 <AnMaster> one of those!
22:32:14 <Ilari> AnMaster: Could be possible.
22:32:25 <AnMaster> hm
22:32:31 <Ilari> fizzie: Jumps initiated by ; follow space geometry.
22:33:01 <AnMaster> wouldn't that bending of the funge-space-time slow down ips traveling near the wormhole?
22:33:03 <Ilari> fizzie: Or what would happen in current funges if one used ; to jump against space boundary?
22:33:14 <AnMaster> so as to disrupt the round-robin threading
22:33:27 <AnMaster> meaning they run possibly at a fractional overlap
22:34:03 <Ilari> AnMaster: They don't slow down. Wormhole space is discretized and IPs move following geometry when inside wormhole.
22:34:04 <fizzie> Ilari: But it's not "initiated" by ;, because you don't execute the ; -- instead the IP just moves somehow "past" the locations that contain other instructions, as if by taking some other route.
22:34:21 <AnMaster> Ilari, hm. but would it be a sharp edge to the wormhole?
22:34:45 <AnMaster> fizzie, what? sounds like bullshit to me
22:35:07 <AnMaster> fizzie, also, how did you implement it? ;P
22:35:12 <fizzie> AnMaster: To quote the spec: "; is truly ethereal; like space, it cannot ever be truly executed, in the sense of it taking up a tick and doing something."
22:35:18 <fizzie> See, it's not an instruction you can execute.
22:35:24 <AnMaster> fizzie, "in the sense that..."
22:35:34 <fizzie> Yes, in the sense that means something.
22:35:41 <Ilari> fizzie: Really, what happens if IP hits ; and there isn't another before IP space "edges" are hit?
22:35:53 <cpressey> Ilari: It wraps around to the nearest matching ;
22:35:53 <AnMaster> Ilari, it wraps around
22:35:59 <cpressey> Which could be itself
22:36:04 <AnMaster> yep
22:36:08 <Ilari> Yeah. Though so, which means it follows space geometry.
22:36:39 -!- kar8nga has quit (Remote host closed the connection).
22:37:11 <Ilari> With wormholes, ; would go into wormhole (possibly finding pairing ; inside wormhole).
22:37:12 <augur> cpressey: you can make a scheme like language, just employ some interesting new concept
22:37:39 <AnMaster> yes
22:37:40 <cpressey> So (my Befunge is really rusty so bear with me): 11.;.@ would print two 1's, and stop. It should skip right around the ; as if it wasn't there, I think.
22:37:45 <AnMaster> which is why I think WORM would be cool
22:37:56 <AnMaster> but I can only think of this with sharp edges
22:38:45 <AnMaster> not like the smooth bending in towards the hole like in http://en.wikipedia.org/wiki/File:Worm3.jpg
22:38:48 <Ilari> Probably easiest way is to have wormhole edge boundaries be closed and of same length. Then the circumference of interrior matches circumference of edge.
22:39:11 <Deewiant> If a program contains only one ; (and never modifies space to place another one), it's equivalent to the same program with the ; replaced by a space
22:39:25 <cpressey> augur: Unfortunately my new concept would only be "design a language which doesn't suck" :)
22:39:40 <fizzie> Ilari: I really have to disagree about this; I personally think you can still describe ; as a notational device you use to describe the particular non-euclidian behaviour of the IP space, when you have to express it in a discrete 2D matrix. If you have a matching pair of ;s in the code, it means the shape of the space is such that when you move with the right direction, you move directly from one ; to the other. How's that sort of space "euclidean" to you?
22:39:44 <AnMaster> Ilari, yes, as a cylindrical hole I guess
22:39:57 <AnMaster> quantised to whole cells
22:40:12 -!- Pthing has quit (Remote host closed the connection).
22:40:17 <AnMaster> which would give a limited size cylindrical funge-space inside
22:41:11 <fizzie> (Come to think of it, I don't suppose any discrete space is very euclidean.)
22:41:13 <Ilari> There are actually two types of holes, ones that have no internal crossing (IP reverses direction when transversing) and internally crossed holes (IP keeps direction).
22:42:03 <Ilari> Also, there is length of hole. Smallest possible length is 1, which has no interrior space at all (edges of wormhole are adjacent).
22:42:12 <AnMaster> Ilari, hm, as in twisted half a turn?
22:42:36 <AnMaster> Ilari, wouldn't that be 0?
22:42:57 <cpressey> augur: I still might do it. Even though it will almost certainly also suck.
22:43:00 <AnMaster> 1 would have one cell worth of length
22:44:04 <augur> k bye
22:44:40 <Ilari> Actually, circumference of hole interrior would have to match number of configurations that hit hole edge (and not just circumference of edge).
22:44:58 <AnMaster> hm?
22:45:10 <cpressey> I tend to agree with fizzie's view -- ; are bit like wormholes. But they're not fixed wormholes. Where the IP ends up depends entirely on its delta.
22:45:12 <AnMaster> it would have to follow the quantized form I guess
22:45:37 <AnMaster> Ilari, not sure how it would work for non-cardinal ips
22:45:52 <Ilari> AnMaster: Befunge has those too?
22:46:01 <Deewiant> Sure
22:46:10 <AnMaster> Ilari, befunge-98 does. You can have a delta of (34,2) or such if you want to
22:46:21 <AnMaster> or (23,-12)
22:46:29 <Deewiant> -93 doesn't have ; so it's not that relevant here anyway
22:46:33 <AnMaster> or even (0,0) but that is fairly useless
22:47:09 <fizzie> Deewiant: Given that those guys view ; as just another instruction, I'd say ; is also not relevant; certainly you can imagine -93 with wormholes.
22:47:35 <AnMaster> fizzie, "those guys"?
22:47:39 <fizzie> AnMaster: You, Ilari.
22:47:44 <AnMaster> ah
22:47:46 <Deewiant> Sure, you can imagine whatever you like, I'm just talking about what's already there. :-P
22:48:08 <Deewiant> Orthogonal with wormholes for all I care
22:48:23 <AnMaster> Ilari, I can't figure out how a non-cardinal delta would move through a worm hole
22:48:31 <Ilari> All I'm saying is that ; would follow underlying geometry, whatever it is.
22:48:56 <Ilari> And then there's problem of determining if it even _hit_ a hole...
22:48:56 -!- augur has quit (Ping timeout: 272 seconds).
22:49:17 <AnMaster> hm. if it is in it's path, then shouldn't it have done so?
22:49:18 <AnMaster> oh wait
22:49:21 <cpressey> This is where the whole idea of "any topology you want" breaks down
22:49:30 <AnMaster> this means figuring out if it passed it, it might have just touched the edge
22:49:35 -!- FireFly has quit (Quit: Leaving).
22:49:47 <AnMaster> which means floating point arithmetics or such
22:50:05 <AnMaster> and then it might not even hit a whole number cell afterwards
22:50:55 <cpressey> Even a hex-net Befunge would need a completely different set of semantics.
22:51:03 <Ilari> If one would take non-cardinal directions as quantized line that's traced, then that would enable computing where IP ends up in presence of wormholes.
22:51:10 <cpressey> Well, not COMPLETELY. But pretty different.
22:51:28 <cpressey> And I guess it would be triangle-net. But whatever.
22:52:19 <AnMaster> Ilari, would it end up neatly in an integer cell?
22:52:23 <Ilari> Since that would mean that all deltas could be broken down to cardinal IP movements.
22:52:29 <AnMaster> hm maybe it would
22:53:14 <AnMaster> cpressey, would it really need different rules apart from changing <>^v to something more relevant?
22:53:18 <AnMaster> possibly x too
22:53:27 <AnMaster> oh hm, i and o pose a problem
22:53:30 <AnMaster> so does file format
22:53:37 <cpressey> AnMaster: how do you do g and p?
22:53:56 <cpressey> You end up mapping Cartesian coordinates over the thing
22:54:02 <AnMaster> cpressey, well, they need to be changed the same way as x
22:54:11 <AnMaster> the new coordinate system
22:54:41 <AnMaster> then you could figure out "what delta would this cell have starting at the origin"
22:55:06 <AnMaster> cpressey, see what I mean?
22:55:31 <cpressey> AnMaster: kinda, but I think it proves my point that it would be a significant change to the semantics
22:55:42 <AnMaster> maybe
22:56:00 <Ilari> The smallest possible wormhole would have 1x1 ends. And would have interrior diameter of 4.
22:56:10 <Ilari> s/diameter/circumference/
22:56:20 <cpressey> All my ideas for how Funge could be "improved" after 98 were too radical, anyway :)
22:58:08 <fizzie> Ilari: All I'm saying is that I like more the point of view where ; is not an instruction that can "follow underlying geometry", but instead a notation about the space the IP moves in. Of course you can get similar results by using a simpler "underlying geometry" -- a discrete 2-dimensional thing with funky wrapping -- and adding "jump" instructions, and I guess you could try some sort of "simplest geometry wins" rule for justifying that the Funge-98 space is n
22:58:09 <fizzie> ot "exotic" enough, but... well, meh. I doubt this is going anywhere. Must be away.
22:59:56 <AnMaster> night
23:01:06 <Ilari> Could the problems with non-cardial IPs solved by making corners correspond to line in interrior space? That would mean that 1x1 hole would have interror circuference of 8...
23:02:06 <fizzie> If you map (integer) cartesian coordinates over a hex-grid or so and define x, g, p, and everything else that takes numeric coordinates, using those, I think what you're left with is just the usual sort of Funge-98 except with some special "movement modes" corresponding to the the diagonal-movement-to-neighbor-cells, which you can't even describe using a single (x, y) coordinate pair delta value.
23:03:01 <cpressey> fizzie: I agree, and I agree that's a reason to avoid doing that mapping if at all possible.
23:03:34 -!- cheater2 has quit (Read error: Connection reset by peer).
23:03:54 -!- cheater2 has joined.
23:04:26 <fizzie> (G'night.)
23:05:44 <cpressey> I seem to remember one proposal that works in any topology. Instead of a delta, you have a path, which is a list of directions. Similar to how arrows work in Hunt the Wumpus.
23:06:13 -!- BeholdMyGlory has quit (Remote host closed the connection).
23:06:43 <cpressey> So instead of (3,3), you have ">>>^^^" (or ">>^^>^" or ">>>>^^^^<v" or any of the other infinite number of possibilities for that.)
23:07:28 <cpressey> That extends to triangle-nets or whatever else, and solves the question of "When did we hit this wormhole?"
23:08:13 <cpressey> It wasn't a popular idea at the time, though.
23:09:13 -!- Wareya has quit (Ping timeout: 264 seconds).
23:09:30 -!- Wareya has joined.
23:19:18 <Ilari> Actually, I think I came up with way to define behavour of wormholes with non-cardinal deltas (and it would solve also some other problems with wormhole coordinate compuation), but would seriously screw up if there was wormhole that had one end in normal space and one end in interror space of another wormhole.
23:21:23 <Ilari> More precisely, it would demand that wormhole ("level 1 wormhole") that has one end in normal space, also has the other end in normal space, wormhole ("level 2 wormhole) that has one end in level 1 wormhole interror space has the other end also, etc...
23:21:38 -!- Sgeo_ has joined.
23:23:09 -!- Sgeo has quit (*.net *.split).
23:23:09 -!- Asztal has quit (*.net *.split).
23:24:28 -!- Asztal has joined.
23:36:34 -!- oerjan has joined.
←2010-02-10 2010-02-11 2010-02-12→ ↑2010 ↑all