Camelia, the Perl 6 bug

IRC log for #parrot, 2011-05-25

Parrot | source cross referenced

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:00 whiteknight cotto ping
00:02 whiteknight msg cotto Can you take a quick look at http://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.
00:03 kid51 dukeleto ping
00:06 whiteknight I suspect that if I convert OS PMC to not be a singleton anymore, that nothing will break
00:06 whiteknight Any Rakudo folks around today?
00:13 whiteknight What is the difference between OS.stat() and OS.lstat()?
00:13 cotto ~~
00:14 whiteknight Those two methods are identical
00:17 whiteknight I suspect OS.lstat should call Parrot_file_lstat instead of Parrot_file_stat
00:28 whiteknight of course, I wonder if we should have things in OS PMC that are so linux specific
00:29 whiteknight OS PMC should probably be more generic. We could have a subclass for Linux
00:29 whiteknight or, Unix-alikes
00:29 whiteknight then we could use isa and can to determine what functionality is supported on the current platform
00:29 dmalcolm left #parrot
00:30 whiteknight or better yet, we nix OS PMC completely and use NCI to access the Parrot_file_* functions directly
00:30 whiteknight that has the benefit that we create a Class at runtime instead of a whole VTABLE
00:33 davidfetter left #parrot
00:33 kid51 We have several open, long-standing TTs that reference os.pmc:  1197, 1071, 849
00:35 theory left #parrot
00:35 Andy joined #parrot
00:35 theory joined #parrot
00:38 cotto whiteknight, what's your plan on the singleton ticket (2038)?
00:38 whiteknight what do you mean?
00:38 whiteknight for OS, I can commit right now a patch to make it not a singleton with no visible effects
00:38 cotto +1 then
00:38 whiteknight I can do the same for Env in about 5 minutes too
00:38 whiteknight Scheduler and OpLib are going to be more problematic
00:39 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
00:39 whiteknight yes, that's the plan
00:39 whiteknight I need to double-check that Rakudo isn't using Singletons
00:40 cotto If no HLLs are using singletons, fire at will.
00:40 sorear Is Scheduler used *at all*?
00:40 sorear I mean, other than by the test file that segfaults
00:40 kid51 If I want to follow a Perl 6 list that is relevant to Parrot via nntp, would that be:  perl.perl6.compiler?
00:40 whiteknight sorear: it's integrated into a few places, like exception handling, where it really doesn't need to be
00:41 whiteknight when Parrot looks for an exception handler it asks the Scheduler, which redirects to the current Context
00:41 kid51 perl.perl6.language?
00:41 whiteknight but other than that, and some remnants of threading, I don't think anything uses the scheduler
00:47 dalek parrot/m0-prototype: 6b32c63 | cotto++ | src/m0/m0_interp.pl:
00:47 dalek parrot/m0-prototype: update implementations of goto* ops to match the spec
00:47 dalek parrot/m0-prototype: review: https://github.com/parrot/parrot/commit/6b32c6319a
00:51 silug left #parrot
00:52 silug joined #parrot
00:58 dalek parrot: 56712f4 | Whiteknight++ | src/dynpmc/os.pmc:
00:58 dalek parrot: OS is not a singleton anymore. It doesn't have state, so there's no reason to reuse a single, static reference.
00:58 dalek parrot: review: https://github.com/parrot/parrot/commit/56712f44ff
00:58 dalek parrot: 647dfa6 | Whiteknight++ | src/dynpmc/os.pmc:
00:58 dalek parrot: Fix OS docs to say it isn't a singleton now
00:58 dalek parrot: review: https://github.com/parrot/parrot/commit/647dfa664a
01:06 cotto cpanm++
01:22 Andy left #parrot
01:29 dalek lalrskate: 8e6d532 | tcurtis++ | s (3 files):
01:29 dalek lalrskate: Refactor the prettyprinting for as_bnf_string() into a class.
01:29 dalek lalrskate: review: https://github.com/ekiru/l​alrskate/commit/8e6d532b26
01:48 kid51 left #parrot
01:49 gbacon joined #parrot
01:55 ascent left #parrot
01:55 ascent joined #parrot
02:01 dalek Rosella: b185e4f | Whiteknight++ | s (5 files):
02:01 dalek Rosella: 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 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/b185e4f216
02:10 whiteknight left #parrot
02:19 dalek winxed: r1021 | NotFound++ | trunk/examples/fly.winxed:
02:19 dalek winxed: tiny changes in example fly that make the animation smoother and reduce cpu
02:19 dalek winxed: usage
02:19 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=1021
02:24 benabik ~~
02:34 dalek winxed: r1022 | NotFound++ | trunk/examples/fly.winxed:
02:34 dalek winxed: undo one of the changes in r1021, the trade-off between cpu/smoothness was no so
02:34 dalek winxed: good
02:34 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=1022
02:35 bubaflub joined #parrot
03:14 gbacon left #parrot
03:53 bubaflub left #parrot
03:58 bubaflub joined #parrot
04:10 bubaflub left #parrot
05:06 soh_cah_toa left #parrot
05:08 dalek parrot/m0-prototype: 6fc650a | cotto++ | src/m0/m0_assembler.pl:
05:08 dalek parrot/m0-prototype: update M0 register name regex
05:08 dalek parrot/m0-prototype: review: https://github.com/parrot/parrot/commit/6fc650a43d
05:08 dalek parrot/m0-prototype: 7e2ec66 | cotto++ | src/m0/m0_assembler.pl:
05:08 dalek parrot/m0-prototype: make the assembler capable of generating multiple chunks
05:08 dalek parrot/m0-prototype: review: https://github.com/parrot/parrot/commit/7e2ec669ca
05:08 dalek parrot/m0-prototype: 71224a0 | cotto++ | src/m0/m0_assembler.pl:
05:08 dalek parrot/m0-prototype: generate a less incorrect bytecode segment
05:08 dalek parrot/m0-prototype: review: https://github.com/parrot/parrot/commit/71224a0f7d
06:12 fperrad joined #parrot
06:14 mtk left #parrot
06:20 mtk joined #parrot
06:21 theory left #parrot
06:27 dukeleto ~~
06:28 dukeleto cotto++ # improving the m0 assembler
06:41 arnsholt left #parrot
06:41 TiMBuS left #parrot
06:41 eternaleye left #parrot
06:41 TiMBuS joined #parrot
06:41 dngor_ joined #parrot
06:41 dod left #parrot
06:41 elmex left #parrot
06:41 mikehh left #parrot
06:41 eternaleye joined #parrot
06:41 frodwith left #parrot
06:41 Hunger- left #parrot
06:41 elmex joined #parrot
06:41 mikehh joined #parrot
06:41 simcop2387 left #parrot
06:41 NotFound left #parrot
06:41 perlite_ joined #parrot
06:41 Hunger joined #parrot
06:42 NotFound joined #parrot
06:42 simcop2387 joined #parrot
06:42 frodwith joined #parrot
06:42 particle1 left #parrot
06:42 particle joined #parrot
06:42 ShaneC1 joined #parrot
06:43 silug left #parrot
06:43 dngor left #parrot
06:43 perlite left #parrot
06:44 perlite_ is now known as perlite
06:44 dod joined #parrot
06:45 arnsholt joined #parrot
07:22 dukeleto I wrote tests in PHP today.
07:24 mj41 joined #parrot
07:25 dukeleto and lived to tell the tale!
08:19 jrtayloriv left #parrot
08:28 SHODAN joined #parrot
09:00 silug joined #parrot
09:29 jsut_ joined #parrot
09:34 jsut left #parrot
11:07 Psyche^ joined #parrot
11:07 Patterner left #parrot
11:07 Psyche^ is now known as Patterner
11:10 tadzik dukeleto: did they pass? :P
11:33 contingencyplan left #parrot
11:45 bacek joined #parrot
11:45 lucian joined #parrot
12:34 benabik good morning, #parrot!
12:34 bacek left #parrot
12:40 JimmyZ joined #parrot
12:45 bacek joined #parrot
12:49 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 #parrot
12:59 whiteknight good morning, #parrot
13:00 benabik \o/ whiteknight!
13:00 bubaflub joined #parrot
13:00 whiteknight good morning benabik
13:01 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
13:03 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 lucian_ joined #parrot
13:04 whiteknight I used to hop on as soon as I woke up, but there aren't enough people online at that time
13:05 whiteknight 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.
13:05 benabik And working from home means I have all the time in the world to rant.  ;-)
13:05 whiteknight heh, the morning RSS/webcomic routine is my routine too
13:05 whiteknight the world does not have enough good, free webcomics
13:06 whiteknight benabik: buy a couple cats to keep company. You won't go crazy at all
13:06 lucian left #parrot
13:06 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:07 benabik 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
13:08 whiteknight XKCD is usually pretty good, and you can't unsubscribe because you would miss the occasional gem
13:08 whiteknight of course, when a really good one comes out so many people copy+paste it everywhere that you end up seeing it anyway
13:09 benabik Yes.  My biggest favs are that, Questionable Content, Girl Genius, and Schlock Mercenary.
13:09 benabik Although I've apparently bookmarked over 150 over the years (although I don't follow all of them anymore): http://www.delicious.com/benabik/webcomic?page=3
13:15 whiteknight I like QuestionableContent, but I'm much less happy with it now that Martin and Dora are broke up.
13:15 whiteknight I like Cyanide and Happiness too, that's usually good for a quick, if dark, laugh
13:16 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
13:16 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.
13:17 whiteknight yeah, C&H is certainly not for everybody
13:17 benabik Heh.  The rapture C&H was good though.
13:18 benabik S*P seems to be idling around doing character bits.  Interesting, but less humor than there used to be.
13:20 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:22 whiteknight since then it's been a combination of "not funny" and "depressing"
13:24 benabik I've found plenty of bits to keep my interest, but it's def not as amusing as before.
13:24 benabik It's always been a more "serious with dark humor" than "dark humor with serious bits" though, IMHO.
14:02 mtk left #parrot
14:08 mtk joined #parrot
14:34 JimmyZ left #parrot
14:47 hercynium joined #parrot
14:54 mtk left #parrot
14:54 alester joined #parrot
14:59 mtk joined #parrot
15:02 SHODAN left #parrot
15:03 dukeleto ~~
15:09 cotto_work ~~
15:09 dodathome joined #parrot
15:12 theory joined #parrot
15:15 theory left #parrot
15:26 JimmyZ joined #parrot
15:36 dukeleto cotto_work: how goes it this morning?
15:36 cotto_work yawn
15:37 cotto_work I can see the finish line for the M0 assembler.  It's exciting.
15:39 cotto_work dukeleto: do you by chance know where the sf conservancy's funding comes from?
15:40 dukeleto cotto_work: it is connected to the SFLC
15:41 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
15:41 dukeleto cotto_work: i am sure Bradley could explain, in detail :) Why do you wask?
15:41 cotto_work dukeleto: yes, the conservancy itself rather than the projects it supports
15:41 dukeleto or ask. But wasking is more fun.
15:42 cotto_work lemme wask you something
15:42 dukeleto cotto_work: looks like they accept donations: http://sfconservancy.org/donate/
15:43 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 cotto_work dukeleto: yup.  It's on my list of things to think about donating to.
15:44 dukeleto cotto_work: me too.
15:44 dukeleto cotto_work: glad to see you unborked some of my assembler code
15:44 dukeleto 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
15:44 dukeleto cotto_work: does that sound useful?
15:45 dukeleto cotto_work: how close it is to being correct, that is
15:45 cotto_work dukeleto: it does
15:45 dukeleto cotto_work: i expect that the M0 test suite will quickly grow to be larger than the prototype
15:45 cotto_work dukeleto: me too
15:47 cotto_work 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:56 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 dukeleto cotto_work: when we feel confident about that, we can start adding other test m0 source files
15:56 cotto_work wfm
15:56 dukeleto cotto_work: but we can still create/test lots of *invalid* M0 source files :)
15:57 dukeleto cotto_work: not parsing invalid M0 is a feature, too :)
16:02 cotto_work dukeleto: yup
16:23 theory joined #parrot
16:23 cotto_work It's times like this when an m0b disassembler would be really nice.
16:28 gbacon joined #parrot
16:36 dukeleto gbacon: welcome
16:36 dukeleto cotto_work: yes, it would. We can just run the m0_assembler backwards, right?
16:38 gbacon dukeleto: thanks!
16:38 cotto_work That's so crazy it just might work.
16:38 dukeleto gbacon: have you been to #parrot before? I am the welcome wagon :)
16:39 cotto_work Apparently crazy overflows.
16:39 dukeleto cotto_work: what are your next steps for the assembler?
16:39 gbacon dukeleto: yes, and I think I even have commits in the repo somewhere way back
16:39 gbacon dukeleto: but I appreciate your welcome
16:40 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?
16:40 cotto_work dukeleto: are you going to work on it?  I have an unpushed commit.
16:40 dukeleto gbacon: or maybe you just submitted patches
16:40 dukeleto cotto_work: push your commit
16:41 cotto_work dukeleto: done
16:41 dalek parrot/m0-prototype: bd4df55 | cotto++ | src/m0/m0_assembler.pl:
16:41 dalek parrot/m0-prototype: "implement" metadata and variables segement generation
16:41 dalek parrot/m0-prototype:
16:41 dalek parrot/m0-prototype: doesn't produce a viable hello.m0b yet
16:41 dalek parrot/m0-prototype: review: https://github.com/parrot/parrot/commit/bd4df559f5
16:41 dalek parrot/m0-prototype: 45a17b1 | cotto++ | src/m0/m0_assembler.pl:
16:41 dalek parrot/m0-prototype: add a couple TODOs
16:41 dalek parrot/m0-prototype: review: https://github.com/parrot/parrot/commit/45a17b1b7a
16:42 cotto_work in a pinch, Dumper can be pressed into service as a disassembler
16:42 cotto_work KaeseEs showed some interest in writing a proper disassembler, but I haven't seen anything from him.
16:43 gbacon dukeleto: just reviewed the repo; looks like patches only
16:45 cotto_work gbacon: you're in CREDITS under your irl name
16:45 gbacon w00t!
16:45 cotto_work which is great.  Parrot needs more bacon in all its varied forms.
16:45 lucian joined #parrot
16:45 gbacon Bacon makes everything better!
16:48 whiteknight I tried to make my own bacon last week. I added way too much salt
16:49 lucian_ left #parrot
16:49 alester I have a huge amount of unconsting to do in the next couple of days.
16:50 alester Tons of methods that use strings for hash keys that take const STRING *
16:50 alester but then underneath, code is faking out the compiler to unconst the STRING * so that it can modify the hashval.
16:52 dukeleto Bacon is the key to happiness.
16:52 alester Bacon and consting.
16:55 cotto_work const bacon_t b;
16:59 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.
17:00 dukeleto gbacon: interested in hacking on parrot some more? Any specific interests?
17:01 dukeleto gbacon: we have lots of stuff to work on :)
17:01 whiteknight we always like more hands working on it
17:02 cotto_work We've got a lovely disassembler that needs to come into existence.
17:12 silug left #parrot
17:20 jevin joined #parrot
17:22 gbacon dukeleto: I used to be active on p5p many years ago, and I miss it. problem is scarce tuits
17:22 JimmyZ left #parrot
17:25 mj41 left #parrot
17:28 bacek left #parrot
17:32 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:33 gbacon dukeleto: sure
17:33 gbacon points for persistence :-)
17:36 dukeleto gbacon: have you downloaded the parrot repo since we have changed to git?
17:36 dukeleto gbacon: https://github.com/parrot/parrot/blob​/master/docs/project/git_workflow.pod describes the process
17:37 dukeleto 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
17:37 gbacon Ubuntu 11.04
17:37 dukeleto gbacon: awesome.
17:37 dukeleto gbacon: have you ever heard of Smolder? We usually submit smoke reports to it, but it may be down.
17:37 gbacon maybe CentOS too, but I'd hate to encourage people to use that distribution
17:38 dukeleto gbacon: we need better tools for submitting and maintaining smoke reports
17:38 dukeleto gbacon: perhaps you can explain how p5p does it? Perhaps we should lovingly steal some of their infrastructure
17:39 dukeleto 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
17:40 dukeleto smolder-- is still down: http://smolder.parrot.org
17:41 dukeleto 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
17:41 gbacon RSS feeds or tweets or something
17:43 gbacon maybe a sweet mojo webapp on DotCloud now that it supports Perl!
17:44 dukeleto gbacon: we do have access to the GCC compile farm, tho
17:44 dukeleto gbacon: i have a bunch of smokers on the farm submitting smolder reports, which is probably what brought smolder down :(
17:44 dukeleto gbacon: Jitterbug is one of my side projects that is like a dedicated smoker: http://jitterbug.leto.net
17:44 dukeleto gbacon: but it doesn't solve the problem of arbitrary users submitting smoke reports
17:44 dukeleto gbacon: jitterbug lives at https://github.com/franckcuny/jitterbug
17:45 * dukeleto still needs to teach it a few more tricks to be able to properly test parrot and rakudo
17:46 benabik dukeleto: I thought you got it speaking parrot a day or two ago.
17:50 dukeleto benabik: i fixed the biggest bugs, but now there are just a few configuration issues that need to be tweaked
17:50 dukeleto benabik: previously, i was doing git clean -fdx, git checkout and git fetch, all in the same cached git repo
17:51 dukeleto benabik: but if badness occured, lockfiles would be left over, making the process fall over
17:51 benabik dukeleto: Lockfiles?  From git?
17:51 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
17:52 dukeleto 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)
17:53 dukeleto benabik: yep. And this way of doing things is much more resilient
17:53 dukeleto benabik: previous builds can't effect the current build, because only one build is every done in a git repo
17:53 dukeleto s/every done/ever done/
17:53 benabik dukeleto++ # clever git tricks
17:53 dukeleto Heavy-handed, but required
17:54 benabik dukeleto: Ensuring perfectly clean starting points doesn't sound heavy-handed to me.  :-)
17:55 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 ShaneC1 left #parrot
17:55 * 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.
17:56 dukeleto Perhaps it will work now.
17:56 dukeleto benabik: ok, here is the deal
17:57 dukeleto 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:58 dukeleto 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:59 hercynium is now known as |
17:59 | is now known as hercynium
17:59 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
17:59 dukeleto 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
18:00 dukeleto benabik: as I do in here: https://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.
18:00 dukeleto benabik: yeah, probably
18:00 contingencyplan joined #parrot
18:00 dukeleto benabik: i used to know how to use stow
18:01 dukeleto 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 dukeleto benabik: but that assumption isn't always correct.
18:01 benabik dukeleto: That sounds LTA.
18:01 dukeleto benabik: indeed
18:01 dukeleto benabik: you will find many LTA jewels in our config/build system
18:02 dukeleto benabik: It is a battlefield, fertilized by many gallons of blood lost in the name of "portability"
18:03 * 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 #parrot
18:05 bluescreen left #parrot
18:07 dukeleto benabik: have you looked into Amtrak?
18:08 benabik dukeleto: I have yet to see Amtrak be cheaper than flying, bit I'll take a look.
18:09 dukeleto benabik: it is hit or miss
18:10 benabik dukeleto: Also, closest Amtrak station is 1:30 from Asheville.  :-(
18:11 dukeleto benabik: ah, no bueno
18:12 benabik It is cheaper, but takes 24 hours.
18:12 dukeleto benabik: yeah. Screw that.
18:12 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
18:13 dukeleto benabik: i think carpooling with some PM people will be a great experience
18:14 benabik dukeleto: The whole point is to meet new people.  :-)
18:15 * benabik adds "remove installed parrot" to his Parrot make script.
18:23 gbacon left #parrot
18:25 ShaneC joined #parrot
18:25 ShaneC left #parrot
18:25 dmalcolm joined #parrot
18:27 dalek Rosella: d35f8ee | Whiteknight++ | setup.winxed:
18:27 dalek Rosella: Don't try to build File library now, it's too immature
18:27 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/d35f8ee105
18:27 dalek Rosella: 90cdcaa | Whiteknight++ | src/ (3 files):
18:27 dalek Rosella: Add in a 'classic' quicksort implementation for the Query library
18:27 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/90cdcaacbd
18:29 whiteknight I really need to optimize that qsort routine, but it works for now
18:29 whiteknight making all those function calls is certainly going to make it slower than Parrot's current C version
18:30 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
18:31 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?
18:32 sorear if quicksort didn't have such a lucrative place in name-space, would anyone still use it?
18:32 sorear it seems like a pretty lousy algorithm
18:32 whiteknight quicksort is a pretty good algorithm, overall. It tends to have pretty good coefficients
18:32 benabik sorear: It's nice and simple, which is handy for teaching and is better than most other sorts.
18:33 whiteknight whether it's better than heapsort or not is debatable.
18:33 whiteknight I've seen plenty of workloads where it can go either way
18:33 benabik They're very similar expected running time, but heap generally has better worst case.
18:33 whiteknight right
18:33 benabik And qsort with bubble at length < C is even better.
18:34 whiteknight For my purposes, getting a working quicksort was faster and easier than almost anything else I could have written
18:34 whiteknight I did the naive "book" version of it, but it can be optimized a hell of a lot more
18:35 whiteknight I can inline the swap and partion implementations, then replace half the recursions with loops
18:35 whiteknight at that point I would expect it to have comparable performance to the C version in Parrot
18:35 whiteknight 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 #parrot
18:36 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
18:37 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?
18:38 benabik whiteknight: It's not a terribly hard tuning exercise.
18:38 whiteknight this is true
18:39 whiteknight At this point I'm more interested in getting a working sort interface as opposed to a bleeding fast one
18:39 whiteknight What I need to do is get to work on the Rosella Benchmark library, so I have the tools to analyze the sort routine :)
18:40 benabik So optimizing the sort is just a handy way to test your Benchmarks.  :-D
18:40 whiteknight exactly
18:41 dukeleto whiteknight++ # a rosella benchmark library
18:43 whiteknight don't ++ it yet. It's little more than a vague idea and a small hodgepodge of random code
18:46 whiteknight What I really want to do is close http://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 whiteknight I suspect that an optimized variant could be faster than our current C implementation, because we could cut out nested runloops
18:47 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
18:49 dukeleto whiteknight: so what exactly is blocking that ticket?
18:50 dukeleto 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
18:50 whiteknight and demonstrate that it works on all native array types
18:51 dukeleto whiteknight: those sound tractable
18:51 whiteknight at least, that's my current approach
18:51 dukeleto whiteknight: are you thinking of actually writing PIR, or generating the PIR?
18:51 whiteknight the alternative is to copy+paste the sort method to ResizableStringArray, or find an un-stupid way to inherit
18:52 dukeleto copy+paste feels wrong, and sometimes inheritance just isn't the best tool
18:52 dukeleto a role is the correct tool
18:53 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 whiteknight which, I suspect, is bad
18:53 dukeleto whiteknight: ugh. That is quite hackish and all kinds of tightly coupled
18:53 whiteknight yessir
18:54 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
18:54 whiteknight because we still want to avoid autoboxing
18:56 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
18:59 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 #parrot
19:00 whiteknight I'll probably generate a few random arrays and a few pathological cases
19:00 Coke joined #parrot
19:00 whiteknight like a million item array that is already in reverse order
19:01 whiteknight and an array that is already in order
19:01 dukeleto whiteknight: i just created a TT for it :)
19:02 whiteknight throw it on my pile, so I can ignore it more effectively
19:02 whiteknight I mean "keep track of it"
19:03 benabik Sorted array is the worst case for quicksort, although I'd imagine reverse sorted is just as bad.
19:04 whiteknight I thought reverse-sorted was the worst for quicksort
19:04 whiteknight because in a sorted array, there are almost no swaps to do
19:05 whiteknight in the reverse-sorted array, we have to do N swaps
19:05 benabik It gives maximal recursions.
19:05 benabik You're probably correct about the swaps though.
19:05 whiteknight right, but that's N swaps AND NlogN recursions, vs NlogN recursions and few swaps
19:06 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.
19:06 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
19:06 sorear logarithmic factors only come in when the array is being cut in half at each step
19:06 dalek TT #2120 created by dukeleto++: We need sorting benchmarks
19:06 dalek TT #2120: http://trac.parrot.org/parrot/ticket/2120
19:06 benabik Buh.  Sorted is N swaps at each of N recursions for N^2 result.
19:06 whiteknight sorear: and that's what the recursions do
19:07 whiteknight 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
19:07 whiteknight sorear: oh, true. In that case it is the worst, yes
19:07 whiteknight an n/2 pivot drops that back down to NlogN
19:07 benabik whiteknight: Because you pivot on the first element.  So you sort everything into one half, then sort N-1 eles.
19:07 benabik I was speaking of pathological case.
19:08 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 #parrot
19:10 Coke joined #parrot
19:17 benabik (Center pivot also expect log N, but a pathological example can be constructed.)
19:17 silug joined #parrot
19:22 whiteknight Random pivot doesn't remove the pathological worst case. It only prevents it from being manually triggered
19:23 benabik whiteknight: True.
19:29 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:30 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:32 whiteknight 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".
19:34 whiteknight I had a networking professor whose voice sounded exactly like Rafiki from The Lion King
19:36 rohit_nsit08 joined #parrot
19:36 cotto_work hio rohit_nsit08
19:36 rohit_nsit08 hello #parrot
19:36 rohit_nsit08 cotto_work: hi
19:36 rohit_nsit08 feeling good after coming back after the  break :-)
19:37 benabik break?
19:37 rohit_nsit08 exams
19:37 benabik Ah.
19:37 rohit_nsit08 last is tomorrow
19:39 Coke left #parrot
19:39 Coke joined #parrot
19:46 dukeleto rohit_nsit08: good to see you back! was wondering where you ran off to :)
19:47 dukeleto 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:48 jnthn__ dukeleto: wow! :)
19:48 whiteknight dukeleto: oh, fun
19:48 whiteknight Back in school I had an old frankenmachine that I cobbled together from spare parts
19:49 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
19:49 whiteknight and I didn't have a heat sink, or a cover
19:49 rohit_nsit08 dukeleto: hi, was having semester exams.
19:49 jnthn__ dukeleto: Conclusion: filling all possible jumpers enables the HCF instruction :)
19:49 rohit_nsit08 dukeleto: will be on full time from tomorrow :-)
19:49 dukeleto whiteknight: oh, i remember many a frankenmachine which would have outraged many a fire inspector
19:50 rohit_nsit08 whiteknight: hi
19:50 dukeleto rohit_nsit08: glad to hear!
19:50 whiteknight hello rohit_nsit08
19:50 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 :)
19:52 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:55 cotto_work I've said it before and I'll say it again: http://www.worldtimebuddy.com/
19:58 whiteknight jeez cotto_work, you sound like a .... what's that animal that repeats things all the time?
19:59 cotto_work duck?
20:01 whiteknight yeah, that's the one. You sound like a duck
20:01 cotto_work According to ducktyping, I must therefore be a duck.
20:05 tcurtis cotto_work: not necessarily. Do you walk like a duck?
20:06 cotto_work quack
20:07 whiteknight ducks walk by quacking
20:10 cotto_work dukeleto: are you hacking on the m0 assembler?
20:18 silug left #parrot
20:19 dalek parrot/m0-prototype: b2e5b9f | cotto++ | src/m0/m0_assembler.pl:
20:19 dalek parrot/m0-prototype: make m0 assembler output less-invalid bytecode
20:19 dalek parrot/m0-prototype: review: https://github.com/parrot/parrot/commit/b2e5b9f3f7
20:28 whiteknight left #parrot
20:31 dodathome left #parrot
20:32 ambs joined #parrot
20:35 dukeleto cotto_work: was actually about to start a bit. You reading my mind?
20:37 dukeleto blarg. ipv6 test failures: http://jitterbug.leto.net:3000/api​/build/parrot/b2e5b9f3f7f860056d0a​ed3b30d857857575867e/perl-v5.10.1
20:38 dukeleto jitterbug sure is good at finding bugs.
20:40 cotto_work dukeleto: great.  I'll continue focusing on $dayjob.
20:41 mj41 joined #parrot
20:41 benabik Found a way to cut out all that useless sleep and gain an extra 6 hours of hacking: http://www.dustincurtis.com/sleep.html
20:42 tadzik yeah, great idea. Now lie down and sleep for 20 minutes. Like, now
20:43 tadzik 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:44 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
20:47 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 benabik http://everything2.com/index.pl?​node=Everyman%20Sleep%20Schedule
20:47 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
20:47 tadzik hmm
20:47 sorear tadzik: waking up the same time every day helps, a lot
20:48 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
20:48 tadzik sorear: well, my classes are in the morning once a week
20:48 sorear tadzik: switching from 10am wakeup to 6am wakeup, waking up to an alarm every day, fixed my going to sleep problems
20:48 tadzik int eresting;
20:50 fperrad left #parrot
20:51 tadzik alright, I'm trying 7am tomorrow
20:53 tadzik 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:54 tadzik but damn. I got up at 8, on saturday. 8 on sunday. 8 on monday. Then I didn't get to sleep
20:54 tadzik maybe I regressed to much refactoring isn't sufficient anymore? :)
20:54 tadzik s/to/so/
20:55 benabik tadzik: It takes two to four weeks for your body to really adjust to a change in sleep habits.
20:56 benabik (IIRC, IANAD)
20:56 tadzik oh
21:07 bacek joined #parrot
21:19 ambs left #parrot
21:23 rohit_nsit08 left #parrot
21:29 lucian left #parrot
21:46 jsut joined #parrot
21:48 mtk left #parrot
21:50 soh_cah_toa joined #parrot
21:51 jsut_ left #parrot
21:55 mtk joined #parrot
22:06 hercynium left #parrot
22:15 mj41 left #parrot
22:26 dalek nqp: 05bf809 | jonathan++ | src/pmc/sixmodelobject.pmc:
22:26 dalek nqp: Make get_iter overridable.
22:26 dalek nqp: review: https://github.com/perl6/nqp/commit/05bf809aaa
22:38 silug joined #parrot
23:02 alester left #parrot
23:05 dalek lalrskate: 9cdf3fe | tcurtis++ | examples/ (2 files):
23:05 dalek lalrskate: Rename the prettyprint example
23:05 dalek lalrskate: review: https://github.com/ekiru/l​alrskate/commit/9cdf3fe5c3
23:05 dalek lalrskate: 25095d9 | tcurtis++ | examples/addition.winxed:
23:05 dalek lalrskate: Use Winxed's new, instead of pirop.
23:05 dalek lalrskate: review: https://github.com/ekiru/l​alrskate/commit/25095d9fff
23:05 dalek lalrskate: 16d801d | tcurtis++ | examples/practical-translators-g-0.winxed:
23:05 dalek lalrskate: Add an example of a LR(0) grammar from "Practical Translators for LR(k) Languages".
23:05 dalek lalrskate: review: https://github.com/ekiru/l​alrskate/commit/16d801d1af
23:17 dalek TT #2121 created by soh_cah_toa++: Mistakes in lib/Parrot/Test.pm Perldoc
23:17 dalek TT #2121: http://trac.parrot.org/parrot/ticket/2121
23:18 dukeleto soh_cah_toa: if you send that patch as a pull request, I can merge button it :)
23:21 whiteknight joined #parrot
23:26 dalek parrot: 1e3da70 | dukeleto++ | .gitignore:
23:26 dalek parrot: Fix a bug in our .gitignore that incorrectly tried to ignore vim swap files
23:26 dalek parrot: review: https://github.com/parrot/parrot/commit/1e3da70297
23:43 soh_cah_toa dukeleto: how can i do that w/o including my gsoc work that's on my branch?
23:46 dukeleto soh_cah_toa: you should be working on seperate branches
23:46 dukeleto soh_cah_toa: gist/nopaste the output of "git status -u"
23:47 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
23:47 dukeleto soh_cah_toa: branches are inside of a repo
23:47 soh_cah_toa dukeleto: ok
23:50 soh_cah_toa dukeleto: so how do i do this then? do i make a temporary branch from soh-cah-toa/parrot for tt2121?
23:51 soh_cah_toa dukeleto: actually, let me nopaste my remotes and branches
23:52 nopaste "soh_cah_toa" at 192.168.1.3 pasted "My Messed Up Environment" (9 lines) at http://nopaste.snit.ch/47549

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

Parrot | source cross referenced