Parrot 3.4.0 released | parrot.org | Log: irclog.perlgeek.de/parrot/today
Set by moderator on 17 May 2011.
whiteknight you lose a certain amount of speed because you lose cross-module static function bindings, but you gain the ability to compile on mem-constrained machines 00:00
that's a personal preference. NotFound is in charge
dalek rrot: a95f8c1 | Whiteknight++ | include/parrot/parrot.h:
update comment in parrot.h to be more accurate. In the future parrot.h might not be required for extensions, but right now it is required because extend.h is so anemic
00:01
lucian whiteknight: i think precompiled pbcs might be a better choice 00:02
whiteknight thats what rosella does. Each file is compiled down to .pbc and combined with pbc_merge 00:03
and for releases, I compile all the files down to .pir and cat them together
lucian i have a suspicion the GC is also doing evil things on ARM 00:04
whiteknight very possible
lucian hmm. not sure i can sell my x86 laptop anymore 00:06
i was hoping to do all parrot work on this arm one
whiteknight sort with .sort BUILTIN - 0.064494s - %100.000000 (%0.000000 diff) 00:07
sort with Rosella Query - 0.044705s - %69.316506 (%-30.683494 diff)
I love when a prediction holds true 00:08
lucian whiteknight: that looks fun 00:10
what kind is each?
whiteknight they're both quicksort 00:12
the array is a pathological case in reverse sort order
so [10000, 9999, 9998, ... ] 00:13
lucian right
so it's o(n*n)
whiteknight right
both are choosing the middle element as pivot
both are using the same comparison routine
the only real difference is that one is calling nested runloops, the other isn't 00:14
lucian don't know what those are
whiteknight for the best
lucian and the builtin is written in C?
whiteknight yes
lucian hmm
whiteknight and the Rosella version is Winxed
lucian i wonder what a jit would do
whiteknight it is proof positive that PIR->PIR is faster than C->PIR 00:15
lucian the PyPy folks have been seeing interesting results with pure-python code
whiteknight staying in one domain is best
lucian yes, of course
whiteknight yes, I look forward to hiting this with a JIT
cotto_work head home
lucian ot
it's part of why i'd like to see parrot written in not-c
whiteknight I want to use a version that switches to bubble sort for subarrays less than 6 elements long, or maybe even go to heapsort below a certain recusion depth 00:16
lucian something as low-level as C, but on the other side of the stack
whiteknight both should help
lucian why bubble? that's sort of horrible even then
i'd expect insertion/selection to beat it every time
timsort might be interesting to write 00:17
whiteknight bubble has great coefficients. If we keep the subarray size small it wins
lucian hmm
whiteknight Microsoft's implementation of qsort from libc switches to bubblesort for subarrays smaller than 6 objects, and they saw a big performance boost for most large workloads
lucian i see
whiteknight plus, I have a benchmarking framework now, so I can test to see if my crazy theories hold water 00:18
lucian i find en.wikipedia.org/wiki/Timsort a little funny
00:18 soh_cah_toa joined
lucian yes, a bench framework is great 00:19
profiler might be even better
whiteknight yes 00:20
I keep looking at Introsort and Smoothsort
Introsort is basically quicksort minus pathologic behaviors, and Smoothsort is black magic that nobody understands
lucian smoothsort i once delved in, don't remember if i understood it or not 00:21
i also keep thinking that there's a ton of code out there written in java 00:22
whiteknight Timsort does look intersting
lucian it's a bit sad
yes, it is
whiteknight N = 100000 00:23
sort with .sort BUILTIN - 12.228088s - %100.000000 (%0.000000 diff)
sort with Rosella Query - 8.108769s - %66.312648 (%-33.687352 diff)
I love this thing
lucian heh 00:24
it is pretty cool. and not quite so surprising 00:27
i'm no longer surprised at all when i see less native code beating more native code
whiteknight considering that Parrot doesn't have a JIT and doesn't even have a "high performance" op dispatcher, this is interesting 00:28
I'm not running an optimized Parrot now
so that might mean something
lucian hmm, yes
although even so, it shouldn't mean that much
whiteknight they both should get optimized. It depends how much each is 00:29
I'll try now
the builtin version looks reasonably efficient
lucian you might try to profile parrot while running each 00:30
if the c-pir boundary is very slow to cross, that should be seen 00:31
pmichaud whiteknight: just a note that Rakudo uses the built-in sort method on RPA. 00:36
(the RPA only contains integers) 00:37
but it does always use a custom comparison routine 00:38
whiteknight pmichaud: Use my version, save 30% 00:39
it just won't be a method
pmichaud well, we're trying to use less PIR, not more :)
whiteknight I'm just saying, if you want a faster sort, Parrot's current version is not the best 00:40
pmichaud but yes, I could put something in as a cheat and see if it's faster for us
whiteknight I don't know if an NQP version would be faster if all the variables were autovivified and lexicallized, but it's possible
pmichaud might be faster in the new nqp where lots of things aren't lexicalized 00:41
00:41 davidfetter left
whiteknight results with an optimized parrot: 00:41
N = 100000
sort with .sort BUILTIN - 4.623765s - %100.000000 (%0.000000 diff)
sort with Rosella Query - 3.183849s - %68.858362 (%-31.141638 diff)
so both are about 1/3 as expensive as unoptimized parrot, but the new version is still a clear winner 00:42
lucian whiteknight: i'm tempted to compare it with a different runtime, but i know the results will be meaningless
whiteknight lucian: I'm sorting a ResizablePMCArray, not an integer array 00:43
I'm sure if I did native ints that it would be faster
actually....
pmichaud I couldn't use native ints for some reason.
cotto ~~
whiteknight no, nevermind. My sort routine uses pmcs internally, using an int array right now would do a lot of unnecessary boxing/unboxing 00:44
pmichaud bah, where can I browse the source?
okay, found the source -- where's the sort function? 00:46
whiteknight src/util.c
Parrot_util_quicksort
pmichaud no, I mean for Rosella
I know where the Parrot sort is. :-/
I assume that's what you meant by "use my version" :-) 00:47
lucian whiteknight: hmm, think parrot's sort is just really, really bad
in python, the same thing takes a couple of miliseconds 00:48
whiteknight: but of course, this is python's timsort vs parrot's quicksort 00:49
pmichaud seems hard to fathom that a recursive quicksort in PIR could be faster than Parrot's builtin sort. 00:50
00:53 theory left
whiteknight pmichaud: nested runloops are performance kilers 00:58
killers
I don't know if you saw my benchmarks a few days ago to that effect 00:59
I was wrong, the RIA version of the sort is negligibly slower 01:00
so that's not an issue
dalek sella: 9956192 | Whiteknight++ | src/query/Provider.winxed:
fix conflict
01:01
sella: 92a759d | Whiteknight++ | src/unstable/file/Constants.winxed:
Add missing Constants file
sella: 40c5d10 | Whiteknight++ | src/unstable/benchmark/Result.winxed:
Add missing Result file
sella: d61dfba | Whiteknight++ | .gitignore:
Update .gitignore to know about .pasm files
sella: 4d45227 | Whiteknight++ | src/winxed/Distutils.bootstrap.pir:
update bootstrap distutils library to handle constants files
sella: ba88049 | Whiteknight++ | benchmarks/query/sort.winxed:
Add in the sort benchmark I've been using
01:03 lucian left 01:06 lucian joined 01:26 bubaflub left
cotto dukeleto, ping 01:50
benabik whiteknight: Does your sort still win without a custom comparison function?
whiteknight benabik: it only wins with a custom comparison 01:51
if we use the built-in, pure-C comparisons, I lose by like 400%
benabik whiteknight: Well that's "good". At least it's just the runloop killing us. 01:54
ingy sb end 01:55
cotto """"""good""""""
ingy O HAI o/
cotto hi ingy
dalek sella: 5881809 | Whiteknight++ | src/unstable/file/directory/Iterator.winxed:
remove directory iterators. We will use Walk/visitors instead
01:58
sella: 4cba2b4 | Whiteknight++ | s (3 files):
Remove Walker, move the walk code into the Directory namespace
sella: 81c43dc | Whiteknight++ | src/unstable/file/ (3 files):
FileList -> List. A few other fixes
01:59 whiteknight left
bacek_at_work ~~ 02:01
benabik, ping.
benabik bacek_at_work: pong. 02:03
bacek_at_work benabik, how is you gsoc project going?
benabik bacek_at_work: Pretty good, 02:04
bacek_at_work Sorry, I was quite busy with RL in past few days.
benabik, ok. Good news :)
benabik Bah. Stupid phone.
bacek_at_work: I have all of PAST building from NQP, with liberal use of Q:PIR in the compiler
bacek_at_work benabik, yeah, Compiler is a quite big beast. 02:05
benabik bacek_at_work: Actually hit a "fun" problem where the code to handle inline nodes was mangling itself. 02:06
bacek_at_work benabik, ouch. How that?
dalek rrot/leto/embed_grant: 3dc8249 | dukeleto++ | t/src/extend_vtable.t:
[t] Parrot_PMC_is_equal_string
02:07
benabik bacek_at_work: It replaced the '%r' string constant with the register.
pmichaud whiteknight++ # yes, a sort written in PIR is much faster than the built-in C sort 02:08
bacek_at_work benabik, committed and pushed?
pmichaud (when calling to a custom comparison function)
bacek_at_work pmichaud, "runloops"?
pmichaud bacek_at_work: indeed.
02:08 lucian left
benabik bacek_at_work: Could explain better if I wasn't hamper by tiny keyboard (not at home) 02:08
bacek_at_work pmichaud, it's kind of "expected"...
benabik bacek_at_work: Yes, to branch in my fork.
pmichaud bacek_at_work: I wonder how many other places we cross that boundary, though. 02:09
bacek_at_work benabik, no worries. When is the best time to catch you?
pmichaud, "a lot". Almost all Object's methods for example
pmichaud ow ow ow 02:10
and it's "expected" there also? as in, there aren't any plans to fix this? ;-)
I suppose all vtable overrides experience a similar problem? 02:11
benabik bacek_at_work: Not sure when I'll be home tonight. Tomorrow is pretty open (AFAIK)
bacek_at_work pmichaud, I suspect so. 02:17
pmichaud looks like yes for vtable overrides
bacek_at_work benabik, ok. Let's try to catch up tomorrow. Can be either morning of evening in SYD timezone 02:18
aloha, clock?
aloha bacek_at_work: LAX: Thu, 19:18 PDT / CHI: Thu, 21:18 CDT / NYC: Thu, 22:18 EDT / UTC: Fri, 02:18 UTC / LON: Fri, 03:18 BST / BER: Fri, 04:18 CEST / TOK: Fri, 11:18 JST / SYD: Fri, 12:18 EST
bacek_at_work benabik, ^^^ 02:19
pmichaud adding a :vtable('cmp') to my custom string class causes the quicksort to take 260% more time.
benabik bacek_at_work: I'm NYC. You're +14 from me... Math is harder after a couple beers 02:20
pmichaud (.61 seconds versus 1.62 seconds)
bacek_at_work benabik, get more beers and don't worry till morning :)
pmichaud, whiteknight++ described this in his blog.
pmichaud bacek_at_work: yes, I'm just verifying it for myself.
and quantifying it
and figuring out what that implies for rakudo 02:21
bacek_at_work pmichaud, whiteknight.github.com/2011/05/10/t...rides.html
pmichaud, "very huge performance impact"
pmichaud I wonder how far I can get by simply disabling most of rakudo's vtable overrides 02:23
will try that in a bit
anyway, afk, walk
benabik bacek_at_work: My tomorrow evening is your tomorrow morning, ne? I should be able to keep my laptop nearby then. I think my even/your mornings will be best in general. Your evenings are too early morning for me.
pmichaud thanks for the pointer to the article -- hadn't seen it yet
bacek_at_work benabik, ok :)
pmichaud (it's in my reading queue... but that's been pretty full lately)
bacek_at_work pmichaud, sounds familiar... 02:24
benabik bacek_at_work: Yeah. I tend to wake up 9ish and be useful around 10, so unless your a night owl that's a bad plan. 02:25
dalek rrot/leto/embed_grant: 8923e21 | dukeleto++ | t/src/extend_vtable.t:
[t] Parrot_PMC_i_floor_divide
02:26
rrot/leto/embed_grant: f69fe31 | dukeleto++ | t/src/extend_vtable.t:
[t] Parrot_PMC_i_floor_divide_float
rrot/leto/embed_grant: 028299b | dukeleto++ | t/src/extend_vtable.t:
[t] Parrot_PMC_i_divide_int
rrot/leto/embed_grant: 1cbdea9 | dukeleto++ | t/src/extend_vtable.t:
[t] Parrot_PMC_i_divide_float
rrot/leto/embed_grant: d6726f8 | dukeleto++ | t/src/extend_vtable.t:
Fix the Parrot_PMC_is_equal_string test
rrot/pmc_mark: e8c864b | dukeleto++ | t/src/extend_vtable.t:
Add a failing test for Parrot_PMC_mark

