Camelia, the Perl 6 bug

IRC log for #parrot, 2010-08-16

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 Psyche^ joined #parrot
00:00 dalek rakudo: 73a7674 | masak++ | :
00:00 dalek rakudo:       <pre>m src/core/Buf.pm
00:00 dalek rakudo: </pre>
00:00 dalek rakudo:       <pre style='white-space:pre-wrap;width:81ex'>[Buf] added prefix/infix ~^, infix ~& and infix ~|</pre>
00:00 dalek rakudo:
00:00 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/7​3a76745a0de01b7361a75ac8347c516532f92aa
00:02 darbelo chromatic: Looks good to me. For after the release anyway.
00:02 chromatic Right.  Want to try that experimental opcode in a branch?
00:03 darbelo Sure. I still have some tweaks to unshared_buffers to make.
00:03 darbelo So, prbably tomorrow-ish
00:04 chromatic Sounds good.
00:05 darbelo Although anything that makes the rakudo build's memory usage less pathological will likely benefit that as well.
00:06 chromatic True.  I'm still of mixed feelings about getting rid of shared buffers.
00:06 dalek rakudo: bef86ee | masak++ | :
00:06 dalek rakudo:       <pre>m t/spectest.data
00:06 dalek rakudo: </pre>
00:06 dalek rakudo:       <pre style='white-space:pre-wrap;w​idth:81ex'>[t/spectest.data] added S03-operators/buf.t</pre>
00:06 dalek rakudo:
00:06 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/b​ef86ee3a3253a8840c077e5d1a089579949a58a
00:08 darbelo I'm experimenting with the tuning, right now. If I make compacting more aggressive I can build rakudo under 300mb of mem, but it'll take about hour.
00:10 chromatic How fast is your machine?
00:11 darbelo At the branch point, it builds in ~8 minutes, for comparison.
00:11 chromatic Ouch.
00:12 jnthn I'll take the extra memory usage over an hour long build. :-)
00:12 darbelo Yeah. Me too.
00:12 chromatic If that opcode works though....
00:13 jnthn Yes, that should result in a load less string headers.
00:13 darbelo jnthn: OTOH, kid51 can't build at all without some memory usage reductions, which is what made start experimenting along this line.
00:27 jsut joined #parrot
00:46 gbacon joined #parrot
00:52 dalek parrot: r48518 | darbelo++ | branches/unshared_buffers (67 files):
00:52 dalek parrot: Sync with trunk.
00:52 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48518/
01:13 theory joined #parrot
01:34 chromatic joined #parrot
01:35 Andy joined #parrot
01:46 kid51 joined #parrot
01:58 dalek parrot: r48519 | chromatic++ | branches/substr_eq_at:
01:58 dalek parrot: Created branch to experiment with substr_eq_at opcode
01:58 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48519/
02:05 tcurtis joined #parrot
02:10 Chandon joined #parrot
02:12 jimk joined #parrot
02:24 mj41 joined #parrot
02:31 dalek parrot: r48520 | darbelo++ | branches/unshared_buffers/​src/gc/alloc_resources.c:
02:31 dalek parrot: Typo fix.
02:31 purl hmmm... typo fix is in documentation (perlapi), not a comment
02:31 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48520/
02:40 luben good morning parrot
02:45 Andy proof please? http://gist.github.com/526305
02:48 janus joined #parrot
02:50 Andy Any comments?
02:50 purl Any comments is appriciated =) or punt!
02:51 * dafrito is reading :)
02:51 Andy kthx
02:52 tcurtis Looks good. No grammar- or typos that I notice.
02:54 dafrito Yeah, I don't see anything glaring
02:54 dafrito Perhaps this could read better? "if Perl 6 programmers wanted vim to support Perl 6, they had a perl6.vim file that got passed around"
02:54 Andy Reload, I updated that.
02:55 Andy I just edited the file
02:56 tcurtis wait... Perl has a "static" keyword now?
02:56 dafrito "because of updates of all the Perl-related support files" Should one of those 'of' be 'for'?
02:57 Andy eek, state
02:57 Andy STATE
02:57 Andy thanks.
02:59 TiMBuS i would like vim to detect filetype based on mimeinfo =/
02:59 TiMBuS all my perl 6 files are application/perl6
02:59 sorear What OS are you on?
02:59 dafrito Andy: You could also put a link for "Template Toolkit" if you want
02:59 TiMBuS ubuntu linux
02:59 Andy TiMBuS: How are you storing mimeinfo?
03:00 Andy http://perlbuzz.com/2010/08/​vim-73-supports-perl-6.html published
03:00 Andy thanks
03:03 TiMBuS er, im not sure of the specifics Andy. I used associgate to add the magic (in the past I modified a mime.magic file but i cant recall where it was stored...)
03:11 sorear you mean /etc/magic.mime?
03:12 TiMBuS nah, looks like it was /usr/share/mime
03:12 TiMBuS and associgate adds to /usr/local/share/mime
03:17 atrodo joined #parrot
04:26 dalek parrot: r48521 | chromatic++ | branches/substr_eq_at (7 files):
04:26 dalek parrot: [str] Added API to find substring in string.
04:26 dalek parrot: Parrot_str_compare_offset() looks for STRING b in STRING a at offset i.  This
04:26 dalek parrot: may help PCT require far fewer new STRING headers.
04:26 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48521/
04:26 dalek parrot: r48522 | chromatic++ | branches/substr_eq_at (5 files):
04:26 dalek parrot: [ops] Added substr_eq_at ISSI op for PCT.
04:26 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48522/
04:55 cotto msg khairul minor typo in the op instrumentation page: "If $get_raw is pass and is true"
04:55 purl Message for khairul stored.
04:58 dukeleto cotto: pong
05:00 cotto dukeleto, Does it matter if a student keeps working on a project after the pencils down date?
05:01 cotto i.e. would that just mean that all evaluation doesn't take the extra work into consideration?
05:02 chromatic Know any so-called professional programmers who always make their estimates?  me neither.
05:02 * cotto is surprised he was able to remember his question.
05:13 dukeleto cotto: yes, that is fine
05:13 cotto msg khairul The class instrumentation page should probably explain what a call sig is and where to find out more about it.
05:13 purl Message for khairul stored.
05:13 cotto dukeleto, great. Thanks.
05:14 dukeleto cotto: the final evalution should only take into account stuff done before the pencils down. We should encourage all students to keep working well after that :)
05:15 cotto It'll only really matter for the survey anyway.  There's very little my student could do at this point to avoid passing.
05:17 dukeleto cotto: sounds good
05:23 cotto msg khairul Other than those suggestions, the docs are looking good.  When you put your code on github, make sure the use guide goes with it.
05:23 purl Message for khairul stored.
05:27 jsut_ joined #parrot
06:05 uniejo joined #parrot
06:34 preflex joined #parrot
07:43 fperrad joined #parrot
08:18 luben chromatic, ping
08:19 chromatic pong
08:19 luben I have made experiments with hashes
08:19 luben added paged allocation for buckets
08:19 luben it is slower here
08:20 luben here is it: http://luben.spnet.net/gitweb/
08:20 chromatic I think we should address the indirection of our hashing functions before we make progress on optimizing our hashes.
08:21 luben the paged allocation branch is "single-paged"
08:21 chromatic Instead of function pointers for key/value hashing, set the type of a hash for the most common types and hard-code the comparison/hashing functions.
08:22 luben yes, this will give us better performace
08:22 chromatic There's too much overhead there so it dwarfs any improvements we make in allocation/reallocation/bucket distribution.
08:23 luben in the benchmaks for hashes, the ones that use C macros or C++ templates are fastest (they do not use any indirection)
08:23 chromatic This is one place where I wish we could use C++.
08:24 luben yes
08:24 luben I will be offline for 2 weeks - going on vacation. When I come back I will continue
08:25 chromatic Excellent, this would be good for 2.8.
08:25 luben yes
08:25 moritz luben++
08:25 luben from my branches "hash-iter-macros" is ready/tested
08:25 chromatic I'll apply it as soon as 2.7 comes out.
08:26 luben If somebody could clone it, because in 7-8 hours I will whitch off the PC here
08:27 luben Or I could atach a patch to the ticet
08:27 luben *ticket
08:27 chromatic A patch is the easiest.
08:28 chromatic must sleep now
08:28 chromatic thanks for your work
08:48 AndyA joined #parrot
09:43 gbacon joined #parrot
10:10 JimmyZ joined #parrot
10:45 aloha joined #parrot
10:56 lucian joined #parrot
11:42 NotFound joined #parrot
11:43 NotFound Hi
11:54 ruoso joined #parrot
12:08 jnthn I'm told Rakudo's core.pm compilation is nomming lots and lots of RAM again. Wonder if recent tuning has notched things a little too far along the RAM/CPU trade-off scale.
12:10 whiteknight joined #parrot
12:18 whiteknight good morning, #parrot
12:18 szabgab if I am not mistaken parrot also uses the public smolder server
12:18 szabgab if so, anyone knows what happened to it?
12:18 szabgab http://smolder.plusthree.com/   does not seem to respond
12:25 NotFound whiteknight: pon
12:25 NotFound g
12:29 elmex_ joined #parrot
13:11 allison joined #parrot
13:19 gbacon joined #parrot
13:27 Paul_the_Greek joined #parrot
13:27 Paul_the_Greek Hey ho!
13:28 Paul_the_Greek purl,messages
13:29 Paul_the_Greek ping cotto
13:32 dalek parrot: r48523 | coke++ | branches/substr_eq_at/src/ops/experimental.ops:
13:32 dalek parrot: Add a pod description for this opcode.
13:32 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48523/
13:34 whiteknight NotFound: how do I load a library in winxed? I can't find an example
13:39 Paul_the_Greek joined #parrot
13:39 Paul_the_Greek ping anyone
13:40 whiteknight ?
13:40 Paul_the_Greek Just checcking to see if I'm really connected.
13:41 whiteknight signs point to yes
13:41 Paul_the_Greek Downloaded XChat onto my wife's laptop. Flakey wifi connection here.
13:42 Paul_the_Greek whiteknight: Do you know why PMC attribute groups are allocated separately from other fixed-size blocks?
13:43 whiteknight how differently? I thought they used the fixed-size allocator?
13:54 Paul_the_Greek joined #parrot
13:54 Paul_the_Greek whiteknight: Are you still here?
13:56 Paul_the_Greek ping cotto
14:01 Paul_the_Greek ping anyone
14:01 moritz pong
14:01 Paul_the_Greek Hey moritz. Just trying to get this chat program to work. Got a flakey wifi connection.
14:03 bubaflub joined #parrot
14:04 Paul_the_Greek Hey bubaflub.
14:04 purl bubaflub is Bob Kuo, mailto:bobjkuo@gmail.com
14:04 bubaflub hello Paul_the_Greek
14:04 moritz purl is very noisy
14:05 Paul_the_Greek Yes, he is chatty.
14:08 Paul_the_Greek Memory management question, anyone?
14:09 moritz we need to improve it!
14:09 moritz that's how much I know about it :)
14:09 Paul_the_Greek I think I can speed up PMC attribute allocation.
14:12 Paul_the_Greek Logging off and back on ...
14:13 Paul_the_Greek joined #parrot
14:13 Paul_the_Greek Cool!
14:13 moritz Paul_the_Greek: btw you can also use the IRC logs at http://irclog.perlgeek.de/parrot/today for reading here if your connection is not stable
14:14 Paul_the_Greek I'll do that. I just don't want to pop off in the middle of conversations and annoy everyone.
14:16 Paul_the_Greek Be back later.
14:29 dalek rakudo: 2f18a49 | pmichaud++ | :
14:29 dalek rakudo:       <pre>m src/Perl6/Grammar.pm
14:29 dalek rakudo: </pre>
14:29 dalek rakudo:       <pre style='white-space:pre-wrap;width:81ex'>Fix precedence of numeric bitshift operators; fixes RT #77232 (masak++).</pre>
14:29 dalek rakudo:
14:29 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/2​f18a49ac82d19bb7e4de323134473f2456a0426
14:45 Andy joined #parrot
15:12 chromatic joined #parrot
15:17 pmichaud chromatic: just sent email about substr_eq_at
15:19 chromatic I'm reading it and trying to understand it before breakfast.
15:19 chromatic The "before breakfast" part may be a mistake.
15:28 pmichaud if I can help demystify it, let me know.  :)
15:30 pmichaud the key is that it's more like C's   strncmp than anything else.
15:30 pmichaud i.e., only compare up to n characters
15:30 pmichaud where 'n' is implied by the length of the token string argument (i.e., the one we're searching for)
15:30 chromatic What you want or what it's doing?
15:31 pmichaud what I want
15:31 pmichaud what it's doing seems to be more like strcmp with an offset
15:32 chromatic Right.
15:32 pmichaud perhaps a better way of phrasing what I want is:  strncmp with an offset
15:33 pmichaud in C, it'd be    strncmp(s1 + offset, s2, strlen(s2))
15:34 pmichaud and then for equality I'd look for zero as the return value
15:34 pmichaud if we want the number of characters to be compared to be explicit in the opcode, that'd be fine with me also
15:35 pmichaud i.e., it could be
15:35 Paul_the_Greek joined #parrot
15:35 pmichaud $I0 = strncmp $S0, $S1, offset, length
15:35 chromatic That's what the code does... supposedly.
15:35 pmichaud I don't think it honors length
15:36 chromatic ascii_compare does when the encodings are the same, as they are here.
15:36 Paul_the_Greek Memory management question?
15:36 chromatic go ahead, Paul_the_Greek.
15:37 Paul_the_Greek Why is there one set of fixed-size pools for PMC attributes and another set for everything else?
15:37 Paul_the_Greek Is it just for efficiency?
15:37 chromatic Good question.  That might have been the desire.
15:37 pmichaud in the branch, I'm getting
15:37 pmichaud $I0 = substr_eq_at "hello", "he", 0
15:37 pmichaud say $I0
15:37 pmichaud 1
15:38 pmichaud if substr_eq_at is returning cmp semantics, that should be zero.
15:38 Paul_the_Greek I think I might be able to speed up allocating PMC attributes.
15:39 pmichaud I *think* what it's doing is looking at the 'l' following the "he" and saying "oh, the first string is greater" and thus returning 1.
15:39 pmichaud i.e., it's not stopping the comparison after the first two chars.
15:39 chromatic The return value processing is wrong.
15:40 Paul_the_Greek If it returns -1/0/1, why is it called 'substr_eq'?
15:40 pmichaud Paul_the_Greek: noted, it should be 'cmp'
15:40 chromatic That... is a different problem.
15:41 chromatic I believe I've fixed the return value; I'm running the tests to make sure.
15:41 pmichaud chromatic: can you nopaste the diff?
15:42 nopaste "chromatic" at 192.168.1.3 pasted "pmichaud: the patch" (14 lines) at http://nopaste.snit.ch/22830
15:42 chromatic It's not completely right, but it passes your test cases.
15:43 pmichaud looking
15:44 Paul_the_Greek Why the compare ret_val < 0?
15:45 pmichaud I have the same question
15:45 pmichaud seems like one can more usefully do
15:45 Paul_the_Greek Does memcmp return something other than -1?
15:45 pmichaud return  memcmp(lhs->strstart + offset, rhs->strstart, rhs->strlen)
15:45 Paul_the_Greek Yeah.
15:46 chromatic It was the cheapest, easiest patch.
15:47 Paul_the_Greek Why not just 'return retval;' ?
15:47 pmichaud Paul_the_Greek: because min_len will be wrong in that case
15:47 chromatic I was too lazy to type man memcmp.
15:48 pmichaud there are a few edge cases that this code doesn't quite handle
15:48 chromatic Right.
15:48 Paul_the_Greek But if the only negative value of retval is -1, then the comparison is pointless.
15:49 pmichaud oh oh oh oh
15:49 Paul_the_Greek Maybe I don't have memcmp correct in my mind.
15:49 pmichaud this whole approach isn't going to quite work
15:49 chromatic Right.
15:49 pmichaud the ascii_compare function itself doesn't have a usable 'n' limit
15:49 chromatic I'm not sure it needs one.
15:50 chromatic I've been using the size of the smaller string.
15:50 pmichaud that doesn't quite work
15:50 pmichaud because     $I0 = substr_eq_at 'ab', 'abc', 0
15:50 pmichaud shouldn't show them as being equal
15:50 tcurtis joined #parrot
15:50 pmichaud while
15:50 pmichaud $I0 = substr_eq_at 'abc', 'ab', 0
15:50 pmichaud should
15:51 pmichaud be "equal"
15:51 chromatic Ah, right.
15:51 chromatic Reusing ascii_compare isn't going to work so well here.
15:51 pmichaud right
15:52 pmichaud there really needs to be a strncmp equivalent
15:52 chromatic pmichaud, if you commit these test cases (and the interface you prefer for this), I'll make them pass.
15:52 Paul_the_Greek Is that how the regular compare works?
15:52 pmichaud chromatic: would an opcode name of   "strncmp_at"  seem to be appropriate?
15:53 chromatic Fine with me, if it works for PCT.
15:53 Paul_the_Greek Once you delimiter the substring, then the compare should work the same.
15:53 moritz why the 'n' ?
15:53 pmichaud moritz: because I need to limit the length of the comparison
15:53 pmichaud look, here's the use case
15:53 moritz pmichaud: ok, I thought the limit was implicit
15:53 pmichaud src = "given xyz { when 1 { ... } }"
15:54 moritz I know the use case, yes
15:54 pmichaud moritz: oh.  I'm thinking maybe it's more general to have the caller supply 'n' instead of it being inferred
15:54 moritz wfm
15:54 Paul_the_Greek Optional n, as in substr, right?
15:54 pmichaud for the case of comparing against a constant string, the length is statically known at compiletime
15:54 pmichaud i.e., instead of
15:55 pmichaud $I0 = strncmp_at $S0, $S1, offset    # length is implied as length($S1)
15:55 pmichaud I think
15:55 pmichaud $I0 = strncmp_at $S0, "when", offset, 4     # length is explicit
15:55 Paul_the_Greek Are you using a substring of $1 or $2?
15:56 pmichaud $1
15:56 Paul_the_Greek Then shouldn't the offset and length apply to $1?
15:56 pmichaud Paul_the_Greek: yes
15:56 pmichaud (although the length should probably apply to both)
15:56 pmichaud Paul_the_Greek: if you're suggesting a different order of arguments, I'd be agreeable
15:56 Paul_the_Greek So if the length is missing, it's the tail of $1 starting at offset.
15:56 pmichaud no
15:57 pmichaud essentially I need an opcode that does the same as the following in C:
15:57 pmichaud i = strncmp(s1 + offset, s2, n)
15:57 Paul_the_Greek Okay, so it's not a substring of $1, just a tail of $1.
15:57 pmichaud one can look at it that way, yes
15:58 pmichaud one can also look at it as being a substring of n characters of $1 and end up with the same results
15:58 Paul_the_Greek You're sure you don't want strcmp(substr($1, offset, n), $2) ?
15:58 pmichaud we're just trying to avoid creating the separate substring
15:58 pmichaud strcmp(substr($1, offset, n), $2)  is what we do now.
15:58 Paul_the_Greek Not if *$1 < n
15:58 Paul_the_Greek Sorry, *$2 < n
15:59 Paul_the_Greek Oh, this is in addition to that. Got it.
15:59 pmichaud right
15:59 pmichaud currently to do a token comparison, we generate
15:59 pmichaud $S1 = substr src, offset, n
15:59 pmichaud $I0 = iseq $S1, "when"
16:00 NotFound whiteknight: the load_bytecode and loadlib predefined functions of winxed are equivallente of the opcodes with the same name.
16:00 pmichaud but the problem with that approach is that we end up creating a new substring for every token comparison
16:00 pmichaud actually, I'll be a bit more precise
16:00 pmichaud currently we generate
16:00 pmichaud $S1 = substr src, offset, 4
16:00 Paul_the_Greek So what is wrong with the existing op code?
16:01 pmichaud $I0 = iseq $S1, "when"
16:01 Paul_the_Greek This one: strcmp(substr($1, offset, n), $2)  is what we do now.
16:01 pmichaud that's not an opcode.
16:01 pmichaud that's the equivalent C semantic
16:01 Paul_the_Greek Sorry, now I understand.
16:01 pmichaud the opcodes are what I just wrote -- substr followed by iseq
16:02 Paul_the_Greek Why not make the new opcode do that?
16:02 pmichaud Paul_the_Greek: that's what we're doing
16:02 pmichaud I'm proposing instead:
16:02 pmichaud $I0 = strncmp_at src, "when", offset, 4
16:03 pmichaud with the difference that $I0 returns -1/0/+1  instead of just 0/1
16:03 Paul_the_Greek We're going in circles. Does $4 specify the length of the substring of src, or the length of the comparison?
16:03 pmichaud in this case I'd let $4 be the length of the comparison. (more)
16:04 chromatic The length of the comparison, because the op knows the lengths of both strings.
16:04 pmichaud for my use cases, it doesn't matter though, since $4 would always be the known length of $2
16:04 pmichaud but for a more general-purpose operator, having it follow strncmp semantics  ('n' is the length of the comparison) seems more useful.
16:04 Paul_the_Greek But might it be more generally useful if $4 was the length of the substring?
16:05 pmichaud Paul_the_Greek: I doubt it.
16:05 pmichaud and I'm not sure what "length of the substring" means here.
16:05 Paul_the_Greek If the tail of $1 is shorter than $4, then $4 cannot be used as the comparison length.
16:05 pmichaud why not?
16:05 pmichaud strncmp does it
16:05 pmichaud in that case, assuming the prefixes are equal, we'd get back -1
16:05 pmichaud because the lhs is less than the rhs
16:05 Paul_the_Greek Because then you would compare more characters than are in the tail of $4.
16:06 pmichaud you stop comparing if $1 is shorter.
16:06 Paul_the_Greek Right, so $4 is not necessarily the comparison length. But if that's the semantics of strncmp, then I'm raising a red herring.
16:07 pmichaud basically $4 says "compare at most n characters"
16:07 pmichaud if either of the source strings doesn't have enough, then that stops the comparision
16:07 Paul_the_Greek Limited by the length of both strings, I presume. Sorry for belaboring this.
16:08 pmichaud chromatic: since Parrot already has cmp_str, perhaps this should be cmp_str_at ?
16:08 chromatic Makes sense.
16:08 pmichaud oh, but it wants an 'n' in there somewhere.
16:09 pmichaud cmp_str_n_at ?   cmp_str_at_n ?
16:09 pmichaud I guess the latter -- and the underscores hint at the arguments.
16:09 Paul_the_Greek ncmp_str_at ?
16:09 chromatic I don't know if we need the n; for PCT's purposes, it's superfluous, right?
16:09 allison joined #parrot
16:09 bacek joined #parrot
16:10 pmichaud yeah, PCT doesn't really care.  I'll go with cmp_str_at, and we'll just know that the 'n' argument is required for now.
16:10 Paul_the_Greek pmichaud:  Thanks for putting up with my questions.
16:10 pmichaud or perhaps it should be  cmp_substr_at
16:10 aloha joined #parrot
16:10 pmichaud Paul_the_Greek: thanks for helping us clarify exactly what we want/is meant
16:11 chromatic Does that help write test cases?
16:11 pmichaud yes
16:11 pmichaud I'm writing test cases now.
16:11 pmichaud will commit shortly, then have to run an errand.
16:12 szabgab hi, can someone help me understanding the status of languages on Parrot?
16:12 szabgab I looked at the link http://bitbucket.org/allison/pynie/  and Pynie seems to be stuck 5 month ago
16:13 allison szabgab: yes, I'm the only Pynie developer, and yes, I haven't had time to work on it lately
16:13 szabgab hi allison
16:13 allison szabgab: it's current status is "starting over from scratch"
16:13 moritz the curse of being involved in too many projects/activities, I guess
16:13 allison szabgab: because it depends on the old NQP
16:14 Paul_the_Greek Pynie is?
16:14 moritz huh? most things can be quite easily adopted
16:14 allison Python on Parrot
16:14 moritz to nqp-rx
16:14 szabgab so does that mean the Python community has no much interest / tuits to give a hand?
16:14 szabgab (we could send them a box of tuits :)
16:14 Paul_the_Greek You can buy those?
16:14 allison moritz: except that Pynie was a) not a great implementation to start with and b) originally an implementation of 2.5, not 3.x
16:14 kthakore szabgab: how do you buy those?
16:15 kthakore Paul_the_Greek: gosh you beat me
16:15 kthakore :p
16:15 allison szabgab: the Python community is very interested in it, but not in contributing to it
16:15 szabgab Paul_the_Greek: kthakore you have to come to a YAPC to get them :)
16:15 allison szabgab: my current thought is to redo Pynie as a Parrot backend for PyPy
16:16 szabgab allison: thanks,    is there any other language (except Perl 6) that is being actively developed for Parrot?
16:16 allison szabgab: kill two birds with one stone in getting a parser for Python, and getting an active Python community for the implementation
16:16 ruoso joined #parrot
16:17 szabgab Cardinal last changed  in May
16:17 Paul_the_Greek I presume the compiler tools can deal with a whitespace language?
16:17 szabgab maybe implement Python as a Perl 6 regex?
16:17 allison szabgab: that depends on whether "active" means "activity equal to Perl 6" and whether "language" means only major languages
16:17 pmichaud (whitespace language)  actually, that ended up being far simpler than I had expected
16:17 Paul_the_Greek I'm amazed.
16:17 pmichaud it fell almost directly out of the python (2.5) specification
16:18 davidfetter joined #parrot
16:18 szabgab allison: I don't have hard definition for active and it does not have to be major
16:18 arnsholt szabgab: I'm working on a Prolog, but it's slow going since I have to do other stuff (like working on my degree =) as well
16:18 allison szabgab: then yes, there are lots of active languages on Parrot
16:19 Paul_the_Greek Speaking of languages, but not HLLs, what is the long-term plan for the PIR assembler?
16:19 szabgab I am interviewing in Hungarian (!) about Perl 6 and they also asked about Parrot
16:19 Paul_the_Greek Cool.
16:20 kthakore szabgab: I will get there soon ish
16:20 szabgab so I am trying to figure out what to say
16:20 kthakore szabgab: next summer I will definately plan for it
16:20 kthakore ok work
16:21 szabgab arnsholt: prolog is not listed on http://www.parrot.org/languages ?
16:21 theory joined #parrot
16:22 arnsholt No, it's relatively recent (I started in May or so)
16:22 arnsholt So I just haven't gotten around to adding it to the page
16:23 arnsholt Also, it's currently somewhat useless as I'm still working on figuring out how do the implementation (also figuring out the semantics of Prolog beyond what I need to write Prolog programs)
16:24 szabgab kthakore: here isa temporary round tuit: ʘ
16:24 Paul_the_Greek That came out as a square tuit on my display.
16:24 * moritz thinks that prolog compiler writing is less obvious than for procedural languages
16:25 arnsholt Yeah, Prolog has its quirks
16:26 szabgab Paul_the_Greek: something about square pegs and round holes?
16:26 arnsholt Thankfully I have a good guide to getting backtracking and such working in a CPS style from a book by Paul Graham (On Lisp) though
16:26 arnsholt Currently I'm fighting a bit with Parrot's continuations though
16:27 moritz I guess they fight back :-)
16:28 Paul_the_Greek Once I learn more about Parrot, I might consider implementing my language on it. That would be fun.
16:28 arnsholt Indeed they do. I have an idea how I might be able to fix it though
16:28 arnsholt Just need the time to do it
16:28 arnsholt Paul_the_Greek: I have several ideas of languages Parrot needs =)
16:29 Paul_the_Greek I use my own personal language for writing everything for my work. The rest of the world doesn't need it. :D
16:29 szabgab Paul_the_Greek: your langauge?  you mean Greek ?
16:30 szabgab Would be nice to have a spoken language implemnetd on Parrot :)
16:30 Paul_the_Greek Greek is good, but not for programming.
16:31 moritz hey, in Greek you can use lambda calculus, beta reductions, ... :-)
16:32 pmichaud chromatic: tests committed as t/op/substr_cmp.t  in r48524
16:32 Paul_the_Greek The language would have lots of epsilons, too.
16:33 szabgab I see pmichaud is trying to fight our noise :)
16:33 chromatic Thanks, will have them passing later today.
16:33 pmichaud chromatic: excellent.  I can then quickly test them on nqp and come up with a rough estimate of performance change (if any)
16:34 davidfetter szabgab, just the person i'm looking for! :)
16:34 davidfetter got a minute re: CPAN & SuSE?
16:35 Paul_the_Greek pmichaud: Do we have performance tests for various aspects of Parrot?
16:35 pmichaud Paul_the_Greek: nafaik
16:35 particle like, benchmarks?
16:35 Paul_the_Greek Er, right, the word would be benchmark.
16:35 dalek parrot: r48524 | pmichaud++ | branches/substr_eq_at/t/op/substr_cmp.t:
16:35 dalek parrot: [substr_cmp]:  Add tests for proposed/experimental cmp_str_at opcode.
16:35 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48524/
16:35 particle alioth, the debian language shootout
16:36 Paul_the_Greek Looking up ...
16:36 particle i wonder if someone would write nqp versions of those benchmarks, if that would help
16:36 chromatic I still think we need NQP and parsing specific benchmarks.
16:37 Paul_the_Greek Do we have a start-up benchmark?
16:37 particle we have a 'time to compile rakudo' benchmark
16:38 Paul_the_Greek Oh, that's good.
16:38 Paul_the_Greek If I try to improve PMC attribute allocation, I'll need a benchmark.
16:38 pmichaud question:  Even with the proposed cmp_str_at opcode, I can also get NQP to optimize single-character comparisons to use the 'ord' opcode.  Would 'ord' still be significantly better than cmp_str_at to warrant that optimization?
16:39 chromatic darbelo might be able to answer that question.
16:39 chromatic Paul_the_Greek, see examples/benchmarks/*pir
16:39 chromatic I like oofib.pir.
16:39 pmichaud I'm guessing "likely yes"
16:39 pmichaud after lunch I think I'll go ahead and put that optimization into nqp and see if it's a significant win
16:40 pmichaud after looking at the generated code for rakudo's parser, I'm thinking it could be very significant
16:40 Paul_the_Greek Is the ord index known to be valid?
16:40 Paul_the_Greek Thanks, chromatic.
16:40 pmichaud there are a lot of generated 1-character constant string comparisons
16:41 pmichaud afk, lunch
16:41 Paul_the_Greek pmichaud:  Check out the number of substr , , 1 in the system.
16:44 pmichaud Paul_the_Greek: yes, that's what I was pointing to
16:44 pmichaud (really gone now)
16:47 Paul_the_Greek chromatic: What are the future plans for the PIR assembler? Continue work on IMCC?
16:47 chromatic I'm curious to see how PIRATE turns out.
16:48 Paul_the_Greek Is it a new assembler for PIR?
16:49 chromatic Yes.
16:49 davidfetter is the production version scheduled for mid-september?
16:50 Paul_the_Greek Who is working on it?
16:50 chromatic bacek has been working on it.
16:50 davidfetter say, around the 19th?
16:53 Paul_the_Greek Is it much different from IMCC?
16:54 chromatic It's written in NQP.
16:54 Paul_the_Greek Does it have fancy macros or simple ones?
16:54 chromatic I don't know that.
16:59 DrForr joined #parrot
17:02 brianwisti joined #parrot
17:03 Paul_the_Greek chromatic: Who is the current memory management expert, if any?
17:04 chromatic A handful of us: me, whiteknight, bacek, whoever else pokes in there.
17:04 Paul_the_Greek Okay, then I'll ask everyone if I have any questions.
17:10 jsut joined #parrot
17:20 cotto_work joined #parrot
17:25 cotto_work ~~
17:25 plobsing joined #parrot
17:28 dalek parrot: r48525 | NotFound++ | trunk/src/pmc/null.pmc:
17:28 dalek parrot: [cage] reorganize and improve pod of Null PMC
17:28 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48525/
17:35 dukeleto I am seeing t/library/pg.t fail on trunk on linux
17:36 dukeleto (datura)(~/svn/parrot)$ git
17:36 dukeleto git                  github_post_receive  git-receive-pack     git-shell            git-spread           git-upload-archive   git-upload-pack
17:36 dukeleto (datura)(~/svn/parrot)$ git
17:36 * dukeleto facepalms
17:37 dukeleto http://gist.github.com/527377 is the failing t/library/pg.t output
17:44 dalek parrot: r48526 | NotFound++ | trunk/src/pmc (5 files):
17:44 dalek parrot: [cage] update headerizing
17:44 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48526/
17:56 dalek rakudo: b647188 | pmichaud++ | :
17:56 dalek rakudo:       <pre>m build/PARROT_REVISION
17:56 dalek rakudo: </pre>
17:56 dalek rakudo:       <pre style='white-space:pre-wrap;width:81ex'>Bump PARROT_REVISION in preparation for Parrot release.</pre>
17:56 dalek rakudo:
17:56 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/b​647188463cdac283024cc7f243200402a63e3ba
17:57 cotto_work joined #parrot
17:57 * tcurtis cannot get installed parrot to work lately.
17:57 gbacon joined #parrot
17:57 tcurtis I keep getting packfile version errors. Even nuking my previous parrot install didn't help.
18:02 nopaste "NotFound" at 192.168.1.3 pasted "PLA multiply example in winxed" (28 lines) at http://nopaste.snit.ch/22832
18:03 NotFound msg whiteknight http://nopaste.snit.ch/22832 PLA multiply example in winxed
18:03 purl Message for whiteknight stored.
18:04 plobsing tcurtis: PBC_COMPAT was bumped, you have to remake any and all .pbc files to run them on a new parrot.
18:05 tcurtis plobsing: would nuking my parrot installation (rm -rf $PREFIX/lib/parrot) and realcleaning not do that?
18:07 plobsing it depends. For example, if you're trying to use non-core pbc files (eg: rakudo), they would not be remade by default.
18:07 plobsing but I would expect it to work for core.
18:08 cotto_work reconfig should work
18:08 s1n joined #parrot
18:09 tcurtis Even parrot with no args and parrot_config do it for me. I'll try again tonight after GSoC pencils down and see if I can figure out what [I am doing || is going] wrong.
18:10 plobsing try a clean checkout perhaps?
18:10 * tcurtis will do.
18:14 AndyA joined #parrot
18:16 Paul_the_Greek joined #parrot
18:17 kurahaupo joined #parrot
18:27 pmichaud odd datapoint.... switching nqp-rx to use 'ord' instead of 'substr' for single-character literal comparisons did not appear to significantly improve rakudo compile time.
18:27 AndyA joined #parrot
18:31 ruoso joined #parrot
18:31 whiteknight Notfound++
18:32 dalek tree-optimization: f270ec3 | tcurtis++ | :
18:32 dalek tree-optimization:       <pre>m docs/Tree/Optimizer.pod
18:32 dalek tree-optimization: </pre>
18:32 dalek tree-optimization:       <pre style='white-space:pre-wrap;width:81ex'>Fix typo.</pre>
18:32 dalek tree-optimization:
18:32 dalek tree-optimization: review: http://github.com/ekiru/tree-optimization/com​mit/f270ec35482ee3cb758fa7b8f81b629abba6b12f
18:32 tcurtis O.o
18:38 dalek tree-optimization: 198314c | tcurtis++ | :
18:38 dalek tree-optimization:       <pre>+ docs/Tree/Optimizer/Pass.pod
18:38 dalek tree-optimization: </pre>
18:38 dalek tree-optimization:       <pre style='white-space:pre-wrap;width:81ex'>Add docs for Tree::Optimizer::Pass. Last commit before I tag pencils down.</pre>
18:38 dalek tree-optimization:
18:38 dalek tree-optimization: review: http://github.com/ekiru/tree-optimization/com​mit/198314c80f6af74f267c3d0d8f7da9d30c821eea
18:38 whiteknight tcurtis++
18:38 whiteknight html--
18:39 Paul_the_Greek pmichaud: Weird.
18:40 pmichaud Paul_the_Greek: I'm guessing it's overwhelmed by other factors
18:40 * tcurtis wonders how the HTML is getting in there.
18:40 pmichaud tcurtis: I'm thinking github may have changed the format of their rss feed
18:40 pmichaud and that dalek hasn't caught up
18:40 Paul_the_Greek pmichaud:  Did you time this against the system that shares substrings or one that does not?
18:40 whiteknight you know, github does have service hooks for IRC. We don't need dalek, we could ask github to automatically report commits to here
18:41 pmichaud Paul_the_Greek: ?
18:41 cotto_work but does it do karma?
18:41 pmichaud I timed it against parrot trunk, substring version versus ord version
18:41 Paul_the_Greek pmichaud:  I don't know whether the trunk still has shared substrings or not.
18:42 pmichaud Paul_the_Greek: I don't know either.... but since nqp-rx (and rakudo) always tend to work against parrot trunk, that's my basis for comparison
18:42 Paul_the_Greek It has to allocate a string header one way or the other.
18:43 pmichaud ord requires allocation of a string header?
18:43 pmichaud that would be..... odd
18:43 Paul_the_Greek No, substr.
18:43 pmichaud right
18:43 chromatic If the comparison is against a string literal, that string literal will always be a constant string literal in the bytecode.
18:45 Paul_the_Greek Sorry to be a pest: Can someone tell me where DPOINTER is defined?
18:45 pmichaud the patch I made changes, e.g.
18:46 pmichaud $S11 = substr target, pos, 1
18:46 plobsing Paul_the_Greek: include/parrot/config.h
18:46 pmichaud ne $S11, '#', fail
18:46 pmichaud to
18:46 pmichaud $I11 = ord target, pos
18:46 pmichaud ne $I11, 35, fail
18:47 Paul_the_Greek plobsing:  Thanks. That must be generated; not available in online browser.
18:48 plobsing Paul_the_Greek: 'make tags-{vi,emacs}' makes it really easy to find these things
18:49 Paul_the_Greek plobsing:  I'm on my wife's laptop at the beach, so can only look online. Easy pie at home.
18:49 Paul_the_Greek That's why I apologized for being a pest. ;)
18:50 dalek parrot: r48527 | NotFound++ | trunk/t/op/string.t:
18:50 dalek parrot: fix and improve substr oob tests
18:50 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48527/
18:50 dalek parrot: r48528 | plobsing++ | trunk/src/packout.c:
18:50 dalek parrot: eliminate useless var
18:50 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48528/
18:50 dalek parrot: r48529 | NotFound++ | trunk/t/op/string.t:
18:50 dalek parrot: test for substr null string
18:50 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48529/
18:55 chromatic pmichaud, five of your new tests still fail, but I should have them passing in a few minutes.
18:56 pmichaud chromatic: excellent
18:56 * tcurtis created pencils-down tags in both tree-optimizations repo and simple-optimizations repo.
18:57 Paul_the_Greek pmichaud:  That's a testament to the speed of substr if your optimization doesn't help much.
18:57 pmichaud Paul_the_Greek: I think it's more that there are other factors that swamp the difference.  It's also very possible/likely that LTM is avoiding a lot of unnecessary checks.
18:59 Paul_the_Greek Well, it's been a tough day so far, so time for a nap.
19:01 cotto_work tcurtis: not a bad idea
19:07 dalek parrot: r48530 | chromatic++ | branches/substr_eq_at (5 files):
19:07 dalek parrot: [ops] Renamed substr_eq_at op to cmp_str_at.
19:07 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48530/
19:07 dalek parrot: r48531 | chromatic++ | branches/substr_eq_at (4 files):
19:07 dalek parrot: [str] Added length to Parrot_str_compare_offset.
19:07 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48531/
19:14 chromatic pmichaud, r48532 should work for you now.
19:14 pmichaud chromatic++  # will try it shortly
19:14 pmichaud same branch?
19:15 chromatic Yes.
19:18 bubaflub hey GSoC-ers, pencils-down time has already passed and the final student evaluations are on Melange now
19:19 dalek nqp-rx: e91bc31 | pmichaud++ | :
19:19 dalek nqp-rx:       <pre>m build/PARROT_REVISION
19:19 dalek nqp-rx: </pre>
19:19 dalek nqp-rx:       <pre style='white-space:pre-wrap;width:81ex'>Bump PARROT_REVISION to be closer to 2.7.0 release.</pre>
19:19 dalek nqp-rx:
19:19 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/e​91bc31e089f480d8196ada7104d68151c449ffb
19:19 dalek nqp-rx: 90e0bcd | pmichaud++ | :
19:19 dalek nqp-rx:       <pre>m src/PAST/Compiler-Regex.pir
19:19 dalek nqp-rx: </pre>
19:19 dalek nqp-rx:       <pre style='white-space:pre-wrap;width:81ex'>Refactor case-insensitive literals in preparation for other improvements.</pre>
19:20 dalek nqp-rx:
19:20 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/9​0e0bcd411e87574dba4a146cb30e7d1efdfab1f
19:20 dalek nqp-rx: 6ab1f66 | pmichaud++ | :
19:20 dalek nqp-rx:       <pre>m src/PAST/Compiler-Regex.pir
19:20 dalek nqp-rx: </pre>
19:20 dalek nqp-rx:       <pre style='white-space:pre-wrap;width:81ex'>Optimize single-character constant literal tests to use 'ord' instead of 'substr'.</pre>
19:20 dalek nqp-rx:
19:20 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/6​ab1f6666329107e865ac0ef4a738a2d4a3d6642
19:20 dalek nqp-rx: 2a8a5a9 | pmichaud++ | :
19:20 dalek nqp-rx:       <pre>m src/stage0/HLL-s0.pir
19:20 dalek nqp-rx: m src/stage0/NQP-s0.pir
19:20 dalek nqp-rx: m src/stage0/P6Regex-s0.pir
19:20 dalek nqp-rx: m src/stage0/Regex-s0.pir
19:20 dalek nqp-rx: </pre>
19:20 dalek nqp-rx:       <pre style='white-space:pre-wrap;width:81ex'>Update bootstrap.</pre>
19:20 dalek nqp-rx:
19:20 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/2​a8a5a914c416274e7c0b8e7addd7b857ac5bef5
19:24 dalek parrot: r48532 | chromatic++ | branches/substr_eq_at/src (2 files):
19:24 dalek parrot: [str] Fixed cmp_str_at opcode.
19:24 dalek parrot: Parrot_str_compare_opcode() still needs work for STRINGs with differing
19:24 dalek parrot: encodings as well as unsanitized length parameters, but all of Patrick's tests
19:24 dalek parrot: pass now.
19:24 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48532/
19:39 cotto_work a cookie to anyone who can get the trac github plugin working
19:41 dalek parrot: r48533 | chromatic++ | branches/substr_eq_at (2 files):
19:41 dalek parrot: [str] Sanitized Parrot_str_compare_offset.
19:41 dalek parrot: These new boundary checks help its safety, but they might not be sufficient.
19:41 dalek parrot: Additional tests welcome.
19:41 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48533/
19:43 kurahaupo joined #parrot
19:46 pmichaud chromatic: I added some more (failing) tests for cmp_str_at -- there are some problems when comparing ascii vs. unicode operands
19:47 pmichaud oh, I'll have to merge with r48533.... just a sec
19:47 chromatic That means string iteration, but I can write that loop.  It's easy.
19:52 pmichaud committed, r48534
19:58 dalek parrot: r48534 | pmichaud++ | branches/substr_eq_at/t/op/substr_cmp.t:
19:58 dalek parrot: [str]:  Added some (failing) tests for experimental cmp_str_at with mixed unicode+ascii operands.
19:58 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48534/
20:04 chromatic Fix coming in 30 seconds, pmichaud.
20:05 pmichaud chromatic: okay!
20:06 chromatic r48535 should do it.
20:14 dalek parrot: r48535 | chromatic++ | branches/substr_eq_at (2 files):
20:14 dalek parrot: [str] Enabled Unicode in Parrot_str_compare_offset.
20:14 dalek parrot: This is a proof of concept which needs cleanup, but all tests pass for now.
20:14 dalek parrot: Ideally the STRING parameters can go const again with some cleverness.
20:14 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48535/
20:22 kurahaupo joined #parrot
20:23 hercynium joined #parrot
20:25 davidfetter joined #parrot
20:28 kurahaupo joined #parrot
20:53 pmichaud chromatic: with cmp_str_at I seem to get no significant speedup or slowdown in building Rakudo's core.pir (which is the biggest/meanest test I can throw at it for now).  I'm not sure why.
20:53 pmichaud I think I will need to retrace my steps and make sure I'm measuring what I think I'm measuring.
20:54 pmichaud I can tell that Rakudo is definitely using cmp_str_at.... just don't see any significant speedup as a result.
20:54 chromatic That's strange, unless the memory cost of mixed encoding iteration is significant.
20:54 pmichaud There might be fewer gcables created.... but I'm not suite sure how to measure that.
20:54 moritz do you know how of it is called?
20:55 pmichaud moritz: cmp_str_at gets called a lot -- basically anytime rakudo wants to match a keyword longer than one character
20:55 pmichaud s/rakudo/the parser/
20:55 whiteknight joined #parrot
20:55 moritz which is... for all operators and terms, right?
20:55 pmichaud and statements
20:55 purl statements is not recommended.
20:55 cotto_work forget statements
20:55 purl cotto_work: I forgot statements
20:55 pmichaud purl, forget statements
20:55 purl pmichaud, I didn't have anything matching statements
20:56 chromatic How difficult is it to have PCT emit matching encodings for the substrings to compare?
20:56 pmichaud at the time the parser is compiled, it doesn't know the encoding of the source
20:57 chromatic Perl 6 programs tend to use fixed-8 though, right?
20:57 pmichaud iso_8859_1, generally
20:57 pmichaud because of « and »
20:58 pmichaud and any codepoint outside of latin-1 means that the source is utf8 (more)
20:58 chromatic As a quick test, can you emit those substrings as iso-8859-1 encodings?
20:59 pmichaud I might be able to do it
20:59 pmichaud oh, that won't help
20:59 pmichaud because core.pm has « and » in it, it's definitely going to be parsed as utf8
21:00 pmichaud oh, wait, or latin-1
21:00 jnthn Do we actually have it as utf8 while parsing?
21:00 pmichaud just a sec, let me see if it falls into latin 1
21:00 jnthn Do we have a fixed width encoding that we can just always explode stuff into?
21:00 pmichaud jnthn: PCT tries to recode source as ascii or iso-8859-1 if it can.  If it cannot, it's pretty much stuck with utf8.
21:00 jnthn Oh. :-(
21:00 pmichaud jnthn: no fixed width encoding is reliable enough yet, and it requires ICU.
21:01 pmichaud let me see if core.pm at least ends up as iso-8859-1.
21:01 jnthn Ugh, OK
21:05 nopaste "chromatic" at 192.168.1.3 pasted "pmichaud, jnthn: this isomorphism appears to work" (14 lines) at http://nopaste.snit.ch/22835
21:05 jnthn That looks...scary.
21:05 pmichaud surely you mean iso88591 there instead of utf8 ?
21:06 pmichaud ummm, wait
21:06 pmichaud under what circumstances would we get into the ascii compare function if the lhs is utf8 encoded?
21:07 pmichaud I could see using memcmp if lhs is ascii and rhs is iso88591
21:07 chromatic Yeah, I have lhs and rhs backwards there.
21:09 chromatic ||  rhs->encoding == Parrot_fixed_8_encoding_ptr) {
21:09 chromatic That's much saner.
21:09 pmichaud agreed, I feel better about that one.
21:09 pmichaud it wouldn't be correct if there are two charsets using fixed_8, though.
21:10 chromatic This is me not pleased with the Cartesian product of our encodings and character sets.
21:11 pmichaud seems like it'd be better to check the rhs for iso-8859-1 charset
21:11 pmichaud instead of checking the encodings
21:11 pmichaud (or perhaps check both)
21:12 pmichaud there are (were) a few other places in the strings code that tended to take a shortcut like that
21:13 pmichaud okay, I converted the parser to use   iso-8859-1:"const string"   instead of just "const string"
21:13 pmichaud let's see if it gives any improvement
21:13 chromatic Checking the rhs charset for iso-8859-1 works too.
21:15 pmichaud nope, still no significant change.
21:15 pmichaud less than 0.5 second out of 160
21:16 pmichaud that seems very strange.
21:17 chromatic It does.
21:17 * purl stays quiet
21:17 jnthn purl: you should do that much more often. :-)
21:17 purl jnthn: excuse me?
21:23 tadzik joined #parrot
21:23 chromatic If I had Callgrind output from before and after the changes, I'd have a better sense of what's happening.
21:23 chromatic A sandwich wouldn't hurt either though.
21:23 pmichaud yeah, I was thinking something similar.
21:23 pmichaud I'll push my changes into branches and then we can perhaps track things down from there.
21:26 Paul_the_Greek joined #parrot
21:31 * pmichaud tries a basic test with rakudo, has a serious "wtf?" moment
21:32 Paul_the_Greek What's up?
21:32 bubaflub joined #parrot
21:32 pmichaud okay
21:32 lucian joined #parrot
21:33 pmichaud found it -- forgot an option.
21:33 pmichaud I'm convinced that when Rakudo is parsing core.pm to generate core.pir, it's using iso-8859-1 as the source encoding.
21:33 chromatic darbelo should put his pencil down soon, so perhaps he can look in on this with us.
21:34 pmichaud well, I'm going to need a break shortly -- and I'd like to get the Nil fixes into rakudo before the release
21:34 pmichaud also, looking at this code convinces me that I can improve nqp-rx a fair bit even without the opcode, so I'd like to get those improvements in before the parrot release
21:34 chromatic If your code is available in branches, we can play with that.
21:34 pmichaud so I may move to that for the rest of the evening and pick up with cmp_str_at again tomorrow
21:35 chromatic Fine by me.  What's "a fair bit" in your estimation?
21:35 pmichaud don't know.... but I can avoid quite a lot of unnecessary method calls
21:35 pmichaud I can optimize the debugging calls out of the hot codepaths
21:36 pmichaud the nqp-rx version that makes use of the cmp_str_at opcode is the 'cmp_str_at' branch of the nqp-rx repo
21:36 pmichaud you have to build the parrot branch separately, then configure nqp-rx with --parrot-config=...   to get it to use it
21:36 pmichaud oh
21:37 pmichaud I can also push my changes to the parrot branch
21:37 pmichaud just a sec
21:37 pmichaud that'd be easier
21:39 pmichaud r48536
21:39 pmichaud just use that version of Parrot to build Rakudo
21:39 pmichaud (or any other code that you wish to test)
21:41 chromatic Thanks.
21:41 pmichaud afk for a short while
21:44 Administrator_ joined #parrot
21:51 Paul_the_Greek joined #parrot
21:52 seatek joined #parrot
21:54 davidfetter joined #parrot
21:54 dalek parrot: r48536 | pmichaud++ | branches/substr_eq_at/ext/nqp-rx/src/stage0 (4 files):
21:54 dalek parrot: [nqp-rx]:  Push nqp-rx that uses cmp_str_at for substring comparisons.
21:54 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48536/
22:08 darbelo joined #parrot
22:18 tcurtis joined #parrot
22:30 Paul_the_Greek Here's a question: When I get back home after vacation, what's the best way to update my local copy?
22:30 cotto_work Paul_the_Greek: did you see that I fixed the conflicts and applied your patch?>
22:31 mikehh Paul_the_Greek: as in svn update
22:31 Paul_the_Greek cotto! You made my vacation.I was dreading sorting it all out when I returned. I thanked you in the ticket.
22:32 cotto_work What else do you have going, and are those things in separate checkouts?
22:32 Paul_the_Greek I have two further tickets with patches pending. Would you like the links?
22:33 Paul_the_Greek They are much simpler.
22:33 cotto_work I can find them.
22:33 cotto_work Are they all you have?
22:33 Paul_the_Greek New math opcodes and cleanup of a lexical function.
22:34 cotto_work The reason I ask is because it might be simpler to clobber all local changes once those patches are committed.
22:34 cotto_work (mainly to avoid dealing with conflicts from the pobj.h changes)
22:34 Paul_the_Greek I have other local changes in the works. Those would be clobbered, too. Easiest to save the files off to the side and then merge in my changes?
22:35 Paul_the_Greek For example, I have some new tests.
22:35 cotto_work you can revert individual files too
22:36 cotto_work Don't spend your vacation worrying about it.  We'll get you sorted out if you want help.
22:36 Paul_the_Greek Oh, I'm a happy camper. You dealt with the one I was dreading.
22:36 Paul_the_Greek ++Cotto++
22:36 cotto_work I'm glad to have it in the past.
22:37 Paul_the_Greek From now on, if I comment the crap out of a file, I'll ask for it to be committed immediately.
22:37 cotto_work and I'll be less of a slacker
22:37 Paul_the_Greek In the process, I think I found a way to speed up PMC attribute allocation. I'll take a look when I return.
22:38 Paul_the_Greek Hey, you can't look at everything immediately.
22:39 ash_ joined #parrot
22:40 Paul_the_Greek My first task will be to figure out why PMC attributes are allocated separately from other fixed-size objects. I think it's just an efficiency thing.
22:41 cotto_work whiteknight, bacek or chromatic might be able to answer that question
22:41 Paul_the_Greek chromatic thought it was efficiency, too.
22:42 Paul_the_Greek There is an odd bit of hacking to select the PMC attribute vector index that I think we can eliminate.
22:44 allison joined #parrot
22:45 kurahaupo joined #parrot
22:47 lucian joined #parrot
22:49 dngor_ joined #parrot
22:49 Paul_the_Greek After a tough day, time for ice cream. Thanks again, cotto.
22:50 cotto_work thanks for the documentation
23:00 workbench joined #parrot
23:03 kid51 joined #parrot
23:04 kid51 msg darbelo Thanks for noting my concerns about our inability to compile Rakudo on smaller machines.
23:04 purl Message for darbelo stored.
23:05 kid51 NotFound++ for providing docs for two .pmc files.
23:08 mikehh yes excellent!
23:08 purl Smithers, release the hounds!
23:09 ruoso joined #parrot
23:10 mikehh All tests PASS (pre/post-config, make corevm/make coretest, test, fulltest) at r48536 - Ubuntu 10.04 amd64 (gcc with --optimize)
23:11 kid51 mikehh:  Now if we can get all the *other* folks to do their part on the .pmc documentation :-)
23:13 mikehh kid51: :-} - doin' fulltest runs gettin' ready for the release, then I will think of our next major documentation project...
23:15 mikehh kid51: have you done a PPC fulltest recently?
23:17 mikehh In fact I would appreciate fulkltest results from anyone here, especially on some different platforms, maybe some MSWin ones
23:18 aloha joined #parrot
23:22 kid51 mikehh:  Across five timezones, you read my mind.  It's in progress -- hopefully done within an hour.
23:23 kid51 Anyone available to glance at http://trac.parrot.org/parrot/changeset/48492: Paul_the_Greek's documentation additions?
23:23 kid51 cotto applied patch but requested additional eyes; looks fine to me; I'd like to close ticket.
23:24 dngor_ joined #parrot
23:25 cotto_work I'd like eyes familiar with the GC code who can verify that the comments are accurate.
23:28 kid51 cotto_work:  Perhaps you should CC: one of our many GC experts on that ticket! ;-)
23:29 kid51 perhaps whiteknight?
23:29 cotto_work I'll see if I can find someone to bug about it.
23:30 cotto_work seen whiteknight
23:30 purl whiteknight was last seen on #parrot 4 hours, 49 minutes and 4 seconds ago, saying: you know, github does have service hooks for IRC. We don't need dalek, we could ask github to automatically report commits to here
23:30 cotto_work whiteknight, ping
23:30 mikehh looks ok to me, but you probably need a perusal by chromatic, bacek or our esteemed chief architect
23:34 Paul_the_Greek joined #parrot
23:34 kid51 msg whiteknight I have cc-ed myself on TT #1744, but don't have any particular insight.  Will try to look at it more closely later in week.
23:34 purl Message for whiteknight stored.
23:35 Paul_the_Greek What is 2.7 named?
23:36 cotto_work We'll find out soon.
23:36 Paul_the_Greek How are they named?
23:36 bacek joined #parrot
23:36 cotto_work It's determined entirely by the release manager.
23:37 Paul_the_Greek Aha. That's fun.
23:37 aloha joined #parrot
23:38 kid51 Paul_the_Greek:  All related to parrots, the birds.  If you have nothing better to do on your vacation, you can assemble a comprehensive list of parrot species/breeds for future releases. :-)
23:38 Paul_the_Greek How long have you worked on Parrot, cotto?
23:38 cotto_work something liek 2.5 years
23:38 cotto_work *like
23:39 mikehh I have been tending towards Australian King. a parrot that resides where our chief coding robot resides
23:39 Paul_the_Greek Have we had the Macaw release yet?
23:40 cotto_work docs/parrothist.pod lists past releases
23:40 Paul_the_Greek Does anyone do Parrot as their $work?
23:41 * bacek appears with flames and smokes
23:41 kid51 No, but my hunch is that there are those among us who manage to do Parrot *during* $work ...
23:41 * kid51 is not among them :-(
23:42 Paul_the_Greek "Release formerly known as Prince" ?
23:42 bacek cotto, r48492 looks good. You can close ticket :)
23:42 cotto_work bacek++
23:43 Paul_the_Greek I work for myself, so $work blurs with @play.
23:43 cotto_work done
23:43 mikehh bacek: do you have a parrot you want to honour?
23:43 bacek mikehh, nope.
23:44 Paul_the_Greek A Parrot Looks at 40?
23:44 cotto_work PROTIP: it doesn't have to be a real parrot
23:44 bacek breakfast and dayjob time.
23:44 bacek See ya
23:45 Paul_the_Greek Where is bacek?
23:45 purl bacek is THE MANIAC or some sort of magical coding robot or probably not mailto:pmichaud@pobox.com or mailto:thebacek@gmail.com or blazing new trails
23:46 cotto_work sydney iirc
23:46 dalek TT #1605 closed by cotto++: Documentation for buffers in include/parrot/pobj.h is outdated.
23:46 dalek TT #1605: http://trac.parrot.org/parrot/ticket/1605
23:46 Paul_the_Greek Man, the idea of distributed participation is no joke.
23:47 mikehh dat is why we is gonna move to git probably :-}
23:48 Paul_the_Greek Wait, he closed my ticket before I was done.
23:48 cotto_work That's not one of the many reasons I've heard so far.
23:48 cotto_work Paul_the_Greek: tickets are a renewable resource.  You can open a new one (or reopen the old one).
23:49 Paul_the_Greek I read the Git book over the past few days. It looks like it will be pretty cool.
23:49 mikehh Paul_the_Greek: Documentation is *never* done, it is a WIP
23:49 Paul_the_Greek I'll reopen it when I return with my brand spankin' new Memory Internals doc.
23:50 Paul_the_Greek There do seem to be no lack o' tockets.
23:50 cotto_work And you can get karma for working on any one of them.
23:51 mikehh well for opening and closing them :-}
23:51 cotto_work and if someone say Paul_the_Greek++
23:52 Paul_the_Greek I'm really a ++x kind of guy, rather than an x++ guy.
23:52 Paul_the_Greek I like to be fetched after I'm incremented.
23:52 cotto_work purl isn't
23:52 Paul_the_Greek purl++
23:53 cotto_work purl--
23:53 purl cotto_work: what?
23:53 cotto_work (she cheats)
23:53 plobsing dec purl
23:53 Paul_the_Greek I wonder what it says about a person whether they use ++x or x++ ?
23:54 Paul_the_Greek purl -= 1
23:54 purl Paul_the_Greek: sorry...
23:54 sorear "the" Git book?
23:54 sorear la la purl--
23:54 Paul_the_Greek Yes, I got a book on Git and read it. Reasonably clear about most things.
23:54 Paul_the_Greek Very clever with the 160-bit hash.

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

Parrot | source cross referenced