Parrot 2.8.0 will be released at "2010-09-21 08:00 UTC" | parrot.org Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | close 25 tickets; remove deprecated items (especially CodeString); record deprecations; polish for 2.8 release
Set by moderator on 18 September 2010.
00:00 M_o_C left 00:30 kid51 joined 00:33 hercynium left 00:36 theory left 00:47 TonyC_ is now known as TonyC 01:01 hercynium joined
luben why do we insist that cloned hashes should have the same internal ordering? 01:02
cotto Do we depend on that assumption? 01:03
luben it is in the test suite 01:05
dalek rrot: r49140 | plobsing++ | trunk (3 files):
integer constants or in-line in bytecode. this is dead code.
01:06
luben I think we do not depend on it
cotto That strikes me as questionable.
Oh. Apparently I wrote that test. 01:07
luben me too. and hash PMC get_repr could be done in more simple manner. I will work on that
cotto trac.parrot.org/parrot/ticket/116
chromatic We rely on it for OrderedHash anyway. 01:08
plobsing luben: I ran into that issue with order preservation across freeze/thaw. I just todoed the test.
cotto I thought bacek decoupled Hash from OrderedHash. 01:09
chromatic If that's the case, +1 to hiding hash ordering.
cotto Yeah. My test strikes me as fixing the problem at the wrong level. 01:10
luben I am compiling coptimized clone and will run rakudo spectest to see if there are difference
cotto optimized by the police?
chromatic If it changes class attribute offsets, we need to fix that problem in class attributes. 01:11
cotto -Oticket
plobsing looks like orderedhash uses a doubly linked list to manage ordering
cotto bacek++ 01:13
luben I am running now rakudo spectest to see if it makes a difference 01:17
dalek rrot: r49141 | plobsing++ | trunk/src/pmc/imageiofreeze.pmc:
fill out doc stubs
01:22
sorear Would it be a good idea to make an explicit distinction between interface tests and unit tests? 01:31
plobsing in terms of this test, the confusion could have been avoided by simply testing the ordered behaviour in tests for orderedhash. 01:34
that way, people would understand *why* ordering should be preserved. 01:35
01:35 dngor_ joined 01:36 dngor left
dalek rrot: r49142 | plobsing++ | trunk/MANIFEST.generated:
update MANIFEST.generated to reflect recent PMC changes
01:39
01:41 dngor_ is now known as dngor 01:51 gottreu joined 01:58 contingencyplan left 02:02 kid51 left 02:14 PhatEddy left 02:35 janus left 02:43 LaVolta joined 02:54 janus joined
dalek rrot: r49143 | plobsing++ | branches/typesafe_consttable:
creating branch to make num, str, and pmc constants disjoint
03:03
rrot: r49144 | luben++ | trunk/src/hash.c:
optimize hash cloning
03:20
rrot: r49145 | luben++ | trunk/src/hash.c:
fix some warnings
rrot: r49146 | luben++ | trunk/t/pmc/hash.t:
todo() a test for hash internal ordering
plobsing luben: nice hash optimization. how much of a win is it? 03:36
03:37 theory joined
chromatic 4.7% for Rakudo startup, if I did it right. 03:48
plobsing nice 03:49
chromatic I distrust that number somewhat, but I look forward to the new benchmark graphs. 03:52
msg smash Can you run your benchmark scripts against Parrot and Rakudo HEAD? I expect some interesting numbers.
purl Message for smash stored.
aloha OK. I'll deliver the message.
plobsing typesafe_consttable should permit a significant improvement to rakudo startup 03:54
I estimate roughly a reduction by 1/3 in the number of subs thawed and 1/2 in the number of lexpads
chromatic Really?
plobsing yes
chromatic Why are we thawing so many subs? 03:55
plobsing briefly, each constant gets frozen as an independant object graph. If these object graphs actually intersect each other, there is waste.
chromatic Ah.
plobsing One place the object graphs intersect is :outer subs
now, if we freeze all pmc constants together, they can cross-reference 03:56
but that requires having all pmc constants separate from the others
chromatic Makes sense.
Smaller bytecode is an even bigger win.
plobsing as an added bonus, autoclose will work from PBC again. although I'm not terribly fond of that "feature" 04:02
chromatic We should rethink how we do subs, scopes, and lexicals.
plobsing I agree. For example, the default lexicals implementation can determine lexical information statically. It doesn't make sense to use hash lookups (we could be using an array). 04:03
chromatic Right. 04:04
Hm, that was a segfault waiting to happen. 04:10
dalek rrot: r49147 | plobsing++ | branches/typesafe_consttable (5 files):
change constant accessor interface. underlying implementation unchanged.
04:11
purl dalek: that doesn't look right
plobsing chromatic: what was? 04:13
purl (not was)
chromatic LexPad's get_pmc_keyed_str().
See if you can spot the error before I commit.
plobsing PMCNULL vs NULL? 04:15
chromatic Exactly.
04:24 jsut joined
dalek rrot: r49148 | chromatic++ | trunk/src/pmc/lexpad.pmc:
[PMC] Fixed a segfault and optimized LexPad.

