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: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: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: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: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: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:23 <AnMaster> ehird, we are deadlocked into-non-ingore
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: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 * ehird relearns mercurial
00:09:41 <GregorR> Stick an s on it if you want security for pushing purposes *shrugs*
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: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: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: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: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: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: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: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: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: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: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:26:02 <bsmntbombdood> pick 2 random elements, swap them if the aren't in order
00:26:14 <ehird> ld: in /dev/null, file too small
00:26:24 <ehird> bsmntbombdood: It's O(infinity).
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: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:53 <ehird> bsmntbombdood: Try gnome sort, except with many gnomes.
00:28:58 <ehird> [ http://en.wikipedia.org/wiki/Gnome_sort ]
00:30:21 <pikhq> GregorR: Yeah; MPEG4 part 11, IIRC.
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:43 <ehird> bsmntbombdood: what's the issue in this case?
00:31:49 <ehird> unless 4chan invade or sth
00:31:57 <ehird> online in that sense
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:53 <ehird> bsmntbombdood: err not when given an infinite list.
00:33:18 <ehird> bsmntbombdood: i don't get it
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: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: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: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
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: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:03:22 <pikhq> Well, no bugs that let the end of code be reached.
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:50 <bsmntbombdood> looks like merge sort consistently makes the least comparisons
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:22:08 <oerjan> i think it's the same for any sort which removes redundant comparisons
01:27:39 -!- olsner has quit ("Leaving").
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: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: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:26:05 <GregorR> And the blocked IP is 127.0.0.1
02:26:20 <bsmntbombdood> this code has radically different behavior when compiled with and without optimization
02:28:16 <pikhq> Would the code in question happen to be from ffmpeg?
02:35:41 <oerjan> iirc if(*ar > *++ar) is undefined behavior
02:40:23 <bsmntbombdood> that algorith does 1.3 million comparisons for a 45 element list
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: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: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: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: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: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: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:27 <Deewiant> If it's 90s or newer that's 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.
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:10:01 -!- neldoreth has quit (Read error: 113 (No route to host)).
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: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: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: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: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:37:37 <ehird> GregorR: You thar?
14:38:21 -!- sebbu has joined.
14:49:01 <ehird> "Court jails Pirate Bay founders"
14:50:00 <ehird> No. Not under any sane interpretation.
14:50:03 <ehird> Linking is not illegal.
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: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: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: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: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: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: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: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:42 <ehird> Not very useful then :P
15:53:46 <ehird> GregorR: Does DSSS work with LDC?
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: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: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: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:17 <ehird> That seems to defeat the point of the magical meta syntax-swapping Plof magick.
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: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: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: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: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:13 <ehird> ln -s `pwd`/ldc-posix-tango $HOME/.rebuild
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:11:09 <ehird> A dsss/Makefile.gdc.posix
16:11:10 <ehird> A dsss/Makefile.dmd.win
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:20 <ehird> I don't have rebuild, see.
16:12:34 <ehird> GregorR: what will that compile with
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:14:10 <ehird> GregorR: Er, wuz "rebuild.conf/default"
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:46 <ehird> cp ~/Downloads/ldc/ldc-posix-tango rebuild.conf
16:14:52 <ehird> then add profile=blah to rebuild.conf/default
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: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: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:17:03 <ehird> ln -s rebuild /usr/local/bin/rerun
16:17:03 <ehird> ln: /usr/local/bin/rerun: File exists
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:50 <GregorR> ln -s $PWD/rebuild links to rebuild in the current directory.
16:18:05 <ehird> what's ln's arg order again?
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: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: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: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: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: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:52 <GregorR> What with school and all that.
16:21:58 <ehird> GregorR: one question.
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: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: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:24:03 <ehird> Benevolent Dictator For Until You Get Your Fucking Shit Together.
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: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:08 <ehird> GDC only supports 2007
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: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: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:41 <Deewiant> ehird: It can't find libtango-user-ldc.a
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:29:01 <ehird> It just mentioned it referencing something.
16:29:04 <Deewiant> ehird: That's -base-, not -user-.
16:29:13 <ehird> Right, I need to compile tango.
16:29:36 <ehird> Now... what rebuild invokation...
16:29:45 <Deewiant> For Tango, just use the shell scripts, seriously.
16:29:52 <ehird> Look, I'm batshit insane, okay?
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:47 <ehird> % ./build-tango.sh ldc
16:33:53 <ehird> Okay, so after this I do some really wild rebuild shit wit tangobos. Or something.
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: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: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:15 <ehird> It says so on the 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: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:38 <ehird> RUNTIME_DIR */Users/ehird/Downloads/ldc/runtime/../tango
16:48:47 <ehird> -D <var>:<type>=<value>
16:48:52 <ehird> I wonder wtf type is
16:49:32 <ehird> Does just -D foo=bar work?
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: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
17:03:59 <ehird> I could unpack it to /usr/local.
17:04:05 <ehird> I'll take the easy route.
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: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: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:52 <Deewiant> You can, and I always do out of habit, but I don't think I've ever actually needed it
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: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:10 <ehird> native gtk == gtk for os x.
17:26:12 <Deewiant> You have all these things that do things for you
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:27:02 <ehird> you can dl a binary
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:30:26 <Deewiant> Maybe make install doesn't install it or something
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:59 <Deewiant> The first one might be a version (Linux) else // win32
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:29 <ehird> it's just testing version (Unix)
17:32:38 <ehird> version(DigitalMars) version(Posix) {
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:59 <ehird> It just uses time_t.
17:34:22 <ehird> Where's time_t meant to b
17:35:48 <ehird> Deewiant: Mostly same issue, those non-existant types.
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: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: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: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:57 <ehird> Does it build with dmd?
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:57 <ehird> GregorR-L: Install gdc, compile rebuild, compile dsss, dsss net install tango.
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:54:51 <pikhq> GregorR-L: Well, that would be the LFS way.
17:55:32 -!- neldoreth has joined.
17:57:54 <ehird> GregorR-L: I have GDC. Now dsss, right?
17:58:21 <pikhq> Could've just gotten a binary of dsss and let that deal with the mess, but, yeah.
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
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:49 <ehird> GregorR-L: I has a rebuild.
18:01:54 <ehird> make -f Makefile.gdc.posix?
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 <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:36 <ehird> make: *** [dsss] Error 1
18:02:38 <ehird> About 7 billion lines of them
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: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: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: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: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:36 <Deewiant> GregorR-L: Also, that Tango-test doesn't work any more since Tango also gives toString.
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: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: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:32 <GregorR-L> ehird: Seems like Posix is unset, but I don't know why ... what's in rebuild/rebuild.conf/default ?
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:42 <Deewiant> It used to print the messages, after all
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: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: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:15:10 <ehird> is that a capital i
18:15:22 <ehird> DDDDDDDDDDDDDDDDDDD
18:15:23 <ehird> DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
18:15:24 <ehird> DDDDDDDDDDDDDDDDDD
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: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:50 <ehird> You heard it here first.
18:17:13 <ehird> version(GNU) { } version (Posix) { } version (GNU_or_Posix) {} version (Posix_or_GNU) {} version (GNU_Linux) { }
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:21:14 <GregorR-L> On its cmd=gdmd line it should have -version=Posix
18:21:18 <pikhq> Whisky Tango Foxtrot...
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: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: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: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: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:25 <ehird> GregorR-L: Latest release link plz
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:48 <Deewiant> Also, got Tangobos's D parts to build, now working on the C
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:22 <ehird> LDC/Tangobos/DSSSS/OS X, 64-bit.
18:25:33 <ehird> Also known as "las diablos compileros".
18:26:09 -!- Slereah has quit (Read error: 110 (Connection timed out)).
18:26:23 <ehird> svn co again, you mean :P
18:26:37 <Deewiant> Hmm, not quite it doesn't work
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: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:50 <ehird> GregorR-L: Make dsss shit owned by me then net install tango, right>?
18:29:04 <ehird> (Why not use sudo? shrug)
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:25 <ehird> Now I need to figure out how to uninstall >________<
18:31:55 <ehird> % dsss net install tango
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: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:40 <ehird> Command bash returned with code 256, aborting.
18:34:42 <ehird> Error: Command failed, aborting.
18:34:44 <ehird> YEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH
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:14 <ehird> dsss net install gdc
18:35:15 <Deewiant> I think the Tango guys say that GDC is screwed
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:56 <Deewiant> Let's see if it can compile my Sudoku solver
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: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:44:17 <Deewiant> Actually, it seems that this class I've been using is Windows-only O_o
18:44:46 <Deewiant> "is guaranteed to be meaningful on all operating systems."
18:45:48 <Deewiant> Changing that the thing builds
18:45:57 <ehird> Deewiant: Just rewrite it in haskell :P
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: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:31 <ehird> http://www.haskell.org/haskellwiki/Sudoku
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.
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: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:11:03 <ehird> requires the option
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: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: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: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:38 <GregorR> The pain of others makes me smile!
19:36:08 <ehird> http://sod.jodi.org/
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:30 <GregorR> I'd never heard of jodi.org :P
19:37:38 <ehird> http://en.wikipedia.org/wiki/Jodi
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:40 <Sgeo> I'm pretty sure my mom was not epileptic
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: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: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: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: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: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: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: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:11 <Deewiant> ehird: iki.fi/deewiant as usual
20:06:18 <ehird> yeah we all have your site bookmarked.
20:06:33 <Deewiant> Anyway, there's D program you might even be capable of building
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: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: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: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: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: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: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:30 <ehird> Deewiant: But of course.
20:16:06 <ehird> meg combining-¨ æ fficient
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:51 -!- Slereah_ has quit (Read error: 110 (Connection timed out)).
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: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:32 <ehird> The magic bit is the combining
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: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: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:56 <ehird> bsmntbombdood: it's very parallelizable; you can just ask the humans to choose which item is greater than
20:37:38 <ehird> so my algo may work :P
20:37:42 <ehird> just trying it on another test case
20:39:43 <bsmntbombdood> this is sort of unrelated, but at work i actually have to sort things by hand
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:43:35 <ehird> sorting this 8 length list is taking mighty long
20:44:12 <ehird> haven't repeated a state yet, phw
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:30 <ehird> it's beginning to sort
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: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: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: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: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:44 <oklopol> in case you left in the 2 minutes i spent logreading after that
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: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: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:05:04 <ehird> oklopol: it works on [4,3,2,1]
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:32 <ehird> SNATCHING DEFEAT FROM THE JAWS OF FAILURE
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:06:02 <oklopol> have you considered doing that randomly?
21:06:12 <ehird> feel free to try that
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: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: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:21:15 <GregorR> You should make an esolang in which all computation is done by applying not-quite-sorting algorithms.
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:20 <ehird> bsmntbombdood: and? :P
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:42 <ehird> we've been inventing terrible sorting algorithms
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:33 <ehird> GregorR: "free account users may not use an adblocker"
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:13 <ais523> blocking the loading time is the whole point
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: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: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:44 <GregorR> oerjan: /ctcp #esoteric PING
21:33:58 <oerjan> GregorR: that's so crude
21:34:08 <GregorR> ehird: See, that's how it's done.
21:34:16 <ehird> GregorR: Masterful.
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:22 <ais523> I liked the brown one, but this one looks good too
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:26 <ehird> i think we need a screenshot heere
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 <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: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: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:22 <ehird> google images disagree with me
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: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: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: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: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: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: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:46 <ais523> without ever reinstalling
21:49:02 <oerjan> what does ick stand for again
21:49:18 <ais523> intercal compiler kludge
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: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: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: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: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:20 <oklopol> well that might cause confusion
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: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: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: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:44:42 <oerjan> the sort sort of came out of the conversation
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: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:44 <ehird> oklopol: a sorting algo needing a sorting algo is pretty shit isn't it
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:50:48 <ehird> oklopol: right now they're concatenated as 1 1 2 2
22:51:00 <ehird> oklopol: why not do 1 2 2 1
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:53:04 <oklopol> wanna do my electronics homework for me
22:53:16 <ehird> oklopol: gimme the code thens?
22:53:33 <ehird> 22:48 oklopol: i was thinking you could use quicksort for sorting the 2-element lists.
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:49 <ehird> oklopol: but it still cycles? :D
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: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:58:10 <oklopol> ehird: naturally not counting that, it needs to sort all lists
22:59:06 <oerjan> the median could still be O(infinity)
22:59:26 <oklopol> if you let algos be randomized
22:59:28 <oerjan> assuming there is _always_ a slower algorithm, which seems obvious
23:00:05 <Deewiant> fizzie: ... lautan lautana lautasna lautasena lautasen lautanen
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: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:40 <fizzie> Deewiant: "lautasna" is a bit silly, yes. Am working on it too.
23:01:07 <ehird> oerjan: no, there's an upper bound
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: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: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: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: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:17 <oerjan> oklopol: my guess is it
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: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: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: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: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: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: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: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:38 <ehird> GregorR: It doesn't depend on having a Plof parser, does it?
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:24 <GregorR> ehird: That /reverses/ PSL code into AST code.
23:18:29 <GregorR> ehird: It's solely for debugging.
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: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: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:15 <ehird> It's built on top of the APSL
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: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:39 <GregorR> 406 dplof/plof/prp/packrat.d
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: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: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: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: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: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:39:13 <iano> it aims to have comparative code samples between hundreds of programming languages
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: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: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: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: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: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)).