This test coredumps Parrot, hard.
02:27
02:37 tcurtis_ is now known as tcurtis
atrodo article.gmane.org/gmane.comp.lang.l...eral/75426 02:47
bacek_at_work dukeleto, Parrot_PMC_mark should be removed. For the same reason as VTABLE_destroy. It's GC internal functions. 03:11
03:35 theory joined 04:28 ShaneC joined 04:33 birdwindupbird joined 04:39 soh_cah_toa left 04:51 mtk left 04:59 mtk joined 05:28 preflex left
cotto dukeleto, you'll like this I think 05:29
dalek rrot/m0-prototype: a54b74c | cotto++ | t/m0/ (5 files):
give some m0 test files better names
rrot/m0-prototype: 3ff50b3 | cotto++ | src/m0/m0_assembler.pl:
refactor the m0 assembler to make better error reporting possible
rrot/m0-prototype: bad3451 | cotto++ | t/m0/m0_assembler.t:
make m0 assembler tests also grab stderr, improve test names
rrot/m0-prototype: 3253241 | cotto++ | src/m0/m0_assembler.pl:
clean up error messages, fix version parsing bug - all tests pass!
05:30 preflex joined
dalek rrot/m0-prototype: b05c77c | cotto++ | / (2 files):
fix variables parsing bug, untodo a passing test
05:35
cotto It's hard to choose between sleeping and implementing labels.
I'll do both.
05:44 fperrad joined 05:52 ShaneC left
dukeleto cotto++ # m0 awesomesauce 05:53
bacek_at_work: works for me. 05:54
atrodo: that is quite an interesting luaJIT link. Very nice ascii diagrams 05:57
bacek_at_work: what about Parrot_PMC_inspect and Parrot_PMC_morph ? Should those be exported still? 06:01
cotto dukeleto, thanks 06:02
dalek rrot/m0-prototype: 710b1e3 | cotto++ | / (4 files):
add basic label-awareness to the m0 assembler

