Camelia, the Perl 6 bug

IRC log for #parrot, 2010-09-06

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:01 shockwave left #parrot
00:13 dalek parrot: r48807 | nwellnhof++ | trunk/src/string/api.c:
00:13 dalek parrot: Revert "[str] Set buflen in str_clone"
00:13 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48807/
00:18 cotto dukeleto, ping
00:24 aloha left #parrot
00:24 bacek left #parrot
00:33 dngor left #parrot
00:33 dngor_ joined #parrot
00:43 lichtkind joined #parrot
00:44 whiteknight joined #parrot
00:44 lichtkind where can i look for learning writing binary binding for parrot?
00:45 plobsing what do you mean by binary binding? are you looking to put parrot into something or connect to somethign from parrot?
00:45 lichtkind yes connect a compiled lib
00:45 lichtkind to use it from rakudo
00:46 plobsing if you're just lookig to connect to simple libs from rakudo, check out zavolaj
00:46 plobsing zavolaj?
00:46 plobsing purl, zavolaj?
00:46 purl plobsing: wish i knew
00:46 sorear github/jnthn/zavolaj
00:47 dalek parrot: r48808 | nwellnhof++ | trunk/src/string/api.c:
00:47 dalek parrot: Fix a GC-related bug in Parrot_str_clone
00:47 dalek parrot: Using STRUCT_COPY and changing the flags afterwards can create an invalid
00:47 dalek parrot: string header. If Parrot_gc_allocate_string_storage then triggers a GC run,
00:47 dalek parrot: bad things can happen like external strings being compacted.
00:47 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48808/
00:47 plobsing purl, zavolaj is http://github.com/jnthn/zavolaj
00:47 purl OK, plobsing.
00:48 cotto zavolaj is also a prototype of the native call interface for Rakudo
00:48 purl okay, cotto.
00:48 cotto rakudo nci?
00:48 cotto rakudo nci is <reply> see zavolaj
00:48 cotto rakudo nci?
00:48 purl see zavolaj
00:50 plobsing does zavolaj come with r*?
00:54 Psyche^ joined #parrot
00:59 Patterner left #parrot
00:59 Psyche^ is now known as Patterner
01:06 tetragon left #parrot
01:11 dngor_ is now known as dngor
01:12 theory left #parrot
01:22 tcurtis joined #parrot
01:25 whiteknight left #parrot
01:32 kid51 joined #parrot
01:33 Topic for #parrot is now Parrot 2.7.0 "Australian King" Released! | parrot.org Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 |  close 25 tickets (12 to go), merge branches; profile your favorite PIR for memory leaks with valgrind
01:46 Topic for #parrot is now Parrot 2.7.0 "Australian King" Released! | parrot.org Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 |  close 25 tickets (11 to go), merge branches; profile your favorite PIR for memory leaks with valgrind
01:56 hercynium joined #parrot
01:59 dalek TT #1370 closed by jkeenan++: ->strstart cleanup
01:59 dalek TT #1370: http://trac.parrot.org/parrot/ticket/1370
02:22 lichtkind left #parrot
02:22 kid51 msg shockwave http://trac.parrot.org/parrot/ticket/1621 has been updated; can you comment?  Thanks.
02:22 purl Message for shockwave stored.
02:31 kid51 msg whiteknight Can you reply to http://trac.parrot.org/parrot/ticket/36#comment:7  Thanks.
02:31 purl Message for whiteknight stored.
02:35 janus left #parrot
02:35 janus joined #parrot
02:56 theory joined #parrot
02:58 kid51 left #parrot
03:19 theory left #parrot
03:51 dalek left #parrot
03:51 dalek joined #parrot
03:58 dalek TT #1499 closed by plobsing++: Null pointer dereference in imageio.pmc
03:58 dalek TT #1499: http://trac.parrot.org/parrot/ticket/1499
03:59 dalek left #parrot
04:00 dalek joined #parrot
04:01 Topic for #parrot is now Parrot 2.7.0 "Australian King" Released! | parrot.org Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 |  close 25 tickets (10 to go), merge branches; profile your favorite PIR for memory leaks with valgrind
04:03 dalek left #parrot
04:03 dalek joined #parrot
04:06 cotto dukeleto, reping
04:10 cotto I have a draft proposed timeline and prereqs for the move to git.  I'd appreciate any thoughts.
04:10 cotto http://gist.github.com/566631
04:10 hercynium left #parrot
04:12 cotto purl, msg dukeleto I'd appreciate your thoughts on my draft github migration plan: http://gist.github.com/566631
04:12 purl Message for dukeleto stored.
04:14 nwellnhof_ joined #parrot
04:15 plobsing cotto++ # almost git o'clock
04:15 cotto I'm jazzed.
04:18 nwellnhof left #parrot
04:18 nwellnhof_ is now known as nwellnhof
04:19 plobsing ping nwellnhof
04:23 bluescreen left #parrot
04:24 bacek_at_work cotto++ # git ftw!
04:33 davidfetter left #parrot
04:34 nwellnhof left #parrot
05:01 cotto bacek_at_work, do you see any holes in the plan?
05:04 bacek_at_work cotto, nope. Looks good
05:04 cotto thanks
06:07 uniejo joined #parrot
06:25 fperrad joined #parrot
06:40 cotto seen gerd
06:40 purl gerd was last seen on #parrot 82 days, 18 hours, 17 minutes and 40 seconds ago, saying: I will start to copy the tar file to the ftp server.  [Jun 15 12:22:48 2010]
07:11 esskar joined #parrot
08:04 mj41_ joined #parrot
08:09 mj41 left #parrot
08:09 mj41_ is now known as mj41
08:12 bacek joined #parrot
08:14 aloha joined #parrot
08:15 jsut joined #parrot
08:19 eternaleye left #parrot
08:20 eternaleye joined #parrot
08:20 jsut_ left #parrot
08:20 esskar left #parrot
08:21 tcurtis left #parrot
08:42 M_o_C joined #parrot
08:47 M_o_C left #parrot
09:41 M_o_C joined #parrot
10:06 dalek parrot: r48809 | gerd++ | trunk/tools/dev/pbc_to_exe.pir:
10:06 dalek parrot: let "pbc_to_exe" compile with the same flags then the other programs are compiled
10:06 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48809/
10:11 AzureSto_ joined #parrot
10:14 AzureStone left #parrot
10:28 dalek TT #1772 created by kkourt++: minor omission in docs/book/pct/ch04_pge.pod
10:28 dalek TT #1772: http://trac.parrot.org/parrot/ticket/1772
10:37 ruoso left #parrot
10:42 bluescreen joined #parrot
10:42 kj joined #parrot
10:58 kj left #parrot
11:01 kj joined #parrot
11:03 smash joined #parrot
11:03 smash hello everyone
11:09 kj left #parrot
11:10 integral left #parrot
11:27 whiteknight joined #parrot
11:34 contingencyplan left #parrot
11:38 PerlJam left #parrot
11:38 pmichaud left #parrot
11:38 dukeleto left #parrot
11:38 dalek left #parrot
11:38 Util left #parrot
11:49 integral joined #parrot
11:54 ruoso joined #parrot
12:05 M_o_C left #parrot
12:06 M_o_C joined #parrot
12:07 dalek joined #parrot
12:09 PerlJam joined #parrot
12:10 dukeleto joined #parrot
12:10 pmichaud joined #parrot
12:15 fperrad_ joined #parrot
12:15 mariano__ joined #parrot
12:16 fperrad left #parrot
12:16 fperrad_ is now known as fperrad
12:20 Util joined #parrot
12:25 kid51 joined #parrot
12:27 fperrad_ joined #parrot
12:30 fperrad left #parrot
12:30 fperrad_ is now known as fperrad
12:37 whiteknight good morning, #parrot
12:37 whiteknight happy Labor Day, for those who celebrate it
12:38 moritz in .de, Labor Day is May 1st
12:38 moritz (and a public holiday :-)
12:39 whiteknight and is soviet russia, labor day celebrates you!
12:42 dalek TT #1772 closed by jkeenan++: minor omission in docs/book/pct/ch04_pge.pod
12:42 dalek TT #1772: http://trac.parrot.org/parrot/ticket/1772
12:42 dalek TT #206 closed by Paul_the_Greek++: extend disassembler to print constants in const table
12:42 dalek TT #206: http://trac.parrot.org/parrot/ticket/206
12:42 alin joined #parrot
12:42 dalek parrot: r48810 | jkeenan++ | trunk/docs/book/pct/ch04_pge.pod:
12:42 dalek parrot: Correct word omission spotted by kkourt++ in �http://trac.parrot.org/parrot/ticket/1772.
12:42 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48810/
12:43 Topic for #parrot is now Parrot 2.7.0 "Australian King" Released! | parrot.org Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 |  close 27 tickets (8 to go), merge branches; profile your favorite PIR for memory leaks with valgrind
12:43 Topic for #parrot is now Parrot 2.7.0 "Australian King" Released! | parrot.org Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 |  close 25 tickets (8 to go), merge branches; profile your favorite PIR for memory leaks with valgrind
12:44 * moritz can't count :-)
12:52 whiteknight where does the source code for PAST live?
12:53 moritz compilers/pct/ somewhere
12:53 whiteknight ah, yeah. I just found it
13:12 dalek left #parrot
13:13 dalek joined #parrot
13:29 whiteknight in the NQP source, how do I get the contents of a <quote>, without the quotation marks included?
13:30 uniejo left #parrot
13:30 M_o_C left #parrot
13:32 uniejo joined #parrot
13:34 alin left #parrot
13:35 uniejo left #parrot
13:37 M_o_C joined #parrot
13:39 esskar joined #parrot
13:41 whiteknight msg pmichaud http://github.com/Whiteknight/nqp-rx/commi​t/0156e5d76bafea8d87d0db8b8790ab15311f93b5 Can you take a look at this and let me know if I'm moving in the right direction? Thanks
13:41 purl Message for pmichaud stored.
13:41 aloha OK. I'll deliver the message.
13:49 JimmyZ joined #parrot
13:52 M_o_C left #parrot
13:53 M_o_C joined #parrot
13:55 jsut_ joined #parrot
14:00 jsut left #parrot
14:01 whiteknight left #parrot
14:11 JimmyZ left #parrot
14:15 nwellnhof joined #parrot
14:16 mikehh t/examples/namespace.t - Failed => get_string() not implemented in class 'NativePCCMethod'
14:16 mikehh all other tests PASS (pre/post-config, make corevm/make coretest, test, fulltest) at r48810 - Ubuntu 10.04 amd64 (g++ with --optimize)
14:17 kid51 left #parrot
14:34 Paul_the_Greek joined #parrot
14:34 Paul_the_Greek Help on headerizer?
14:40 dalek parrot: r48811 | NotFound++ | trunk (2 files):
14:40 dalek parrot: throw an exception when trying to hll_map without an HLL, TT #1771
14:40 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48811/
14:45 tcurtis joined #parrot
14:45 mj41_ joined #parrot
14:46 Paul_the_Greek Help on headerizer?
14:46 ttbot left #parrot
14:47 ttbot joined #parrot
14:47 mj41 left #parrot
14:47 mj41_ is now known as mj41
14:52 NotFound Paul_the_Greek: what kind of help?
14:55 Paul_the_Greek I'm trying to headerize a .c file that I modified. headerizer.pl says it's successful, but the file wasn't changed.
14:55 Paul_the_Greek I tried make headerizer, but it fails on core_ops.c, which doesn't have a headerizer marker.
14:56 NotFound core_ops.c? It shouldn't touch that.
14:57 Paul_the_Greek My thought exactly. I did a realclean, reconfigured, then headerizer.
14:58 NotFound You need a plain make before make headerizer
14:58 Paul_the_Greek I can't do a make because my .c file isn't headerized.
14:59 Paul_the_Greek Am I supposed to specify the object file on the headerizer command?
14:59 Paul_the_Greek That's what the synopsis in headerizer.pl says.
15:00 NotFound Paul_the_Greek: yeah, that's a "feature" of headerizer. You need to comment the ASSERT_ARGS to be able to make, then headerize, then uncomment it.
15:00 mj41 left #parrot
15:00 Paul_the_Greek Oooooh.
15:01 NotFound headerizer is a pain in the ass... but it works, and helps prevent obscure bugs.
15:01 Paul_the_Greek Let me try that.
15:02 NotFound So we should live with its peculiarities, and hope some day someone will improve it.
15:02 ttbot left #parrot
15:02 Paul_the_Greek Sounds good. I have other errors to correct in my file, then I bet everything will be fine. Thanks.
15:02 nwellnhof left #parrot
15:05 mj41 joined #parrot
15:09 ttbot joined #parrot
15:12 M_o_C left #parrot
15:13 M_o_C joined #parrot
15:15 mj41_ joined #parrot
15:17 mj41 left #parrot
15:17 mj41_ is now known as mj41
15:22 mj41_ joined #parrot
15:24 mj41 left #parrot
15:24 mj41_ is now known as mj41
15:24 Paul_the_Greek ping NotFound
15:24 kid51 joined #parrot
15:25 Paul_the_Greek Hey kid51
15:37 NotFound Paul_the_Greek: pong
15:37 Paul_the_Greek So I saved my changes off to the side, svn update, make realclean, perl configure.pl, and make. All is fine.
15:38 Paul_the_Greek Then I make headerizer and it complains about core_ops.c
15:38 NotFound Odd
15:38 NotFound Have you change some op file?
15:39 Paul_the_Greek svn status shows nothing.
15:39 Paul_the_Greek Oh wait, svn update would merge them.
15:39 NotFound Yeah, use svn diff
15:39 Paul_the_Greek I did an svn status before the update and nothing was listed.
15:39 mj41_ joined #parrot
15:39 Paul_the_Greek svn diff lists nothing.
15:40 Paul_the_Greek Should I make bootstrap_ops ?
15:40 NotFound It shouldn't be needed. Don't know what's happening
15:41 Paul_the_Greek I vaguely remembering doing make bootstrap_ops and getting some other error. Let me try it.
15:41 NotFound make headerizer works for me in r48810
15:41 Paul_the_Greek How do I found out which release I'm at?
15:41 NotFound svn info
15:42 Paul_the_Greek Yup, I'm at 48811.
15:42 Paul_the_Greek Trying boostrap-ops ...
15:42 NotFound Updating and rebuilding, just to be sure...
15:42 Paul_the_Greek Is a make required after bootstrap-ops?
15:43 NotFound Probably, don't know for sure
15:44 mj41 left #parrot
15:44 NotFound make headerizer works and changes nothing in r48811, as expected.
15:44 mj41_ is now known as mj41
15:44 cotto good morning
15:44 purl For you maybe.
15:45 Paul_the_Greek bootrap-ops worked. nothing to be done for make.
15:45 cotto what are you up to, Paul_the_Greek
15:45 cotto ?
15:45 Paul_the_Greek make headerizer still tries to headerize core_ops.c
15:45 Paul_the_Greek Working on sprintf exponent, but can't headerize. See previous line.
15:46 NotFound Paul_the_Greek: nopaste a patch with your changes and I'll try it
15:46 * cotto too
15:46 Paul_the_Greek Sorry, which changes?
15:47 NotFound Paul_the_Greek: the ones that broke your headerizing the first time
15:47 Paul_the_Greek I've pulled those changes out and the problem is still occurring.
15:47 Paul_the_Greek Do you want to see if it breaks something permanently?
15:48 NotFound Paul_the_Greek: Have you added any file? Some files can confuse the build event if they aren't in svn or in MANIFEST
15:48 Paul_the_Greek No, just changed spf_render.c and misc.h
15:49 Paul_the_Greek Oh, wait a minute ...
15:49 Paul_the_Greek is all_cstring.str supposed to be in the top-level directory?
15:49 NotFound Paul_the_Greek: make realclean should delete it
15:50 Paul_the_Greek Okay, then I don't think I've added anything that would bother the build.
15:50 Paul_the_Greek Shall I nopaste a diff and you can see if it messes you up?
15:51 NotFound Strange. Are you building in a path with non-ascii characters, spaces, anything non usual?
15:51 Paul_the_Greek My top-level directory is c:/parrot/develop/parrot
15:52 NotFound In windows? I've never used headerizer in windows. Never heard about problems with it, but...
15:53 Paul_the_Greek Why don't you test this on your system? Then we'll know whether we have a Windows issue.
15:53 NotFound Yeah, nopaste it.
15:54 nopaste "Paul_the_Greek" at 192.168.1.3 pasted "sprintf changes" (108 lines) at http://nopaste.snit.ch/23243
15:55 nwellnhof joined #parrot
15:59 NotFound Paul_the_Greek: it works, and creates the header for your new static function.
16:00 Paul_the_Greek Well then, ain't that interesting. Can you email it to me?
16:00 Paul_the_Greek So perhaps we have a Windows problem? What a strange thing to have a problem with.
16:00 Paul_the_Greek What steps did you go through?
16:00 NotFound Uncommenting the ASSERT_ARGS to check is correct...
16:01 NotFound Apply the patch, make, make headerizer
16:02 Paul_the_Greek Okay, so let me try one more time. If it still fails, I'll open a ticket. We should get another Windowser to see if s/he has the same problem.
16:02 nopaste "kid51" at 192.168.1.3 pasted "t/examples/namespace.t: Test failure (reported earlier by mikehh as well)" (13 lines) at http://nopaste.snit.ch/23244
16:03 nopaste "kid51" at 192.168.1.3 pasted "t/examples/namespace.t: Test failure (reported earlier by mikehh as well)" (71 lines) at http://nopaste.snit.ch/23245
16:03 kid51 2nd paste is better
16:03 purl i already had it that way, kid51.
16:03 nopaste "NotFound" at 192.168.1.3 pasted "sprintf changes after headerizing" (134 lines) at http://nopaste.snit.ch/23246
16:04 kid51 That failure in the examples emerged sometime between r48741 (Sep 01) and r48810 (today)
16:05 kid51 The test file itself has not changed in that time period.
16:07 NotFound r48790 - add NativePCCMethod PMC to replace raw NCI
16:07 NotFound Looks like this is the cause.
16:08 kid51 NotFound:  Is there something in t/examples/namespace.t that is now outdated since that ticket?
16:11 Paul_the_Greek NotFound: Can you email me the headerized file?
16:12 NotFound Paul_the_Greek: I've nopasted it.
16:12 Paul_the_Greek Oops, missed that. Thanks.
16:13 NotFound kid51: looks like that test assumes that verything in the namespaces has get_string vtable. Don't know if that assumption is not valid or if NativePCCMethod should provide it.
16:17 NotFound I doubt that code should be in example, unless as an example on how to not write clear and comprehensible code X-)
16:18 NotFound Just one comment for such complicated manipulations...
16:20 Paul_the_Greek NotFound: Opening a ticket. What platform are you on?
16:21 NotFound Paul_the_Greek: linux amd64
16:23 kid51 NotFound:  Agreed, it may be a problem with the test.  Am reopening TT #1549
16:24 kid51 NotFound: Can you post that observation in TT #1549?
16:30 Andy joined #parrot
16:31 Andy New ack is out.  Please test it.  http://search.cpan.org/dist/ack/
16:31 nwellnhof left #parrot
16:31 nopaste "kid51" at 192.168.1.3 pasted "t/op/sprintf.t: test failures after applying sprintf-related patch" (327 lines) at http://nopaste.snit.ch/23247
16:32 kid51 my paste is on linux i386
16:38 NotFound kid51: done
16:39 dalek TT #1549 reopened by jkeenan++: [DEPRECTION] NCI for "raw" pointers
16:39 dalek TT #1549: http://trac.parrot.org/parrot/ticket/1549
16:39 dalek TT #1773 created by Paul_the_Greek++: make headerizer fails on Windows XP
16:39 dalek TT #1773: http://trac.parrot.org/parrot/ticket/1773
16:46 kid51 left #parrot
17:13 bluescreen left #parrot
17:16 NotFound Andy: install ok. Something specific to test?
17:17 NotFound Uh... --version says is 1.92
17:17 Andy How did you install it, NotFound ?
17:17 NotFound Andy: cpan - upgrade App::Ack
17:18 Andy ok, and did it pull down the 1.93_01 tarball?
17:18 NotFound No, 1.92
17:18 Andy OK, then there's your problem.
17:19 Andy You're familiar with how CPAN mirrors work?
17:19 NotFound Delayed mirror, probably.
17:19 Andy you can pull from the repo if you like
17:21 NotFound I'll wait, I'm not very confident with cpan and don't like to break it.
17:22 NotFound I've already done it several times X-)
17:24 NotFound BTW I can't install blizkost on my debian machine, it says that perl 5.10 isn't enough recent.
17:27 M_o_C left #parrot
17:29 Andy you can also install the tarball manually
17:31 Andy left #parrot
17:34 nwellnhof joined #parrot
17:35 whiteknight joined #parrot
17:42 contingencyplan joined #parrot
17:45 whiteknight good afternoon, #parrot
17:45 moritz Infinoid: ping
17:46 Infinoid moritz: pong
17:46 moritz Infinoid: we need some more repos reported by dalek to #perl6
17:47 moritz perl6/{mu,specs,roast,perl6.org,modules.perl6.org}
17:47 Infinoid awesome.  is it time to set up some auto-feeding similar to what #parrot has, so we don't need a source change every time we extend that list?
17:47 moritz that would be great
17:47 Infinoid Does perl6 (or rakudo) have a wiki somewhere it can scrape?
17:48 dalek left #parrot
17:48 dalek joined #parrot
17:48 moritz Infinoid: I'd suggest a file in the http://github.com/perl6/ecosystem/ repo
17:48 Infinoid hmm, that would work.
17:48 moritz something easy to parse... JSON?
17:49 Infinoid I tend to reach for YAML more often than JSON, but that's just me.  Doesn't matter much in the end
17:49 moritz either works for me
17:50 moritz any preferred datastructure?
17:51 moritz { "owner" : "perl6", "repo" : "mu", "branch": "master", "channels": ["#perl6"] },   or so?
17:51 moritz or do you want straight links to something?
17:52 Infinoid straight links will let it autodetect github, googlecode, gitorious
17:52 Infinoid though it would be better by section, I think, where section is a server/channel tuple
17:52 Infinoid e.g. ["freenode", "#perl6"]
17:52 moritz wfm
17:56 moritz Infinoid: should I start by putting a sample file in that repo?
17:58 Infinoid Sure, thanks.  I'd eventually like to move some hardcoded things into there (like rakudo, nqp-rx, 6model, grok, etc)
17:59 moritz let's start with adding new things, and when they work, replace the old ones
17:59 Infinoid yep
18:00 moritz hm, seems ecosystem is not a good place... let's put it into the mu repo for now
18:01 moritz Infinoid: http://github.com/perl6/mu/blo​b/master/misc/dalek-conf.json
18:09 Infinoid that works, thanks
18:10 moritz (I've assumed a default branch of "master")
18:11 cotto left #parrot
18:14 Infinoid cool.
18:21 kid51 joined #parrot
18:26 whiteknight good afternoon, kid51
18:27 kid51 hello, whiteknight
18:29 dalek rakudo: ae66feb | pmichaud++ | src/Perl6/ (2 files):
18:29 dalek rakudo: Removed (unused) $lazy parameter from add_signature().
18:29 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/a​e66feb5b826eb81ee9d4ac220f094921bed2126
18:38 shockwave joined #parrot
18:38 M_o_C joined #parrot
18:40 nopaste "shockwave" at 192.168.1.3 pasted "Is this an OK way to pass null to subs?" (14 lines) at http://nopaste.snit.ch/23248
18:40 shockwave Howdy.
18:41 shockwave In the code I posted at the URL above, it shows a way to pass a null value.
18:42 shockwave In this case, is is done by passing an undefined register to a sub?
18:43 shockwave What are the thoughts on that? Is that OK to do? I would suppose if undefined registers are initialized to null, then it would be OK. I'm just wondering if that's a hack.
18:43 shockwave (what the code above shows)
18:55 kid51 left #parrot
18:56 plobsing shockwave: it will probably always work, but it is best if you don't depend on it
18:57 plobsing if you're looking for optimizations though, you may want to use if_null in stead of isnull/unless
18:57 plobsing not that it'll buy you much. (about the same as omitting the nulling of $P0)
19:01 shockwave @plobsing: I'm not so concerned with the 'foo' implementation, as with the passing of null to subs. Though, thanks for the tip. I will use it in some of the runtime support code :).
19:02 shockwave It's just very simple to be able to pass, say, $P99999999, to methods to represent passing null, without having to emit a $P99999999 = null right before it.
19:04 plobsing yes, but that depends on register sets being allocated zeroed out. that's slightly more expensive and that allocation happens a lot. if we could eventually eliminate it, we might see performance improvement.
19:05 plobsing unlikely that we ever could, but lets keep that option open
19:08 shockwave @plobsing: So your recommendation would be to alway emit the $P99 = null prior?
19:08 plobsing yes.
19:08 dalek parrot: r48812 | plobsing++ | trunk/examples/namespace/namespace_dump.pir:
19:08 dalek parrot: refactor namespace_dump example.
19:08 dalek parrot:  * use descriptive variable names
19:08 dalek parrot:  * factor out common subroutine
19:08 dalek parrot:  * handle cases where entries don't have a valid get_string vtable more generically
19:08 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48812/
19:10 shockwave Over the weekend, I was successful at caching registers that are assigned attribute handles, so that getattributes don't have to be called if needed. It works, and even though I haven't profiled the application, just looking at the generated already seems faster.
19:11 tcurtis left #parrot
19:11 shockwave But man, those kinds of optimizations introduce some special cases in the implementation of the compiler code.
19:11 shockwave Basically, what's generated looks good, at the expense of the implementation that does that generation.
19:11 plobsing shockwave: is your compiler publicly available somewhere?
19:11 shockwave @plobsing: No, it isn't.
19:12 plobsing wheee parrot has a darkpan!
19:12 pmichaud shockwave: how does your register cache handle the case of an attribute being rebound via setattribute ?
19:12 dalek TT #1549 closed by plobsing++: [DEPRECTION] NCI for "raw" pointers
19:12 dalek TT #1549: http://trac.parrot.org/parrot/ticket/1549
19:12 shockwave pmichaud, in that case, it re-issues a getattribute call.
19:13 pmichaud ah
19:13 shockwave (to the same register :))
19:13 pmichaud how does it know to do that?
19:13 pmichaud I mean, what if the setattribute occurs in a called function?
19:13 pmichaud or what if a different function does a setattribute, how do we update the cached register in the original?
19:14 shockwave pmichaud: err... I hadn't tought of that. Damn!
19:14 shockwave pmichaud: Good catch!
19:15 pmichaud shockwave: I've just been down this trail a few times already... :)
19:15 shockwave pmichaud: Where you at all successful?
19:16 shockwave Damn, and I thought I was home free, to work on emitting tailcall opcodes.
19:16 shockwave Though, my guts tell me there is a way to do it.
19:17 shockwave Is just gonna require more 'heuristics'.
19:17 pmichaud shockwave: PCT currently does re-fetches for each use of an attribute (so no, it's not optimized)
19:17 pmichaud this is where Parrot's lack of a true scalar container pmc results in lots of refetching of bindings
19:18 shockwave pmichaud: They way I have it now, at works, I think, I would keep the same and do a refetching after a sub call.
19:18 shockwave It would still benefit quite a bit, I think.
19:18 shockwave s/at works/at worst/
19:19 plobsing shockwave: perhaps your language permits knowing statically which attributes get set in calls?
19:20 shockwave @plobsing: True. It is statically typed, so I'm sure that information can be obtained.
19:21 shockwave That kinds shit introduces so much more record keeping.
19:21 shockwave I hate and love optimizations.
19:22 shockwave I guess I'll be wrestling with this over the next day or so.
19:22 shockwave Thanks for the tips, guys.
19:23 pmichaud shockwave: what about vtable overrides?  ;-)
19:24 shockwave pmichaud: Now you're just being mean :(
19:24 pmichaud I've just been down this trail a few times already... :)
19:25 shockwave pmichaud: Seriously, thoug. I appreciate those tips, because they'll be saving me plenty of headaches.
19:25 pmichaud plobsing: what about overridden methods?  ;-)
19:26 plobsing dynamism is fun no?
19:26 pmichaud it is, yes.
19:26 shockwave I don't use vtable overrides, except for a couple of places in the runtime library. But I have control of that.
19:26 pmichaud shockwave: yes, vtable overrides might be rare in some languages.
19:26 shockwave Since my language is statically typed, I take care of the override methods, and operator overloads manually.
19:26 whiteknight I have a strong dislike for vtables and vtabe overrides
19:27 shockwave @whiteknight: How come?
19:27 whiteknight shockwave: current implementation is remarkably inefficient. Plus the design of the whole thing is lousy
19:28 shockwave ah
19:29 chromatic joined #parrot
19:29 shockwave pmichaud: Any other nuggets of wisdom / concerns you care to throw my way?
19:29 pmichaud shockwave: haven't thought of any at the moment
19:30 whiteknight chromatic: you agree?
19:31 shockwave pmichaud: Cool. I'll chime in once I've come up with a working implentation for this caching business.
19:32 x3nU left #parrot
19:32 chromatic Hang on, backlogging.
19:33 x3nU joined #parrot
19:34 chromatic Ultimately Lorito makes the vtable override problem go away.
19:34 chromatic For now, with a week's worth of work from two or three people we could make most of the penalty go away.
19:35 whiteknight how do you propose we can accomplish that?
19:36 davidfetter joined #parrot
19:37 chromatic http://trac.parrot.org/parro​t/wiki/ClassVtableOverrides
19:39 shockwave Are there any current benchmarks for Parrot? I am curious to see how much Lorito speeds it up.
19:40 whiteknight shockwave: there is no Lorito yet, so there's nothing to benchmark against
19:40 shockwave whiteknight: Well, maybe a benchmark again C code?
19:40 shockwave s/again/against
19:41 Coke common benchmarks include "building rakudo".
19:41 whiteknight chromatic: I was talking to bacek yesterday. I think we need a concerted effort to move forward the gc_massacre branch first
19:41 chromatic Agreed.
19:41 Tene ClassVtableOverrides would have been fun to work on over this weekend, I think.
19:41 whiteknight That will at least set the stage for splinter efforts to create new cores with some sanity
19:42 chromatic Every time I try to do something intelligible with the GC, I get lost in a mess of "How does this STRING compacting thing work?"
19:42 shockwave @Coke: sigh. I guess that's something.
19:42 whiteknight chromatic: yeah, that's the point that gc_massacre is at now. I think we need to refactor the string compactor out into it's own encapsulated module
19:43 whiteknight I think I could do it if I had time, but I rarely do. And bacek has been tied up too
19:44 NotFound plobsing: I don't see how we can avoid initializing allocated PMC and string registers, they need some value in order to checks for nullness work.
19:44 chromatic Only bacek knows what bacek needs to do next on it.
19:44 whiteknight that's mostly true. The bus number there isn't too terribly high
19:45 chromatic More like a Singapore number.
19:46 plobsing NotFound: if it could be guarranteed that registers were initialized before use (eg: by using information a register allocator would need anyways),  it could be done away with
19:48 jnthn Maybe something you could do at JIT time.
19:48 whiteknight singapore number?
19:48 shockwave How expensive is setting a PMC to null, anyhow?
19:49 NotFound plobsing: at source level yes, but for loaded pbc that will need to analyze the bytecode for security reasons.
19:49 jnthn (ClassVtableOverrides) Will keep an eye on what happens here, if anyone works on it.
19:49 shockwave And, what about resetting the same PMC to null again? any difference in speed?
19:49 chromatic Fixing vtable overrides may give a 5% performance improvement.
19:49 chromatic My guess is 3-4.
19:50 plobsing shockwave: I would bet that it is dominated by op-dispatch costs
19:50 jnthn chromatic: I hadn't quite figured out what to do with vtables in the new Rakudo object model yet, tbh.
19:50 jnthn chromatic: Certainly want something smarter.
19:50 shockwave @plobsing: I see.
19:51 chromatic I think you're stuck with how vtables work until Lorito gets smarter.
19:51 jnthn chromatic: To the extent that I'm stuck with having to use them, yes.
19:52 plobsing NotFound: it's been a couple of weeks since you said "let's see what happens" on TT #1694. noone screamed. can it be closed?
19:52 chromatic If you're willing to give up interoperability with other languages running on Rakudo, you could use something else.
19:52 NotFound plobsing: What happpened?
19:52 NotFound ;)
19:53 plobsing what happened? it's monday and we haven't reached our ticket quota yet.
19:53 NotFound Rakudo and othe HLL work fine with > r48578 ?
19:53 plobsing afaik. rakudo for certain.
19:54 NotFound Then I'll close it.
19:54 jnthn chromatic: ...other languages running on Rakudo? ;-)
19:55 chromatic Parrot, I mean.
19:55 jnthn :-)
19:55 jnthn I figured. :-)
19:56 moritz other languages running Rakudo? Perl6 via yapsi comes to mind :-)
19:57 NotFound Who's blizkost master?
19:57 moritz NotFound: jnthn and sorear
19:57 * jnthn started it, sorear++ did most of the work :-)
19:58 NotFound I'd like to have a way to map some class to CODE without inheriting from Sub
19:59 NotFound I'm doing some experiments with the Gtk2 perl module.
19:59 dalek parrot: r48813 | plobsing++ | trunk/t/pmc/exception-old.t:
19:59 dalek parrot: capture_lex in main as is required of outer subs. pmichaud++
19:59 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48813/
20:03 dalek TT #1694 closed by NotFound++: load_bytecode semantic differs between .pir and .pbc loading
20:03 dalek TT #1694: http://trac.parrot.org/parrot/ticket/1694
20:03 dalek TT #1686 closed by plobsing++: Null PMC access in find_method('signature') using Digest/MD5 from rakudo
20:03 dalek TT #1686: http://trac.parrot.org/parrot/ticket/1686
20:05 moritz plobsing: remember to decrement ticket count in /topic
20:05 Topic for #parrot is now Parrot 2.7.0 "Australian King" Released! | parrot.org Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 |  close 25 tickets (6 to go), merge branches; profile your favorite PIR for memory leaks with valgrind                                                                                                        
20:09 Andy joined #parrot
20:11 ruoso left #parrot
20:11 GeJ Bonjour everyone.
20:12 Topic for #parrot is now Parrot 2.7.0 "Australian King" Released! | parrot.org Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 |  close 25 tickets (5 to go), merge branches; profile your favorite PIR for memory leaks with valgrind
20:13 Andy any clues why my SSHing is failing? http://paste.linuxassist.net/215418
20:16 dalek parrot: r48814 | NotFound++ | trunk/t/pmc/stringbuilder.t:
20:16 dalek parrot: test StringBuilder init_pmc with empty array
20:16 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48814/
20:17 dukeleto msg cotto I like the draft github migration plan, we should put that on the wiki or something so we can refine it
20:17 purl Message for cotto stored.
20:17 aloha OK. I'll deliver the message.
20:19 mariano__ left #parrot
20:20 dalek TT #1764 closed by plobsing++: Infinite loop in exit handler
20:20 dalek TT #1764: http://trac.parrot.org/parrot/ticket/1764
20:23 Topic for #parrot is now Parrot 2.7.0 "Australian King" Released! | parrot.org Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 |  close 25 tickets (4 to go), merge branches; profile your favorite PIR for memory leaks with valgrind
20:24 luben chromatic, ping
20:25 chromatic pong
20:26 luben I have tried some discussed approached for hash tables optimization
20:27 luben but neither is working as expected
20:27 chromatic I think we're best off concentrating on avoiding the hash function pointers and using specific functions for "Look up with STRING key" or whatever.
20:27 luben 1st - I made a version without indirection, every function is inlined at compile time
20:28 luben s/every function/every key_hash_ function/
20:28 chromatic How was it?
20:28 luben but the speedup is marginal
20:29 luben let me do the math in percent
20:29 M_o_C left #parrot
20:31 luben 1.25% max speedup with some ugly hacks
20:31 chromatic That's not awful.
20:32 luben the code is not as maintainable, because every hash function has to be in hash.c
20:32 chromatic That's not so good.
20:33 luben there is also less flexibility - in order to cover our uses, we have to add another hash_key_type
20:33 dalek parrot: r48815 | plobsing++ | trunk/t (2 files):
20:33 dalek parrot: same capture_lex fix as in r48813
20:33 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48815/
20:33 luben because some caching code uses hashes with PMC key, but compare them as a pointers
20:34 chromatic Which caching code is this?
20:34 luben mro
20:34 luben in pmc/class
20:34 luben let me look
20:35 luben src/pmc/addrregistry.pmc
20:35 luben src/pmc/class.pmc
20:35 luben on the other side, we could get rid of the function pointers in the hash struct
20:36 chromatic I'd like to do that, if possible.
20:37 luben ok, I'll look further in that direction
20:37 dalek TT #1172 closed by plobsing++: Lexical Associations Not Thawed with Tailcalls
20:37 dalek TT #1172: http://trac.parrot.org/parrot/ticket/1172
20:38 luben the other try was using murmurhash2 as string/cstring hash function - it works but there is not speedup overall
20:40 chromatic I just granted you commit access for SVN, by the way.  Feel free to update CREDITS as a test.
20:40 luben thanks
20:41 luben I should log with trac user/pass ?
20:41 chromatic yes
20:47 plobsing2 joined #parrot
20:51 luben :) it works
20:52 plobsing left #parrot
20:52 patspam joined #parrot
21:04 davidfetter left #parrot
21:06 dalek parrot: r48816 | luben++ | trunk/CREDITS:
21:06 dalek parrot: Update CREDITS with myself
21:06 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48816/
21:22 NotFound We have opcodes for keyed operations with integers and with keys. I wonder if opcodes for keyed_str may give a noticeable speedup.
21:23 whiteknight luben++
21:24 NotFound luben++
21:24 luben thanks :)
21:26 luben a quick question. What does PARROT_PURE_FUNCTION? and what PARROT_CONST_FUNCTION?
21:27 NotFound luben: they are hints for the C compiler optimizer
21:27 luben I found where they are described
21:27 dalek rakudo: dd6a03a | pmichaud++ | src/Perl6/Actions.pm:
21:27 dalek rakudo: Refactor whatever_curry to progress towards refactoring out create_code_object()
21:27 dalek rakudo: in favor of block_closure() (which is the way all other closures are created).
21:27 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/d​d6a03a89c0f1f6bcf87e530ad137f1ca6d49001
21:47 Andy left #parrot
21:53 fperrad left #parrot
21:55 whiteknight pmichaud: ping
23:21 nwellnhof left #parrot
23:36 theory joined #parrot
23:59 ruoso joined #parrot

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

Parrot | source cross referenced