←2009-04-16 2009-04-17 2009-04-18→ ↑2009 ↑all
00:00:06 <GregorR> There's a caveat to that:
00:00:12 <GregorR> Actually, I'll pastebin this.
00:00:43 <AnMaster> <Deewiant> Hmm, I think GDC's latest release could compile my Sudoku solver out of the box, unless it's too new <--- *blink*
00:01:28 <GregorR> Actually, never mind, my caveat is wrong.
00:01:29 <GregorR> Hmmmmmmmmmmmm.
00:01:30 <AnMaster> why not use ldc for it Deewiant?
00:01:42 <ehird> because it's too new.
00:01:55 <ehird> GregorR: I'm not convinced about it myself
00:02:00 <ehird> I guess I'll implement it and see :P
00:02:07 <ehird> *ahem* I am contractually obligated:
00:02:21 <ehird> ... if we had a Forthalike as the base language, I could just do it all from a REPL session.
00:02:21 <ehird> *
00:02:31 <ehird> *Note: Probably a lie, you can't mess with things that internal in general :P
00:02:43 <GregorR> It could all be done from a REPL session as-is, there just doesn't happen to be such a REPL :P
00:02:50 <GregorR> Good luck. Nobody but me has touched pul.plof, so you may go insane :P
00:02:53 <ehird> no REPL? :-O
00:03:01 <GregorR> dplof -I works, but is ... limited.
00:03:50 <ehird> but writing a repl is super trivial :|
00:04:19 <GregorR> I mean it doesn't have e.g. history.
00:04:22 <ehird> ah.
00:04:24 <GregorR> It's a full REPL.
00:04:27 <GregorR> But it's lame :P
00:04:39 <ehird> Well, I'll see about giving it some editline love.
00:05:00 <GregorR> No great reason to, dplof will go into obsolete mode when cplof is fully-functional.
00:05:12 <ehird> Well, then I'll write a portable REPL.
00:05:14 <ehird> And a unicorn.
00:05:45 <AnMaster> grr I hate that half of the convos make no sense when ignoring ehird
00:05:53 <ehird> AnMaster: Now you know how I feel, AnMaster.
00:06:00 <GregorR> lol
00:06:05 <AnMaster> ehird, we both know
00:06:23 <AnMaster> ehird, we are deadlocked into-non-ingore
00:06:25 <AnMaster> ignore*
00:06:30 <AnMaster> actually more than half
00:06:37 <AnMaster> you are more active than me
00:06:39 <AnMaster> night
00:07:23 <ehird> So!
00:07:34 <ehird> I guess I have work to do on Plof. Today, I will clone the hg repo and peek at it before going to bed.
00:07:45 <ehird> GregorR: how do I submit commits
00:08:09 <AnMaster> ehird, why would you need that?
00:08:17 <ehird> AnMaster: what?
00:08:27 <ehird> need what?
00:08:32 <AnMaster> why would you need to work on plof?
00:08:37 <ehird> Hey GregorR, what's the address to clone?
00:08:37 <GregorR> ehird: hg bundle. I could give you commit access if you need it. Richards@codu.org
00:08:41 <ehird> AnMaster: 'Cuz I have ideas.
00:08:45 <GregorR> https://codu.org/projects/plof/hg/
00:08:50 <ehird> GregorR: yes. what's the hg url
00:09:04 <GregorR> (Isn't that on the site somewhere? >_>)
00:09:08 <oklopol> <AnMaster> grr I hate that half of the convos make no sense when ignoring ehird <<< probably the GregorR half that's not making sense because you can't see ehird right?
00:09:16 <ehird> GregorR: http://codu.org/plof/hg/ is an http interface
00:09:27 <ehird> GregorR: is it gettable?
00:09:31 <GregorR> Yeah.
00:09:31 * ehird relearns mercurial
00:09:41 <GregorR> Stick an s on it if you want security for pushing purposes *shrugs*
00:09:44 <AnMaster> oklopol, indeed
00:10:03 <AnMaster> oklopol, however you are misinterpreting
00:10:06 <GregorR> That's basically the only reason I use mercurial over anything else in particular, putting up a server is as easy as dropping a .cgi somewhere :P
00:10:23 <AnMaster> I meant half of the convos between any n persons in this channel
00:10:24 <ehird> git can do that I think :P
00:10:40 <GregorR> Idonno, if it can I haven't seen it, I always see git:// URLs *shrugs*
00:10:54 <ehird> Strange; I mostly see http:// ones.
00:11:05 <GregorR> ORLY? >_>
00:11:08 <ehird> Well, 'part from github.
00:11:11 <ehird> Which uses git://.
00:11:25 <oklopol> AnMaster: was supposed to be a joke, but turned out not to be at all funny and somewhat true
00:11:46 <ehird> GregorR: So .apsl is pretty much textual PSL, right?
00:11:55 <GregorR> Yes. It's really gross, and really limited.
00:12:03 <ehird> / Object is true for logic unless it's False
00:12:10 <ehird> Hm. :-P
00:12:19 <GregorR> Note that False is a specific object ;)
00:12:51 <ehird> -DPLOF_FREE_INTS (default)
00:12:51 <ehird> Use ints instead of objects. This is optimal and spec-compliant, but
00:12:52 <ehird> has the disadvantage of providing ints that are one bit shorter than in
00:12:55 <ehird> either of the other methods.
00:13:00 <ehird> GregorR: just make all ints odd; mallocs are even, after all.
00:13:06 <ehird> Of course, then you can't use even integers.
00:13:08 <ehird> No big deal.
00:13:10 <GregorR> :P
00:13:17 <GregorR> That's essentially what I did do.
00:13:20 <ehird> 8 weeksGregor Richardscplof: Autoconf'd.
00:13:23 <ehird> GregorR: This is meant to be a feature?
00:13:25 <ehird> also, I meant directly
00:13:30 <ehird> as in, you can use 1, 3, ...
00:13:33 <ehird> but not 2, 4..
00:13:45 <ehird> also, srsly, autoconf? x_x
00:14:02 <GregorR> Shall we have a giant war over autoconf vs ... cmake? What's your poison?
00:14:48 <ehird> GregorR: I don't really have a particular affiliation beyond "not autoconf". I generally go for pure Makefiles :P
00:15:06 <GregorR> I have pure, still-working makefiles sitting about, but they're not portable *shrugs*
00:15:17 <ehird> Why not?
00:15:28 <ehird> I've never really had a portability problem with makefiles :P
00:16:12 <GregorR> cplof runs on (at least) Linux, Windows, *BSD, Solaris, DOS, ...
00:16:27 <GregorR> With libgc, (soon) libffi
00:16:30 <ehird> GregorR: Wait, Windows-alikes?
00:16:39 <ehird> Think I'll stick to dplof...
00:16:50 <GregorR> dplof runs on Windows too :P
00:17:03 <ehird> Yeah, but phobos/tango hides all that.
00:17:09 <GregorR> 'struth.
00:17:23 <GregorR> There's not really any Windows-specific code, it's mainly about the compilation garbage.
00:17:31 <ehird> GregorR: Are there any known users on Windows?
00:17:44 <GregorR> There are two known users, both on Linux, I just like portability :P
00:17:47 <ehird> GregorR: Also, in that case I'd either
00:17:50 <ehird> (1) use cygwin or mingw
00:17:59 <ehird> (2) provide a separate windows makefile, if all that changes is the build system
00:19:10 -!- GreaseMonkey has quit ("Unisex.").
00:19:31 <ehird> GregorR: Does plof have continuations?
00:19:47 <GregorR> No :(
00:20:08 <GregorR> I'd need a few changes to expose things properly for that, it should be doable I just haven't done it.
00:20:09 <ehird> GregorR: Guess what I'll include in the Forth?
00:20:30 <ehird> (Yeah, it means that Plof code calling C code calling Plof code needs lots of boilerplate, but who gives a shit?)
00:20:44 <bsmntbombdood> i need a comparison sort algorithm
00:21:03 <GregorR> The best sorting algorithms don't use comparison.
00:21:09 <ehird> bsmntbombdood: bubble
00:21:26 <bsmntbombdood> where comparisons are extrememly slow, and also reliable
00:21:28 <bsmntbombdood> GregorR: obviously
00:21:36 <AnMaster> night
00:21:43 <AnMaster> (really this time)
00:22:45 <bsmntbombdood> bubble sort might actually be reasonable, because a bad comparison only screws you up a tiny bit
00:24:43 <ehird> GregorR: But, even on Windows Id on't see why to support non-gcc stuff.
00:24:43 <ehird> There's a ton of compilers for Windows and none are any good :P
00:24:43 <pikhq> GregorR: I vote to abstain.
00:24:43 <ehird> pikhq: How would a patch change your view? :P
00:24:56 <pikhq> GregorR: Also, about doing 3D video in MPEG-4... That's part of MPEG-4. ;)
00:25:20 <ehird> GregorR: Btw, your cubic square thing of space sounds like voxwels
00:25:21 <ehird> voxels
00:26:02 <bsmntbombdood> pick 2 random elements, swap them if the aren't in order
00:26:14 <ehird> % gcc /dev/null
00:26:14 <ehird> ld: in /dev/null, file too small
00:26:14 <bsmntbombdood> is that O(n**2) or is it worse?
00:26:24 <ehird> bsmntbombdood: It's O(infinity).
00:26:35 <bsmntbombdood> ehird: average case...
00:26:40 <ehird> :P
00:26:41 * pikhq was going through logs.
00:26:57 <ehird> 00:24 ehird: pikhq: How would a patch change your view? :P
00:27:06 <ehird> bsmntbombdood: http://en.wikipedia.org/wiki/Odd-even_sort parallel
00:27:39 <GregorR> ehird: On Windows only GCC is supported, come to think of it the only caveat there IIRC was that there's some trick to linking against libgc.
00:27:54 <ehird> GregorR: You mean apart from "-lgc"?
00:27:57 <GregorR> pikhq: Oh yeah, I knew there was a term, voxels, yeah. There's 3D in MPEG4?
00:28:01 <oklopol> ehird: make a static version pls :P
00:28:08 <ehird> oklopol: ?
00:28:37 -!- GreaseMonkey has joined.
00:28:43 <ehird> bsmntbombdood: actually, you want something that's resistant in the face of lying nodes, right?
00:28:48 <oklopol> well umm. you know substitute an x-axis for time axis.
00:28:49 <bsmntbombdood> right
00:28:53 <ehird> bsmntbombdood: Try gnome sort, except with many gnomes.
00:28:58 <ehird> [ http://en.wikipedia.org/wiki/Gnome_sort ]
00:29:00 <ehird> oklopol: wat
00:29:01 <GregorR> THE CAKE NODE IS A LIE
00:29:02 <ehird> oh
00:29:03 <ehird> right
00:29:07 <oklopol> ehird: a reference
00:30:21 <pikhq> GregorR: Yeah; MPEG4 part 11, IIRC.
00:30:54 <bsmntbombdood> ehird: hmmm
00:31:16 <ehird> bsmntbombdood: Work will be duplicated, but it'll always get it right if you have more honest nodes than lying ones.
00:31:33 <bsmntbombdood> ehird: ideally, it would be sort of online
00:31:43 <ehird> bsmntbombdood: what's the issue in this case?
00:31:45 <ehird> it should work
00:31:49 <ehird> unless 4chan invade or sth
00:31:54 <ehird> ohh
00:31:54 <bsmntbombdood> it's always receiving new elements and new items
00:31:55 <ehird> you mean
00:31:57 <ehird> online in that sense
00:31:58 <ehird> xD
00:32:04 <ehird> sorry the distributed talk clouded mah vissn
00:32:16 <bsmntbombdood> and doesn't need to have the perfectly sorted, it should just always stay as close as possible
00:32:17 <GregorR> pikhq: "It is based on VRML and part 11 of the MPEG-4 standard." This format is far more sensible than mine :P
00:32:19 <ehird> bsmntbombdood: why isn't it online
00:32:27 <ehird> s/while i < size/forevah/
00:32:37 <bsmntbombdood> ehird: it terminates
00:32:52 <pikhq> So it is.
00:32:53 <ehird> bsmntbombdood: err not when given an infinite list.
00:33:08 <bsmntbombdood> the list is finite...
00:33:18 <ehird> bsmntbombdood: i don't get it
00:33:23 <ehird> esplain
00:33:43 <bsmntbombdood> ehird: i want to rank items based on human's comparisons of them
00:33:58 <ehird> bsmntbombdood: I don't get why you can't use gnome sort
00:34:12 <GregorR> I prefer KDE sort.
00:37:39 <bsmntbombdood> ?
00:39:18 <bsmntbombdood> yeah i guess gnome sort could work
00:41:14 <bsmntbombdood> it might be best to just cache ratings and sort later though
00:44:23 -!- KingOfKarlsruhe has quit (Remote closed the connection).
00:48:48 <bsmntbombdood> that requires n**2 comparisons though
00:54:03 <pikhq> I'm still fond of quantum bogosort.
00:54:05 <oerjan> well, n*log n essentially means reducing redundancy, which means not revealing lies...
00:54:36 <pikhq> shuffle(list);if(!sorted(list))destroy_universe();
00:55:27 <lament> this destroy_universe() command seems somewhat unsafe...
00:55:41 <pikhq> // confirm many worlds theory before using
00:56:11 <pikhq> Well, yes.
00:56:51 * oerjan guesses that if that theoretically worked, the amplitudes of any universes in which anyone _tried_ a quantum bogosort would probably be low, even if they succeeded
00:57:29 <pikhq> Well, yeah. It's a very unlikely algorithm.
00:57:32 <lament> i really don't like that programming language
00:57:36 <pikhq> And makes itself even less likely as it's used. Hooray!
00:57:58 <lament> there needs to be some sort of check showing that some universe would remain undestroyed afterwards
00:58:10 <lament> otherwise it's really kind of dangerous
00:58:26 <oerjan> lament: unitary evolution should take care of that
00:58:41 <lament> out of universe error
01:00:41 <oerjan> basically with unitary evolution, even if some things cancel out, the sums of squared amplitudes of the remaining states must be preserved (as 1, if you start with that)
01:00:46 <oerjan> iirc
01:01:11 <pikhq> In some universe, there wouldn't be the bug causing all universes executing the code to be destroyed.
01:01:51 <pikhq> Hell, if the many worlds theory is confirmed, one could end all code with destroy_universe(); and there would magically be no bugs in the universes that continued to exist!
01:02:27 <oerjan> well, no undetected bugs
01:02:33 <oerjan> *detected
01:03:22 <pikhq> Well, no bugs that let the end of code be reached.
01:03:51 <pikhq> Erm.
01:04:17 <pikhq> As phrased, there would be no code *without* bugs if you did that.
01:05:22 <oerjan> well at least you would have solved the halting problem
01:05:39 <bsmntbombdood> http://warp.povusers.org/SortComparison/integers.html
01:05:39 <pikhq> True.
01:05:50 <bsmntbombdood> looks like merge sort consistently makes the least comparisons
01:06:25 <pikhq> Makes sense.
01:11:52 <bsmntbombdood> but i don't think it will perform well with unreliable comparisons
01:13:48 <oerjan> as i said, i think it will never reveal a lie
01:14:24 <oerjan> because it's organized such that no comparison is ever done which could contradict a previous one
01:16:06 -!- psygnisfive has joined.
01:17:10 -!- Sgeo has joined.
01:19:48 <bsmntbombdood> what about binary insertion sort?
01:22:08 <oerjan> i think it's the same for any sort which removes redundant comparisons
01:22:35 <oerjan> (or avoids)
01:27:39 -!- olsner has quit ("Leaving").
01:33:26 <bsmntbombdood> how can i quantify "almost sorted"?
01:33:31 <bsmntbombdood> i think i should run some tests
01:36:39 <GregorR> pikhq: So you're neutral w.r.t. semi-vs-newline?
01:40:26 <Ilari> bsmntbombdood: Maybe result of any reordering that causes at most O(n) inversions when appiled to sorted sequence?
01:41:52 <pikhq> GregorR: Slightly partial towards semicolons, but only slightly.
01:42:09 <Ilari> bsmntbombdood: In the case of those tests, it was array with last 256 entries suffled.
01:42:14 <Ilari> *shuffled
01:42:23 <bsmntbombdood> Ilari: what?
01:43:57 <Ilari> bsmntbombdood: How "almost sorted" can be defined, and the defintion in that test.
01:45:58 <GregorR> pikhq, ehird: I'm just imagining situations where newlines create some /very/ unintuitive results, e.g. http://www.pastebin.ca/1394513
01:47:50 <bsmntbombdood> Ilari: i don't get it
01:48:37 <pikhq> GregorR: Well, if newlines produce poor results, don't use them.
01:50:42 <GregorR> I'm not sure whether this is poor or not, because I'm not sure what intuition people would have about that code.
01:51:44 <GregorR> It's just unintuitive to /me/
01:57:47 <oklopol> i'd say it's a list, not an application of a
01:58:01 -!- GreaseMonkey has quit ("Unisex.").
01:58:19 <GregorR> Heh, by no proposal is it a list :P
01:58:52 <pikhq> Looking at the example, it seems the correct interpretation is the obvious one.
01:59:28 <pikhq> That might be from my experience with Tcl, where a newline and a semicolon are equivalent.
02:03:02 -!- GreaseMonkey has joined.
02:03:20 -!- GreaseMonkey has quit (Read error: 54 (Connection reset by peer)).
02:07:33 <oklopol> GregorR: three separate expressions?
02:07:53 <oklopol> yeah that's even more intuitive.
02:08:11 <GregorR> Well, if everybody agrees that that's the intuitive parsing, then OK.
02:08:49 -!- MizardX has quit ("reboot").
02:13:04 -!- MizardX has joined.
02:16:21 <Sgeo> Is it bad if a .htaccess is publically viewable?
02:16:57 <GregorR> Depends on what the .htaccess does.
02:17:15 <GregorR> Also, I'm not even sure if you can configure Apache to make them accessible in any condition.
02:17:25 <Sgeo> It blocks 1 IP address, I don't know why
02:17:59 <GregorR> Well, it's like anything else, it's bad for that to be publicly viewable if you need people not to publicly see it :P
02:19:19 <Sgeo> The person running my server doesn't know why it's viewable, or why a single IP is blocked
02:25:47 <bsmntbombdood> um...wtf??!?!
02:26:05 <GregorR> And the blocked IP is 127.0.0.1
02:26:12 <GregorR> (J/K ;) )
02:26:20 <bsmntbombdood> this code has radically different behavior when compiled with and without optimization
02:26:56 <GregorR> Bug report
02:28:16 <pikhq> Would the code in question happen to be from ffmpeg?
02:28:59 <bsmntbombdood> no
02:31:01 <bsmntbombdood> it's my code
02:33:06 <bsmntbombdood> look
02:34:09 <bsmntbombdood> http://pastebin.ca/1394548
02:35:41 <oerjan> iirc if(*ar > *++ar) is undefined behavior
02:35:52 <GregorR> 'tis
02:36:04 <bsmntbombdood> *headdesk*
02:36:05 <bsmntbombdood> of course
02:40:23 <bsmntbombdood> that algorith does 1.3 million comparisons for a 45 element list
02:40:25 <bsmntbombdood> hmpph
03:00:41 -!- oerjan has quit ("Good night").
03:06:57 <GregorR> Can somebody translate this from psuedoSpanish to English? "ooooooooooooo que bacano lo boy aitalar para que mi pc me corra mas rapido jajaja no pero enserio esta bacano"
03:07:49 <oklopol> was psuedo on purpose, it sounds kinda spanish.
03:08:15 <oklopol> los psuedos son mis amigos.
03:08:57 <oklopol> anyway i can translate all words that contain up to four characters.
03:09:22 <oklopol> next year i'm gonna learn all fives probably.
03:09:56 <oklopol> so anyway i have an 8 hour day at uni pseudotomorrow, starting in about 3 hours
03:10:20 <oklopol> i think this is kinda cool considering i slept 3 hours last night, while i'm used to sleeping about 10
03:13:34 -!- pikhq has quit ("leaving").
03:19:41 <bsmntbombdood> ok gnome sort is a _touch_ better than bozo sort
03:19:46 <bsmntbombdood> bozo: 14918109, gnome: 1200
03:20:16 <oklopol> shocking
03:21:14 <oklopol> slaep! ->
03:26:13 <GregorR> Y'know what bothers me? "Charity" events where they require people to do something unrelated and non-money-producing in order to gain money for the charity.
03:26:36 <GregorR> Like walks for charity. A walk for charity is some company holding money for ransom until you walk a mile.
03:47:17 -!- Leonidas has quit (hubbard.freenode.net irc.freenode.net).
03:54:23 -!- Leonidas has joined.
04:02:38 <bsmntbombdood> now this is odd
04:03:12 <bsmntbombdood> iterated merge sort is faster than iterated gnome sort for small arrays, but slower for large
04:03:26 <bsmntbombdood> the more unreliable comparisons are, the more marked the difference
04:06:17 <bsmntbombdood> probably because gnome sort is O(n) when the input is almost sorted, and merge sort isn't
04:14:15 <bsmntbombdood> i don't even know if there are any O(n) best, O(n log n) worst case algorithms
04:19:11 <bsmntbombdood> oh right, binary insertion sort
04:26:25 <kerlo> At least it gets people to walk a mile.
04:27:01 <kerlo> As for the pseudoSpanish, I'll tale a look.
04:28:05 <bsmntbombdood> or is binary insertion sort O(n log n)?
04:30:14 <kerlo> GregorR: "oh how cool I'm going to [?] it so that my PC will run faster hahaha no but seriously it's cool"
04:30:46 <kerlo> I imagine that by "italar" he meant "instalar".
04:31:18 <GregorR> OK, I guess that's about what most of the other comments on that video looked like :P
04:32:10 <kerlo> So "I'm going toitall it". :-P
04:32:53 <GregorR> The problem with web translators is they can't translate things that were written crappsily in the first place :P
04:33:00 <kerlo> Yeah.
04:33:09 <GregorR> Thankee.
04:33:33 <kerlo> Ideally, translators from Spanish will recognize misspellings that don't affect pronunciation, like "boy a aser" for "voy a hacer".
05:04:08 -!- pikhq has joined.
06:00:48 -!- Slereah has joined.
06:11:29 -!- Slereah_ has quit (Read error: 110 (Connection timed out)).
07:14:22 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
07:55:00 -!- psygnisfive has quit (Remote closed the connection).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:06:05 -!- psygnisfive has joined.
08:07:10 -!- M0ny has joined.
08:25:40 -!- neldoreth has joined.
08:37:14 -!- olsner has joined.
08:37:59 -!- neldoret1 has quit (Read error: 113 (No route to host)).
08:48:52 <Deewiant> AnMaster: a) LDC is based on far too new a frontend and b) LDC doesn't support Phobos directly, I'd have to use Tangobos which is also probably too new
08:49:06 <Deewiant> GDC is just something which could probably work directly
08:50:04 -!- pikhq has quit ("leaving").
08:55:17 -!- MizardX has quit (Read error: 110 (Connection timed out)).
09:54:46 <AnMaster> Deewiant, aha
09:55:16 <AnMaster> Deewiant, what about backward/forward compatibility? ;P
09:56:26 <Deewiant> AnMaster: In a language whose version number starts with 0?
09:57:05 <AnMaster> ok fair enough I gues... <C-propaganda>I have managed to run complex old C programs with only tiny changes to the code to make it compile.</C-propaganda>
09:57:14 <Deewiant> How old?
09:57:15 <Deewiant> 60s?
09:57:27 <Deewiant> If it's 90s or newer that's trivial
09:57:30 <AnMaster> Deewiant, 199x: mosaic
09:57:36 <Deewiant> Trivial
09:57:39 <Deewiant> C hasn't changed at all since then
09:58:09 <AnMaster> Deewiant, yes but posix had, and the *nix specific code was were most of the tiny changes were.
09:58:13 <AnMaster> but even so, tiny changes
09:58:19 <AnMaster> build system was worse
10:00:24 -!- MizardX has joined.
10:03:00 -!- olsner has quit ("Leaving").
10:03:52 <Deewiant> I /do/ have a windows binary which runs fine under Wine, FWIW :-P
10:05:16 <AnMaster> heh
10:10:01 -!- neldoreth has quit (Read error: 113 (No route to host)).
10:30:15 <psygnisfive> HAHAHA
10:30:16 <psygnisfive> "The tests involved head-on crashes between the fortwo and a 2009 Mercedes C Class, the Fit and a 2009 Honda Accord and the Yaris and the 2009 Toyota Camry. The tests were conducted at 40 miles per hour (17 kilometers per liter), representing a severe crash."
10:31:06 <psygnisfive> originates from using google as a converted. type in 40 mpg (a typo for 40 mph) and you get that.
11:14:57 -!- neldoreth has joined.
11:37:01 -!- jix has joined.
11:40:14 -!- Judofyr has joined.
11:57:20 -!- oerjan has joined.
11:59:05 <oerjan> *pseudo-, you damn iliterates!
12:01:02 -!- neldoreth has quit ("Lost terminal").
12:01:13 -!- MizardX has quit ("off").
12:03:13 <oerjan> <bsmntbombdood> i don't even know if there are any O(n) best, O(n log n) worst case algorithms
12:03:40 <oerjan> wouldn't even mergesort have an O(n) best case?
12:04:04 <Deewiant> Mergesort's best case is also O(n lg n)
12:04:43 <oerjan> hm
12:04:50 <Deewiant> It still does that many comparisons
12:05:26 <oerjan> i thought since it could stop if one of the merged lists is exhausted, but that only cuts by half i guess
12:09:56 -!- Slereah_ has joined.
12:12:35 <oerjan> xkcd :D
12:14:15 <AnMaster> oerjan, indeed
12:14:19 <AnMaster> and iwc too
12:14:27 <fizzie> The "check for sortedness, use any O(n log n) worst-case algorithm otherwise" "algorithm" has a O(n) best-case (sorted list) and O(n log n) worst case.
12:15:33 -!- MizardX has joined.
12:19:50 -!- M0ny has quit ("reboot").
12:21:19 -!- Slereah has quit (Read error: 110 (Connection timed out)).
12:25:33 -!- M0ny has joined.
12:26:14 -!- Judofyr has quit (Remote closed the connection).
12:31:47 -!- Gracenotes has quit (Remote closed the connection).
12:32:24 -!- Gracenotes has joined.
12:34:12 -!- sebbu2 has joined.
12:39:41 -!- sebbu has quit (Read error: 60 (Operation timed out)).
12:44:53 -!- oerjan has quit ("leaving").
13:00:28 -!- sebbu2 has quit (Read error: 110 (Connection timed out)).
13:02:30 -!- neldoreth has joined.
13:05:28 <AnMaster> fizzie, what happened to the O(n) scan when it finds list is unsorted? I'm not sure (since I know some stuff get cancelled in big-O notation, but don't remember exact rules for that) but shouldn't it be included in O(n log n) somehow?
13:10:50 <fizzie> Using O(n) time and then O(n log n) time after that is still O(n log n) asymptotically, since the O(n log n) part grows faster. At least so I very much believe.
13:13:53 <Deewiant> O(n + n log n) = O(n log n)
13:15:36 <fizzie> Though I guess the point of the question was more like "is there any algorithm that *non-contrivedly* happens to have the O(n) best-case behaviour".
13:22:03 <Slereah_> As a physicist, I want my O's to grow rapidly, not slowly
13:31:55 <AnMaster> fizzie, right, that was what I suspected
13:37:27 <Ilari> The rule is that when adding complexities, take the fastest-growing one.
13:49:32 -!- BeholdMyGlory has joined.
14:17:34 -!- M0ny has quit ("PEW PEW").
14:20:49 <ehird> 17:45:58 <GregorR> pikhq, ehird: I'm just imagining situations where newlines create some /very/ unintuitive results, e.g. http://www.pastebin.ca/1394513
14:20:58 <ehird> GregorR: this is why f( shouldn't be idiomatic
14:21:14 <ehird> GregorR: one alternative is that if the next line is indented further it's a continuation
14:21:14 <ehird> foo
14:21:16 <ehird> a
14:21:17 <ehird> b
14:21:19 <ehird> c
14:21:22 <ehird> err well
14:21:24 <ehird> or the same
14:21:25 <ehird> I guess
14:21:27 <ehird> but I think that's intuitive
14:21:33 <ehird> just because foo(... is unintuitive
14:22:53 -!- M0ny has joined.
14:25:12 <ehird> 08:57 Deewiant: 60s?
14:25:20 <ehird> Er, very limited authorship possibilities.
14:25:23 <ehird> 02:19 bsmntbombdood: ok gnome sort is a _touch_ better than bozo sort
14:25:23 <ehird> 02:19 bsmntbombdood: bozo: 14918109, gnome: 1200
14:25:24 <ehird> lawl
14:37:37 <ehird> GregorR: You thar?
14:38:21 -!- sebbu has joined.
14:49:01 <ehird> "Court jails Pirate Bay founders"
14:49:06 <ehird> Fuck. You.
14:49:39 <Slereah_> What did they do wrong!
14:49:52 <Slereah_> Did they break any law?
14:50:00 <ehird> No. Not under any sane interpretation.
14:50:03 <ehird> Linking is not illegal.
14:50:56 <ehird> Hmm...
14:51:00 <ehird> "On friday we will get the verdict in the ongoing trial. It will not be the final decision, only the first before the losing party will appeal. It will have no real effect on anything besides setting the tone for the debate, so we hope we win of course. "
14:51:02 <ehird> They can appeal?
14:51:27 <ehird> "That's outrageous, in my point of view. Of course we will appeal," he was quoted as saying by Reuters news agency. "This is the first word, not the last. The last word will be ours."
14:51:29 <ehird> Ah, good.
14:57:10 -!- comex has joined.
15:13:50 -!- neldoreth has quit (Read error: 113 (No route to host)).
15:18:49 -!- neldoreth has joined.
15:31:13 <GregorR> That's the differenced between "jailed" and "imprisoned"
15:31:44 <GregorR> "Jailed" just means "The court fears that these people are a flight risk, so we're not going to let them go anywhere before their trial."
15:31:49 -!- FireFly has joined.
15:36:46 -!- MizardX- has joined.
15:36:48 <ehird> GregorR: :P
15:37:23 <ehird> GregorR: I'ma work on Plof.
15:38:28 <ehird> GregorR: Hmm, why aren't the cplof/dplof binaries in .hgignore?
15:42:53 -!- MizardX has quit (No route to host).
15:43:12 -!- MizardX- has changed nick to MizardX.
15:44:06 <ehird> GregorR: ?
15:47:08 -!- BeholdMyGlory has quit (Remote closed the connection).
15:48:31 <ehird> GregorR: MAGIC PING.
15:48:39 <GregorR> ehird: Because I don't find myself going "hg addremove *OH SHIT*" a lot.
15:48:47 <ehird> :D
15:49:14 <GregorR> You've been waiting a long time for me to wake up, yeesh X-D
15:49:26 <ehird> GregorR: Erm, 10 minutes?
15:49:51 <GregorR> Your first directed message to me was an hour and thirty minutes ago.
15:50:28 <ehird> o
15:50:41 <GregorR> Anyway, f(a\nb\nc) certainly shouldn't be idiomatic. In fact, it makes no sense whether you're coming from C-land or Haskell/ML/etc-land.
15:51:03 <GregorR> So I think that example was basically nonsense :P
15:51:54 <ehird> So, cplof has no parser? So you can't really test it
15:52:22 <GregorR> ./dplof/plofc plof_include/std.psl <your favorite .plof file> -o foo.psl; ./cplof/src/psli foo.psl
15:52:41 <ehird> Heh
15:52:56 <ehird> GregorR: What horrific D environment do I need to compile dplof?
15:53:09 <GregorR> Tango + DSSS. If you're on x86_64, I can just hand you some binaries.
15:53:26 <GregorR> (This is why I'm moving away from D :P )
15:53:32 <ehird> GregorR: Linux binaries, I assume.
15:53:38 <GregorR> Yeah
15:53:42 <ehird> Not very useful then :P
15:53:46 <ehird> GregorR: Does DSSS work with LDC?
15:54:23 <Deewiant> ehird: Yes, it does.
15:54:33 <ehird> Deewiant: Yay! How many babies do I gotsa sacrifice?
15:54:36 <GregorR> IIRC the .conf for that is only in SVN.
15:54:45 <Deewiant> If you got rebuild working than DSSS should work out of the box.
15:54:50 <Deewiant> then*
15:54:58 <ehird> Deewiant: I trashed my ldc setup when it started eating my young
15:55:13 <ehird> GregorR: I assume you can't do the fancy DSSS bootstrap thing with ldc.
15:55:24 <GregorR> No, DSSS is (still) Phobos.
15:55:32 <Deewiant> ehird: Why ask whether DSSS works if you don't have a working LDC? :-P
15:55:44 <ehird> Deewiant: Because I want to know what I need to do
15:55:53 <ehird> GregorR: Right, so, tangobos.
15:56:05 <Deewiant> ehird: Since you're on a Mac you're screwed anyway ;-)
15:56:10 <ehird> Deewiant: Why?
15:56:26 <ehird> Also, I could be on a Mac running Linux, y'know. :P
15:56:46 <Deewiant> Well, it just seems that D stuff tends to work less on OS X.
15:57:13 <ehird> D stuff tends to work less.
15:57:30 <ehird> http://i151.photobucket.com/albums/s126/wow_jbleau/I_quit_School.png
15:57:32 <Deewiant> Somewhat, yes.
15:57:34 <GregorR> Seems I need to get choppin' on either a parser in C or a parser in Plof, with preference towards the latter.
15:58:08 <ehird> GregorR: A parser in Ploforth. <_<
15:58:10 -!- BeholdMyGlory has joined.
15:58:47 <GregorR> ehird: If Plof is retargeted properly, it shouldn't matter what the underlying language is.
15:59:04 <ehird> GregorR: Eh? So messing with PSL is discouraged in user code?
15:59:13 <GregorR> Yes.
15:59:17 <ehird> That seems to defeat the point of the magical meta syntax-swapping Plof magick.
15:59:26 <GregorR> ... PSL is bytecode.
15:59:34 <ehird> APSL, wuteva.
15:59:35 <GregorR> You don't usually write JVM bytecode directly into your Java code.
15:59:48 <ehird> GregorR: Sure, but you kept saying how nice it was to swap syntax out using psl. :P
16:00:03 <GregorR> You can swap syntax out using Plof now.
16:00:06 <ehird> Ah.
16:00:25 <ehird> Well, you can't write the parser in Plof without a shakily brittle preparsed bootstrap process.
16:00:55 <GregorR> It's the "shakily brittle" I'd like to get rid of X-D
16:01:02 <ehird> GregorR: So write it in Ploforth. :P
16:01:13 <GregorR> I don't think that's the be-all end-all to making it unbrittle.
16:01:19 <GregorR> Or even would make much of a difference.
16:01:26 <GregorR> It would just make the underlying language marginally more powerful.
16:01:29 <ehird> GregorR: Well, Plof parser in Plof has no way of parsing it.
16:01:38 <ehird> Plof parser in Ploforth lets you use the Ploforth parser to parse it so you can parse Plof.
16:01:39 <GregorR> The Plof parser in Plof can be compiled to PSL.
16:01:48 <ehird> GregorR: Yes, but that's brittle-r.
16:01:54 <ehird> What if syntax changes the way it's parsed?
16:01:58 <ehird> You can't parse it with the existing one.
16:02:08 <GregorR> The existing one, which conveniently you already compiled to PSL.
16:02:11 <ehird> Ploforth would seem the right choice for the implementation langauge of Plof things.
16:02:51 <GregorR> You're just suggesting that I write that parser in $PLACE_FAVORITE_TARGET_LANGUAGE_HERE, which seems weird since Plof just compiles to that anyway.
16:03:29 <ehird> GregorR: Because writing the X parser in X is a doorway to a world of pain.
16:03:49 <ehird> What if the syntax of X changes so that your new X parser --written with the new X syntax-- cannot be parsed with the old pre-parsed X parser?
16:04:00 <ehird> GregorR: Also.
16:04:03 <ehird> You need to write two parsers.
16:04:08 <GregorR> Remember, by "parser" I mean "runtime-malleable parsing system"
16:04:10 <ehird> One to bootstrap the process by parsing the Plof parser
16:04:19 <ehird> GregorR: Er, shouldn't the whole thing be in that?
16:04:27 <ehird> Start with Ploforth, add the PUL syntax in it.
16:04:36 <ehird> (s/Ploforth/APSL etc/, too)
16:04:55 <GregorR> I'm going to call the lower-level language LLL to avoid taking sides. Now, let me explain:
16:05:10 <ehird> L^3
16:05:13 <GregorR> Plof is written with first some LLL code that builds up a grammar, then Plof, which all compiles to LLL.
16:05:24 <GregorR> Now, I want to write a malleable, Plof parser in Plof.
16:05:33 <GregorR> That will then be compiled, first time by dplof, to LLL.
16:05:57 <GregorR> Now, that code is loaded into, e.g., cplof, and provides not a parser for Plof necessarily, but a runtime-malleable parser.
16:06:07 <ehird> 16:05 GregorR: Plof is written with first some LLL code that builds up a grammar, then Plof, which all compiles to LLL.
16:06:08 <ehird> 16:05 GregorR: Now, I want to write a malleable, Plof parser in Plof.
16:06:11 <ehird> WHy can't they be the same thing
16:06:21 <ehird> There's no reason to haev an unchangable parser at any level apart from LLL
16:06:28 <ehird> then the LLL should build the malleable parser
16:06:29 <GregorR> It's NOT an unchangeable parser >_<
16:06:49 <GregorR> Sorry, by "Plof parser" I meant "parser suitable for use in Plof"
16:06:53 <ehird> GregorR: Sec -- I compile Rebuild first, and then DSSS right?
16:06:55 <ehird> Also.
16:06:56 <ehird> You mean
16:06:58 <ehird> a parsing _library_?
16:07:06 <ehird> I don't think that's a language concern
16:07:24 <GregorR> It's not /really/ a parsing library, but if that term seems closer to you, sure.
16:07:33 <ehird> GregorR: What's it for
16:08:14 <GregorR> You feed it parsing rules, then you feed it unparsed code, and it spits out the result of applying the parsing rules. It's the same as the parser in dplof.
16:08:31 <ehird> Tell you what, I'll think about all this when I understand it.
16:08:35 <ehird> Now... I have ldc.
16:08:53 <ehird> I need the ldc-posix-tango thing.
16:09:03 <ehird> Ah, here it is.
16:09:13 <ehird> ln -s `pwd`/ldc-posix-tango $HOME/.rebuild
16:09:21 <ehird> Er..
16:09:22 <ehird> Ah.
16:09:41 <ehird> I have to compile rebuild/DSSS.
16:09:41 <ehird> GregorR: Should I use the svn version?
16:10:03 <GregorR> Yeah, it should be stable.
16:10:32 <ehird> D is a ghetto :-P
16:11:09 <ehird> A dsss/Makefile.gdc.posix
16:11:10 <ehird> A dsss/Makefile.dmd.win
16:11:13 <ehird> Oh fucksake.
16:11:34 <ehird> Ah, some sort of thing in ldc/
16:11:39 <ehird> I only wish I understood it
16:12:14 <GregorR> Just .../rebuild -full -Irebuild sss/main.d -ofdsss
16:12:14 <ehird> GregorR: Hokay, so, how would I compile DSSS with LDC?
16:12:18 <ehird> Er.
16:12:20 <ehird> I don't have rebuild, see.
16:12:26 <GregorR> cd rebuild, make
16:12:34 <ehird> GregorR: what will that compile with
16:12:36 <GregorR> g++
16:12:40 <ehird> ah.
16:12:47 <GregorR> rebuild is based on the DMD frontend, which is C++
16:13:37 <ehird> Neither DMD nor GDC found in $PATH. Not configuring a default.
16:13:37 <ehird> Please add ONE of the following lines to your rebuild.conf/default file:
16:13:44 <ehird> Aww, poor rebuild is confused.
16:13:46 * ehird copies.
16:14:10 <ehird> GregorR: Er, wuz "rebuild.conf/default"
16:14:19 <ehird> o
16:14:19 <ehird> there
16:14:24 <GregorR> echo 'profile=ldc-posix-tango' > ~/.rebuild/default
16:14:32 <GregorR> And copy rebuild.conf/tango in there for good measure :P
16:14:42 <ehird> You mean:
16:14:46 <ehird> cp ~/Downloads/ldc/ldc-posix-tango rebuild.conf
16:14:52 <ehird> then add profile=blah to rebuild.conf/default
16:14:54 <ehird> then make install
16:15:05 <GregorR> Sure, why not :P
16:15:16 <ehird> GregorR: OK, then I'll need a user tango library thing, right?
16:15:30 <ehird> GregorR: So compile DSSS, net install tango or whatnot?
16:15:30 <GregorR> .................................... I have no idea what that means.
16:15:39 <ehird> Nor. Do. I.
16:15:43 <GregorR> Isn't tango installed as part of LDC?
16:15:47 <ehird> "While LDC does use the Tango runtime per default, you still need to compile the Tango user library to build most applications. "
16:15:49 <ehird> http://www.dsource.org/projects/ldc#UsingTango
16:15:58 <GregorR> Oh, that's nice >_>
16:16:01 <ehird> Then the next section about using rebuild also mentions tango, I have no fuckin' idea.
16:16:08 <ehird> But I get I shouldn't do the using tango stuff
16:16:10 <ehird> and instead do it with rebuild
16:16:14 <GregorR> TBH, I don't know how to help you there, I guess you'll need to get Tango and compile it separately.
16:16:38 <ehird> GregorR: Well, won't "dsss net install tango version thing 0.99.8" work?
16:16:51 <GregorR> Only after you compile dsss.
16:16:57 <ehird> Right.
16:17:03 <ehird> ln -s rebuild /usr/local/bin/rerun
16:17:03 <ehird> ln: /usr/local/bin/rerun: File exists
16:17:05 <ehird> Grr.
16:17:13 <ehird> ... why is it linking?
16:17:18 <ehird> It shouldn't link. This directory won't exist soon.
16:17:42 <GregorR> ln -s rebuild links something to rebuild in whatever directory the target is, not the current directory.
16:17:46 <ehird> Ah.
16:17:50 <GregorR> ln -s $PWD/rebuild links to rebuild in the current directory.
16:17:50 <ehird> You sure?
16:17:52 <GregorR> Quite.
16:18:01 <ehird> wait...
16:18:05 <ehird> what's ln's arg order again?
16:18:12 <ehird> src target. right
16:18:18 <GregorR> Yes.
16:18:22 <ehird> sudo ln -s /usr/local/bin/{rebuild,rerun}
16:18:26 <GregorR> Except that 'src' is just a name, not a file.
16:18:38 <GregorR> That's not good, if you ever move things from /usr/local/bin/bleh to anywhere else.
16:19:23 <ehird> I won't.
16:19:31 <GregorR> Aaaanywho, here's the problem:
16:19:35 <ehird> Okay I have rebuild
16:19:39 <GregorR> DSSS is meant to be built against Phobos, b
16:19:40 <ehird> Oh, problem, shit.
16:19:43 <ehird> Right.
16:19:45 <ehird> Tangobos.
16:19:45 <GregorR> Hm, I just hit enter.
16:19:47 <GregorR> Weird.
16:19:51 <ehird> Tangobos? Tangobos.
16:19:59 <GregorR> Yeah, but for that you need Tango.
16:20:08 <GregorR> So (indirectly) DSSS requires Tango on LDC.
16:20:08 <ehird> I think I have tango.
16:20:12 <ehird> Just system tango or something.
16:20:14 <ehird> Not user tango.
16:20:15 <ehird> I don't know.
16:20:16 <GregorR> <ehird> "While LDC does use the Tango runtime per default, you still need to compile the Tango user library to build most applications. "
16:20:17 <ehird> Let's try it.
16:20:20 <ehird> I know.
16:20:27 <ehird> "rebuild -full -Irebuild sss/main.d -ofdsss" should work, right?
16:20:39 <GregorR> Certainly not if you don't have tangobos, but it may do something :)
16:21:00 <ehird> sss/main.d(31): module file cannot read file 'std/file.d'
16:21:02 <ehird> Rightyho.
16:21:09 <ehird> GregorR: Ohhhh
16:21:11 <Deewiant> I love that error message.
16:21:15 <Deewiant> It's completely nonsensical.
16:21:17 <ehird> GregorR: They want me to build user tango with rebuild
16:21:44 <GregorR> I would continue to be helpful, but unfortunately I actually need to leave >_>
16:21:49 <ehird> :D
16:21:52 <GregorR> What with school and all that.
16:21:58 <ehird> GregorR: one question.
16:22:00 <GregorR> Shore
16:22:07 <ehird> Can tango be built with rebuild?
16:22:27 <GregorR> AFAIK, Tango for LDC is built by a complicated mess of shell scripts and makefiles.
16:22:35 <ehird> Yeah. But.
16:22:35 <GregorR> No rebuild, no DSSS.
16:22:42 <ehird> It offers rebuild as an alternative, GregorR, and there's tango/dsss.conf
16:23:02 <GregorR> If there are instructions on building with rebuild and no DSSS, go for it.
16:23:03 <Deewiant> ehird: I wouldn't bother, just use the shell scripts
16:23:13 <ehird> Kay.
16:23:14 <ehird> Thanks.
16:23:31 <ehird> GOD this is a pain in the pain.
16:23:42 <GregorR> Somebody needs to assert God-like power over the D community and clean this whole mess up.
16:23:54 <ehird> Yes.
16:24:03 <ehird> Benevolent Dictator For Until You Get Your Fucking Shit Together.
16:24:10 <Deewiant> What particular mess now?
16:24:21 <ehird> Deewiant: You are blind.
16:24:36 <Deewiant> I'm not reading the logs at all, just tell me or don't
16:24:47 <ehird> Deewiant: Getting D working.
16:25:14 <Deewiant> Getting LDC to work is a matter of cmake && make && make runtime
16:25:23 <GregorR> Deewiant: D1 vs D2, combine that with Phobos vs Tango, combine that with one compiler that only supports Tango, one that barely supports anything, and one that only supports D1, and *KABOOM*
16:25:30 <Deewiant> Getting Tango to work thereafter is a matter of cd tango/lib && something
16:25:45 <ehird> one that barely supports anything?
16:25:50 <ehird> dmd? :P
16:25:54 <GregorR> Yes :P
16:25:59 <Deewiant> GregorR: GDC being the last of the three?
16:26:02 <GregorR> Perhaps I'm more negative than I need to be on DMD :P
16:26:04 <GregorR> Deewiant: Yeah.
16:26:08 <ehird> GDC only supports 2007
16:26:09 <ehird> :D
16:26:18 <GregorR> Deewiant: Its D2 support doesn't count because it's wildly out of date.
16:26:34 <GregorR> Deewiant: Sure, once you know what and where everything is, the process is simplish, but to somebody who doesn't use D all the time, getting it all set up is insanity.
16:26:51 <Deewiant> GregorR: I haven't used D2 at all since Tango doesn't support it so I don't know about that
16:27:30 <Deewiant> Actually I'd say the trickiest part of getting D set up is getting DSSS and/or Rebuild set up
16:27:39 <GregorR> Yaaaaaaaaaaaay :P
16:27:40 <Deewiant> With LDC, the basic process is really simple IMO.
16:28:13 <GregorR> Now /me really needs to leave for schoo,.
16:28:14 <GregorR> *school
16:28:16 <GregorR> *vanish
16:28:26 <Deewiant> GregorR: I wanted to build a 64-bit binary of Rebuild and had to hack its source to make it LDC-aware
16:28:27 <ehird> [ehird:~/Code/scraps/2009-04] % rebuild hello.d
16:28:27 <ehird> WARNING: Module hello.d does not have a module declaration. This can cause problems
16:28:29 <ehird> with rebuild's -oq option. If an error occurs, fix this first.
16:28:31 <ehird> Undefined symbols:
16:28:33 <ehird> "__D5tango4stdc6stdlib8__ModuleZ", referenced from:
16:28:35 <ehird> __D6object9__importsZ in libtango-base-ldc.a(genobj.o)
16:28:37 <ehird> Hurh.
16:28:41 <Deewiant> ehird: It can't find libtango-user-ldc.a
16:28:48 <Deewiant> The WARNING can be ignored.
16:28:54 <ehird> Deewiant: Then it's dumb as fuck. Wait. "__D6object9__importsZ in libtango-base-ldc.a(genobj.o)"
16:28:56 <ehird> Of course it can find it.
16:28:59 <Deewiant> ehird: No it can't.
16:29:01 <ehird> It just mentioned it referencing something.
16:29:04 <Deewiant> ehird: That's -base-, not -user-.
16:29:07 <ehird> o
16:29:13 <ehird> Right, I need to compile tango.
16:29:36 <ehird> Now... what rebuild invokation...
16:29:40 <ehird> *invocation
16:29:45 <Deewiant> For Tango, just use the shell scripts, seriously.
16:29:52 <ehird> Look, I'm batshit insane, okay?
16:29:57 <Deewiant> It's part C++.
16:30:01 <Deewiant> Rebuild won't suffice.
16:30:06 <ehird> Your mom's part C++. But fine.
16:30:21 <Deewiant> My mom's too old to be any part C++.
16:30:28 <ehird> She traveled in time.
16:30:38 <Deewiant> Meh.
16:30:47 <ehird> % ./build-tango.sh ldc
16:31:03 <Deewiant> I forget. Maybe.
16:33:53 <ehird> Okay, so after this I do some really wild rebuild shit wit tangobos. Or something.
16:34:04 <ehird> Um. Hizzouse.
16:35:20 <ehird> Deewiant: I did "sudo install libtango-user-ldc.a /usr/local/lib" and it still can't find it.
16:35:42 <Deewiant> Run rebuild -v to see what it's doing.
16:35:59 <ehird> link ldc ./nmd_hello.o ./tango.io.Stdout.o ./tango.io.Console.o ./tango.sys.Common.o ./tango.sys.darwin.darwin.o ./tango.stdc.time.o ./tango.stdc.config.o ./tango.stdc.stddef.o ./tango.stdc.posix.dlfcn.o ./tango.stdc.posix.config.o ./tango.stdc.posix.fcntl.o ./tango.stdc.stdint.o ./tango.stdc.posix.sys.types.o ./tango.stdc.posix.sys.stat.o ./tango.stdc.posix.time.o ./tango.stdc.posix.signal.o ./tango.stdc.signal.o ./tango.stdc.posix.poll.o ./tango.s
16:36:02 <ehird> tdc.posix.pwd.o ./tango.stdc.posix.unistd.o ./tango.stdc.posix.inttypes.o ./tango.stdc.inttypes.o ./tango.stdc.posix.sys.select.o ./tango.stdc.posix.sys.time.o ./tango.stdc.errno.o ./tango.stdc.string.o ./tango.io.device.Device.o ./tango.core.Exception.o ./tango.io.device.Conduit.o ./tango.io.model.IConduit.o ./tango.io.stream.Buffered.o ./tango.io.stream.Format.o ./tango.text.convert.Layout.o ./tango.text.convert.Utf.o ./tango.text.convert.Float.o ./tan
16:36:07 <ehird> go.text.convert.Integer.o ./tango.core.Vararg.o ./ldc.Vararg.o -ofhello -L-L/usr/local/bin/../lib -d-version=Tango -defaultlib=tango-base-ldc -debuglib=tango-base-ldc
16:36:19 <Deewiant> Hmm, right, that's probably right.
16:36:24 <ehird> Now adjust your bin/ldc.conf to include -L-ltango-user-ldc.
16:36:24 <ehird> o
16:36:43 <ehird> // 'switches' holds array of string that are appends to the command line
16:36:43 <ehird> // arguments before they are parsed.
16:36:44 <ehird> switches = [
16:36:45 <Deewiant> It occurs to me that using -user- isn't what you're supposed to do.
16:36:46 <ehird> "-I/Users/ehird/Downloads/ldc/runtime/../tango",
16:36:48 <ehird> "-I/Users/ehird/Downloads/ldc/runtime/../tango/lib/common",
16:36:50 <ehird> "-L-L/Users/ehird/Downloads/ldc/runtime/../lib",
16:36:52 <ehird> God damn, this shit is dumb.
16:36:57 <ehird> I DID "MAKE INSTALL"
16:37:05 <ehird> THAT MEANS MY TEMP DIRETORY WILL GO DISAPPEAR
16:37:20 <ehird> Now I have to resolve your own fuckin' paths for you.
16:37:33 <Deewiant> It only installs the binary and the conf, it expects tango to be where it originally was
16:37:42 <ehird> RAAAAAAAAAAAAAAAAAAAAAAAAR
16:38:40 <ehird> There's absolutely no obvious way to *install* Tango.
16:39:30 <Deewiant> There is a way, I forget what it is though since I always just use the SVN.
16:39:53 <ehird> Deewiant: Good news: LDC can't build Tango SVN.
16:39:54 -!- Slereah has joined.
16:39:57 * ehird trashes binaries, starts again.
16:40:05 <Deewiant> It can't?
16:40:10 <ehird> Indeed.
16:40:14 <Deewiant> How's that
16:40:15 <ehird> It says so on the page.
16:40:19 <Deewiant> What page
16:40:23 <ehird> Fetch the tango runtime for D1. Note that LDC fails to compile trunk at the moment - use 0.99.8.
16:40:26 <ehird> The LDC page.
16:40:47 <Deewiant> Hmm, that's recent.
16:42:39 <ehird> Deewiant: So what you're saying is that I should build ldc with the tango runtime where I want to install it?
16:43:00 <ehird> As in, have the tango runtime in /usr/local/lib/tango or whatever and tell ldc to use that.
16:43:08 <ehird> since "it expects tango to be where it originally was"
16:43:25 <Deewiant> Well, I guess it's either that or edit ldc.conf after the fact.
16:44:08 <ehird> Okay. I can handle that. Sure. Except, I don't know how to tell ldc that tango's thataway :|
16:44:17 <Deewiant> CMake, I guess?
16:44:38 <ehird> RUNTIME_DIR */Users/ehird/Downloads/ldc/runtime/../tango
16:44:39 <ehird> Guess so.
16:48:47 <ehird> -D <var>:<type>=<value>
16:48:52 <ehird> I wonder wtf type is
16:49:03 <Deewiant> As do I
16:49:32 <ehird> Does just -D foo=bar work?
16:50:01 <ehird> I'll try.
16:50:35 -!- Slereah_ has quit (Read error: 110 (Connection timed out)).
16:51:35 -!- pikhq has joined.
16:55:16 <ehird> "-L-L/usr/local/workspace/ldc/runtime/../lib",
16:55:17 <ehird> BAH.
16:55:40 <ehird> This is the most user-hostile build process ever.
16:56:10 <Deewiant> You haven't built much stuff on Windows, I take it
16:56:31 <ehird> Windows is the first disease targeted at programmers.
16:57:18 <ehird> I can't even think of a way to fix it without sed
16:57:29 <Deewiant> What, Windows? :-D
16:57:39 <ehird> :D
17:03:53 <ehird> Okay, so, right.
17:03:59 <ehird> I could unpack it to /usr/local.
17:04:01 <ehird> But, just no/
17:04:05 <ehird> I'll take the easy route.
17:04:08 <ehird> /usr/local/d/
17:04:32 <Deewiant> Also, like said, there's the fact that you don't have to be linking to -user- and it's preferable not to
17:04:41 <ehird> Deewiant: I don't get it.
17:04:49 <ehird> I have to link to -user-.
17:04:54 <ehird> Otherwise no tango.
17:05:06 <Deewiant> The reason you're using rebuild is that it builds against the tango modules directly
17:05:09 <Deewiant> No -user- needed
17:05:19 <ehird> Ah.
17:05:26 <Deewiant> The alternative is to not use rebuild and link program.o against -user-
17:05:53 <Deewiant> I pondered briefly why you got an error earlier and am not sure.
17:06:11 <ehird> Deewiant: Wrong paths in the hizzouse.
17:06:28 <Deewiant> ehird: I doubt it, since it seemed to have everything it needed.
17:06:39 <ehird> ldc.conf's paths pointed to my weird-ass download dir.
17:06:42 * ehird shrug
17:07:10 <Deewiant> Well, whatever.
17:07:29 <ehird> Let's hope it works in a cage.
17:11:15 <ehird> Deewiant: So I need to not build -user-?
17:11:22 <ehird> ie omit the build-tango.sh step
17:11:29 <Deewiant> You not to need
17:11:52 <Deewiant> You can, and I always do out of habit, but I don't think I've ever actually needed it
17:11:52 <ehird> :D
17:14:40 <ehird> Fuck. I messed up my magick build steps.
17:20:49 <ehird> I hope rebuild works without installing.
17:23:51 <ehird> Yay! Tangobos's makefile uses dmd, and the only other way to compile it is dsss.
17:24:00 <ehird> KILL ME NOW.
17:25:13 <Deewiant> Build Gtk2hs on Windows twice and then reconsider your predicament.
17:25:32 <ehird> No, I'd rather kill myself like my current plan, but thanks for the offer.
17:25:43 <ehird> Deewiant: try building gtk2hs on os x _once_ using native gtk
17:25:48 <ehird> you have to manually patch a .cabal.in
17:25:57 <ehird> and have a HUGE pkgconfig environment variable
17:26:00 <Deewiant> You have native GTK? That's cheating
17:26:02 <Deewiant> Oh, and pkgconfig!
17:26:10 <ehird> native gtk == gtk for os x.
17:26:12 <Deewiant> You have all these things that do things for you
17:26:16 <ehird> No
17:26:19 <ehird> They don't do things for me
17:26:23 <ehird> The majority of it is working around it
17:26:49 <Deewiant> On Windows you have to start with building Gtk
17:26:52 <Deewiant> Which takes a day or two
17:27:02 <ehird> you can dl a binary
17:27:13 <Deewiant> And find that it doesn't work
17:28:14 <ehird> why doesn't t his just work
17:28:37 <ehird> everything works up to tangobos
17:28:52 <Deewiant> Swap ldmd for dmd in the makefile
17:28:54 <Deewiant> And see what happens
17:29:42 <ehird> I have no "ldmd".
17:29:56 <Deewiant> Consider getting one :-P
17:30:10 <Deewiant> It's in ldc/bin for me
17:30:26 <Deewiant> Maybe make install doesn't install it or something
17:30:57 <ehird> Less try this
17:30:57 <ehird> rebuild -full std/*.d std/*/*.d
17:31:17 <ehird> std/stream.d(1824): Error: identifier 'HANDLE' is not defined
17:31:18 <ehird> std/stream.d(1824): Error: HANDLE is used as a type
17:31:21 <ehird> std/date.d(963): Error: function std.c.linux.linux.time (__time_t*) does not match parameter types (int*)
17:31:25 <ehird> std/path.d(83): Error: static assert is false
17:31:28 <ehird> Etc etc etc.
17:31:58 <ehird> Hmm.
17:31:59 <Deewiant> The first one might be a version (Linux) else // win32
17:32:03 <ehird> Ah.
17:32:12 <ehird> HOw can I specify version Linux?
17:32:22 <Deewiant> You can't, it's built-in and unmodifyable.
17:32:25 <ehird> actually, no
17:32:29 <ehird> it's just testing version (Unix)
17:32:35 <ehird> and
17:32:38 <ehird> version(DigitalMars) version(Posix) {
17:32:38 <ehird> version=Unix;
17:32:39 <ehird> }
17:32:41 <ehird> so can't I do
17:32:43 <ehird> version=Unix
17:32:46 <Deewiant> Try
17:32:47 <ehird> on the command line or sth
17:32:59 <ehird> -version=ident compile in version code identified by ident
17:33:07 <ehird> -version=Linux -version=Unix
17:33:29 <ehird> std/date.d(877): Error: identifier 'time_t' is not defined
17:33:29 <ehird> std/date.d(877): Error: time_t is used as a type
17:33:30 <ehird> Hm.
17:33:59 <ehird> It just uses time_t.
17:34:02 <ehird> Oh.
17:34:04 <ehird> Hm.
17:34:15 <ehird> I don't get it
17:34:22 <ehird> Where's time_t meant to b
17:34:23 <ehird> e
17:34:37 <ehird> Ohhhh.
17:35:48 <ehird> Deewiant: Mostly same issue, those non-existant types.
17:37:04 <ehird> ... oh wait.
17:37:09 <ehird> Tangobos is maybe wanting an older Tango.
17:37:29 <ehird> ------------------------------------------------------------------------
17:37:30 <ehird> r62 | fawzi | 2009-04-17 15:00:59 +0100 (Fri, 17 Apr 2009) | 2 lines
17:37:31 <ehird> improvements to compile tangobos with latest tango and dmd on mac (but still tangobos is still broken)
17:37:43 <ehird> FUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUCCCCCCCCCCCCCCCCCCCCCKKKKKKKKKKKKKKK
17:38:25 -!- GregorR-L has joined.
17:38:32 <ehird> GregorR-L: I hate you.
17:38:33 <ehird> ------------------------------------------------------------------------
17:38:33 <ehird> r62 | fawzi | 2009-04-17 15:00:59 +0100 (Fri, 17 Apr 2009) | 2 lines
17:38:35 <ehird> improvements to compile tangobos with latest tango and dmd on mac (but still tangobos is still broken)
17:38:41 <ehird> It's all broken ;_;
17:39:14 <GregorR-L> I haven't had anything to do with tangobos in quite a while.
17:39:39 <ehird> GregorR-L: You made it, it's broken. So there. :P
17:39:52 <ehird> I believe it is literally impossible for me to get LDC/DSSS working.
17:40:02 <GregorR-L> + on Mac and that may be true.
17:40:27 <ehird> GregorR-L: it'd be quicker to rewrite all of dplof :P
17:40:44 <GregorR-L> Try something like this to compile manually maybe: rebuild plof/main.d -ofdplof
17:40:48 <GregorR-L> Idonno if that'll work.
17:41:13 -!- neldoreth has quit ("Lost terminal").
17:41:20 <GregorR-L> (Same with plof/psl/pslasm.d to pslasm)
17:41:54 <ehird> % PATH=/usr/local/d/dsss/rebuild:/usr/local/d/ldc/bin:$PATH rebuild plof/main.d -ofdplof
17:41:58 <ehird> Seems to be working.
17:42:01 <ehird> Ahaahahaha.
17:42:01 <ehird> No.
17:42:08 <GregorR-L> ?
17:42:15 <ehird> GregorR-L: Behold:
17:42:19 <ehird> http://pastie.org/449962.txt?key=m9vakzgxmncjztocjrn9ig
17:42:42 <ehird> hahahahahhahahaha fuck LDC. What do you use for dplof GregorR-L?
17:42:43 <GregorR-L> Sweet, I crashed ldc.
17:42:49 <GregorR-L> gdc still :P
17:42:57 <ehird> Does it build with dmd?
17:43:05 <GregorR-L> It should.
17:43:07 <ehird> That's ever so slightly more modern than gdc, at least.
17:43:17 <ehird> OTOH, DSSS+GDC justWorks.
17:43:20 <ehird> So I'll do that.
17:43:43 <GregorR-L> Okidoke.
17:43:57 <ehird> GregorR-L: Install gdc, compile rebuild, compile dsss, dsss net install tango.
17:43:58 <ehird> Right?
17:44:07 <GregorR-L> Yup
17:44:34 <ehird> % sudo port install gdc ← ah, convenience.
17:48:16 -!- BeholdMyGlory has quit (Remote closed the connection).
17:48:34 <pikhq> sudo dsss install gdc # Ah, distro-agnostic convenience.
17:48:43 <pikhq> s/install/net-install/
17:49:13 <ehird> pikhq: Im in ur cyclic dependency loop, being fragile. Im in ur five thousand separate package managers, failing at inter-language dependencies and failing at convenient system upgrades.
17:50:06 <GregorR-L> wget http://.../gcc-core-<bleh>.tar.bz2; tar xf gcc-core-<bleh>; wget http://.../gdc-<bleh>.tar.gz; <extract, extract, patch, patch>; configure; build <- AHHHHHH! Convenience?! :P
17:50:35 <ehird> hg clone ldc, svn co tango, cp patch rm svn make make runtime sed cp tangobos KILL YOURSELF
17:50:38 <ehird> Convenience!
17:54:51 <pikhq> GregorR-L: Well, that would be the LFS way.
17:55:20 <GregorR-L> Yay LFS 8-D
17:55:32 -!- neldoreth has joined.
17:57:54 <ehird> GregorR-L: I have GDC. Now dsss, right?
17:58:16 <GregorR-L> Yes
17:58:21 <pikhq> Could've just gotten a binary of dsss and let that deal with the mess, but, yeah.
17:58:30 <ehird> pikhq: For OS X?
17:59:05 <pikhq> Ah. Well, not very likely to find one, then. ;)
17:59:37 <ehird> Ignore any error from GDC or DMD in the following lines.
17:59:37 <ehird> /Users/ehird/Downloads/dsss/rebuild/./testtango.d:3: function testtango.A.toUtf8 function toUtf8 does not override any
17:59:39 <ehird> :D
18:00:11 -!- KingOfKarlsruhe has joined.
18:01:20 <GregorR-L> ehird: That's correct, that's how it detects whether you have Phobos or Tango installed.
18:01:24 <ehird> I know.
18:01:25 <ehird> Just amusing.
18:01:49 <ehird> GregorR-L: I has a rebuild.
18:01:54 <ehird> make -f Makefile.gdc.posix?
18:02:09 <GregorR-L> Yes
18:02:20 <ehird> /var/folders/sv/sv9BdLB9FEa1o30pkRqXCk+++TI/-Tmp-//cc3G6Yos.s:916:indirect jmp without `*'
18:02:20 <ehird> /var/folders/sv/sv9BdLB9FEa1o30pkRqXCk+++TI/-Tmp-//cc3G6Yos.s:935:indirect jmp without `*'
18:02:22 <ehird> /var/folders/sv/sv9BdLB9FEa1o30pkRqXCk+++TI/-Tmp-//cc3G6Yos.s:950:indirect jmp without `*'
18:02:24 <ehird> /var/folders/sv/sv9BdLB9FEa1o30pkRqXCk+++TI/-Tmp-//cc3G6Yos.s:965:indirect jmp without `*'
18:02:26 <ehird> /var/folders/sv/sv9BdLB9FEa1o30pkRqXCk+++TI/-Tmp-//cc3G6Yos.s:980:indirect jmp without `*'
18:02:28 <GregorR-L> WTFBBQ?
18:02:28 <ehird> /var/folders/sv/sv9BdLB9FEa1o30pkRqXCk+++TI/-Tmp-//cc3G6Yos.s:995:indirect jmp without `*'
18:02:30 <ehird> /var/folders/sv/sv9BdLB9FEa1o30pkRqXCk+++TI/-Tmp-//cc3G6Yos.s:1017:indirect jmp without `*'
18:02:32 <ehird> /var/folders/sv/sv9BdLB9FEa1o30pkRqXCk+++TI/-Tmp-//cc3G6Yos.s:1036:indirect jmp without `*'
18:02:34 <ehird> /var/folders/sv/sv9BdLB9FEa1o30pkRqXCk+++TI/-Tmp-//cc3G6Yos.s:1051:indirect jmp without `*'
18:02:34 <pikhq> WTFBBQ?
18:02:36 <ehird> make: *** [dsss] Error 1
18:02:38 <ehird> About 7 billion lines of them
18:02:40 <ehird> Also
18:02:42 <ehird> hcf/env.d:55: static assert is false
18:02:44 <ehird> hcf/process.d:149: function hcf.process.PStream.readBlock expected to return a value of type uint
18:02:46 <ehird> hcf/process.d:172: function hcf.process.PStream.writeBlock expected to return a value of type uint
18:02:48 <ehird> sss/conf.d:206: static assert is false
18:02:50 <ehird> what what in the butt
18:03:44 <GregorR-L> Oh wait, do you still have ~/.rebuild floating about?
18:03:49 <GregorR-L> Setting rebuild's default to LDC?
18:04:03 <ehird> Maybe
18:04:08 <pikhq> ... That'd do it.
18:04:08 <ehird> GregorR-L: no
18:04:08 <GregorR-L> DESTROY
18:04:12 <GregorR-L> Oh
18:04:25 <pikhq> Well, then. BAD ASSEMBLY GENERATOR, BAD!
18:04:30 <GregorR-L> Seems like the installed gdc is wrong D-8
18:04:44 <ehird> Hrm.
18:04:49 <ehird> GregorR-L: Phobos hello world, plz?
18:05:18 <GregorR-L> Wow, I actually can't think of it O_O
18:05:22 <ehird> haha
18:05:47 <pikhq> Wasn't it something like writeln("Hello, world!"); ?
18:06:00 <GregorR-L> import std.stdio; int main() { writeln("Hello, world!"); return 0; }
18:06:08 -!- neldoreth has quit (Remote closed the connection).
18:06:14 <GregorR-L> gdc hello.d -o hello
18:06:22 <ehird> hello.d:1: Error: undefined identifier writeln
18:06:23 <ehird> hello.d:1: Error: function expected before (), not writeln of type int
18:06:26 <ehird> :awesome:
18:06:36 <Deewiant> GregorR-L: Also, that Tango-test doesn't work any more since Tango also gives toString.
18:06:50 <GregorR-L> ehird: Oh, I'm sorry, writefln
18:07:04 <GregorR-L> Deewiant: Super :P
18:07:14 <pikhq> Oh, vunderbar.
18:07:20 <Deewiant> GregorR-L: Is there a particular reason you can't just use version (Tango)?
18:07:24 -!- neldoreth has joined.
18:07:40 <ehird> % gdc hello.d -o hello
18:07:40 <ehird> /var/folders/sv/sv9BdLB9FEa1o30pkRqXCk+++TI/-Tmp-//ccth4S8d.s:194:indirect jmp without `*'
18:07:45 <ehird> OTOH
18:07:46 <ehird> % ./hello
18:07:47 <ehird> Hello, world!
18:07:47 <Deewiant> Or I don't know, try to import std.stdio
18:07:53 <ehird> So it's just a warning
18:07:55 <GregorR-L> Deewiant: I recall there being some complicated issue behind it, but I don't remember what it was ...
18:07:59 <ehird> Albeit a hugely fucking annoying one
18:08:01 <Deewiant> :-P
18:08:10 <ehird> GregorR-L: Ergo, the problem is the other errors
18:08:18 <ehird> 18:02 ehird: hcf/env.d:55: static assert is false
18:08:18 <ehird> 18:02 ehird: hcf/process.d:149: function hcf.process.PStream.readBlock expected to return a value of type uint
18:08:21 <ehird> 18:02 ehird: hcf/process.d:172: function hcf.process.PStream.writeBlock expected to return a value of type uint
18:08:24 <ehird> 18:02 ehird: sss/conf.d:206: static assert is false
18:08:30 <ehird> } else {
18:08:31 <ehird> static assert(0);
18:08:32 <GregorR-L> ehird: Seems like Posix is unset, but I don't know why ... what's in rebuild/rebuild.conf/default ?
18:08:32 <ehird> }
18:08:34 <ehird> Ah.
18:08:36 <ehird> version Posix or version Windows.
18:08:45 <ehird> GregorR-L: profile=gdc-posix
18:08:51 <Deewiant> I love the way that Walter at some point decided that not printing the test in static assert is unnecessary
18:09:03 <pikhq> Well, that's certainly *unique*.
18:09:06 <Deewiant> I think it prints "" in a %s which is why there's a double-space there
18:09:23 <Deewiant> "static assert %s is false"
18:09:31 <ehird> :D
18:09:38 <pikhq> Deewiant: Eeeew.
18:09:42 <Deewiant> It used to print the messages, after all
18:09:49 <Deewiant> In, I don't know, 0.15x?
18:10:01 <ehird> I hate D.
18:10:04 <ehird> With a fiery passion of fire.
18:10:16 <GregorR-L> ehird: rebuild -vv sss/main.d -ofdsss and pastebin the (extensive) output
18:10:25 <Deewiant> I think I'll try to install Tangobos too
18:10:51 <ehird> GregorR-L: Extensive output: http://pastie.org/449989.txt?key=rz2d3r4vsx85uldnzsm9vw
18:11:07 <GregorR-L> lol :P
18:11:14 <GregorR-L> Sorry, forgot -Irebuild
18:11:33 <ehird> GregorR-L: New extensive output: http://pastie.org/449989.txt?key=rz2d3r4vsx85uldnzsm9vw
18:11:42 <pikhq> ehird: I love D, I hate its build environment.
18:11:56 <pikhq> (with the exception of dsss, really; that's a nice bit of work)
18:12:40 <GregorR-L> ehird: >_O
18:12:58 <GregorR-L> rebuild -vv -Irebuild sss/main.d -ofdsss doesn't find util/ in rebuild/? ...
18:13:31 <ehird> Wanna hear a joke guys?
18:13:40 <ehird> D.
18:13:44 <GregorR-L> LAWL
18:14:42 <ehird> SOOOOOOOOOOOOOOO
18:15:00 <ehird> WUT I DO LOL
18:15:05 <ehird> oh wait
18:15:05 <ehird> GregorR-L:
18:15:10 <ehird> is that a capital i
18:15:13 <GregorR-L> Yes
18:15:16 <ehird> not a lowercase L
18:15:20 <ehird> :DDDDDDDDDDD
18:15:22 <GregorR-L> Not a lowercase l.
18:15:22 <ehird> DDDDDDDDDDDDDDDDDDD
18:15:23 <GregorR-L> :P
18:15:23 <ehird> DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
18:15:24 <ehird> DDDDDDDDDDDDDDDDDD
18:15:26 <ehird> D
18:15:47 <ehird> GregorR-L: New output
18:15:48 <ehird> dmd: unrecognized switch '-vv'
18:15:49 <ehird> dmd: unrecognized switch '-vv'
18:15:51 <ehird> dmd: unrecognized switch '-vv'
18:16:06 <GregorR-L> Whoops, sorry, -vv is a DSSS flag, meant just -v X-D
18:16:33 <ehird> And lo, the output was finally extensive.
18:16:35 <Deewiant> std/date.d(901): Error: cannot implicitly convert expression (localtime(&t)) of type tm* to tm*
18:16:38 <Deewiant> Darn!
18:16:42 <ehird> GregorR-L: http://pastie.org/449995.txt?key=prfwckd8qsk43dhlubdddq
18:16:42 <ehird> compile gdmd -c hcf/env.d -of./hcf.env.o -I/usr/local/bin/../include/d -Irebuild -version=GNU_or_Posix
18:16:47 <ehird> GNU_or_Posix.
18:16:50 <ehird> You heard it here first.
18:17:05 <GregorR-L> WTF X-D
18:17:13 <ehird> version(GNU) { } version (Posix) { } version (GNU_or_Posix) {} version (Posix_or_GNU) {} version (GNU_Linux) { }
18:17:14 <ehird> etc
18:18:01 <GregorR-L> You don't have any weird ~/.rebuild or /etc/rebuild set up in some inexplicable way ...? That's truly confusing.
18:18:42 <GregorR-L> grep GNU_or_Posix rebuild/rebuild.conf/* ?
18:19:13 <ehird> % grep GNU_or_Posix **/*
18:19:14 <ehird> sss/conf.d: pragma(export_version, "GNU_or_Posix");
18:19:15 <ehird> sss/conf.d: pragma(export_version, "GNU_or_Posix");
18:19:42 <ehird> GregorR-L: lolwut^_^
18:20:31 <GregorR-L> Oh duh, forgot all about that, so the real mystery is why -version=Posix is seemingly not in your rebuild.conf/gdc-posix ...
18:20:33 -!- Slereah_ has joined.
18:20:55 <ehird> it has
18:20:57 <ehird> version=GNU
18:20:58 <ehird> and
18:20:59 <ehird> version=Unix
18:21:05 <ehird> but not posix
18:21:14 <GregorR-L> On its cmd=gdmd line it should have -version=Posix
18:21:18 <pikhq> Whisky Tango Foxtrot...
18:21:23 <ehird> cmd=gdmd -c $i
18:21:23 <ehird> cmd=gdmd $i -of$o
18:21:27 <ehird> cmd=gdmd -q,-shared -q,-nodefaultlibs $i -of$o
18:21:30 <ehird> cmd=gdmd -q,-shared -q,-nodefaultlibs $i $l/dymoduleinit.d -of$o
18:21:36 <GregorR-L> WTF ITS GONE
18:21:38 <ehird> version=-version=$i
18:21:43 <ehird> GregorR-L: you're on crack.
18:21:54 <GregorR-L> Who TF remoed that from gdc-posix???
18:22:05 <ehird> GregorR-L:
18:22:06 <ehird> ------------------------------------------------------------------------
18:22:06 <ehird> r943 | Jim Panic | 2009-03-31 21:01:52 +0100 (Tue, 31 Mar 2009) | 2 lines
18:22:08 <ehird> Removed "version = Posix" statements from rebuild/util sources.
18:22:10 <ehird> ------------------------------------------------------------------------
18:22:12 <ehird> r942 | Jim Panic | 2009-03-31 20:54:59 +0100 (Tue, 31 Mar 2009) | 2 lines
18:22:14 <ehird> Removed all occurances of -version=Posix from rebuild config files.
18:22:16 <ehird> XDDDDDDDDDDDDDDD
18:22:18 <GregorR-L> ... WHY
18:22:23 * ehird seizure of laughteramust
18:22:38 <ehird> FUCK YOU JIM PANIC.
18:22:55 <GregorR-L> ... maybe you should grab the latest release of DSSS instead of SVN X_X
18:23:01 <ehird> hahahhahah
18:23:02 <Deewiant> Doesn't the frontend error if you set -version=Posix?
18:23:14 <GregorR-L> Deewiant: Yeah, but that's not in GDC (yet)
18:23:21 <GregorR-L> Deewiant: (Or ever)
18:23:25 <ehird> GregorR-L: Latest release link plz
18:23:25 <Deewiant> Well, that'd explain it :-P
18:23:32 <pikhq> GregorR-L: Would you like something to kill Jim Panic with?
18:23:43 <ehird> pikhq: Make him set up LDC/DSSS on OS X.
18:23:45 <GregorR-L> I'm talkin' to 'im.
18:23:48 <Deewiant> Also, got Tangobos's D parts to build, now working on the C
18:23:50 <ehird> Forever.
18:24:15 <pikhq> ehird: That's significantly worse than doing the same on x86_64.
18:24:26 <ehird> pikhq: I tried it with _64 ... on OS X, before.
18:24:43 <ehird> pikhq: Let's just say that Dante got it all wrong. He could not possibly imagine.
18:24:47 <pikhq> It took me a couple of years.
18:24:58 <pikhq> Sorry, that was GDC/DSSS/Tango.
18:25:10 <ehird> GDC? Pfft. Peanuts.
18:25:20 <Deewiant> Yay, I have a libtangobos.a
18:25:22 <ehird> LDC/Tangobos/DSSSS/OS X, 64-bit.
18:25:27 <Deewiant> I wonder if it works at all
18:25:33 <ehird> Also known as "las diablos compileros".
18:26:09 -!- Slereah has quit (Read error: 110 (Connection timed out)).
18:26:14 <GregorR-L> ehird: svn up
18:26:23 <ehird> svn co again, you mean :P
18:26:37 <Deewiant> Hmm, not quite it doesn't work
18:26:39 <GregorR-L> Or "downgrade" to a release.
18:26:40 <GregorR-L> Also fine.
18:27:13 <ehird> Let's try this, then.
18:27:49 <ehird> GregorR-L: Still lots of indirect jump bullshit but no ERRORS
18:27:50 <ehird> yAAAAAAAAAAAy
18:28:01 <ehird> % sudo make -f Makefile.gdc.posix install PREFIX=/usr/local
18:28:16 <GregorR-L> ehird: Please understand that I'm phasing out dplof for this very reason :P
18:28:25 <Deewiant> Hmmh, no alloca
18:28:33 <ehird> GregorR-L: Mhm.
18:28:50 <ehird> GregorR-L: Make dsss shit owned by me then net install tango, right>?
18:28:57 <GregorR-L> Yeah
18:29:04 <ehird> (Why not use sudo? shrug)
18:29:39 * GregorR-L disappears again.
18:29:42 <GregorR-L> *poof*
18:29:44 -!- GregorR-L has quit ("Leaving").
18:30:04 <ehird> % dsss net install tango
18:30:12 <ehird> Default prefix /usr/local is unwritable, using /Users/ehird/d instead.
18:30:15 <ehird> Oh gawd on fuck earth,
18:30:21 <Deewiant> Gah, no __builtin_alloca either
18:30:24 <Deewiant> Where the hell is it
18:30:25 <ehird> Now I need to figure out how to uninstall >________<
18:31:55 <ehird> % dsss net install tango
18:31:56 <ehird> Okay.
18:31:57 <ehird> Let's hope this works.
18:33:40 <ehird> You have chosen to install Tango via DSSS. If you follow through, you
18:33:40 <ehird> will no longer be able to build Phobos-based software. Uninstalling
18:33:42 <ehird> tango via DSSS WILL NOT uninstall the tango core, so this operation
18:33:44 <ehird> is difficult to undo. Are you sure you want to do this?
18:33:51 <ehird> I love this shit. Not.
18:34:07 <Deewiant> Hmm, wtf
18:34:20 <ehird> gdc: unrecognized option '-q,-nostdinc'
18:34:20 <ehird> adi.d:149: constructor object.Exception.this (char[]) does not match parameter types (char[22u],char[5u],long)
18:34:20 <Deewiant> writefln writes the newline but nothing else
18:34:23 <ehird> adi.d:149: Error: expected 1 arguments, not 3
18:34:23 <pikhq> Tango, as currently implemented, is an evil hack.
18:34:25 <ehird> adi.d:248: constructor object.Exception.this (char[]) does not match parameter types (char[23u],char[5u],long)
18:34:28 <ehird> adi.d:248: Error: expected 1 arguments, not 3
18:34:30 <ehird> gmake[2]: *** [adi.o] Error 1
18:34:32 <ehird> gmake[2]: Leaving directory `/private/tmp/DSSS_tango/tango/tango/lib/compiler/gdc'
18:34:34 <ehird> gmake[1]: *** [all] Error 2
18:34:36 <ehird> gmake[1]: Leaving directory `/private/tmp/DSSS_tango/tango/tango/lib/compiler/gdc'
18:34:38 <ehird> gmake: *** [lib] Error 2
18:34:39 <Deewiant> ehird: What GDC?
18:34:40 <ehird> Command bash returned with code 256, aborting.
18:34:42 <ehird> Error: Command failed, aborting.
18:34:44 <ehird> YEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH
18:34:45 <Deewiant> Also
18:34:46 <ehird> latest.
18:34:50 <Deewiant> ehird: Latest release?
18:34:52 <Deewiant> Or latest SVN
18:34:55 <ehird> release.
18:34:57 <Deewiant> There's a big difference
18:35:02 <Deewiant> Okay, you're screwed on that count
18:35:05 <ehird> I will not get the svn because I'm trying to do this easily ;_;
18:35:07 <Deewiant> Also
18:35:11 <ehird> Deewiant: can't I
18:35:14 <ehird> dsss net install gdc
18:35:15 <Deewiant> I think the Tango guys say that GDC is screwed
18:35:20 <ehird> they do
18:35:27 <Deewiant> As in, unsupported
18:35:31 <ehird> don't care
18:35:36 <Deewiant> Then stop bitching
18:35:43 <ehird> :P
18:35:46 <Deewiant> Seriously :-P
18:35:56 <ehird> but this shit is _ridiculous_
18:36:03 <Deewiant> Tangobos looks to be in a crock-state so I'll see about GDC 0.20
18:36:10 <ehird> 17:48 pikhq: sudo dsss install gdc # Ah, distro-agnostic convenience.
18:36:15 <ehird> pikhq: that package doesn't even exist
18:36:50 <pikhq> Hrm. Gimme a bit to remember what it was.
18:37:47 <Deewiant> Hmm, GDC works out of the box
18:37:56 <Deewiant> Let's see if it can compile my Sudoku solver
18:38:18 <Deewiant> Ew, a bud file
18:38:29 <Deewiant> I wonder when I last used bud
18:38:30 <ehird> god i hate d
18:38:34 <Deewiant> Probably the last time I compiled this
18:39:18 <pikhq> gcc-4.3-gdc-0.20 or some such.
18:39:54 <pikhq> ehird: It's a good language with very bad support for, you know, getting an implementation up and running.
18:40:20 <ehird> pikhq: unlike every other language, where a full environment is one command away
18:40:22 <pikhq> God, I hate GDC and Phobos and all that stupid shit you have to deal with.
18:40:36 <pikhq> Ding ding ding.
18:40:57 <pikhq> We have a winner.
18:41:14 <ehird> >_<
18:41:16 <ehird> Grah.
18:42:19 <Deewiant> Hmm, GDC 0.24's Phobos is too new :-(
18:42:21 -!- jix_ has joined.
18:42:21 -!- jix has quit (Read error: 113 (No route to host)).
18:42:48 <Deewiant> Or then it's been missing something forever, which is also possible
18:43:26 <ehird> ;_;
18:44:17 <Deewiant> Actually, it seems that this class I've been using is Windows-only O_o
18:44:30 <Deewiant> That sucks
18:44:46 <Deewiant> "is guaranteed to be meaningful on all operating systems."
18:44:52 <Deewiant> But implemented only on one
18:45:43 <Deewiant> Muah!
18:45:48 <Deewiant> Changing that the thing builds
18:45:57 <ehird> Deewiant: Just rewrite it in haskell :P
18:45:59 <Deewiant> Had to pass -d though
18:46:29 <Deewiant> What, the whole thing?
18:46:31 <Deewiant> Nah.
18:46:43 <Deewiant> 8577 lines of code, wow
18:46:50 <Deewiant> That's as long as CCBI
18:47:10 <Deewiant> Ah no, thought not
18:47:20 <Deewiant> Seemed awfully long to me; 2527
18:47:36 <ehird> Deewiant: You can make a near-perfect solver in ~50 lines...
18:47:46 <Deewiant> Yes, but that's crap
18:47:50 <Deewiant> That's using guessing
18:47:54 <Deewiant> This thing implements techniques
18:47:58 <Deewiant> And explains what it's doing along the way
18:48:07 <Deewiant> It didn't even support brute-force for many months
18:48:19 <ehird> That's using guessing? O RLY?
18:48:26 <Deewiant> That, or dancing links
18:48:31 <ehird> http://www.haskell.org/haskellwiki/Sudoku
18:48:32 <Deewiant> Or something equally weird
18:48:57 <Deewiant> Yes, and? :-P
18:52:58 <ehird> 18:45 ehird: has anyone managed to get LDC/Tango/Tangobos working on OS X? I've tried and nothing is working.
18:53:00 <ehird> SILENCE
18:53:14 <Deewiant> Unsurprisingly enough
19:03:58 -!- oerjan has joined.
19:06:42 <oerjan> <ehird> GregorR: one alternative is that if the next line is indented further it's a continuation
19:06:52 <oerjan> trying to get plof even closer to haskell? :D
19:06:56 <ehird> >:)
19:09:09 <oerjan> <ehird> They can appeal?
19:10:06 <oerjan> iirc the european court on human rights requires appeal for criminal cases - i think norway had to adjust some cases to comply with the judgement
19:10:52 <oerjan> as usual, my recalls are vague
19:10:55 <ehird> *requires* appeal?
19:10:57 <ehird> LOL WAT
19:11:00 <ehird> oh
19:11:01 <ehird> you mean
19:11:03 <ehird> requires the option
19:11:03 <oerjan> *the right to appeal
19:11:04 <ehird> of appeal
19:12:29 <oerjan> actually it may have been a more subtle technicality on how the appeals should be that norway had to change
19:17:52 <GregorR> Heheh, appeals are required.
19:17:57 <GregorR> Making the first judgment pointless.
19:18:08 <GregorR> Those low-level judges must hate their jobs :P
19:18:18 <ehird> :D
19:18:52 <ehird> 19:17 lament: oh jesus
19:18:52 <ehird> 19:18 lament: we just got a bug report from a customer
19:18:53 <ehird> 19:18 lament: the bug is that we use the word "hack" in the comments in the source code
19:18:55 <ehird> 19:18 lament: we have to take "hack" out
19:18:57 <ehird> — #haskell
19:20:14 <ehird> 19:19 lament: the reason they want to take it out is not because it's rude 19:20 lament: it's because "hack" can be misinterpreted as a reference to illegal activity
19:20:19 -!- M0ny has quit ("PEW PEW").
19:20:21 <oerjan> <Deewiant> My mom's too old to be any part C++.
19:20:26 <ehird> 19:20 lament: for the record the customer is Microsoft :)
19:20:38 <oerjan> you mean she's part _COBOL_? eew.
19:20:46 <ehird> oerjan: COBOL porn.
19:20:48 <ehird> Discuss.
19:20:57 <oerjan> Rule 34.
19:21:14 <oerjan> QED.
19:22:57 <ehird> 19:22 lament: MS has a tool called Policheck to check the source code
19:23:02 <ehird> i should just set up a #haskell mirroring thing
19:23:04 <ehird> but this is too great
19:28:46 <GregorR> My stomach was making the rumblies, that only hands would satisfy.
19:29:17 <ehird> GregorR: Um. Did you think, "good god I might die?"
19:29:21 * ehird phew. rhyming order restored
19:29:44 <oklopol> this one time i felt something like an electric shock in my stomach, and fell on the ground.
19:30:09 <GregorR> <oklopol> Turns out I just ate some bad electric eel.
19:30:27 <oklopol> no no the punchline is it hurt like hell!
19:30:35 <GregorR> Hahaha!
19:30:38 <GregorR> The pain of others makes me smile!
19:36:08 <ehird> http://sod.jodi.org/
19:36:37 <GregorR> GOOD LAWD
19:36:38 <GregorR> That's an ugly page
19:36:52 <pikhq> There's uglier, I'm sure.
19:37:05 <ehird> GregorR: Dude, it's jodi.org!
19:37:16 <ehird> http://wwwwwwwww.jodi.org/
19:37:17 <ehird> Y'know?
19:37:30 <GregorR> I'd never heard of jodi.org :P
19:37:38 <ehird> http://en.wikipedia.org/wiki/Jodi
19:37:48 <GregorR> No www.www.jodi.org :(
19:37:49 <oerjan> what the heck
19:38:00 <ehird> Sheesh. You guys know nothing of the old interweb art :P
19:38:05 -!- Sgeo has joined.
19:39:02 -!- Hiato has joined.
19:41:03 <ehird> http://asdfg.jodi.org/
19:41:05 <ehird> avoid being epileptic
19:41:20 <Sgeo> ehird, you mean photosensitive epileptic?
19:41:25 <ehird> Your mom
19:41:40 <Sgeo> I'm pretty sure my mom was not epileptic
19:43:10 <Sgeo> globalmove.us
19:46:20 <GregorR> That's weird.
19:47:07 <Sgeo> "SL Economy in Detail: Strong growth in XLStreet. We are sure is has *nothing* to do with our buying and shutting down the only alternative."
19:48:57 <ehird> GregorR: how's jsmips
19:50:37 <GregorR> ehird: Recently updated it to support GCC 4.3
19:51:12 <ehird> GregorR: Why can't you just make a perl script that converts elf files to it like decent people.
19:51:27 <GregorR> ...............?
19:51:41 <ehird> GregorR: So you can just use a regular mips gcc.
19:51:48 <Sgeo> I am going to _KILL_ Windows
19:52:24 <GregorR> ehird: The only change I made was adding a jsmips OS target, it's not a different binary format.
19:52:45 <ehird> GregorR: Why's that even needed?
19:53:11 <GregorR> ehird: The alternative would be to either emulate an entire machine and run Linux (ultra-slow) or emulate e.g. the Linux ABI (which may be possible, but would be something of a PITA if I wanted any real compatibility)
19:53:48 <ehird> GregorR: or, just make a script that fishes for the lee knucks instructions and replaces them with jsmips ones
19:53:52 <ehird> → no gcc patch
19:54:31 <GregorR> Yeah, I want to go trouncing through the glibc binary replacing syscalls in unpredictable ways X_X
19:55:16 <ehird> GregorR: Yeah, I want to build gcc X_X
19:55:19 <ehird> :D
19:55:36 <GregorR> You have to build GCC either way, unless for some strange reason you have a MIPS-targeted GCC floating about.
19:56:28 <ehird> GregorR: Conveniently, mips gccs are packaged.
19:56:31 <ehird> In OSes.
19:56:37 <ehird> JSMIPS GCCs? Not so much
19:57:14 <GregorR> Let me be blunt: JSMIPS needs its own GCC for the same reason that people don't compile stuff using GCC for Linux and then patch it to run on OpenBSD.
19:57:53 <ehird> They should :D
19:58:16 <GregorR> If that was the way it was done, people would still be compiling ELFs for SysV and patching them up to whatever their latest system is.
20:02:24 <pikhq> Which would be damned spiffy.
20:02:32 <ehird> xactly
20:03:05 <GregorR> For somebody who uses an OS that has yet another needlessly different object file format, you sure are opinionated about ELF :P
20:03:25 <ehird> wait
20:03:26 <ehird> sysv had elf?
20:03:35 <GregorR> SysV R4 introduced ELF.
20:03:40 <ehird> huh
20:03:43 <pikhq> ELF is fucking *old*.
20:04:14 <Sgeo> <A siner> Sgeo> You nat turn off the 'restart now or later' box with "net stop wuauserv".
20:04:32 <Sgeo> A siner> This tidbit makes me really popular among Windows-using people. >:)
20:05:29 <ehird> SEKRIT SERVER DEMANDS ANONYMIZED NAMES
20:05:49 <Deewiant> I put my old Sudoku solver up, in case anybody is interested.
20:05:51 <GregorR> Secret Squirrel demands anonymized acorns.
20:06:05 <ehird> Deewiant: where
20:06:11 <Deewiant> ehird: iki.fi/deewiant as usual
20:06:18 <ehird> yeah we all have your site bookmarked.
20:06:21 <ehird> :D
20:06:25 <Deewiant> Of course?!
20:06:33 <Deewiant> Anyway, there's D program you might even be capable of building
20:06:36 <Deewiant> +a
20:06:39 <fizzie> Completely not related, but do they still have blue screens of death in whatever Windowses they're making nowadays (Vista and that 7 thing)? And can you still change the color by editing a registry key? You could in some versionsies.
20:06:56 <ehird> Deewiant: you should call it deewidoku
20:06:56 <GregorR> fizzie: I'm pretty sure the color changing was unique to the 9x family.
20:06:59 <Deewiant> fizzie: They do, didn't know about the colour changing until now.
20:07:04 * pikhq is somewhat partial to his sudoku solver...
20:07:14 <Deewiant> ehird: I could/should call it a lot of things but I'm going with what it was in 2006 :-P
20:07:28 <Deewiant> Not my choice if I'd have made it now
20:07:31 <Deewiant> But oh well
20:07:42 * GregorR goes to buy some wakey-wakey juice.
20:07:51 <fizzie> Yes, I guess it was the 9x thing that had changeable colors, not the NT-style stop screens.
20:08:00 <pikhq> For CS153, we had to write a sudoku solver. I didn't care enough to do it ahead of time, so I wrote it all in a night. Needless to say, I used a brute-force solver.
20:08:16 <Deewiant> Non-brute-force solvers are quite the minority.
20:08:24 <ehird> isn't brute force quick anyway
20:08:29 <ehird> like 1s to solve most puzzles
20:08:34 <pikhq> I think a better algorithm was taught in class.
20:08:36 <Deewiant> Like 1ms
20:08:37 <Deewiant> Not s
20:08:41 <ehird> Ah.
20:08:49 <Deewiant> It's just not interesting is all :-P
20:08:52 <pikhq> ehird: It wasn't even a very efficient solver.
20:08:58 <ehird> Deewiant: Sudoku isn't.
20:09:00 <Sgeo> There's naked stuff right across from my G-rated stall
20:09:05 <pikhq> Some puzzles took a good 30s.
20:09:07 <Deewiant> ehird: Meh.
20:09:19 <ehird> Sgeo: Don't put up a stall next to things that are naked, then.
20:09:27 <ehird> Surely you saw this before you decided to get some wood and put a stall up.
20:09:30 <Deewiant> Maybe it isn't which explains why I never really finished my solver.
20:09:37 <Sgeo> ehird, the naked stuff came later, I think
20:09:38 <ehird> Alternatively: Start selling ADULT PRODUKTS
20:09:46 <ehird> Sgeo: Complain to $govt.
20:09:55 <ehird> (Note: Will not achieve a thing.)
20:10:19 * Sgeo would show a pic, but
20:10:34 <pikhq> It went through, for ever cell, checking if a number was valid. If it was, move on. If it wasn't, increment and try again. If it couldn't increment, backtrack.
20:10:38 <ehird> Sgeo: But?
20:10:40 <pikhq> *Slow*.
20:10:50 <Sgeo> ehird, aren't you under 18?
20:10:52 -!- Slereah has joined.
20:10:53 <fizzie> I wrote a sudoku not-a-solver which just has a gui which shows the possible numbers you can put in one cell that do not violate the simple constraints. That's possibly even more boring than a brute-force solver, but I didn't want to be completely out of work myself.
20:11:03 <ehird> Sgeo: Yes. Nakedness might just cause me to die from shock.
20:11:20 <ehird> I am completely innocent and wholesome.
20:11:33 <ehird> The very model of a child.
20:11:52 <GregorR> Speaking of meatspin.com, I heard randomporn.org gaystuff.com twogirlsonecup.
20:12:14 <ehird> nakedness.on.nimp.org
20:12:36 <GregorR> porno.nist.gov
20:12:37 <Deewiant> pikhq: Heh, that's about as brute-force as you can make it.
20:12:56 <pikhq> I stopped caring about the class rather quick.
20:12:59 <pikhq> ;)
20:13:33 <pikhq> About the only vaguely difficult thing we did was a binary search tree. And I've already done one in the name of (older incarnations of) Plof.
20:14:53 <ehird> I should write my megæfficient multicore tripcode cracker sometime
20:15:24 <Deewiant> ehird: Ligature fail
20:15:30 <ehird> Deewiant: But of course.
20:15:43 <Deewiant> megaëfficient
20:16:06 <ehird> meg combining-¨ æ fficient
20:16:21 <Deewiant> >_<
20:17:21 <Sgeo> http://img406.imageshack.us/img406/7457/nakedstall001.png (NSFWish). To the right is my stall
20:17:51 <Deewiant> How can that be NSFW, even ish
20:18:12 <ehird> Sgeo: Oh, Second Life idiotic bullshit? I thought you owning a stall was a bit odd
20:18:15 <ehird> And what Deewiant said.
20:18:23 <ehird> It's some blurred peach-ish pixels
20:18:35 <ehird> I couldn't see it properly if I tried
20:22:34 <ehird> COPY CON
20:22:51 -!- Slereah_ has quit (Read error: 110 (Connection timed out)).
20:23:21 <Deewiant> < >
20:23:27 <bsmntbombdood> ehird: gnome sort looks like it performs pretty well for this purpose
20:23:33 <Deewiant> Hmm, those can't be uppercased so it didn't seem like a shout
20:24:09 <Deewiant> 《 》
20:24:49 <ehird> bsmntbombdood: Great. I had some ideas for a parallelizable sort algorithm that fixes mistakes, too.
20:25:39 <ehird> Basically: Sort even indices and odd indices separately (This can, of course, be subdivided N times). Then, combine them together so that they come out in a different order. Repeat until you don't do any swaps.
20:25:44 <ehird> Needs some ironing out, obviously.
20:26:14 <bsmntbombdood> isn't that just odd-even sort?
20:26:19 <Deewiant> Odd-even transposition sort
20:26:29 <ehird> I'm not sure
20:26:32 <ehird> The magic bit is the combining
20:26:33 <ehird> Obviously
20:26:42 <Deewiant> http://en.wikipedia.org/wiki/Odd-even_sort
20:26:48 <ehird> Yeah that's not it
20:26:55 <ehird> It modifies in place
20:27:06 <ehird> Mine does it seperately, then shuffles together, pretty much
20:27:14 <ehird> also, that doesn't do the odd/even separation multiple times
20:27:19 <ehird> also, my swapping was more basic
20:27:20 <ehird> :P
20:27:21 <Deewiant> http://cs.wlu.edu/~whaleyt/classes/parallel/topics/OETS.html also not this
20:27:34 <ehird> That's rather obscure
20:28:06 <Deewiant> It's at http://www.cs.rit.edu/~atk/Java/Sorting/sorting.html
20:28:54 <Deewiant> bsmntbombdood: Have you tried tacosort?
20:29:34 <bsmntbombdood> Deewiant: not a comparison sort
20:30:00 <Deewiant> It is somewhat, but true
20:33:15 <ehird> heyy, I think I devised an algo
20:33:23 <ehird> only works on even length lists though. lemme test it some more
20:34:33 <ehird> actually, I think it only works on lengths that are powers of two
20:36:52 <AnMaster> hi
20:36:56 <ehird> bsmntbombdood: it's very parallelizable; you can just ask the humans to choose which item is greater than
20:36:59 <ehird> out of a pai
20:36:59 <ehird> r
20:37:31 <bsmntbombdood> ehird: that's what i'm doing
20:37:35 <ehird> right
20:37:38 <ehird> so my algo may work :P
20:37:42 <ehird> just trying it on another test case
20:37:44 <ehird> (manually)
20:37:59 <bsmntbombdood> lol manually
20:39:43 <bsmntbombdood> this is sort of unrelated, but at work i actually have to sort things by hand
20:39:53 <bsmntbombdood> (with reliable comparisons)
20:39:55 <ehird> I'ma call it sievesort since if you watch each step it looks like it's just sieving all the numbers into sortedness :P
20:42:55 <bsmntbombdood> i've been using quicksort by hand
20:43:03 <ehird> ouch
20:43:35 <ehird> sorting this 8 length list is taking mighty long
20:43:38 <bsmntbombdood> i've tried radix sort too, quicksort is faster
20:44:12 <ehird> haven't repeated a state yet, phw
20:44:13 <ehird> phew
20:45:08 <bsmntbombdood> ehird: lrn2automatetasksusingacomputer
20:45:27 <ehird> bsmntbombdood: the algorithm contains some rather computar-unfriendly portions
20:45:33 <ehird> so phoo to that until I know it works
20:49:02 <GregorR> Mmmmmm, wakey-wakey juice.
20:49:28 <ehird> heyy
20:49:30 <ehird> it's beginning to sort
20:49:31 <ehird> [5,8,6,7,2,3,1,4]
20:49:43 <ehird> 5 8 6 7!
20:49:49 <ehird> (and yes, that will swap to the other side of the list)
20:52:11 <GregorR> How slow can you make a sorting algorithm with no redundant or pointless code? (This is subjective of course, but still)
20:52:19 <ehird> O(infinity)
20:52:44 <ehird> [1,3,2,4,5,7,6,8]
20:52:45 <ehird> lookin' good
20:52:51 <ehird> only one item out of place
20:52:58 <ehird> of course, it'll take like 10 more iterations to fix this
20:53:09 <GregorR> ehird: You can't do infinite things without doing something redundant :P
20:54:20 <Deewiant> GregorR: Tacosort can run theoretically forever, being probabilistic
20:54:33 <ehird> and it jumbles them up once again
20:54:33 <ehird> [3,7,4,8,2,6,1,5]
20:56:07 <oklopol> <ehird> bsmntbombdood: Great. I had some ideas for a parallelizable sort algorithm that fixes mistakes, too.
20:56:07 <oklopol> Basically: Sort even indices and odd indices separately (This can, of course, be subdivided N times). Then, combine them together so that they come out in a different order. Repeat until you don't do any swaps. <<< come out in different order? anyway sounds like mergesort to me
20:56:32 <ehird> no
20:56:32 <bsmntbombdood> oklopol: that's what i was thinking
20:56:36 <ehird> it's far more silly than that
20:56:40 <ehird> it has blind spots and stuff
20:56:44 <ehird> but it does seem to be sorting this list
20:56:50 <oklopol> Sorting is one of the slowest operations in programing. <<< what :D
20:57:06 <GregorR> lol
20:57:09 <GregorR> Who wrote that?
20:57:55 <ehird> this algorithm is cute, it keeps making mistakes then fixing them
20:58:24 <oklopol> http://cs.wlu.edu/~whaleyt/classes/parallel/topics/OETS.html
20:58:29 <oklopol> GregorR: ^
20:58:44 <oklopol> in case you left in the 2 minutes i spent logreading after that
20:58:56 <bsmntbombdood> what program relies highly on sorting?
20:59:08 <Deewiant> Google?
20:59:15 <ehird> AAAAAAAAAAAAAA
20:59:16 <ehird> A cycle!
20:59:23 <ehird> my algorithm phails
20:59:28 <ehird> [3,8,4,7,1,6,2,5] kills it dead
21:00:02 <GregorR> oklopol: That is of course subjective, but I think that's just plain wrong :P
21:00:07 <ehird> look at every second number
21:00:08 <oklopol> bsmntbombdood: many algorithms do.
21:00:11 <ehird> 8,7,6,5
21:00:20 <ehird> that's what trips it up i think
21:00:21 <oklopol> can't say i care or know much about programs ofc.
21:01:04 <oklopol> GregorR: well, from a very practical low-level coding viewpoint it might be true.
21:01:26 <oklopol> even if you're not doing anything that complex, you'll probably need to sort
21:01:55 <bsmntbombdood> if you are sorting you are probably doing it wrong
21:03:10 <bsmntbombdood> i can't imagine where you would have to sort except for output
21:03:27 <oklopol> i don't see how that's funny, but i know it's a joke
21:03:33 <ehird> My failure: http://pastie.org/450152.txt?key=tmbdqoitnwb9zkkeh9zww
21:04:07 <GregorR> "Sorting is one of the slowest operations in programing." can only have been written by somebody whose never done anything with graphs at all.
21:04:34 <Deewiant> It depends on how you define 'operation'
21:04:43 <GregorR> 'struth
21:04:45 <oklopol> ehird: ah interesting, that's like mergesort and shellsort put together to produce something like a gnomesort except it doesn't even work
21:04:55 <oklopol> i like it.
21:04:56 <ehird> oklopol: yeppers
21:05:04 <ehird> oklopol: it works on [4,3,2,1]
21:05:05 <ehird> :-(
21:05:08 <oklopol> :P
21:05:24 <Deewiant> So what, it's randomly either the identity or reverse function? :-P
21:05:24 <ehird> i RAGE'd when I got [1,3,2,4,5,7,6,8]
21:05:25 <oklopol> so first [2,4,1,3]
21:05:31 <oklopol> then [1,2,3,4]
21:05:32 <ehird> SNATCHING DEFEAT FROM THE JAWS OF FAILURE
21:05:32 <oklopol> awesome :D
21:05:44 <ehird> oklopol: how you combine two things depends on whether you did it last
21:05:49 <ehird> (1,2) and (2,1), alternating
21:05:56 <ehird> that's to try and give it less blind spots
21:05:57 <oklopol> oh.
21:06:02 <oklopol> have you considered doing that randomly?
21:06:09 <ehird> no :P
21:06:12 <ehird> feel free to try that
21:06:17 <oklopol> i shall
21:06:52 <ehird> i mean since it ignores every other elem, there can be unsorted bits that aren't noticed
21:06:57 <ehird> so we swap how we combine each time
21:07:01 <ehird> and concat them
21:07:04 <ehird> instead of interleaving them
21:07:11 <ehird> to try and increase the view of the whole list
21:07:41 <ehird> ofc i dunno the termination case
21:07:47 <ehird> apart from "issorted(lst)" :D
21:08:21 <ehird> ̈‿
21:08:23 <ehird> SMILEY
21:08:32 <Deewiant> Doesn't work here :-(
21:08:54 <ehird> ditto
21:09:01 <ehird> it's ¨ ‿
21:11:26 <GregorR> It's a guy with botched plastic surgery.
21:11:36 <GregorR> But at least he's got a sense of humor about it.
21:16:20 <oklopol> ehird: i made a rather complex and uninteresting version of it, and i'm not sure i still got it to work :)
21:16:54 <ehird> oklopol: vjn.fi/pb it?
21:18:45 <oklopol> ehird: i'll try a more automated approach first, i don't like sorting manually in a text editor
21:20:31 <ehird> oklopol: pb the manual one anyway
21:20:32 <ehird> i did!
21:21:15 <GregorR> You should make an esolang in which all computation is done by applying not-quite-sorting algorithms.
21:21:31 <ehird> :D
21:21:44 <ehird> "Here we sort the input in Brainfuck ordering."
21:22:11 <Sgeo> The problem with the adult stuff near my stall is that soon the entire area might be declared "adults only", and would require me presenting proof that I'm an adult, which I'm not willing to do
21:22:48 <ehird> Sgeo: your exploits are hilarious and also embarrasing.
21:22:53 <ehird> please don't stop.
21:22:58 <oerjan> Sgeo: make your stall sell children's toys
21:23:15 <oerjan> then demand _they_ be thrown out
21:23:17 <ehird> oerjan: I'm pretty sure all children on SEKOND LIFF are 40+
21:23:56 <Sgeo> Children aren't supposed to be on SL
21:24:50 <ehird> Aren't you an adult, anyway? Weren't you 18 a year ago?
21:24:54 <oerjan> well adjust my suggestion for some allowed age lower than adult
21:25:12 <bsmntbombdood> ehird: damn, looks like gnome sort does better than insertion
21:25:15 <fizzie> Interpreted "all children on SEKOND LIFF are 40+" as to be meaning "you can buy a child in second life, but it costs >40 units of currency always".
21:25:16 <Sgeo> Bye
21:25:20 <ehird> bsmntbombdood: and? :P
21:25:24 <ehird> fizzie: :D
21:25:28 <GregorR> <fizzie> Interpreted "all children on SEKOND LIFF are 40+" as to be meaning "you can buy a child in second life, but it costs >40 units of currency always". // LOL
21:25:29 <ehird> Sgeo: did I say something wrong
21:25:43 -!- neldoreth has quit ("Lost terminal").
21:25:43 -!- Judofyr has joined.
21:28:19 -!- ais523 has joined.
21:28:24 <ehird> hi ais523
21:28:27 <ehird> you're here late
21:28:35 <ais523> sorry
21:28:37 <ais523> I was asleep
21:28:39 <ehird> :-D
21:28:40 <ais523> and then programming
21:28:42 <ehird> we've been inventing terrible sorting algorithms
21:28:51 <ais523> worse than bogosort?
21:28:56 <ehird> ais523: yeah -- mine didn't even work
21:28:58 <ehird> ais523: also, good news:
21:29:03 <ehird> "We do not have any ads, nor do we ever plan on adding any. We make our money off paid accounts, not advertising. I'll look into getting the clause removed. "
21:29:04 <ehird> — Github staff
21:29:06 <ais523> yay
21:29:25 <GregorR> What was the clause?
21:29:33 <ehird> GregorR: "free account users may not use an adblocker"
21:29:40 <GregorR> Ah
21:29:41 <GregorR> That's lame.
21:29:45 <ehird> agreed
21:29:58 <GregorR> Also unenforceable :P
21:30:14 <ais523> it is enforceable, I think
21:30:21 <ais523> you could put an advert on the page and see if it loaded
21:30:29 <ehird> ais523: adblockers can load ads but not display them
21:31:05 -!- neldoreth has joined.
21:31:08 <ais523> well, yes
21:31:09 <ais523> but how many do?
21:31:13 <ais523> blocking the loading time is the whole point
21:31:20 <ehird> :P
21:31:25 * oerjan invents a horrendous thing: the ad CAPTCHA
21:31:28 <GregorR> No, blocking the offense to the eyes is a more important hing.
21:31:46 <GregorR> You heard me, it's a hing.
21:31:53 <oerjan> where the ad contains some information you need to see the real content
21:31:54 <ehird> Hinge.
21:31:59 <ehird> ais523: oh, and Plof is active again
21:32:07 <ehird> in the sense that I'm trying to wrangle it to be my perfect language
21:32:09 <GregorR> Plof was never inactive, just ... hibernating :P
21:32:11 <ehird> and GregorR is abstaining.
21:32:13 <oerjan> (i'm sure it's been thought of before)
21:32:28 <GregorR> I may even implement the changes you want :P
21:32:40 <GregorR> The more I think about it the more I lean away from abstaining and towards pro.
21:32:44 <oerjan> ping
21:32:50 <ehird> That's what your face said to your mom, GregorR.
21:32:56 <ehird> Hm. That didn't work.
21:33:06 <GregorR> Yes, my face is the part of my body with which I talk.
21:33:20 <GregorR> (I suppose the throat and lungs are pretty important too :P )
21:33:24 <oerjan> fungot: they won't pong me :(
21:33:24 <fungot> oerjan: sisc doesn't have define-values with a let?!
21:33:36 <ehird> wow, people buy second life land for $1,000
21:33:41 <ehird> ITT: sukas
21:33:44 <GregorR> oerjan: /ctcp #esoteric PING
21:33:52 <ehird> oerjan: ... pong!
21:33:56 <ehird> (5 billion years)
21:33:58 <oerjan> GregorR: that's so crude
21:34:04 <GregorR> oerjan: SO'S YOUR FACE
21:34:08 <GregorR> ehird: See, that's how it's done.
21:34:10 <oerjan> well, true
21:34:16 <ehird> GregorR: Masterful.
21:34:19 <GregorR> :P
21:35:23 <GregorR> I'm watching Felix the Cat. Everybody talks like they've barely recovered from a stroke.
21:36:00 <ais523> in other news, I've switched my desktop appearance from Feisty default to Gutsy default
21:36:08 <ais523> except that I made all the fonts smaller by 1 pixel
21:36:11 <ehird> ais523: the shit-brown one?
21:36:15 <ais523> from brown to grey
21:36:22 <ais523> I liked the brown one, but this one looks good too
21:36:22 <ehird> grey?!
21:36:24 <ehird> screenshot?
21:36:37 <ehird> also, don't you mean 1 point
21:36:44 <ehird> it's default 10 points, 9 was the older default
21:37:16 <ehird> ais523: wait, gutsy is 8.10 right?
21:37:19 <ehird> it's orange...
21:37:26 <ehird> i think we need a screenshot heere
21:37:30 <ais523> I'm uploading it
21:37:32 <ehird> ah
21:37:43 <ais523> http://imgur.com/2CUOG.png
21:37:52 <ais523> I left the desktop background the same, though...
21:37:55 <ehird> so, the pirate bay people got sentenced to a year in prison (everyone knows this, I'm just repeating it for a certain slowpoke :D)
21:38:03 <ehird> ais523: that's not the 8.10 default!
21:38:14 <ais523> I'm using Jaunty, = 9.04
21:38:18 <ais523> 8.10 = intrepid
21:38:18 <ehird> in fact, that's not any ubuntu X.YZ default
21:38:30 <ais523> I'm not sure if it or the purple one's the default, they're both new
21:38:33 <GregorR> I'm using Debian testing :P
21:38:40 <ehird> ais523: ... neither
21:38:43 <ehird> 8.10 is orang
21:38:43 <ehird> e
21:38:49 <ais523> 8.10 = brown, IMO
21:38:52 <ais523> same colour really
21:38:55 <ehird> well, whatever
21:38:57 <ais523> that's the one I used to have
21:39:06 <ehird> ais523: all ubuntus have been brown or orange
21:39:13 <ehird> the theme in that screenshot has never been default
21:39:14 <ais523> no, Intrepid was black
21:39:22 <ais523> with brown highlights
21:39:29 <ais523> just I didn't like it and went back to the old version
21:39:47 <ehird> ais523: I'm sorry, you're wrong. I installed 8.10 a few weeks ago for parental overlordism.
21:39:53 <ehird> It had orange titlebars.
21:40:15 <ais523> ah, ok
21:40:19 <ehird> Wait.
21:40:22 <ehird> google images disagree with me
21:40:23 <ehird> WTF
21:40:26 <ais523> are you sure you didn't install 8.04?
21:40:37 <ais523> which is recommended anyway, I think 8.10 is less stable than the release either side
21:40:39 <ehird> Absolutely
21:40:42 <ehird> 8.10 x86_64
21:41:13 <Judofyr> YES! Victory!
21:41:17 <ehird> Judofyr: wu
21:41:19 <ehird> t
21:41:25 <Judofyr> finally done with this crappy assignment :D
21:41:47 <Judofyr> why the hell should I care about the political system in Botswana?
21:41:56 <Judofyr> and compare it to Norway's?
21:42:07 <fizzie> Our work-workstations went 8.10 recently, and they really didn't look like that. I think.
21:42:08 <Judofyr> seriously, school sucks
21:42:11 <oerjan> good grief. they could at least have chosen Zimbabwe.
21:42:29 <ehird> ais523: maybe the beta had it
21:42:31 <ehird> but the release didn't
21:42:31 <ehird> brb→
21:42:55 <Judofyr> botswana is *boring*
21:42:59 <oerjan> (mind you i'm not sure how Zimbabwe's system _should_ work, but i'm pretty sure it doesn't)
21:43:03 <Judofyr> no fighting, no corruption
21:43:09 <Judofyr> just … peace
21:43:39 <oerjan> Judofyr: so it's a politically correct assignment to drive down the point that not all of africa is in shambles?
21:44:00 <Judofyr> oerjan: yeah. I'm surprised too
21:44:29 <Judofyr> botswana was like "can we go", and great britain said "yes"
21:44:34 <Judofyr> it was that simple
21:44:54 <Judofyr> in zimbabwe, they said "no, no, no, no. and you're going in prison"
21:45:03 <oerjan> hm they must be blessed with an absence of natural resources :D
21:45:35 <Judofyr> well, right now they got lots of diamonds…
21:45:44 <oerjan> perhaps less immigration
21:46:18 <oerjan> oh dear, poor people
21:47:03 <oerjan> ok maybe they'll survive given they didn't already have war or corruption. norway did, after all
21:48:11 <pikhq> Ubuntu? Ick. I'm using Gentoo on my desktop, and Debian stable on my router.
21:48:23 <ais523> pikhq: yes, ick is in the repositories
21:48:39 <ais523> part of the reason I'm using it is that it's been on this computer continuously since I got it
21:48:41 <pikhq> ...
21:48:46 <ais523> without ever reinstalling
21:49:02 <oerjan> what does ick stand for again
21:49:18 <ais523> intercal compiler kludge
21:49:26 <oerjan> ah
21:50:36 <ais523> haha: http://tech.slashdot.org/article.pl?sid=09/04/17/147237&from=rss
21:50:51 <ais523> summary: Microsoft's parental-control webfilter blocks Google
21:57:53 <oklopol> but a comment says that's untrue
21:58:22 <oklopol> ehird: after half an hour of scheme coding i get a loop of length 2 in the sorting process.
21:58:51 <oklopol> (not that much scheme, or even mistakes, just bad keyboard)
22:02:06 -!- Hiato has quit ("Leaving.").
22:07:03 -!- neldoreth has quit (Remote closed the connection).
22:07:07 -!- neldoreth has joined.
22:07:45 <bsmntbombdood> well i guess ehird wins the cake for unreliable sorting
22:16:55 <oklopol> well that was my random enhancement of it
22:17:14 <oklopol> and clearly it was much better since ehird's had a cycle of one.
22:17:47 <oklopol> mainly i wanted to try scheme out
22:23:25 -!- sebbu2 has joined.
22:25:56 -!- sebbu has quit (Read error: 60 (Operation timed out)).
22:26:06 <ais523> if you want an unreliable sort, why not use deterministic bogosort?
22:26:20 <ais523> it works like this: check if the list's in order, if it isn't then don't reorder it randomly, then repeat
22:30:11 <oklopol> :D
22:30:42 <bsmntbombdood> ais523: that's not what i mean
22:30:47 <bsmntbombdood> ais523: the comparisons are unreliable
22:30:50 <oklopol> an omega of only O(n)!
22:31:09 <ais523> yes
22:31:17 <ais523> well, it depends on how the data's stored
22:31:27 <ais523> it might be stored such that it's O(n^2) to retrieve all the elements in order
22:32:43 <oklopol> err how would that go?
22:33:20 <ais523> ah, if you stored the list in random order, as (element, index) pairs
22:33:29 <ais523> then in order to get all the elements in order, you'd have to sort by the index
22:33:33 <ais523> which is O(n log n)
22:33:53 <ais523> O(n) afterwards makes the thing O(n log n) altogether
22:34:09 <oklopol> bsmntbombdood: just out of random, i checked out fusion sort when you asked about it, but it was too complex to understand without thinking, and i didn't feel like it.
22:34:32 <bsmntbombdood> what's fusion sort?
22:34:48 <oklopol> ais523: i was just thinking that, checking for sortedness by sorting, then checking whether order changed :D
22:35:04 <oklopol> bsmntbombdood: long story, just something a guy asked about, in here
22:35:13 <oklopol> err
22:35:16 <oklopol> did i say sort?
22:35:20 <oklopol> well that might cause confusion
22:35:23 <oklopol> :D
22:35:36 <ais523> even better, you can do that sort using deterministic bogosort
22:35:43 <ais523> and go into an infinite loop whether the list's originally correct or not
22:35:54 <oklopol> sorts and trees, what's the difference really.
22:36:05 <oklopol> ais523: ingenius :D
22:36:14 <oklopol> *-in
22:36:16 <bsmntbombdood> there's a reason why volume 3 is called "searching and sorting"
22:37:51 <oklopol> ais523: so theta O(infinity)
22:38:06 <ais523> that's great for a best-case
22:38:25 <oklopol> well umm "theta O", my terminology has issues today.
22:38:52 <bsmntbombdood> my keyboard doesn't have a theta key
22:38:53 <bsmntbombdood> so it's ok
22:39:03 <oklopol> i just called a plate a or cork or something, multiple times, before i realized it was wrong
22:39:34 <oklopol> Ω <<< i seem to have an omega
22:40:00 <oklopol> but no theta
22:40:12 <oklopol> *-or
22:41:30 <oklopol> (also the cork was misinterpreted as a fork)
22:42:08 <oklopol> (also that's pure coincidence, i'm not sure it was cork i called the plate, and they don't rhyme in finnish)
22:42:38 <oklopol> (also i have to do this a third time ofc)
22:42:56 <oerjan> cork fork fort sort sport spore store stare state slate plate
22:43:13 <oklopol> manual?
22:43:16 <oerjan> yeah
22:44:23 <oklopol> cork pork port sport
22:44:42 <oerjan> the sort sort of came out of the conversation
22:45:03 <oklopol> right, and also fork.
22:45:13 <oklopol> i guess i shouldn't try to compete with you.
22:45:15 <ehird> 21:48 pikhq: Ubuntu? Ick. I'm using Gentoo on my desktop, and Debian stable on my router.
22:45:30 <ehird> Ubuntu is Debian w/ nicer out of the box experience and a non-insane release schedule.
22:45:37 <oerjan> Indeed, because then you would be DOOMED! BWAHAHAHA!!
22:45:54 <ehird> oklopol: i'm sure my algo could work with tweaks
22:46:03 <ehird> oklopol: instead of concatenating, why not interleave them in some magical way or sth
22:46:12 <oklopol> ehird: well i lexically sorted the pair
22:46:18 <ehird> wut
22:46:18 <oklopol> or lists
22:46:26 <oklopol> *of
22:46:37 <ehird> wut
22:46:45 <oklopol> well you know you take evens and odds, recurse on them, and sort them lexicographically
22:47:25 <oklopol> because i wanted a deterministic alternative for the randomizing their appending order, and i didn't like your alternating sequence
22:47:35 <ehird> oh
22:47:44 <ehird> oklopol: a sorting algo needing a sorting algo is pretty shit isn't it
22:47:55 <oklopol> ...
22:47:59 <ehird> :D
22:48:14 <oerjan> yo dawg
22:48:24 <oklopol> i was thinking you could use quicksort for sorting the 2-element lists.
22:48:29 <fizzie> korkki kokki lokki lakki laki lakin lakan laukan lautan *lautane lautanen; only the one marked with * is not really a mostly plausible Finnish word or a word form; it goes from cork to plate.
22:48:55 <ehird> oklopol: instead of concatenating, why not like
22:48:55 <ehird> do
22:49:00 <ehird> 1 2 2 1
22:50:24 <oklopol> yeah i don't get that
22:50:48 <ehird> oklopol: right now they're concatenated as 1 1 2 2
22:50:53 <ehird> or 2 2 1 1
22:51:00 <ehird> oklopol: why not do 1 2 2 1
22:51:08 <oklopol> why yes do it?
22:51:20 <ehird> oklopol: 'cuz it might make it no cycle? :D
22:51:36 <oklopol> i don't see how that's any better
22:51:51 <ehird> oklopol: it's like 3 code changers isn't it
22:52:54 <oklopol> do i say "kol" now?
22:53:04 <oklopol> wanna do my electronics homework for me
22:53:16 <ehird> oklopol: gimme the code thens?
22:53:33 <ehird> also
22:53:33 <ehird> 22:48 oklopol: i was thinking you could use quicksort for sorting the 2-element lists.
22:53:34 <ehird> i lol'd
22:54:35 <oklopol> well you know 2*log(2) is only 2, so it's linear!
22:55:04 <oklopol> http://www.vjn.fi/pb/p546654421.txt <<< my random sorter.
22:55:15 <oklopol> also it does some bubblesorting on the side
22:55:39 <ehird> oklopol: err why does it bubblesort
22:55:40 <oklopol> but just one round at a time, it's just for shaking it up a bit so it doesn't get into cycles
22:55:46 <ehird> ah.
22:55:49 <ehird> oklopol: but it still cycles? :D
22:55:57 <oklopol> sure, right away :D
22:56:01 <oklopol> cycle length 2
22:56:21 <ehird> oklopol: wut scheme, mz-?
22:56:24 <oklopol> i was just hoping it'd be enough of a mess to produce a sort
22:56:26 <oklopol> mz yes
22:56:52 <ehird> oklopol: so do you think my method has any chance of working properly
22:57:38 <oklopol> i wonder what the median of asymptotic average running times of sorting algos is...
22:57:49 <ehird> O(infinity).
22:57:51 <oklopol> probably exponential
22:58:10 <oklopol> ehird: naturally not counting that, it needs to sort all lists
22:58:23 <ehird> O(7)
22:59:06 <oerjan> the median could still be O(infinity)
22:59:17 <oklopol> oerjan: yes
22:59:26 <oklopol> if you let algos be randomized
22:59:28 <oerjan> assuming there is _always_ a slower algorithm, which seems obvious
22:59:32 <oklopol> hmm
22:59:55 <oklopol> well of course there is
23:00:05 <Deewiant> fizzie: ... lautan lautana lautasna lautasena lautasen lautanen
23:00:12 <ehird> sauna
23:00:18 <oklopol> i wouldn't count lautasna
23:00:27 <pikhq> You can just as easily add some random calculation that's tossed if you insist on a less efficient algorithm.
23:00:28 <Deewiant> I'm still working on it
23:00:31 <Deewiant> It's better than lautane
23:00:32 <oklopol> lautanenä
23:00:37 <oerjan> otoh it depends how many shorter running there are, that could be infinite too. hm now it's really not obvious.
23:00:38 <pikhq> Sane assumption.
23:00:40 <fizzie> Deewiant: "lautasna" is a bit silly, yes. Am working on it too.
23:01:01 <Deewiant> It's archaic but valid IMO
23:01:07 <ehird> oerjan: no, there's an upper bound
23:01:08 <oerjan> saunassani
23:01:32 <oerjan> ehird: huh? you can always make an algorithm slower
23:01:39 <ehird> 23:00 oerjan: otoh it depends how many shorter running there are, that could be infinite too. hm now it's really not obvious.
23:01:48 <ehird> there is an upper bound to how shorter running it can be
23:01:53 <ehird> but no upper bound to how slow
23:01:55 <oklopol> oerjan: well naturally because there's an infinite amount of algos, we're talking about limit of median as program length approaches infinity, that may not even be well-defined (which you probably meant by median O(infinity), if we don't count randomized ones)
23:01:58 <ehird> so it's O infinity.
23:02:02 <oerjan> that's usually called lower bound :D
23:02:07 <ehird> w/e :P
23:02:44 <oklopol> ehird: that has nothing to do with what the median will be
23:02:44 <oerjan> oklopol: it could even theoretically fluctuate widely with program size, although that seems unlikely
23:02:56 <ehird> oklopol: infinite slow ones, finite fast ones
23:03:02 <GregorR> Damn, some of my CNFI stuff is more specific to having integers be raw data objects than I'd realized ... with unboxed integers things get tricky :(
23:03:08 <oklopol> oerjan: might be interesting to try this out on a computational model that can barely sort, and nothing else
23:03:17 <ehird> GregorR: I'll fix it all.
23:03:21 <oklopol> ehird: finite fast ones? wut
23:03:40 <GregorR> ehird: Seeing as that you don't have write access to the spec, you won't be fixing that any time soon :P
23:03:56 <ehird> I can send a patch :<
23:04:21 <GregorR> Because it's ancient, it's a .odt :P
23:04:59 <ehird> GregorR: Anyway, how hard would it be to replace dplof?
23:05:01 <oklopol> first of all O(n^e) does not have a lower bound, when e is a real number, so while there's a lower bound for it, O(n), there is an uncountable number of possible small upper bounds.
23:05:30 <oerjan> oklopol: well without a model capable of bounded halting checking it may be hard to prove the algorithms can get really slow
23:05:33 <oklopol> second of all median of program complexities, not median of separate possible complexities,
23:05:47 <oerjan> since that's how the usual proof goes
23:06:15 <GregorR> ehird: The only missing component is the parsing engine.
23:06:28 <oklopol> oerjan: yeah it's true bad the answer might actually require thinking.
23:06:31 <GregorR> ehird: However, the parsing engine is also the most complicated :)
23:06:31 <oklopol> *too
23:06:46 <ehird> GregorR: If the parser was written in Ploforth? No problem whatsoever.
23:06:59 <oklopol> oerjan: why do they need to get real slow?
23:07:08 <oklopol> there only needs to be more than one different complexity.
23:07:08 <GregorR> ehird: I fail to see how that's a solution.
23:07:24 <ehird> GregorR: You write the parser in Ploforth, so that it's portable across implementations.
23:07:43 <GregorR> ehird: That's why I wanted to write the parser in Plof, so it would be portable across implementations :P
23:07:51 <oerjan> oklopol: if they get real slow then the median need not be finite
23:07:53 <fizzie> Deewiant: korkki kokki lokki lakki takki taksi takasi takaisi lakaisi laukaisi laukaisin lautaisin lautasin lautasen lautanen
23:07:57 <ehird> GregorR: But it's not because you need a Plof parser to get the parser going which sux.
23:08:10 <oerjan> *need not be in one of the bounded classes
23:08:19 <Deewiant> fizzie: You win
23:08:21 <pikhq> Plof's not too hard to bootstrap.
23:08:23 <GregorR> ehird: Except you don't, because the parser can be precompiled to PSL.
23:08:28 <Deewiant> I was only working from 'lautana' though :-)
23:08:31 <GregorR> ehird: And that precompiled PSL is portable.
23:08:34 <ehird> GregorR: That still involves an implementation.
23:08:43 <GregorR> ehird: Yes, it involves using dplof exactly once.
23:08:44 <ehird> And what if you want to use a new parser feature in it?
23:08:47 <ehird> you have to do without first
23:08:48 <ehird> then add it.
23:08:51 <GregorR> ehird: No, no you don't.
23:08:55 <ehird> GregorR: Right. So you have to maintain dplof.
23:09:04 <GregorR> ehird: Right, so I /don't/ have to maintain dplof.
23:09:09 <fizzie> Deewiant: The taxi part was a bit far-fetched; I pretty much took the "taksi-takasi" step and went both ways from that.
23:09:10 <oklopol> oerjan: well i'm kinda hoping the answer would be a complexity, and not just "unbounded".
23:09:14 <GregorR> ehird: I have to use it exactly once, to get the PSL, which is then self-sustaining.
23:09:22 <ehird> GregorR: I hate brittle bootstrapping processes.
23:09:25 <pikhq> ehird, I suspect, doesn't seem to get how Plof is implemented. ;)
23:09:31 <ehird> pikhq: I am well aware, thanks.
23:09:34 <oklopol> or O(infinity), although i still prefer just saying there's no limit.
23:10:33 <pikhq> Well, what's brittle about this bootstrapping process?
23:10:51 <ehird> It relies on a single, opaque file to bootstrap it.
23:11:00 <oklopol> oerjan: i mean that's the uninteresting answer, basically it means the question isn't well-defined
23:11:05 <ehird> Produced by an unmaintained compiler; and you can't reproduce it without itself.
23:11:08 <ehird> *That's* brittle.
23:11:17 <oerjan> oklopol: my guess is it
23:11:23 <oerjan> 's undecidable anyhow
23:11:30 <GregorR> ehird: That's how hundreds of compilers are maintained ...
23:11:44 <oklopol> oerjan: doesn't have to be for tm's
23:11:47 <pikhq> That's how bootstrapping goes.
23:11:52 <ehird> GregorR: It's brittle regardless of that; and mostly only popular compilers do that.
23:11:56 <oklopol> can be for you know sorting automata.
23:11:58 <ehird> pikhq: And it's brittl.
23:12:00 <ehird> *brittle
23:12:01 -!- Judofyr has quit (Remote closed the connection).
23:12:07 <pikhq> Well, except that sometimes the code in question is hand-compiled...
23:12:21 <ehird> pikhq: GregorR's name is not McCarthy.
23:12:32 <pikhq> True.
23:12:39 <Deewiant> fizzie: Here's as close as I got, with a few rather creative compounds: lautana luutana luusana luukana luukasa *luutasa luutase luutasen lautasen lautanen
23:12:43 <pikhq> Anything better that you suggest?
23:12:46 <ehird> pikhq: Yes
23:12:48 <oerjan> oklopol: for a start it's by standard theorems undecidable whether something _is_ a sorting algorithm
23:12:55 <Deewiant> With 'luutasa' being a bit of a nonword
23:13:05 <GregorR> ehird: And your suggestion is: A) PSL is replaced with a Forth dialect, which is actually not a huge change but may be good, and B) the parsing engine is written directly in that Forth dialect.
23:13:10 <ehird> GregorR: Listen.
23:13:11 <ehird> Let me speak.
23:13:14 <ehird> pikhq: Implement Plof's parser/compiler in the Low Level Language (PSL (well, via APSL), my proposed Ploforth, whatever).
23:13:17 <Deewiant> Hmm, there's an unnecessary luusana there as well
23:13:32 <ehird> pikhq: This makes the Plof implementation portable; the actual PSL/Ploforth interp can be simple and easy, and it isn't a brittle bootstrapping.
23:13:35 <ehird> Yet it's still meta.
23:13:40 <oklopol> Deewiant: luutasa?
23:13:49 <ehird> I case my rest.
23:13:59 <Deewiant> oklopol: Like said, a bit of a non-word. luu-tasa[paino] or something like that
23:14:26 <fizzie> Deewiant: To be honest, the "lautaisin" part in mine is a bit creative too. I'm not quite sure whether it means "the most wooden-plankest of them all" or just "I would wood-plankify it".
23:14:27 -!- Judofyr has joined.
23:14:34 <oklopol> Deewiant: sorry missed that. but yeah that's a non-word
23:14:36 <oklopol> lautaisin is fine
23:14:37 <Deewiant> fizzie: :-)
23:14:40 <GregorR> ehird: My strategy also makes the Plof implementation portable, the actual PSL interp can be simple and easy (that's the whole idea), and so the only difference is your "brittleness" argument.
23:15:00 <oklopol> fizzie: both meanings are in frequent use
23:15:03 <ehird> GregorR: I was saying that mine had all the qualities you could want, and is less brittle.
23:15:25 <GregorR> ehird: But it depends on human-maintained code in Forth.
23:15:29 <ehird> Or APSL.
23:15:37 <oklopol> fizzie: have i mentioned i frequent sauna-building competitions?
23:15:38 -!- Judofyr has quit (Remote closed the connection).
23:15:39 <pikhq> And a PSL assembler.
23:15:45 <ehird> GregorR: But all you need to do
23:15:48 <ehird> is get the very basics working
23:15:52 <ehird> Then you can write the rest of the parser in plof
23:15:54 <ehird> building it up as you go
23:15:58 <pikhq> The only extant PSL assembler is part of dplof. ;)
23:16:08 <ehird> pikhq: That's not really a problem.
23:16:15 <GregorR> Wait, WTF ........ that last bit was confusing.
23:16:28 <GregorR> The parsing engine can't be built partially in one language and partially in another.
23:16:34 <GregorR> It's a redefinable ratpack parser.
23:16:51 <ehird> GregorR: Sure it can. You write the minimum needed to get a basic Plof in the LLL, then build it up to be more advanced in basicPlof.
23:17:17 <ehird> GregorR: You could even build mini-Plof as a nonextensible, dumb parser, then write the rest of the parser in that.
23:17:25 <GregorR> ehird: But that's what's already done. That's how the language is defined. But that all depends on having a working underlying parser.
23:17:32 <oklopol> dump arser
23:17:38 <ehird> GregorR: It doesn't depend on having a Plof parser, does it?
23:17:43 <ehird> Er
23:17:44 <ehird> It does
23:17:45 <ehird> Doesn't it?
23:17:51 <GregorR> No.
23:17:56 <GregorR> It depends on having a user-definable parsing engine.
23:18:08 <ehird> GregorR: dplof/plof/ast/ast.d
23:18:15 <ehird> That looks very much like Plof support code.
23:18:21 <ehird> PUL, that is.
23:18:24 <GregorR> ehird: That /reverses/ PSL code into AST code.
23:18:29 <GregorR> ehird: It's solely for debugging.
23:18:33 <ehird> Ah.
23:18:39 <ehird> GregorR: Then I think the current solution is best!
23:18:53 <GregorR> ........ there's a current solution?
23:18:59 <ehird> GregorR: With s/APSL/Ploforth/ to make the assembling easier, and to make the parser a bit more hand-maintainable.
23:19:28 <GregorR> Ah, you mean /your/ current solution.
23:19:39 <ehird> No.
23:19:40 <ehird> GregorR: Yours.
23:19:43 <ehird> What is in the hg tree now.
23:20:02 <ehird> GregorR: So the reason cplof isn't the default is that only dplof has an assembler?
23:20:11 <GregorR> Only dplof has the parsing ENGINE.
23:20:19 <ehird> GregorR: oh.
23:20:26 <ehird> So write the engine in APSL/Ploforth. :P
23:20:52 <GregorR> The idea was to write the engine in Plof, then compile it to <language>.
23:21:05 <GregorR> Which you argue is brittle.
23:21:22 <ehird> I propose writing the engine in APSL/Ploforth as part of the core PUL implementation.
23:21:36 <GregorR> The core PUL implementation is written in Plof ;)
23:21:58 <ehird> GregorR: Yes but it isn't bootstrapped
23:22:04 <ehird> It's parsed by Ploforth as the simple core lang
23:22:05 <ehird> Right?
23:22:05 <ehird> Er
23:22:07 <ehird> APSL
23:22:09 <ehird> sort of you know
23:22:11 <ehird> I mean
23:22:13 <ehird> That is
23:22:15 <ehird> It's built on top of the APSL
23:22:17 <ehird> adding as it goes
23:22:21 <ehird> not bootstrap-compiled
23:22:47 <GregorR> Right. But to be clear, there are only some 100-so lines of PSL code before it tastes much more like Plof.
23:22:55 <ehird> Of course.
23:23:01 <ehird> GregorR: Let's put it this way
23:23:04 * pikhq needs to get the latest Plof.
23:23:15 <pikhq> Been at least a year since I pulled from Mercurial.
23:23:33 <ehird> GregorR: the parser engine is 705 lines of actual D -- including whitespace, comments, imports, yada yada yada.
23:24:01 <ehird> GregorR: Right?
23:24:39 <GregorR> 406 dplof/plof/prp/packrat.d
23:24:39 <GregorR> 299 dplof/plof/prp/prp.d
23:24:43 <GregorR> Sure
23:24:53 <ehird> GregorR: Now, decrufting a bit and moving into the LLL, which is high level in that you don't need to mess with pointers and whatnot
23:25:00 <pikhq> So, yes, 705 is the number.
23:25:02 <ehird> GregorR: I'd estimate about 500 lines or so?
23:25:08 <ehird> With a decent LLL. (Hint hint :-P)
23:25:17 <ehird> GregorR: It wouldn't have to implement PCRE
23:25:26 <ehird> Just do FFI shtuff.
23:25:44 <GregorR> In any condition this change implies going to Forth, so you can stop hinting about that. Doing this all in PSL is silly.
23:25:54 <ehird> Of course.
23:25:57 <ehird> I wouldn't wish that on anyone.
23:26:02 <GregorR> In some ideal happy universe it would be a very confusing 500 lines, sure.
23:26:13 <ehird> Err, why/
23:26:14 <ehird> *?
23:26:23 <ehird> I really don't think a packrat parser is the epitome of hardity.
23:26:44 -!- olsner has joined.
23:26:55 <GregorR> A) Because Forth is Forth. B) Because FFI isn't the clearest thing on Earth. B) Because packrat parsers need dictionaries to maintain memoization.
23:27:10 <GregorR> That's right, two Bs :P
23:27:38 <ehird> GregorR: A) I don't exactly mean ANS Forth. I just mean something with the same syntax. B) I see a flaw, then; and it's not with my idea. B²) Dictionaries are objects. :P
23:28:18 <GregorR> My FFI is based directly on libffi, the idea was that the user language makes it pretty, not the bytecode instructions.
23:29:12 <GregorR> WHY INTERNET SO SLOW TODAY
23:29:18 <ehird> GregorR: I think inelegant bytecode instructions is probably not such a good idea.
23:29:33 -!- Gracenotes has quit (Connection timed out).
23:29:37 <ehird> GregorR: After all, not all impls will use libffi.
23:30:48 <GregorR> There's not much more you can do at the bytecode level. I've abstracted it a little bit from libffi, but the basic idea (put types in arrays, generate "cif" from arrays, dlsym to find symbol, call with cif, symbol and array of arguments) is about the best you can do at that level.
23:31:12 -!- iano has joined.
23:31:23 <GregorR> At a higher level you could maybe parse a C function declaration, etc etc, but I reaaaaaaaally don't feel it's a good idea to put that in the bytecode.
23:31:56 <iano> I'm not able to create a page on the esolang wiki
23:32:00 <ehird> iano: do you have an account
23:32:16 <GregorR> ehird: Maybe we should move this to #plof ;)
23:32:19 <iano> yes I'm logged in (IanO)
23:32:20 <ehird> yes, apparently
23:32:24 <ehird> iano: ask ais523? what's the error
23:32:37 <iano> "You don't have permission to access /w/index.php on this server."
23:32:49 <ais523> iano: are there any <div> or <span> tags in your new page?
23:32:59 <iano> ah! yes there are
23:32:59 <ais523> it's possible you're hinting Graue's quick-hack spam filter
23:33:04 <ais523> replace them with something else
23:33:16 <iano> is there any other way to specify colored text?
23:33:23 <ais523> use a different sort of containing element
23:33:26 <ais523> like <b>, for instance
23:33:35 <iano> ok
23:33:38 <iano> thanks :)
23:33:39 -!- KingOfKarlsruhe has quit (Remote closed the connection).
23:38:22 <fizzie> "+/* oh god what i have done */" is not a very confidence-inspiring line in a patch.
23:38:32 <iano> Are folks here aware of the Rosetta Code wiki?
23:38:36 <fizzie> s/i have/have i/
23:39:13 <iano> it aims to have comparative code samples between hundreds of programming languages
23:39:27 <ehird> yep
23:39:34 <ehird> fizzie: :D ctx?
23:39:57 <iano> it would be great if folks could contribute more Befunge, Brainfuck, and SNUSP examples there.
23:42:04 <ais523> ah, could be interesting
23:42:10 <ais523> I may do the INTERCAL at some point, but not right now
23:42:17 <fizzie> ehird: It was in http://lists.debian.org/debian-x/2009/03/msg00417.html -- it's about the commit where they've importing the Ubuntu patches that fix the X crashes I had.
23:42:49 <iano> ais523: yes please!
23:42:51 <ais523> I'm busy trying to figure out how to do string handling in INTERCAL at the momen
23:42:52 <ais523> *moment
23:43:04 <ais523> I think I'll have to start by implementing some form of malloc/realloc library
23:44:06 <ehird> ais523: “What ho, good sir! ITRALCEN has you covered!”
23:44:49 <ais523> that's an anagram of INTERCAL
23:45:12 <ais523> no relevant Google hits
23:45:24 <ais523> ehird: I think I'm missing the point; what is the point?
23:45:32 <oerjan> bfnegue and banukcfir are jolly good too!
23:45:49 <ehird> ais523: “ITRALCEN comes with magical string support, using the unicode quote-unquote characters! It is ultra horrific!”
23:45:59 <ais523> oh, I see
23:46:03 <ais523> I wanted to make it portable
23:46:30 <ais523> because a portable string-handling library is fun because C-INTERCAL and CLC-INTERCAL do string I/O very differently
23:47:55 <oerjan> t e o o ob,ta steqetonisu h ith e ttnr,bo
23:48:58 <oerjan> er
23:49:28 <ais523> could someone write a fungot plugin to decode/undecode those?
23:49:29 <fungot> ais523: will i be able to type it all in one
23:49:43 <ais523> fungot: apparently not, you stopped berfore the word "line"
23:49:43 <fungot> ais523: you can use
23:50:32 <ehird> 23:49 fungot: ais523: will i be able to type it all in one
23:50:32 <fungot> ehird: isn't it? you could use
23:50:33 <ehird> XDD
23:50:50 <ais523> someone should plug fungot into mezzacotta
23:50:51 <fungot> ais523: waiting at 4am for code to be run as a service because they're explicitly designed to do a
23:52:35 <oerjan> *t e rntt e hti h usinoteqets at,bo o o,bo
23:53:25 * oerjan had to write a haskell function to do that correctly
23:54:30 <oerjan> the inverse seems a little trickier, hm
23:56:13 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
←2009-04-16 2009-04-17 2009-04-18→ ↑2009 ↑all