This only allows labels to be parsed as location markers, not used in ops.
cotto pretty good for sleepcoding
making labels usable will be a bit more tricky 06:03
dukeleto, it'd be awesome if you could whip up a test to run all files in t/m0/ops
I think they should all output tap
if not, I'll make them
dukeleto cotto: sure. 06:04
cotto: also, take a look at www.reddit.com/r/programming/commen...64/c0lrus0 (if you haven't). There is some very interesting stuff there that is relevant to M0 and parrot
cotto: which was linked to from the link atrodo++ pasted: article.gmane.org/gmane.comp.lang.l...eral/75426 06:05
cotto I did see that. The unfortunate implication is that we need to either write x86 and x86_64 code or be slower than necessary. 06:06
dukeleto cotto: meh. We can pick and choose the lessons we want to learn :)
cotto though it'll be easier to write a super-optimized interp for M0
dukeleto cotto: someone could build an M0 compiler that targetted x86 asm, if they really wanted
cotto yup 06:07
dukeleto cotto: i just want to make sure we are designing M0 in such a way that the tricks that luaJIT are doing are possible
sorear cotto: any solution that does not involve custom hardware and $1M in mask fabrication costs is slower than necessesary
tradeoffs are an inescapable part of what we're doing 06:08
dukeleto cotto: parrot has always cared more about portability than speed. I think M0 is upholding that conviction.
06:09 theory left
cotto dukeleto, yes. Otherwise we wouldn't have ripped out the jit. 06:09
dukeleto, is there a better spelling for [a-zA-Z][a-zA-Z0-9_] ? 06:10
dukeleto cotto: bacek++ says that Parrot_PMC_mark should be removed from our public api, in the same matter that Parrot_PMC_destroy just was
cotto dukeleto, I don't know why we thought it was a good idea to expose that in the first place. 06:11
+1
dukeleto cotto: [A-z] ~ [a-zA-z]
cotto: it leaked
cotto: our extend_vtable code is set up to export anything that is not explicitly disallowed 06:12
cotto: i guess i should have used ~~
sorear cotto: <.ident>?
cotto sorear, in perl 5?
dukeleto there may be something like that in Perl 5
cotto that'd be most welcome
sorear cotto: [[:alpha:]]\\w+ 06:13
dukeleto cotto: that regex is very similar to what is a valid perl 5 variable name
cotto sorear, wfm
sorear++
dukeleto cotto: _mark never worked in a way that anybody would want. I don't think it needs a deprecation. But I think it would be nice to list something in api.yaml 06:14
sorear _mark is a critical part of the extending API 06:15
if you're writing dynpmcs, _mark is critical, otherwise it's useless
(barring corner-ish cases like 6model)
cotto sorear, this is the embedding api, right? For extend, it's definitely important for the reason sorear mentioned. 06:18
dukeleto sorear: do you know of a use of Parrot_PMC_mark in any HLL ?
dukeleto needs to be able to ack all the source of all HLL's 06:19
sorear dukeleto: every HLL I know of with dynpmcs requires either Parrot_PMC_mark or VTABLE_mark
dukeleto Rakudo does not use Parrot_PMC_mark
sorear AFAIK, if you have "PMC *foo" in the attributes of a dynpmc, you *need* to call one or the other from your "VTABLE mark() {' 06:20
mm, Rakudo uses Parrot_gc_mark_PMC_alive 06:21
bacek_at_work sorear, it's within inside parrot. Not from extend/embed API 06:48
dalek rrot: cd1edef | dukeleto++ | / (3 files):
Don't export Parrot_PMC_mark
06:55
cotto The m0 interp can now run an infinite loop. 07:23
sorear \\o/ 07:24
07:25 mj41 joined
dalek rrot/m0-prototype: f679a3a | cotto++ | src/m0/m0_assembler.pl:
add label support to goto and goto_if in the most hacky way possible
07:27
rrot/m0-prototype: fa5ad1c | cotto++ | src/m0/m0_assembler.pl:
make goto target calculations be less broken
rrot/m0-prototype: 9a0b7d6 | cotto++ | src/m0/m0_assembler.pl:
fix thinko in goto_if processing
rrot/m0-prototype: f36a8db | cotto++ | src/m0/m0_interp.pl:
make goto* use immediate values for calculating target address

