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 brances; profile your favorite PIR for memory leaks with valgrind
Set by moderator on 5 September 2010.
00:01 shockwave left
dalek rrot: r48807 | nwellnhof++ | trunk/src/string/api.c:
Revert "[str] Set buflen in str_clone"
00:13
cotto dukeleto, ping 00:18
00:24 aloha left, bacek left 00:33 dngor left, dngor_ joined 00:43 lichtkind joined 00:44 whiteknight joined
lichtkind where can i look for learning writing binary binding for parrot? 00:44
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
to use it from rakudo
plobsing if you're just lookig to connect to simple libs from rakudo, check out zavolaj 00:46
zavolaj?
purl, zavolaj?
purl plobsing: wish i knew
sorear github/jnthn/zavolaj
dalek rrot: r48808 | nwellnhof++ | trunk/src/string/api.c:
Fix a GC-related bug in Parrot_str_clone

string header. If Parrot_gc_allocate_string_storage then triggers a GC run, bad things can happen like external strings being compacted.
00:47
plobsing purl, zavolaj is github.com/jnthn/zavolaj
purl OK, plobsing.
cotto zavolaj is also a prototype of the native call interface for Rakudo 00:48
purl okay, cotto.
cotto rakudo nci?
rakudo nci is <reply> see zavolaj
rakudo nci?
purl see zavolaj
plobsing does zavolaj come with r*? 00:50
00:54 Psyche^ joined 00:59 Patterner left, Psyche^ is now known as Patterner 01:06 tetragon left 01:11 dngor_ is now known as dngor 01:12 theory left 01:22 tcurtis joined 01:25 whiteknight left 01:32 kid51 joined
moderator 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:33
moderator 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:46
01:56 hercynium joined
dalek TT #1370 closed by jkeenan++: ->strstart cleanup 01:59
TT #1370: trac.parrot.org/parrot/ticket/1370
02:22 lichtkind left
kid51 msg shockwave trac.parrot.org/parrot/ticket/1621 has been updated; can you comment? Thanks. 02:22
purl Message for shockwave stored.
kid51 msg whiteknight Can you reply to trac.parrot.org/parrot/ticket/36#comment:7 Thanks. 02:31
purl Message for whiteknight stored.
02:35 janus left, janus joined 02:56 theory joined 02:58 kid51 left 03:19 theory left 03:51 dalek left, dalek joined
dalek TT #1499 closed by plobsing++: Null pointer dereference in imageio.pmc 03:58
TT #1499: trac.parrot.org/parrot/ticket/1499
03:59 dalek left 04:00 dalek joined
moderator 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:01
04:03 dalek left, dalek joined
cotto dukeleto, reping 04:06
I have a draft proposed timeline and prereqs for the move to git. I'd appreciate any thoughts. 04:10
gist.github.com/566631
04:10 hercynium left
cotto purl, msg dukeleto I'd appreciate your thoughts on my draft github migration plan: gist.github.com/566631 04:12
purl Message for dukeleto stored.
04:14 nwellnhof_ joined
plobsing cotto++ # almost git o'clock 04:15
cotto I'm jazzed.
04:18 nwellnhof left, nwellnhof_ is now known as nwellnhof
plobsing ping nwellnhof 04:19
04:23 bluescreen left
bacek_at_work cotto++ # git ftw! 04:24
04:33 davidfetter left 04:34 nwellnhof left
cotto bacek_at_work, do you see any holes in the plan? 05:01
bacek_at_work cotto, nope. Looks good 05:04
cotto thanks
06:07 uniejo joined 06:25 fperrad joined
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 08:04 mj41_ joined 08:09 mj41 left, mj41_ is now known as mj41 08:12 bacek joined 08:14 aloha joined 08:15 jsut joined 08:19 eternaleye left 08:20 eternaleye joined, jsut_ left, esskar left 08:21 tcurtis left 08:42 M_o_C joined 08:47 M_o_C left 09:41 M_o_C joined
dalek rrot: r48809 | gerd++ | trunk/tools/dev/pbc_to_exe.pir:
let "pbc_to_exe" compile with the same flags then the other programs are compiled
10:06
10:11 AzureSto_ joined 10:14 AzureStone left
dalek TT #1772 created by kkourt++: minor omission in docs/book/pct/ch04_pge.pod 10:28
TT #1772: trac.parrot.org/parrot/ticket/1772
10:37 ruoso left 10:42 bluescreen joined, kj joined 10:58 kj left 11:01 kj joined 11:03 smash joined
smash hello everyone 11:03
11:09 kj left 11:10 integral left 11:27 whiteknight joined 11:34 contingencyplan left 11:38 PerlJam left, pmichaud left, dukeleto left, dalek left, Util left 11:49 integral joined 11:54 ruoso joined 12:05 M_o_C left 12:06 M_o_C joined 12:07 dalek joined 12:09 PerlJam joined 12:10 dukeleto joined, pmichaud joined 12:15 fperrad_ joined, mariano__ joined 12:16 fperrad left, fperrad_ is now known as fperrad 12:20 Util joined 12:25 kid51 joined 12:27 fperrad_ joined 12:30 fperrad left, fperrad_ is now known as fperrad
whiteknight good morning, #parrot 12:37
happy Labor Day, for those who celebrate it
moritz in .de, Labor Day is May 1st 12:38
(and a public holiday :-)
whiteknight and is soviet russia, labor day celebrates you! 12:39
dalek TT #1772 closed by jkeenan++: minor omission in docs/book/pct/ch04_pge.pod 12:42
TT #1772: trac.parrot.org/parrot/ticket/1772
TT #206 closed by Paul_the_Greek++: extend disassembler to print constants in const table
TT #206: trac.parrot.org/parrot/ticket/206
12:42 alin joined
dalek rrot: r48810 | jkeenan++ | trunk/docs/book/pct/ch04_pge.pod:
Correct word omission spotted by kkourt++ in ļæ½trac.parrot.org/parrot/ticket/1772.
12:42
moderator 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
moderator 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
moritz can't count :-) 12:44
whiteknight where does the source code for PAST live? 12:52
moritz compilers/pct/ somewhere 12:53
whiteknight ah, yeah. I just found it
13:12 dalek left 13:13 dalek joined
whiteknight in the NQP source, how do I get the contents of a <quote>, without the quotation marks included? 13:29
13:30 uniejo left, M_o_C left 13:32 uniejo joined 13:34 alin left 13:35 uniejo left 13:37 M_o_C joined 13:39 esskar joined
whiteknight msg pmichaud github.com/Whiteknight/nqp-rx/commi...15311f93b5 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.
aloha OK. I'll deliver the message.
13:49 JimmyZ joined 13:52 M_o_C left 13:53 M_o_C joined 13:55 jsut_ joined 14:00 jsut left 14:01 whiteknight left 14:11 JimmyZ left 14:15 nwellnhof joined
mikehh t/examples/namespace.t - Failed => get_string() not implemented in class 'NativePCCMethod' 14:16
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 14:34 Paul_the_Greek joined
Paul_the_Greek Help on headerizer? 14:34
dalek rrot: r48811 | NotFound++ | trunk (2 files):
throw an exception when trying to hll_map without an HLL, TT #1771
14:40
14:45 tcurtis joined, mj41_ joined
Paul_the_Greek Help on headerizer? 14:46
14:46 ttbot left 14:47 ttbot joined, mj41 left, mj41_ is now known as mj41
NotFound Paul_the_Greek: what kind of help? 14:52
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
I tried make headerizer, but it fails on core_ops.c, which doesn't have a headerizer marker.
NotFound core_ops.c? It shouldn't touch that. 14:56
Paul_the_Greek My thought exactly. I did a realclean, reconfigured, then headerizer. 14:57
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.
Am I supposed to specify the object file on the headerizer command? 14:59
That's what the synopsis in headerizer.pl says.
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
15:00 mj41 left
Paul_the_Greek Oooooh. 15:00
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.
NotFound So we should live with its peculiarities, and hope some day someone will improve it. 15:02
15:02 ttbot left
Paul_the_Greek Sounds good. I have other errors to correct in my file, then I bet everything will be fine. Thanks. 15:02
15:02 nwellnhof left 15:05 mj41 joined 15:09 ttbot joined 15:12 M_o_C left 15:13 M_o_C joined 15:15 mj41_ joined 15:17 mj41 left, mj41_ is now known as mj41 15:22 mj41_ joined 15:24 mj41 left, mj41_ is now known as mj41
Paul_the_Greek ping NotFound 15:24
15:24 kid51 joined
Paul_the_Greek Hey kid51 15:25
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.
Then I make headerizer and it complains about core_ops.c 15:38
NotFound Odd
Have you change some op file?
Paul_the_Greek svn status shows nothing. 15:39
Oh wait, svn update would merge them.
NotFound Yeah, use svn diff
Paul_the_Greek I did an svn status before the update and nothing was listed.
15:39 mj41_ joined
Paul_the_Greek svn diff lists nothing. 15:39
Should I make bootstrap_ops ? 15:40
NotFound It shouldn't be needed. Don't know what's happening
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
Paul_the_Greek How do I found out which release I'm at?
NotFound svn info
Paul_the_Greek Yup, I'm at 48811. 15:42
Trying boostrap-ops ...
NotFound Updating and rebuilding, just to be sure...
Paul_the_Greek Is a make required after bootstrap-ops?
NotFound Probably, don't know for sure 15:43
15:44 mj41 left
NotFound make headerizer works and changes nothing in r48811, as expected. 15:44
15:44 mj41_ is now known as mj41
cotto good morning 15:44
purl For you maybe.
Paul_the_Greek bootrap-ops worked. nothing to be done for make. 15:45
cotto what are you up to, Paul_the_Greek
?
Paul_the_Greek make headerizer still tries to headerize core_ops.c
Working on sprintf exponent, but can't headerize. See previous line.
NotFound Paul_the_Greek: nopaste a patch with your changes and I'll try it 15:46
cotto too
Paul_the_Greek Sorry, which changes?
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.
Do you want to see if it breaks something permanently?
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
Oh, wait a minute ... 15:49
is all_cstring.str supposed to be in the top-level directory?
NotFound Paul_the_Greek: make realclean should delete it
Paul_the_Greek Okay, then I don't think I've added anything that would bother the build. 15:50
Shall I nopaste a diff and you can see if it messes you up?
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
NotFound In windows? I've never used headerizer in windows. Never heard about problems with it, but... 15:52
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.
nopaste "Paul_the_Greek" at 192.168.1.3 pasted "sprintf changes" (108 lines) at nopaste.snit.ch/23243 15:54
15:55 nwellnhof joined
NotFound Paul_the_Greek: it works, and creates the header for your new static function. 15:59
Paul_the_Greek Well then, ain't that interesting. Can you email it to me? 16:00
So perhaps we have a Windows problem? What a strange thing to have a problem with.
What steps did you go through?
NotFound Uncommenting the ASSERT_ARGS to check is correct...
Apply the patch, make, make headerizer 16:01
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 nopaste.snit.ch/23244
"kid51" at 192.168.1.3 pasted "t/examples/namespace.t: Test failure (reported earlier by mikehh as well)" (71 lines) at nopaste.snit.ch/23245 16:03
kid51 2nd paste is better
purl i already had it that way, kid51.
nopaste "NotFound" at 192.168.1.3 pasted "sprintf changes after headerizing" (134 lines) at nopaste.snit.ch/23246
kid51 That failure in the examples emerged sometime between r48741 (Sep 01) and r48810 (today) 16:04
The test file itself has not changed in that time period. 16:05
NotFound r48790 - add NativePCCMethod PMC to replace raw NCI 16:07
Looks like this is the cause.
kid51 NotFound: Is there something in t/examples/namespace.t that is now outdated since that ticket? 16:08
Paul_the_Greek NotFound: Can you email me the headerized file? 16:11
NotFound Paul_the_Greek: I've nopasted it. 16:12
Paul_the_Greek Oops, missed that. Thanks.
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:13
I doubt that code should be in example, unless as an example on how to not write clear and comprehensible code X-) 16:17
Just one comment for such complicated manipulations... 16:18
Paul_the_Greek NotFound: Opening a ticket. What platform are you on? 16:20
NotFound Paul_the_Greek: linux amd64 16:21
kid51 NotFound: Agreed, it may be a problem with the test. Am reopening TT #1549 16:23
NotFound: Can you post that observation in TT #1549? 16:24
16:30 Andy joined
Andy New ack is out. Please test it. search.cpan.org/dist/ack/ 16:31
16:31 nwellnhof left
nopaste "kid51" at 192.168.1.3 pasted "t/op/sprintf.t: test failures after applying sprintf-related patch" (327 lines) at nopaste.snit.ch/23247 16:31
kid51 my paste is on linux i386 16:32
NotFound kid51: done 16:38
dalek TT #1549 reopened by jkeenan++: [DEPRECTION] NCI for "raw" pointers 16:39
TT #1549: trac.parrot.org/parrot/ticket/1549
TT #1773 created by Paul_the_Greek++: make headerizer fails on Windows XP
TT #1773: trac.parrot.org/parrot/ticket/1773
16:46 kid51 left 17:13 bluescreen left
NotFound Andy: install ok. Something specific to test? 17:16
Uh... --version says is 1.92 17:17
Andy How did you install it, NotFound ?
NotFound Andy: cpan - upgrade App::Ack
Andy ok, and did it pull down the 1.93_01 tarball? 17:18
NotFound No, 1.92
Andy OK, then there's your problem.
You're familiar with how CPAN mirrors work? 17:19
NotFound Delayed mirror, probably.
Andy you can pull from the repo if you like
NotFound I'll wait, I'm not very confident with cpan and don't like to break it. 17:21
I've already done it several times X-) 17:22
BTW I can't install blizkost on my debian machine, it says that perl 5.10 isn't enough recent. 17:24
17:27 M_o_C left
Andy you can also install the tarball manually 17:29
17:31 Andy left 17:34 nwellnhof joined 17:35 whiteknight joined 17:42 contingencyplan joined
whiteknight good afternoon, #parrot 17:45
moritz Infinoid: ping
Infinoid moritz: pong 17:46
moritz Infinoid: we need some more repos reported by dalek to #perl6
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?
moritz that would be great
Infinoid Does perl6 (or rakudo) have a wiki somewhere it can scrape?
17:48 dalek left, dalek joined
moritz Infinoid: I'd suggest a file in the github.com/perl6/ecosystem/ repo 17:48
Infinoid hmm, that would work.
moritz something easy to parse... JSON?
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
any preferred datastructure? 17:50
{ "owner" : "perl6", "repo" : "mu", "branch": "master", "channels": ["#perl6"] }, or so? 17:51
or do you want straight links to something?
Infinoid straight links will let it autodetect github, googlecode, gitorious 17:52
though it would be better by section, I think, where section is a server/channel tuple
e.g. ["freenode", "#perl6"]
moritz wfm
Infinoid: should I start by putting a sample file in that repo? 17:56
Infinoid Sure, thanks. I'd eventually like to move some hardcoded things into there (like rakudo, nqp-rx, 6model, grok, etc) 17:58
moritz let's start with adding new things, and when they work, replace the old ones 17:59
Infinoid yep
moritz hm, seems ecosystem is not a good place... let's put it into the mu repo for now 18:00
Infinoid: github.com/perl6/mu/blob/master/mis...-conf.json 18:01
Infinoid that works, thanks 18:09
moritz (I've assumed a default branch of "master") 18:10
18:11 cotto left
Infinoid cool. 18:14
18:21 kid51 joined
whiteknight good afternoon, kid51 18:26
kid51 hello, whiteknight 18:27
dalek kudo: ae66feb | pmichaud++ | src/Perl6/ (2 files):
Removed (unused) $lazy parameter from add_signature().
18:29
18:38 shockwave joined, M_o_C joined
nopaste "shockwave" at 192.168.1.3 pasted "Is this an OK way to pass null to subs?" (14 lines) at nopaste.snit.ch/23248 18:40
shockwave Howdy.
In the code I posted at the URL above, it shows a way to pass a null value. 18:41
In this case, is is done by passing an undefined register to a sub? 18:42
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
(what the code above shows)
18:55 kid51 left
plobsing shockwave: it will probably always work, but it is best if you don't depend on it 18:56
if you're looking for optimizations though, you may want to use if_null in stead of isnull/unless 18:57
not that it'll buy you much. (about the same as omitting the nulling of $P0)
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:01
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:02
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:04
unlikely that we ever could, but lets keep that option open 19:05
shockwave @plobsing: So your recommendation would be to alway emit the $P99 = null prior? 19:08
plobsing yes.
dalek rrot: r48812 | plobsing++ | trunk/examples/namespace/namespace_dump.pir:
refactor namespace_dump example.

   * factor out common subroutine
   * handle cases where entries don't have a valid get_string vtable more generically
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:10
19:11 tcurtis left
shockwave But man, those kinds of optimizations introduce some special cases in the implementation of the compiler code. 19:11
Basically, what's generated looks good, at the expense of the implementation that does that generation.
plobsing shockwave: is your compiler publicly available somewhere?
shockwave @plobsing: No, it isn't.
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 ?
dalek TT #1549 closed by plobsing++: [DEPRECTION] NCI for "raw" pointers
TT #1549: trac.parrot.org/parrot/ticket/1549
shockwave pmichaud, in that case, it re-issues a getattribute call.
pmichaud ah 19:13
shockwave (to the same register :))
pmichaud how does it know to do that?
I mean, what if the setattribute occurs in a called function?
or what if a different function does a setattribute, how do we update the cached register in the original?
shockwave pmichaud: err... I hadn't tought of that. Damn! 19:14
pmichaud: Good catch!
pmichaud shockwave: I've just been down this trail a few times already... :) 19:15
shockwave pmichaud: Where you at all successful?
Damn, and I thought I was home free, to work on emitting tailcall opcodes. 19:16
Though, my guts tell me there is a way to do it.
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)
this is where Parrot's lack of a true scalar container pmc results in lots of refetching of bindings
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
It would still benefit quite a bit, I think.
s/at works/at worst/
plobsing shockwave: perhaps your language permits knowing statically which attributes get set in calls? 19:19
shockwave @plobsing: True. It is statically typed, so I'm sure that information can be obtained. 19:20
That kinds shit introduces so much more record keeping. 19:21
I hate and love optimizations.
I guess I'll be wrestling with this over the next day or so. 19:22
Thanks for the tips, guys.
pmichaud shockwave: what about vtable overrides? ;-) 19:23
shockwave pmichaud: Now you're just being mean :( 19:24
pmichaud I've just been down this trail a few times already... :)
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? ;-)
plobsing dynamism is fun no? 19:26
pmichaud it is, yes.
shockwave I don't use vtable overrides, except for a couple of places in the runtime library. But I have control of that.
pmichaud shockwave: yes, vtable overrides might be rare in some languages.
shockwave Since my language is statically typed, I take care of the override methods, and operator overloads manually.
whiteknight I have a strong dislike for vtables and vtabe overrides
shockwave @whiteknight: How come? 19:27
whiteknight shockwave: current implementation is remarkably inefficient. Plus the design of the whole thing is lousy
shockwave ah 19:28
19:29 chromatic joined
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
whiteknight chromatic: you agree? 19:30
shockwave pmichaud: Cool. I'll chime in once I've come up with a working implentation for this caching business. 19:31
19:32 x3nU left
chromatic Hang on, backlogging. 19:32
19:33 x3nU joined
chromatic Ultimately Lorito makes the vtable override problem go away. 19:34
For now, with a week's worth of work from two or three people we could make most of the penalty go away.
whiteknight how do you propose we can accomplish that? 19:35
19:36 davidfetter joined
chromatic trac.parrot.org/parrot/wiki/ClassVtableOverrides 19:37
shockwave Are there any current benchmarks for Parrot? I am curious to see how much Lorito speeds it up. 19:39
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?
s/again/against
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
chromatic Agreed.
Tene ClassVtableOverrides would have been fun to work on over this weekend, I think.
whiteknight That will at least set the stage for splinter efforts to create new cores with some sanity
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.
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
I think I could do it if I had time, but I rarely do. And bacek has been tied up too 19:43
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.
whiteknight that's mostly true. The bus number there isn't too terribly high
chromatic More like a Singapore number. 19:45
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:46
jnthn Maybe something you could do at JIT time. 19:48
whiteknight singapore number?
shockwave How expensive is setting a PMC to null, anyhow?
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.
shockwave And, what about resetting the same PMC to null again? any difference in speed?
chromatic Fixing vtable overrides may give a 5% performance improvement.
My guess is 3-4.
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.
chromatic: Certainly want something smarter.
shockwave @plobsing: I see.
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.
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.
NotFound plobsing: What happpened?
;)
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 ?
plobsing afaik. rakudo for certain.
NotFound Then I'll close it. 19:54
jnthn chromatic: ...other languages running on Rakudo? ;-)
chromatic Parrot, I mean. 19:55
jnthn :-)
I figured. :-)
moritz other languages running Rakudo? Perl6 via yapsi comes to mind :-) 19:56
NotFound Who's blizkost master? 19:57
moritz NotFound: jnthn and sorear
jnthn started it, sorear++ did most of the work :-)
NotFound I'd like to have a way to map some class to CODE without inheriting from Sub 19:58
I'm doing some experiments with the Gtk2 perl module. 19:59
dalek rrot: r48813 | plobsing++ | trunk/t/pmc/exception-old.t:
capture_lex in main as is required of outer subs. pmichaud++
TT #1694 closed by NotFound++: load_bytecode semantic differs between .pir and .pbc loading 20:03
TT #1694: trac.parrot.org/parrot/ticket/1694
TT #1686 closed by plobsing++: Null PMC access in find_method('signature') using Digest/MD5 from rakudo
TT #1686: trac.parrot.org/parrot/ticket/1686
moritz plobsing: remember to decrement ticket count in /topic 20:05
moderator 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:05
20:09 Andy joined 20:11 ruoso left
GeJ Bonjour everyone. 20:11
moderator 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:12
Andy any clues why my SSHing is failing? paste.linuxassist.net/215418 20:13
dalek rrot: r48814 | NotFound++ | trunk/t/pmc/stringbuilder.t:
test StringBuilder init_pmc with empty array
20:16
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.
aloha OK. I'll deliver the message.
20:19 mariano__ left
dalek TT #1764 closed by plobsing++: Infinite loop in exit handler 20:20
TT #1764: trac.parrot.org/parrot/ticket/1764
moderator 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:23
luben chromatic, ping 20:24
chromatic pong 20:25
luben I have tried some discussed approached for hash tables optimization 20:26
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.
luben 1st - I made a version without indirection, every function is inlined at compile time
s/every function/every key_hash_ function/ 20:28
chromatic How was it?
luben but the speedup is marginal
let me do the math in percent 20:29
20:29 M_o_C left
luben 1.25% max speedup with some ugly hacks 20:31
chromatic That's not awful.
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.
luben there is also less flexibility - in order to cover our uses, we have to add another hash_key_type 20:33
dalek rrot: r48815 | plobsing++ | trunk/t (2 files):
same capture_lex fix as in r48813
luben because some caching code uses hashes with PMC key, but compare them as a pointers
chromatic Which caching code is this? 20:34
luben mro
in pmc/class
let me look
src/pmc/addrregistry.pmc 20:35
src/pmc/class.pmc
on the other side, we could get rid of the function pointers in the hash struct
chromatic I'd like to do that, if possible. 20:36
luben ok, I'll look further in that direction 20:37
dalek TT #1172 closed by plobsing++: Lexical Associations Not Thawed with Tailcalls
TT #1172: trac.parrot.org/parrot/ticket/1172
luben the other try was using murmurhash2 as string/cstring hash function - it works but there is not speedup overall 20:38
chromatic I just granted you commit access for SVN, by the way. Feel free to update CREDITS as a test. 20:40
luben thanks
I should log with trac user/pass ? 20:41
chromatic yes
20:47 plobsing2 joined
luben :) it works 20:51
20:52 plobsing left, patspam joined 21:04 davidfetter left
dalek rrot: r48816 | luben++ | trunk/CREDITS:
Update CREDITS with myself
21:06
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:22
whiteknight luben++ 21:23
NotFound luben++ 21:24
luben thanks :)
a quick question. What does PARROT_PURE_FUNCTION? and what PARROT_CONST_FUNCTION? 21:26
NotFound luben: they are hints for the C compiler optimizer 21:27
luben I found where they are described
dalek kudo: dd6a03a | pmichaud++ | src/Perl6/Actions.pm:
Refactor whatever_curry to progress towards refactoring out create_code_object()
21:47 Andy left 21:53 fperrad left
whiteknight pmichaud: ping 21:55
23:21 nwellnhof left 23:36 theory joined 23:59 ruoso joined