Camelia, the Perl 6 bug

IRC log for #parrot, 2012-06-19

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
01:14 seiferteric joined #parrot
01:28 kid51 joined #parrot
01:30 seiferteric left #parrot
02:31 bacek_at_work joined #parrot
03:32 benabik joined #parrot
03:33 Coke if https://github.com/parrot/parrot/wiki/Languages is more current than the page on parrot.org, please kill the old page, or put in a redirect to the new one.
03:34 Coke (also, it should link to all the languages under github.com/parrot
03:34 Coke (pheme is missing)
03:59 dukeleto that page should just link to github.com/parrot . nobody is going to update that information
04:56 kuku joined #parrot
05:28 dalek parrot: b11c4d8 | alvis++ | tools/release/parrot_github_release.pl:
05:28 dalek parrot: Minor edit. Just added a newline to the '<li>...</li>' output of 'releases.html' in preparation of tomorrow's release.
05:28 dalek parrot: review: https://github.com/parrot/parrot/commit/b11c4d83c9
06:56 sorear bacek_at_work !!!
07:06 brrt joined #parrot
08:03 kjs joined #parrot
08:57 lucian joined #parrot
09:21 dalek m1: 0e6c36b | kjs++ | / (3 files):
09:21 dalek m1: fix size problem. debugging aray and structs test.
09:21 dalek m1: review: https://github.com/parrot/m1/commit/0e6c36b783
09:22 dalek m1: d91591e | kjs++ | src/decl.c:
09:22 dalek m1: fix PMC test.
09:22 dalek m1: review: https://github.com/parrot/m1/commit/d91591e0d5
09:40 dalek m1: 7d8696d | kjs++ | src/ (4 files):
09:40 dalek m1: add line number information to pmc and structs. fix size for pmcs
09:40 dalek m1: review: https://github.com/parrot/m1/commit/7d8696d9a2
10:26 dalek rakudo/no-strict: a9401fb | moritz++ | src/Perl6/Grammar.pm:
10:26 dalek rakudo/no-strict: parse "no strict"
10:26 dalek rakudo/no-strict: review: https://github.com/rakudo/rakudo/commit/a9401fb47d
10:26 kjs make
10:26 kjs woops
10:58 dalek m1: c8cacd6 | kjs++ | / (3 files):
10:58 dalek m1: improve naming. fix size of struct members that are arrays.
10:58 dalek m1: review: https://github.com/parrot/m1/commit/c8cacd6b7e
11:39 JimmyZ joined #parrot
12:09 brrt joined #parrot
12:21 dalek rakudo/no-strict: 27b55b5 | moritz++ | src/Perl6/Grammar.pm:
12:21 dalek rakudo/no-strict: remove arglist parsing for now; it does not work
12:21 dalek rakudo/no-strict: review: https://github.com/rakudo/rakudo/commit/27b55b5e42
12:45 dalek rakudo/nom: d4c8e6d | moritz++ | src/core/ (2 files):
12:45 dalek rakudo/nom: more exception typos
12:45 dalek rakudo/nom:
12:45 dalek rakudo/nom: caught by Nick Glencross
12:45 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d4c8e6d0d3
12:47 rich joined #parrot
12:56 PacoAir joined #parrot
13:10 Psyche^ joined #parrot
13:35 preflex_ joined #parrot
13:35 wagle_ joined #parrot
13:36 Timbus|Away joined #parrot
13:37 smash_ joined #parrot
13:38 alvis_ joined #parrot
13:41 _sri joined #parrot
13:43 Infinoid joined #parrot
13:44 awwaiid joined #parrot
13:45 moritz joined #parrot
13:46 slavorg joined #parrot
13:50 rich joined #parrot
13:50 jlaire joined #parrot
13:50 tadzik joined #parrot
13:53 PerlJam joined #parrot
13:53 cxreg joined #parrot
13:57 pmichaud joined #parrot
13:57 dalek joined #parrot
14:05 PerlJam joined #parrot
14:13 slavorg joined #parrot
14:26 smash joined #parrot
14:27 smash hello everyone
14:27 moritz \o smash
14:31 brrt hello
14:34 moritz brrt o/
14:35 brrt moritz: you graduated? or something, there was a ceremony and i could not find what for
14:35 brrt but i understand it was cause for celebration, so congrats :-)
14:35 moritz brrt: my daughter's baptism and our church marriage (the legal one was two years ago)
14:35 moritz brrt: thanks
14:36 smash moritz: congrats
14:37 moritz smash: thanks
14:37 PerlJam moritz: did you have a second honeymoon to go with the second wedding?
14:37 moritz PerlJam: not yet. we'll see if we can afford one :-)
14:38 PerlJam moritz: my wife and I sorta had a second honeymoon when we did the church wedding thing.   I got some twins out of the deal  :)
14:38 moritz PerlJam: :-)
14:43 brrt ah, that is cause for celebration
15:00 contingencyplan joined #parrot
15:04 JimmyZ release day?
15:10 eseifert joined #parrot
15:25 dmalcolm joined #parrot
16:14 jashwanth joined #parrot
16:21 whiteknight joined #parrot
16:30 dalek parrot: 522f928 | alvis++ | / (10 files):
16:30 dalek parrot: Release 4.5.0 - Buff-faced Pygmy Parrot (in honor of M0).
16:30 dalek parrot: review: https://github.com/parrot/parrot/commit/522f92816a
16:34 whiteknight good afternoon, #parrot
16:34 whiteknight alvis++
16:53 tuxit joined #parrot
17:21 davidfetter joined #parrot
17:47 cotto ~~
17:47 cotto alvis++
18:01 rich joined #parrot
18:27 kuku joined #parrot
18:30 darbelo joined #parrot
18:58 cotto dukeleto, reping
19:05 rich joined #parrot
19:15 cotto #ps in 15
19:27 rurban alvis++
20:02 alvis whiteknight, NotFound: what do you/y'all use to log to #ps?
20:02 whiteknight not us. There's a bot that does it
20:03 alvis whiteknight: Ok, what bot? A pointer to it please.
20:03 whiteknight maybe?
20:03 whiteknight moritz might know
20:04 alvis I'll check it out. Thanks.
20:04 moritz logs it, yes
20:04 sorear yes, it is ilbot2 , run by moritz
20:04 PacoAir joined #parrot
20:04 moritz code at https://github.com/moritz/ilbot/
20:05 moritz slavorg: trust whiteknight
20:05 slavorg But I already trust whiteknight
20:05 alvis moritz++
20:06 * alvis back to the rest of the release
20:07 Coke slavorg: trust noone
20:07 slavorg But I already trust noone
20:20 brrt joined #parrot
20:25 brrt hey, i was late for #ps
20:25 whiteknight brrt: it's okay
20:26 brrt thanks, but i rather wanted to be there :-)
20:26 brrt is it of interest if i report my work here now
20:26 brrt ?
20:26 moritz please do
20:27 brrt will do
20:27 brrt this week, I have:
20:27 NotFound Do it at #ps too, so it gets logged there.
20:27 brrt oh, i will repeat it then there
20:28 whiteknight I am heading home now. I'll read it later tonight
20:28 brrt I have reshuffled a whole bunch of code
20:28 jashwanth dukeleto, hello
20:28 brrt specifically I moved IO setup from the API layer to the winxed layer
20:28 brrt that works really well, reduced code size a lot which i like
20:29 brrt I'm using NCI heavily now, its reliable
20:30 * davidfetter just misread that as "winxed *player*" :P
20:30 brrt I have been somewhat lousy with writing tests, mostly because I feel so little is working now
20:30 brrt and mostly because I do a lot within the gdb debugger as I'm not quite out of segfault-area yet
20:31 brrt what I'm working on right now:
20:31 brrt getting headers and request parameters into the PIR layer
20:32 brrt writing out headers to the apache layer
20:32 brrt (the latter of which is tricky)
20:32 brrt what is coming:
20:33 brrt unify the script-loading parts into its own interface
20:33 brrt write different 'loaders' for PSGI, CGI, inline (based on NotFound++'s hinxed)
20:33 brrt EOR
20:34 brrt as a sidenote... the distinction between VTABLE and METHOD is sometimes confusing me
20:34 moritz brrt: why is writing out headers to apache more tricky than getting them?
20:35 brrt because getting them involves iterating over an apr-specific array structure with key-value components and inserting them into a hash
20:35 brrt with some modifications
20:36 brrt Parrot_api_pmc_set_keyed_string(Parrot_PMC interp, Parrot_PMC hash, ParrotString key,  Parrot_PMC) does nicely for this
20:37 brrt i.e. I have this struct and APR gives me the tools to iterate on it, and Parrot gives me the tools to insert it into a hash
20:38 brrt I can then just pass it to parrot as either an argument to a sub or a return value
20:38 moritz ok, and iterating over parrot hashes is more difficult for you?
20:38 brrt yes, there is no API for this as far as I know
20:38 moritz (I've never done it through the C API, so cannot comment)
20:39 brrt there is an internal api to iterate over parrot hashes, but I cannot use that; the headers get all mixed up
20:40 brrt as an aside, I cannot (trivially) get the Parrot_Hash from a Parrot_PMC
20:40 moritz in nqp, I'd write   my $iter := pir::iter__PP(%thathash); while $iter { my $key := pir::shift__PP($iter); my $value := %thathash{$key}  }
20:41 moritz and the first op just calls the VTABLE_get_iter
20:41 moritz and VTABLES are exposed to the C API, aren't they?
20:42 brrt in winxed, it is literally javascript-style 'for(var k in hash) {}'
20:42 brrt no, vtables are not exposed to the api
20:42 moritz eeks
20:42 * brrt is going to check that statement
20:43 sorear brrt: perhaps the API is not for you.
20:43 moritz things would be so much easier if you could use the embed API
20:43 sorear brrt: the API is for people who want to be maximally insulated from parrot guts
20:43 NotFound Maybe it will be easier to iterate in winxed and add to the apache struct via NCI?
20:44 brrt NotFound: good point, that is in fact easier
20:44 Coke hinxed sounds... hinky. ;)
20:45 NotFound brrt: then do it that way, we can worry about eficiency later.
20:45 brrt the strategy I'm exploring right now, is to concatenate the headers in winxed (create a giant string) and then seperate them into key-values in C
20:45 moritz that sounds painful
20:45 brrt that... is limitedly painful
20:45 moritz because you need to escape and then unescape the delimiter
20:46 brrt actually, the delimiter is invalid in both the key and the value... so that why I thought I could get away with it
20:46 brrt but I'm now realising that wide chars may mess that up
20:46 brrt ah well
20:47 brrt i like not worrying about efficiency
20:48 NotFound Insert usual rants about premature optimization here ;)
20:49 brrt true enough
20:49 sorear brrt: I'm a fan of chr(length($str)) . $str, or however you write that in winxed.  Works best with wide chars
20:49 brrt also, who do we have to beat? ruby on rails?
20:50 brrt sorear: oooh, that could work well as well
20:50 brrt although I think length($str) had better be < 256
20:53 NotFound The chr op is troublesome it you want to use a string as stream of bytes, it gives different encodings depending on the char.
20:53 NotFound The winxed builtin transcode it to utf8.
20:56 brrt ... I might be wrong but I understand the idiom as prefixing the string length to the string (which can then be pushed to a C function)
20:57 brrt so in that case when length($str) > 256, chr(length($str)) will prefix a wide char
20:58 brrt but the C layer must know this and read it as a (utf8) wide char
21:00 NotFound brrt: if the code is > 127 the winxed builtin will conver it to a two-byte utf8.
21:00 NotFound So you may need to use the pir op instead.
21:01 brrt what I do now is direct-assign a ByteBuffer and pass its pointer alongside its length
21:01 NotFound winxed -e 'say(bytelength(chr(128)));' --> gives 2
21:02 NotFound 127 --> gives 1
21:02 brrt thats the correct behavior, I think
21:03 brrt and I import things binary-wise, but I might need to do something more intelligent
21:03 brrt prefereably based on the content-type header
21:03 NotFound winxed -e 'string s; ${ chr s, 128 }; say(bytelength(s));' --> gives 1
21:03 sorear is it possible to do anything like pack("N",length(s)) from parrot/winxed?
21:04 NotFound brrt: correctness is in the eye of the beholder.
21:04 brrt true words
21:04 brrt sorear: ByteBuffer can push strings and integers, i believe
21:05 NotFound No, you must iterate over the string and push bytes,
21:06 NotFound You can assign a string, but not push one after previous content.
21:08 NotFound sorear: 'N' as big-endian order?
21:09 sorear NotFound: yes
21:12 NotFound sorear: you must encode it yourself. Something lile: bb.push((n >> 24) & 0xFF); bb.push((n >> 16) & 0xFF); bb.push((n >> 8) & 0xFF); bb.push(n & 0xFF);
21:13 NotFound We can add methods to ByteBuffer if it will be convenient.
21:21 perlite joined #parrot
21:27 brambles joined #parrot
21:36 dalek mod_parrot: 3ca8758 | (Bart Wiegmans)++ | / (5 files):
21:36 dalek mod_parrot: Add header output writing. Which is pretty nice
21:36 dalek mod_parrot: review: https://github.com/bdw/mod​_parrot/commit/3ca87589bb
21:36 brrt also NotFound++ for suggesting I ignore efficiency
21:37 brrt and now, i leave :-) &
21:37 brrt left #parrot
21:53 alvis /topic #parrot Parrot 4.5.0 "Buff-faced Pygmy Parrot" |
21:53 alvis http://parrot.org/ | Log: http://irclog.perlgeek.de/parrot |
21:53 alvis #parrotsketch meeting Tuesday 19:30 UTC
21:56 alvis <alvis> /topic #parrot Parrot 4.5.0 "Buff-faced Pygmy Parrot" |  [16:52]
21:56 alvis <alvis>                http://parrot.org/ | Log:
21:56 alvis http://irclog.perlgeek.de/parrot |
21:56 alvis <alvis>                #parrotsketch meeting Tuesday 19:30 UTC
21:56 alvis #parrot> Oops! Sorry, I thumbed that. <sighs; shakes head>
22:22 whiteknight joined #parrot
22:25 alvis I'm gonna try one ... more ... time.
22:26 Topic for #parrot is now Parrot 4.5.0 "Buff-faced Pygmy Parrot" | http://parrot.org/ | Log: http://irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC
22:26 alvis yay!
22:31 whiteknight good evening, #parrot
22:32 dalek m1: a49f68a | kjs++ | / (3 files):
22:32 dalek m1: add a test. fix >>= and <<= operators; they were swapped. add a bit of comments.
22:32 dalek m1: review: https://github.com/parrot/m1/commit/a49f68a2ea
22:32 dalek m1: eabe3fe | kjs++ | src/ (9 files):
22:32 dalek m1: Change "m1_decl" into "m1_type".
22:32 dalek m1: review: https://github.com/parrot/m1/commit/eabe3fe672
22:32 dalek m1: 1b939d0 | kjs++ | / (5 files):
22:32 dalek m1: various updates and fixes and cleanups.
22:32 dalek m1: review: https://github.com/parrot/m1/commit/1b939d00eb
22:32 dalek m1: 9765d3a | kjs++ | src/semcheck.c:
22:32 dalek m1: Updates to type checker.
22:32 dalek m1: review: https://github.com/parrot/m1/commit/9765d3ac9f
22:33 kjs joined #parrot
22:45 alvis cotto: what do you think of dukeleto's suggestion on parrot-dev of either (1) pulling down parrotblog.org or (2) alternatively, having it redirect to parrot.org?
22:50 cotto alvis, that'd make the world a little less confusing
22:53 alvis_ joined #parrot
22:53 alvis_ left #parrot
22:54 alvis_ joined #parrot
22:56 alvis left #parrot
23:47 Coke there's a very old ticket about that.
23:48 Coke If we don't want to keep the domain anymore, fine, but I think the easiest thing is to make parrotblog.org an alias for parrot.org
23:48 Coke (and have a nice 404 on parrot.org)
23:49 Coke more complicated would be to fix all the old URLs.

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

Parrot | source cross referenced