M0 can now run an infinite loop! Try it at home! perl src/m0/m0_assembler.pl t/m0/ops/m0_labels_with_goto.m0 perl src/m0/m0_interp.pl t/m0/ops/m0_labels_with_goto.m0b
cotto I'm having trouble spelling "debugger", so I should probably goto sleep. 07:28
'night
msg dukeleto If finite loops aren't good enough for you, take a look at github.com/parrot/parrot/commit/f36a8dbb49 . 07:30
aloha OK. I'll deliver the message.
dalek rrot: 5dd8c54 | mikehh++ | MANIFEST.SKIP:
re-generate MANIFEST.SKIP
07:59
mikehh still getting intermittent failures with t/pmc/threads.t - Failed test: 9 - Segmentation fault in testf (PASSes on re-run) 08:44
08:54 daniel-s joined
daniel-s hello 08:54
is there a text editor with syntax highlighting for pir?
09:00 daniel-s left 09:01 daniel-s joined
tadzik vim, emacs 09:12
I think Parrot is shipping some syntax files
10:16 daniel-s_ joined 10:20 daniel-s left 10:44 gbacon joined 11:00 darbelo left 11:23 contingencyplan left 11:25 dodathome joined 11:55 darbelo joined 12:01 darbelo left 12:07 darbelo joined 12:08 whiteknight joined
whiteknight good morning, #parrot 12:17
12:33 birdwindupbird left 12:55 ambs joined 13:16 bubaflub joined 13:34 JimmyZ joined, bacek left 13:58 daniel-s_ left
whiteknight extremely interesting read about performance of high-level languages vs assembly: www.seas.gwu.edu/~adagroup/sigada-w...awlis.html 14:07
14:21 ambs left
dukeleto ~~ 14:42
14:52 theory joined
cotto ~~ 14:53
14:57 hercynium joined 15:12 davidfetter joined 15:13 davidfetter_ joined
dalek sella: b51affe | Whiteknight++ | README.md:
update README with the current list of stable libraries. Remove the list of unstable libraries because it's too variable
15:13
dukeleto whiteknight: good read 15:14
whiteknight yeah, it goes along with something I've always said: A good compiler can beat a hand-optimizing assembly coder any day 15:15
dukeleto whiteknight: definitely. It is a cat and mouse game.
dalek sella: 80f5c98 | Whiteknight++ | setup.winxed:
fix filename which was renamed late last night so that we build
15:17
bubaflub ~
15:18 davidfetter left, davidfetter_ is now known as davidfetter 15:20 theory left
dukeleto Image analysis buffs may be interested in this: www.kaggle.com/c/mdm 15:21
cotto: what exactly is your question about CPS+lexicals? 15:25
15:32 JimmyZ__ joined
davidfetter dukeleto, pretty cool :) 15:33
dukeleto, so i just had another crazy idea 15:34
15:34 JimmyZ left 15:35 JimmyZ__ is now known as JimmyZ
davidfetter they just went and sold the first quantum computer recently 15:35
so i'm thinking that damien's idea behind Quantum::Superpositions could get some extensions 15:36
especially in postgresql's query planner ;)
dukeleto davidfetter: could be fun 15:42
cotto_work ~~ 15:44
dukeleto: you looking at my gist?
dukeleto cotto_work: you know it
Rubinius is doing some very interesting community organizing stuff: rubini.us/2011/05/26/rubinius-rewards/ 15:45
davidfetter yeah :) 15:46
15:46 bluescreen joined 15:48 JimmyZ left
cotto_work dukeleto: that's a question I need to think carefully about how to articulate/ 15:50
.
15:54 mj41 left
dukeleto cotto_work: sounds good. My question is to help you articulate :) 15:57
15:59 theory joined
whiteknight www.phpsadness.com/ 16:42
benabik whiteknight: Thanks. Now I have a reference to point to when I say I hate PHP. 16:45
cotto_work whiteknight: nice 16:46
dukeleto Moose is doing very cool stuff with their "deprecation data": 16:50
Moose's conflict checking is more robust and useful
There are two parts to this. The most useful one right now is that Moose will ship with a moose-outdated script, which can be run at any point to list the modules which are installed that conflict with the installed version of Moose. After upgrading Moose, running moose-outdated | cpanm should be sufficient to ensure that all of the Moose extensions you use will continue to work.
from search.cpan.org/~flora/Moose-2.0007.../Delta.pod
that is pretty damn shiny.
17:01 dodathome left
dalek sella: 044b525 | Whiteknight++ | t/harness:
Add t/string to the harness, so we actually run those tests
17:06
sella: cf22acb | Whiteknight++ | src/unstable/file/File.winxed:
fix File.exists method and condense open methods. The File class passes most quick tests I throw at it
17:07
sella: 913714a | Whiteknight++ | src/unstable/file/ (2 files):
Add quick get_string methods to File and Directory
17:08 darbelo left 17:27 ambs joined 17:36 darbelo joined 18:01 ambs left 18:17 contingencyplan joined 18:24 dmalcolm joined
baest 9 18:33
whoops, sorry
davidfetter baest, cat on keyboard? 18:35
baest davidfetter: even worse, backspace too close to the enter key 18:36
davidfetter d'oh
baest :) 18:37
18:37 lucian joined
Coke_ can someone block recruiter.akshay@gmail.com on all the parrot lists? kthanksbye. 18:42
msg whiteknight - can someone block recruiter.akshay@gmail.com on all the parrot lists? thanks. 18:43
aloha OK. I'll deliver the message.
Coke_ msg kid51 - can someone block recruiter.akshay@gmail.com on all the parrot lists? thanks. 18:44
aloha OK. I'll deliver the message.
davidfetter recruiters are like used car salesmen
whiteknight are we getting email from him?
davidfetter ...only the salesmen actually put you in a car
whiteknight I haven't seen any mails from him. What list is he on?
Coke_ whiteknight: he's spamming parrot-dev 18:45
(perhaps it's just via googlegroups) 18:46
<parrot-dev.googlegroups.com> Filter messages from this mailing list
whiteknight I don't think I'm an admin on googlegroups 18:48
Coke_ ah. my gmail is. changing the moderation settings so new members are moderated until someone verifies they are not idiots. 18:49
whiteknight I'm not even a member
idiots--
Coke_ there. banned this guy. 18:50
whiteknight: what's your preferred email addy?
msg kid51 nevermind, it was via google groups, I banned him there. 18:51
aloha OK. I'll deliver the message.
Coke_ whiteknight: I can make you an owner there too. right now it's me & allison. 18:52
whiteknight If I may ask, since I've never used google groups for this before, why do we have this? 18:59
19:00 ambs joined
Coke_ some people prefer this method to interact with mailing lists. 19:01
gives us more visiblity.
whiteknight okay, fair enough 19:02
is it only parrot-dev on there, or more of our lists?
Coke_ good question; don't know. 19:06
I would imagine parrot-users might make sense there; directors or legal or anything like that would not.
whiteknight yeah 19:09
I'm thinking I would like to set up an email filter to block all emails to the parrot lists which contain the phrases "my sincere apologies", "next of kin", "business proposition", or "bank account" 19:24
I am sick and tired of these stupid nigerian prince bullshit emails
19:24 ShaneC joined
whiteknight I also think about replying to some of these emails: "Dear Mr. [X], You're a jerk. Sincerely, Andrew" 19:25
but then they would have my personal email address in addition to the list address 19:26
19:26 ShaneC left
whiteknight Also, I would block every email that contains the symbol "ļæ½" 19:27
"Seven million three hundred United States of American dollars only (7,300,000.00ļæ½)"
"Dear Mr. [X], 'ļæ½' is the symbol for Euro, not 'United States of American dollars'. What company did you say you work for again? I suspect you lied on your resume. Sincerely, Andrew" 19:28
"P.S. You're a jerk"
19:34 PacoLinux left
cotto_work I have "ļæ½" in my build path. 20:24
whiteknight do you really?
cotto_work perl Configure.pl --prefix=/usr/local/ļæ½/parrot
whiteknight really really really?
cotto, I formally accuse you of being a nigerian scammer 20:25
cotto_work no, but I'm tempted to try it now
benabik Colloquy really doesn't like whatever symbol y'all are using.
cotto_work euro symbol 20:26
benabik Don't boot me but keeps saying "[incompatible encoding]"
€?
20:28 whiteknight left
sorear irssi think's it's a reverse video @ 20:29
cotto_work actually, having a ridiculous path might be a good way to expose bugs
it kills pbc_to_exe 20:31
sorear does JimmyZ still do that thing where he tries to build Parrot under a Chinese path encoded with a non-UTF encoding
?
benabik Git had enough problems with spaces in paths that they changed all the tests to run inside "trash directory.t####"
20:34 PacoLinux joined 20:43 fperrad left 20:52 bluescreen left 20:57 benabik left
dalek rrot/leto/embed_grant: cd1edef | dukeleto++ | / (3 files):
Don't export Parrot_PMC_mark
21:00
rrot/leto/embed_grant: 5dd8c54 | mikehh++ | MANIFEST.SKIP:
re-generate MANIFEST.SKIP
rrot/leto/embed_grant: 048156b | dukeleto++ | / (5 files):
Merge branch 'master' into leto/embed_grant
rrot/leto/embed_grant: 983e276 | dukeleto++ | t/src/extend_vtable.t:
Remove antiquated comments
rrot/leto/embed_grant: d41c2da | dukeleto++ | t/src/extend_vtable.t:
[t] Fix Parrot_PMC_i_floor_divide test
rrot/leto/embed_grant: b2db6d4 | dukeleto++ | t/src/extend_vtable.t:
[t] Parrot_PMC_i_floor_divide_int
21:01
rrot/leto/embed_grant: 7289594 | dukeleto++ | t/src/extend_vtable.t:
[t] Parrot_PMC_modulus_int
rrot/leto/embed_grant: 2722766 | dukeleto++ | t/src/extend_vtable.t:
[t] Parrot_PMC_modulus_float
rrot/leto/embed_grant: 334b8d1 | dukeleto++ | t/src/extend_vtable.t:
[t] Parrot_PMC_i_modulus_float
rrot/leto/embed_grant: 2138979 | dukeleto++ | t/src/extend_vtable.t:
Correct our test plan
21:06 bluescreen joined 21:09 darbelo left, darbelo joined
dalek rrot/leto/embed_grant: 5ec95d9 | dukeleto++ | t/src/extend_vtable.t:
[t] Parrot_PMC_isa and Parrot_PMC_getprops
21:16
rrot/leto/embed_grant: d2b1bbe | dukeleto++ | t/src/extend_vtable.t:
[t] Parrot_PMC_init
rrot/leto/embed_grant: f2c946a | dukeleto++ | t/src/extend_vtable.t:
[t] Parrot_PMC_init_int
rrot/leto/embed_grant: 8082601 | dukeleto++ | t/src/extend_vtable.t:
[t] Parrot_PMC_name
rrot/leto/embed_grant: 80a277b | dukeleto++ | t/src/extend_vtable.t:
[t] Parrot_PMC_inspect
dukeleto oh, dalek. 21:25
dalek rrot/leto/embed_grant: bc4be52 | dukeleto++ | t/src/extend_vtable.t:
[t] Parrot_PMC_inspect_str
rrot/leto/embed_grant: e8495b8 | dukeleto++ | t/src/extend_vtable.t:
[t] Parrot_PMC_morph
21:26 ambs left
bubaflub evening dukeleto 21:29
21:32 bluescreen left
cotto_work dukeleto: no complaints from you. You're raking in the karma. 50,000 and you get a free coffee at local coffee joint. 21:33
dukeleto bubaflub: howdy
karma dukeleto
aloha dukeleto has karma of 710.
21:34 lucian left
dukeleto has a long way to go for that free coffee 21:37
dalek rrot/leto/embed_grant: 970a59e | dukeleto++ | t/src/extend_vtable.t:
[t] Parrot_PMC_isa_pmc
rrot/leto/embed_grant: 951c3d3 | dukeleto++ | t/src/extend_vtable.t:
[t] Parrot_PMC_init_pmc
rrot/leto/embed_grant: 9a2441c | dukeleto++ | t/src/extend_vtable.t:
[t] Parrot_PMC_set_pmc_keyed_str
dukeleto cotto_work: i am trying to finish my TPF grant so I can dedicate more time to M0 21:38
21:41 soh_cah_toa joined 21:45 Psyche^ joined
bubaflub dukeleto: what's the target coverage %? 21:48
21:50 darbelo left 21:51 Patterner left, Psyche^ is now known as Patterner
dukeleto bubaflub: 95% on extend_vtable. I am very close to 90%, currently 21:53
bubaflub: down to the really hard-to-test vtables
21:53 hercynium left
bubaflub dukeleto: doh 21:53
dalek rrot/leto/embed_grant: e42c748 | dukeleto++ | t/src/extend_vtable.t:
[t] Parrot_PMC_set_number_keyed_str
21:54
rrot/leto/embed_grant: edc217c | dukeleto++ | t/src/extend_vtable.t:
[t] Parrot_PMC_set_integer_keyed_str
dukeleto bubaflub: how is parrot-gmp coming along? 22:10
22:11 Coke_ left, Coke_ joined
bubaflub dukeleto: good. i plan to have my whole nci2def definition file ready by Saturday 22:21
dukeleto bubaflub: awesome 22:22
bubaflub: i recommend writing a few sentences of your weekly blog post throughout the week, so it doesn't seem like an onerous task 22:23
bubaflub: it is less work to do that, than to stop and think "what did I do in the last week" once a week
bubaflub dukeleto: ok. i've set aside Saturdays and Friday nights for major coding
dukeleto bubaflub: for me, anyway :)
bubaflub dukeleto: we actually do that type of thing at work - daily quick blog updates.
dukeleto: yesterday i did, today i did, tomorrow i'll do... 22:24
Coke_ www.groklaw.net/article.php?story=2...4120303815 groklaw article on CLAs.
dukeleto Coke++ # interesting read 22:27
dalek rrot/leto/embed_grant: c5e7208 | dukeleto++ | t/src/extend_vtable.t:
Correct our test plan
22:30
22:31 soh_cah_toa left 22:36 davidfetter left
dalek rrot/m0-prototype: d0f546f | cotto++ | src/m0/m0_assembler.pl:
fix label -> offset mapping