instead of NULL; get_pmc_keyed_str() is now safer. It's also slightly faster, but you'll have trouble noticing in most benchmarks.
04:28
04:29 jsut_ left
chromatic If we used STRINGNULL more consistently (and removed NULL as a synonym), we could simplify Parrot_str_equal. 04:30
Maybe we should deprecate that. 04:38
plobsing go for it 04:40
dalek rrot: r49149 | chromatic++ | trunk/src/string/api.c:
[str] Fixed a compiler warning.
04:45
05:15 rurban_ joined 05:18 rurban left, rurban_ is now known as rurban 05:25 gottreu left
chromatic msg dukeleto any further info on the stress_strings.pir slowdown? Reviewing commits makes me wonder about 48727, but nothing I'm confident about. 05:56
purl Message for dukeleto stored. 05:57
aloha OK. I'll deliver the message.
chromatic 48586 could do it. 05:58
GeJ_ is parrot_hash_iterate(arg, some_statement; some_other_statement; and_another_one;); a trick? 06:32
cotto It's a macro.
GeJ_ Aaaaah!
06:32 GeJ_ is now known as GeJ
cotto It's how we pretend to have closures. 06:32
well, anonymous subs 06:33
purl anonymous subs are used sometimes :)
cotto forget anonymous subs
purl cotto: I forgot anonymous subs
06:36 cognominal left 06:49 cognominal joined
dalek rrot: r49150 | luben++ | trunk (3 files):
reworked HashIterator PMC to use linear scan

  - unTODO-ed some tests that check hash internals
06:59
07:13 jjore left 07:14 jjore joined 07:24 chromatic left
dalek a: 08498fb | fperrad++ | setup.pir:
since r49086, dynpmc item allows *.h
07:25
07:52 lucian joined
bacek aloha, humans 07:59
08:04 fperrad joined
dalek rrot: r49151 | mikehh++ | trunk/src/pmc/hashiterator.pmc:
fix codetest failures - trailing whitespace and

keyword and any subsequent open parenthesis
08:07
rrot: r49152 | mikehh++ | trunk/src/hash.c:
fix codetest failure - parentheses should not have space immediately
bacek bloody svn... I've lost my latest merge from trunk to gc_massacre... 08:09
mikehh plobsing: ping
bacek: hi there 08:10
purl what's up, mikehh.
bacek hi mikehh 08:11
sorear bacek is still on svn?
bacek git-svn 08:12
it's fucked up during dcommit... Badly.
mikehh bacek: still getting g++ build failures with gc_ms2.c 08:16
also with imageiothaw.pmc in trunk 08:17
nopaste "mikehh" at 192.168.1.3 pasted "g++ build failures at r49152 - src/pmc/imageiothaw.pmc" (12 lines) at nopaste.snit.ch/23457 08:25
08:27 lucian left
mikehh msg plobsing getting g++ build failures with src/pmc/imageiothaw.pmc - see nopaste.snit.ch/2345 08:28
purl Message for plobsing stored.
aloha OK. I'll deliver the message.
mikehh dammit try again 08:29
msg plobsing getting g++ build failures with src/pmc/imageiothaw.pmc - see nopaste.snit.ch/23457
purl Message for plobsing stored.
aloha OK. I'll deliver the message.
dalek rrot: r49153 | bacek++ | branches/gc_massacre (45 files):
Merge branch 'master' into gc_massacre

  \tMANIFEST
  \tMANIFEST.SKIP
  \tconfig/gen/makefiles/root.in
  \tdocs/project/release_manager_guide.pod
  \tsrc/gc/alloc_resources.c
  \tsrc/gc/gc_ms.c
  \tsrc/gc/gc_private.h
  \tsrc/hash.c
  \tt/op/string_cs.t
