Parrot 3.4.0 released | parrot.org | Log: irclog.perlgeek.de/parrot/today
Set by moderator on 17 May 2011.
whiteknight cotto ping 00:00
msg cotto Can you take a quick look at trac.parrot.org/parrot/ticket/2038 ? Any feedback would be good, but a thumbs up would be even better :) 00:02
aloha OK. I'll deliver the message.
kid51 dukeleto ping 00:03
whiteknight I suspect that if I convert OS PMC to not be a singleton anymore, that nothing will break 00:06
Any Rakudo folks around today?
What is the difference between OS.stat() and OS.lstat()? 00:13
cotto ~~
whiteknight Those two methods are identical 00:14
I suspect OS.lstat should call Parrot_file_lstat instead of Parrot_file_stat 00:17
of course, I wonder if we should have things in OS PMC that are so linux specific 00:28
OS PMC should probably be more generic. We could have a subclass for Linux 00:29
or, Unix-alikes
then we could use isa and can to determine what functionality is supported on the current platform
00:29 dmalcolm left
whiteknight or better yet, we nix OS PMC completely and use NCI to access the Parrot_file_* functions directly 00:30
that has the benefit that we create a Class at runtime instead of a whole VTABLE
00:33 davidfetter left
kid51 We have several open, long-standing TTs that reference os.pmc: 1197, 1071, 849 00:33
00:35 theory left, Andy joined, theory joined
cotto whiteknight, what's your plan on the singleton ticket (2038)? 00:38
whiteknight what do you mean?
for OS, I can commit right now a patch to make it not a singleton with no visible effects
cotto +1 then
whiteknight I can do the same for Env in about 5 minutes too
Scheduler and OpLib are going to be more problematic
cotto Are you also planning on removing the singleton-awareness code from Parrot? 00:39
whiteknight actually scratch that. OpLib isn't a singleton anymore
yes, that's the plan
I need to double-check that Rakudo isn't using Singletons
cotto If no HLLs are using singletons, fire at will. 00:40
sorear Is Scheduler used *at all*?
I mean, other than by the test file that segfaults
kid51 If I want to follow a Perl 6 list that is relevant to Parrot via nntp, would that be: perl.perl6.compiler?
whiteknight sorear: it's integrated into a few places, like exception handling, where it really doesn't need to be
when Parrot looks for an exception handler it asks the Scheduler, which redirects to the current Context 00:41
kid51 perl.perl6.language?
whiteknight but other than that, and some remnants of threading, I don't think anything uses the scheduler
dalek rrot/m0-prototype: 6b32c63 | cotto++ | src/m0/m0_interp.pl:
update implementations of goto* ops to match the spec
00:47
00:51 silug left 00:52 silug joined
dalek rrot: 56712f4 | Whiteknight++ | src/dynpmc/os.pmc:
OS is not a singleton anymore. It doesn't have state, so there's no reason to reuse a single, static reference.
00:58
rrot: 647dfa6 | Whiteknight++ | src/dynpmc/os.pmc:
Fix OS docs to say it isn't a singleton now
cotto cpanm++ 01:06
01:22 Andy left
dalek lrskate: 8e6d532 | tcurtis++ | s (3 files):
Refactor the prettyprinting for as_bnf_string() into a class.
01:29
01:48 kid51 left 01:49 gbacon joined 01:55 ascent left, ascent joined
dalek sella: b185e4f | Whiteknight++ | s (5 files):
Add in stub files for File and Directory objects, which provide a nicer interface for those things than the OS PMC and other Parrot primitives.
02:01
02:10 whiteknight left
dalek nxed: r1021 | NotFound++ | trunk/examples/fly.winxed:
tiny changes in example fly that make the animation smoother and reduce cpu
02:19
benabik ~~ 02:24
dalek nxed: r1022 | NotFound++ | trunk/examples/fly.winxed:
undo one of the changes in r1021, the trade-off between cpu/smoothness was no so
02:34
02:35 bubaflub joined 03:14 gbacon left 03:53 bubaflub left 03:58 bubaflub joined 04:10 bubaflub left 05:06 soh_cah_toa left
dalek rrot/m0-prototype: 6fc650a | cotto++ | src/m0/m0_assembler.pl:
update M0 register name regex
05:08
rrot/m0-prototype: 7e2ec66 | cotto++ | src/m0/m0_assembler.pl:
make the assembler capable of generating multiple chunks
rrot/m0-prototype: 71224a0 | cotto++ | src/m0/m0_assembler.pl:
generate a less incorrect bytecode segment
06:12 fperrad joined 06:14 mtk left 06:20 mtk joined 06:21 theory left
dukeleto ~~ 06:27
cotto++ # improving the m0 assembler 06:28
06:41 arnsholt left, TiMBuS left, eternaleye left, TiMBuS joined, dngor_ joined, dod left, elmex left, mikehh left, eternaleye joined, frodwith left, Hunger- left, elmex joined, mikehh joined, simcop2387 left, NotFound left, perlite_ joined, Hunger joined 06:42 NotFound joined, simcop2387 joined, frodwith joined, particle1 left, particle joined, ShaneC1 joined 06:43 silug left, dngor left, perlite left 06:44 perlite_ is now known as perlite, dod joined 06:45 arnsholt joined
dukeleto I wrote tests in PHP today. 07:22
07:24 mj41 joined
dukeleto and lived to tell the tale! 07:25
08:19 jrtayloriv left 08:28 SHODAN joined 09:00 silug joined 09:29 jsut_ joined 09:34 jsut left 11:07 Psyche^ joined, Patterner left, Psyche^ is now known as Patterner
tadzik dukeleto: did they pass? :P 11:10
11:33 contingencyplan left 11:45 bacek joined, lucian joined
benabik good morning, #parrot! 12:34
12:34 bacek left 12:40 JimmyZ joined 12:45 bacek joined
benabik Arg, I hate arguing semantics first thing in the morning. Especially when it's from an e-mail I wrote late the previous night. Ah, well. On to more productive parrot hacking. 12:49
benabik has apparently decided that talking to himself out loud isn't good enough anymore and now uses IRC so it's logged publicly.
12:58 whiteknight joined
whiteknight good morning, #parrot 12:59
benabik \\o/ whiteknight! 13:00
13:00 bubaflub joined
whiteknight good morning benabik 13:00
benabik Now I'm not talking to myself! 13:01
whiteknight ah, I like being an upgrade
13:03 dngor_ is now known as dngor
benabik I've found that having a IRC window open when I wake up means that my early morning rambling gets done electronically. :-) 13:03
13:03 lucian_ joined
whiteknight I used to hop on as soon as I woke up, but there aren't enough people online at that time 13:04
plus, it would only be a few minutes before I had to sign off and do the boring stuff like eat and get dressed 13:05
benabik I just leave Colloquy open all the time, so when I grab my laptop to do my morning RSS/webcomic routine, it's right there.
And working from home means I have all the time in the world to rant. ;-)
whiteknight heh, the morning RSS/webcomic routine is my routine too
the world does not have enough good, free webcomics
benabik: buy a couple cats to keep company. You won't go crazy at all 13:06
13:06 lucian left
benabik whiteknight: I've heard arguments that I follow too many webcomics although I'll admit most of them are more "alright" than "good". 13:06
whiteknight: I already have Pollux and Castor, I don't need two more cats. (Although a third cat is inbound with my new housemate next week.) 13:07
whiteknight A few of the ones I have been following are becoming disappointing, and I might unsubscribe
XKCD is usually pretty good, and you can't unsubscribe because you would miss the occasional gem 13:08
of course, when a really good one comes out so many people copy+paste it everywhere that you end up seeing it anyway
benabik Yes. My biggest favs are that, Questionable Content, Girl Genius, and Schlock Mercenary. 13:09
Although I've apparently bookmarked over 150 over the years (although I don't follow all of them anymore): www.delicious.com/benabik/webcomic?page=3
whiteknight I like QuestionableContent, but I'm much less happy with it now that Martin and Dora are broke up. 13:15
I like Cyanide and Happiness too, that's usually good for a quick, if dark, laugh
benabik Yeah, that was sad and it's more whiny now than it's been in a while but the characters are still engaging. :-) 13:16
whiteknight I've been following Something Positive for a while, but it's tapered off a lot and isn't really compelling anymore
benabik C&H's rarely gets more than a bit of a smile out of me. I see why others like it, but it just doesn't quite hit the mark for me.
whiteknight yeah, C&H is certainly not for everybody 13:17
benabik Heh. The rapture C&H was good though.
S*P seems to be idling around doing character bits. Interesting, but less humor than there used to be. 13:18
whiteknight yeah. It lost a lot of its edge when the dad got alzheimers and they all moved down to Texas or wherever they are 13:20
since then it's been a combination of "not funny" and "depressing" 13:22
benabik I've found plenty of bits to keep my interest, but it's def not as amusing as before. 13:24
It's always been a more "serious with dark humor" than "dark humor with serious bits" though, IMHO.
14:02 mtk left 14:08 mtk joined 14:34 JimmyZ left 14:47 hercynium joined 14:54 mtk left, alester joined 14:59 mtk joined 15:02 SHODAN left
dukeleto ~~ 15:03
cotto_work ~~ 15:09
15:09 dodathome joined 15:12 theory joined 15:15 theory left 15:26 JimmyZ joined
dukeleto cotto_work: how goes it this morning? 15:36
cotto_work yawn
I can see the finish line for the M0 assembler. It's exciting. 15:37
dukeleto: do you by chance know where the sf conservancy's funding comes from? 15:39
dukeleto cotto_work: it is connected to the SFLC 15:40
cotto_work dukeleto: ok. just curious. 15:41
dukeleto cotto_work: do you mean the conservancy's funding itself? mostly it manages the funds of the projects that are part of it
cotto_work: i am sure Bradley could explain, in detail :) Why do you wask?
cotto_work dukeleto: yes, the conservancy itself rather than the projects it supports
dukeleto or ask. But wasking is more fun.
cotto_work lemme wask you something 15:42
dukeleto cotto_work: looks like they accept donations: sfconservancy.org/donate/
cotto_work It's out of curiosity. It provides a very useful service and I don't quite understand what keeps it going. 15:43
dukeleto: yup. It's on my list of things to think about donating to.
dukeleto cotto_work: me too. 15:44
cotto_work: glad to see you unborked some of my assembler code
cotto_work: i intent to write a test that verifies each byte of bytecode is correct, so it will be easy to see, from failing test output, how close our bytecode is
cotto_work: does that sound useful?
cotto_work: how close it is to being correct, that is 15:45
cotto_work dukeleto: it does
dukeleto cotto_work: i expect that the M0 test suite will quickly grow to be larger than the prototype
cotto_work dukeleto: me too
The only reason I'm not going full steam ahead writing .m0 files is that I don't want to have to fix a bajillion of them when we can finally run them and find out how incorrect they are. 15:47
dukeleto cotto_work: indeed. I think we should go depth-first here, and make sure that we can turn hello.m0 into proper bytecode 15:56
cotto_work: when we feel confident about that, we can start adding other test m0 source files
cotto_work wfm
dukeleto cotto_work: but we can still create/test lots of *invalid* M0 source files :)
cotto_work: not parsing invalid M0 is a feature, too :) 15:57
cotto_work dukeleto: yup 16:02
16:23 theory joined
cotto_work It's times like this when an m0b disassembler would be really nice. 16:23
16:28 gbacon joined
dukeleto gbacon: welcome 16:36
cotto_work: yes, it would. We can just run the m0_assembler backwards, right?
gbacon dukeleto: thanks! 16:38
cotto_work That's so crazy it just might work.
dukeleto gbacon: have you been to #parrot before? I am the welcome wagon :)
cotto_work Apparently crazy overflows. 16:39
dukeleto cotto_work: what are your next steps for the assembler?
gbacon dukeleto: yes, and I think I even have commits in the repo somewhere way back
dukeleto: but I appreciate your welcome
cotto_work dukeleto: parse_chunks is a bit lacking 16:40
dukeleto gbacon: ah. you are not in CREDITS as 'gbacon'. Which username did you commit as?
cotto_work dukeleto: are you going to work on it? I have an unpushed commit.
dukeleto gbacon: or maybe you just submitted patches
cotto_work: push your commit
cotto_work dukeleto: done 16:41
dalek rrot/m0-prototype: bd4df55 | cotto++ | src/m0/m0_assembler.pl:
"implement" metadata and variables segement generation

