|
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
|
|||