Parrot 2.3.0 Released | parrot.org/ | Channel log: irclog.perlgeek.de/parrot/today | Priority: apply deprecations, merge branches, test exceptions_refactor branch | welcome our GSoC students
Set by moderator on 27 April 2010.
darbelo Coke: Just to add to your hesitation: Think of the PCC method call overhead. 00:05
dalek tracwiki: v5 | darbelo++ | GSoCersStartHere 00:13
tracwiki: Make "CLA" into links to the CLA.
tracwiki: trac.parrot.org/parrot/wiki/GSoCers...ction=diff
Coke darbelo: ... no, that IS my hesitation.
:P
darbelo Optimize now. Somebody will clean it up later ;) 00:14
dalek rrot: r46294 | coke++ | branches/codestring (99 files):
merge latest changes from trunk
00:18
00:33 ash_ joined
dalek rrot: r46295 | chromatic++ | trunk/src/pmc/continuation.pmc:
[PMC] Tidied Continuation's code and added documentation. No functional
00:34
ash_ github svn now has subversion write support , so you can pull and push from svn on github, as well as pull and push from git 00:42
darbelo ponders svnhub 00:46
00:48 plobsing joined
Coke tries to find where String's concat vtable is. 00:53
it goes to MMD offa default.pmc 00:54
dalek TT #1609 closed by gerd++: tools/docs/filename_and_chapter.pl: Can we make this work with our coding ... 01:02
TT #1609: trac.parrot.org/parrot/ticket/1609
tewk Coke: Scalar I believe 01:03
Coke grabs the samples from default and modifies them. 01:04
cotto ohai 01:14
Coke question: should concat on a codestring auto-append a newline too?
I'm thinking no.
dalek rrot: r46296 | coke++ | branches/codestring/t/pmc/codestring.t:
Make sure that CodeString works with inplace concat.
01:23
Coke getting docs/pdds/pdd17_pmc.pod 01:29
er.
Method 'HOW' not found for invocant of class 'P6role'
when building rakudo on my branch. that's not happening in trunk, is it?
chromatic No. 01:39
Coke hurm.
dalek rrot: r46297 | coke++ | branches/codestring/src/pmc/codestring.pmc:
make i_concat* vtables use the RSA
Coke chromatic: you see anything squirrely about r46297 ? 01:42
chromatic No, I don't. 01:48
It might have been an earlier commit.
Coke bother. 01:49
bisecting. 01:50
purl i think bisecting is easy if you use svn-bisect
01:59 Psyche^ joined 02:15 elmex joined 02:26 bacek_at_work joined
Coke yup, that did it. :P 02:28
02:46 snarkyboojum joined 02:47 cotto joined
Coke odd. it was i_concatenate that was a problem - _str was fine. 02:48
02:50 cottoo joined
dalek rrot: r46298 | coke++ | branches/codestring/src/pmc/codestring.pmc:
remove vtable - was causing build failure on rakudo. :(
03:02
rrot: r46299 | jimmy++ | trunk/src/pmc/hash.pmc:
revert part of my r46276
Coke is there a "parrot foo" equivalent to parrot-nqp? 03:06
03:07 janus joined
Coke ah, there it is. 03:08
ash_ what do you mean by parrot foo? 03:11
Coke invoke parrot directly with something like nqp-rx.pbc (also installed). 03:12
it was just buried a bit.
ash_ you mean like Q:PIR { } ? 03:16
Coke ... no, from the command line.
instead of invoking "parrot-nqp foo.nqp", I want "parrot ./path/to/nqp-rx.pbc foo.nqp" 03:17
then I can pass arguments to parrot.
ash_ ah, i see what you mean, got ya
tcurtis compilers/nqp/nqp.pbc ? 03:18
sorear Coke: bacek: We don't *need* StringBuilder. 03:19
Little known fact: PIR is a binary file format.
It's specced using bytes, so we don't actually need to track encodings
Coke tcurtis: no, that nqp is gone. 03:20
sorear So... ByteBuilder
a.k.a
ResizableByteArray
Coke sorear: um.
we're not doing bytes. we're doing /strings/
Strings ain't PIR.
sorear PIR is made of bytes, not characters
If PIR was made of characters, you could just say "Ćø" 03:21
But PIR is made of bytes, so you have to specify: unicode:"Ćø"
bacek_at_work sorear, it's not PIR
It's our bloody strings.
sorear strings, in PIR, are reduced to byte sequences *before* becoming embedded in the PIR matrix
bacek_at_work sorear, they are not.
sorear bacek_at_work: I thought CodeString was only used to output PIR. My mistake. 03:22
bacek_at_work Inside STRING* there is "encoding" and "charset"
(Which is actually really-really bad)
afk # lunch
tcurtis Coke: runtime/parrot/library/nqp-rx.pbc is what's used to make parrot-nqp, so it should be what you need. 03:25
03:26 cognominal joined, jsut_ joined
Coke tcurtis: ayup. 03:29
(really bad) Here comes some NFG! 03:31
tewk March PCC hackathon removed GETATTR_CallContext_returns_values, where is it now?
Coke anyone with feather privs who could install kcachegrind? 03:32
chromatic tewk, I think that was unused after the hackathon. 03:34
tewk I have DARKPARROT code that used that.
ash_ Coke: what is nfg? 03:35
purl nfg is No Fscking Good! or grapheme normalization form (see docs/pdds/draft/pdd28_character_sets.pod)
ash_ ah
thanks purl?
Coke ash_: there's a GSOC project for implementing NFG.
tewk: NOOO 03:36
03:36 Coke joined
bubaflub ash_: darbelo just wrote this up today: www.parrot.org/content/what-nfg-why...ot-have-it 03:37
Coke hurm. kcachegrind is in macports... crossing fingers... 03:38
03:38 LoganLK joined
tcurtis DARKPARROT? 03:38
tewk is a play on DarkPAN, code that isn't publically available, or in this case checked into parrot's repo 03:39
Coke DARKPAN?
purl i guess DARKPAN is the 90% of modules that you can't see, because they're not on CPAN. The dark matter of the Perl world
tewk chromatic: how are returns handled now, do I want to replace the curren retcontinuation? 03:42
ash_ does icu provide any thing to help with NFG's? 03:43
chromatic RetCont is gone. We unified calls and returns. 03:44
sorear tewk: look at blizkost_call_in in blizkost, it's the most complete single user of PCC at this time AFAIK 03:45
tewk blizkost? 03:53
purl somebody said blizkost was github.com/jnthn/blizkost/tree/master or the last Jonathan's project, an embedding of Perl 5 in Perl 6
Coke chromatic: has you a writeup on using kcachegrind/ 03:56
tewk :q 03:57
chromatic I don't.
03:58 JimmyZ joined
Coke stares at the pretty pictures for a few minutes. 03:59
chromatic Change the sorting on the left pane. 04:00
purl chromatic: that doesn't look right
chromatic You probably want to detect cycles.
You probably also want to show relative percentages.
04:01 snarkyboojum joined
Coke diakopter installed it on feather; it's wicked slow remoting in. :( 04:06
(or is it always wicked slow?)
dalek rrot: r46300 | jimmy++ | trunk/src (68 files):
changed interp in pmc class to INTERP for unification
04:08
bacek_at_work purl, forget Change the 04:19
purl bacek_at_work, I didn't have anything matching change the
bacek_at_work purl, forget Change
purl bacek_at_work, I didn't have anything matching change
bacek_at_work purl, forget 'Change ' 04:20
purl bacek_at_work, I didn't have anything matching 'change '
bacek_at_work purl, forget 'cange
purl bacek_at_work, I didn't have anything matching 'cange
bacek_at_work purl, forget change '
purl bacek_at_work, I didn't have anything matching change '
bacek_at_work purl, forget change
purl bacek_at_work, I didn't have anything matching change
bacek_at_work stupid robots...
JimmyZ purl: Change
purl JimmyZ: that doesn't look right
JimmyZ purl: Change is <reply> 04:21
purl JimmyZ: that doesn't look right
JimmyZ purl: no, Change is <reply>
purl OK, JimmyZ.
JimmyZ purl: Change
purl JimmyZ: sorry...
JimmyZ Change it to that
purl JimmyZ: that doesn't look right
cottoo I think it's equivalent to "no, x is ..." 04:25
cows?
purl hmmm... cows is "Where Are The Cows", at www.scullucs.com/wac/ (Firefox only)
Coke bacek? 04:26
purl bacek is THE MANIAC or some sort of magical coding robot
cottoo I don't know what that is but it may be amazing.
bacek_at_work Coke? 04:27
purl well, Coke is Will Coleda <mailto:will@coleda.com> or perpetually annoyed. or magical ticket robot or (if Diet), something that turns into formaldehyde in my blood. or getting those data_json issues in Coke's build. or tempted to remove "ticket_append" for authenticated. or on OSX 10.6.3
Coke change bacek to crazy bot mangler.
purl Coke: that doesn't look right
JimmyZ jimmy?
purl jimmy is translating some docs to chinese. or allegedly a sloth
JimmyZ JimmyZ?
purl hmmm... JimmyZ is getting rid of PARROT_CAPTURE(SELF), so changed it to use PMC_data is better.
cottoo oic 04:28
change 100 USD to euro
purl cottoo: Either 'USD' or 'EURO' is an invalid currency symbol, or Yahoo changed its screen format for the currency exchanger. Check finance.yahoo.com/currency for the list of supported symbols.
Coke cottoo++
win 2
cottoo cotto++
cotto cottoo--
all beter
all better
purl docs? 04:29
purl hmmm... docs is n00bs should write docs, because once the n00b is an 0ldie, the information is forgotten
cotto purl docs is also www.infobot.org/guide-0.43.x.html
purl okay, cotto.
cotto excuse
purl cotto: positron router malfunction
cotto excuse
purl cotto: We only support a 1200 bps connection.
cotto excuse
purl cotto: Jan 9 16:41:27 huber su: 'su root' succeeded for .... on /dev/pts/1
sorear purl troubles? 04:30
purl wish i knew, sorear
cotto purl stupids
purl stupids is this a show?
sorear easy fix 04:31
cotto are you thinking what I'm thinking?
sorear purl troubles?
purl sorear: i don't know
sorear hmm
cotto purl, stupids =~ s/show/cow/
purl OK, cotto 04:32
cotto stupids?
purl rumour has it stupids is this a cow
sorear I guess it doesn't work the same on magnet
cotto don't ban purl. If you need her to shut up just take voice.
It's much easier to reverse.
that substitution may come in handy 04:33
purl's mom?
purl pemungkah's mother is a saint! or capable of multiplexed I/O.
sorear cotto: on freenode, a ban starting with a % isn't an actual ban
it's an anti-voice 04:34
allowing normals to speak while purl is gagged
JimmyZ purl?
purl JimmyZ?
JimmyZ purl code?
purl well, code is already out
cotto general advice 04:35
purl i guess general advice is create my own COnfig file
sorear purl, purl, flooterbuck 04:36
purl sorear: what?
sorear purl, flooterbuck
purl hmmm... flooterbuck is well, flooterbuck is the kind of infobot that i am or a dagbrown, mendel, warewolf and kd production or actually maintained or github.com/dagbrown/flooterbuck/ or git-clone git://github.com/dagbrown/flooterbuck.git or a complete pile of ass written in perl 4 or mostly warewolf's fault really.
cotto Mmmm. Perl 4.
sorear see also #purl if you need admin time (warning: serious tribunal atsmosphere)
I had to go to them after the parrot quarterly when someone here kb'd perl 04:37
*shudder*
cotto There aren't enough Perl 6 implementations written in Perl 4. 04:38
sorear was planning to redo the Parrot build system in Perl 4 04:44
cotto I should probably stop saying things. 04:45
chromatic For April Fools a few years ago, I intended to write Apocalypse -1, which listed all of the changes between Perl 4 and Perl 5 in the style of the Perl 6 Apocalypses. 04:50
I put it off, then Perl.com turned into a vast wasteland of advertising that has nothing to do with Perl.
04:51 parthm joined 05:02 JimmyZ_ joined, arnsholt joined 05:03 Maddingue joined 05:05 particle joined
Coke now I want parrot + C kcachegrind interleaved. =-) 05:11
sorear parrot has a time profiler now? 05:12
who wrote it?
05:12 simcop2387 joined
chromatic No, that would be silly. 05:12
Coke chromatic: what does called (0) mean? 05:14
cotto sorear, what do you mean by "time profiler"? 05:15
05:22 theory joined
sorear cotto: a metaprogram which instruments a run of another program such as to break apart the time cost of the program's run and "blame" it on specific subprograms, facilitating efficient use of optimization resources 05:23
compare, space profiler
cotto I was confused more by "time" than by profiler. 05:25
which ironic because I wrote the profiling runcore 05:26
sorear cotto++ that sounds seriously awesome 05:29
I think we could improve Rakudo's memory usage a great deal by removing a layer of indirection from Object handling 05:30
have PMC_DATA point directly to the attribute bits, instead of having a PMC* attributes_rpa attribute 05:31
or, as a cheap 0th approximation, turn PCT::Node into a PMC
just a random thought.
oh, my mistake, PCT::Node isn't an Object, it's a Capture 05:32
which is worse
every single node in the AST (and there are 3 parallel ASTs during a compile operation) corresponds to an Object PMC (which inherits from Capture), an RPA to hold the Object's attributes, a Hash to hold the named children, and another RPA to hold the numbered children 05:34
and the attribute blocks for all four PMCs
and the buffers for the two RPAs and the Hash
that's 11 memory block + however much space hash chains use (unstudied)
JimmyZ Subversion Write Support 05:44
oh double messages 05:45
06:03 uniejo joined 06:27 particle joined 06:51 iblechbot joined 07:11 parthm joined
cotto would really like svn stash about now 07:36
sorear never did figure out how to use git stash 07:37
cotto It's half-way between a commit and not a commit. 07:42
moritz sorear: git stash puts all non-committed change into a temporary commit that's managed by a stack 07:55
so it doesn't show up on your branch
and it then cleans your working dir 07:56
cotto Yeah. what I said except useful. 08:00
sorear hmm. PAST cannot generate a parameter without a lexical alias? 08:09
moritz huh? 08:16
rakudo implements anyonymous parameters
so there must be some way
sorear how do you spell an anonymous parameter in rakudo? 08:19
moritz sorear: $ 08:20
see #perl6
or @ for that matter
sorear ah, I was unclear.
I want to be able to access the parameter, but not expose it to inner lexical scopes
in PIR it's the normal case 08:21
dalek rrot: r46301 | cotto++ | branches/ops_pct (717 files):
revert previous bad sync
08:29
08:35 TiMBuS joined
cotto looks forward to merging without spamming parrot-commits 08:46
bacek ~~ 08:51
cotto Now that the extra runcores are gone, the only things keeping ops_pct from being merged are speed and dynop support. 08:55
sorear ops_pct? 08:56
purl ops_pct is probably using the old API for parsing
cotto no, ops_pct is a branch for a nqp-rx ops compiler
purl okay, cotto.
sorear ops_pct? 08:59
purl ops_pct is, like, a branch for a nqp-rx ops compiler
cotto bacek, is there an easy way to verify that the magic number in compilers/opsc/t/06-* in the "Ops parsed correctly" test needs to be changed? 09:00
s/\\*/opsfile.t/ 09:01
bacek cotto, I don't think so...
cotto That doesn't make it a very good test in the case where the ops change more frequently than the ops compiler.
dalek rrot: r46302 | cotto++ | branches/ops_pct (790 files):
sync branch with trunk, hopefully for real this time
cotto this sync looks a lot better 09:02
09:02 clinton joined
bacek cotto, chicken and egg problem... 09:03
cotto Sure. I'll see if bootstrap-ops works and call it good if so.
bacek wfm 09:04
cotto splode 09:05
dwfm
it might have something to do with the runcore purge. no way I'm fixing it tonight 09:07
09:09 bakkdoor joined
cotto btw bacek, that branch should probably either use upstream nqp-rx or you should get your changed merged. 09:09
bacek cotto, I do need pmichauds review on Settings... 09:10
moritz bacek: pmichaud predicted that he'll be much more available next week 09:11
I hope that turns out to be the case
dukeleto 'ello
cotto ok. There's certainly no rush to merge.
'i
bacek moritz, it will be good.
dalek rrot: r46303 | cotto++ | branches/ops_pct (2 files):
[opsc] misc minor updates for thing that have changed since the last sync
09:18
mikehh cotto, bacek: any branch testing you need done? 09:19
cotto There's still that one test failure and the fact that building with the bootstrapped core_ops.c explodes, but the branch is basically up-to-date
bacek cotto, YOU BROKE IT!!! :) 09:20
cotto Not only that. I broke it and I'm going to sleep soon. >;0
night 09:22
also, dukeleto++ for those latest contributions to the git discussion 09:23
sorear dukeleto++ for the nice link 09:24
dukeleto cotto: thanks
09:24 parthm joined
dukeleto does anybody see test 13 failing in t/library/pg.t ? 09:24
cotto wfm (and good night for real this time) 09:25
moritz good night
all skipped here 09:26
what do I need for actually running them?
dukeleto moritz: that is probably the deal, most people don't generate the pg bindings 09:27
moritz dukeleto: how would I do that?
dukeleto moritz: it seems that they are auto-detected if you have pg installed system-wide 09:30
moritz: there may also be some Configure.pl flag
moritz I guess I need -dev packages installed? 09:31
moritz sent another lengthy mail to parrot-dev 09:32
dukeleto moritz: yes, the -dev packages have the headers that are needed at compile-time 09:33
JimmyZ gitbhu has Subversion Write Support now.
er. github
moritz dukeleto: installed that, and rebuilding parrot ... 09:34
huh, still all skipped 09:35
dukeleto all pg.t tests pass for me on OS X (pg 9.0devel), but test 13 fails on ubuntu (pg 8.4.3) 09:39
moritz do I need to set up a test database for pg or so?
dukeleto moritz: yes, which OS are you on? 09:40
moritz dukeleto: debian gnu/linux "lenny" (stable) on amd64 09:41
dukeleto moritz: i think you need to create a database with the same name as the username that runs the tests
moritz: sudo -u psql
moritz: create database user; 09:42
moritz: i think?
moritz: i think it is sudo -u postgres, actually
moritz bah, I first need to install some other stuff 09:43
dukeleto moritz: yeah, libpq-dev probably
moritz a specific version of the database client and server :-)
dukeleto moritz: for some reason, debian spreads postgres across many packages that do not have postgres in the name 09:44
moritz: which specific version?
moritz like, 8.0 or so
No candidate version found for postgresql-8.0
moritz hatez it
dukeleto moritz: try 8.4 09:45
moritz: that is the latest stable release of postgres
moritz and available from backports.org
doing that now
dukeleto moritz: i target 9.0 with PL/Parrot, which has been in a feature freeze for a while and should come out this summer 09:46
moritz and beta1 released already
bacek totally failing to understand how protoregexes works... 09:48
moritz seems I need to do a more in-depth blog post or article on them
dukeleto moritz: i like your helpnow idea
dalek TT #1610 created by dukeleto++: Parrot_compile_string does not properly catch errors thrown by causing ...
TT #1610: trac.parrot.org/parrot/ticket/1610
sorear bacek: 09:49
proto regex term { ... }
bacek "token infix:sym<*>" 09:50
sorear rule term:sym<literal> { \\d+ }
rule term:sym<variable> { \\w+ }
is sugar for
bacek Reading NQP/Partcl sources doesn't bring light to how it referenced... 09:51
sorear rule term { \\d+ | \\w+ }
dalek rrot: r46304 | dukeleto++ | trunk/t/src/embed.t:
[t][TT #1610] Add tests for Parrot_compile_string
dukeleto moritz: yes, and it is a great idea that parrot should have them as well
sorear except that 1. they're extendable in derived grammars 2. you can attach actions to each branch
does that make it clear?
bacek sorear, I understand it... I don't understand how to migrate "optable" from PCT to Grammar.O in nqp-rx... 09:52
sorear (don't ask why they're called "proto" regexes. it means nothing in an NQP context.)
JimmyZ prototype 09:53
purl somebody said prototype was the bastard love child of dolly parton and lord lucan or a bastard, it does the Javascript equivalent of stuffing UNIVERSAL with methods or use jquery, dojo, mootools or pretty much any other javasscript framework intstead or smells of FormMail.PL and old man wee
moritz dukeleto: finished my setup... also fails test 13 here
JimmyZ something like multi sub 09:54
dukeleto just made TT# 1611, can you add that it fails for you as well?
moritz: trac.parrot.org/parrot/ticket/1611
moritz done 09:57
dukeleto moritz++
dalek TT #1611 created by dukeleto++: t/library/pg.t fails with PostgreSQL 8.4.3 on ubuntu 9.10 10:05
TT #1611: trac.parrot.org/parrot/ticket/1611
parrot: d4df269 | dukeleto++ | t/sql/test.sql:
Add commented out test for loading standard Parrot PIR libraries
10:14
parrot: 36cbc3e | dukeleto++ | TODO:
Improve TODO
parrot: 1d8c873 | dukeleto++ | t/sql/test.sql:
Add tests to make sure File.open and FileHandle.open are intercepted
kudo: 124895a | moritz++ | src/pmc/ (2 files):
switch two PMCs to auto_attrs. Patch courtesy of Vasily Chekalkin
10:15
kudo: 60c23d9 | moritz++ | docs/ROADMAP:
[docs] update ROADMAP

comment on progress of some items
10:24 viklund joined
bacek finally give up on idea to update Squaak grammar to nqprx. 10:26
It's much easy to start from scratch...
10:39 parthm left 11:20 mikehh joined 11:30 fperrad joined 11:42 khairul joined 11:43 iblechbot joined 11:57 jsut joined 12:01 bluescreen joined
dalek rrot: r46305 | bacek++ | branches/ops_pct/compilers/opsc/src/Ops/Trans/C.pm:
Remove one space to get generated files close to ops2c.
12:01
rrot: r46306 | bacek++ | branches/ops_pct (3 files):
Remove set_label/get_label from ops.num. They are still in experimental
12:07 Hunger joined
dalek rrot: r46307 | bacek++ | branches/ops_pct/compilers/opsc/src/Ops/Trans/C.pm:
Small tweaks to emit code closer to ops2c
12:18
rrot: r46308 | bacek++ | branches/ops_pct/src/ops/core_ops.c:
Regenerate core_ops.c without line directives
rrot: r46309 | NotFound++ | trunk/examples/tools/pbc_checker.cpp:
update example pbc_checker to deal with recent pbc changes
bacek msg cotto I've resurrected ops_pct. Not it can be self-hosted. 12:22
purl Message for cotto stored.
dalek a: bd7eedd | fperrad++ | (7 files):
OS becomes a dynpmc, so load it
12:42
rrot: r46310 | NotFound++ | trunk/t/src/embed.t:
change a Parrot_compile_string test from skip to todo
12:52
purl dalek: that doesn't look right
Coke xkcd++ 13:20
13:21 atrodo joined 13:27 jsut_ joined 13:40 plobsing joined
mikehh t/examples/shootout.t - Failed test: 17 - Method 'reverse' not found for invocant of class 'String' 13:56
all other tests PASS (pre/post-config, make corevm/make coretest, smoke (#33619), fulltest) at r46273 - Ubuntu 10.04 amd64 (g++)
Coke mikehh: yah, someone just removed that. apparently without checking if it was used. =-)
mikehh will look at that later - got to do some other stuff 13:57
dalek rrot: r46311 | NotFound++ | trunk/examples/tools/pbc_checker.cpp:
fix directory segment reading in example pbc_checker
Coke np
mikehh Coke: most people don't run fulltest (or codetest for that matter)
but if removing something you should do this 13:58
or for any bigger change 13:59
Coke or at least 'ack'
that said, should be a simple fix.
mikehh agreed 14:00
yeah - will look at it later - if somebody :-} doesn't fix it first
anyway bbl
dalek rrot: r46312 | bacek++ | trunk (2 files):
Consting Parrot_str_concat
14:15
NotFound Coke: supposedly they checked, that remove was discussed yesterday. 14:16
I suppose the check was just run make test 14:17
Coke no doubt. 14:23
easy enough to resurrect it as an instance method.
NotFound: is there a one liner in c that combines "pmc_new" and init_int? 14:28
(or is that mainly for PIR?)
NotFound Parrot_pmc_new_init_int
Coke danke.
khairul msg cotto finals over. starting to create a tasklist for the project. anything i should take note of? 14:35
purl Message for cotto stored.
14:41 bubaflub joined
dalek rrot: r46313 | coke++ | branches/codestring/src/pmc/codestring.pmc:
Give chromatic++ some knobs to tune.
14:47
khairul Coke: hi Coke, could you please grant me the required permissions to post on parrot.org? my drupal username is khairul. 14:55
Coke khairul: done 14:56
khairul Coke++ thanks alot. 14:57
Coke np. 14:58
15:09 davidfetter joined 15:35 theory joined 15:42 fperrad joined 15:44 ruoso joined 16:23 ntaylor joined
dalek rrot: r46314 | NotFound++ | trunk (3 files):
allocate annotations keys, groups and entries as arrays of structs instead of arrays of pointers to structs
16:25
cotto_work good morning 16:29
purl For you maybe.
darbelo mornin' 16:32
bubaflub morning cotto_work
mikehh getting a Segmentation fault in t/op/string_cs.t - Failed test: 37 in make corevm/make coretest - Ubuntu 10.04 amd64 (g++) 16:34
r46314 16:35
16:35 jan joined
cotto_work khairul, you should put your task list on the wiki 16:35
fperrad msg bacek Lua updated with OS as dynpmc 16:36
purl Message for bacek stored.
moritz is happy to see some gsoc bonding 16:37
darbelo is glad no superglue is involved.
mikehh same result - t/op/string_cs.t - Failed test: 37 - Segmentation fault after make world/make test 16:38
khairul cotto_work: will do. top of the list is the blog post homework i guess. 16:42
cotto_work a testing strategy is important too
sure
16:45 whiteknight joined
cotto_work bacek, the bootstrapped core_ops.c wfm now on Ubuntu 10.04/x64 16:47
or at least it doesn't break the build 16:48
could someone regenerated MANIFEST in ops_pct? 16:53
NotFound mikehh: fixed 16:54
dalek rrot: r46315 | mikehh++ | trunk/examples/shootout/revcomp.pir:
fix failing examples/shootout.t test that used reverse, which is no longer available
17:00
rrot: r46316 | NotFound++ | trunk/src/string/api.c:
Don't leave a string without charset, add some sanity checks
17:08 patspam joined
atrodo I'm having a hard time figuring this out, and it's probably because I'm skimming the docs for the wrong thing, but once a compiler has a PAST, does parrot handle the rest? 17:18
Tene atrodo: the default HLLCompiler set of stages ends with PCT's PAST compiler, which translates from PAST to POST, and then the POST compiler which translates from POST to PIR 17:19
atrodo: is that what you're asking about? 17:20
ash_ so, i scanned me CLA, but who do I email the scanned copy to?
particle ash_: consult parrot.org
or email to parrot-directors@lists.parrot.org 17:21
darbelo Wasn't there an email printed on the CLA?
atrodo Tene> I think so. So a compiler writer can tweak during the PAST to POST stage, and then the POST to PIR (and beyond) will end up generating the pbc?
particle darbelo: i think so 17:22
darbelo checks
ash_ darbelo: yes, i should of double checked that
its there
darbelo legal@parrot.org
Tene atrodo: Yes, the result of each stage is passed to the next stage, so if you want to tweak any stage, just insert a stage after it and manipulate it however you want.
particle ah, that'll do, same place
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#33643), fulltest) at r46316 - Ubuntu 10.04 amd64 (gcc with --optimize) 17:30
atrodo Tene> Thanks, things are starting to make more sense 17:33
Coke whiteknight: replied to your email. 17:52
whiteknight Coke: that would be awesome. If we have a decent interface in place for this release, we can always swap out the internals later 17:53
I'm working on a rope-based approach right now myself
Coke right. 17:54
I think the interface for a SB really just the string-like vtables.
no methods needed, except perhaps a forced "coalesce", but that's optional, I think.
whiteknight wouldn't that be get_string? 17:55
Coke get_string would do it, yes.
whiteknight get_string could create a string and cache it. So long as the internal RSA didn't change that cached string could stay available for fast access
Coke (look at branches/codestring/src/pmc/codestring.pmc's get_string for an example of what coalesce would do. we could just factor that out into a separate method. I'm not sure we want to expose that, though. (just like we don't normally expect our users to run "collect") 17:56
I'll leave the method off for now. =-) 17:57
whiteknight Coke: what's the ETA on that branch?
Coke people should test it and say it's awesome or not. I find that building rakudo is so slow getting useful benchmarks is painful. it's passing all tests right now, though. 17:58
(note that that's just a smarter codestring) 17:59
whiteknight is the branch faster or slower on the Rakudo benchmark than trunk right now?
Coke I would need someone with a machine with nothing else going on to get a good benchmark. Note that you'd also want to check memory usage. 18:00
18:08 bluescreen joined 18:16 davidfetter joined
whiteknight I think I can see some potential bugs in the length calculations in Parrot_str_join 18:20
I think we could also optimize that a little by breaking it into two methods: one where j is non-empty, and one where j is empty. 18:21
Coke whiteknight: you're going to have to do the check somewhere, for the join opcode. 18:28
(splitting it out is only going to help when calling from C with an empty argument. (which is fine, I do that and could call that version)
18:32 joeri joined 18:42 ash_ joined
whiteknight Coke: splitting it out would help any time we have a j of zero length 18:50
but I'm not going to nitpick it right now, there are lots of potential improvements and optimizations in this string code now 18:52
cotto_work whiteknight: we should make sure that everyone who contributed to 2.4 gets their name in the release announcement.
whiteknight so...everybody but me?
:)
18:55 davidfetter joined
cotto_work There's some other stuff that the perl 5 release announcements do better too but that'd be a good start. 18:56
whiteknight cotto_work: I'm open to any ideas.
cotto_work The trick is to fix crow.pir so that maximal laziness can be preserved. 18:57
It'd be easier with git since that lets the author and committer be different people. 19:02
whiteknight I've really been putting a lot of thought into the idea of a more distributed development workflow 19:03
cotto_work I haven't brought it up because it'll be easier to get one change accomplished at a time, but my sekrit assumption is that once we switch to git our workflow will become more distributed. 19:05
I feel much less urgency now that ops_pct is synced again. 19:07
whiteknight it's easy enough to get a list of committers from the svn logs. But what about non-committers who submit patches? 19:09
cotto_work svn log|grep 'courtesy of' 19:10
whiteknight ...assuming all the committers use that format
cotto_work either that or troll through all the commit messages
which is feasible though annoying
Coke something else that git will simplify.
whiteknight I may just troll through all the messages 19:11
Coke I would just be lazy and say "these committers" and everyone who submitted patches, thanks!
NotFound "pafo and his robots"
PerlJam I'd look for just "courtesy". In the Rakudo repo there are some that say "courtesy by Fred", some that say "courtesy Fred" and some that say "courtesy by Fred" 19:12
er, s/by/of/
19:13 fperrad joined
cotto_work I think it's more valuable to include people who've submitted patches. People with commit bits should get recognition but we also want to show that anyone who submits code that ends up in trunk is valued. 19:13
19:14 joeri joined 19:20 ash_ joined 19:23 ntaylor left
whiteknight a grep for "++" does much better 19:24
cotto_work it's a heuristic
Coke msg chromatic - I'm going to carve up codestring into a CodeString and StringBuilder. but in the meantime, I'd appreciate your eye on your benchmark. 19:25
purl Message for chromatic stored.
nopaste "whiteknight" at 192.168.1.3 pasted "committers and submitters" (28 lines) at nopaste.snit.ch/20476 19:32
whiteknight that's the list I have for the month so far 19:33
Coke also bob rogers. 19:35
got a one liner from him that I applied. 19:36
whiteknight rgrjr? 19:45
purl i heard rgrjr was bob rogers
Coke ... maybe? 19:46
darbelo Commit by me are unlikely to include the word courtesy. 19:56
TimToady phone 20:00
20:09 iblechbot joined 20:18 theory joined
Coke bacek++ 20:37
hey, PDD28 probably needs to be updated to discuss immutable. 20:45
s1n i read about the discussion to switch to a different vcs for parrot... 20:46
can i ask, what motivated this desire to change?
darbelo This channel is crawling with svn-haters. 20:47
NotFound moritz: ping 20:48
moritz NotFound: pong
Coke darbelo: that's true but not entirely helpful. =-)
ash_ who is still opposed to git? just curious
moritz ash_: mostly allison, I think
darbelo s1n: Or, put another way, our development methodology is better suited to git than it is to svn.
Coke s1n: lots of us use git for other projects, and find it's faster, provides more features, and causes less headaches. 20:49
NotFound moritz: I'm checking TT #1612... str_concat has changed is last releases, can you try with trunk?
Coke NotFound: hey! do you have an opinion on git vs. svn?
NotFound I think I've found a problem, bu want to be suere.
Coke (ISTR your name was mentioned)
moritz NotFound: I believe r46316 *is* pretty much trunk, no?
NotFound moritz: uh... I misordered the numbers, sorry X-) 20:50
ash_ regarding immutability, i find it interesting that some languages (like haskell) treat all values as immutable
NotFound Lame excuse: I'm with a coldness :-')
darbelo El frio no es excusa ;) 20:51
s1n ash_: haskell has to, that's the whole point of functional languages
moritz NotFound: the last 24 hours or parrot changes seem to have destabilized rakudo - now 8 test files abort, it used to be 2 or 3 typically during the last two weeks
NotFound Coke: I think I said several times: I know very few about git, but I can learn.
s1n Coke: what do you think git will provide that svn doesn't for your development model? 20:52
ash_ s1n: i know, its interesting though, that some languages go to such an extreme that all variables are immutable, i wonder what advantages you get for making everything immutable
NotFound moritz: I think the problem is that now str_concat allow null, but it calls str_copy wich not,
dalek TT #1612 created by moritz++: parrot change between r46273 and r46316 cause Rakudo regression
TT #1612: trac.parrot.org/parrot/ticket/1612
darbelo ash_: That idea is, technically, older than most programing languages in use today.
dalek TT #1613 created by moritz++: Random segfault in rakudo spectests
TT #1613: trac.parrot.org/parrot/ticket/1613
s1n ash_: it's not very functional if they're not immutable, it'd just be a wonky language otherwise
moritz ash_: in theory you get very cheap threading 20:53
theory his hyperthreaded
moritz ash_: immutable values can be shared between threads without locking or copying
s1n ash_: the immutability forces you to do things functionally rather than imperatively
theory *is 20:54
NotFound The current semi-immutability state is no good for stability.
Coke s1n: I am less concerned about the model for developers (we're still going to use a centralized setup, primarily), but it will improve branching/merging and the ability for people without a commit bit to fork and contribute back upstream.
darbelo Coke: That, technically, has happened before. But has been a pain in the ass to merge back. 20:55
NotFound For the love of Budha, why are we still using enum_stringrep_one?
Coke darbelo: er, which has?
s1n how many contributors does parrot manage on average per release?
darbelo Plobsing did his framebuilder in git, prior to obtainig a +1 bit of commiting. Merging those patches back to svn was a pain in the ass. 20:56
s1n doesn't git-svn do these types of things? would that fill the need? 20:57
tewk s1n: git-svn is a band-aid, it has limitations 20:58
21:00 tcurtis joined
darbelo We have some git-svn users, they all agree git-svn doesn't cut it. 21:00
nopaste "NotFound" at 192.168.1.3 pasted "Avoid using noninit string in Filehandle.readall" (23 lines) at nopaste.snit.ch/20478 21:01
darbelo IIRC, Coke also decided that git-svn isn't an improvement over svn and has stopped using it.
NotFound moritz: can you try this patch
?
darbelo NotFound: +Inf, commit it. 21:02
Call it a cleanup, even if it doesn't fix anything. 21:03
NotFound darbelo: I was about to do that, but I'm curious.
The got_name branch of the method is tested? It doesn't look like it does what it says. 21:08
The method readall in filehandle, I mean. 21:09
darbelo Probably not. 21:12
Coke darbelo: just because I don't like git-svn isn't damning. =-) 21:14
I was just expecting it to be completely git, when of course it can't be.
darbelo Coke: Yes it is damning. Anything you don't like deserves to *die*. 21:15
Or am I overstating the case?
Coke darbelo: then I suggest you watch out?
darbelo ;) 21:16
bacek Good morning, my biological friends. 21:18
darbelo stands up and salutes at the magical coding robot. 21:19
bacek fperrad, (dynpmc OS) It was Coke who moved OS to dynpmc :) 21:20
NotFound Patch improved and applied in r46317
21:23 estrabd joined
dalek rrot: r46317 | NotFound++ | trunk/src/pmc/filehandle.pmc:
cleanup FileHandle.readall method
21:23
cotto_work bacek, were your changes all that was needed to get the bootstrapped core_ops.c working again? 21:31
bacek cotto_work, committed and pushed I think. Let me check. 21:32
cotto_work it wfm on my work box
I guess the ops.num fix was the important one
bacek cotto_work, is it latest branch? (Culpit was in "Remove set_label/get_label")
21:33 Whiteknight joined
cotto_work ok 21:33
Whiteknight ok? 21:37
cotto_work ok!
NotFound I fail to understand what Parrot_str_copy does and why. Buffer_bufrefcountptr? Are we refocunting?
cotto_work if really slow
NotFound I also fail to understand why "If both strings are C<NULL>, then a new zero-length string is created and returned." in Parrot_str_concat 21:38
null + null = "" makes sanse for someone? 21:39
bacek NotFound, trac.parrot.org/parrot/ticket/1605
NotFound, (concat) it is not... 21:40
Whiteknight NotFound: buffers are refcounted
bacek Whiteknight, not. Buffers are not refcounted. And never was afaiu. 21:41
NotFound INTVAL * const buffer_flags = Buffer_bufrefcountptr(d); *buffer_flags |= Buffer_shared_FLAG: 21:42
This doesn't look like counting. 21:43
bacek TT#1605 about updating docs for Buffers/Strings.
NotFound And there is some way to know when the buffer isn't not shared anymore? 21:44
darbelo Not really. 21:46
bacek NotFound, during compact_pool we drop "shared" flag on first encountered buffer. Second will set it back.
If we will have "second".
darbelo So, just check the flag?
Surprisingly sane. 21:47
NotFound bacek: and if we don't have "first"?
bacek "first" in order of iterating headers.
If we don't have "first" than we reclaim space :) 21:48
darbelo NotFound: An external string? Those have PObj_external_FLAG set.
NotFound Then why we need the flag?
If they are garbage collected I fail to see the need for the flag. 21:49
bacek For properly (fsvo) calculate required space for compacting.
s/For/To/ 21:50
NotFound Well, the real problem seems to be in str_concat anyway. If b is null it calls str_copy with a, and is NULLOk
bacek Fixed in r46319 21:51
NotFound But str_copy src isn't NULLOK
Whiteknight bacek: I thought they were in some fashion. How else does GC work with shared COW buffers? 21:52
NotFound And the new zero-length requirement disallows the obvoios solution of returning STRINGNULL
Whiteknight and now, how do they work with shared headers pointing into the same buffer?
bacek Whiteknight, single flag is enough.
darbelo Whiteknight: It does refcount, but stops counting after one ;) 21:53
bacek Whiteknight, actually 2 flags, "shared" and "moved".
Whiteknight bacek: single flag? if 10 headers point to 1 buffer, and one header gets collected, how does the collector know not to recycle the buffer?
darbelo You don't care how many strings are sharing the same buffer, just that it's >1.
Whiteknight oh shit, nevermind
I remember, it does a semispace copy
bacek Whiteknight, something like this. But it's not "semispace", we just allocate new Memory_Block for compacted buffers. 21:54
Whiteknight right, and copy everything to the new block, and then kill the old block
those are the basics of semispace
bacek Yes. But in "semispace" it usually have 2 pre-defined "spaces". 21:55
And copy stuff between them.
Care to take TT#1605 and update docu? 21:56
dalek rrot: r46318 | bacek++ | trunk (2 files):
Use CONST_STRING in src/embed.c
rrot: r46319 | bacek++ | trunk/src/string/api.c:
Avoid creating of empty strings in str_concat if arguments are null.
NotFound bacek: that does not do what the pod says. 21:57
bacek NotFound, which one? 21:58
darbelo The docs are old and wrong.
NotFound bacek: r46319
The pod says: "If both strings are C<NULL>, then a new zero-length string is created and returned."
bacek Ah... Update POD? 21:59
Or replace STRINGNULL with str_new("")?
NotFound bacek: fine for me, but don't know if that will break something
Well, let's break something. 22:00
bacek make test passed on my box...
darbelo ... and all is right with the world.
bacek Hooray! NotFound++ # I like such mindset
NotFound bacek: I think the string api is in such confusing state that breaking things and reapiring appropiately is the less evil way. 22:01
bacek Agreed. 22:02
darbelo DESTROY ALL THINGS THAT STAND IN THE WAY OF UTOPIA.
NotFound But at least don't lie in the function's pod. 22:03
22:06 Hunger joined 22:07 khairul joined
Whiteknight Just do it soon 22:11
dalek rrot: r46320 | NotFound++ | trunk/src/string/api.c:
synch the pod with the function change in Parrot_str_concat
22:12
GeJ make fulltest PASS on FreeBSD 7/amd64 at trunk @ r46319 22:18
Whiteknight nice 22:21
cotto_work not promising; the second link I clicked in karthik's message was sdlperl.ath.cx/projects/SDLPerl/log...053fd9851e 22:24
Whiteknight that link breaks for me, but none of the other ones I see do 22:26
cotto_work Yeah. 22:27
Deluge just uses cgit with Trac but they don't seem too big on referring to commits. 22:36
cgit also doesn't integrate too much with the look and feel of trac. it is pretty speedy 22:37
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#33651), fulltest) at r46320 - Ubuntu 10.04 amd64 (g++) 22:43
Infinoid hello all 22:46
purl It's a crazy world, but hello to you too!
Infinoid any misbehaving from dalek recently?
cotto_work nafaict
Infinoid ok. when are yall moving to git? :) 22:47
sorear Infinoid: Well, asides from the fact that it constantly disconnects and drops commits on the floor, no 22:48
cotto_work opbots trust cotto 22:50
slavorg But I already trust cotto
slavorgn But I don't trust you there, cotto_work
cotto_work opbots trust me
slavorg But I already trust me
slavorgn But I don't trust you there, cotto_work
darbelo opbots trust cotto
slavorg But I already trust cotto
slavorgn But I already trust cotto
sorear opbots trust cotto_work
slavorg But I already trust cotto_work
slavorgn Ok
darbelo opbots trust cotto_work
slavorg But I already trust cotto_work
slavorgn But I already trust cotto_work
cotto_work all happy 22:51
darbelo We are all so trustworthy...
Infinoid opbots, names
sorear names?
purl names is a bit lame at the moment because I'm not checking if the output sent to the client exceeds 510 characters
Infinoid sorear: go through the list of ops' names and op anyone who isn't already opped. 22:52
sorear Infinoid: Oh, I thought that was automatic 22:53
Infinoid it tries on join, but misses it if you join with another nick (like Infinoid_) and then change 22:54
22:58 snarkyboojum joined 22:59 ruoso joined 23:01 jjore joined 23:22 eternaleye joined
Whiteknight just noticed that "MooseX", when converted all to lower-case, looks disconcertingly like "moo-sex" 23:38
Whiteknight has fond memories of expertsexchange
cotto_work You don't want to leave that to a n00b. 23:39
Whiteknight no, that's definitely something I would trust an expert with 23:40
in fact, I may just avoid the procedure entirely 23:47
I may need a "for dummies" explanation of the interaction between encodings and charsets 23:50
because there are some things in this strings code that I just do not understand
NotFound Whiteknight: I was just discovering that now length and bytelenget does the same. 23:51
Whiteknight they are the same?
NotFound return s->strlen
So no wonder that places that logically should use length use bytelength instead and works. 23:52
This is a mess.
Whiteknight haha, yeah 23:54
NotFound We are dreaming with grapheme normalization while still doing wrong the most basic things. 23:55
cotto_work It's too bad that darbelo's so shy about removing existing code. 23:56
NotFound Removed code was a mess anyway. 23:57