Camelia, the Perl 6 bug

IRC log for #parrot, 2010-06-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 bacek_at_work (nqp mmd) It's not a bug.
00:02 bacek_at_work Inside nqp all variables are "scalar" (or "objects").
00:03 kthakore so any chance of close TT#812?
00:03 kthakore how do I see my waiting message?
00:03 whiteknight bacek_at_work: what do you mean? How can it not be a bug?
00:03 kthakore purl: message
00:03 purl Perhaps you mean "messages", or "message nickname blah blah", or "messages help", or.. eh, just forget it.
00:04 kthakore purl: messages help
00:04 purl To leave a message, say in channel or privmsg purl "msg <nickname> MESSAGE FOR J00".  To read your messages, privmsg purl "messages".  To erase your messages, privmsg purl "messages erase". or Delivery Not Guaranteed!
00:04 whiteknight msg <nickname> MESSAGE FR J00
00:04 purl Sorry, I've never seen <nickname> before.
00:05 kthakore Coke: ping I got your messages
00:05 bacek_at_work whiteknight, $foo variables are "untyped"
00:05 kthakore AHHH
00:05 kthakore fine
00:05 kthakore trac?
00:05 purl trac is a web-based software project management and bug/issue tracking system emphasizing ease of use and low ceremony. It provides an interface to the Subversion revision control systems, integrated Wiki and convenient report facilities.  http://projects.edgewall.com/trac/ or Python, SQLite and ClearSilver or killing killtrac or a bug-tracking tool or at https://trac.parrot.org/parrot/ or slow or REALLY slow
00:07 kthakore whiteknight: so any chance of gett my patch on TT#812 accepted?
00:09 bacek_at_work kthakore, I can apply it tonight (if no one beets me)
00:09 whiteknight let bacek_at_work do it, I don't know enough about that code
00:09 bacek_at_work whiteknight, it's pretty simple patch to remove redundant method.
00:10 kthakore yay! patch #2
00:14 tcurtis joined #parrot
00:18 tcurtis moritz: I'm not getting your error on 47813, and my internet is to spotty to checkout r47802. Can you try 47813 and let me know if it it fixes the problem?
00:19 cotto_work yet another point in favor of git
00:20 cotto_work not that it needs them ;)
00:21 tcurtis svn--
00:23 * tcurtis finally was able to create the ticket.
00:24 dalek TT #1690 created by tcurtis++: Overriding one signature of  a multi-method in a subclass prevents access ...
00:24 dalek TT #1690: http://trac.parrot.org/parrot/ticket/1690
00:27 mikehh cotto_work: BTW the test pass on pir/PIRATE (no backtrace) on parrot r47813 - Ubuntu 10.04 amd64 (g++ with --optimize)
00:28 cotto_work That reinforces the likely x86-specificity of the bug.
00:29 sorear karma svn
00:29 purl svn has karma of -59
00:29 cotto_work not enough digits
00:31 davidfetter karma davidfetter
00:31 purl davidfetter has karma of 8
00:31 davidfetter hrm
00:31 * davidfetter wonders how he got that
00:31 cotto_work You probably did a thing at some point in the past.
00:34 sorear are you a committer?
00:34 * davidfetter pretty sure that's vacuously true
00:34 sorear karma c
00:34 purl c has karma of 8670
00:34 sorear karma g
00:34 purl g has karma of 1267
00:34 davidfetter well, i'm a committer on the pl/parrot project
00:34 sorear does dalek track it?
00:34 davidfetter could well
00:34 darbelo sorear: Yes.
00:34 sorear that's why.
00:34 davidfetter so when's the switch to git happening for parrot?
00:35 darbelo davidfetter: Later :)
00:35 sorear last I heard, right after the great GSoC merge
00:35 davidfetter all the cool projects are moving to git if they haven't already
00:35 tcurtis davidfetter: probably at some point after we get a git/trac test site set up.
00:36 darbelo "As soon as we can reasonably convince ourselves it won't go horribly wrong." :)
00:37 cotto_work There's a limited site up now.
00:37 tcurtis cotto_work: link?
00:37 purl I think Link is a pretty cool guy. eh kills Ganon and doesnt afraid of anything
00:37 cotto_work It's just for source code.
00:37 cotto_work lemme dig
00:37 * davidfetter gets his parrots from dukeleto's github repo
00:37 davidfetter (and fedora yum)
00:38 cotto_work http://trac.parrot.org/parrottest
00:41 Coke joined #parrot
00:42 cotto_work That should be from dukeleto's git clone of parrot on github
00:43 davidfetter [ot] my graph theory's a little weak. given that nodes - edges == 1 => directed graph is a tree, is there a similarly easy formula to show that a directed graph is a forest?
00:45 sorear not just from the totals
00:46 davidfetter how about if you know how many "root" nodes there are, i.e. nodes with indegree 0?
00:50 ash_ is the tree directory or undirected?
00:51 davidfetter directed
00:52 davidfetter it's times like this when i wish i'd majored in, or at least taken a course in, CS :P
00:53 abqar joined #parrot
00:54 abqar_ joined #parrot
00:56 plobsing joined #parrot
01:00 ash_ hehe, i have some books on this if you really want me to check
01:01 davidfetter if it's an easy thing to check, that'd be awesome
01:03 ash_ why do you need to see if its a forest? just curious (checking my algorithms book for a definition of forest)
01:03 mikehh rakudo (7e3ddca) builds on parrot r47813 - make test PASS, spectest_smolder -> #34569 (pugs r31442) FAIL - Ubuntu 10.04 amd64 (g++ with --optimize)
01:03 mikehh t/spec/integration/advent2009-day20.rakudo - Failed test:  18
01:03 mikehh 19 TODO PASSes in 6 files
01:03 mikehh The test PASSes when I ran it separately
01:04 davidfetter well, i don't want just a DAG
01:04 davidfetter imagine you're storing posts from a mailing list thread
01:04 davidfetter well, from a mailing list
01:05 davidfetter which generally takes the form of threads, each of which is a tree
01:05 davidfetter so the whole batch of relationships is a forest
01:05 davidfetter but i'd like to make sure that that's actually so :)
01:06 NotFound davidfetter: the definition already ensures it.
01:07 davidfetter um, the db doesn't, and that's where i'm storing the relationships
01:07 davidfetter imagine you have a table called nodes. it's easy to check by foreign key that edges has only nodes in it
01:08 davidfetter and slightly trickier, but still pretty easy, to ensure that edges has only direction for any given pair of nodes
01:08 davidfetter but i want to make sure that nothing can get inserted, updated or deleted in the edges table in such a way as to make it not be a forest
01:09 davidfetter so i'm looking for a criterion the db can apply
01:09 NotFound If any message can have only one parent, I think you just need to check the absence of cycles.
01:10 davidfetter a->b->c, a->d->c <-- DAG, but not tree
01:11 NotFound But c has two paents.
01:11 davidfetter "message only has one parent" is actually kinda time-consuming to enforce
01:12 NotFound Is the way messages are linked.
01:12 davidfetter messages are just an example. i'm trying to solve a more general problem
01:13 NotFound Then choose a more general example ;)
01:14 davidfetter ok, given a directed graph where i know the number of nodes with indegree 0, the total # of nodes, and the total # of edges, can i use just that information to determine whether the DG is a forest?
01:16 mikehh davidfetter: http://en.wikipedia.org/wiki/Kruskal%27s_algorithm
01:16 NotFound davidfetter: I think is not enough information.
01:17 davidfetter ok. how about if i know what all the edges are?
01:19 davidfetter mikehh, so if kruskal's algo finds a minimum spanning forest that's not the original graph, i can say it's not a forest?
01:19 davidfetter btw, this is all done in SQL :)
01:20 NotFound davidfetter: The natural way is evaluate the connected componentes and check all are trees.
01:21 NotFound But I don't know is such evaluation can be quickly done in sql.
01:21 davidfetter that's the beauty of CTEs (common table expressions) a.k.a. recursive SQL :)
01:22 davidfetter with those babies, SQL is turing-complete :)
01:22 NotFound Well, I'm not fluent in sql nor in graph tehory, so I'll better go sleep.
01:23 davidfetter g'night, NotFound
01:38 mikehh davidfetter: thers a bit more discussion on http://www.cs.auckland.ac.n​z/software/AlgAnim/mst.html
01:40 ash_ ping plobsing
01:41 mikehh davidfetter: trying to remember all this stuff, haven't worked on it for a while
01:52 plobsing ash_: hi
01:53 ash_ I ran into an issue with the tests, but i am cleaning it up right now, if the size of a variable wasn't the same as a pointer, it would segfault, but I should have that done soon, but I also wanted to talk to you about the llvm stuff I was planning on working on
01:54 ash_ i think i miss wrote my GSoC proposal because i thought the stack frame was something else
01:54 ash_ after talking in here about it, i think what I should of said for my GSoC proposal was I wanted to make a new runcore that uses the llvm to unroll the runloop and then does all the llvm optimization passes over that
01:56 plobsing I suspected you meant something different when talking about an optimizing stack frame builder (optimizing NCI stack frames is almost useless)
01:56 ash_ yeah
01:56 plobsing but a full runcore is pretty huge
01:56 ash_ i was equating the stack frame to the runloop i think in my head for what aver reason
01:57 ash_ yeah... but thats really what I was hoping to work on, I wanted to see what you thought i should do to move forward from here
01:57 ash_ thats why in the spring I did that independent study on compilers and started making my own nqp compiler that uses the llvm as a backend, so i could get some experience with compilers and with the llvm
01:58 plobsing I think that something like that (a jitting/threading whatsit) is a really good thing to have, so I'm all for it. However the degree of difficulty I'd put on it is much higher.
01:59 ash_ yea, thats one of the reason i was at first confused when people thought my GSoC would be to short
01:59 ash_ but now i see i have been mis-communicating the whole time
01:59 plobsing I say, go for it, but I'd also like the libffi stuff to be rock solid.
02:00 ash_ yeah, i am still trying to finish that up
02:00 ash_ i want it to be good too, but i just realized that i think there was a misunderstanding about what  wanted to do with the other part of m GSoC
02:01 ash_ s/m/my/
02:04 plobsing we'll need to come up with a less confusing name for it
02:05 ash_ yeah... after I get all of the tests done for the libffi work
02:07 ash_ i just changed my memory allocation strategy so it allocates memory based off of the size of the objects its supposed to pass, so, for example (short a, long b); only allocates memory (sizeof(short) + sizeof(long)) and does the appriopriate pointer math to move the variables around, but right now I am having a stupid moment and my pointers aren't working out, but i should have that fixed soon
02:08 plobsing are your pointers aligned? that could cause problems
02:11 ash_ http://github.com/ashgti/parrot/blob/gsoc_​nci/config/gen/libffi/nci-ffi.pmc.in#L1102 seems to be off
02:12 ash_ if i print the value (like i do on the next line) translation_pointers[i] points to a chunk of code, like it should, but values + value_offset does not
02:12 ash_ explaining it helps me think about were the problem might be
02:16 plobsing um... arity is parrot side last I checked. 'J' doesn't contribute to arity.
02:16 ash_ yeah
02:16 ash_ i subtract it out
02:16 ash_ well, that depends on the call, but in most cases J is ignored
02:17 ash_ (hence the j_offset variable, so i can keep track of if a J was used)
02:17 ash_ and if for whatever reason 2 J's are used
02:17 plobsing oic
02:18 ash_ some calls though have the signature (for instance) "PJt", so in that case, when I call Parrot_pcc_fill_params_from_c_args i don't include J as an arg
02:18 plobsing wait. why are you using memcpy for copying one value?
02:18 ash_ but I add it in when I call the NCI function
02:18 Coke joined #parrot
02:18 dalek partcl-nqp: a6a25c1 | Coke++ | src/Partcl/commands/main.pm:
02:18 dalek partcl-nqp: fix return value of set on an array
02:18 dalek partcl-nqp: review: http://github.com/partcl/partcl-nqp/commit​/a6a25c1593265009b7d265352fb57945a653cb77
02:18 dalek partcl-nqp: 58a3154 | Coke++ | src/Partcl/commands/array.pm:
02:18 dalek partcl-nqp: implement [array set] & [array get].
02:18 dalek partcl-nqp: minor simplification to [array size]
02:18 dalek partcl-nqp: review: http://github.com/partcl/partcl-nqp/commit​/58a315455f3684faaf7865eee4b9d4f104374286
02:18 dalek partcl-nqp: 0ae5973 | Coke++ | t/cmd_array.t:
02:18 dalek partcl-nqp: untodo passing tests.
02:18 dalek partcl-nqp: review: http://github.com/partcl/partcl-nqp/commit​/0ae597376f6a18bd1e095be80e979a91189467d0
02:18 dalek partcl-nqp: 9cde88d | Coke++ |  (4 files):
02:18 dalek partcl-nqp: Support basic $array(key) syntax, untodo tests.
02:18 dalek partcl-nqp: review: http://github.com/partcl/partcl-nqp/commit​/9cde88d4075b76e4d23559c815e40db9c73ee010
02:19 ash_ because you cant assign a value to an arbitrary memory location? (but you can memcpy to an arbitrary memory location)
02:19 plobsing you can cast the memory to the appropriate pointer type and assign
02:20 ash_ true.. let me try that
02:22 ash_ hmmm, its still off for some reason
02:26 ash_ i am sure there are places in my code where I could simplify or do things better...
02:30 ash_ hmm ill look into this more in the morning, my girlfriend wants me to hang out tonight
02:30 ash_ thanks for looking at it plobsing++
02:30 ash_ night &
02:41 janus joined #parrot
02:47 jhelwig_ joined #parrot
02:47 atrodo joined #parrot
02:48 atrodo joined #parrot
02:49 atrodo joined #parrot
02:52 dalek partcl-nqp: 2018690 | Coke++ |  (2 files):
02:52 dalek partcl-nqp: add [array names]
02:52 dalek partcl-nqp: review: http://github.com/partcl/partcl-nqp/commit​/2018690565c73758648e0267ff896f23e62b03e3
02:56 TiMBuS joined #parrot
03:04 Coke joined #parrot
03:09 dalek partcl-nqp: 9128ec7 | Coke++ |  (2 files):
03:09 dalek partcl-nqp: handle [array names] with no pattern.
03:09 dalek partcl-nqp: review: http://github.com/partcl/partcl-nqp/commit​/9128ec7526bbb318d7f834749128a7ffc6ae0123
03:19 ttbot Parrot trunk/ r47820 i386-linux-thread-multi make error http://tt.taptinder.org/file/cmdout/352747.txt ( http://tt.taptinder.org//bui​ldstatus/pr-Parrot/rp-trunk/ )
03:21 dalek partcl-nqp: f9937b5 | Coke++ |  (2 files):
03:21 dalek partcl-nqp: [array unset]
03:21 dalek partcl-nqp: review: http://github.com/partcl/partcl-nqp/commit​/f9937b5a696fd3200e97cf40170ad66736c8009b
03:22 ttbot Parrot trunk/ r47821 i386-linux-thread-multi make error http://tt.taptinder.org/file/cmdout/352775.txt ( http://tt.taptinder.org//bui​ldstatus/pr-Parrot/rp-trunk/ )
03:24 dalek parrot: r47814 | chromatic++ | trunk/src/hash.c:
03:25 dalek parrot: [hash] Hoisted constants in hash_thaw().
03:25 dalek parrot: A good optimizing compiler should be able to optimize much more here now.
03:25 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47814/
03:25 dalek parrot: r47815 | chromatic++ | trunk/src/hash.c:
03:25 dalek parrot: [hash] Reduced hash thawing costs.
03:25 dalek parrot: Avoided double calls to parrot_hash_put() in hash_thaw().  This is a minor
03:25 dalek parrot: optimization.
03:25 purl hmmm... optimization is the mother of all fuckups. or "1) it's an IO problem, 2) it's an IO problem, 3) it's an IO problem" or for those who don't have enough hardware or something people often obsess about pointlessly or see Rules of Optimization or "Premature optimization is the root of all evil"
03:25 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47815/
03:25 dalek parrot: r47816 | chromatic++ | trunk/src/pmc/hashiterator.pmc:
03:25 dalek parrot: [PMC] Sped up HashIterator's shift_string VTABLE.
03:25 dalek parrot: Removing the delegation to shift_pmc() avoids creating a temporary PMC, which
03:25 dalek parrot: speeds up the Rakudo startup benchmark by ~6.23%, and should help Rakudo run
03:25 dalek parrot: time and anything else which performs Class introspection.
03:25 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47816/
03:25 dalek parrot: r47817 | chromatic++ | trunk/src/pmc/object.pmc:
03:25 dalek parrot: [PMC] Tidied Object PMC; no functional changes.
03:25 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47817/
03:25 dalek parrot: r47818 | chromatic++ | trunk/src/pmc/pmcproxy.pmc:
03:25 dalek parrot: [PMC] Removed duplicate code from PMCProxy.
03:25 dalek parrot: Delegating most of its init VTABLE to Class's init works just fine.
03:25 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47818/
03:25 dalek parrot: r47819 | chromatic++ | trunk/src/pmc/object.pmc:
03:25 dalek parrot: [PMC] Optimized isa VTABLE for Object PMC.
03:25 dalek parrot: For some reason, it's measurably faster this way with an optimized build.
03:25 dalek parrot: Figure that one out.
03:25 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47819/
03:25 dalek parrot: r47820 | chromatic++ | trunk/src/pmc/class.pmc:
03:25 dalek parrot: [PMC] Added a cache to speed up Class's isa_pmc.
03:25 dalek parrot: Rather than recursing upwards for positive and negative isa tests, each Class
03:25 dalek parrot: now has a cache of Classes it is and isn't.  This only works if the Class is
03:25 dalek parrot: already instantiated, for obvious "don't pull the rug out from under me"
03:25 dalek parrot: reasons.  The result is a 1.5% performance improvement on the Rakudo startup
03:25 dalek parrot: benchmark.
03:25 purl It seems faster
03:25 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47820/
03:25 dalek parrot: r47821 | chromatic++ | trunk (3 files):
03:25 dalek parrot: [src] Optimized Class inspect_str hash cloning.
03:25 dalek parrot: You may now perform shallow clones of hashes with the not-exported
03:25 dalek parrot: parrot_hash_clone_pruneable() function; Class's inspect_str VTABLE now uses
03:25 dalek parrot: this instead of cloning the hash manually.  The function may need a better
03:25 dalek parrot: name, and we may consider exporting it.
03:25 dalek parrot: This optimization improves Rakudo startup by 3.557% and should improve all
03:25 dalek parrot: object reflection similarly.
03:25 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47821/
03:37 jhelwig joined #parrot
03:47 LoganLK joined #parrot
03:52 ttbot Parrot trunk/ r47822 i386-linux-thread-multi make error http://tt.taptinder.org/file/cmdout/352942.txt ( http://tt.taptinder.org//bui​ldstatus/pr-Parrot/rp-trunk/ )
03:57 dalek parrot: r47822 | mikehh++ | trunk/src/hash.c:
03:57 dalek parrot: fix codetest failure - add missing docs
03:57 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47822/
03:57 dalek parrot: r47823 | bacek++ | trunk/src/pmc/class.pmc:
03:57 dalek parrot: Re-run headerizer
03:57 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47823/
04:09 dalek rakudo: f34e780 | pmichaud++ | src/binder/bind.c:
04:09 dalek rakudo: Refactor "is copy" binding to avoid extra objectrefs and VTABLE_clone.
04:09 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/f​34e780d4d473b25fbb83104fa50b49a13058917
04:32 bacek_at_work pmichaud, ping.
04:33 dukeleto 'ello
04:35 bacek_at_work msg pmichaud in NQP RPA.delete should use pir::delete__vQp, not pir::delete__vQi.
04:35 purl Message for pmichaud stored.
04:37 dukeleto incoming
04:37 purl duck!
04:43 dalek plparrot: 8c00aa8 | dukeleto++ | plparrot.c:
04:43 dalek plparrot: Add some more meat to the plperl6_func_handler skeleton
04:43 dalek plparrot: review: http://github.com/leto/plparrot/commit/8​c00aa8b25a141a326e983bf2756becad1bdf7a8
04:43 dalek plparrot: 68311bc | dukeleto++ | plparrot.c:
04:43 dalek plparrot: Get rid of SPI for now
04:43 dalek plparrot: review: http://github.com/leto/plparrot/commit/6​8311bc6149fcd05fc67fc0233d42ee88e1cace3
04:43 dalek plparrot: 1a3efda | dukeleto++ | plparrot.c:
04:43 dalek plparrot: Add more meat to plperl6_func_handler
04:43 dalek plparrot: review: http://github.com/leto/plparrot/commit/1​a3efdaab9711a34837da34fc6ffacecd59ff9c2
04:43 dalek plparrot: 63ac82d | dukeleto++ | plparrot.c:
04:43 dalek plparrot: Add code to wrap PL/Perl6 procedures
04:43 dalek plparrot: review: http://github.com/leto/plparrot/commit/6​3ac82db94216571035e7d3850a8f2795076d907
04:43 dalek plparrot: dc6ad7d | dukeleto++ | plparrot.c:
04:43 dalek plparrot: Attempt to compile perl6 source
04:43 dalek plparrot: review: http://github.com/leto/plparrot/commit/d​c6ad7d6b76037f50460cdf3885c45726d91d6da
04:43 dalek plparrot: 3ea00ac | dukeleto++ |  (3 files):
04:43 dalek plparrot: Start the code which will wrap Perl 6 procedures and call them from PIR
04:43 dalek plparrot: review: http://github.com/leto/plparrot/commit/3​ea00acba9d50a3309f36ed17084a5e945a1c4d1
04:43 dalek plparrot: b1855fb | dukeleto++ |  (3 files):
04:43 dalek plparrot: Closer to getting Perl 6 code running
04:43 dalek plparrot: review: http://github.com/leto/plparrot/commit/b​1855fb6b55dfe2b922afea221d5baf43e8dd13f
04:43 dalek plparrot: c8ae516 | dukeleto++ | plparrot.c:
04:43 dalek plparrot: Actually run Perl 6 code
04:43 dalek plparrot: review: http://github.com/leto/plparrot/commit/c​8ae516ec085b26c2dfc9c4d510a5e0c6b4e77b7
04:43 dalek plparrot: bfef901 | dukeleto++ | plperl6.pir:
04:43 dalek plparrot: Dump the return value with dumper.pbc
04:43 dalek plparrot: review: http://github.com/leto/plparrot/commit/b​fef901baa4e084c8319a9127b590d6175357dc4
04:43 dalek plparrot: e0ad2f9 | dukeleto++ | plparrot.c:
04:43 dalek plparrot: Get rid of magic constants
04:43 dalek plparrot: review: http://github.com/leto/plparrot/commit/e​0ad2f9b9e768c6381fbbd8d4171725ccca04e57
04:43 dalek plparrot: 409644c | dukeleto++ |  (3 files):
04:43 dalek plparrot: Create Perl 6 wrapper code from PIR, not C
04:43 dalek plparrot: review: http://github.com/leto/plparrot/commit/4​09644c140fc919445a05f91a9f946d539feb0cf
04:43 dalek plparrot: dc93d09 | dukeleto++ | t/sql/test.sql:
04:43 dalek plparrot: Add a test for floats in PL/Perl6
04:43 dalek plparrot: review: http://github.com/leto/plparrot/commit/d​c93d09fabbafa2b3e00b33f71f8dfd280cc8027
04:43 dalek plparrot: 69c39b5 | dukeleto++ |  (2 files):
04:43 dalek plparrot: Only define HAS_PERL6 if PERL6PBC is defined
04:43 dalek plparrot: review: http://github.com/leto/plparrot/commit/6​9c39b59c88342bc90842b74fa3733627d35f87c
04:43 dalek plparrot: 3058930 | dukeleto++ |  (4 files):
04:43 dalek plparrot: Give PL/Perl6 tests their own home
04:43 dalek plparrot: review: http://github.com/leto/plparrot/commit/3​05893023c96988190a8db138f9a4bfbbebc9e23
04:43 dalek plparrot: ab6a764 | dukeleto++ |  (2 files):
04:43 dalek plparrot: Properly define HAS_PERL6
04:43 dalek plparrot: review: http://github.com/leto/plparrot/commit/a​b6a764af72ee5bf27f20f38d070e15b7845efd9
04:43 dalek plparrot: 5893254 | dukeleto++ |  (9 files):
04:43 dalek plparrot: Merge branch 'plperl6'
04:43 dalek plparrot: review: http://github.com/leto/plparrot/commit/5​893254a59a2dcb4596a7246c09648e36cbf7ebd
04:47 dalek parrot: r47824 | mikehh++ | trunk/src/pmc/class.pmc:
04:47 dalek parrot: add cast(s) to get g++ to build
04:47 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47824/
04:47 dalek parrot: r47825 | mikehh++ | trunk/src/pmc/object.pmc:
04:47 dalek parrot: remove const(s) to get g++ to build
04:47 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47825/
05:19 simcop238 joined #parrot
05:21 cotto ~~
05:25 simcop2387 joined #parrot
05:26 LoganLK joined #parrot
05:36 dalek parrot: r47826 | plobsing++ | branches/dynop_mapping (11 files):
05:36 dalek parrot: handle op_info
05:36 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47826/
05:38 Coke joined #parrot
05:38 simcop2387 joined #parrot
05:43 simcop238 joined #parrot
05:55 simcop2387 joined #parrot
06:04 simcop238 joined #parrot
06:16 bacek_at_work cotto, ~~
06:17 simcop2387 joined #parrot
06:17 cotto I am smartly matched.
06:17 bacek_at_work cotto, :)
06:17 bacek_at_work cotto, speaking of pirates - http://tweetphoto.com/28970505
06:17 bacek_at_work afk # Friday beers
06:18 cotto that's great
06:18 cotto pirate is also http://tweetphoto.com/28970505
06:18 purl okay, cotto.
06:27 moritz purl: msg tcurtis with r47826 all tests pass again, thanks. Will try to actually use the pattern matcher soon
06:27 purl Message for tcurtis stored.
06:30 cotto bacek, I don't think the dynamic hello world test in t/pbc/call.txt *should* work.  Under imcc it throws an exception.
06:35 moritz does nqp-rx support inheritance via 'class Foo is Bar::Baz { }'?
06:35 cotto sure
06:35 moritz thanks
06:35 moritz then something else is borked
06:37 tcurtis joined #parrot
06:38 ilbot2 joined #parrot
06:38 Topic for #parrotis now Parrot 2.5.0 Released! | parrot.org | Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | GSOC Students: trac.parrot.org/parrot/wiki/GSoCersStartHere | Priorities: merge gc_massacre, remove deprecated items, add deprecation notices for 2.6, close tickets.
06:58 dalek parrot: r47827 | darbelo++ | branches/gsoc_nfg (2 files):
06:58 dalek parrot: Work out the last iterator issues causing the creation of dynamic graphemes for valid Unicode compositions.
06:58 dalek parrot: Add passing tests for this and a failing one for a newly uncovered bug with lazy table creation in transcoding.
06:58 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47827/
06:58 dalek parrot: r47828 | tcurtis++ | branches/gsoc_past_optimization (15 files):
06:58 dalek parrot: Create Tree::Walker base class for ::Walker classes.
06:58 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47828/
07:01 moritz tcurtis: turns out the tests now pass, I just have a local problem related to get_root_global not finding P6metaclass - which sometimes manifests in my code, and sometimes in your code, depending on compilation order
07:05 tcurtis moritz: What revision?
07:05 purl revision is 0, unless it's an svn co, then it's whatever svn reports
07:05 moritz tcurtis: 47826
07:06 moritz bbl
07:07 tcurtis moritz: I'm going to go to bed soon, and I probably won't be on again until tomorrow evening, but msg me if there are any further problems or you have any questions.
07:10 eternaleye joined #parrot
07:14 dalek parrot: r47829 | darbelo++ | branches/gsoc_nfg (3 files):
07:14 dalek parrot: Add some null table handling to grapheme_table_capacity and use that to simplify the iterator code a bit.
07:14 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47829/
07:17 arnsholt joined #parrot
07:30 dalek parrot: r47830 | darbelo++ | branches/gsoc_nfg/src/string/encoding/nfg.c:
07:30 dalek parrot: Localize a variable.
07:30 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47830/
07:37 moritz ok, general question
07:37 purl general question is the Perl Cookbook a good choice for someone's (who's still basically a beginner) second perl book?
07:38 moritz which file do I have to load (.include or loadlib or load_bytecode or whatever) to get acccess to P6Metaclass?
07:55 plobsing moritz: probably P6object
07:56 moritz plobsing: thanks, just found it
07:56 moritz what about HLL::Compiler?
07:57 moritz I'm kinda randomly loading PCT and NQP related stuff in the hope it'll work at some point :(
07:57 cotto what's nqp's quote_EXPR ?
07:57 moritz cotto: it's a method for parsing quoted strings
07:58 moritz (iirc)
07:58 cotto wfm
07:59 plobsing moritz: are you looking for 'PCT/HLLCompiler.pbc' ?
07:59 arnsholt joined #parrot
08:00 moritz plobsing: probably... trying...
08:03 moritz still doesn't work :(
08:03 moritz I'll paste some code...
08:03 dalek parrot: r47831 | NotFound++ | trunk/src/pmc/default.pmc:
08:03 dalek parrot: Don't use a name that conflicts in some platform and you don't need to protect it
08:03 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47831/
08:03 nopaste "moritz" at 192.168.1.3 pasted "This dies with "Parent is not a class"" (16 lines) at http://nopaste.snit.ch/21571
08:04 moritz that's generated PIR from my attempt to use tcurtis' optimization framework in rakudo
08:05 moritz actually the line number points to a few lines above the class to new_class, but I don't believe it
08:06 moritz it points to the load_bytecode "PAST/Pattern.pbc", but if I comment out that line, it still dies with the same error
08:07 moritz that's the nqp source: http://github.com/rakudo/rakudo/blob/​optimizations/src/Perl6/Optimizer.pm
08:12 plobsing moritz: load_bytecode 'nqp-rx.pbc' seems to do it
08:13 cotto parallel testing in distutils would be really nice
08:13 cotto That'd be a great test case for the threading gsoc project.
08:13 cotto ash's iirc
08:14 plobsing nope. ash_ is NCI. he was talking about a different kind of threading today.
08:14 moritz Chandon was doing threads, iirc
08:15 cotto idrc then
08:18 JimmyZ joined #parrot
08:25 cotto clock?
08:25 purl cotto: LAX: Fri 1:25am PDT / CHI: Fri 3:25am CDT / NYC: Fri 4:25am EDT / LON: Fri 9:25am BST / BER: Fri 10:25am CEST / IND: Fri 1:55pm IST / TOK: Fri 5:25pm JST / SYD: Fri 6:25pm EST /
08:33 cotto msg bacek I suspect a POST::String class with an encoding and charset will be a good idea.  Thoughts?
08:33 purl Message for bacek stored.
08:35 dalek pir: fe13df5 | cotto++ |  (3 files):
08:35 dalek pir: add charset/encoding parsing and tests for string literals
08:35 dalek pir: review: http://github.com/bacek/pir/commit/fe1​3df5379f7df90920cfade2ece9db657e043c6
08:35 dalek pir: f95e32f | cotto++ | src/PIR/Grammar.pm:
08:35 dalek pir: remove trailing spaces and make vim highlighting nicer
08:35 dalek pir: review: http://github.com/bacek/pir/commit/f95​e32fd90a28bfab4234ddba665d1ecbd927591
08:35 dalek pir: eb31699 | cotto++ | src/PIR/Grammar.pm:
08:35 dalek pir: delete todo comment
08:35 dalek pir: review: http://github.com/bacek/pir/commit/eb3​1699a9fa0fe2a83e01cec359925c375c3edeb
08:40 arnsholt joined #parrot
08:43 plobsing dynop_mapping now builds without failing. maybe tommorrow I'll be able to extinguish all the little problems.
08:43 plobsing this is taking longer than expected
08:46 simcop238 joined #parrot
08:51 cotto that's still good progress
08:52 dalek parrot: r47832 | plobsing++ | branches/dynop_mapping/src (2 files):
08:52 dalek parrot: fixup pbc_merge to remap ops properly
08:53 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47832/
09:10 fperrad joined #parrot
09:36 bacek_mobile joined #parrot
09:37 bacek_mobile cotto, post::string is really good idea
10:25 lucian joined #parrot
11:29 Coke joined #parrot
11:31 khairul joined #parrot
12:14 fperrad joined #parrot
12:54 bluescreen joined #parrot
13:00 whiteknight joined #parrot
13:21 JimmyZ joined #parrot
13:30 kthakore bacek_at_work: so did it get accepted TT812 ?
13:34 ambs joined #parrot
13:38 plobsing joined #parrot
13:45 whiteknight good morning, #parrot
13:46 atrodo good morning
13:46 purl Lies!
13:49 Coke atrodo: ~~
13:50 atrodo I need an irc lesson, what does ~~ indicate?
13:58 arnsholt Is there a practical way to splice RPAs?
13:58 arnsholt (Or at least just insert an element in the middle of it)
13:59 ambs atrodo: Coke waved :)
14:01 whiteknight arnsholt: Not that I am aware of. RPAs are implemented as raw C arrays internally, not linked lists
14:01 whiteknight so there are no good semantics for insert or remove from the middle
14:01 bubaflub joined #parrot
14:02 arnsholt Ah, right
14:03 arnsholt I'll just implement my sets the easy way then =)
14:04 atrodo ambs++ # Thanks.  I was never sure
14:10 gbacon joined #parrot
14:18 lucian_ joined #parrot
14:28 ambs joined #parrot
14:36 dalek parrot: r47833 | tcurtis++ | branches/gsoc_past_optimizat​ion/t/library/pastwalker.t:
14:36 dalek parrot: Remove debugging says.
14:36 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47833/
14:37 Coke joined #parrot
14:56 whiteknight arnsholt: what is the easy way? It is probably worthwhile for us to write a new PMC type with insert/remove semantics
14:56 whiteknight I could start prototyping such a beast in Parrot-Data-Structures if you want
14:57 Andy Server is back up, now crnaking thru a make test on GCC 4.6
14:58 Andy And I'm being the PARROT_ annotation police.
14:58 Andy "You there!  You could be flagged as PARROT_CONST_FUNCTION!"
15:13 whiteknight tcurtis: If only we had some kind of mechanism that would automatically remove debugging statements from the source code...
15:15 Coke coke waved and then fell asleep, aparently.
15:15 JimmyZ joined #parrot
15:15 ambs :)
15:25 dalek parrot: r47834 | petdance++ | trunk/src/nci_test.c:
15:25 dalek parrot: test functions need annotations, too, because they are testing
15:25 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47834/
15:25 dalek parrot: r47835 | petdance++ | trunk/compilers/opsc/src/Ops/Trans/C.pm:
15:25 dalek parrot: normalize C headers to match the rest of the codebase
15:25 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47835/
15:27 jsut joined #parrot
15:36 kthakore ambs: hi!
15:36 kthakore oops
15:36 kthakore atrodo: hi
15:36 atrodo Hi!
15:36 ambs kthakore: hellows
15:39 kthakore ambs: hi
15:39 purl what's up, kthakore.
15:39 kthakore atrodo: oh hai
15:39 particle kthakore: i'm amazed you managed to distract ambs from the brazil-portugal hame
15:39 particle *game
15:39 ambs particle: hehehe
15:39 ambs it isn't going anywhere
15:39 darbelo It hasn't been a very exiting game, all told.
15:40 particle i think they don't mind if each other advance
15:40 particle ...live to fight another day.
15:40 atrodo kthakore> Hi again!
15:42 particle yep, they took out fabiano.
16:10 patspam joined #parrot
16:11 theory joined #parrot
16:24 arnsholt whiteknight: The easy way would be an array and looping over the entire thing before inserting
16:25 arnsholt (To check if the element is already present)
16:25 whiteknight arnsholt: easy for you. hard for the CPU
16:26 arnsholt Yeah. Which is why I wondered if it was possible to splice RPAs =)
16:27 arnsholt But yeah, actually writing a Set PMC might be a good idea
16:28 arnsholt Good opportunity to learn how to write 'em too =)
16:28 whiteknight yeah
16:30 dalek parrot: r47836 | mikehh++ | trunk/src/nci_test.c:
16:30 dalek parrot: add C function documentation
16:30 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47836/
16:44 fperrad joined #parrot
16:48 fperrad purl ?
16:48 purl yes, fperrad?
17:09 gbacon joined #parrot
17:12 davidfetter joined #parrot
17:19 treed joined #parrot
17:25 cotto_work ~~
17:31 chromatic joined #parrot
17:36 whiteknight chromatic: nice work with the object optimizations
17:37 chromatic Thanks.  There are a few more available.
17:37 chromatic isa_pmc could be smarter and simpler.
17:38 chromatic Another fun one is parrot_hash_clone; that could be a couple of well-placed memcpy instructions instead of manual iteration.
17:38 chromatic Shallow clones are trivial, and detecting deep clones is fairly easy.
17:39 mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#34577), fulltest) at r47836 - Ubuntu 10.04 amd64 (g++)
17:40 chromatic I didn't have the brainpower to get it right on the airplane, and I'd done enough C for the day.  Anyone willing to poke at it a bit should get a ~2.5% Rakudo improvement with ~30 minutes of work.
17:43 cotto_work chromatic, I gather from kid51 that Lorito barely came up at the Parrot/Rakudo BOF.  Does that mean that Lorito is a lower priority or just that there were more pressing issues that those present wanted to discuss?
17:44 chromatic The latter.
17:44 chromatic I have three pages of notes on Lorito from the flight over -- in particular, one way security can work.
17:45 cotto_work Great.
17:45 ash_ how complicated are the runcores?
17:45 cotto_work If you don't need preprocessing for the .ops files, they're not bad.
17:46 whiteknight chromatic: I thought we were moving to using all shallow clones for core PMC types
17:46 whiteknight ash_: in general, not too complicated
17:46 whiteknight well, they don't need to be
17:46 whiteknight a runcore is essentially a function that takes a pointer to bytecode and loops over it
17:46 cotto_work If you want to do something silly like profiling, it ups the complexity a bit.
17:47 whiteknight ash_: Look at http://trac.parrot.org/parrot/br​owser/trunk/src/runcore/cores.c
17:47 whiteknight the functions runops_slow_core and runops_fast_core are the basics, and are very informative
17:48 whiteknight lookup the definition of DO_OPs if you're trying to go cross-eyed
17:48 chromatic whiteknight, maybe so... but even still, parrot_hash_clone does more work than it needs to.
17:48 whiteknight chromatic: no doubt
17:49 ash_ are runcore's pluggable? or do they have to be present at compile time?
17:49 chromatic Half an hour, tops, for a moderately decent C programmer willing to unravel it.
17:49 whiteknight ash_: not pluggable, though if somebody put in the elbow grease they could be
17:49 cotto_work There's a little work remaining to make them fully pluggable.
17:50 whiteknight ash_: but if you build it in, you can select it at runtime
17:50 whiteknight chromatic: Hey! I'm a moderately decent C programmer!
17:50 chromatic Go for it.
17:57 whiteknight chromatic: looking at this, I don't see any obvious places where we can drop in a memcpy
17:58 whiteknight ...unless we want individual buckets to be shared across multiple hashes
17:58 LoganLK joined #parrot
17:58 whiteknight there are plenty of other simplifications Ithink we can make, however
17:58 rblackwe joined #parrot
17:59 chromatic No reason to have all of those parrot_hash_put calls.
17:59 whiteknight right, I'll definitely get rid of that
18:00 chromatic Presizing makes sense too.
18:00 whiteknight yeah, the whole thing is going to get simplified. My point was I don't think memcpy is the tool to use
18:01 chromatic Not with the next pointers, no.
18:04 whiteknight There is a hell of a lot of cleanup needed in hash.c and hash.h. I may just create a branch
18:05 whiteknight I wonder if anybody can explain to me the logic behind N_BUCKETS and HASH_ALLOC_SIZE macros
18:05 chromatic I *think* it's a desire to expand by doubling the hash size, but I'm not sure.
18:06 chromatic I've always heard (The Practice of Programming?) that you want an odd number like 17 for the modulus when picking the bucket.
18:06 whiteknight actually, it looks like it's attempting to combine allocations for the pointer array and the initial buckets for each point in the array
18:06 whiteknight although...not quite
18:07 chromatic It does initially.
18:07 whiteknight I can't figure out why N_BUCKETS in (n - n/4)
18:09 dalek parrot: r47837 | whiteknight++ | trunk/docs/project/release_manager_guide.pod:
18:09 dalek parrot: [docs] add empty spaces on the calendar for releases between now and 3.0
18:09 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47837/
18:11 whiteknight whatever, I'll trace through this more when I get home
18:14 gbacon joined #parrot
18:16 mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#34578), fulltest) at r47836 - Ubuntu 10.04 amd64 (gcc with --optimize)
18:19 cotto_work bacek, ping
18:22 mikehh whiteknight: I might give RM a try
18:22 whiteknight RM?
18:22 purl it has been said that RM is a powerful compression tool, that also provides unbreakable encryption or one-way compression or the ultimate in lossy compression protocols or reliable messaging and sadly real media or good for opening large SVGs
18:22 moritz rm is also release manager
18:22 purl okay, moritz.
18:22 dalek rakudo: 4e6cce6 | (Patrick Abi Salloum)++ | src/core/operators.pm:
18:22 dalek rakudo: Various series fixes:
18:22 dalek rakudo: * series operator handles cases when limit is on the wrong side
18:22 dalek rakudo: * generators that involve geometric sign change work (we pass an extra TODO)
18:22 dalek rakudo: * use Numeric instead of Num so that Rats also work
18:22 dalek rakudo: Signed-off-by: Moritz Lenz <moritz@faui2k3.org>
18:22 mikehh as in Release Manager
18:22 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/4​e6cce64a90d19f2966085e0f81e596fb9cce322
18:22 whiteknight mikehh: Oh, awesome! What month do you want?
18:23 mikehh whiteknight: whatever
18:23 purl whatever is trying to write to this should not, and I worked up the entire chain of ensure_class_loaded
18:23 mikehh whiteknight: could try for August
18:24 whiteknight mikehh: done and done
18:25 bubaflub whiteknight: just got your message.  i've been lurking for a bit.  i'd love to contribute to PLA if you have somewhere you want me to start, lemme know.
18:25 whiteknight bubaflub: Anywhere is good. I'm pushing for a release following Parrot 2.6.0.  so adding new features and increasing test coverage are top priorities
18:26 bubaflub okey dokey, i'll take a look at the code sometime today / tonight
18:26 bubaflub and see what i can hack on
18:26 whiteknight adding examples for how to use PLA from various languages (winxed, rakudo, partcl) would be nice too
18:26 whiteknight awesome! Let me know if you want a commit bit and I'll hook you up
18:27 bubaflub i'm bubaflub on github if that helps at all
18:30 ambs joined #parrot
18:32 chromatic moritz, if you or anyone else has a chance, Parrot has some nice optimizations that appear to help Rakudo.
18:32 moritz chromatic: I'll bump PARROT_REVISION and see what happens :-)
18:33 moritz or better I'll time a spectest run first
18:33 cotto_work chromatic, what sets off your "this could use some optimization" trigger?
18:35 chromatic I'm not sure I understand the question.
18:37 cotto_work How do you pick a chunk of code to optimize?
18:38 chromatic I pick a likely benchmark, profile it, then look at the KCachegrind visualization.
18:38 chromatic Anything that creates lots of GCables is a target.
18:38 chromatic Anything with a lot of inclusive time is a target.
18:38 chromatic Anything with a lot of self time is a big target.
18:39 chromatic Then I walk up and down the call graph to understand particular paths.
18:40 kthakore hi chromatic can you accept my patch at TT 812 ?
18:40 chromatic You don't see the changes that make things worse or that have no effect.
18:40 kthakore chromatic: pretty please?
18:41 * cotto_work gets it
18:41 dalek parrot: r47838 | whiteknight++ | trunk/docs/project/release_manager_guide.pod:
18:41 dalek parrot: [docs] mikehh++ has August
18:41 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47838/
18:43 chromatic testing now, kthakore.
18:43 cotto_work dig + elbow grease +  keep what helps
18:43 kthakore chromatic: yay!
18:43 kthakore chromatic: wow! you get grease for you elbow?
18:43 kthakore oops
18:44 chromatic It's a combination of insight, experience, tools, and persistence.
18:44 kthakore chromatic: oh rlly? we could use some of that in SDL ... but I am a dumb ass
18:45 kthakore chromatic: all I have is hindsight, vigour, blind faith and ignorance
18:45 chromatic You can trade that for the others, but it's not a quick transaction.
18:45 kthakore yeah
18:46 kthakore meh ... w/e I still got direct pixel access to surface pixels working!!!
18:46 kthakore :) I am so freaking proud of that
18:47 * sjn looks at http://www.youtube.com/watch?v=tz-Bb-D6teE (60 minute talk with Steve Yegge, at Stanford titled "Dynamic Languages Strike Back")
18:47 kthakore sjn: cool
18:48 moritz sjn: a bit ranty, but quite nice :-)
18:49 sjn kinda neat, yes :)
18:50 * sjn is completely blank when it comes to JITs and optimizing, but listening to the rant gave me another good feeling about Parrot :)
18:58 dalek parrot: r47839 | chromatic++ | trunk/compilers/pct/src/PAST/Node.pir:
18:58 dalek parrot: [PCT] Removed unnecessary passthrough method.
18:58 dalek parrot: PAST::OP::lvalue() was redundant (TT #812, Austin Hastings, patch by Kartik
18:58 dalek parrot: Thakore).
18:58 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47839/
18:59 kthakore yay!
19:00 * kthakore dances to 2nd patch jubiliance
19:00 kthakore chromatic: thanks man
19:00 chromatic Thanks for the patch.
19:00 particle kthakore++
19:00 kthakore np
19:00 kthakore it was a simple one
19:01 kthakore so simple even I could od it
19:01 kthakore all I had to do was delete! yay!
19:06 dalek TT #812 closed by chromatic++: PCT - PAST::Op::lvalue() is redundant
19:06 dalek TT #812: http://trac.parrot.org/parrot/ticket/812
19:12 mikehh rakudo (4e6cce6) builds on parrot r47836 - make test PASS, spectest_smolder -> #34580 (pugs r31446) PASS - Ubuntu 10.04 amd64 (gcc with --optimize)
19:12 mikehh 19 TODO PASSes in 6 files
19:17 bubaflub joined #parrot
19:23 mikehh pir/PIRATE build ok, test PASS - t/01-parse/05-assign.t - TODO passed:   10
19:23 mikehh joined #parrot
19:25 mikehh partcl-nqp: make ok / test PASS
19:39 mikehh winxed - make ok test/test1/test2 all PASS
19:46 cotto_work If anyone with a PIRATE commit bits wants some easy karma, the string tests in t/01-parse/05-assign.t should be moved to t/parse/string.txt
19:47 whiteknight NotFound: ping
19:47 jsut_ joined #parrot
20:18 mariano__ joined #parrot
20:18 rblackwe In Damian's Rakudo class at YAPC and he just showed multiple dispatch on MAIN.  that is just coolio!
20:21 particle go american continent!
20:22 particle all seven teams advance.
20:22 moritz rblackwe: I'm amazed it works
20:22 particle *continents
20:22 moritz rblackwe: know how we cheat in that case :-)
20:22 particle rblackwe: that's how we roll :)
20:22 rblackwe moritz: to rephrase he showed it will be possible did not say if it worked right now.
20:23 particle it will work soon, as i finish my hague grant
20:23 particle it's working now, kinda
20:23 moritz rblackwe: what currently works is that if only one candidate matches, it is picked up
20:23 rblackwe particle++
20:23 moritz rblackwe: what doesn't work is that the best match is always called
20:24 moritz actually it will be pretty trivial to get right once &multi.cando is fixed
20:31 moritz chromatic: r47839 didn't make rakudo's spectest run measurable faster
20:33 chromatic What are you comparing?
20:33 moritz time perl tool/test_summary.pl
20:34 moritz r47835 and r47839
20:34 chromatic Start with r47808.
20:34 moritz the latter is actually a bit slower, but that might be due to the noise (other prorgrams running in parallel)
20:35 dalek partcl-nqp: c46b635 | Coke++ |  (2 files):
20:35 dalek partcl-nqp: fix [array set] to coerce @list to a list.
20:35 dalek partcl-nqp: review: http://github.com/partcl/partcl-nqp/commit​/c46b6355ffe027cd153a6ed14e46affb1b0bf1ab
20:35 dalek partcl-nqp: 16baa4d | Coke++ |  (2 files):
20:35 dalek partcl-nqp: the list passed array set has to have an even # of elements.
20:35 dalek partcl-nqp: review: http://github.com/partcl/partcl-nqp/commit​/16baa4d1e5964e492f0de61b7e1df6c7ab07c8fa
20:35 dalek partcl-nqp: 14e5902 | Coke++ |  (2 files):
20:35 dalek partcl-nqp: validate that [array set] is called on an array.
20:35 dalek partcl-nqp: review: http://github.com/partcl/partcl-nqp/commit​/14e5902656529beca722082d7a44a0c40661aaee
20:37 atrodo I wanted to take a second and say thanks to all the parrot people at yapc for letting me hang out and listen in
20:40 mariano__ joined #parrot
20:41 chromatic You're always welcome.
20:43 particle atrodo: i'm glad you could join us and looking forward to more of your input
20:51 atrodo I hope I can give more input in the future.  Parrot's starting to grow on me
20:54 ambs joined #parrot
21:00 whiteknight joined #parrot
21:01 kthakore atrodo: you were listening!
21:01 kthakore atrodo: who gave you permission?
21:08 atrodo kthakore> huh?
21:09 kthakore atrodo: what?
21:10 kthakore atrodo: say it louder I can't hear you here
21:10 * kthakore might be silly
21:10 cotto_work more than likely
21:28 mikehh joined #parrot
21:51 Andy I'd love to see evidence to support (or disprove) my theory that merely committing something to a repository increases the quality of the code, because people are more likely to update it.
21:51 Andy In other words, that churn improves quality.
21:53 chromatic I see your theory and raise you Dan's theory from early Parrot.
21:53 atrodo What was Dan's theory?
21:53 chromatic Committing suboptimal code might encourage other people to contribute because they wanted to improve it.
21:53 Andy All brontosauruses are thin at one end, much MUCH thicker in the middle,
21:53 Andy and then thin again at the far end.  That is the theory that I have and
21:53 Andy which is mine, and what it is too.
21:54 cotto_work I'm sure it'd work fine for small bits of code.
21:54 cotto_work it's pretty easy to replace a bubble sort function with something better.
21:54 chromatic I think if it works, it works because it provides small, self-contained projects for interested novices to perform in isolation.
21:55 cotto_work yes
21:55 cotto_work imcc?  not so much
21:55 cotto_work barring the appearance of a magical coding robot
21:55 atrodo I agree.  There's a critical mass that the theory breaks apart
21:55 chromatic Relying on interested novices to read patches or the source code specifically to *find* places for those tasks seems like the weak part of that theory.
21:56 atrodo Oh, magical robot!  I knew I forgot to grab something before I left yapc
21:56 kthakore BAH! how do you guys maintain you modules man
21:56 kthakore I am sitting behind a mountain of things to doc and update
21:56 * kthakore cries
22:01 kthakore oh btw
22:01 kthakore Coke: I saw your message
22:01 kthakore Coke: how do we add the tests and SDL code into trunk?
22:08 chromatic whiteknight, you could even walk src_hash->bi (the bucket store itself, not the linked lists), copy across the values, then fix up the next pointers with a little bit of math.
22:08 whiteknight that's what I
22:08 chromatic That's a simple loop, cache friendly, no function calls, no realloc, and a lot friendly.
22:08 whiteknight m planning
22:08 chromatic Maybe I mean src_hash->bs
22:09 chromatic Whichever one is the dumb array of HashBuckets, and not the place where we use hash->mask to index into a linked list.
22:10 whiteknight I don't know a hell of a lot about this hash implementation, so It's going to take me some reading before I really get cracking
22:15 dalek parrot: r47840 | petdance++ | trunk/compilers/imcc/pbc.c:
22:15 dalek parrot: removed unused var
22:15 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47840/
22:15 dalek parrot: r47841 | whiteknight++ | branches/hash_faster:
22:15 dalek parrot: creating a branch to do some optimizing and general cleanup in the hash implementation
22:15 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47841/
22:18 chromatic Wow, S03-operators/series.t is a pig.
22:19 Themeruta joined #parrot
22:19 NotFound_gf whiteknight: pong
22:19 cotto_work What'd be the right way to handle a string with specified encoding and/or charset in PIRATE?  Would it work to treat the parsed string contents as a bunch of bytes and use a ByteBuffer?
22:19 whiteknight NotFound: what does ${} syntax in winxed do?
22:19 NotFound_gf whiteknight: pir ops
22:20 whiteknight ah, okay. That's what I thought
22:20 whiteknight also, how do you load a dynpmc lib in winxed?
22:21 NotFound_gf whiteknight: I haven't tested with dynpmc, only with dynops, but using extern at global scope should do.
22:22 whiteknight ok
22:22 whiteknight I'll have to look through the examples
22:22 cotto_work btw, whiteknight++ for the OpLib PMC.  It's pretty essential for PIRATE.
22:23 whiteknight cotto_work: I'm glad people are using it! I figured it would come in handy
22:23 NotFound_gf whiteknight: using extern 'libname';
22:23 ash_ joined #parrot
22:31 whiteknight would it kill people to give these things human-readable and human-understandable names?
22:31 Tene which things?
22:31 whiteknight wtf is hash->bi? how is it different from hash->bs? I shouldn't have to read so much code to figure out what these things are
22:32 cotto_work I'll give you a cookie if you fix them.
22:33 cotto_work Those names are a pretty effective impediment to understanding the code.
22:34 Tene ouch
22:34 Tene which code is this?  hash.pmc?
22:35 cotto_work src/hash.c iirc
22:35 Tene ah
22:36 Tene bi is bucket index, I think
22:36 cotto_work bs is base
22:37 cotto_work but the code wins an award for not being very clear
22:44 tcurtis joined #parrot
22:48 dalek parrot: r47842 | whiteknight++ | branches/hash_faster/include/parrot/hash.h:
22:48 dalek parrot: [hash] small cleanup. Remove/rework comments for clarity and modernity
22:48 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47842/
22:51 whiteknight The code is remarkably unclear. And that could be forgiven if it were massively optimized
22:52 whiteknight it ain't
22:53 whiteknight fields in the hash structure are considered internal opaque things, right? so I can rename them at will without running afoul of the deprecation policy?
22:54 chromatic Yes please.
22:54 chromatic What's the word for premature optimization that isn't even optimization?
22:54 chromatic Oh, right.  C.
23:00 cotto_work +1 to please do
23:02 mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#34584), fulltest) at r47841 - Ubuntu 10.04 i385 (gcc)
23:02 mikehh t/op/exit.t - TODO passed:   6 in testf
23:03 mikehh i386 - better take a break - starting to make idiot mistakes
23:05 dalek parrot: r47843 | tcurtis++ | branches/gsoc_past_optimization/runt​ime/parrot/library/PAST/Walker.nqp:
23:05 dalek parrot: Remove another debugging output statement.
23:05 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47843/
23:07 bacek aloha, humans
23:10 lucian joined #parrot
23:12 cotto_work hi bacek
23:12 bacek aloha, cotto_work
23:21 kid51 joined #parrot
23:22 chromatic bacek, do you have a Rakudo checkout?
23:22 bacek chromatic, yes.
23:23 chromatic src/binder/bind.c around line 500.
23:23 bacek substr?
23:23 purl substr is perldoc -f substr is handy but overlooked far too often or good for a simple literal match, when you don't need the hammer of regex -- it's also something that lets you substitute parts of a string with something else.. like deleting bits of it or substr EXPR, OFFSET or substr EXPR, OFFSET, LEN or substr EXPR, OFFSET, LEN, REPLACEMENT or slower as it means modifying the string
23:23 chromatic I've hoisted a couple of string_from_literal() calls into constant strings.
23:24 chromatic The substr and equals calls are fairly inefficient; creating a garbage STRING header just to say "Is this substring in the other string at the start?"
23:24 bacek yeah...
23:24 chromatic I'm trying to come up with a decent Parrot_str_* API to perform this operation more efficiently.
23:24 whiteknight It's remarkable how much memory-management logic these hashes reproduce from the GC
23:25 whiteknight not that it's a bad thing, slab-style allocation of buckets helps cache locality, but it is still a hell of a lot of duplication
23:25 bacek call to str_byte_length looks suspicious
23:26 chromatic I'm not aware of any particular bugs in here, but I'm looking at the possibility for providing another Parrot_str_* function to reduce the work done here.
23:27 bacek str_find_index == 0 for sigil? == 1 for twigil?
23:27 bacek Iterating over identifier should be faster than substr
23:28 chromatic It looks like the code creates three to five garbage STRINGs for each named parameter in every call.
23:28 chromatic Churn, baby, churn.
23:36 kid51 seen darbelo?
23:36 purl darbelo was last seen on #parrot 7 hours, 57 minutes and 4 seconds ago, saying: It hasn't been a very exiting game, all told.
23:37 kid51 msg darbelo You will need to document C functions in src/string/grapheme.c so that t/codingstd/c_function_docs.t passes.
23:37 purl Message for darbelo stored.
23:37 dalek parrot: r47844 | tcurtis++ | branches/gsoc_past_optimization/runt​ime/parrot/library/PAST/Walker.nqp:
23:37 dalek parrot: Remove unnecessary multi specialization for PAST::Walker.
23:37 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47844/
23:38 kid51 msg darbelo That's in gsoc_nfg branch.
23:38 purl Message for darbelo stored.
23:45 cotto_work s/so that t\/codingstd\/c_function_docs.t passes/so that people can understand the code more easily./
23:47 bacek cotto_work, ~/src/nqp-rx (master)$ ./nqp -e 'my $a:=1; $a := $a * $_ for <1 2 3>; say($a)'
23:47 bacek 6
23:47 bacek :)
23:47 cotto_work nice
23:47 bacek did you ask for "postfix" for?
23:47 cotto_work btw, I don't think that one of the call tests *should* pass.
23:47 bacek which one?
23:47 cotto_work I asked about for/if
23:48 bacek "if" should work.
23:48 cotto_work Hello, World (dynamic)
23:48 bacek ~/src/nqp-rx (master)$ ./nqp -e 'say("hi") if 42 == 42'
23:48 bacek hi
23:49 bacek cotto_work, yes. Wrong test.
23:49 dalek nqp-rx: caa5ba5 | bacek++ |  (3 files):
23:49 dalek nqp-rx: Implement expression for modifier
23:49 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/c​aa5ba515a4a9ba5d94f4e221756399590fc811d
23:50 cotto_work I'm not sure why it'd cause a segfault on x86 and work fine on x64, but it shouldn't be there and probably falls under "don't do that".
23:53 Psyche^ joined #parrot
23:54 dalek parrot: r47845 | jkeenan++ | branches/gsoc_nfg/src/string/encoding/nfg.c:
23:54 dalek parrot: [codingstd] Eliminate trailing whitespace it; correct POD formatting error.
23:54 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47845/
23:54 cotto_work bacek, do you know if it'll be safe to take the data that PIRATE parses out of a string literal with an explicit encoding/charset and stick it into a ByteBuffer for later stringification?
23:55 cotto_work It's great that these recently-written PMCs are proving to be so useful to PIRATE.
23:55 bacek cotto_work, it will probably require some hacking of quote_EXPR. But it's good idea.
23:56 cotto_work Should I rely on that and assume that the fixes will happen at a lower level than PIRATE or will that need some changes in PIRATE too?
23:57 bacek cotto_work, no idea atm. Sorry.
23:57 cotto_work pmichaud, ping

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

Parrot | source cross referenced