Camelia, the Perl 6 bug

IRC log for #parrot, 2010-06-26

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:02 bacek cotto_work, dynamic call fixed.
00:02 cotto_work Does it also give a graceful error message when you try to do that now?
00:02 chromatic bacek, I think what we need is Parrot_equal_substr_at(INTERP, s1, s2, offset)
00:03 bacek chromatic, wfm
00:03 chromatic I just pushed some code into Rakudo that'll make it easier for use to use that.  Do you know how to write the src/string/api.c part?
00:04 bacek on parrot side?
00:04 dalek rakudo: ea8f2bb | chromatic++ | src/binder/bind.c:
00:04 dalek rakudo: [src] Hoisted more STRINGs to constants in binder.
00:04 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e​a8f2bb1f03ca0c29c912f65f848257608cf29c7
00:04 dalek rakudo: aa66397 | chromatic++ | src/binder/bind.c:
00:04 dalek rakudo: [src] Hoisted more binder STRINGs to constants.
00:04 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/a​a663972014def7136a50bda281ece017735c55f
00:04 dalek rakudo: 4e3a1a1 | chromatic++ | src/pmc/objectref_pmc.template:
00:04 dalek rakudo: [PMC] Promoted a frequent STRING to a CONST_STRING.
00:04 dalek rakudo: ObjectRef's string "$!OBJECTREF" can safely be a constant.  This is a minor
00:04 dalek rakudo: optimization.
00:04 purl i guess 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"
00:04 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/4​e3a1a1724eb15aabadabc81193b102a123658b9
00:04 chromatic yes
00:05 bacek looks like it will require extending of _charset functionality.
00:06 chromatic That's all encapsulated, right?
00:06 bacek or "manual" iteration over strings
00:07 chromatic The CHARSET_COMPARE macro could provide lengths and starting offsets in both STRINGs, for example.
00:07 chromatic ... and we could add a new macro which passes through offsets in those STRINGs.
00:07 dalek pir: d0f99c1 | bacek++ | t/pbc/call.txt:
00:07 dalek pir: Fix dynamic call test.
00:07 dalek pir: review: http://github.com/bacek/pir/commit/d0f​99c1d196f631d0da8081703a7faeb53a0bd1c
00:07 dalek pir: 60c3d12 | bacek++ | src/POST/Compiler.pm:
00:07 dalek pir: Fix bytecode for dynamic call.
00:07 dalek pir: review: http://github.com/bacek/pir/commit/60c​3d128da6aedee6ea6cfd5fcff3b57016050b6
00:07 chromatic Functions like ascii_compare and the other charset *_compare could take additional parameters.
00:08 bacek way too much from my point of view. Let's do manual iteration first.
00:11 Coke joined #parrot
00:11 chromatic Is that the sound of a robot volunteer I just heard?
00:12 cotto_work bacek, this code still generates a bad (?) pbc that causes parrot to segfault:
00:12 nopaste "cotto" at 192.168.1.3 pasted "PIRATE generates segfaulty pbc" (18 lines) at http://nopaste.snit.ch/21590
00:12 * cotto_work heads home
00:12 purl Slacker!
00:12 bacek chromatic, let me finish dynamic calls in PIRATE first.
00:13 cotto_work I'll look at it later tonight if you don't first.
00:13 whiteknight only a handful of places really appear to break hash encapsulation
00:14 whiteknight ...and I notice that chromatic's and bacek's callcontext pmc is a particularly bad offender :)
00:15 chromatic No rush on this bacek, as the Rakudo side probably needs a branch before they bump PARROT_REVISION.
00:15 chromatic Also I should have decommuted a while ago.
00:15 chromatic whiteknight, violating hash encapsulation is necessary in those places where the hash API is insufficient.
00:16 whiteknight chromatic: I'm not really complaining. and I'm not going to "fix" it
00:16 whiteknight just sayin', is all I'm sayin'
00:17 chromatic As long as you're cleaning it up, feel free to clean it up!
00:21 Coke is there a way in NQP to get a ref to a named sub, or do you have to use pir to do that?
00:24 dalek pir: 278eef5 | bacek++ |  (2 files):
00:24 dalek pir: Stop generating broken PBC for dynamic calls
00:24 dalek pir: review: http://github.com/bacek/pir/commit/278​eef546f2fb37b20e1ad4a3fa72c392965b3e8
00:27 dalek parrot: r47846 | tcurtis++ | branches/gsoc_past_optimization (5 files):
00:27 dalek parrot: Add Tree::Transformer base class for various transformer subclasses.
00:27 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47846/
00:27 dalek parrot: r47847 | whiteknight++ | branches/hash_faster (7 files):
00:27 dalek parrot: [hash] rename hash->bi to bucket_indices, and ->bs to buckets. The former is an array of pointers arranged as a modulus of the hash values. The later appears to be raw slab-like bucket storage
00:27 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47847/
00:37 bacek Coke, sub foo() { ... }; my $s := foo; $s();
00:39 tcurtis Coke: do you mean an arbitrarily-named sub, or one that you know the name of at program-writing time?
00:39 bacek msg chromatic I think best option will be str_compare(a, a_offset, a_lenght, b, b_offset, b_length) as most generic comparison function
00:39 purl Message for chromatic stored.
00:49 Coke tcurtis: in this case, I know the name.
00:49 Coke I plan on having a "my sub foo" later on.
00:50 plobsing joined #parrot
00:55 tcurtis Coke: what bacek said should work, then, I think.
00:59 dalek parrot: r47848 | tcurtis++ | branches/gsoc_past_optimization (2 files):
00:59 dalek parrot: PAST::Transformer is Tree::Transformer
00:59 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47848/
01:16 dalek parrot: r47849 | whiteknight++ | branches/hash_faster/src/hash.c:
01:16 dalek parrot: [hash] add a new function parrot_hash_create_preallocate creates a new hash and preallocates at least a certain number of buckets
01:16 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47849/
01:16 mariano__ joined #parrot
01:21 tcurtis msg moritz I would not recommend svn upping to r47848 on my branch yet. It broke .transform. I'm working on a fix.
01:21 purl Message for moritz stored.
01:48 dalek parrot: r47850 | tcurtis++ | branches/gsoc_past_optimizatio​n/runtime/parrot/library/Tree (2 files):
01:49 dalek parrot: Tree::Pattern::Transform is Tree::Transformer. Also, fix a bug in Tree::Pattern.transform related to module loading.
01:49 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47850/
01:51 whiteknight holy crap. This hash code is so much worse than I expected.
01:53 whiteknight I thought it was keeping all the HashBuckets together in a contiguous memory block. But after expanding, it appears to have multiple memory regions it's managing
01:54 whiteknight and, while I'm looking at it, I think it might be leaking memory
01:56 whiteknight no, nevermind. It's not leaking
01:56 whiteknight (at least not the part I am looking at)
02:00 whiteknight purl msg chromatic: the hash code is worse than I thought. I want to try stripping out all the memory management logic and force hashes to allocate buckets from the GC (fixed-size allocator). It uses a similar kind of mechanism but should be more efficient with fewer reallocs and fewer memcpys. I going to do some unrelated cleanup first, I would like some feedback before I go full-nuclear.
02:00 purl Message for chromatic stored.
02:07 tcurtis bacek: ping
02:08 whiteknight the problem is that parrot_hash_clone takes in an existing hash structure, so it's not like I can preallocate the whole thing the way I need it, or even reallocate it
02:09 whiteknight because parrot_hash_clone doesn't return a pointer to the reallocated hash
02:10 whiteknight and, since encapsulation gets broken in some places, I can't guarantee that hash->container is the only external reference to the hash
02:10 whiteknight so I can't discard the Hash, create a new Hash, and insert it into the Hash PMC
02:10 spinclad joined #parrot
02:11 bacek tcurtis, pong
02:12 bacek whiteknight, GC's fixed-size allocator doesn't GC
02:13 whiteknight bacek: I know. That's irrelevant in this case. I don't need it to
02:13 whiteknight Hash does it's own marking and it's own destroy
02:13 dalek pir: 818d0e3 | bacek++ | src/PIR/Grammar.pm:
02:13 dalek pir: Param/arg can have only one modifier.
02:13 dalek pir: review: http://github.com/bacek/pir/commit/818​d0e30805ffbbbcd9b4310040630145af0684c
02:13 whiteknight so it can keep track of the buckets, mark them, and free them back to the system
02:13 dalek pir: bf03b06 | bacek++ | t/ (2 files):
02:13 dalek pir: Start adding tests for args/params modifiers
02:13 dalek pir: review: http://github.com/bacek/pir/commit/bf0​3b061d93bb3ec533490413f6d604adf0e7c10
02:13 dalek pir: 51e7dd7 | bacek++ |  (2 files):
02:13 dalek pir: Validate :slurpy (:named) params
02:13 dalek pir: review: http://github.com/bacek/pir/commit/51e​7dd7494e1dfe198641dadce564f1e3893ebb2
02:13 dalek pir: b08da06 | bacek++ | t/post/labels.txt:
02:13 dalek pir: Add more tests for undeclared labels.
02:13 dalek pir: review: http://github.com/bacek/pir/commit/b08​da066e70fe9664f536862fbb451658b98f373
02:13 dalek pir: 8ed8192 | bacek++ | src/POST/ (2 files):
02:13 dalek pir: Move .modifier into POST::Value
02:13 dalek pir: review: http://github.com/bacek/pir/commit/8ed​81928214dcc22ab265fdbc7df3f7a5a33ab24
02:13 dalek pir: 8dff5b3 | bacek++ | src/PIR/Actions.pm:
02:13 dalek pir: Factor out .create_label for putting Labels in Sub.labels
02:13 dalek pir: review: http://github.com/bacek/pir/commit/8df​f5b30855b1228b3692b3dc553561858eb0fb1
02:13 dalek pir: e8ac0fc | bacek++ |  (4 files):
02:13 dalek pir: Implement :slurpy params
02:13 dalek pir: review: http://github.com/bacek/pir/commit/e8a​c0fcc86f1f661c4d21893f2d17c1cdba79070
02:14 bacek whiteknight, I suspect it will be slower than current approach...
02:15 whiteknight bacek: I doubt it. All the realloc() and all the memcpy? I can't imagine it will be slower
02:15 whiteknight not to mention that struct Hash will be several pointers smaller
02:15 bacek whiteknight, just create some benchmark to ensure.
02:15 whiteknight bacek: yeah, I'm not ready to kill it just yet
02:19 tcurtis bacek: I think that Tree::Pattern(parent of PCT::Pattern and such) is ready to be used on POST in PIRATE.
02:19 bacek tcurtis++ # Hooray!
02:20 bacek tcurtis, just create branch in PIRATA and start hacking it!
02:20 bacek first "mandatory" optimization is something like "if 1 < 2 goto label"
02:23 tcurtis bacek: I don't yet have tests for non PAST::Pattern stuff yet, but I think I've factored all the non-PAST specific stuff(i.e., everything but the attribute names and matching node classes) out into base classes such that it should work.
02:23 tcurtis What optimization of that are you interested in?
02:24 bacek "if 1 < 2 goto label" to replace with "noop" or "goto label"
02:24 bacek may be it will be easier to implement after constant folding
02:27 bacek actually, "if 1 < 2 goto label" desugarised into "le 1, 2, label"
02:27 bacek "lt"
02:27 tcurtis Ah. I wasn't looking at the operands to the condition.
02:28 bacek "le ..." is POST::Op(:name<le>, POST::Constant, POST::Constant, POST::Label)
02:30 TiMBuS joined #parrot
02:36 tcurtis bacek: Can POST::Constants be PMCs?
02:37 bacek tcurtis, yes. Defined by .type.
02:38 bacek But not in case of "if ..."
02:38 bacek All values are inherited from POST::Value.
02:38 bacek It can be Constant or Register.
02:41 tcurtis Will $c.type() always be one of the constant types for POST::Constants?
02:43 bacek yes. One of ic, sc, pc, nc, kic
02:43 bacek But you can match on .isa(POST::Constant) as first cut.
02:59 dalek pir: a570659 | bacek++ | TODO:
02:59 dalek pir: Add TODO.
02:59 dalek pir: review: http://github.com/bacek/pir/commit/a57​065929e791e503e2b6d668eaeef9911a91b90
02:59 dalek pir: d70ac6d | bacek++ | t/pbc/call.txt:
02:59 dalek pir: Add test for :optional
02:59 dalek pir: review: http://github.com/bacek/pir/commit/d70​ac6d2d6879149542c1db3b019a69b716c2d51
02:59 dalek pir: 711424e | bacek++ |  (2 files):
02:59 dalek pir: Reject bad :opt_flag
02:59 dalek pir: review: http://github.com/bacek/pir/commit/711​424e9f576c0dd138ba03fb0b283ce2b1eea2b
02:59 dalek pir: 7b1e3a2 | bacek++ |  (2 files):
02:59 dalek pir: Implement :optional args
02:59 dalek pir: review: http://github.com/bacek/pir/commit/7b1​e3a26d04189eb54e3a4a99af02c9b041c3389
02:59 dalek pir: 488ca79 | bacek++ | t/parse/call.txt:
02:59 dalek pir: Fix one test
02:59 dalek pir: review: http://github.com/bacek/pir/commit/488​ca79b19157f1ba98b081e393d383a2aeb7a65
02:59 dalek pir: f78e007 | bacek++ | t/parse/call.txt:
02:59 dalek pir: Fix one more test.
02:59 dalek pir: review: http://github.com/bacek/pir/commit/f78​e0074e594d194b61eccd23c7e4de380d38fcc
03:12 dalek parrot: r47851 | whiteknight++ | branches/hash_faster/examples​/benchmarks/hash_workout.pir:
03:12 dalek parrot: [hash] add the start of a benchmark suite for hashes. We really want to give them some exercise so that we can measure whether potential optimizations or changes have a positive or negative impact
03:12 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47851/
03:14 sorear hashes being faster sounds quite awesome
03:14 sorear LexPad, NameSpace, Object
03:15 tcurtis Capture
03:15 sorear PCT::Node
03:15 purl PCT::Node is, like, a Capture pmc
03:16 * sorear wonders how much of a win string internment would be
03:17 patspam joined #parrot
03:18 bacek whiteknight, can you quick benchmark murmurhash2?
03:18 bacek It can be quick win
03:18 whiteknight murmurhash2?
03:19 whiteknight I'm heading to bed now, late
03:19 bacek http://sites.google.com/site/murmurhash/
03:23 whiteknight tomorrow
03:23 purl o/~ the sun will come out.. tomorrow.. o/~ or the National Day of Slayer, and the National Emo Kid Beatdown day, by http://www.nationaldayofslayer.org/ and http://community.livejourna​l.com/wtf_inc/2805832.html or tomorrow and tomorrow and tomorrow creeps in this petty pace or mañana or free for all or another day or the name of the pitcher
03:23 whiteknight ggodnight
03:23 dalek pir: 17e5db6 | bacek++ | src/PIR/Grammar.pm:
03:23 dalek pir: Unify style of arg_flag/param_flag/return_flag
03:23 dalek pir: review: http://github.com/bacek/pir/commit/17e​5db6376a98968118f3635bcda9493fc065022
03:23 dalek pir: fa7f87b | bacek++ | src/PIR/Actions.pm:
03:23 dalek pir: POSTify arg_flag and return_flag.
03:23 dalek pir: review: http://github.com/bacek/pir/commit/fa7​f87b36544689c4ad8dfa4e430c471de28afba
03:23 dalek pir: 5098f2c | bacek++ | src/PIR/Grammar.pm:
03:23 dalek pir: Long pcc call can have only one arg/param flag.
03:23 dalek pir: review: http://github.com/bacek/pir/commit/509​8f2c35f15e16425d70869f3ef3fd6ce560c2c
03:23 dalek pir: 46db0dc | bacek++ | t/post/call-args.txt:
03:23 dalek pir: Add test for :flat args.
03:23 dalek pir: review: http://github.com/bacek/pir/commit/46d​b0dc4077e3a3710fd2007d55adb0dddb000c4
03:23 dalek pir: 3a36888 | bacek++ |  (2 files):
03:23 dalek pir: Implement POSTing of arg modifiers
03:23 dalek pir: review: http://github.com/bacek/pir/commit/3a3​68880f5a3f771f7effc7fa38eb916cfb2aa71
03:23 dalek pir: 97f1a34 | bacek++ | t/pbc/call.txt:
03:23 dalek pir: Add test for :flat args
03:23 dalek pir: review: http://github.com/bacek/pir/commit/97f​1a34b690dda4d0054966ae538a8ed8a1f30e8
03:25 janus joined #parrot
03:36 hercynium joined #parrot
03:46 dalek pir: d62f45e | bacek++ | TODO:
03:46 dalek pir: Update TODO
03:46 dalek pir: review: http://github.com/bacek/pir/commit/d62​f45eac546d7ff6b5ba7fde8e1aae4cb791e05
03:46 dalek pir: 9714dd4 | bacek++ |  (2 files):
03:46 dalek pir: Factor out PIR::Actions.param_result_flag and implement handling of result
03:46 dalek pir: modifiers
03:46 purl it has been said that modifiers is the name used in several places.
03:46 dalek pir: review: http://github.com/bacek/pir/commit/971​4dd4d9ec557c0bf575644ba886306e2a5e955
03:57 dalek pir: eb2577c | bacek++ |  (2 files):
03:58 dalek pir: Implement fatarrow POSTing
03:58 dalek pir: review: http://github.com/bacek/pir/commit/eb2​577c2c2fbac427324c8b70a72a5434c62d9f7
03:58 dalek pir: 6c09f8d | bacek++ | TODO:
03:58 dalek pir: Update TODO
03:58 dalek pir: review: http://github.com/bacek/pir/commit/6c0​9f8d542bc163d7816451a33384d9e98ef77f3
04:06 LoganLK joined #parrot
04:11 JimmyZ joined #parrot
04:14 JimmyZ msg cotto Re:TT#888, Windows XP Chinse version uses GBK for paths, not utf-8
04:14 purl Message for cotto stored.
04:18 dalek parrot: r47852 | petdance++ | trunk/src/nci_test.c:
04:18 dalek parrot: more PARROT_ annotations
04:18 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47852/
04:33 JimmyZ msg cotto nevermind, it's fixed
04:33 purl Message for cotto stored.
05:01 cotto gbk?
05:01 cotto sounds like fun
05:07 dalek parrot: r47853 | petdance++ | trunk (2 files):
05:07 dalek parrot: much PARROT_ annotation and some consting
05:07 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47853/
05:07 JimmyZ T#888 has been fixed, but make smoke still failed, because some code uses io.'open'("$temp_file", 'wb')
05:26 fperrad joined #parrot
05:38 JimmyZ Is there any different between .include 'foo.pasm' and between .include "foo.pasm"?
05:38 JimmyZ Is there any different between .include 'foo.pasm' and .include "foo.pasm"?
05:39 cotto not sure
05:40 JimmyZ I see it in t\compilers\imcc\syn\file, the former is absolute path?
05:40 JimmyZ t\compilers\imcc\syn\file.t
05:41 JimmyZ .include 'foo.pasm' doesn't work for me.
06:08 * cotto is not sure he did what he intended to do
06:09 cotto actually, I think that dtrt
06:09 dalek pir: 8588001 | cotto++ |  (14 files):
06:09 dalek pir: Merge branch 'master' of github.com:bacek/pir
06:09 dalek pir: review: http://github.com/bacek/pir/commit/858​800172d9759ef859d653ab92ad76876fe92b6
06:14 * JimmyZ can use load_bytecode "$filename", but he can't use load_bytecode binary:"$filename"
06:15 cotto do you need to or are you just making an observation?
06:17 JimmyZ I need it
06:19 JimmyZ I am fixing failed test which is simillar with TT#888, but I can't use io.open(binary:"path") or load_bytecode binary:"$filename"
06:20 JimmyZ though I can use $S0 = binary:"path"\n load_bytecode $S0
06:29 dalek parrot: r47854 | plobsing++ | branches/dynop_mapping/src/pmc/sub.pmc:
06:29 dalek parrot: fix sub argument introspection
06:29 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47854/
06:35 LoganLK joined #parrot
06:46 dalek parrot: r47855 | plobsing++ | branches/dynop_mapping/t/native_pbc (4 files):
06:46 dalek parrot: native_pbc platform updates
06:46 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47855/
07:02 dalek parrot: r47856 | plobsing++ | branches/dynop_mapping/src/packfile.c:
07:02 dalek parrot: handle oplib not found on load
07:02 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47856/
07:03 cotto seen pmichaud
07:03 purl pmichaud was last seen on #parrot 1 days, 8 hours, 8 minutes and 47 seconds ago, saying: I'll be offline for the next few hours (in flight)  [Jun 24 22:55:00 2010]
07:14 cotto has pmichaud explicitly rejected ... for nqp?
07:16 sorear the golden rule of NQP is "nothing which requires library support to function"
07:16 moritz except for the things that go into the setting :-)
07:19 dalek parrot: r47857 | plobsing++ | branches/dynop_mapping/compil​ers/opsc/src/Ops/Emitter.pm:
07:19 dalek parrot: add '_ops' onto the end of name in op_info_t so we can find the oplib again
07:19 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47857/
07:21 cotto I'll see if I can get motivated enough to add it.
07:24 dalek rakudo: 6769e19 | moritz++ | t/spectest.data:
07:24 dalek rakudo: series-simple.t is gone, series-nonnueric.t works now
07:24 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/6​769e197b23515e06f0566fdb28024afe6c2e989
07:29 chromatic joined #parrot
07:35 dalek parrot: r47858 | plobsing++ | branches/dynop_mapping/src/pmc/oplib.pmc:
07:35 dalek parrot: too many levels of pointer indirection
07:35 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47858/
07:45 mmcleric joined #parrot
08:57 dalek parrot: r47859 | plobsing++ | branches/dynop_mapping (3 files):
08:57 dalek parrot: decode ops for proper pbc_disassemble
08:57 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47859/
09:08 dalek winxed: r523 | NotFound++ | trunk/winxedst1.winxed:
09:08 dalek winxed: fix use prefed in namespaces
09:08 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=523
09:24 dalek tracwiki: v1 | cotto++ | KhairulGSOC2010Schedule
09:24 dalek tracwiki: initial copy/paste + minor formatting; needs much summarizing
09:24 dalek tracwiki: http://trac.parrot.org/parrot/wiki/Khairul​GSOC2010Schedule?version=1&amp;action=diff
09:43 cotto pull request for ... in nqp sent.  Let's see what happens.
10:13 bacek joined #parrot
10:25 aloha joined #parrot
10:26 bacek aloha, humans
10:51 mikehh aloha, bacek
10:51 mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#34591), fulltest) at r47859 - Ubuntu 10.04 i386 (g++ with --optimize)
10:51 mikehh t/op/exit.t - TODO passed:   6 in testf
10:52 mikehh note the TODO pass only happens on i386 not on amd64
10:58 mikehh pir/PIRATE (8588001) build ok, test PASS - t/01-parse/05-assign.t - TODO passed:   10 - on parrot r47859 - Ubuntu 10.04 i386 (g++ with --optimize)
11:09 bacek mikehh, thanks for testing pirate
11:10 mikehh partcl-nqp (14e5902) - make ok, make test FAIL - t/cmd_array.t - Failed tests:  10-12, t/cmd_set.t - TODO passed:   6 - on parrot r47859 - Ubuntu 10.04 i386 (g++ with --optimize)
11:11 mikehh bacek: the earlier problem on i386 ihas departed
11:11 bacek mikehh, it was wrong test. And wrong behavior of pirate :)
11:13 whiteknight joined #parrot
11:13 bacek mikehh, btw, if you are looking for some pirate testing you can "migrate" tests from t/compilers/imcc. Pirate should be able to run most of them now.
11:13 whiteknight goodmornig, #parot
11:14 mikehh bacek: :-} - will have a look - testing rakudo - takes forrreverrr...
11:14 bacek Good morning. mr. Whitworth!
11:14 mikehh hi whiteknight
11:16 Coke joined #parrot
11:19 whiteknight hello bacek, mikehh
11:22 whiteknight bacek: The more I think about it, the more I think using the fixed_size allocator for hash buckets will be a big win
11:22 bacek whiteknight, just benchmark it. "Premature optimisation is root of all evil" as usual.
11:31 whiteknight bacek: I certainly will :)
11:31 whiteknight I may merge these benchmarks back to trunk first so we have it there
11:35 bacek whiteknight, did you get link to murmur hash?
11:40 dalek parrot: r47860 | whiteknight++ | branches/hash_faster/examples​/benchmarks/hash_workout.pir:
11:40 dalek parrot: [hash] add more benchmarks for hash clone performance
11:40 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47860/
11:46 mikehh rakudo (6769e19) builds on parrot r47859 - make test PASS, spectest_smolder -> #34593 (pugs r31450) PASS - Ubuntu 10.04 i386 (g++ with --optimize)
11:46 mikehh 19 TODO PASSes in 6 files
11:52 mikehh hmnn rakudo tests take about 11% longer on i386 vs amd64 (g++ with --optimize) both with TEST_JOBS=5
11:54 mikehh 1323 wallclock secs (19.13 usr  3.73 sys + 4436.36 cusr 89.75 csys = 4548.97 CPU) vs 1172 wallclock secs (21.42 usr  4.01 sys + 4118.20 cusr 103.53 csys = 4247.16 CPU)
12:05 mikehh winxed r523 - make ok, make test/test1/test2 PASS - on parrot r47859 - Ubuntu 10.04 i386 (g++ with --optimize)
12:13 dalek parrot: r47861 | whiteknight++ | branches/hash_faster/src/hash.c:
12:13 dalek parrot: [hash] remove non-starter function
12:13 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47861/
12:15 dalek pir: 9113499 | bacek++ |  (2 files):
12:15 dalek pir: Handle :named args in POST::Compiler.build_single_arg
12:15 dalek pir: review: http://github.com/bacek/pir/commit/911​34991c4a12256694c541c48b6e13ac577f2bc
12:15 dalek pir: 0219a66 | bacek++ | t/03-pbc/00-compiler.t:
12:15 dalek pir: Add test for building :named signature (not finished)
12:15 dalek pir: review: http://github.com/bacek/pir/commit/021​9a669023cd9c22b83c9fab2d9da084d62956b
12:37 whiteknight I'm going to merge this branch as-is with some initial cleanups and that new benchmark.
12:38 whiteknight start a new branch to try new things
12:40 mikehh brb
12:43 mikehh joined #parrot
12:45 dalek parrot: r47862 | khairul++ | branches/gsoc_instrument (8 files):
12:45 dalek parrot: Initial attempt to instrument gc.
12:45 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47862/
12:54 ambs joined #parrot
13:03 dalek parrot: r47863 | whiteknight++ | failed to fetch changeset:
13:03 dalek parrot: [hash] merge the short-lived hash_faster branch. Despite the name this branch brings no speed-ups, only some cleanups, documentation improvements, and a new
13:03 dalek parrot: benchmark file to help with testing future performance improvements in this system
13:03 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47863/
13:03 dalek parrot: r47864 | whiteknight++ | branches/hash_allocator:
13:03 dalek parrot: [hash] creating a new branch to attempt replacing the current memory allocation mechanism in src/hash.c with the fixed_size allocator
13:03 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47864/
13:03 dalek parrot: r47865 | whiteknight++ | branches/hash_faster:
13:03 dalek parrot: [hash] branch is merged to trunk in r47863. Creating a new branch to continue hash work
13:03 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47865/
13:07 kid51 joined #parrot
13:16 whiteknight joined #parrot
13:20 dalek parrot: r47866 | jkeenan++ | branches/cfunctionsdocs (5 files):
13:20 dalek parrot: Correct two codingstd errors.  Delete darwin/memalign.c; not needed, as pointed out by doughera++.
13:20 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47866/
13:23 dalek rakudo: 1424333 | (Solomon Foster)++ | src/ (2 files):
13:23 dalek rakudo: Rewrite the Actions handling of dec_number (ie Rat and Num constants) to work
13:23 dalek rakudo: properly if the various components of the number are too long to hold in an Int.
13:23 dalek rakudo: Still needed:
13:23 dalek rakudo: Cleanup.
13:23 purl cleanup is a tmpdir thing
13:23 dalek rakudo: Porting this solution to Int constants.
13:23 dalek rakudo: Making prefix:<+>(Str) use these methods.
13:23 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/1​4243332367952f66a101291e35b4e0af85e2cb5
13:36 dalek parrot: r47867 | jkeenan++ | branches/cfunctionsdocs (3 files):
13:36 dalek parrot: Delete config/gen/platform/generic/memalign.c.  No longer needed per doughera++.
13:36 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47867/
13:37 whiteknight damnit
13:37 whiteknight parrot_hash_get_idx is exported. It's the worst function ever and it's exported
13:45 mikehh whiteknight: only used in src/call/args.c (once)
13:46 whiteknight yeah
13:46 whiteknight problem is, I don't know if extensions are using it
13:49 whiteknight If I can get the kind of speed improvements I am expecting, people might not care so much
13:51 mikehh whiteknight: not rakudo, nqp_rx, winxed or partcl-nqp
13:51 whiteknight mikehh++
13:54 mikehh or pir/PIRATE for that matter
13:57 mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#34598), fulltest) at r47866 - Ubuntu 10.04 amd64 (g++)
14:02 simcop2387 joined #parrot
15:00 dalek parrot: r47868 | whiteknight++ | branches/hash_allocator (3 files):
15:00 dalek parrot: [hash] First pass at converting hash to use the fixed-size allocator. Things are indoubtably broken
15:00 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47868/
15:00 dalek parrot: r47869 | jkeenan++ | branches/cfunctionsdocs (2 files):
15:00 dalek parrot: Correct some apparent POD-formatting errors which were preventing file from passing c_functions_docs.t.
15:00 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47869/
15:17 kid51 joined #parrot
15:29 * whiteknight is starting to see the light at the end of the tunnel. The puny hash code is falling before my mighty onslaught
15:36 dalek parrot: r47870 | whiteknight++ | failed to fetch changeset:
15:36 dalek parrot: [hash] second pass. Things still probably don't work
15:37 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47870/
15:58 jsut joined #parrot
16:03 dalek parrot: r47871 | whiteknight++ | branches/hash_allocator (3 files):
16:03 dalek parrot: [hash] fix several errors. Almost builds now except for some problems in unmanagedstruct
16:03 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47871/
16:08 whiteknight joined #parrot
16:12 theory joined #parrot
16:16 dalek rakudo: 77a3501 | pmichaud++ | src/ (5 files):
16:16 dalek rakudo: Allow infinity laziness in arrays, array assignment.
16:16 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/7​7a3501998ae3aa0a3c73434a4aa0bed9d98bf07
16:16 dalek rakudo: b5bd660 | pmichaud++ | src/ (2 files):
16:16 dalek rakudo: Merge branch 'master' of github.com:rakudo/rakudo
16:16 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/b​5bd6606f0cd53aff088d9081a1acace99a2c74a
16:25 patspam joined #parrot
16:37 dalek parrot: r47872 | NotFound++ | failed to fetch changeset:
16:37 dalek parrot: allow use of Parrot_pcc_invoke_from_sig_object to run objects that does invoke, thus allowing its usage for nci callbacks
16:37 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47872/
16:55 jsut_ joined #parrot
17:00 Andy joined #parrot
17:05 dalek rakudo: cbf03ac | jonathan++ | src/binder/bind.c:
17:05 dalek rakudo: Fix |$c in method signatures and various other cases; it wasn't quite slurpy
17:05 dalek rakudo: enough. In turn fixes delegation bits, which are implemented in terms of it.
17:05 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/c​bf03ac823f1439c7dfaa98be5700ccbf108c0b0
17:15 dalek parrot: r47873 | pmichaud++ | trunk/runtime/parrot/library/P6object.pir:
17:15 dalek parrot: Change Protoobject.ACCEPTS to return Boolean instead of int.
17:15 purl dalek: that doesn't look right
17:15 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47873/
17:46 LoganLK joined #parrot
17:51 cotto whiteknight, ping
17:51 whiteknight cotto: pong
17:52 cotto is hash_allocator still at the stage of "make it work"?
17:52 whiteknight cotto: yeah. I'm working on the last detail to get it building
17:52 whiteknight UnmanagedStruct breaks encapsulation pretty bad, and relies on the things I've removed
17:52 cotto whee
17:53 whiteknight so I'm going to fix that now and hopefully it all works
17:54 cotto when it's working, you might want to put the optimization from parrot_hash_get_bucket back.  That was chromatic's doing and apparently got us a legitimate speedup.
17:55 whiteknight parrot_hash_get_bucket? Which optimization?
17:55 cotto the SMALL_HASH_SIZE linear search
17:56 cotto /* a very fast search for very small hashes */
17:56 whiteknight oh. Can't do linear search anymore, since the HashBuckets aren't stored in a linear memory block anymore
17:56 whiteknight so that optimization is impossible
17:56 whiteknight I could put in something similar, however
17:56 cotto might be worth investigating
17:58 cotto thanks for digging in to that code.  whiteknight++
17:58 whiteknight yeah. the hash_allocate branch is all exploratory. If it doesn't pan out, we can ditch it
17:58 whiteknight but I have a feeling there is some win here
18:29 ambs joined #parrot
18:33 dalek rakudo: a579f8e | pmichaud++ | build/PARROT_REVISION:
18:33 dalek rakudo: Bump PARROT_REVISION, fixes RT #71462.
18:33 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/a​579f8ebbb3b75c2a02ce930fefbe4ac38804faf
18:36 tcurtis joined #parrot
18:53 dalek parrot: r47874 | whiteknight++ | branches/hash_allocator/sr​c/pmc/unmanagedstruct.pmc:
18:53 dalek parrot: [hash] miniparrot builds, hangs
18:53 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47874/
19:02 dalek rakudo: 7102d7c | (Solomon Foster)++ | src/ (2 files):
19:02 dalek rakudo: Implement infix:<%%> "is divisible by" operator.
19:02 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/7​102d7c4a747603b3a1f6295ad8cac80c2062285
19:29 Andy joined #parrot
19:55 plobsing joined #parrot
20:24 mmcleric joined #parrot
20:33 ingy joined #parrot
20:33 dalek TT #1691 created by petdance++: Look into GCC -flto and -fwhole-program link options
20:33 dalek TT #1691: http://trac.parrot.org/parrot/ticket/1691
20:48 dalek parrot: r47875 | cotto++ | branches/gsoc_instrument/t/libr​ary/instrument_eventlibrary.t:
20:48 dalek parrot: fix TAP output
20:48 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47875/
21:04 dalek parrot: r47876 | chromatic++ | trunk/src/ops (2 files):
21:04 dalek parrot: [ops] Reordered conditions in callmethodcc op.
21:04 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47876/
21:04 dalek parrot: r47877 | chromatic++ | trunk/src/call/context.c:
21:04 dalek parrot: [PCC] Improved cache friendliness of clear_regs().
21:04 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47877/
21:04 dalek parrot: r47878 | chromatic++ | trunk/src/call/args.c:
21:04 dalek parrot: [pcc] Improved :call_sig branch prediction.
21:05 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47878/
21:05 dalek parrot: r47879 | chromatic++ | trunk/src/call/args.c:
21:05 dalek parrot: [pcc] Reordered positional checks by likelihood.
21:05 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47879/
21:05 dalek parrot: r47880 | chromatic++ | trunk/src/pmc/callcontext.pmc:
21:05 dalek parrot: [PMC] Cleaned and optimized CallContext's mark.
21:05 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47880/
21:05 dalek parrot: r47881 | chromatic++ | trunk/src/call/args.c:
21:05 dalek parrot: [pcc] Added a tiny optimization to fill_params().
21:05 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47881/
21:05 dalek parrot: r47882 | plobsing++ | branches/dynop_mapping/src/packfile.c:
21:05 dalek parrot: temporarily comment out some packfile sanity checking code that pbc_merge
21:05 dalek parrot: doesn't currently satisfy
21:05 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47882/
21:07 dalek TT #1530 closed by plobsing++: [DEPRECATION] Parrot_PMC_* in src/extend.c
21:07 dalek TT #1530: http://trac.parrot.org/parrot/ticket/1530
21:21 dalek parrot: r47883 | plobsing++ | trunk/include/parrot/extend.h:
21:21 dalek parrot: remove last instance of Parrot_VTABLE (TT #1531)
21:21 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47883/
21:23 dalek TT #1531 closed by plobsing++: [DEPRECATION] Parrot_VTABLE
21:23 dalek TT #1531: http://trac.parrot.org/parrot/ticket/1531
21:25 moritz purl: msg tcurtis I'm currently blocking on some NQP issues not related to your gsoc work at all; I'll notify you when I make progress (or hit other blockers)
21:25 purl Message for tcurtis stored.
21:54 tcurtis joined #parrot
22:38 bacek Good morning, humans
22:41 mikehh aloha, bacek
22:41 bacek aloha, mikehh
22:48 eternaleye joined #parrot
22:53 dalek rakudo: 92d0c1c | pmichaud++ | src/Perl6/Actions.pm:
22:53 dalek rakudo: Empty statement list should return Nil.
22:53 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/9​2d0c1c4556c636370a242257f54f3422981af4a
22:53 dalek rakudo: ac1c280 | pmichaud++ | src/builtins/assign.pir:
22:53 dalek rakudo: Assigning Nil to a container resets it to type.
22:53 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/a​c1c2809f8925b389e1ab153ad15398424955d3f
22:53 dalek rakudo: fd5e2e7 | pmichaud++ | src/builtins/Parcel.pir:
22:53 dalek rakudo: Parcels are always defined (even Nil).
22:53 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/f​d5e2e7f0ed0aeabeb01e3114240002299cfe6cf
22:53 dalek rakudo: d401972 | pmichaud++ | src/core/List.pm:
22:53 dalek rakudo: $obj.?method returns Nil, not undef.
22:53 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/d​401972ef7054607b5a7ca1163d74c21ef856a2e
22:53 dalek rakudo: 2334011 | pmichaud++ | src/Perl6/ (2 files):
22:53 dalek rakudo: Add statement_prefix:sym<sink>.
22:53 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/2​33401137e161f878b63044e7a1f371fd06817f3
22:59 mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#34601), fulltest) at r47883 - Ubuntu 10.04 amd64 (g++ with --optimize)
23:12 dalek pir: d754743 | bacek++ | pir.pir:
23:12 dalek pir: Add PackfileRawSegment.at method for testing purposes.
23:12 dalek pir: review: http://github.com/bacek/pir/commit/d75​474368610b420b7818300d8d3541aa6a3b5db
23:12 dalek pir: 12de2c9 | bacek++ |  (2 files):
23:12 dalek pir: Implement :named handling
23:12 dalek pir: review: http://github.com/bacek/pir/commit/12d​e2c97d2de0cba89c700c310196abec1171dea
23:12 dalek pir: 7b62b51 | bacek++ | t/pbc/call.txt:
23:12 dalek pir: Add more tests for :named handling
23:12 dalek pir: review: http://github.com/bacek/pir/commit/7b6​2b51b88e4cac23ed6770a3c65a85bbdc97f48
23:12 dalek pir: 3698343 | bacek++ |  (3 files):
23:12 dalek pir: Fix :slurpy :named modifier generating.
23:12 dalek pir: review: http://github.com/bacek/pir/commit/369​8343aff51563decbf5206950b09c3b427f983
23:12 dalek pir: a93480e | bacek++ | TODO:
23:12 dalek pir: Update TODO
23:12 dalek pir: review: http://github.com/bacek/pir/commit/a93​480e3ec62206cc5c3a3bfc7672c29a0da9195
23:23 cotto joined #parrot
23:25 shockwave joined #parrot
23:25 shockwave purl paste
23:25 purl it has been said that paste is (see: nopaste) or like glue but a little safer to sniff. or http://nopaste.snit.ch:8001/ or http://scsys.co.uk:8001/ anywhere shadowpaste is or mmm, sticky paste or You there! Eating the paste. or <see> 2 girls, 1 paste or App::Nopaste or toxic for bots and humans
23:27 cotto ~~
23:27 shockwave Howdy.
23:28 shockwave When I try to compile a file outputed by my compiler, I get this error:
23:28 shockwave PackFile_unpack: This is not a valid Parrot bytecode file
23:28 shockwave Parrot VM: Can't unpack packfile TestCaseX.proof.
23:28 shockwave main: Packfile loading failed
23:28 shockwave When I run it with parrot, like: ./parrot TestCaseX.proof  -- it runs fine.
23:28 shockwave But when I try to compile it, I get the message above.
23:28 mmcleric joined #parrot
23:28 shockwave I'm not sure what I'm doing wrong.
23:29 shockwave Thanks
23:32 nopaste "shockwave" at 192.168.1.3 pasted "Compiling this fails for me." (3 lines) at http://nopaste.snit.ch/21599
23:32 shockwave Can someone try to compile the thing above ^^^ ?
23:36 shockwave Anyone, please. It's just 3 lines.
23:36 nopaste "cotto" at 192.168.1.3 pasted "wfm" (10 lines) at http://nopaste.snit.ch/21600
23:36 mikehh shockwave: I don't understand your problem
23:37 shockwave mikehh: Where you able to compile the 3 lines above: ./parrot -c the_file.pir ?
23:37 mikehh shockwave: yes, see cotto's nopaste
23:38 shockwave cotto: Thanks. I was using the -c flag. Now I'm not sure what that's for.
23:39 cotto Interesting.  That looks like it should work.
23:39 mikehh shockwave: I thought it was to output pbc
23:40 shockwave mikehh: So did I. I was doing different combinations of that, but none of them worked: i.e.,: ./parrot -c -o test.pbc test.pir, etc
23:41 mikehh but I think it is to execute pbc
23:41 cotto mikehh seems to be correct
23:42 shockwave ./parrot --version could probably use a little hint as to what that does.
23:42 shockwave Anyhow, thanks again, cotto.
23:42 cotto It seems to be intended for the case where you have a pbc file that's not suffixed with pbc
23:42 shockwave oops, that was ./parrot --help
23:42 cotto .pbc
23:43 cotto ./parrot --help will be more useful presently
23:44 cotto Goodie.  There's also --run-pbc
23:45 bacek cotto, aloha
23:45 mikehh shockwave: parrot -o test.x test.pir - parrot -c test.x
23:45 cotto bacek, aloha
23:46 bacek cotto, any luck with pirate's strings?
23:46 dalek pir: b42c382 | bacek++ | t/pbc/call.txt:
23:46 dalek pir: Add more (failing) tests for call.
23:46 dalek pir: review: http://github.com/bacek/pir/commit/b42​c382922bb64e672e92fcd40a15b85f1fb868d
23:47 dalek pir: 1ee0715 | bacek++ | src/POST/Compiler.pm:
23:47 dalek pir: Fix building PCC signature for POST::Value
23:47 dalek pir: review: http://github.com/bacek/pir/commit/1ee​0715aade677ab7d456bd4e717600175cf9a5c
23:47 dalek pir: e8fae2c | bacek++ | src/PIR/ (2 files):
23:47 dalek pir: Don't use dequote
23:47 dalek pir: review: http://github.com/bacek/pir/commit/e8f​ae2cfbb7a8ff41b94a4bcd2f517b68c5a78ba
23:47 mikehh shockwave: that didn't work :-} works with .pbc but not .x
23:49 shockwave mikehh: Thanks for the help. Those flags are probably doing something useful (hopefully). They probably just need a little message when invokeing --help to make their intent clear.
23:49 mikehh let me look into that
23:51 cotto bacek, some, but I just realized a spot I steal some code from to get me over a block
23:51 bacek cotto, excellent!
23:51 kid51 joined #parrot
23:52 shockwave see ya, guys
23:52 shockwave left #parrot
23:53 Psyche^ joined #parrot
23:53 kid51 Are there any branches in need of a 'make test'?
23:57 mikehh hi kid51
23:57 kid51 hola
23:58 mikehh kid51: I checked out your patch - seems ok to me
23:58 kid51 I noticed from backscroll that several branches were being worked on in last 24 hours
23:58 kid51 mikehh:  Yes, I think it does no harm, and, formally speaking, it does good in the sense that it gives us a new baseline for measuring C function documentation
23:59 theory joined #parrot

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

Parrot | source cross referenced