It turns out that m0_labels_with_goto isn't supposed to be an infinite loop. It still runs with errors, but now it's not an infinite loop.
22:56
23:07 kid51 joined 23:10 whiteknight joined
cotto_work hio whiteknight 23:11
whiteknight hello cotto_work
dukeleto cotto_work: i just sent an email to parrot-dev about Parrot_PMC_invoke 23:20
cotto_work: it returns a Parrot_Opcode*, and is the only Parrot_PMC* function that does this. Do you think this is on purpose?
whiteknight replied 23:27
cotto_work dukeleto: my first thought is to agree with whiteknight. 23:29
dukeleto cotto_work: which means?
cotto_work don't keep it 23:30
It's hard to say whether it's on purpose.
whiteknight If the Parrot_PMC_destroy case is any indication, I don't think a lot of thought went into this list 23:31
dukeleto whiteknight: yeah, i agree. It was autogenerated and not combed over.
whiteknight maybe what we need is to add a :dont_extend flag to src/vtable.tbl, and not create extending wrappers for those ones
instead of the hack I put together last night for Parrot_PMC_destroy
dukeleto whiteknight: and which I then hacked on more :) 23:32
cotto_work would a whitelist be better?
dukeleto does this need a deprecation? do I just rip it out?
cotto_work I'm learning toward ripping it out. 23:35
23:35 soh_cah_toa joined, contingencyplan left
cotto_work I don't think it'd be missed. 23:36
dukeleto hokey dokey 23:39
cotto_work hio soh_cah_toa 23:41
dalek rrot/leto/embed_grant: 9fe6f8e | dukeleto++ | t/src/extend_vtable.t:
Fix POD typo
rrot/leto/embed_grant: 20f41fb | dukeleto++ | t/src/extend_vtable.t:
[t] Parrot_PMC_(get|set)_attr_keyed
rrot/leto/embed_grant: 44a9634 | dukeleto++ | / (2 files):
Remove Parrot_PMC_invoke from the extend vtable API
soh_cah_toa cotto_work: hey
cotto_work Eliminate or reduce the rate of that branch misprediction, and you can almost close the performance gap between an interpreter and a jitter, and thus debunk one of the greatest virtual machine myths of all - the blind faith in the use of jitting as a performance accelerator. - www.emulators.com/docs/nx25_nostradamus.htm 23:51
kid51 ugly looking blog 23:53
23:54 benabik joined
benabik ~~ 23:54
bacek_at_work: ping 23:58
23:59 ligne joined