doesn't produce a viable hello.m0b yet
rrot/m0-prototype: 45a17b1 | cotto++ | src/m0/m0_assembler.pl:
add a couple TODOs
cotto_work in a pinch, Dumper can be pressed into service as a disassembler 16:42
KaeseEs showed some interest in writing a proper disassembler, but I haven't seen anything from him.
gbacon dukeleto: just reviewed the repo; looks like patches only 16:43
cotto_work gbacon: you're in CREDITS under your irl name 16:45
gbacon w00t!
cotto_work which is great. Parrot needs more bacon in all its varied forms.
16:45 lucian joined
gbacon Bacon makes everything better! 16:45
whiteknight I tried to make my own bacon last week. I added way too much salt 16:48
16:49 lucian_ left
alester I have a huge amount of unconsting to do in the next couple of days. 16:49
Tons of methods that use strings for hash keys that take const STRING * 16:50
but then underneath, code is faking out the compiler to unconst the STRING * so that it can modify the hashval.
dukeleto Bacon is the key to happiness. 16:52
alester Bacon and consting.
cotto_work const bacon_t b; 16:55
dukeleto How did I go this long without a functioning command-line gist app? I don't know. 16:59
dukeleto can now gist from the command-line again. Be very afraid.
gbacon: interested in hacking on parrot some more? Any specific interests? 17:00
gbacon: we have lots of stuff to work on :) 17:01
whiteknight we always like more hands working on it
cotto_work We've got a lovely disassembler that needs to come into existence. 17:02
17:12 silug left 17:20 jevin joined
gbacon dukeleto: I used to be active on p5p many years ago, and I miss it. problem is scarce tuits 17:22
17:22 JimmyZ left 17:25 mj41 left 17:28 bacek left
dukeleto gbacon: would you be interested in testing parrot on your machine? That can provide us with valuable info and usually doesn't take much time/tuits on your part, after setup 17:32
gbacon dukeleto: sure 17:33
points for persistence :-)
dukeleto gbacon: have you downloaded the parrot repo since we have changed to git? 17:36
gbacon: github.com/parrot/parrot/blob/mast...rkflow.pod describes the process
gbacon: which platforms/OS do you have access to or willing to test on? 17:37
gbacon dukeleto: yes, I grepped git log for bacon
Ubuntu 11.04
dukeleto gbacon: awesome.
gbacon: have you ever heard of Smolder? We usually submit smoke reports to it, but it may be down.
gbacon maybe CentOS too, but I'd hate to encourage people to use that distribution
dukeleto gbacon: we need better tools for submitting and maintaining smoke reports 17:38
gbacon: perhaps you can explain how p5p does it? Perhaps we should lovingly steal some of their infrastructure
gbacon: the normal process is to build a new parrot and then type "make smoke" (which requires the TAP::Harness::Archive CPAN module) 17:39
gbacon dukeleto: waaaay back in the day, I wrote a Perl program to extract build reports from p5p posts and stuffed them in a mSQL database
dukeleto smolder-- is still down: smolder.parrot.org 17:40
gbacon: we don't have a "parrot smoker" mailing list, and I think we should 17:41
gbacon dukeleto: I was trying to imagine an easier way to do it
RSS feeds or tweets or something
maybe a sweet mojo webapp on DotCloud now that it supports Perl! 17:43
dukeleto gbacon: we do have access to the GCC compile farm, tho 17:44
gbacon: i have a bunch of smokers on the farm submitting smolder reports, which is probably what brought smolder down :(
gbacon: Jitterbug is one of my side projects that is like a dedicated smoker: jitterbug.leto.net
gbacon: but it doesn't solve the problem of arbitrary users submitting smoke reports
gbacon: jitterbug lives at github.com/franckcuny/jitterbug
dukeleto still needs to teach it a few more tricks to be able to properly test parrot and rakudo 17:45
benabik dukeleto: I thought you got it speaking parrot a day or two ago. 17:46
dukeleto benabik: i fixed the biggest bugs, but now there are just a few configuration issues that need to be tweaked 17:50
benabik: previously, i was doing git clean -fdx, git checkout and git fetch, all in the same cached git repo
benabik: but if badness occured, lockfiles would be left over, making the process fall over 17:51
benabik dukeleto: Lockfiles? From git?
dukeleto benabik: but now I have a pristine cached git repo, which only ever has a "git fetch --prune" run in it, then I clone into a temp repo from that cached repo
benabik: yep. Git leaves lock files when badness occurs. Usually .git/lockfile or some junk 17:52
benabik dukeleto: Local git clones are very cheap on same FS (hardlinks) or on same system with -s (alternate)
dukeleto benabik: yep. And this way of doing things is much more resilient 17:53
benabik: previous builds can't effect the current build, because only one build is every done in a git repo
s/every done/ever done/
benabik dukeleto++ # clever git tricks
dukeleto Heavy-handed, but required
benabik dukeleto: Ensuring perfectly clean starting points doesn't sound heavy-handed to me. :-) 17:54
dukeleto benabik: the current issue is that a previously-installed parrot is conflicting with the currently-building-parrot in Jitterbug. I think I just need to remove the installed parrot on that machine, and that should unbork things 17:55
17:55 ShaneC1 left
dukeleto does just that 17:55
benabik dukeleto: I keep getting warnings about my installed parrot. How does that screw things up? I've never seemed to have a problem with it.
dukeleto Perhaps it will work now. 17:56
benabik: ok, here is the deal
benabik: if your installed parrot and the one you are building have the same release version (but are on different sha1's) and someone has changed something drastically internally, it could cause undefined behavior 17:57
benabik: parrot doesn't know how to tell the difference between parrot x.y.z and parrot x.y.z + non-backward-compatible commits 17:58
17:59 hercynium is now known as |, | is now known as hercynium
benabik dukeleto: Is the build system not good about using the parrot it just built? 17:59
dukeleto benabik: one could argue it is a bug in our config/build scripts (and I would be hard pressed to argue) but it is a deep and sticky issue
benabik: i don't fully understand it, but I have been bit by it, which is why I rm my installed parrot every time before I build a new one
benabik: as I do in here: github.com/leto/Util/blob/master/bin/new_parrot 18:00
benabik dukeleto: So I should really be doing `stow -D parrot` before `(cd parrot; make)`. Hm.
dukeleto benabik: yeah, probably
18:00 contingencyplan joined
dukeleto benabik: i used to know how to use stow 18:00
benabik: the parrot configure system detects a parrot in it's PATH and sees if it is the same version, and if it is, assumes some stuff 18:01
benabik: but that assumption isn't always correct.
benabik dukeleto: That sounds LTA.
dukeleto benabik: indeed
benabik: you will find many LTA jewels in our config/build system
benabik: It is a battlefield, fertilized by many gallons of blood lost in the name of "portability" 18:02
dukeleto just booked his ticket to YAPC::NA ! 18:03
benabik Woo! I'm seeing if people 'round these parts want to carpool. 12hr drive is pesky, but saving a couple hundred on tickets is good.
18:05 bluescreen joined, bluescreen left
dukeleto benabik: have you looked into Amtrak? 18:07
benabik dukeleto: I have yet to see Amtrak be cheaper than flying, bit I'll take a look. 18:08
dukeleto benabik: it is hit or miss 18:09
benabik dukeleto: Also, closest Amtrak station is 1:30 from Asheville. :-( 18:10
dukeleto benabik: ah, no bueno 18:11
benabik It is cheaper, but takes 24 hours. 18:12
dukeleto benabik: yeah. Screw that.
benabik dukeleto: Someone from Buffalo.PM indicated interest in carpooling. Hopefully they have a decent car so I don't even have to get a rental. :-D
dukeleto benabik: i think carpooling with some PM people will be a great experience 18:13
benabik dukeleto: The whole point is to meet new people. :-) 18:14
benabik adds "remove installed parrot" to his Parrot make script. 18:15
18:23 gbacon left 18:25 ShaneC joined, ShaneC left, dmalcolm joined
dalek sella: d35f8ee | Whiteknight++ | setup.winxed:
Don't try to build File library now, it's too immature
18:27
sella: 90cdcaa | Whiteknight++ | src/ (3 files):
Add in a 'classic' quicksort implementation for the Query library
whiteknight I really need to optimize that qsort routine, but it works for now 18:29
making all those function calls is certainly going to make it slower than Parrot's current C version
benabik whiteknight: Randomized or center pivot is better than first element, BTW. On sorted or mostly sorted lists, first element leads to O(n^2) 18:30
whiteknight benabik: yeah, I need to fix the pivot too
benabik Best is attempting to find a good median, which can be done in O(n), but the constant factor probably loses out. 18:31
benabik took an algorithms class this year, can you tell?
sorear if quicksort didn't have such a lucrative place in name-space, would anyone still use it? 18:32
it seems like a pretty lousy algorithm
whiteknight quicksort is a pretty good algorithm, overall. It tends to have pretty good coefficients
benabik sorear: It's nice and simple, which is handy for teaching and is better than most other sorts.
whiteknight whether it's better than heapsort or not is debatable. 18:33
I've seen plenty of workloads where it can go either way
benabik They're very similar expected running time, but heap generally has better worst case.
whiteknight right
benabik And qsort with bubble at length < C is even better.
whiteknight For my purposes, getting a working quicksort was faster and easier than almost anything else I could have written 18:34
I did the naive "book" version of it, but it can be optimized a hell of a lot more
I can inline the swap and partion implementations, then replace half the recursions with loops 18:35
at that point I would expect it to have comparable performance to the C version in Parrot
benabik: and you're right. Switching sort routines at a certain length or a certain recursion depth would be a good idea
18:36 davidfetter joined
benabik whiteknight: Length is usually best. Stopping at a given depth tells you nothing about how much work is left to do. 18:36
whiteknight introsort switches to heap sort below a certain recursion depth. I think the MS implementation of qsort in msvcrt switches to bubblesort
benabik Bubble has the advantage of small constants. 18:37
whiteknight yeah, but it becomes a tuning exercise. What does C need to be where bubble saves more than it costs?
benabik whiteknight: It's not a terribly hard tuning exercise. 18:38
whiteknight this is true
At this point I'm more interested in getting a working sort interface as opposed to a bleeding fast one 18:39
What I need to do is get to work on the Rosella Benchmark library, so I have the tools to analyze the sort routine :)
benabik So optimizing the sort is just a handy way to test your Benchmarks. :-D 18:40
whiteknight exactly
dukeleto whiteknight++ # a rosella benchmark library 18:41
whiteknight don't ++ it yet. It's little more than a vague idea and a small hodgepodge of random code 18:43
What I really want to do is close trac.parrot.org/parrot/ticket/1356. Instead of inheriting a sort routine into all our myriad of array types, I would like to write one or two implementations at the PIR level 18:46
I suspect that an optimized variant could be faster than our current C implementation, because we could cut out nested runloops
dukeleto qwest-- 18:47
whiteknight Also having the benefit that if the sort routine was external, Any array-like type could benefit from it, not just built-ins and types that inherit from built-ins
dukeleto whiteknight: so what exactly is blocking that ticket? 18:49
whiteknight: or, what next steps are you thinking? 18:50
whiteknight dukeleto: I need to implement an alternate sort routine, in PIR, and demonstrate it isn't worse in terms of performance
and demonstrate that it works on all native array types
dukeleto whiteknight: those sound tractable 18:51
whiteknight at least, that's my current approach
dukeleto whiteknight: are you thinking of actually writing PIR, or generating the PIR?
whiteknight the alternative is to copy+paste the sort method to ResizableStringArray, or find an un-stupid way to inherit
dukeleto copy+paste feels wrong, and sometimes inheritance just isn't the best tool 18:52
a role is the correct tool
whiteknight it certainly isn't the best tool here. Parrot_quicksort takes a signature string literal, to prevent the need for autoboxing every single element at every single swap 18:53
which, I suspect, is bad
dukeleto whiteknight: ugh. That is quite hackish and all kinds of tightly coupled
whiteknight yessir
dukeleto whiteknight: do we have any sorting benchmarks in PIR now? 18:54
whiteknight Hence, I think the best idea is to go with a PIR implementation. Actually, will probably be several implementations, or a macroized implementation, or something
because we still want to avoid autoboxing
dukeleto whiteknight: does that warrant a new ticket or at least changing the title of TT1356 ? 18:56
whiteknight I don't think so. Not yet anyway. I'm still exploring all options
dukeleto whiteknight: we seem to have no sorting benchmarks. OH THE HUGE MANATEE 18:59
whiteknight yeah, that's something that I'm going to have to add
19:00 Coke left
whiteknight I'll probably generate a few random arrays and a few pathological cases 19:00
19:00 Coke joined
whiteknight like a million item array that is already in reverse order 19:00
and an array that is already in order 19:01
dukeleto whiteknight: i just created a TT for it :)
whiteknight throw it on my pile, so I can ignore it more effectively 19:02
I mean "keep track of it"
benabik Sorted array is the worst case for quicksort, although I'd imagine reverse sorted is just as bad. 19:03
whiteknight I thought reverse-sorted was the worst for quicksort 19:04
because in a sorted array, there are almost no swaps to do
in the reverse-sorted array, we have to do N swaps 19:05
benabik It gives maximal recursions.
You're probably correct about the swaps though.
whiteknight right, but that's N swaps AND NlogN recursions, vs NlogN recursions and few swaps
sorear there shouldn't be any logarithmic factors in quick sort's sorted cases 19:06
benabik N swaps and N recursions for NlogN instead of N swaps and log N recursions.
whiteknight What I will probably do is write up a sort wrapper, which can take in an optional sort core by name, or fall back to a decent quicksort implementation
sorear logarithmic factors only come in when the array is being cut in half at each step
dalek TT #2120 created by dukeleto++: We need sorting benchmarks
TT #2120: trac.parrot.org/parrot/ticket/2120
benabik Buh. Sorted is N swaps at each of N recursions for N^2 result.
whiteknight sorear: and that's what the recursions do
benabik: that makes no sense. How does it have N recursions? 19:07
sorear whiteknight: not if the array is already sorted and we're pivoting on the first
whiteknight sorear: oh, true. In that case it is the worst, yes
an n/2 pivot drops that back down to NlogN
benabik whiteknight: Because you pivot on the first element. So you sort everything into one half, then sort N-1 eles.
I was speaking of pathological case.
whiteknight yes, that case is bad 19:08
benabik Random pivot gives you expected log N recursions, but can't help with the N comparisons (and maybe swaps) in the partition portion.
19:10 Coke left, Coke joined
benabik (Center pivot also expect log N, but a pathological example can be constructed.) 19:17
19:17 silug joined
whiteknight Random pivot doesn't remove the pathological worst case. It only prevents it from being manually triggered 19:22
benabik whiteknight: True. 19:23
sorear for a sufficiently large array, it makes the pathological worst case less likely than your CPU spontanously igniting in the middle of the operation 19:29
whiteknight I've had a CPU ignite before. Actually it was a pop, some sparks, and a little smoke, but I still don't like those odds 19:30
actually, the sparks might have been coming out of one of the harddisks which were hanging in the case freely, and possibly completing a circuit 19:32
benabik My Data Communications and Networking II professor had bad words for anyone who liked "playing roulette with a protocol".
whiteknight I had a networking professor whose voice sounded exactly like Rafiki from The Lion King 19:34
19:36 rohit_nsit08 joined
cotto_work hio rohit_nsit08 19:36
rohit_nsit08 hello #parrot
cotto_work: hi
feeling good after coming back after the break :-)
benabik break? 19:37
rohit_nsit08 exams
benabik Ah.
rohit_nsit08 last is tomorrow
19:39 Coke left, Coke joined
dukeleto rohit_nsit08: good to see you back! was wondering where you ran off to :) 19:46
whiteknight: i've made a CPU catch fire before as well, but I had filled every possible jumper position on an old 486 mb, to see what would happen. I was sufficiently impressed. 19:47
jnthn__ dukeleto: wow! :) 19:48
whiteknight dukeleto: oh, fun
Back in school I had an old frankenmachine that I cobbled together from spare parts
dukeleto jnthn__: you could say I was in an "experimental hardware" stage during high school ;) 19:49
whiteknight it had more HDDs than it had slots for them, so they hung loose in the case
and I didn't have a heat sink, or a cover
rohit_nsit08 dukeleto: hi, was having semester exams.
jnthn__ dukeleto: Conclusion: filling all possible jumpers enables the HCF instruction :)
rohit_nsit08 dukeleto: will be on full time from tomorrow :-)
dukeleto whiteknight: oh, i remember many a frankenmachine which would have outraged many a fire inspector
rohit_nsit08 whiteknight: hi 19:50
dukeleto rohit_nsit08: glad to hear!
whiteknight hello rohit_nsit08
dukeleto rohit_nsit08: i would like to skype with you soon, sill! Just had real life get in the way recently, as I am sure you are familiar with :)
rohit_nsit08 dukeleto: ya, sure we can have it anyday u like I'll mail u the free timings today according to the timezone. 19:52
cotto_work I've said it before and I'll say it again: www.worldtimebuddy.com/ 19:55
whiteknight jeez cotto_work, you sound like a .... what's that animal that repeats things all the time? 19:58
cotto_work duck? 19:59
whiteknight yeah, that's the one. You sound like a duck 20:01
cotto_work According to ducktyping, I must therefore be a duck.
tcurtis cotto_work: not necessarily. Do you walk like a duck? 20:05
cotto_work quack 20:06
whiteknight ducks walk by quacking 20:07
cotto_work dukeleto: are you hacking on the m0 assembler? 20:10
20:18 silug left
dalek rrot/m0-prototype: b2e5b9f | cotto++ | src/m0/m0_assembler.pl:
make m0 assembler output less-invalid bytecode
20:19
20:28 whiteknight left 20:31 dodathome left 20:32 ambs joined
dukeleto cotto_work: was actually about to start a bit. You reading my mind? 20:35
blarg. ipv6 test failures: jitterbug.leto.net:3000/api/build/p...rl-v5.10.1 20:37
jitterbug sure is good at finding bugs. 20:38
cotto_work dukeleto: great. I'll continue focusing on $dayjob. 20:40
20:41 mj41 joined
benabik Found a way to cut out all that useless sleep and gain an extra 6 hours of hacking: www.dustincurtis.com/sleep.html 20:41
tadzik yeah, great idea. Now lie down and sleep for 20 minutes. Like, now 20:42
If you can, I'm jealous. Monday-Tuesday I didn't sleep at all. I lied down for hours, and nothing. Insomnia. If that method is supposed to fix sleeping problems, then I have a bootstraping problem 20:43
benabik You probably fall asleep faster if you're just taking naps like that because you're riding the edge of exaustion constantly. 20:44
tadzik so that sucks
benabik Reading a discussion of adjusting, it sounds like you go into serious sleep dep for a few days before your body adjusts but then it's fairly normal except for wierd psych effects relating to days blending together. 20:47
everything2.com/index.pl?node=Every...20Schedule
tadzik I'm yet to find a method to fix my sleeping disorders. The common answer is "get to sleep the same time every day". Oh, really? But the fact that I go to bed doesn't set me asleep. I will lie down being nothing but bored, until my brain decides to fall asleep. But the decision is different every day
hmm
sorear tadzik: waking up the same time every day helps, a lot
benabik Could be one of those non-24 hour sleep cycle issues. 20:48
sorear tadzik: I had exactly the problems you described, until I was stuck taking morining classes
tadzik sorear: well, my classes are in the morning once a week
sorear tadzik: switching from 10am wakeup to 6am wakeup, waking up to an alarm every day, fixed my going to sleep problems
tadzik int eresting;
20:50 fperrad left
tadzik alright, I'm trying 7am tomorrow 20:51
sorear: when I wander back in the memory, the issues weren't that serious in the school days, I was waking up on 6 every day. I guess I regressed when I got to University 20:53
but damn. I got up at 8, on saturday. 8 on sunday. 8 on monday. Then I didn't get to sleep 20:54
maybe I regressed to much refactoring isn't sufficient anymore? :)
s/to/so/
benabik tadzik: It takes two to four weeks for your body to really adjust to a change in sleep habits. 20:55
(IIRC, IANAD) 20:56
tadzik oh
21:07 bacek joined 21:19 ambs left 21:23 rohit_nsit08 left 21:29 lucian left 21:46 jsut joined 21:48 mtk left 21:50 soh_cah_toa joined 21:51 jsut_ left 21:55 mtk joined 22:06 hercynium left 22:15 mj41 left
dalek p: 05bf809 | jonathan++ | src/pmc/sixmodelobject.pmc:
Make get_iter overridable.
22:26
22:38 silug joined 23:02 alester left
dalek lrskate: 9cdf3fe | tcurtis++ | examples/ (2 files):
Rename the prettyprint example
23:05
lrskate: 25095d9 | tcurtis++ | examples/addition.winxed:
Use Winxed's new, instead of pirop.
lrskate: 16d801d | tcurtis++ | examples/practical-translators-g-0.winxed:
Add an example of a LR(0) grammar from "Practical Translators for LR(k) Languages".
TT #2121 created by soh_cah_toa++: Mistakes in lib/Parrot/Test.pm Perldoc 23:17
TT #2121: trac.parrot.org/parrot/ticket/2121
dukeleto soh_cah_toa: if you send that patch as a pull request, I can merge button it :) 23:18
23:21 whiteknight joined
dalek rrot: 1e3da70 | dukeleto++ | .gitignore:
Fix a bug in our .gitignore that incorrectly tried to ignore vim swap files
23:26
soh_cah_toa dukeleto: how can i do that w/o including my gsoc work that's on my branch? 23:43
dukeleto soh_cah_toa: you should be working on seperate branches 23:46
soh_cah_toa: gist/nopaste the output of "git status -u"
soh_cah_toa dukeleto: well, i branched from parrot/parrot and have been pushing to soh-cah-toa/parrot 23:47
dukeleto soh_cah_toa: that is called a fork
soh_cah_toa: branches are inside of a repo
soh_cah_toa dukeleto: ok
dukeleto: so how do i do this then? do i make a temporary branch from soh-cah-toa/parrot for tt2121? 23:50
dukeleto: actually, let me nopaste my remotes and branches 23:51
nopaste "soh_cah_toa" at 192.168.1.3 pasted "My Messed Up Environment" (9 lines) at nopaste.snit.ch/47549 23:52