00:01:49 -!- calamari has joined.
00:11:02 * SimonRC thinks up the next great Apple feature: sub-pixel mouse positioning.
00:12:46 <pikhq> That's a lot of RAM.
00:51:43 -!- pikhq has quit (Read error: 104 (Connection reset by peer)).
00:54:30 -!- pikhq has joined.
00:57:01 <Gregor> bsmntbombdood: That is not a memory crisis. That is a cache.
01:00:01 -!- augur has joined.
01:37:24 <Gregor> Now soliciting opinions on http://codu.org/music/vg/zee1.ogg (which is supposed to be semi-retro video-game-music-ish)
01:39:04 <Gregor> THAT DOES NOT COUNT AS AN OPINION
01:40:11 <madbrain> sounds kinda general midi <- is this an opinion?
01:40:27 <Gregor> It is GM, 's all I've got (I refuse to use loops)
01:41:01 <Gregor> Also I just frankly don't want to take the time and effort to go hunting for soundfonts, put them all together, and then render something that's questionably not legal for me to redistribute anyway.
01:41:07 <madbrain> get some free vsts if your sequencer supports them?
01:41:54 <madbrain> I'm not sure what to say because for retro video game music I use trackers
01:42:22 <Gregor> I generally compose music of a less synthesized style :P
01:42:50 <Gregor> (And I compose it for human beings, eliminating the issue of making the computer make the right sounds)
01:43:06 <madbrain> well, the square wave does sound out of it's place
01:44:22 <Gregor> Really? I sort of liked the contrast.
01:45:37 <pikhq> Almost a standard of NES music. :P
01:46:17 <madbrain> well, nes music tends to be more bass+drums+stuff
01:46:23 <madbrain> because otherwise it's too thin
01:49:47 -!- jpc has joined.
01:57:10 <Gregor> Replacing the square wave by an accordion results in pretty much pure awesomeness.
01:58:32 <Gregor> I may actually do that :P
01:59:35 <Gregor> Mainly it's awesome because a simple do-do-so-do on an accordion = polka
02:06:55 -!- augur has quit (Read error: 104 (Connection reset by peer)).
02:07:06 -!- augur has joined.
02:07:44 -!- Asztal has quit (Read error: 110 (Connection timed out)).
02:25:19 * Sgeo__ tries From Hell to Heaven
02:25:29 <Sgeo__> Looks like it looks easier than it looks
02:29:00 <Sgeo__> http://robozzle.com/puzzle.aspx?id=1010
02:31:33 <Sgeo__> http://robozzle.com/js
02:33:34 <coppro> yeah, but no js version of that puzzle
02:34:24 <Sgeo__> coppro, click one of the other puzzles, and put 1010 into there
02:34:39 <Sgeo__> Sometimes puzzles are hidden due to not getting good ratings
02:35:11 * Sgeo__ has had issues with the JS client, actually
02:35:27 <Sgeo__> Like, if the robot dies off the edge, I can't restart the puzzle without refreshing the page
02:41:09 <uorygl> It would be silly for music to be illegal to distribute due to being made out of copyrighted soundfonts.
02:42:22 <Gregor> It's a derivative work.
02:43:40 <madbrain> soundfonts have weird copyright stuff
02:44:00 <uorygl> There would probably be some law stating it's not a derivative work.
02:44:02 <madbrain> because if they copyrighted the samples on synths people couldn't use them in music
02:44:30 <madbrain> which is where your samples probably come from anyways
02:45:14 <Gregor> Mine are all public domain, it's the Chorium soundfont.
02:46:22 <pikhq> This is especially amusing when compared with actual fonts...
02:46:24 <pikhq> Which cannot be copyrighted.
02:46:25 -!- Pthing has quit (Remote closed the connection).
02:46:26 <Gregor> Fair use has to do with how much of the work you use. When the work is a soundfont, and you used it to render music, you've used a lot of it.
02:46:36 <uorygl> I'm sure it's difficult to argue that using a soundfont in a piece of music and distributing the piece diminishes the value of the soundfont.
02:47:06 <uorygl> pikhq: I've heard that before, but I think I tried to verify it and wasn't able to.
02:47:06 <pikhq> (the actual font *file* can be copyrighted, though; it counts as a computer program.)
02:49:26 <pikhq> http://www.loc.gov/cgi-bin/formprocessor/copyright/cfr.pl?&urlmiddle=1.0.2.6.2.0.174.1&part=202§ion=1&prev=&next=2
02:50:20 <Gregor> (e) Typeface as typeface.
02:50:32 <Gregor> So, typeface as candy can by copyrighted.
02:50:48 <pikhq> Yes, a candy mold of a typeface could be copyrighted.
02:50:56 <pikhq> But someone could carve their own mold.
02:51:23 <uorygl> So could I create a new file of an existing font, using the font file as my only reference?
02:52:04 <pikhq> So long as you actually *create* the new file, rather than deriving it, yes.
02:52:33 <pikhq> The font file merely describes how to render a typeface. You can look at the rendered typeface and imitate that just fine.
02:53:10 <pikhq> Note: it'll still be a derived work in Europe.
02:53:51 <uorygl> Is there legally a difference between copying the file and simply creating an identical one?
02:54:17 <pikhq> The first is a derived work.
02:54:22 <pikhq> The second is a bizarre coincidence.
02:54:52 <Gregor> If I accidentally write a novel that's exactly equal to some Harry Potter book I haven't read, but with "Harry Potter" replaced by "Dodifer Fleghermaier", that's legal. Hard to prove though.
02:55:33 <pikhq> Unlike patent law.
02:55:44 <uorygl> Between copying parts of the file, and looking at a part of the file, rendering it, and derendering it such that the new part is identical to the old one.
02:55:50 <pikhq> If you invent something that was invented and patented last year, you're screwed.
02:56:16 <Gregor> pikhq: If you invent something that was invented and patented twelve seconds ago, you're screwed :P
02:56:17 <pikhq> uorygl: If it's an automatic process, probably derived.
02:56:52 <uorygl> What if I invent something for which a patent was applied yesterday, but which has not yet been revealed to the public?
02:56:54 <pikhq> Heck, if the patent application was done by someone else a month after you, you're screwed.
02:57:23 <pikhq> (needs to be a year prior to be prior art. Yes, really.)
02:57:25 <uorygl> Ideally, if I do that, the law automatically changes such that the patent is invalid.
02:57:51 <uorygl> ...So I can invent someone and then someone else can patent it?
02:58:03 <coppro> that's not the purpose of patent law
02:58:10 -!- Gracenotes has joined.
02:58:15 <uorygl> "I invented it, too, right after he told me how he invented it."
02:58:18 <coppro> the purpose of copyright and patent laws are actually different
02:58:21 <Sgeo__> Is Gracenotes addicted yet?
02:58:36 <pikhq> coppro: Yes. And that's tangential.
02:59:29 <coppro> the purpose of copyright law is to give someone assurance that only they may profit from a work
02:59:38 <pikhq> Something can be nuts even if it has a purpose.
02:59:45 <coppro> the purpose of patent law is to give the public the assurance that new innovations are available
02:59:56 <coppro> oh, I completely agree
03:00:02 <pikhq> And that's not the purpose of copyright law.
03:00:17 <coppro> what would you define the purpose of copyright law as, then?
03:00:22 <pikhq> The purpose of copyright law is to give the public the assurance that new works of art are available.
03:00:47 <pikhq> And it only in that context that Congress even has the power to enact a copyright law.
03:01:22 <coppro> there is no such thing as a first-to-copyright system anywhere in the world, unless I'm seriously mistaken
03:01:33 -!- oerjan has joined.
03:01:36 <pikhq> That's a non sequitur.
03:02:26 <oerjan> no _this_ is a non sequitur. oh wait...
03:02:39 <Gregor> Your mom is a non sequitur.
03:02:42 <pikhq> "Congress shall have the power [...] to promote the Progress of Science and useful Arts, by securing for limited Times to Authors and Inventors the exclusive Right to their respective Writings and Discoveries;"
03:03:01 <coppro> I don't care about USAian law
03:03:12 <pikhq> But that's what we were discussing.
03:03:23 <pikhq> The "securing an exclusing right" bit is merely a means to an end...
03:03:30 <pikhq> That's not the first time I've cited it.
03:04:07 <coppro> the USA further muddles things by adopting a first-to-invent system
03:04:32 <pikhq> Which is arguably not among Congress' powers.
03:04:39 <pikhq> (not that that's stopped them before)
03:04:40 <coppro> don't know, don't care
03:05:02 <pikhq> Well, I cited the only bit that grants them the power to do a copyright or patent law.
03:05:24 <pikhq> (the US federal government does an astounding lot more than they have the de jure power to)
03:05:25 <coppro> I meant I don't know or care about Congress' powers
03:05:36 <Sgeo__> GreaseMonkey, igoro replied to you
03:05:43 <coppro> not being in the US, it's not important to me
03:06:19 <Sgeo__> http://robozzle.com/forums/thread.aspx?id=175
03:07:37 <coppro> in any case, a first-to-patent system directly accomplishes the goal of public dissemination
03:07:48 <coppro> Berne copyright does not
03:08:35 <Gregor> BURN COPYRIGHT YARGH oh wait you mean the Berne convention ...
03:09:42 <coppro> whereas first-to-patent laws discourage information hoarding, copyright and first-to-invent systems do not
03:10:36 <Gregor> Really, the US has a most-$$$ system.
03:10:56 <Gregor> It doesn't matter if you invented it first if IBM invented it second.
03:10:57 <pikhq> In the modern day and age, limitation of the trading of information encourages information hoarding.
03:11:05 <Gregor> (Unless you're Microsoft)
03:11:58 <coppro> actually, Gregor, that's only true in one direction
03:12:07 <coppro> it's true that if IBM has the patent, you're screwed either way
03:12:36 <coppro> but if you have the patent, and IBM violated it, you have a shot at some serious dough
03:12:50 <pikhq> If you have the patent, then IBM will sue you for some patent that they *do* have, and offer to settle out of court.
03:12:57 <pikhq> With a reciprocal license.
03:13:22 <pikhq> This is the modus operandi of most all large corporations.
03:13:28 * Sgeo__ blehs at the Worlds.com
03:13:29 <coppro> but in that case you can fight if they don't have a valid claim against you
03:13:41 <pikhq> Except that they almost certainly do.
03:13:48 <Gregor> Because everything is patented :P
03:13:50 <coppro> but what if you have no product?
03:13:50 <pikhq> You almost can't breath without violating a patent.
03:14:00 <coppro> or if their patent is invalid?
03:14:12 <Sgeo__> newfeatures? Worlds? lolWHAT?
03:14:18 <Gregor> Their patent being invalid again comes down to $$$.
03:14:28 <Gregor> You can patent adding 1 and 1 if you have enough dollar signs.
03:14:36 <pikhq> If you have absolutely no product, then you're not having the cash to sue, unless you're a patent troll.
03:14:50 <coppro> pikhq: or you may be a startup without a product yet
03:14:53 <pikhq> In which case, the company in question has already paid your protection money.
03:15:02 <pikhq> coppro: In which case, you don't have the cash to sue.
03:15:06 <pikhq> And you're fucked.
03:15:14 <coppro> Gregor: that's not the issue
03:15:25 <coppro> the issue is that if you're sued for an invalid patent, you're screwed either way
03:15:39 <coppro> but if you've got a suit of your own and you win both, you can cover your costs with the spoils
03:15:59 <pikhq> Yes, but you won't survive to the end of the suit.
03:16:19 <pikhq> (you got 10 years worrth of lawyer fees sitting around to shovel into something?)
03:19:23 <Sgeo__> LOL, this build of WorldsPlayer is 6 years old
03:19:53 <pikhq> The US' legal system is pretty much designed so that whoever has the most $ wins.
03:20:09 <pikhq> Our political system has approached that point, as well.
03:20:28 <pikhq> Oh, and corporations can fund the politics.
03:20:48 <coppro> IP law is shaping up to be a real test of the government's willingness to listen to the people vs. the money
03:21:24 <pikhq> So far, the people are losing.
03:21:57 <pikhq> Though they have the advantage that IP law is about as enforcable as making breathing illegal.
03:22:08 <coppro> but treaties are, fortunately, not enforceable until ratified
03:22:37 <coppro> so ACTA/EUFTA(?) will need to make it past Parliament first
03:23:06 <pikhq> It's US copyright law that gets spread to other countries via treaty, y'know. :P
03:23:19 <coppro> pikhq: not just that; the EU are trying to do it too now
03:24:07 <coppro> http://www.michaelgeist.ca/content/view/4704/125/
03:28:06 -!- dbc has quit (Read error: 110 (Connection timed out)).
03:59:33 -!- dbc has joined.
04:00:58 <Gregor> madbrain, GreaseMonkey: http://filebin.ca/mnotrf/zee1acc.ogg
04:02:11 <Gregor> Kinda changes the mood, but god that accordion is awesomesauce.
04:02:53 <pikhq> Music, of the Gregor kind.
04:02:56 <Gregor> Ostensibly it's semi-retro-video-gameish-music
04:03:05 <uorygl> Wow, cb.vu looks like a Unix shell.
04:03:16 <pikhq> As per the norm for Gregor music, it is enjoyable.
04:03:36 <Gregor> Y'know what really looks like a Unix shell? http://codu.org/jsmips/system.html
04:03:49 <pikhq> Gregor: I'd sure hope so. ;)
04:03:56 <oklopol> personally i don't find it your best work, but very good work, obviously
04:04:14 <Gregor> It's not supposed to be my best work, it's my first attempt at writing something fairly out of my style.
04:04:26 <Gregor> I didn't manage to get that far out of my style though, making it a weird hybrid :P
04:04:28 <uorygl> What does this uname line tell you: FreeBSD cb.vu 7.1-STABLE FreeBSD 7.1-STABLE #2: Wed Jan 30 16:21:05 CET 2009 c@cb.vu:/usr/obj/usr/src/sys/CB i386
04:04:34 <oklopol> maybe you try a bit too hard to keep it consistent
04:04:50 <pikhq> I find it amusing that the thing making jsmips slow is the remote filesystem.
04:04:53 <uorygl> i386. I guess that means x86.
04:05:34 <oklopol> well there isn't a clear change of mood anywhere, is there
04:05:52 <Gregor> No, no there is not. This is a good point.
04:05:58 <pikhq> oklopol: How much video game music does?
04:06:01 <Gregor> I mean, it's supposed to be background music.
04:06:06 <pikhq> ... Pre-Playstation, I should say.
04:06:13 <oklopol> pikhq: i've mostly heard FF music...
04:06:48 <pikhq> oklopol: Nobuo Uematsu didn't really start doing mood changes at all until SNES or Playstation era.
04:07:14 <Gregor> That's a technological limitation though.
04:07:23 <Gregor> Hard to coordinate music to onscreen events without any sort of video.
04:07:30 <oklopol> ...and the only FF musics i remember are from 9 and 7
04:07:59 <pikhq> Gregor: Harder still when the games didn't have much in the way of *plot*. :P
04:08:24 <Gregor> There's this witch. Uh, could you kill her for us? kthx
04:08:54 <pikhq> The plot for Final Fantasy was more like "Uh, there's a big bad. Could you guys defeat him? Kthx."
04:09:23 <pikhq> (and yet, still had some good music. "Final Fantasy" is a much nicer piece than it has any right to be...)
04:10:43 <madbrain> japanese ff3 has some nice songs
04:11:10 <pikhq> The same is true of all mainline Final Fantasy games.
04:11:19 <pikhq> Nobuo Uematsu takes video game music seriously, and it shows.
04:11:25 <madbrain> ok, better than the other nes games
04:12:09 <Gregor> madbrain: Then why does so much of the rest of video game music suck?
04:12:13 <Gregor> madbrain: It's their job too.
04:12:38 <madbrain> not enough time/too small budget/etc
04:13:31 <pikhq> ... Nobuo Uematsu, when he started, was hired part time out of the music rental store he worked at.
04:13:41 <pikhq> I'd call that "small budget".
04:13:47 <madbrain> yeah, he was at the right place at the right moment
04:13:57 <pikhq> It's kinda stunning that Square got even decent music out of that deal.
04:14:07 <pikhq> Much less "rather good".
04:14:34 <madbrain> a lot of early music (8bit era) was made in, like, assembler
04:14:40 <oklopol> Gregor: okay on a third listening, i don't think there's anything wrong with the mood
04:15:33 <madbrain> like, if the square guys made him a program, and didn't force him to squeeze into, say, 32k to squeeze in more gfx, that probably helped
04:15:59 <pikhq> madbrain: They just told him what the NES could and couldn't do and let him have at it.
04:16:29 <madbrain> well, what I'd like to see is the tool the had to sequence the music
04:17:00 * pikhq is curious as well.
04:17:20 <madbrain> like, every so often they have .nsf compos
04:17:31 <oklopol> Gregor: maybe the feel of a sort of stability was just because the theme sort of stays the same throughout the whole song, which obviously was done on purpose, it just makes some of the "returning to the theme before next interesting part" feel pointless (maybe)
04:17:47 <oklopol> also maybe i should criticize less, it really was pretty good :P
04:18:08 <Gregor> I have no use for noncritical statements.
04:18:21 <madbrain> well, looking at how people do songs for .nsf competitions these days
04:18:31 <madbrain> americans use trackers, japanese use MML
04:18:54 <madbrain> americans win the original song competition, japanese win the cover competition
04:19:03 * oklopol considers doing eso-related stuff
04:19:45 <madbrain> although it's hardly a NES compo anymore with all the extension chips people use
04:20:33 <Sgeo__> Why am I not eating yet?
04:21:11 <madbrain> also, final fantasy music was custom made for the console limits instead of some midi conversion
04:21:12 * Gregor wishes oklopol had food.
04:21:59 <pikhq> madbrain: Helps a lot, that.
04:22:37 <madbrain> and he might have been more involved in the making of the game
04:22:42 <pikhq> It really helps a lot that Square actually had someone just write music that could fit on the NES, rather than "write something that counts as music".
04:22:59 <madbrain> instead of "here's 4000$, make us 20 songs"
04:23:16 <pikhq> "So one night when we were talking, she was asking if I would be interested in taking part in creating some music for some of the titles they were working on at that time. So I said, "Okay, for sure I'll do it." But that was totally a side job, and I wasn't considering that this would become any sort of full-time gig." -- Nobuo Uematsu
04:23:25 <pikhq> From http://www.1up.com/do/feature?pager.offset=1&cId=3166165
04:24:01 <madbrain> well, that's because in the 80s making music probably wasn't a full-time gig ever
04:24:28 <madbrain> that's more of a 16-bit era thing
04:25:13 -!- MizardX has quit (Connection timed out).
04:25:38 <madbrain> but yeah, these days games are more like made by the graphics guys
04:26:36 <madbrain> and they're not in a final fantasy 4 situation where the music has to be good because otherwise the games looks like total ass (just look at ff4's gfx)
04:28:10 <pikhq> FF4 didn't look like ass. *FF7* looked like ass.
04:29:09 <madbrain> and it's more like ff7 characters look like ass, the backdrops are nice afaik
04:29:25 <pikhq> The backdrops do look nice, yes.
04:29:36 <pikhq> Of course, those were *paintings*. ;)
04:30:00 <madbrain> the battle system models were less butty
04:30:25 -!- oerjan has quit ("Lost terminal").
04:30:36 <madbrain> probably because they didn't have to make the battle run at 30fps :D
04:30:36 <pikhq> It was pretty much the only entry in the series that looked *worse* than contemporary games...
04:30:55 <madbrain> yeah but the soundtrack is great
04:31:11 <pikhq> The soundtrack is amazing, yes.
04:31:28 * pikhq puts on One Winged Angel. Whooo.
04:31:55 <pikhq> madbrain: Best heard performed by an orchestra.
04:31:56 <madbrain> it's sample set is less cheesey than most GM kits
04:33:03 <madbrain> that's the one where they recorded a choir no? :D
04:33:22 <uorygl> Like many before me, I feel like actually implementing Unix in JavaScript.
04:33:55 <Gregor> uorygl: http://codu.org/projects/jsmips/
04:34:01 <Gregor> Help me with that instead :P
04:34:23 <madbrain> a lot of other psx soundtracks were made on synthesizers of the day
04:34:43 <uorygl> Gregor: how does that work?
04:34:43 <pikhq> madbrain: Yes, One Winged Angel has a choir.
04:35:01 <pikhq> "Veni veni venias, ne me mori facias."
04:35:04 <Gregor> uorygl: It's a MIPS simulator. In JavaScript. With an /actual/ Unix shell and vim compiled for it.
04:35:28 <Gregor> From the maker of Hackiki :P
04:35:49 <pikhq> It's considered the Sephiroth theme for some reason.
04:35:51 <uorygl> Why would you implement MIPS in JavaScript rather than just implementing Unix in JavaScript?
04:36:10 <pikhq> (the theme is actually, of course, Those Chosen by the Planet)
04:36:20 <Gregor> uorygl: Because ultimately you're going to end up having no compatibility with real apps unless you can run C programs.
04:36:31 <uorygl> Well, you can compile C into JavaScript!
04:36:41 <pikhq> Gregor: I'm curious: have you looked at Coffeescript at all?
04:36:56 <Gregor> Not really, C assumes you have addressable memory, and so you'd effectively be simulating a system anyway.
04:37:25 <uorygl> Wow, it sounds like C sucks.
04:37:27 <madbrain> there's a couple of holes in this C addressable memory thing, no?
04:37:45 <pikhq> Gregor: It's a language that maps rather closely to Javascript...
04:37:54 <Gregor> pikhq: I can see that.
04:37:56 <pikhq> Gregor: Rather nice. Much nicer syntax & scoping.
04:38:04 <Gregor> pikhq: But I like JavaScript :P
04:38:08 <pikhq> madbrain: Maps closely semantically.
04:38:29 <madbrain> in working I'd think JS is a lot more like Lua and that kind of stuff
04:38:48 <uorygl> Hmm. The root of "syntax" isn't "syntact", is it?
04:39:03 <pikhq> Gregor: And Coffeescript is fairly close to Javascript.
04:39:37 <pikhq> Gregor: Just, \x->x looks like (x => x) rather than (function (x) {return x})
04:39:53 <uorygl> I guess "syntax" is a truncation of "syntaxis".
04:40:25 <madbrain> but yeah, when you compose specifically for a platform, you can do amazing stuff
04:40:45 <madbrain> too bad that almost never happened on the PC
04:41:24 <pikhq> And then, starting with FFX, Nobuo Uematsu had it easy.
04:41:38 <Gregor> Sorry, this game only works with the Sound Blaster Pro
04:41:51 <madbrain> Dunno, after FF9 the soundtracks become less memorable
04:41:51 <pikhq> "Okay, here's your choir and orchestra. Come back with some CDs."
04:42:08 <madbrain> well, scoring for orchestra is an art too
04:42:28 <pikhq> ... *To Zanarkand* is not memorable?
04:42:32 <Gregor> madbrain: I don't think anyone would dispute that fact :P
04:42:38 <pikhq> What sort of heartless bastard are you? :P
04:42:47 <pikhq> Did you *play* FFX?
04:42:56 <pikhq> FFXII wasn't Nobuo Uematsu.
04:42:58 <Gregor> So that's why it's not memorable then :P
04:43:11 <pikhq> madbrain: Play FFX.
04:43:17 <pikhq> It's the best game in the series.
04:43:34 <pikhq> Only one I've replayed.
04:43:35 <Gregor> Whoah, that's a strong statement.
04:43:48 <Gregor> Also, wtf, FFXII wasn't scored by Uematsu? D-8
04:44:01 <madbrain> I'm a huge fan of composing for the hardware instead of just making mp3s
04:44:06 <pikhq> Gregor: Nope. FFX wasn't soley scored by him, either.
04:44:24 <madbrain> yeah something that large is probably more than one guy no?
04:44:29 <Gregor> I'm a huge fan of composing for the hardware, where "the hardware" = "a piano"
04:44:39 <pikhq> madbrain: First time he didn't compose the entire game.
04:45:07 <pikhq> He did compose all of FFXI. And is composing all of FFXIV.
04:45:26 <Gregor> Who cares about FFXI :P
04:45:34 <madbrain> He's not actually the best but he's way good enough
04:45:55 <madbrain> the guy who did chrono trigger is actually better
04:46:33 <pikhq> madbrain: ... Mitsuda and Uematsu?
04:47:40 <pikhq> Gregor: People who like MMOs.
04:47:43 <uorygl> Okay, in C, when do you actually use addressable memory?
04:47:48 <uorygl> Pointers. Arrays. Anything else?
04:47:56 <Gregor> uorygl: ... but pointers and arrays are /everywhere/.
04:48:06 <pikhq> uorygl: Everything in C is addressable.
04:48:12 <madbrain> well, no but yeah the sort of pointer/array merge it has is everywhere
04:48:14 <Gregor> uorygl: The only way to get memory dynamically is to get an address to something.
04:48:16 <pikhq> (well, almost everything. All lvalues are.)
04:48:33 <madbrain> and you have the problem that you can mess up all the dependencies with pointers
04:49:01 <Gregor> You can mess up pretty much anything with pointers if you please.
04:49:01 <madbrain> int p; p = 2+5; wacky_function(&p);
04:49:14 <pikhq> You can rewrite functions with pointers.
04:49:19 <pikhq> (not in a portable manner)
04:49:33 <madbrain> yeah that's inherently platform specific
04:49:39 <uorygl> Well, let's say that we figure out how to implement pointers and arrays.
04:49:56 <Gregor> uorygl: Then you're simulating virtual memory.
04:50:07 <uorygl> Haskell has pointers and arrays.
04:50:11 <Gregor> uorygl: And all of your operations have to support the fact that values may change from under them, so they're all simulated too.
04:50:20 <madbrain> I think you have to figure out if variables are only local or if they get turned into pointers/references
04:50:24 <pikhq> The address-of operator.
04:50:25 <Gregor> Oh, uorygl doesn't speak C, that explains it :P
04:50:32 <madbrain> uorygl: get memory address operator
04:50:38 <pikhq> uorygl: In C, everything is addressable.
04:50:54 <pikhq> Except for return values, and...
04:51:16 <pikhq> A handful of other niche things.
04:51:27 <madbrain> once stuff is pointerizable, then you can contaminate stuff in your program with it and mess up everything
04:51:43 <Gregor> pikhq: Also variables labeled "register" :P
04:51:51 <pikhq> uorygl: And "pointers and arrays"?
04:51:56 <pikhq> uorygl: Surely you just mean pointers.
04:52:04 <pikhq> Gregor: Right, right.
04:52:56 <madbrain> although you'll probably need to simulate integer wraparound :(
04:53:00 <pikhq> madbrain: Oh, you can do it. You just have a memory array.
04:53:09 <pikhq> No, you don't need to simulate integer wraparound.
04:53:14 <pikhq> Going beyond the bounds is UB.
04:53:21 <uorygl> We can say that pointers are opaque until you try to do something non-opaque with them.
04:53:56 <uorygl> And when you do something non-opaque with them, they turn into dictionary keys.
04:53:59 <madbrain> it's probably messed up depending on compilers anyways
04:54:04 <pikhq> Erm. Sorry, that's *signed* integer wraparound that's undefined.
04:54:10 <pikhq> Unsigned is obvious.
04:54:20 <pikhq> uorygl: Nope, won't work.
04:54:32 <pikhq> uorygl: Something "non-opaque", like a[1].
04:54:43 <madbrain> uorygl: programs do nasty stuff with pointers
04:54:49 <pikhq> uorygl: Or a ^= b;
04:55:37 <madbrain> javascript is designed for people doing programs directly in it, not handling butty C syntax trying to save 3 cycles on a VAX
04:55:51 <uorygl> Pointer + integer is opaque enough.
04:55:56 <pikhq> uorygl: Or (and this is really nasty:) int a = 0;a = &(1[(char*)a]);
04:56:23 <madbrain> pikhq: yeah you're going to have to intercept that kind of cast
04:57:04 <pikhq> madbrain: Yeah, very much undefined behavior.
04:57:12 <pikhq> Make it intptr_t, and you're just fine.
04:57:24 <pikhq> (sizeof(intptr_t) = sizeof(void*))
04:58:01 <pikhq> uorygl: I suppose you're not familiar with the xor-linked list?
04:58:11 <uorygl> That sounds really painful.
04:58:17 <madbrain> pikhq: oh god that sounds totally horrible
04:58:26 <pikhq> It's a doubly linked list with a single pointer per node.
04:58:54 <madbrain> nice way to save 4 bytes at the cost of sanity?
04:58:55 <pikhq> Each node has the previous node xor the next node stored in it.
04:59:00 <uorygl> You XOR that pointer with the pointer you came from and get the pointer you go to.
04:59:41 <madbrain> that means you have to use 2 pointers to get inside the list but it's easy to reverse reading order?&
05:00:30 <madbrain> yeah that's like, impossible to garbage collect
05:00:37 <Sgeo__> Is madbrain addicted yet?
05:00:44 <pikhq> madbrain: You can also make it defined behavior by doing s/xor/addition/
05:00:51 <pikhq> (since pointer addition is defined)
05:01:08 <uorygl> That is indeed impossible to garbage collect, in the absence of compiler intelligence.
05:01:26 <pikhq> "compiler intelligence" like "halting problem".
05:01:26 <Gregor> [garbage-collector intelligence]
05:02:08 <pikhq> The Boehm GC answer to that is "if you do that, we *will* free the memory out from underneath you. So don't do that."
05:04:36 <pikhq> Gregor: Why yes, yes it does.
05:04:43 <pikhq> Favorite C library.
05:05:10 <Gregor> I always read "foo = bar" in normal conversation as "foo is bar" :P
05:06:45 -!- coppro has quit (Remote closed the connection).
05:07:33 <oklopol> i usually don't read irc out loud, because i'm not a crazy person
05:07:36 -!- coppro has joined.
05:14:57 -!- uoryfon has joined.
05:15:20 <uoryfon> Feckless, my Internet connection lapsed.
05:15:40 <uoryfon> So, I saw none of what anyone said.
05:17:22 <uoryfon> Whenever the program wants to dereference something, take a hash and store it in the dictionary. To dereference, look for nearby keys in the dictionary and subtract to find an offset.
05:19:08 <madbrain> why not just simulate memory with a huge array
05:19:36 <uoryfon> That sounds less efficient. Maybe it actually isn't.
05:20:06 <Gregor> What I did was use 4K arrays nested in a hash.
05:20:14 <Gregor> So a page is an array.
05:20:47 <uoryfon> What if you have a really big array in your C program?
05:21:30 <Gregor> What if you have a really big array in your C program?
05:21:39 <bsmntbombdood> What if you have a really big array in your C program?
05:21:41 <Gregor> Why would that be an issue?
05:22:09 <uoryfon> Well, it could exceed the page size.
05:22:57 <uoryfon> A page's hash plus 4096 is not the next page's hash.
05:23:06 <Gregor> Why would that be an issue?
05:24:21 <uoryfon> Because a program might use pointer arithmetic and get the wrong thing?
05:25:00 <Gregor> How could it possibly get the wrong thing? It's ultimately going to look up the location by its absolute address, not by looking up the base address of the array and assuming the rest is there.
05:26:01 <uoryfon> Isn't that how C works, though?
05:26:28 <uoryfon> By taking the base address of the array and assuming everything else is there?
05:26:29 <pikhq> C adds to a pointer, and then looks up the resulting pointer.
05:26:43 <pikhq> uorygl: ... Welcome to paging.
05:27:19 <coppro> store each pointer as a 2-byte hash of the object's address and a 2-byte offset
05:27:20 <pikhq> (fun fact: memory is not actually contiguous, it just pretends to be!)
05:27:33 <coppro> and just complain if you try to allocate more than 65535 elements in a single array
05:28:01 <pikhq> Store each pointer as an index into an array. And implement that array as 4K arrays in a hash.
05:28:33 <pikhq> Making the only annoying things to implement be malloc and free.
05:28:47 <uoryfon> I guess that sounds like it works.
05:29:00 <pikhq> (though, this being MIPS emulated, that's on the C side)
05:29:56 <Gregor> Y'know what's sad? I've had zee1 on loop for like an hour now :P
05:30:15 <uoryfon> But gosh, C still sucks. It's not even approximately Turing-complete without this barely-well-defined artifact of von Neumann?
05:30:40 <Gregor> C is a language designed for computers, yes.
05:31:08 <GreaseMonkey> Gregor: here, stick this on loop: http://pubacc.wilcox-tech.com/~greaser/mods/kattywampus.it
05:31:18 <madbrain> well, C would need infinite size plointers
05:31:25 <Gregor> That's ... a dot-it file?
05:31:25 <coppro> I think Gregor has the right idea
05:31:25 <pikhq> C is not Turing complete without stdio.
05:31:45 <Gregor> GreaseMonkey: mplayer, vlc, anything else in Debian sid.
05:31:46 <GreaseMonkey> it shouold work OK in mikmody and modplugy stuff
05:31:56 <coppro> why would you need stdio for C to be Turing-complete?
05:32:05 <pikhq> coppro: ... Finite memory?
05:32:05 <Gregor> Is dot-it some kind of new-age .mod?
05:32:16 <uoryfon> Yeah, I suppose realistic computers are probably going to have addressable memory.
05:32:19 <coppro> pikhq: eh, same goes for every other computer language
05:32:29 <GreaseMonkey> check if you've got mikmod, it doesn't interpolate (read: butcher) like vlc (modplug) does
05:32:34 <pikhq> bsmntbombdood: And stdio doesn't require size_t.
05:32:45 <Gregor> $ aptitude install mikmod
05:32:48 <pikhq> You can just *happen* to have an infinite tape as a file. :P
05:33:01 <pikhq> coppro: C *requires* it.
05:33:02 <bsmntbombdood> size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream)
05:33:07 <Gregor> pikhq: C + Unix + stdio + my infinite tape device :P
05:33:18 <pikhq> bsmntbombdood: So you can only read a finite amount at a time.
05:33:21 <madbrain> pikhq: except many file systems have limited file size to stuff like 4gb :D
05:33:21 <coppro> pikhq: so any implementation of C is not Turing-complete
05:33:23 <pikhq> The same is true of a Turing machine.
05:33:34 <GreaseMonkey> mikmod is a bit lacking in IT support sadly, but it should play that fine
05:33:34 <pikhq> coppro: C itself is not Turing-complete. At all.
05:33:35 <madbrain> pikhq: combine that to finite size file names
05:33:46 <coppro> pikhq: the standard imposes no limits on the size of memory
05:33:48 <pikhq> madbrain: Single file that's a tape?
05:33:53 <pikhq> coppro: Yes it does.
05:33:58 <pikhq> coppro: Everything must be addressable.
05:34:12 <coppro> pikhq: if you run out of addresses, get an implementation with widen pointers
05:34:14 <pikhq> coppro: And pointers must have a size that's a multiple of the size of char.
05:34:19 <pikhq> coppro: And the size of a char must be finite.
05:34:33 <pikhq> coppro: Pointers have to have a constant size.
05:34:42 <GreaseMonkey> technically the x86 is turing-complete as it has I/O available in some way
05:34:47 <oklopol> coppro: you can output the size of a pointer, clearly after something like that there must be some set size limit for pointers
05:34:55 <pikhq> GreaseMonkey: ... stdio is IO.
05:34:55 <GreaseMonkey> which you could theoretically hook up to a tape drive
05:34:58 <coppro> pikhq: that's why I said that any implementation of C is not turing-complete
05:34:59 <Gregor> GreaseMonkey: How does one convince mikmod to output to ALSA instead of ... a file.
05:35:11 <pikhq> coppro: Pointers are *specified* to be finite.
05:35:22 <madbrain> C kinda almost designed for programs where everything is fixed size
05:35:30 <oklopol> technically you could make an implementation that makes pointers bigger if needed ofc, but i doubt that's allowed to be visible to the user
05:35:34 <pikhq> Not merely "must be in practice", *MUST BE BY DEFINITION*.
05:35:42 <GreaseMonkey> Gregor: i honestly can't remember if mikmod has an alsa driver... esd should have an alsa version, and mikmod should have an esd driver
05:35:48 <pikhq> oklopol: sizeof(void*) is constant.
05:36:21 <pikhq> As an optimisation, you could store them in less than sizeof(void*) units of char, so long as it was transparent.
05:36:34 <pikhq> Of course, since char is finite, that doesn't get you anywhere.
05:36:56 <madbrain> but yeah that sort of platform is based on the irl fact that for infinite tape, 4gigabytes is "infinite enough" :D
05:37:34 <coppro> pikhq: a Universal Turing machine either requires a finite amount of memory for a computation, or doesn't halt
05:37:48 <coppro> and C can meet that standard
05:37:50 <pikhq> coppro: Sorry, I should say:
05:37:57 <pikhq> coppro: C requires finite *and bound* memory.
05:38:11 <coppro> only any given implementation of C does
05:38:13 <Gregor> coppro: A finite but unpredictable amount of memory.
05:38:18 <uoryfon> You have to specify the amount of memory before running the program.
05:38:28 <pikhq> coppro: No, there's always a bound.
05:38:28 <madbrain> what if the amount of memory is input dependent? :D
05:38:32 <coppro> yes, so any implementation of C is not Turing-complete
05:38:48 <pikhq> ... And so C is not Turing-complete.
05:38:56 <uoryfon> A Turing machine can't simply say how much memory it needs.
05:38:58 <Gregor> Good lawd, how are we somehow on this again X_X
05:39:21 <pikhq> coppro: Translate the following to C: [>]
05:39:26 <pikhq> Go on, I'm waiting.
05:39:48 <uoryfon> coppro, why do you think it is merely any implementation of C, rather than C itself, that is not Turing-complete?
05:39:53 <pikhq> coppro: Not a valid translation.
05:39:53 <madbrain> well, iirc interpreters for other turing complete languages will probably have a 4gb bound too :D
05:40:23 <pikhq> Not a valid translation. +[>] uses infinite memory. while(); does not even compile.
05:40:46 <coppro> uoryfon: Because for any Turing machine, you can generate an implementation of C to simulate it
05:40:51 <pikhq> madbrain: Yes, but they're not required to be bound by definition.
05:40:53 <madbrain> more like while(1){ malloc(1);}
05:40:58 <pikhq> coppro: No you can't.
05:41:29 <pikhq> madbrain: More like void*p; while(*p++);
05:41:31 <Gregor> How many times must this channel have this argument?
05:41:44 <coppro> any nonhalting Turing machine can be simulated by having the C program not halt
05:41:47 <oklopol> Gregor: this is the fourth time i've seen i think, must be one hundredth for you?
05:41:58 <Gregor> I bought a USB infinite tape JUST so I'd never have to have this argument again.
05:42:02 <oklopol> i mean you've been here since the middle ages
05:42:02 <Gregor> It's at /dev/infinite_tape
05:42:21 <Gregor> cpressey, who has recently reappeared, has been here far longer than me.
05:42:27 <Gregor> calamari has been here for a bit longer than me.
05:42:31 <uoryfon> coppro: would you say that every Turing machine can be simulated by an FSM?
05:42:32 <pikhq> madbrain: That may halt in a compliant C implementation.
05:42:35 <Gregor> clog has been here longer than me.
05:43:33 <uoryfon> You can't just make something dependent on whether the machine halts or not; that would be solving the halting problem.
05:43:38 <madbrain> let's make a nice esoteric language
05:43:39 <oklopol> Gregor: i didn't say you were the first one here
05:44:02 <coppro> uoryfon: yes; not by the same one, though
05:44:07 <oklopol> uoryfon: of course you can, when talking about the existance of things
05:44:43 <madbrain> ok how about a problem like this: to design something like a super massively parallel cpu, you'd need something that doesn't have a gazillion data dependencies
05:44:51 <pikhq> bsmntbombdood: What does pointer wraparound do?
05:44:52 <uoryfon> coppro: so FSMs are Turing-complete?
05:44:56 <madbrain> which is an unfortunate property of RAM
05:45:15 <madbrain> RAM is, like, the least parallel thing ever
05:45:18 <coppro> uoryfon: I'd say that all FSMs are Turing complete. You cannot construct a single Turing-complete FSM
05:45:28 <uoryfon> coppro: I think you need to rethink your definition of Turing-completeness.
05:45:35 <Gregor> calamari: He was here a couple days ago, and a day or so before that.
05:45:38 <coppro> or I'm just doing this to annoy you
05:45:51 -!- GreaseMonkey has quit (Read error: 104 (Connection reset by peer)).
05:45:54 <oklopol> coppro: and once you have a definition of turing-completeness, do share it
05:45:57 <madbrain> and not infinite like you'd need
05:46:02 <pikhq> coppro: And are therefore not Turing-complete.
05:46:10 <uoryfon> Well, then, you can't construct a single Turing-complete C program.
05:46:25 <coppro> [22:45:13]<coppro>or I'm just doing this to annoy you
05:46:34 <Gregor> lament still comes around, doesn't 'e?
05:46:38 <madbrain> uoryfon: well, you'd need an implementation of C where pointers are not fixed size
05:46:51 <coppro> madbrain: such is forbidden by the standard
05:46:53 <pikhq> madbrain: Which is impossible.
05:47:02 <madbrain> which would be sorta neat but would not have any practical use and probably violate the standard yes
05:47:10 <oklopol> Gregor: he seems to come everytime he's reminded of the channel at least
05:47:29 <calamari> oklopol: which is why I added this channel to my autojoin list ;)
05:47:30 <oklopol> a few times he's seen me on another chan and instantly joined here :P
05:47:34 <Gregor> He's the first recognized name in the log (on the first day of the log)
05:48:12 <calamari> were any of you guys on the mailing list?
05:48:22 -!- GreaseMonkey has joined.
05:48:25 <pikhq> I'm a relative n00b, myself.
05:48:27 <GreaseMonkey> [18:47:27] <GreaseMonkey> ...cpressey appeared again?
05:48:32 <madbrain> how do you make a practical super-parallel processor?
05:48:33 <Gregor> I barely remember that there was a mailing list.
05:48:49 <Gregor> GreaseMonkey: See recent log :P
05:49:02 -!- uoryfon_ has joined.
05:49:03 <coppro> madbrain: message passing
05:49:14 <madbrain> coppro: that sounds like a bitch to code for
05:49:16 <pikhq> http://tunes.org/~nef/logs/esoteric/04.01.01 That's an impressive genesis. :P
05:49:34 <coppro> madbrain: go learn erlang
05:49:41 * pikhq greps for conversation
05:49:55 <madbrain> basically it's manual parallelization
05:50:01 <Gregor> I'm thankfully not the most senior member of this channel, but I believe I am the most simultaneous people/bots on this channel :P
05:50:19 <pikhq> Gregor: Quite likely.
05:50:29 <coppro> it's hardly manual parallellization. It's manual communication between independent, parallel parts
05:51:13 <madbrain> sounds like it'd be sensible to timing differences
05:51:35 -!- uoryfon_ has quit (Client Quit).
05:51:45 <GreaseMonkey> fortunately, asiekierka appears to be older than clog.
05:53:22 <Gregor> This channel has a decent attrition/repopulation rate.
05:53:39 <Gregor> I never come back after ignoring it for a few months and find nobody I recognize, but I usually find somebody new.
05:53:47 <GreaseMonkey> i remet someone i knew over some now pretty much dead forums via youtube, we could have also potentially clashed over minecraft or through a sonic hacking group -> monsquaz (don't ask what this is) -> mod shrine
05:54:07 <GreaseMonkey> so before we remet he was already a friend-of-a-friend somewhere
05:54:11 <madbrain> coppro: the idea is, if you can eliminate the global dependency caused by stuff like RAM or side effects, you can basically parallelize everything automatically
05:54:20 <Gregor> GreaseMonkey: What's monsquaz?
05:54:52 <madbrain> even execution order stuff can be parallelized by stuff like functionnal programming
05:54:53 <GreaseMonkey> Gregor: you don't want to know... it's some sonic-hacking injoke group i suppose
05:55:09 <pikhq> Gregor: You never recognize me?
05:55:32 <Gregor> pikhq: I NEVER come back ... and find NOBODY I recognize.
05:55:33 <GreaseMonkey> the latter is disturbing, the former is pretty much a cyberbullying ring and that's why i left
05:55:47 <pikhq> Parsing English is *hard*.
05:55:59 <oklopol> don't worry, us foreigners got it right
05:56:22 <GreaseMonkey> man kattywampus.it is great even if i do say so myself
05:56:23 <oklopol> except i have no idea what GreaseMonkey and madbrain are
05:56:37 <GreaseMonkey> oklopol: i've been here before, like, a few years ago
05:57:00 <pikhq> I recall GreaseMonkey being around when I first entered.
05:57:02 <GreaseMonkey> and madbrain... first sighted in digitalmzx/#mzx, second in #mod_shrine, third here.
05:57:05 <oklopol> lol, obviously i remember you
05:57:08 <pikhq> madbrain I think just showed up one day.
05:57:10 <oklopol> i mean i don't know where you live
05:58:33 <madbrain> pikhq: basically I found the channel from the esolang wiki I think
05:58:50 <pikhq> madbrain: Same here.
05:59:03 <coppro> I found it from a whois
05:59:06 <pikhq> I was approximately a few feet from here, physically.
05:59:52 <Gregor> People found the channel from the esolang wiki.
06:00:10 * Gregor was here when the esolang wiki started, and that should not make me feel like I've been here a long time :P
06:00:13 <pikhq> Gregor: The wiki is actually quite handy.
06:00:33 <pikhq> Especially that Brainfuck algorithms page.
06:00:51 <madbrain> suppose I want to launch an esoteric language, make a page on the wiki, kdone
06:00:53 <Gregor> Nono, don't get me wrong, the esolang wiki is awesome, it's just for some reason I didn't ever think of the this-channel-to-esolang-wiki link as bidirectional.
06:01:54 <GreaseMonkey> unfortunately i've just realised a bit of undefined behaviour
06:04:44 <GreaseMonkey> madbrain: learn from me: if it's not PD people will sometimes scream at you
06:05:08 <GreaseMonkey> your interpreter, on the other hand... if you want it archived then PD should be fine
06:05:29 <GreaseMonkey> if it's really proprietary people will probably bin the link
06:05:50 <madbrain> I don't actually care about licenses
06:05:52 <Gregor> PD is overboard, but it ought to be under a liberal F/OSS license.
06:07:57 <GreaseMonkey> the spec needs to be PD if you want it on the esolang wiki
06:08:11 <pikhq> It should at a bare minimum not make Stallman cry.
06:08:21 <GreaseMonkey> interpreter, on the other hand, should ideally be FOSS.
06:08:49 <Sgeo__> Why would anyone make a non-PD esolang spec?
06:08:57 <madbrain> like I said, I don't actually care about license
06:09:08 <Sgeo__> Is someone actually interested in making money off an esolang/
06:09:10 <GreaseMonkey> Sgeo__: if you're like me, you're probably not thinking straight
06:09:37 <Sgeo__> I never thought for an instant that I'd make money off PSOX
06:09:55 <madbrain> sgeo: the only thing that sounds kinda like that is the forth dude
06:10:33 <madbrain> colorforth didn't make money I think
06:10:57 <pikhq> ... Money? Esolang?
06:10:59 -!- uoryfon has quit (Read error: 110 (Connection timed out)).
06:11:01 <madbrain> but the guy made money earlier, dunno with what
06:11:07 <pikhq> Only the "plain English" guys were that crazy.
06:11:21 <Sgeo__> pikhq, "plain English" guys?
06:11:30 <pikhq> https://www.osmosian.com/
06:11:33 <pikhq> This bit of hilarity.
06:13:03 <Sgeo__> Oh, you have to email it from them?
06:13:12 <madbrain> sounds like englishified basic or something
06:13:46 <pikhq> Somewhere in the logs is a link to the compiler...
06:14:24 <pikhq> http://www.osmosian.com/cal-3037.zip
06:14:27 <pikhq> They suck at charging.
06:15:12 <GreaseMonkey> whee i think i've solved #195 "another speed control"
06:15:41 <Sgeo__> What language was the first compiler ever written in?
06:15:49 <Sgeo__> Erm, first "Plain English"
06:15:55 <pikhq> They claim to have the most advanced compiler tech.
06:16:06 <Sgeo__> Who cares how fast it is?
06:16:13 <Sgeo__> What's interesting is the language itself
06:16:17 <madbrain> what does that english compiling shit is
06:16:26 <Sgeo__> "We are all, by any practical definition of the words, foolproof
06:16:26 <Sgeo__> and incapable of error. Nevertheless..."
06:16:39 <pikhq> And they charge for it.
06:17:17 <Sgeo__> "If the copy is greater than the number, break."
06:17:22 <pikhq> "Recompiles itself in 3 seconds", they claim.
06:17:40 <pikhq> Just a second while I test PFUCK's self-compile time.
06:18:25 <pikhq> Clearly, I am the most awesome compiler author.
06:18:52 <Sgeo__> "Now I know that right about here most programming books would drum u
06:18:52 <Sgeo__> some dippy little "Hello, World" program and expect you to be impressed
06:18:52 <Sgeo__> but I'd like to suggest that we skip the kid stuff and start makin' babies."
06:19:51 <Sgeo__> ..and it doesn't exactly give syntax info or any code. That is just showing how to put a demo calendar into the IDE and compile
06:20:37 <pikhq> It's actually undocumented.
06:20:43 <madbrain> wait, you mean this has no documentation?
06:20:43 <Sgeo__> Finallly, something interesting
06:20:51 <Sgeo__> Page 11 of the documentation
06:21:11 <pikhq> And has a rather simple compiler.
06:21:41 <pikhq> With silly, cutesy names for thinks.
06:22:04 <Sgeo__> "I don't do nested IFs. Nested ifs are a sure sign of unclear thinking, and
06:22:04 <Sgeo__> that is something that I will not countenance. If you think this cramps your
06:22:04 <Sgeo__> style too much, read my code to see how it's done. Then think again."
06:22:45 <oklopol> i wonder how they got such fast compile times
06:22:56 <pikhq> oklopol: By being trivial.
06:23:11 <Sgeo__> "I don't do nested LOOPS. Nested loops indicate that you have failed to
06:23:11 <Sgeo__> properly factor your code into manageable chunks, and I don't want you
06:23:11 <Sgeo__> regretting that later. Time after time my otherwise omniscient creators
06:23:11 <Sgeo__> thought they could get away with it, and time after time they were wrong"
06:23:18 <oklopol> "I don't do recursion. Recursion is a sure sign of thinking, and that is something i will not countenance."
06:23:36 <pikhq> They emply "advanced techniques" like "a hash table" in the compiler.
06:24:23 <oklopol> well, does it do recursion?
06:24:47 <Sgeo__> I don't see anything that says it doesn't *shrug*
06:24:59 <madbrain> more like, will it blow up if I try to use it like it was scheme
06:25:05 <oklopol> i wonder how many fucking times i've written the same function that enumerates every subset of size n... and i never save it anywhere
06:25:23 <pikhq> "Repeat." appears to be a tail call.
06:25:43 <oklopol> pikhq: repeat this function?
06:25:53 <Sgeo__> "You probably noticed that I mentioned comments on the preceding page, but
06:25:53 <Sgeo__> didn't say what they look like. I did that on purpose. I don't like comments. "
06:26:02 <GreaseMonkey> #311 "Follow directions II" solved in (5,4,4) instructions
06:26:22 <Sgeo__> "Most comments are either useless, or worse. Useless, if they merely reiterate
06:26:22 <Sgeo__> what the code already says. Worse, if they attempt to clarify unclear code
06:26:22 <Sgeo__> that should have been written more clearly in the first place."
06:26:43 <Sgeo__> "You will find that my editor displays simple comments in a delightful sky blue
06:26:43 <Sgeo__> making it easy for you to see what I'm going to ignore. And no, you can't
06:26:43 <Sgeo__> change the color. My creators have assured me that this is the right color."
06:26:52 <pikhq> "(3) Anything more than this falls under the heading "garbage collection" and,
06:26:52 <pikhq> as every manly programmer knows, garbage collection is for sissies.
06:27:32 <pikhq> It has manual memory management.
06:27:43 <madbrain> obviously it's our fault for being terrible if we want to use anything neat
06:27:56 <oklopol> that's a bit too direct an admission of not being serious
06:28:12 -!- tombom has joined.
06:28:53 <pikhq> So much of the language screams "No, I don't know how to do this right, and I don't care."
06:29:03 <pikhq> madbrain: ... They charge for this shit.
06:29:12 <pikhq> YOU CAN PAY MONEY FOR THAT ZIP FILE.
06:29:22 <pikhq> (they then email the link to you. :P)
06:29:29 <Sgeo__> "The third kind of comment that I understand is the qualifier." ... "Note that qualifiers are not like simple comments and remarks. Qualifiers are
06:29:30 <Sgeo__> considered part of the program and affect how the compiled code executes."
06:29:36 <madbrain> like, even C is higher level than this :(
06:30:02 * Sgeo__ vaguely realizes that Python also has things like comments that can effect execution. But it doesn't call them comment
06:31:42 <pikhq> madbrain: This is more like a poor assembler.
06:32:01 <madbrain> what sort of data types does it have
06:32:15 <madbrain> nothing variable sized of course
06:32:26 <pikhq> madbrain: Well, there's your int, your string, your real, your reference, and you can do structures.
06:32:28 <Sgeo__> It has strings, I think
06:32:31 <oklopol> the only things a manly programmer needs, ints, bools and strings of sub256 length.
06:32:35 <Sgeo__> pikhq, I thought it didn't have reals
06:32:56 <pikhq> Floats? Bah, humbug!
06:33:24 <Sgeo__> "I don't do REAL NUMBERS. I do ratios, very elegantly, but I don't do reals.
06:33:24 <Sgeo__> My page editor reduces and enlarges and sizes shapes proportionately in and
06:33:24 <Sgeo__> out of groups and it does it all without real numbers. Master Kronecker was
06:33:24 <Sgeo__> right when he said, in German, "The dear God created the whole numbers; all
06:33:24 <Sgeo__> else is the work of man." I'm not interested in menschenwerk."
06:33:50 <madbrain> you're telling me this doesn't have floating point
06:34:14 <pikhq> They then give a "ASCII" table. By ASCII, they mean "Code page 1250".
06:34:42 <pikhq> It doesn't have inline assembler. You can, however, manually assemble something and use that.
06:35:08 <pikhq> intel $8B8508000000.
06:35:30 -!- Wareya has quit (Read error: 110 (Connection timed out)).
06:35:50 <oklopol> how do you unzip in python
06:35:56 <oklopol> wasn't Sgeo__ a pythonist at least
06:36:10 <oklopol> not really a question, i know he was
06:36:30 <pikhq> The worst part is, they probably think this is high-level. Should replace them with a small Haskell function.
06:36:35 -!- jpc has quit ("I will do anything (almost) for a new router.").
06:36:52 * Sgeo__ is also someone who needs to go afk occasionally
06:37:04 <madbrain> "Over 100 Pages of Documentation "
06:37:15 -!- jpc has joined.
06:37:45 <Sgeo__> oklopol, http://docs.python.org/library/zipfile.html
06:38:18 <pikhq> madbrain: Dear God, I think I've got more than 100 pages of documentation just from the man-pages tarball. :P
06:38:47 <pikhq> Heck, my Emacs manual is nearly 600 pages.
06:38:57 <pikhq> And that's not comprehensive.
06:40:13 <pikhq> "They pray for guidance. Then they consider deleting the offending feature
06:40:14 <pikhq> altogether, to resolve the problem and prevent "feature creep" at the same
06:40:14 <pikhq> time. Next, they study the code, hoping to simply "discern" what the problem
06:40:14 <pikhq> is. If the bug has not been found, they pick an appropriate spot and insert a
06:40:14 <pikhq> buzz. If they hear it on the next run, they pick another spot further down the
06:40:16 <pikhq> line, and try again. If there is no buzz, they repeat the entire process.
06:41:21 * Sgeo__ tended to do that with Python
06:41:32 <Sgeo__> The Visual Studio C# debugger really opened my eyes
06:42:22 <pikhq> In Tcl, I made a breakpoint function that started a REPL and inserted it into relevant places.
06:42:28 <madbrain> disclaimer: I'm not a professionnal coder
06:42:37 <pikhq> In Haskell, I think.
06:43:51 <madbrain> "If you are bilingual, you can use our compiler for engineering Plain French or Plain Croatian."
06:43:55 <oklopol> Sgeo__: oh lol i mean unzip after calling zip
06:44:08 <pikhq> How's about Plain C?
06:44:17 <oklopol> well not after it, just the operation of splitting elements of a list into two lists
06:44:30 <oklopol> ...well not exactly that either, maybe i should just give an example
06:44:45 <oklopol> [(1,2),(3,4),(5,6)] => [1,3,5], [2,4,6]
06:44:59 <oklopol> i assume there's something for that because there is in J ;)
06:48:10 <pikhq> oklopol: Dunno about Python, but in Haskell that's "unzip".
06:48:26 <oklopol> oh, i guess that's where i got the name :P
06:48:39 <pikhq> Well, except that it's [(1,2),(3,4),(5,6)] => ([1,3,5],[2,4,6]) :P
06:48:55 <pikhq> unzip :: [(a,b)] -> ([a],[b])
06:48:58 <oklopol> doesn't haskell let you omit ()'s too
06:49:01 -!- puzzlet has joined.
06:49:23 <Sgeo__> http://docs.python.org/library/functions.html
06:49:27 <Sgeo__> zip() in conjunction with the * operator can be used to unzip a list:
06:51:06 <oklopol> but why not have an unzip, me asks
06:52:49 <coppro> because it's needless?
06:53:09 <pikhq> coppro: By that notion, all of Prelude that is not IO is needless.
06:53:24 <pikhq> (seriously, all the rest is fairly trivial pattern matching)
06:53:36 <pikhq> (... And recursion, obviously)
06:58:08 <oklopol> coppro: because you'll need to write it yourself otherwise. it'll just be trivial to write if it's a special case of zip
06:58:30 <oklopol> but it would be trivial without using zip as well
06:59:10 <coppro> it takes a list (conceptually) and returns a list
07:04:57 -!- FireFly has joined.
07:10:36 <oklopol> where's ais when you need one
07:11:18 <Sgeo__> He's hiding as.. s something
07:11:49 * Sgeo__ looks over at his own nick, and goes to deny everything
07:13:04 <FireFly> Wait... what was so hard with the Gridlock one?
07:13:13 <oklopol> what's the gridlock one, link
07:13:18 -!- bsmntbombdood_ has joined.
07:13:24 <FireFly> http://robozzle.com/js/play.aspx?puzzle=882
07:15:41 <oklopol> probably nothing, i don't even remember solving it
07:16:13 <oklopol> turn 180 at greens, 90 at reds
07:16:27 <oklopol> already forgot what it looked like :D
07:18:17 <Sgeo__> Can't have the computer beeping at me, so bye
07:18:17 <oklopol> but that's like optimizing how you put your socks on
07:18:35 <Sgeo__> oklopol, there's indications when you get shortest solution
07:20:20 -!- Sgeo__ has quit ("Leaving").
07:23:27 -!- zzo38 has joined.
07:24:33 <fizzie> FireFly: I don't think there was nothing so hard about Gridlock; it's just that I initially did it with 8 commands (I might have had a ↑↑↑-function there, or some such nonsense) and people here complained.
07:24:42 -!- bsmntbombdood has quit (Read error: 110 (Connection timed out)).
07:25:39 <oklopol> i prefer my solutions long and robust
07:27:20 <oklopol> ais523: thought maybe you'd come if i highlighted you. i'm not sure how likely that is.
07:27:32 <fizzie> I'd prefer long solutions too, but they keep being thrifty with those command slots.
07:28:47 <fizzie> oklopol: Maybe you have to say his name thrice? I think that works for Hastur.
07:29:01 <zzo38> The file zee1.ogg is in fact not bad but why does sox command, when playing back a file in the Windows command-line window, to make a mess when you try to scroll the window while it is playing?
07:30:10 <zzo38> fizzie: No, it says "HASTUR HASTUR HASTUR HASTUR HASTUR HASTUR HASTUR HASTUR HASTUR HASTUR HASTUR HASTUR HASTUR HASTUR HASTUR HASTUR HASTUR HASTUR HASTUR HASTUR HASTUR HASTUR HASTUR HASTUR HASTUR" or in other words, any number of times, including too much
07:30:22 <zzo38> (I meant the scroll)
07:30:26 <oklopol> ais523: i have more than 7 bits of information of interest to you
07:34:23 <zzo38> I have also done 882 in initially in 8 commands, but now I did it in 5 commands
07:35:51 <oklopol> it takes 3 if you do what GreaseMonkey suggested
07:40:30 <zzo38> But now I'm trying 883 (it is similar but all blue). I just typed in 883 and see what it did.
07:41:18 <fizzie> The part of the campaign sequence from '"960" on blue' to 'Linked List II' was nice; there was nothing to get stuck on.
07:41:51 <oklopol> fizzie: do you go from hardest to easiest now?
07:42:47 <fizzie> oklopol: I go based on the names mostly.
07:43:01 <fizzie> 883 was trivial if you don't mind being inelegant and filling all the command slots.
07:44:31 <fizzie> Seems there are some 11-command solutions submitted too, though.
07:46:28 -!- calamari has quit ("Leaving").
07:46:59 <fizzie> But it is! The 13-command solution for 883 I have has absolutely no logic in it, just pure "go-there" bruteforcing.
07:47:44 <oklopol> i don't think the 960 is that easy, even though, obviously, the idea is trivial
07:48:03 <oklopol> i just need a few more slots...
07:49:51 -!- FireFly has quit ("Leaving").
07:51:04 -!- tombom has quit ("Leaving").
07:51:51 <fizzie> I used all I got there.
07:55:35 <oklopol> okay that was weird, i go almost everything, then suddenly the guy goes crazy and starts circling around in the blue zone :D
07:56:06 <oklopol> very common thing with recursion that, almost getting it right, but having some details wrong...
07:57:39 -!- zzo38 has quit (Remote closed the connection).
07:58:19 <oklopol> okay, wasn't exactly hard, i just still have a hard time making recursion puzzle-concise
07:58:58 -!- jpc has quit ("I will do anything (almost) for a new router.").
07:59:36 -!- jpc has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:03:08 <Deewiant> Linked List II was cute; still can't do 883, though.
08:04:28 <fizzie> Deewiant: You could if you stopped trying to be clever and just programmed in some suitable route taken in 882.
08:04:56 <fizzie> (If you can call that "programming", really.)
08:05:36 <oklopol> gridlock took me about 30 sec
08:05:43 <Deewiant> I can think of routes to program, just not how to program them.
08:06:10 <Deewiant> Ah, here we go. One cell free.
08:07:03 <oklopol> yeah just do what you did in 882
08:07:11 <Deewiant> That's what I tried for the better part of 10 minutes.
08:07:21 <Deewiant> Then I did linked list II in about two mintues.
08:07:34 <Deewiant> Then I came back and stared at 883 for another minute before figuring it out.
08:08:13 <fizzie> Deewiant: Your brain works in a strange way; linked list 2 took me quite many minutes of bugfixing.
08:09:19 <Deewiant> I don't typically need to bugfix on any of these; once I have an idea that fits, it works. The times when stuff doesn't work is when I don't have an idea or when it doesn't fit.
08:09:36 -!- madbrain has quit ("Radiateur").
08:10:46 <Deewiant> Still, I think I'm improving. Most showstoppers for me now tend to be the ones that require "double recursion" or whatever its canonical name is, e.g. 141
08:12:49 -!- adam_d has joined.
08:15:29 <fizzie> Heh, cumulative effect (597) was fun, if only for the twirling-around... and also the first one I did on the phone.
08:25:41 -!- GreaseMonkey has quit ("HydraIRC -> http://www.hydrairc.org <- Nobody cares enough to cybersquat it").
08:29:35 <oklopol> heh, i think the reason i couldn't quite crack linked list ii was i had totally misunderstood how the colors were positioned
08:29:44 <oklopol> i should really look at these puzzles.
08:38:43 -!- Slereah has quit (Read error: 110 (Connection timed out)).
08:53:46 <fizzie> Wow, "Incomplete grid" had a huge number of useless slots; F1 and F2 had 5, and F3 had 10 (!); used 5 of F1, 2 of F2 and 0 of F3.
08:55:46 <fizzie> Or actually only F1; so 15 extra slots and two extra functions.
08:58:34 <oklopol> did you use all slots for linked list?
09:00:07 <fizzie> A lot, but maybe not quite all of them.
09:01:51 <oklopol> i had one empty slot, but it was only after tons of spec optimization
09:02:12 <oklopol> i have a verbose intuition
09:03:27 -!- bsmntbombdood__ has joined.
09:17:42 -!- adam_d has quit (Read error: 110 (Connection timed out)).
09:20:15 -!- bsmntbombdood_ has quit (Read error: 110 (Connection timed out)).
09:33:32 -!- bsmntbombdood_ has joined.
09:33:41 -!- Slereah has joined.
09:49:35 -!- bsmntbombdood__ has quit (Read error: 110 (Connection timed out)).
09:52:43 -!- jpc has quit (Read error: 110 (Connection timed out)).
09:54:57 -!- scarf has joined.
09:56:16 <fizzie> scarf: Were you the same thing as ais523?
09:56:29 <scarf> fizzie: /ns info me
09:56:34 <scarf> NickServ knows I'm ais523
09:56:45 <fizzie> Yes, I sort of thought so because of the cloak.
09:56:55 <fizzie> Anyway, oklopol has more than seven bits of information for you.
09:57:05 <fizzie> Unfortunately he did not choose to reveal the contents to us.
09:57:58 <fizzie> Not just any information, in fact; information "of interest".
10:05:49 <scarf> meanwhile, it seems that 1.0.0.0/8 was allocated
10:06:03 <scarf> they must be running really low on addresses...
10:16:15 <Ilari> The block to allocate is choosen at random.
10:17:36 <scarf> the allocation of any /8 is worrying, thouhg
10:17:56 <Ilari> Its allocation to RIR. And yes, one more block allocated at IANA level...
10:22:59 <Ilari> At that level, following blocks are free: 5, 14, 23, 31, 36, 37, 39, 42, 49, 50, 100-107, 176, 177, 179, 181, 185, 223 (24 blocks, 384Mi addresses (minus the ones lost due to allocation blocking, network addresses and broadcast addresses).
10:24:09 <Ilari> And of the remaining 26 before this allocation, 1/8 was probably the worst block.
10:25:09 <Ilari> The amount of unauthorized use and unauthorized routes leaking.
10:25:38 <scarf> I think they banned things like 1.2.3.4 pre-emptively
10:25:58 <Ilari> Yes, APNIC reserved those.
10:26:29 <scarf> amusingly, Wikipedia has edits from 1.2.3.4
10:26:37 <scarf> I think it must have been a dev testing checkuser, or something
10:27:43 <Ilari> The first 3 /16s in that block are probably the worst w.r.t unauthorized use / unauthorized routes.
10:30:03 <Ilari> Especially the 1.1/16 block.
10:41:11 <scarf> ASes shouldn't be going around announcing 1/8 addresses, though
10:41:26 <scarf> and any use of it inside an AS or smaller network is their own fault
10:45:57 <fizzie> "(Mar's Law) Everything is linear if plotted log-log with a fat magic marker."
10:49:03 -!- scarf has quit.
10:49:12 -!- scarf has joined.
10:51:24 -!- Ilari has quit (Read error: 60 (Operation timed out)).
10:57:50 <oklopol> the world would be a better place if everything was linear
11:05:23 <scarf> oklopol: not really, overtaking would be really difficult
11:05:33 <scarf> and you'd only have two people you could ever meet in RL, ever
11:05:45 <scarf> (I assume you could use radio waves or something for longer-distance communication, they go through people)
11:11:06 -!- Ilari has joined.
11:11:06 <oklopol> i wasn't thinking one-dimensional, more that all physics was linear
11:12:13 <oklopol> a world where acceleration is impossible
11:31:54 <scarf> then nobody could move
11:31:59 <scarf> or stop moving, if they were already moving
11:36:23 <scarf> http://ipv4depletion.com/?page_id=4 is interesting
11:36:59 <scarf> hmm, what's the command-line command to look up DNS?
11:37:15 <scarf> preferably, one that lets you pick a different DNS for the single command, and which can retrieve AAAA records
11:38:59 <Ilari> -t <type> to set type to look (any for all types), @<addr> to set address, and then name to look up after that.
11:39:57 <scarf> hmm, seems that the local DNS here has ipv6 addresses
11:40:05 <scarf> even though I don't think the local network connectivity does ipv6
11:40:56 <Ilari> Hmm... Freenode IPv6 addresses don't seem to work, but querying .com nameservers over IPv6 does work.
11:43:45 <scarf> heh, it seems that smuggle.intercal.org.uk and select.intercal.org.uk are on separate machines
11:43:52 <scarf> both accessible over both ipv4 and ipv6
11:46:24 <scarf> one of the worrying things that is coming out from the Slashdot article I'm reading is that some people apparently blackhole the whole of APNIC in an attempt to stop spam
11:46:28 <scarf> which strikes me as a little indiscriminate
11:54:45 <Ilari> Then there are those that blackhole all chinese address ranges.
12:03:04 <scarf> APNIC would be a bigger blackhole then just China, wouldn't it?
12:04:33 <Ilari> Yes. And includes stuff like .jp and .au too.
12:05:22 <scarf> dig was just what I was looking for, by the way
12:12:37 <fizzie> "host" is another such tool, but dig is more DNS-like in its replies.
12:15:51 <oklopol> fun, i should be at uni in 4 minutes, and the door is broken, can't get out.
12:16:09 <oklopol> wonder who i'm supposed to call in a situation like this
12:17:54 <scarf> is it a door you own, or a university-owned door?
12:18:01 <scarf> if the first, call a locksmith
12:18:04 <scarf> if the second, I don't know
12:18:15 <scarf> although it may be worth calling security (on a non-emergency number)
12:18:19 <scarf> especially as it's a fire risk
12:19:52 <oklopol> but turns out there's a keyhole on the inside as well
12:21:39 <oklopol> there's also this other lock, i assumed that was broken or something, so i started unscrewing it to see what's inside, and now i've lost the screw i took out.
12:22:15 <scarf> shouldn't you be at uni already?
12:22:24 <scarf> it's more than 4 minutes since you had to be there 4 minutes ago
12:22:51 <oklopol> takes about 3 to get there, so not that bad
12:54:52 -!- FireFly has joined.
13:22:53 -!- Asztal has joined.
13:40:18 -!- Sgeo has joined.
13:40:51 <Sgeo> ehird was last visibly active on Reddit 7 days ago
13:49:42 <FireFly> That "plain english" thing reminds me of ORK
13:56:14 -!- rodgort has quit (Read error: 104 (Connection reset by peer)).
14:01:22 -!- scarf has changed nick to scarf|away.
14:02:15 -!- rodgort has joined.
14:09:29 -!- MigoMipo has joined.
14:12:38 -!- BeholdMyGlory has joined.
14:38:38 -!- scarf has joined.
14:38:58 <scarf> yay for going on IRC in the middle of marking people doing Java
14:39:38 <scarf> the fun thing is, most of them didn't turn up to the tutorials, so didn't manage to agree a time to be marked, making it more-or-less anarchy
14:39:46 <Gregor> Yay for anything that involves not doing Java.
14:54:31 <scarf> still, my current belief, based on 1 sample, is that knowing Java is all that it takes to get a job nowadays
14:54:48 -!- oerjan has joined.
14:55:38 * scarf wonders if INTERCAL would be more enjoyable to mark
14:55:55 <scarf> it has the advantage of not being Java, but there are several disadvantages in using it for teaching
14:57:41 <oerjan> well if anyone could enjoy marking it it would be you...
14:58:17 <Sgeo> Why is Java considered so horrible, exactly? And is C# considered better (except for the licensing BS)?
15:05:10 <Gregor> Most modern languages are at least a smidge multi-paradigm.
15:05:17 <Gregor> But even C is more multi-paradigm than Java is.
15:07:48 <Gregor> Want closures? Sure, we can kinda do that! Make the variables you want access to final, create an anonymous class with a single member function which takes no arguments (because that would be helpful) and returns Object, instantiate that, and then pass it 'round as a Runner object! That's so similar to closures it BLOWS MY MIND.
15:08:20 <Gracenotes> I just realized, I'm taking all 300-level courses this semester
15:08:31 <Gracenotes> this will either go well or very poorly
15:09:24 <Gregor> Course levels are meaningless.
15:10:40 -!- Pthing has joined.
15:11:52 <Gracenotes> Gregor: now it feels so much less dramatic >_>
15:12:36 <Gracenotes> okay okay. instance where levels matter: you need 3 300-level compsci courses before you can apply for grad courses
15:13:14 <Gracenotes> which is more of a department-specific thing
15:15:01 <Gracenotes> (by comparison, my other semesters have had 0, 1, and 1 300-level course respectively..)
15:15:54 <fizzie> We don't have that kind of levels at all. :/
15:16:43 <fizzie> The courses belong to various sort of "modules" or some-such that is somehow related to their difficulty. I think; I don't really know how it goes nowadays.
15:18:01 <fizzie> And some selection of them have the "suitable for people who already have their master's degree and are studying for a doctoral degree" flag on too.
15:23:54 <Gregor> Well I'm taking all 500-level courses.
15:24:26 <Gregor> (This week I am also teaching a 500-level course. Go me!)
15:28:58 <fizzie> Without knowing the scale, that doesn't say much. How high do the levels go?
15:29:45 <AnMaster> I was highlighted, out of scrollback
15:30:12 -!- cpressey has joined.
15:31:25 <AnMaster> Deewiant, btw I implemented BOOL in cfunge today, quite surprised me that it turned out to be using bitwise operators instead of logical ones. Since the fingerprint was described as "Logical functions"
15:34:43 <AnMaster> oh and I can't possibly implement RAND in efunge. It has an instruction for getting max range of integer randomness. But efunge uses bignum cells, and erlang's random:uniform/1 has no upper limit as far as I can tell.
15:35:29 <coppro> AnMaster: then pick an arbitrary limit and use it
15:36:33 <coppro> but that's what you must do!
15:37:56 <AnMaster> cfunge: speed and correctness (and no memory leaks) are more important than anything else. efunge: no arbitrary limits. Oh and ATHR (a fingerprint for async befunge threads)
15:38:06 <AnMaster> that's the goals you could say
15:38:43 <AnMaster> ATHR is still work in progress
15:38:54 <AnMaster> parts of it work, and some parts even have test cases
15:39:44 <AnMaster> coppro, I guess returning -1 could work, I use -1 for size of funge cell in y.
15:40:23 <AnMaster> since giving a size in bytes is meaningless if you don't have an upper limit
15:41:00 <AnMaster> coppro, bignum intercal would be interesting btw
15:41:04 <scarf> AnMaster: how is it possible to generate a uniform random number from 0 to infinity?
15:41:25 <AnMaster> scarf, it isn't, you *have* to give a limit. Just you can give any limit.
15:41:39 <coppro> is Ungefunge Turing-complete?
15:41:50 <scarf> couldn't you give -1 or 0, isn't that the typical efunge/befunge-108 reaction?
15:42:02 <scarf> (also, it should be -110 by now...)
15:42:12 <AnMaster> scarf, look at RAND http://www.rcfunge98.com/rcsfingers.html#RAND
15:42:17 -!- jix has quit (Read error: 60 (Operation timed out)).
15:42:39 <AnMaster> I think erlang allows you to keep separate seeds
15:42:57 <scarf> the considered-as-unsigned is fun too
15:43:02 -!- jix has joined.
15:43:03 <scarf> what exactly is (unsigned bigint)-1?
15:43:32 <scarf> I think that, in order to be compatible with other RAND implementations, you should wrap mod 2^64
15:43:33 <AnMaster> really erlang doesn't fit the rcs fingerprints very well
15:43:33 <oerjan> scarf: uniform number from 0 to infinity is not defined in usual probability theory. and if you try to define it you'd get that you select an incomprehensibly large number with probability 1
15:43:58 <scarf> I'm slightly surprised that there's an unusual probability theory that does describe it
15:43:58 <AnMaster> like one that more or less requires an union { float, int }; (FPSP)
15:44:10 <AnMaster> well I considering using type-tagged cells for it
15:44:21 <AnMaster> it could be done in erlang, just would be messy
15:44:23 <scarf> AnMaster: you can surely encode a bigfloat in a bigint somehow
15:44:32 <scarf> that strikes me as the obvious response
15:44:42 <AnMaster> scarf, ah but the precision is fixed. Also erlang only have double when it comes to floating point iirc
15:44:57 <AnMaster> except when packing/unpacking binary data
15:44:59 <coppro> AnMaster: reading the spec, it looks like you should return a magic value larger than every other for y
15:45:00 <scarf> oh, encoding a double as a bigint is even eaiser
15:45:07 <scarf> and IIRC, float = double is a valid implementation of C
15:45:21 <scarf> there so should be MAX_BIGINT
15:45:27 <AnMaster> scarf, sure it is. Just erlang throws an exception on NaN
15:45:28 <scarf> you can encode it as (unsigned bigint)-1
15:45:38 <scarf> use a non-signalling NaN?
15:45:42 <scarf> or does it not distinguish?
15:45:44 <coppro> just use an infinity atom
15:45:46 <AnMaster> scarf, no such thing in erlang indeed
15:46:14 <AnMaster> scarf, same goes for +/- inf for some unknown reason
15:46:39 <scarf> the floating-point standards distinguish between a huge number of different sorts of NaN
15:46:48 <AnMaster> yeah, didn't python use to do something similar some time ago?
15:46:51 <scarf> but quiet/signalling is the important distinction
15:47:05 -!- MizardX has joined.
15:47:07 <scarf> ("not a positive number" and "not a negative number" can also be intuited from the info given, I think)
15:47:20 <coppro> AnMaster: where is the RAND instruction defined?
15:47:31 <AnMaster> coppro, I linked it above: http://www.rcfunge98.com/rcsfingers.html#RAND
15:47:50 <AnMaster> that implements I, M, R, S and T
15:48:12 <scarf> hmm... SGNE looks like it could do with having some way to send a signal to another process
15:48:47 <AnMaster> scarf, half of his fingerprints are good, half are late night ideas. Almost all are underspeced and badly documented
15:48:51 <coppro> AnMaster: the spec suggests that cell 2 of the y instruction should return infinity
15:48:53 <AnMaster> at least he have test suites somewhere
15:49:03 <coppro> wait I already said that
15:49:05 <AnMaster> coppro, yeah but there is no such thing in bignum is there?
15:49:07 <scarf> AnMaster: IMO it just adds to the fun
15:49:22 <AnMaster> coppro, as in, you can always add one
15:49:34 <scarf> at least the whole FING/FNGR thing was fixed, it reminds me sort-of of OOXML mandating the leapyear bug
15:49:39 <AnMaster> (until you hit the memory limit of whatever arch you use)
15:50:01 <AnMaster> but I certainly think pushing a <RAM of computer> sized cell is a bad idea
15:50:36 <scarf> also, I note that UNIX effectively requires running as root
15:50:46 <scarf> which is a mindboggling thing to do with a Befunge fingerprint
15:50:55 <AnMaster> I won't implement it since I'm too scared to test it!
15:51:15 <coppro> why? it's allowed to error
15:51:29 <AnMaster> coppro, still need to check that it *would* work as root using a test suite
15:51:41 <scarf> (thing I randomly came across clicking on links; if you tried to mail someone not in /etc/passwd using sendmail, you got an error "scarf: not a typewriter")
15:51:51 <AnMaster> mycology + various other test suites give me a 80%+ line coverage of the code
15:52:07 <AnMaster> (that is just looking at executable lines of code of course)
15:52:18 <AnMaster> coppro, too easy to miss something.
15:52:25 <AnMaster> anyway, SGNE looks like a pita both for cfunge and efunge
15:52:37 <AnMaster> for efunge, well it could be running on multiple computers
15:52:38 <scarf> (because libc uses isatty in order to determine whether to line-buffer or block-buffer files, and doesn't always reset errno; it's like the whole error: success thing, just with a funnier message)
15:52:51 <scarf> (apparently this bug is reproducable on OS X even nowadays)
15:52:58 <AnMaster> to run the funge space process on another erlang node than the current IP is running
15:53:48 <AnMaster> also what is the parameter to S
15:53:53 <coppro> that's why Erlang is awesome
15:53:55 <AnMaster> I can't see it documented there
15:54:13 <AnMaster> coppro, actually I think it would require a few lines of code changes, since it uses ETS tables
15:54:29 <AnMaster> that are public, non-sync requiring writes won't go through the funge space daemon
15:54:54 <AnMaster> only bounds of funge-space updates are sent to it, and CAS (relative special synced get/put)
15:55:42 <AnMaster> coppro, and ets tables aren't available on remote nodes iirc. mnesia is yes but it uses a process that uses those ets tables
15:57:11 <AnMaster> really ATHR does strange and interesting things to the whole efunge
15:57:19 <AnMaster> I would hate to try to implement it in C
15:57:49 <AnMaster> scarf, another fingerprint on that page that makes no sense in bignum funges is LONG
15:58:07 <AnMaster> scarf, plus it even breaks programs if you change cell size
15:58:09 <scarf> AnMaster: on the contrary, I'd imagine that implementing double-size bignums is really easy
15:58:12 <AnMaster> which is why it is a bad idea (TM)
15:58:33 <AnMaster> scarf, yeah but programs won't be portable even between 32-bit cells and 64-bit cells (cfunge by default uses the latter)
15:58:51 <scarf> they'd be portable if they used the INTERCAL method
15:59:02 <scarf> as in, all constants must be single-cell, but you can make larger constants by doing arithmetic
15:59:22 <AnMaster> reminds me of ICAL there, I can't see how to do it for bignum
15:59:43 <scarf> for some extra fun, do IFFI bignum
15:59:52 <scarf> actually, that probably isn't very difficult
15:59:57 <AnMaster> scarf, IFFI, as in the cfunge<->c-intercal interface?
16:00:00 <scarf> as you'll be reflecting on things out of the range of the INTERCAL progrm
16:00:37 <scarf> quite for a bit, anyway, I'm trying to mark Java
16:00:55 -!- MissPiggy has joined.
16:01:18 -!- scarf has quit.
16:01:57 <AnMaster> hm erlang does have bitwise not
16:02:03 <AnMaster> how does that work for bignum...
16:03:28 <AnMaster> f = fun (N) -> io:format("~.2B~n~.2B~n", [N, bnot N]) end. was unhelpful
16:04:08 <AnMaster> 9> F(999999999999999999999999999999).
16:04:08 <AnMaster> 1100100111110010110010011100110100000100011001110100111011011110101000111111111111111111111111111111
16:04:08 <AnMaster> -1100100111110010110010011100110100000100011001110100111011011110101001000000000000000000000000000000
16:04:43 <AnMaster> I guess it is just change the sign until you try to pack it with <<>>
16:04:54 * oerjan subtly reminds AnMaster that scarf _is_ ais.
16:05:26 <AnMaster> oerjan, 1) I wasn't around when he changed to it afaik 2) why the nick change?
16:05:40 <oerjan> indeed i was SHOCKED, SHOCKED
16:05:58 <AnMaster> oerjan, also he could have said
16:06:01 <oerjan> also, whois is your friend
16:06:10 <AnMaster> oerjan, I don't whois everyone all the time
16:06:33 <oerjan> because some people have a habit of changing nicks regularly
16:06:48 <oerjan> indeed, which is why i was SHOCKED
16:06:59 <Deewiant> AnMaster: BOOL uses bitwise ops? How'd you infer that?
16:07:19 * oerjan was mostly thinking of ehird and ihope
16:07:24 <AnMaster> Deewiant, from the test suite and from checking rc98 code
16:07:39 <AnMaster> Deewiant, it tests for that it is bitwise
16:07:50 <AnMaster> oerjan, ah yes ihope, that was it
16:08:38 <oerjan> oh and fax, don't forget him
16:13:47 -!- oklopol has changed nick to oklofok.
16:14:22 -!- scarf has joined.
16:14:31 <scarf> ok, that bit of marking done
16:14:36 <scarf> did I miss anything important?
16:14:45 <oklofok> yes, you missed my relevant nick change
16:14:49 <oerjan> we revealed all your secrets BWAHAHA
16:14:53 <scarf> I would have lurked, but AnMaster kept pinging me and I was trying to mark someone's Java in front of the computer
16:14:57 <scarf> and all the pings were distracting me
16:15:11 <scarf> it behaved really weirdly, too
16:15:25 <scarf> the first time I ran it, it created a 0x0 unresizable window rather than a 600x400 one
16:15:37 <scarf> the second time, it drew the window at the right size but didn't draw anything in it
16:15:41 <scarf> and the third time, it worked
16:15:53 <scarf> this is without any recompilation or changing any of the relevant files in between
16:16:08 <scarf> and nothing in the code suggested that it was stateful
16:19:26 -!- oerjan has quit ("Good night").
16:19:40 <scarf> hmm... this reddit thread says that zip disks used to get hardware viruses
16:19:59 <scarf> if the disk was damaged, it would damage the drive heads of a drive it was inserted into
16:20:09 <scarf> in such a way that the drive then damaged all disks that were inserted in it from then on
16:20:55 <scarf> apparently this could go back and forth ad infinitum
16:21:04 <scarf> which would make it a really impressive example of a hardware virus
16:25:42 <AnMaster> well you could have said you were ais
16:25:53 <scarf> AnMaster: you mean it isn't obvious from my cloak and /ns info?
16:25:58 <scarf> do you not pay attention to join messages?
16:26:23 <AnMaster> scarf, also you joined before I reconnected to the bouncer. it only replays messages
16:26:59 <AnMaster> anyway your cloak is "gateway/web/freenode/x-nvokymtkctncoxtg"
16:28:27 <scarf> it isn't normally, though
16:28:36 <scarf> and I've been online at the same time as you plenty of times over the last few days
16:31:13 <scarf> AnMaster: amusing typo
16:31:43 <scarf> also, relatively common real word that isn't taken
16:33:17 <scarf> it wasn't "ais523" though
16:33:57 <AnMaster> yeah getting from ais523 to scarf sounds hard
16:38:50 <AnMaster> scarf, btw ever considered writing a befunge backend for gcc?
16:39:07 <scarf> it would be rather bad befunge anyway
16:39:14 <scarf> gcc is very specialised for outputting asm
16:39:24 <AnMaster> and you could write a bf->befunge compiler
16:39:25 <scarf> and the less similar its output lang is to asm, the worse it performs
16:39:38 <AnMaster> oh? someone tried it for other languages?
16:40:07 <oklofok> my educated guess is that was an educated guess
16:41:57 <scarf> AnMaster: consider I spent months trying to figure out how gcc worked
16:42:12 <scarf> the answer is, it mostly doesn't; the code seems to only be tested in the cases that are actually used
16:44:42 <cpressey> See, I saved all that time by just assuming that :)
16:45:25 <oklofok> i was under the impression gcc was a very well coded piece of shit
16:45:35 <oklofok> where piece of shit means program
16:46:18 <pikhq> Nope. More like "very well tested".
16:46:30 <pikhq> Nothing about it says "well coded".
16:47:01 <oklofok> i don't know where i've gotten that impression
16:47:20 <oklofok> well "very well tested", maybe i've just heard rumors it doesn't have many bugs.
16:47:29 <oklofok> i haven't really used it much
16:49:14 <pikhq> It's rather well-known as not having much internal documentation, and being one of the slowest compilers...
16:50:13 <Gregor> But extremely conformant :)
16:55:03 <pikhq> I despise it, but I despise it less than most other C compilers. :P
16:59:16 -!- tombom has joined.
17:06:18 <Gregor> Halp, more wikipedians are invading #esoteric
17:06:32 <coppro> quick, fight back with tvtropers
17:06:48 <Gregor> That idea is so bad it's horrible!
17:06:59 <scarf> I don't know, the wikipedians here tend to be pretty good
17:07:13 <scarf> also, TVTropes is not your personal army
17:07:25 <Gregor> g++ is hilaaaaaaaaarious
17:07:25 <AnMaster> now that is not only messy and such. it is also buggy
17:07:33 <scarf> AnMaster: it's a gcc wrapper, more or less, I think
17:07:59 <Gregor> AnMaster refers not to the binary "g++", but to GCC's C++ support, namely cc1plus
17:08:20 <pikhq> Strictly speaking, gcc itself is merely a wrapper.
17:08:25 <scarf> hmm, the bits of gcc I looked at were mostly past the language-specific stage
17:08:48 <coppro> gcc and g++ are both wrappers for the internal drivers
17:08:50 <scarf> although gcc-bf doesn't include support for exceptions, so you couldn't target it with C++
17:09:08 <coppro> clang currently has a similar model, though it's all one self-invoking executable file right now
17:09:27 <coppro> eventually they plan to move it all to one execution
17:09:30 <Gregor> All compilers have a similar model *shrugs*
17:09:42 <Gregor> Even if it's all in one execution, it's just drivers calling drivers.
17:09:42 <pikhq> clang also has a bit more to wrap -- clang is only a frontend, after all.
17:09:50 <scarf> gah, it's so hard to read leaked internal Microsoft emails because apparently they top-post
17:09:53 <scarf> how can they get any work done?
17:10:00 <AnMaster> to separate frontend from backend
17:10:13 <AnMaster> (that isn't language and codegen I'm talking about here)
17:10:24 <scarf> FireFly: almost certainly
17:10:28 <pikhq> And to seperate backend from linker.
17:10:31 <scarf> but even in outlook, top-posting is a sin
17:10:33 <AnMaster> <scarf> how can they get any work done? <-- they can?
17:10:39 <scarf> you have to try to edit the message into something more readable yourself
17:10:45 <coppro> I want an option to bottom-post, dammit
17:10:50 <Gregor> The internal version of Outlook has a secret feature that converts top-posted emails into bottom-posted emails for view :P
17:11:14 <Deewiant> I prefer top-posting for one-on-one e-mail
17:11:30 <FireFly> I prefer not to use e-mail
17:11:40 <coppro> the only thing worse that top-posters are the people who both top-post and leave 14 nested quote contexts in the email
17:12:01 <Gregor> I USE GOOGLE WAAAAAAAAAAE
17:13:13 <AnMaster> just make an irc client that scrolls the other way
17:13:14 <fizzie> I top-post when replying to top-posting people (which seems to be almost everyone these days) because otherwise one ends up with really silly-looking messages. (Well, unless you trim with a very heavy hand.)
17:13:51 <fizzie> Clairvoyants can top-post in the normal-style IRC.
17:15:36 <Gregor> I wonder if you could top-post in IRC somehow ...
17:15:44 <Gregor> fizzie: You're welcome.
17:16:01 <AnMaster> that's more like reverse bottom posting
17:19:49 <scarf> fizzie: when someone sends me an email with top-posting in I rearrange the whole thing to bottom-posting before replying
17:20:13 <scarf> oklofok: because the answer comes before the question
17:20:27 <scarf> so you have to read the email from bottom upwards to get the flow of conversation, but downwards within each message
17:20:39 <scarf> so you're jumping around scrolling up and down to read everything in order
17:20:49 <oklofok> you get the most relevant thing first, if you don't remember everything, read bottom to top as much as you need
17:20:51 <scarf> technically it doesn't matter if you're getting emails one at a time and you remember the conversation
17:20:56 <Gregor> oklofok: Because people lurrve to complain about the most minor things in life.
17:21:10 <scarf> but if you're trying to catch up on a thread late, it's really annoying
17:21:23 <scarf> in the case of the leaked Microsoft email I was reading, the OP was the most interesting and relevant post
17:21:28 <scarf> and yet it was right at the bottom
17:21:56 <cpressey> Sounds like a job for Gregor's R->L parser
17:22:07 -!- Sgeo|web has joined.
17:22:25 <Sgeo|web> The JS client is broken for me on Chrome. When I stop it, I can't start it again
17:22:36 <fizzie> Another thing is that all the answers come in one block, and after that all questions in one block; I personally prefer a properly trimmed-and-quoted thing where the answers come after the relevant quoted bits.
17:23:13 <AnMaster> fizzie, what about inline response
17:23:26 <AnMaster> as in, commenting on various sections on it
17:24:06 * Sgeo|web is jealous of fizzie having solved 40 or so in the past 24h
17:25:03 <fizzie> AnMaster: Yes, that's what I mean by "properly trimmed-and-quoted thing where the answers come after the relevant quoted bits".
17:25:07 -!- augur has quit (Read error: 60 (Operation timed out)).
17:25:12 <coppro> I should get an account so I can track my progress
17:25:34 <Sgeo|web> Is it just me, or is Robozzle slow right now/
17:25:52 <AnMaster> fizzie, a true bottom poster would reply to *everything* at the end
17:26:13 <fizzie> There aren't very many of those, I don't think. It's either the "right" way, or the top-posting way.
17:26:22 <fizzie> Well, based on the sample of emails I get.
17:26:33 <fizzie> Sgeo|web: I've been twiddling the game with the phone when technically listening to lectures; for some inexplicable reason I have an urge to get the campaign list completely done.
17:26:47 <AnMaster> fizzie, you would make a graph of the percentages over time
17:27:02 <fizzie> I seem to be missing 16.
17:27:23 <fizzie> That was still to Sgeo.
17:27:25 <MissPiggy> fizzie how come you're so good at robozzle
17:27:46 <Sgeo|web> You haven't come across the same issue in the JS client?
17:28:22 <fizzie> MissPiggy: I'm not really very good, actually; I haven't done ~any of the >4 difficulty ones.
17:28:59 <fizzie> Sgeo|web: Not yet, at least. Though I think I got somehow logged out without doing anything a moment ago. But I might have just gotten some tabs confused.
17:30:36 -!- scarf has quit ("Page closed").
17:31:49 * Sgeo|web solves Early Warning on the first try (if I didn't, I'd have to refresh the page *cries*
17:33:02 -!- scarf|away has changed nick to scarf.
17:33:50 <fizzie> Ooh, now I got a "Server Error in '/' Application" from the JS client.
17:33:59 <coppro> Oo that one looks tricky
17:34:25 <Sgeo|web> Well, I got a hint from the RoboZZle video, which features Very Early Warning
17:36:01 * Sgeo|web switches to IE7 for RoboZZle purposes, the JS client works on it
17:36:22 <Sgeo|web> Except now I'm getting that error
17:38:09 <Sgeo|web> <igoro> this minute i am deploying a newer version
17:38:32 <coppro> how to approach the problem
17:38:52 <coppro> obviously the two functions must mirror each other
17:40:17 <fizzie> Very Early Warning is a reasonably straight-forward extension with four functions.
17:40:37 <coppro> I still haven't worked some of the recursion bits out in my head
17:41:59 <Sgeo|web> Lol, Cube Extreme's F2 has _one_ slot
17:46:04 <coppro> labyrinth has too many open spaces
17:47:16 <Sgeo|web> open spaces can increase the psychological difficulty, or can be because the author didn't find the shortest possible solution
17:47:45 <fizzie> coppro: "Incomplete grid" had 5+5+10 (F1+F2+F3) slots, and my solution used just the five slots out of F1 and the other two functions not at all.
17:48:54 -!- augur has joined.
17:49:24 <coppro> I know there's one stack trick I'm missing :(
17:49:53 -!- bsmntbombdood_ has quit (Read error: 113 (No route to host)).
17:51:33 <coppro> I don't have an account
17:52:10 <Sgeo|web> Then make one. (It only shows your solutions, btw)
17:52:26 -!- bsmntbombdood_ has joined.
17:53:36 <coppro> what I need to know is how to make a function that counts up or down each time it's called, like for Cut in half
17:53:47 <coppro> I'm thinking about that one wrong
17:55:12 <coppro> I still need the technique though
18:00:21 <Sgeo|web> Getting loopy is a 5+5+5, I only needed 4+4
18:05:39 <scarf> how does this game compare to Rubicon?
18:07:51 <Sgeo|web> Rubicon has you build stuff on the level (I think), and this has you give instructions to a robot
18:08:18 <Sgeo|web> I don't know if Rubicon is turing-complete. RoboZZle is (given access to the painting commands)
18:10:19 <coppro> I think we agreed Rubicon is (excepting space concerns, of course)
18:19:29 <fizzie> Ghaaa, finally got that silly "Replication Engine" done; took me something like 20 minutes to implement workingly even though the idea is very simple.
18:21:42 * Sgeo|web just needs _one_ more slot for "Stacking for not so newbies"
18:25:20 <coppro> done the first 30 in my account
18:25:25 <coppro> time to do last-minute studying
18:25:39 -!- augur has quit (kubrick.freenode.net irc.freenode.net).
18:25:39 -!- tombom has quit (kubrick.freenode.net irc.freenode.net).
18:25:39 -!- MizardX has quit (kubrick.freenode.net irc.freenode.net).
18:25:39 -!- cheater2 has quit (kubrick.freenode.net irc.freenode.net).
18:25:39 -!- sebbu has quit (kubrick.freenode.net irc.freenode.net).
18:25:40 -!- Deewiant has quit (kubrick.freenode.net irc.freenode.net).
18:25:41 -!- olsner has quit (kubrick.freenode.net irc.freenode.net).
18:25:41 -!- mycroftiv has quit (kubrick.freenode.net irc.freenode.net).
18:25:41 -!- yiyus has quit (kubrick.freenode.net irc.freenode.net).
18:25:41 -!- Leonidas has quit (kubrick.freenode.net irc.freenode.net).
18:25:41 -!- comex has quit (kubrick.freenode.net irc.freenode.net).
18:25:42 <scarf> coppro: I have a proof
18:25:59 <scarf> BCT in Rubicon, the data and program are limited-size but only if the playfield is limited-size
18:26:35 <coppro> yeah, I suspected you did
18:28:06 -!- Deewiant has joined.
18:30:49 * Sgeo|web fails a puzzle by failing to see a star
18:32:50 -!- olsner has joined.
18:32:50 -!- comex has joined.
18:32:50 -!- Leonidas has joined.
18:32:50 -!- yiyus has joined.
18:32:50 -!- mycroftiv has joined.
18:33:23 -!- augur has joined.
18:33:55 -!- tombom has joined.
18:33:55 -!- MizardX has joined.
18:33:55 -!- cheater2 has joined.
18:33:55 -!- sebbu has joined.
18:36:02 <fizzie> Sometimes I disagree with the difficulty assignments; I found "Replication Engine" (difficulty 4.00) much trickier than "Can you count in binary?" (difficulty 4.13).
18:43:24 -!- bsmntbombdood_ has changed nick to bsmntbombdood.
18:45:54 <Sgeo|web> fizzie, they're assigned by the players
18:54:33 <bsmntbombdood> http://www.youtube.com/watch?v=O2rGTXHvPCQ&feature=player_embedded
18:54:51 * Sgeo|web sees a bunch of comments "no need for F2/F3".. but I used F2 and F3
19:04:35 -!- Sgeo|web has quit (Ping timeout: 180 seconds).
19:21:54 <fizzie> Still, 4.47 for "Reflection"...
19:27:34 -!- kar8nga has joined.
20:29:58 -!- Wareya has joined.
20:52:28 <AnMaster> scarf, but isn't Rubicon basically RUBE?
20:52:38 <AnMaster> and wasn't RUBE proved TC iirc?
20:53:20 <scarf> well, I proved Rubicon TC in its own right
20:53:31 <scarf> and RedGreen is TC, but IIRC RUBE hasn't been shown either way
21:02:16 <cpressey> Intrigued by pikhq's reference, I'm trying to build clang right now... under cygwin...
21:03:24 <pikhq> cpressey: I don't think clang supports i686-pc-win32.
21:03:31 <pikhq> May end up with a cross-compiler.
21:03:54 <pikhq> Nope, I'm wrong. Supports it just fine.
21:03:57 <cpressey> pikhq: Isn't the question whether LLVM supports it?
21:04:14 <pikhq> cpressey: C needs the frontend to support it as well.
21:04:34 <pikhq> The LLVM generated is machine-dependent.
21:06:39 <cpressey> pikhq: I see. Makes sense. Well, I had gotten past "./configure" and it didn't barf, so I was hopeful, anyway.
21:12:02 <Wareya> doesn't cygwin run under a linux emulation dll?
21:14:39 -!- oklofok has quit (Read error: 60 (Operation timed out)).
21:17:33 <cpressey> Wareya: mostly, but there are all kinds of details relevant to compilers that aren't handled by it. For example, executable format. I don't think it can handle ELF...
21:18:07 <cpressey> Not to mention that its emulation of Linux is... not perfect.
21:20:54 <pikhq> Wareya: No, Cygwin runs under a DLL that provides POSIX functions.
21:21:11 <pikhq> It's not Linux, it's another UNIX.
21:21:43 <pikhq> cpressey: Cygwin uses PE for its executable format, with an executable postfix of .exe and a library postfix of .so.
21:22:14 <cpressey> Sorry. meant POSIX when I said Linux...
21:29:36 -!- mycroftiv has quit ("leaving").
21:38:29 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
21:40:13 -!- augur_ has joined.
21:40:48 -!- augur has quit (Read error: 110 (Connection timed out)).
21:45:05 -!- kar8nga has quit (Remote closed the connection).
21:50:48 -!- scarf has quit (Read error: 104 (Connection reset by peer)).
21:53:00 <cpressey> And in fact, clang trunk errors out in build on my cygwin install. Lovely. Well, it seems to be one of the debug tools, can probably just skip it.
21:54:58 <AnMaster> cpressey, probably no one really cares about cygwin these days
21:55:33 <Deewiant> LLVM trunk moves so fast, you can't expect it to work at any given time.
21:55:49 <Deewiant> They do have a cygwin buildbot, IIRC.
21:56:49 <AnMaster> cpressey, do you usually use windows?
21:57:23 <AnMaster> cpressey, ah, linux desktop? or os x?
21:58:04 <cpressey> AnMaster: to be more specific, I do usually use Windows these days, it's just that, I don't do so with much joy in my heart.
21:58:27 <Deewiant> The logical question then is: why use it if it makes you sad
21:59:46 -!- Gregor-L has joined.
22:00:02 <Deewiant> I think you're supposed to beat them.
22:00:03 <cpressey> Deewiant: because being not sad is not, it turns out, a huge priority.
22:01:00 <AnMaster> cpressey, unless you need 3D virtualbox or such might work well
22:01:13 <AnMaster> even with 3D iirc virtualbox has some support for that nowdays
22:01:14 <cpressey> Deewiant: at the moment, something closer to sheer survival.
22:01:48 <cpressey> AnMaster: as it turns out, I am running Ubuntu in a VMWare VM on this machine, and as my main OS on my machine at home.
22:02:07 <AnMaster> so my guess was pretty close then yeah
22:02:25 <Deewiant> I guess what I'm trying to fish for is what specifically is it that forces you to use Win
22:02:48 <cpressey> If it was really important for me to get clang running, I probably would have tried it in the VM. But for kicks, it's hey, let's try cygwin!!
22:03:51 <AnMaster> Deewiant, also to what degree does the compiler have to support *.dll and *.exe. Isn't that mostly the linker?
22:03:52 <cpressey> AnMaster: no, there's some kind of error in the profiling library too
22:04:00 <Deewiant> cpressey: Probably not the people themselves, but a certain piece of software (not Windows itself) they expect you to use?
22:04:34 <AnMaster> cpressey, I think Deewiant is trying to ask what those pieces of software are
22:05:01 <AnMaster> also I think you are almost deliberately avoiding answering it straight ;P
22:05:24 <AnMaster> which just makes us more interested of course
22:05:49 <AnMaster> Deewiant, well I guess some support for calling conventions and object format
22:06:32 <Deewiant> Calling conventions is a bit of a separate thing, but yes, of course the object format that your linker expects as input :-P
22:06:54 <AnMaster> Deewiant, also GOT or whatever equiv windows uses
22:07:05 <AnMaster> I think the compiler has to know part of it
22:07:15 <AnMaster> that's what the __dllspec thing is for isn't it?
22:07:20 <Deewiant> I'm not 100% sure what the GOT is, but isn't it part of the object format
22:07:37 <Deewiant> I don't know what __dllspec is for, I know precious little about dynamic linking.
22:07:46 <Deewiant> AnMaster: I knew that, but not much more.
22:08:02 <AnMaster> Deewiant, and __dllspec is used similar to __attribute__, that is to annotate functions
22:08:25 <AnMaster> Deewiant, I think it is used to modify the calling sequence somewhat
22:08:51 <AnMaster> Deewiant, oh and for exporting symbols
22:09:25 <AnMaster> Deewiant, not "calling convention" as in "put value in register x"
22:09:38 <AnMaster> also if I don't misremember *.exe and *.dll have separate memory spaces or some shit like that on windows
22:09:45 <AnMaster> but that is so weird I *might* have dreamt it
22:09:46 <Deewiant> "dllimport" linkage causes the compiler to reference a function or variable via a global pointer to a pointer that is set up by the DLL exporting the symbol. On Microsoft Windows targets, the pointer name is formed by combining __imp_ and the function or variable name.
22:10:07 <AnMaster> Deewiant, ye gods, worse than I remembered
22:11:42 <Deewiant> http://llvm.org/docs/LangRef.html
22:13:34 <AnMaster> wonder if you can reach it through clang
22:14:01 <Deewiant> You mean emit code that uses it? Just make a file-local function.
22:14:13 <AnMaster> Deewiant, well between files I meant
22:21:23 -!- BeholdMyGlory has quit (Remote closed the connection).
22:25:52 <pikhq> One of the nicest things about LLVM is the LTO you can do with it.
22:26:07 -!- augur_ has quit (Read error: 60 (Operation timed out)).
22:26:16 <pikhq> (GCC 4.5 is also getting that; they make the compiler output GIMPLE in object files)
22:26:16 -!- MigoMipo has quit (Read error: 104 (Connection reset by peer)).
22:37:10 -!- tombom has quit ("Leaving").
22:53:18 -!- augur has joined.
23:01:24 <Gregor> Which presumably means that either ld will gain some compilation support (ew) or that gcc, when used to link, actually does some trickery before calling ld.
23:02:51 <pikhq> Gregor: gold has plugin support.
23:03:10 <pikhq> ld ends up calling out to GCC at link time, in effect.
23:03:29 <pikhq> The same setup is used for LLVM's LTO.
23:03:53 <pikhq> (gold is an optional part of GNU binutils)
23:04:26 <Gregor> Yo dawg, I heard you like to compile, so I put a compiler in your linker, so you can compile while you link.
23:09:31 -!- nooga has joined.
23:10:04 <pikhq> Gregor: GCC also has plugin support now.
23:10:16 <nooga> are there lazy, functional esolangs that resemble haskell?
23:10:29 <pikhq> "resemble Haskell", no.
23:10:56 <pikhq> "lazy, functional esolang", yes. LazyK
23:11:26 <nooga> i don't mean the syntax
23:12:23 <pikhq> LazyK has S, K, and I.
23:13:11 <pikhq> IO is perfomred by considering the program a function from input to output.
23:13:19 <MissPiggy> I want to program in a sanscrit version of lisp
23:14:15 <pikhq> It also possesses 3 syntaxes.
23:14:27 <nooga> MissPiggy, do you know sanscrit?
23:14:33 <MissPiggy> no but that would help me learn it
23:14:52 <nooga> hanguk is interesting
23:15:09 <nooga> i wonder why nobody tried to design hanguk based esolang
23:15:48 <nooga> http://en.wikipedia.org/wiki/Hangul
23:17:19 <MissPiggy> I don't know why it would be a good language
23:18:12 -!- FireFly has quit ("Leaving").
23:18:37 -!- nooga_ has joined.
23:18:59 <cpressey> http://esolangs.org/wiki/Aheui
23:20:21 <cpressey> nooga_: but we could always use more :)
23:28:19 <nooga_> i always use ruby for prototyping
23:32:51 <Gregor> Today's game-music attempt (not yet complete): http://filebin.ca/wakrx/zee2.ogg
23:34:52 <nooga_> i mean the instruments
23:35:07 <Gregor> D-8. I spent /so damn long/ choosing those instruments X-D
23:35:24 <nooga_> the composition is nice
23:35:50 -!- nooga has quit (Read error: 110 (Connection timed out)).
23:36:15 -!- nooga_ has changed nick to nooga.
23:37:06 -!- cheater3 has joined.
23:38:08 -!- cheater2 has quit (Read error: 104 (Connection reset by peer)).
23:38:59 <Pthing> who needs a synth trumpet when you can use a sawtooth
23:39:11 <nooga> square is the best
23:39:28 <nooga> with a proper arpeggio
23:39:33 <Gregor> lawl, yesterday all my instruments were too synthy, now they're not synthy enough :P
23:39:50 <Gregor> What a simple solution :P
23:40:04 <Pthing> well the people yesterday were wrong
23:40:23 <Gregor> nooga: This is from a soundfont, from samples X_X
23:40:41 <nooga> i thought it was cheap midi synthesizer
23:40:50 <Gregor> Yesterday I was writing this: http://codu.org/music/vg/zee1.ogg , not zee2, btw.
23:41:17 <Gregor> The trumpet sounds the worst, the others actually sound pretty good.
23:43:02 <Gregor> So, the trumpet ruins everything. I guess I need to go soundfont hunting for a trumpet.
23:58:11 -!- MizardX- has joined.