08:40
purl MANIFEST is useful for lots of stuff and don't forget to regenerate the manifest with perl tools/dev/mk_manifest_and_skip.pl, unless i am using git-svn
purl MANIFEST.SKIP is t/.+.t
purl somebody said config/gen/makefiles/root.in was what generates parrot/Makefile
purl src/hash.c is probably an example use of this.
rrot: r49154 | mikehh++ | branches/gc_massacre/MANIFEST.SKIP:
re-generate MANIFEST.SKIP
cotto botkill 08:44
08:45 tadzik joined
mikehh bacek: gc_massacre - ./miniparrot -Iruntime/parrot/include config_lib.pir > runtime/parrot/include/config.fpmc -> Segmentation fault 08:50
bacek mikehh, I know. Trying to fix it now...
mikehh bacek: good on you mate 08:51
bacek: codetest passes except c++ comments in src/gc/gc_ms2.c 08:52
bacek mikehh, ok, thanks.
dalek rrot: r49155 | bacek++ | branches/gc_massacre/src/string/api.c:
Start sharing string buffers again.
08:57
rrot: r49156 | bacek++ | branches/gc_massacre/src/gc/gc_ms2.c:
Start using String GC in GC MS2
09:06 jan left
bacek mikehh, fixed. 09:07
dalek rrot: r49157 | bacek++ | branches/gc_massacre/src/gc (6 files):
More decoupling of String GC from Memory_Pools
09:14
rrot: r49158 | bacek++ | branches/gc_massacre/src/gc/gc_ms2.c:
Properly free allocated string memory.
bacek seen jnthn 09:22
purl jnthn was last seen on #parrot 1 days, 11 hours, 1 minutes and 51 seconds ago, saying: I think the important thing is that whatever it's accessed as, it should be able to be pointed at a chunk of mmaped memory. [Sep 17 22:20:17 2010]
aloha jnthn was last seen in #perl6 9 hours 46 mins ago saying "*to them :-)".
bacek ookey. gc_massacre is twice faster on building rakudo then before. 09:24
mikehh, can you test "time make" of Rakudo on trunk and gc_massacre?
mikehh, on something different from Linux/amd64 09:26
09:30 jan joined
luben bacek, how is the difference between trunk and branch? 09:46
here it is 3.20/4.45 on linux/amd64 09:47
sorear branch is *slower*? 09:49
bacek: i could test Linux/i386; have you managed to get memory use back under 400-450 yet? 09:50
bacek sorear, no idea... 09:58
luben, branch isn't optimized for performance just yet 09:59
sorear luben: what was peak mem usage while building on amd64? 10:00
luben yes, i have figured. I'm waiting it to land in trunc to dive into GC internals
bacek luben, I'm no going to merge it back before I'll be 100% sure that gc_ms2 is better than old one 10:05
luben I will take a look on the branch to just grasp the idea. Then I could help with making it better 10:06
10:09 orc joined
luben time to go for a lunch here. see you later 10:09
mikehh bacek: switching to i386 now 10:14
10:22 mikehh left 10:27 orc left 10:28 LaVolta left, fperrad left 10:41 lucian joined 10:45 mikehh joined 11:00 mikehh left 11:17 ruoso joined 11:24 fperrad joined 11:40 whiteknight joined 11:43 GodFather left 11:58 kid51 joined 12:00 contingencyplan joined
whiteknight good morning, #parrot 12:24
12:27 contingencyplan left
jnthn bacek: Looking for me? :-) 12:55
13:13 Patterner left 13:15 rurban_ joined 13:18 Psyche^ joined, Psyche^ is now known as Patterner, rurban left, rurban_ is now known as rurban 13:46 whiteknight left 13:53 jan left 14:01 sjn_ joined 14:05 tadzik left 14:16 tadzik joined 14:39 mj41 left
dalek TT #1794 created by nwellnhof++: Linear hash scan assumes non-NULL keys 14:40
TT #1794: trac.parrot.org/parrot/ticket/1794
14:43 sjn_ left 14:45 mj41 joined 14:50 jan joined 14:52 sjn_ joined 15:06 hercynium left 15:21 kid51 left
sECuRE after changing documentation of a function in src/io/socket_unix.c, where can i find it to proof-read / ensure i got all tags set properly? 15:40
(for the PMC documentation i run 'make html' and open docs/html)
15:46 mikehh joined 15:49 orc joined 15:51 whiteknight joined, szbalint_ is now known as szbalint
whiteknight good morning #parrot 15:53
orc good night 15:57
16:06 cxreg2 is now known as cxreg 16:11 rotund joined 16:12 rotund left 16:15 fperrad left 16:18 fperrad joined 16:19 orc left 16:27 rotund joined 16:31 rotund left 16:49 tadzik left 16:51 lucian left
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#115), fulltest) at r49158 - Ubuntu 10.10 beta (gcc-4.5 with --optimize) 17:06
17:06 jan left
dalek ast: bc0487b | pmichaud++ | S03-operators/short-circuit.t:
Correct test in short-circuit.t (RT #77864).
17:06
rrot: r49159 | plobsing++ | branches/typesafe_consttable (18 files):
separate num, str, and pmc constants
17:07
17:20 PhatEddy joined 17:47 thowe joined
dalek TT #951 closed by jkeenan++: correct some minor bugs in t/pmc/threads.t 17:47
TT #951: trac.parrot.org/parrot/ticket/951
tracwiki: v143 | whiteknight++ | Languages 17:54
tracwiki: Moving Matrixy to the "Inactive" state. The language is not dead, but there are some prerequisites to further development and I have other higher priorities at the moment.
tracwiki: trac.parrot.org/parrot/wiki/Languag...ction=diff
17:54 Chandon left 18:02 whiteknight left 18:07 Andy joined 18:13 whiteknight joined 18:30 hercynium joined 18:32 Chandon joined 18:33 whiteknight left 18:38 whiteknight joined
mikehh rakudo (ccde8dc) builds on parrot r49158 - make test, make spectest_smolder(#117) PASS - Ubuntu 10.10 beta amd64 (gcc-4.5 with --optimize) 18:44
18:46 hercynium_ joined, hercynium_ left 18:47 lucian joined 18:50 hercynium left, hercynium joined 18:52 Andy left 19:13 senf_statt_oel joined 19:15 rurban left
thowe how do I compile a pir to bytecode? 19:31
whiteknight parrot -o foo.pbc foo.pir 19:34
thowe hmm, yeah. Tried that. I get a bunch of syntax errors about the pir 19:35
sorear you might try not using Rakudo output for your tests 19:36
19:36 lucian left
sorear Rakudo customizes the pir parser, pir it generates cannot be parsed in any other context 19:36
thowe oh... then I assume I need some rakudo-specific method to produce parrot bytecode... 19:37
jnthn sorear: That's not really true. 19:38
sorear: We do have some dynops.
And I guess just don't emit .laodlib directives for them
We need a tweak to PAST for that, but since nqp-rx is getting dynops I'm just about to block on that. 19:39
So it'll get done soon. :-)
Then fixing up Rakudo's code-gen should be easy.
For now, add a .loadlib 'perl6_ops' to the start of the PIR file by hand; that should be enough.
(We don't hit the issue with pre-compiled modules since in taht case, Rakudo has already been loaded and pulled in the ops. It's only for scripts that will be run directly that we have the issue.) 19:40
sorear Anyway, why bother? Perl6::Module::Loader looks for Foo.pm, Foo.pm6, and Foo.pir, NOT Foo.pbc 19:42
jnthn sorear: True, but that's gonna have to change at some point. 19:44
Unless we want to store serialized blobs of stuff in PIR, anyways. 19:45
19:59 hercynium left 20:25 fperrad left 20:33 jan joined 20:38 perlite left, perlite joined 20:41 contingencyplan joined 20:44 PacoLinux left
dalek rrot: r49160 | plobsing++ | branches/typesafe_consttable (2 files):
fix some minor logic bugs
20:47
20:57 preflex left 20:59 preflex joined
dalek rrot: r49161 | plobsing++ | branches/typesafe_consttable/t/compilers/imcc/syn/regressions.t:
keys no longer length limited
21:04
21:09 thowe left
dalek kudo: 523da45 | pmichaud++ | build/PARROT_REVISION:
Bump PARROT_REVISION.
21:22
21:29 senf_statt_oel left 21:39 ruoso left 21:57 ruoso joined 21:59 tadzik joined 22:14 tadzik left
dalek TT #1795 created by ronaldws++: pcre_compile picked wrong function signature letter. 22:53
TT #1795: trac.parrot.org/parrot/ticket/1795
23:11 whiteknight left
NotFound Grrrroarrrrr 23:33
Wrong channel, sorry :-X
23:36 kid51 joined
dalek TT #150 closed by NotFound++: load_bytecode, loadlib, and HLL 23:44
TT #150: trac.parrot.org/parrot/ticket/150
23:46 hercynium joined 23:51 hercynium left