Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2011-06-09

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:03 stepnem left #perl6
00:07 stepnem joined #perl6
00:11 xinming left #perl6
00:20 daniel-s left #perl6
00:25 jnthn Time for some sleep.
00:26 dalek rakudo/nom: 6df35c0 | jnthn++ | / (4 files):
00:26 dalek rakudo/nom: Add a HOW for representing a generic type. Get it and the various role-related HOWs (which are just stubs so far) into the build.
00:26 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6df35c0fe1
00:26 dalek rakudo/nom: c512442 | jnthn++ | / (11 files):
00:26 dalek rakudo/nom: Tentatively start to flesh out specialization of various declarative thingies that can be generic. Neglected to worry about complete vs partial specialization just yet...think it probably won't matter, as there's a fallback in GenericHOW to handle failures to fully specialize in time.
00:26 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c512442b02
00:26 dalek rakudo/nom: f3efa32 | jnthn++ | src/Perl6/Metamodel/ParametricRoleHOW.pm:
00:26 dalek rakudo/nom: Just enough to get us able to write a role body.
00:26 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f3efa32cc3
00:26 dalek rakudo/nom: b3f66e1 | jnthn++ | / (13 files):
00:26 dalek rakudo/nom: Merge branch 'pp' into nom
00:26 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b3f66e1b85
00:38 dalek niecza/immediate: 2bd99ec | sorear++ | src/ (2 files):
00:38 dalek niecza/immediate: [immediate] my and state variables
00:38 dalek niecza/immediate: review: https://github.com/sorear/niecza/commit/2bd99ecd98
00:54 aindilis left #perl6
00:58 Moukeddar left #perl6
01:07 bis0n I'm using this on one script '$myImage->string(gdSmallFont,10,70,"$var",$black); but I get this error "GD::Image::string: font is not of type GD::Font"
01:22 thou left #perl6
01:29 whiteknight left #perl6
01:39 yinyin joined #perl6
01:43 dalek nqp: 335b8f6 | pmichaud++ | / (2 files):
01:43 dalek nqp: Add support for "config.default" file to hold default arguments to Configure.pl.
01:43 dalek nqp: review: https://github.com/perl6/nqp/commit/335b8f67d5
01:44 dalek rakudo/nom: 0579b56 | pmichaud++ | / (2 files):
01:44 dalek rakudo/nom: Add support for "config.default" file to hold default arguments to Configure.pl.
01:44 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0579b5641b
01:46 dalek nqp: 57c3ba2 | pmichaud++ | Configure.pl:
01:46 dalek nqp: Update --help text to tell about config.default.
01:46 dalek nqp: review: https://github.com/perl6/nqp/commit/57c3ba2029
01:48 kst left #perl6
01:49 kst joined #perl6
01:49 dalek rakudo/nom: d5237b9 | pmichaud++ | Configure.pl:
01:49 dalek rakudo/nom: Update --help text to tell about config.default.
01:49 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d5237b9ec3
01:54 mtk left #perl6
02:01 * sorear is already running into Great Confusion with the /immediate
02:02 mtk joined #perl6
02:09 dalek niecza/immediate: c8aae21 | sorear++ | src/niecza:
02:09 dalek niecza/immediate: [immediate] Start on signatures
02:09 dalek niecza/immediate: review: https://github.com/sorear/niecza/commit/c8aae212c8
02:16 kst left #perl6
02:17 kst joined #perl6
02:26 _jaldhar joined #perl6
02:26 jaldhar left #perl6
02:44 hudnix left #perl6
02:44 _jaldhar is now known as jaldhar
02:52 woosley joined #perl6
02:58 sorear looks like I may need to make *significant* alterations to my STD to make this work
02:59 sorear ie changing most of the stuff that touches $*CURLEX or $*CURPKG
03:12 molaf joined #perl6
03:20 satyavvd joined #perl6
03:20 bis0n left #perl6
03:20 jtpalmer left #perl6
03:21 sorear pmichaud: Why is Rakudo's grammar so much smaller than STD?
03:25 Su-Shee left #perl6
03:26 jtpalmer joined #perl6
03:29 Su-Shee joined #perl6
03:32 cooper|ipad joined #perl6
03:42 Transformer joined #perl6
03:43 Transformer left #perl6
03:53 molaf left #perl6
04:00 wamba joined #perl6
04:09 cooper|ipad left #perl6
04:10 buubot_backup left #perl6
04:26 thou joined #perl6
04:29 wamba left #perl6
04:29 wamba joined #perl6
04:30 mberends pmichaud: in your straw poll, I mostly default to --gen-parrot and --gen-nqp, so they are Huffmanly the wrong way round for me.
04:42 TimToady sorear: three reasons I can think of, 1) rakudo defines most ops separately, 2) it hardwires the nibbler, and 3) doesn't actually support derivable grammars to the same extent as STD
04:43 TimToady I don't how true those actually are, they're just guesses
04:45 sorear TimToady: after saying that, I came up with an idea of my own
04:46 sorear 4) Rakudo's $~Regex is a subclass of NQP's $~Regex and contains very little new code
04:46 TimToady I do think that a lot of the ops should end up being defined in the setting rather than the grammar
04:48 TimToady but for at least some of them, that'll require macros-ish capabilities
04:53 sorear also the parser slows down a fair amount when it's having to deal with 200 layers of categorical subclasses
04:56 buubot_backup joined #perl6
04:58 thou left #perl6
04:58 kst left #perl6
04:58 birdwindupbird joined #perl6
04:59 kst joined #perl6
05:00 alc joined #perl6
05:02 sorear TimToady: Is there a significant difference between 'class Foo { ... }' and 'our ::Foo' ?
05:04 alc left #perl6
05:05 wamba left #perl6
05:07 alc joined #perl6
05:08 alc left #perl6
05:10 alc joined #perl6
05:10 alc left #perl6
05:10 TimToady um, you like the difference between what a package knows and what a class knows?
05:10 TimToady *you mean like
05:11 sorear I'm very confused right now
05:11 alc joined #perl6
05:13 TimToady a package or even a module wouldn't know what to do with a method
05:13 sorear oh
05:13 sorear I meant the ... literally
05:14 TimToady ah
05:14 sorear both 'class Foo { ... }' and 'our ::Foo' have the effect of declaring Foo and OUR::Foo as typenames
05:14 sorear wondering if there's an important difference between them
05:15 TimToady hmm, well, if there's some introspective difference, it might show up if you can ask Foo if it's a class, but that'd be about it, unless there's some kind of monkeying or registering that would happen with a class before the "real" definition
05:16 TimToady like if a ... class tracked who derived from it before the actual def
05:16 TimToady but that would be something that the language itself wouldn't mandate
05:16 TimToady an implementation might do it for some optimization or other, I suppose
05:17 Bzek joined #perl6
05:17 sorear ... you can derive from classes before defining them?
05:17 TimToady but other than that, you'd maybe want to prevent someone from saying class earlier and then downgrading it later
05:17 TimToady all you need to know is the name/typeobject, as far as the "isa" tracking is concerned, i'd think
05:18 TimToady it wouldn't be *typical* though
05:18 TimToady since you can't have cycles anyway
05:19 TimToady but there are certainly operations that need only the identity of the class, not the actual def
05:19 TimToady I think ISA is one of those, unless you actually try to call a method
05:20 TimToady in which case it would be free to blow up
05:24 sorear rakudo and niecza both currently like to compute the full MRO when the } is parsed
05:25 TimToady well, might have to be recomputed if the actual def adds an isa, I suppose...
05:26 TimToady or we disallow it, but that seems a bit draconian
05:27 kst left #perl6
05:30 kst joined #perl6
05:36 tyatpi left #perl6
05:40 sorear today I tried to use $*PKGDECL / ''
05:40 * sorear wonders if the error could be more awesome
05:42 Zapelius left #perl6
05:46 thou joined #perl6
05:48 dalek niecza/immediate: 0823db7 | sorear++ | src/ (4 files):
05:48 dalek niecza/immediate: [immediate] Very very basic class handling
05:48 dalek niecza/immediate: review: https://github.com/sorear/niecza/commit/0823db7eb6
05:53 wtw joined #perl6
05:56 sorear TimToady: Why does STD clear out the new $*CURLEX in the class Foo; case?
05:59 TimToady don't remember offhand; maybe to make it really file scoped?
06:00 TimToady so we use UNIT, not a subpackage of UNIT
06:00 TimToady just guessing
06:00 dalek niecza/immediate: ac2fba9 | sorear++ | src/niecza:
06:00 dalek niecza/immediate: [immediate] Fudge to make my module CORE; work
06:00 dalek niecza/immediate: review: https://github.com/sorear/niecza/commit/ac2fba91fc
06:00 sorear I disabled that for now
06:00 sorear fwiw, v7's STD is going to be a lot further from the official STD than v6's was
06:01 sorear I'm trying to get rid of the wasteful bugginess where niecza has two symbol tables, one used by the parser and one by everything else
06:07 TimToady sure, the symbol tables in STD are just prototypes
06:08 sorear in the prototype-OO sense or the plan-to-throw-one-away sense?
06:10 TimToady the latter
06:14 dalek niecza/immediate: e7f1ff8 | sorear++ | src/niecza:
06:14 dalek niecza/immediate: [immediate] Implement is-traits, inheritance
06:14 dalek niecza/immediate: review: https://github.com/sorear/niecza/commit/e7f1ff8753
06:15 cooper|ipad joined #perl6
06:16 thou left #perl6
06:16 wamba joined #perl6
06:22 sftp left #perl6
06:37 noganex_ joined #perl6
06:41 noganex left #perl6
06:41 dalek roast: c3b0bc6 | pmichaud++ | S03-junctions/boolean-context.t:
06:41 dalek roast: [S03] Correct use of prefix:<so> in S03-junctions/boolean-context.t .
06:41 dalek roast: review: https://github.com/perl6/roast/commit/c3b0bc6703
06:41 dalek roast: 6443857 | pmichaud++ | S32-num/pi.t:
06:41 dalek roast: Fix plan for S32-num/pi.t .
06:41 dalek roast: review: https://github.com/perl6/roast/commit/6443857353
06:41 sorear oops, sorry about that
06:41 sorear (I probably broke it)
06:44 wamba left #perl6
06:45 dalek roast: e0ec6c9 | pmichaud++ | S32-str/substr.t:
06:45 dalek roast: Fudge WhateverCode tests in S32-str/substr.t .
06:45 dalek roast: review: https://github.com/perl6/roast/commit/e0ec6c982a
06:55 Mowah joined #perl6
06:57 dalek roast: 5278d6a | pmichaud++ | S03-junctions/misc.t:
06:57 dalek roast: Correct rakudo fudge in S03-junctions/misc.t .
06:57 dalek roast: review: https://github.com/perl6/roast/commit/5278d6a60c
06:57 dalek roast: ea22fe5 | pmichaud++ | S03-junctions/boolean-context.t:
06:57 dalek roast: Adjust fudging/test in S03-junctions/misc.t .
06:57 dalek roast: review: https://github.com/perl6/roast/commit/ea22fe5601
07:10 domidumont joined #perl6
07:13 jfried joined #perl6
07:17 sorear hey1
07:17 sorear hey!
07:19 mj41 joined #perl6
07:19 sorear pmichaud: your edits to roast have been inconsistent.  Which is correct, so(1 & 2) or (so 1 & 2)?
07:21 sorear at this point I'm leaning towards, "Portable Perl 6 should never use named unary operators"
07:21 sorear so I vote for so()
07:26 cooper left #perl6
07:33 dalek rakudo: e7344d1 | pmichaud++ | build/PARROT_REVISION:
07:33 dalek rakudo: Bump PARROT_REVISION.
07:33 dalek rakudo: review: https://github.com/rakudo/rakudo/commit/e7344d14b2
07:36 cognominal left #perl6
07:38 cognominal joined #perl6
07:59 cooper|ipad left #perl6
08:00 cooper|ipad joined #perl6
08:04 cooper|ipad left #perl6
08:06 sivoais left #perl6
08:20 Zapelius joined #perl6
08:27 rhr left #perl6
08:28 rhr joined #perl6
08:29 moritz pmichaud++ # new build system
08:33 dakkar joined #perl6
08:35 skangas left #perl6
08:40 skangas joined #perl6
08:46 dalek niecza/immediate: 9905463 | sorear++ | src/ (2 files):
08:46 dalek niecza/immediate: [immediate] Implement sub definitions
08:46 dalek niecza/immediate: review: https://github.com/sorear/niecza/commit/990546319c
08:49 daxim joined #perl6
08:50 araujo joined #perl6
08:52 envi_laptop left #perl6
09:00 dalek niecza/immediate: ab72509 | sorear++ | src/niecza:
09:00 dalek niecza/immediate: Refactor handling of export traits, allow also is export
09:00 dalek niecza/immediate: review: https://github.com/sorear/niecza/commit/ab7250913c
09:00 * sorear -> sleep
09:07 benabik joined #perl6
09:13 Zapelius left #perl6
09:17 jerome left #perl6
09:36 woosley left #perl6
09:42 mtk left #perl6
09:46 ChrisDennis left #perl6
09:48 dakkar left #perl6
09:51 mtk joined #perl6
09:53 ChrisDennis joined #perl6
10:01 Moukeddar joined #perl6
10:03 mberends oops, --mberends, s/--make-timings/--makefile-timing/ (in comment)
10:04 dalek rakudo: 4a6d216 | mberends++ | Configure.pl:
10:04 dalek rakudo: [Configure.pl] let --make-timings play nice with - (ignore error) lines, for example in 'install' target
10:04 dalek rakudo: review: https://github.com/rakudo/rakudo/commit/4a6d216c24
10:04 mberends come on github...
10:04 tadzik :)
10:07 tadzik I feel an urge to write a C compiler
10:07 mberends haha
10:07 moritz please do, after gsoc :-)
10:08 tadzik yeah, good point :)
10:08 tadzik and after the Deadliest of Times
10:08 mberends C with dollar signs =~ Perl
10:08 tadzik :)
10:09 tadzik Particulary assembly classes and writing in x86 asm inspired me
10:09 * moritz might use C if it had acceptable functions of dealing with strings
10:09 tadzik I wonder how hard is that. Gah, right semiconductors, I'll be back in a second
10:09 jfried left #perl6
10:09 tadzik moritz: Glib has some nice ones
10:10 tadzik moritz: see http://developer.gnome.org/glib/stable/glib-Strings.html
10:11 moritz no split, for one
10:11 tadzik split is somewhere else I think
10:11 moritz and the names, the names (yes, that's a general C problem, not a glib specific)
10:11 tadzik see http://developer.gnome.org/glib/stable/glib-String-Utility-Functions.html
10:11 koban joined #perl6
10:11 tadzik yeah, the names are painful
10:12 tadzik I'll much rather write string->method(string, arguments)
10:12 tadzik instead of stuff like gtk_tree_model_filter_convert_iter_to_child_iter() in gtk
10:13 moritz ah well, there are reasons we really want Perl 6 :-)
10:14 tadzik :)
10:20 moritz nqp: say(pir::interp__p())
10:20 p6eval nqp: OUTPUT«error:imcc:syntax error, unexpected PREG, expecting '(' ('$P16')␤   in file '(file unknown)' line 24␤error:imcc:syntax error ... somewhere␤ in file '(file unknown)' line 118␤syntax error ... somewhere␤»
10:20 moritz nqp: say(pir::getinterp__p())
10:20 p6eval nqp: OUTPUT«get_string() not implemented in class 'ParrotInterpreter'␤current instr.: '_block89' pc 4188 (src/stage2/gen/NQPCORE.setting.pir:1004)␤»
10:21 moritz nqp: say(pir::getinterp__p(){"annotations"})
10:21 p6eval nqp: OUTPUT«Cannot get annotations at depth 0; use annotations op instead.␤current instr.: '_block11' pc 0 ((file unknown):1)␤»
10:21 moritz nqp: say(pir::getinterp__p(){"annotations", 1})
10:21 p6eval nqp: OUTPUT«No such item 2␤current instr.: '_block11' pc 0 ((file unknown):1)␤»
10:22 yinyin left #perl6
10:23 moritz nqp: say(pir::annotations__p(){"file"})
10:23 p6eval nqp: OUTPUT«␤»
10:23 moritz nqp: say(pir::annotations__p(){"line"})
10:23 p6eval nqp: OUTPUT«1␤»
10:23 moritz nqp: 1;␤say(pir::annotations__p(){"line"})
10:23 p6eval nqp: OUTPUT«2␤»
10:24 daniel-s joined #perl6
10:28 tadzik phenny: "شاش"?
10:28 phenny tadzik: "Gauze" (ar to en, translate.google.com)
10:28 tadzik hrm
10:29 daniel-s left #perl6
10:30 daniel-s joined #perl6
10:35 pernatiy left #perl6
10:37 yinyin joined #perl6
10:39 jnthn afternoon, #perl6
10:39 MayDaniel joined #perl6
10:40 tadzik oh noes, it's afternoon already?
10:44 daniel-s left #perl6
10:44 jnthn (class Foo { ... }) - in nom we actually can then write class Bar is Foo { ... } just fine also
10:44 jnthn (rakudo and niecza both currently like to compute the full MRO when the } is parsed) - if you somehow manage to need the MRO before then, in nom we compute it on demand. But we would always re-do it at the closing curly.
10:44 jnthn sorear: ^^
10:48 jnthn Few more $dayjob bits, then I can nomhack. :)
10:49 donri joined #perl6
11:01 jfried joined #perl6
11:02 daniel-s joined #perl6
11:05 dakkar joined #perl6
11:08 MayDaniel left #perl6
11:08 Mowah left #perl6
11:09 Mowah_ left #perl6
11:19 colomon tadzik: still morning here!
11:21 tyatpi joined #perl6
11:23 Moukeddar left #perl6
11:25 Sondreb joined #perl6
11:25 Sondreb I have a function returning two arrays: my (@builds, @descriptions) = $self->findbuilds($pipeline, $count, $search); the return statement in findbuilds looks like this: return(@return_array, @desc_array); Why is both arrays placed in @builds and not @return_array in @builds and @desc_array in @description
11:25 jfried left #perl6
11:25 tadzik :)
11:26 tadzik first of all, this is Perl 5, and you are on the Perl 6 channel :)
11:26 moritz Sondreb: arrays flatten in list context
11:26 tadzik but as I look at that, I suspect your return statements flattens the arrays and makes just one array
11:26 tadzik yeah, what moritz++ said
11:27 Sondreb yeah, is there anyway to get around this?
11:27 moritz Sondreb: read `perldoc perllol`. And ask in a Perl 5 channel
11:28 moritz and maybe   perldoc perlreftut
11:35 donri left #perl6
11:39 donri joined #perl6
11:40 daniel-s left #perl6
11:46 birdwindupbird left #perl6
11:56 pernatiy joined #perl6
12:04 satyavvd left #perl6
12:07 jfried joined #perl6
12:16 daniel-s joined #perl6
12:21 wamba joined #perl6
12:24 Moukeddar joined #perl6
12:26 Moukeddar_ joined #perl6
12:26 Moukeddar left #perl6
12:31 wknight8111 joined #perl6
12:32 daniel-s hey
12:33 daniel-s does this mean any text character other than a ":"
12:33 daniel-s <[.]-[\:]>*
12:34 moritz no
12:34 moritz . doesn't have a special meaning in character classes
12:34 moritz "everything except a colon" would be <-[:]>
12:36 daniel-s was I saying . minus \ and :
12:36 daniel-s which matches nothing at all
12:36 moritz it should match the dot
12:36 moritz because a dot is a dot, and not a colon or backslash either
12:37 moritz perl6: say so '.' ~~ /<[.]-[\:]>/
12:37 p6eval rakudo 4a6d21, niecza v6-89-ge849cf7: OUTPUT«Bool::True␤»
12:37 p6eval ..pugs: OUTPUT«*** No such subroutine: "&so"␤    at /tmp/A2jmr8QfO1 line 1, column 5 - line 2, column 1␤»
12:37 daniel-s left #perl6
12:38 wamba left #perl6
12:41 daniel-s joined #perl6
12:42 takadonet morning all
12:44 colomon \o
12:45 dalek book: a019269 | moritz++ | src/regexes.pod:
12:45 dalek book: [regex] explain that most non-word characters lose their special meaning inside char classes, daniel-s++. This also comes with an example for a negated character class
12:45 dalek book: review: https://github.com/perl6/book/commit/a019269e6b
13:01 colomon moritz++
13:02 daniel-s I like how it was my ignorance that helped :)
13:03 colomon daniel-s: that's how these things work!  I'm pretty sure my own ignorance has come in handy several times in the Rakudo development process.  :)
13:03 moritz daniel-s: it's valuable feedback feedback for us
13:03 envi_laptop joined #perl6
13:04 moritz daniel-s: the "old guard" usually knows how to deal with suboptimal errors and missing descriptions. Seeing a newcomer running into them opens our eyes for missing documentation, bad error messages and so on
13:05 frettled left #perl6
13:05 frettled joined #perl6
13:05 icwiener joined #perl6
13:06 moritz It's an art practiced in far too few communities
13:09 dalek specs: f82124f | moritz++ | S32-setting-library/Exception.pod:
13:09 dalek specs: [Excpeptions] X::NYI stores the NYI feature
13:09 dalek specs: review: https://github.com/perl6/specs/commit/f82124f687
13:12 mce_ro joined #perl6
13:16 dalek rakudo/nom: 1aa1a3d | moritz++ | src/CORE.setting/Exceptions.pm:
13:16 dalek rakudo/nom: start to stub out more exceptions. No attempts yet to actually use it
13:16 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1aa1a3de37
13:18 jnthn moritz: Note roles don't actually work yet really. :-) But it's fine to write them.
13:20 mysterio joined #perl6
13:23 dalek book: b49b8a4 | (Daniel Stojanov)++ | src/grammars.pod:
13:23 dalek book: [grammar] typo
13:23 dalek book: review: https://github.com/perl6/book/commit/b49b8a4efb
13:26 mysterio std
13:30 hudnix joined #perl6
13:53 Moukeddar_ left #perl6
14:00 hercynium joined #perl6
14:01 Moukeddar joined #perl6
14:02 mce_ro left #perl6
14:05 mcero joined #perl6
14:07 spq1 joined #perl6
14:11 wooden joined #perl6
14:13 molaf joined #perl6
14:21 mysterio left #perl6
14:31 buubot_backup left #perl6
14:31 wtw left #perl6
14:34 wamba joined #perl6
14:37 PacoLinux left #perl6
14:37 PacoLinux joined #perl6
14:39 Sondreb left #perl6
14:42 yinyin left #perl6
14:43 tadzik pardon my offtopic, but I accidentally my whole ~/books/perl directory. What are the best free Perl books out there, besides HOP and Modern Perl, which I already redownloaded?
14:44 moritz Using Perl 6, of course!!!!
14:45 moritz there's "Extreme Perl", "Learning Perl the Hard Way"
14:45 moritz dunno if "Effective Perl Programming" has a free download
14:46 buubot_backup joined #perl6
14:46 tadzik not only it doesn't but also an ebook is more expensive than a paperback :P
14:47 moritz :(
14:47 MayDaniel joined #perl6
14:47 tadzik spending the whole first part of gsoc money on good books seems dangerously reasonable
14:56 arnsholt Isn't buying more books why we work to earn money? =)
14:57 jnthn I thought we did that to buy beer and holidays? ;)
14:57 moritz I thought we did that to sustain the family? :-)
14:59 tadzik no, it's about comic books with Rabbit Samurai. I still miss a few episodes
15:02 wknight8111 left #perl6
15:02 daniel-s left #perl6
15:04 JimmyZ joined #perl6
15:10 Moukeddar left #perl6
15:12 kaare_ joined #perl6
15:24 koban left #perl6
15:25 wamba left #perl6
15:25 wamba joined #perl6
15:25 gfldex tadzik: you might want to look into: http://www.myvideo.de/watch/6478107/Cat_Shit_One_Preview
15:29 tadzik I wish I understood at least one word :) But it's nicer than I thought it would be looking at the url
15:32 mkramer joined #perl6
15:32 sftp joined #perl6
15:38 frobnitz left #perl6
15:38 * moritz just wrote a simplistic TAP producer in Mathematica
15:48 timbunce joined #perl6
15:55 Moukeddar joined #perl6
16:08 cognominal left #perl6
16:08 cognominal joined #perl6
16:10 mcero left #perl6
16:23 thou joined #perl6
16:26 kanishka joined #perl6
16:29 mberends tadzik: I can't believe it. I send you one book and you accidentally your whole library :/
16:31 mkramer left #perl6
16:36 tadzik no no, just the Perl part
16:36 mberends ok
16:37 pmichaud good morning #perl6
16:37 jnthn o/ pmichaud
16:37 tadzik hello pmichaud
16:37 mberends hi pmichaud
16:37 pmichaud jnthn: icanhaz zavolaj commitbit ?
16:38 mberends :-)
16:38 jnthn pmichaud: Zavolaj commitbit. You haz it.
16:39 thou left #perl6
16:39 pmichaud mberends: https://github.com/jnthn/zavolaj/commit/1a4928fab2da1c82710da05b39c577c5098137c9   # some small fixes
16:40 mberends yay!
16:40 pmichaud there was a bug in parrot's ncifunc, which I fixed.
16:40 pmichaud I don't think zavolaj presently has any way to signal floats instead of doubles, or we could probably get most of the rest to work.
16:41 jnthn Should probably all work off sized natives eventually.
16:41 pmichaud right
16:41 pmichaud I was wondering if it's worth creating fake-sized-natives just for zavolaj :)
16:41 pmichaud class num32 is Num { }
16:42 jnthn pmichaud: Yes. We can do better than that in nom also.
16:42 mberends it would probably open the way to other native libs :)
16:43 jnthn native num32 is repr('P6num') is Num { }
16:43 pmichaud well, we're still limited by whatever nci signatures parrot supports
16:43 jnthn We'll be missing the size limiting for now but at least we can get the type names in there
16:44 jnthn And Zavolaj can of course use them
16:44 bluescreen10 joined #perl6
16:44 pernatiy left #perl6
16:45 mberends pmichaud: in an hour or two I expect to have golfed down the nci signatures that MiniDBI lost when Parrot changed dropped one parameter type in March. I'll let you know when that is merged into the customlib test.
16:45 pmichaud mberends: I can add parameter types back.
16:45 dalek rakudo/nom: 24d6b23 | jnthn++ | src/Perl6/Metamodel/ (2 files):
16:45 dalek rakudo/nom: Fill out RoleContainer role a bit, and a add a tentative idea of what ClassHOW will do with roles that it's going to compose.
16:45 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/24d6b2350a
16:45 dalek rakudo/nom: 559bc5c | jnthn++ | / (4 files):
16:45 dalek rakudo/nom: Start to sketch out role meta-space a little more.
16:45 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/559bc5c937
16:45 dalek rakudo/nom: 5d62214 | jnthn++ | src/Perl6/Metamodel/ParametricRole (2 files):
16:45 dalek rakudo/nom: Cleanup a little confusion on what's generic. A parametric role is in a sense generic, but not in so far as it being a concete type we can potentially talk about on its own, and statically resolve.
16:45 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5d62214cfb
16:46 mberends pmichaud: excellent
16:46 jnthn pmichaud: HOw did the 't' issue end?
16:46 pmichaud it's "back"
16:46 pmichaud there's a NCI::Utils library that wraps the native nci stuff
16:47 pmichaud it understand signatures and can perform various wrap/unwrap features on nci arguments and parameters
16:47 jnthn ok
16:47 pmichaud i.e., we moved the logic of handling arguments out of C and into PIR
16:48 jnthn I'm not quite sure how I feel about that, but if it works I'm not going to worry much over it for now.
16:48 pmichaud yeah, I'm the same way
16:49 pmichaud it's kind of another example of "improving Parrot" by "making it slower for HLLs"
16:49 jnthn I'm not sure yet to what extent 6model is interested in FFI just yet, but worrying about that is a little way donw the list. :)
16:49 jnthn The spec alludes to an "is repr('CStruct'), which does make a large amount of sense.
16:50 pmichaud I suspect that will end up being a nqp feature more than a 6model one
16:50 pmichaud (which will rely on a 6model CStruct)
16:50 jnthn Yeah, a couple of handy reprs may well be the limit of 6model's interest.
16:51 pmichaud on another topic -- yesterday you mentioned that exception handler lookup was as much as 7% in one of the benchmarks you've been looking at?  that number feels "wrong"
16:52 jnthn pmichaud: It's the number my C profiler spat out.
16:52 pmichaud that would have to be either a ton of exceptions or a ton of exceptions missing their handlers
16:52 jnthn pmichaud: return counts.
16:52 pmichaud you mean a HLL return, not a PIR one, right?
16:52 jnthn Yeah, but 'return' in NQP isn't a PIR return.
16:53 pmichaud but 'return' should be hitting its handler in like... one step.
16:53 jnthn I optimize out the return handler setup in NQP when we don't use return at all. That won a decent bit.
16:53 cooper|ipad joined #perl6
16:53 jnthn pmichaud: Yes, but even so it calls .handles_type to check if the handler is OK.
16:53 pmichaud you mean 'can_handle' ?
16:53 fhelmberger left #perl6
16:53 jnthn pmichaud: That is, even if we hit it in the current call frame, it's still a PCC method call.
16:53 jnthn er, yes, can_handle
16:54 jnthn pmichaud: Worse it goes through the whole parse signature string thing too.
16:54 pmichaud I wonder if it's worth pointing this out to parrotfolk
16:55 pmichaud it's a false sense of flexibility to use a method there
16:55 pmichaud (at least, as far as Parrot exceptions are currently implemented)
16:56 jnthn pmichaud: Let me re-run the profiler and see what I get
16:59 jnthn pmichaud: Hmm. I'm trusting yesterday's profile result less now.
16:59 pmichaud jnthn: yeah, it felt like the number had to be off somehow
17:00 jnthn pmichaud: oh. Hm
17:00 jnthn I thought this profiler ran fast... :)
17:00 jnthn It's a sampler
17:01 jnthn Samples the call stack at regular intervals
17:01 jnthn It has other modes too...but I need to fiddle with build flags to do that
17:01 jnthn Anyway, the numbers are thus probably dubious on short-running programs.
17:01 pmichaud okay
17:02 * jnthn tries a longer running one
17:05 dakkar left #perl6
17:05 jnthn yeah, it's still bad but nowhere near 7% bad.
17:05 jnthn Actually on a longer running one, calls to the StringBuilder.append_format method are a sizable cost
17:06 jnthn (Because it's a PCCMETHOD, and those always parse the signature string every invocation...)
17:08 jnthn set_args and get_params ops inclusively add up to 14% according to this profile.
17:08 jnthn (This is profiling NQP and PCT really - it's the compilation of the setting.)
17:09 jfried left #perl6
17:10 mj41 left #perl6
17:16 pmichaud mberends: http://gist.github.com/1017205    # does this look like a suitable equivalent to the makefile-timing patch you did for rakudo master?
17:16 pmichaud I'm porting it across to nom and nqp
17:16 timbunce left #perl6
17:17 pmichaud (I'm looking at the https://github.com/rakudo/rakudo/commit/4a6d216c2440374cc8de50e5c6b244938bbccad7 commit for reference)
17:18 pmichaud oh, I'm missing the hyphen lines
17:18 molaf left #perl6
17:18 pmichaud http://gist.github.com/1017214  # updated
17:19 Moukeddar left #perl6
17:20 Mowah joined #perl6
17:21 cooper joined #perl6
17:27 dalek rakudo/nom: 0495215 | pmichaud++ | tools/lib/NQP/Configure.pm:
17:27 dalek rakudo/nom: Fix --makefile-timing for non-Win32 systems, let it play nice with - (ignore error) lines.  Based on patch to rakudo master by mberends++ .
17:27 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0495215930
17:27 dalek rakudo/nom: 9a9b506 | pmichaud++ | / (7 files):
17:27 dalek rakudo/nom: Merge branch 'nom' of github.com:rakudo/rakudo into nom
17:27 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9a9b506e5e
17:27 MayDaniel left #perl6
17:29 colomon that's merging into nom, not nom into master?
17:29 jnthn "into nom" :)
17:30 jnthn nom ain't that ready yet :)
17:30 wamba left #perl6
17:30 cognominal_ joined #perl6
17:31 pmichaud I forgot to 'pull' before doing the 'commit', so we got the merge commit.
17:31 dalek nqp: 547c431 | pmichaud++ | / (2 files):
17:31 dalek nqp: Update --makefile-timing flag from nom (based on mberends++ patch in master).
17:31 dalek nqp: review: https://github.com/perl6/nqp/commit/547c4318f3
17:33 cognominal left #perl6
17:33 cognominal_ left #perl6
17:33 cognominal_ joined #perl6
17:33 Moukeddar joined #perl6
17:35 thou joined #perl6
17:35 masak joined #perl6
17:35 masak gd'evening, #perl6.
17:36 daxim left #perl6
17:36 tadzik 'evening
17:37 jnthn yayitsmasak! \o/
17:38 TimToady masak: your latest doesn't seem to have shown up on planetsix
17:38 frettled ++masak++
17:38 pmichaud also, the latest has
17:38 pmichaud say "supercalifragilisticexpialidocious".substr(-7, 4) # also "doci"
17:38 pmichaud which I think is wrong now.
17:38 TimToady that he knows
17:38 masak yup. :)
17:38 pmichaud okay :)
17:39 frettled TimToady: yes, it has, but...
17:39 masak will fix :)
17:39 masak pmichaud: thanks for the reminder, though :)
17:39 frettled TimToady: the entry for the 7th is above the on for the 8th
17:39 pmichaud masak: I'm looking for the RT queue to file strangelyconsistent bugs :)
17:39 TimToady ah, there 'tis
17:39 * pmichaud plots his revenge....
17:39 masak I suspect Planet Perl 6 is expecting me to double-post, so they're waiting for the dupe :P
17:40 masak oh, they did post it... :)
17:40 TimToady so who's the dupe?
17:40 frettled o/
17:40 Chillance joined #perl6
17:40 masak how ironic, a joke about dupes being redundant...
17:40 TimToady you can say that again
17:41 jnthn TimToady: Looking at the trait_mods, is there any reason why some parse a typename and others a module_name?
17:41 kaare_ left #perl6
17:41 jnthn TimToady: hides and does parse module_name. of, as and return parse typename.
17:42 jnthn TimToady: My life would be easier if they all parsed typename, but I wonder if I'm missing some detail. :)
17:42 TimToady no, it's probably a dupe :)
17:42 TimToady er, dup
17:43 jnthn Well, the other place module_name shows up is "use" and "need"
17:43 jnthn It makes sense that they want something different because that type name doesn't exist yet - that's why we want to do the use.
17:43 jnthn But for does and hides, we'd best actually have the role or class to hand. :)
17:43 jnthn (And <typename> gives that.)
17:49 stephanepayrard_ joined #perl6
17:51 dalek std: 37a0cdd | larry++ | STD.pm6:
17:51 dalek std: does and hides should be typenames
17:51 dalek std: review: https://github.com/perl6/std/commit/37a0cdd3de
17:51 TimToady jnthn++
17:52 jnthn TimToady++ # making my life easier :)
17:52 pmichaud doesn't that go against the goal of Perl 6?  ;-)
17:52 cognominal_ left #perl6
17:53 pmichaud oh, it's that  "on behalf of of the users" part that allows this through :)
17:53 jnthn I mean, er, that patch made things satisfyingly hard for me. I was worried things might be too easy before it. :P
17:53 masak :P
17:54 mberends pmichaud: those --makefile-timing (ignore error) patches to Configure.pl look spot on :)
17:55 jfried joined #perl6
17:55 pmichaud mberends: thanks.  (Actually, they're in NQP::Configure now in nom and nqp :)
17:59 mj41 joined #perl6
18:07 colomon left #perl6
18:09 colomon joined #perl6
18:10 am0c joined #perl6
18:14 sorear good * #perl6
18:15 tadzik good you-name-it sorear
18:16 pernatiy joined #perl6
18:18 masak good whatevz, sorear.
18:23 Mowah left #perl6
18:27 JimmyZ_ joined #perl6
18:28 stephanepayrard_ left #perl6
18:29 cognominal joined #perl6
18:30 JimmyZ left #perl6
18:30 JimmyZ_ is now known as JimmyZ
18:31 kanishka left #perl6
18:33 sorear hi masak
18:33 sorear no yapsi this month, yousaid?
18:35 masak sorear: no, not enough tuits :/
18:35 masak will focus on making a good release next month.
18:35 dalek niecza/immediate: c0c6a52 | sorear++ | src/niecza:
18:35 dalek niecza/immediate: Implement subroutine traits, also "also is rw" syntax
18:35 dalek niecza/immediate: review: https://github.com/sorear/niecza/commit/c0c6a52050
18:36 am0c left #perl6
18:37 slavik left #perl6
18:37 masak whoa.
18:38 jnthn std: sub foo { also is rw; 1 }
18:38 p6eval std c843201: OUTPUT«ok 00:01 112m␤»
18:43 JimmyZ left #perl6
18:52 sorear rakudo: sub foo { also is rw; 1 }
18:52 p6eval rakudo 4a6d21:  ( no output )
18:52 sorear rakudo: sub foo { also is rw; 1 }; say "alive'
18:52 p6eval rakudo 4a6d21: OUTPUT«===SORRY!===␤Confused at line 22, near "say \"alive"␤»
18:52 sorear rakudo: sub foo { also is rw; 1 }; say "alive"
18:52 p6eval rakudo 4a6d21: OUTPUT«alive␤»
18:53 am0c joined #perl6
18:53 thou left #perl6
18:54 ymasory joined #perl6
18:55 sorear now... signatures
18:58 PerlJam Can rakudo and niecza share much?
18:58 PerlJam (I mean actual code, not just ideas or philosophy)
18:58 pmichaud we share a common admiration for the other's achievements?  ;-)
19:00 sorear PerlJam: they share users, they share a testsuite, hopefully they'll share modules soon
19:00 Moukeddar left #perl6
19:00 PerlJam So ... no more than any other perl 6 implementation shares with another.
19:01 sorear also the sequence op and Range implementation were copy-pasted from Rakudo (and tweaked a tiny bit to make them work)
19:02 wknight8111 joined #perl6
19:02 dalek nqp: b02ce6f | pmichaud++ | tools/build/gen-cat.pl:
19:02 dalek nqp: Make tools/build/gen-cat.pl utf8 aware.
19:02 dalek nqp: review: https://github.com/perl6/nqp/commit/b02ce6f6ee
19:05 am0c left #perl6
19:06 pmichaud jnthn: is the plan to eventually eliminate src/Perl6/Compiler.pir ?
19:07 dalek rakudo/nom: 2e23cdb | pmichaud++ | tools/distro/rakudo.spec:
19:07 dalek rakudo/nom: Move build/rakudo.spec into tools/distro .
19:07 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2e23cdbb34
19:07 dalek rakudo/nom: 0a32cd5 | pmichaud++ | / (4 files):
19:07 dalek rakudo/nom: Rename build/merge_pm.pl to tools/build/gen-cat.pl, update Makefile.
19:07 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0a32cd5f9e
19:08 pmichaud (more accurately:  replace it with src/Perl6/Compiler.nqp )
19:08 thou_ joined #perl6
19:09 jnthn pmichaud: erm
19:09 jnthn pmichaud: Do we even build it?
19:09 pmichaud oh, I didn't check that
19:09 Moukeddar joined #perl6
19:09 jnthn pmichaud: no, we don't
19:09 pmichaud so I can 'git rm' it?
19:10 jnthn pmichaud: Could you move it into "old"?
19:10 jnthn pmichaud: I probably want to review what's in there at some point
19:10 jnthn To try and avoid losing stuff.
19:10 pmichaud lots of what's there is really out of date (and arguably wrong)
19:10 pmichaud but yeah, I can move it to old/
19:11 jnthn yeah, I suspect most of it will be of little to no value.
19:11 pmichaud so, where is Perl6::Compiler defined?
19:12 jnthn pmichaud: Currently in the file we build into perl6.exe
19:12 jnthn pmichaud: Though it probably should move out to a Compiler.pm
19:12 pmichaud I might do that here shortly.
19:13 jnthn pmichaud: src/perl6.p6
19:13 jnthn pmichaud: +1
19:13 jnthn Then we can say our perl6.exe is even smaller :)
19:14 tadzik I like how nom/perl6 is 64K while master/perl6 is 11 MB
19:15 pmichaud I think that's primarily because nom/perl6 loads things at runtime via load_bytecode
19:15 tadzik yep
19:15 jnthn shhh :P
19:15 pmichaud I did the same with master/perl6 once, but decided it wasn't worth the trouble.
19:15 jnthn pmichaud: Now it's not wroth the trouble to not do it.
19:15 jnthn If it's even possible to do it...
19:16 pmichaud I guess it depends on how efficient load_bytecode is about mmap
19:16 pmichaud i.e., which is better ...   having the bytecode in the fakecutable or having it in multiple load_bytecode ops?
19:16 PerlJam whenever nom is ready will there be a branch swap like there was for alpha?
19:16 pmichaud PerlJam: yes.
19:16 ymasory left #perl6
19:16 PerlJam and the old master will be beta I suppose?
19:16 tadzik fun fun fun
19:16 tadzik so nom is gamma?
19:17 pmichaud jnthn: I'm still planning to do a .pm6 and .p6 -> .nqp conversion at some point
19:17 tadzik . o O ( Rakudo is no longer beta! )
19:17 jnthn pmichaud: Fine by me. I only called it perl6.p6 'cus it was cute :P
19:17 dalek niecza/immediate: 1d77646 | sorear++ | src/niecza:
19:17 dalek niecza/immediate: Simple subroutine signatures
19:17 dalek niecza/immediate: review: https://github.com/sorear/niecza/commit/1d776460b3
19:18 jnthn .oO( you think it's cute now... )
19:18 pmichaud I'll probably switch perl6.p6 to be main.nqp, too.
19:18 pmichaud I would've never guessed at the contents of "perl6.p6"  :)
19:20 daemon left #perl6
19:21 daemon_ joined #perl6
19:21 Moukeddar left #perl6
19:21 * sorear ponders sub foo($x = BEGIN { say $x.typeconstraint }) { }
19:21 sorear er
19:22 * sorear ponders sub foo(Str $x = BEGIN { say $x.typeconstraint }) { }
19:22 sorear the logical place to set $x's type is in the action method for parameter
19:22 sorear but by that time the BEGIN would already have been run
19:22 dalek rakudo/nom: 90051c6 | pmichaud++ | build/ (3 files):
19:22 dalek rakudo/nom: Remove obsolete build/ directory.
19:22 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/90051c67f2
19:23 jnthn I hope you meant $x.VAR.typeconstraint
19:23 sorear yes
19:23 jnthn It's...weird.
19:24 jnthn I wouldn't be disappointed if it didn't work.
19:24 sorear actually niecza/immediate will set types in <signature>
19:25 sorear because it needs to see the param_sep to fill out types fully
19:25 jnthn Right
19:25 jnthn That's what happens in nom too, iirc
19:25 thou_ left #perl6
19:28 TimToady INIT might be a much better time for such shenanigans
19:29 TimToady assuming you don't wanna call foo at compile time :)
19:29 TimToady I suppose an INIT can run early if it really needs to...
19:30 alc left #perl6
19:30 TimToady just as a BEGIN can run in an eval later than normal INIT time
19:30 * TimToady feels organic
19:32 PerlJam I suppose that's a good thing because you are organic  :)
19:33 dalek rakudo/nom: dcbb6cf | pmichaud++ | / (3 files):
19:33 dalek rakudo/nom: Move Perl6::Compiler into its own source file.
19:33 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/dcbb6cf3cb
19:33 PerlJam but in the mean time, I'm thinking BEGINs that don't run at BEGIN time and INITs that don't run at INIT time ...  where's the concrete footing I can lack onto so that I don't slip into the muck?  :-)
19:33 PerlJam s/lack/latch/
19:34 pmichaud PerlJam: the concrete footing is at the bottom of the muck.
19:34 PerlJam figures.
19:34 TimToady all these blocks have a natural time to run, but they also have 'gravity' when they can't be run at the best time, so they mostly end up as early/late as possible
19:35 sivoais joined #perl6
19:35 masak PerlJam: the missing piece of the puzzle is that Perl will rather try to do what you want as much as it can, than complain.
19:36 PerlJam masak: but what if I don't know what I want?  ;)
19:36 masak then Perl will do something crazy, at least making you very impressed :P
19:37 sorear jnthn: suppose a tricky user manages to make $x mean 42 in the scope of my Array $x.  May I make demons fly out of eir nose?
19:38 dalek rakudo/nom: 6b3bd66 | jnthn++ | src/Perl6/ (3 files):
19:38 dalek rakudo/nom: Straighten out role body and type variable hanlding a little more.
19:38 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6b3bd66253
19:38 dalek rakudo/nom: 4098cff | jnthn++ | src/ (2 files):
19:38 dalek rakudo/nom: Compilation of various other traits.
19:38 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4098cffffe
19:38 dalek rakudo/nom: d07ae77 | jnthn++ | src/Perl6/Grammar.pm:
19:38 dalek rakudo/nom: Follow traits change from STD.
19:38 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d07ae77c4f
19:39 sorear it's funny to see jnthn *so far* ahead of me for a change ;)
19:39 wamba joined #perl6
19:39 jnthn sorear: I'm...not sure how to implement flying demons on top of Parrot, but it seems like it'll work on the CLR.
19:39 jnthn :P
19:39 pmichaud Parrot comes with its own demons built-in.
19:40 masak quick, we need to find a Parrot spokesperson, to scold us and say "there, now" when we make fun of Parrot. :P
19:44 dalek nqp: 8328ee1 | pmichaud++ | src/HLL/Compiler.pm:
19:44 dalek nqp: Fix --combine flag to HLL::Compiler.
19:44 dalek nqp: review: https://github.com/perl6/nqp/commit/8328ee11b8
19:44 dalek nqp: b4ae484 | pmichaud++ | tools/build/gen-version.pl:
19:44 dalek nqp: Fix typo in tools/build/gen-version.pl .
19:44 dalek nqp: review: https://github.com/perl6/nqp/commit/b4ae4841ac
19:47 PerlJam nom certainly builds faster than master.  :)
19:47 pmichaud its CORE.setting is a lot smaller atm
19:47 jnthn That's at least somewhat because it's setting is smaller
19:48 PerlJam yes, I realize.
19:48 jnthn And also because we don't re-build half of the compiler twice over :)
19:48 dalek niecza/immediate: a5b4388 | sorear++ | src/niecza:
19:48 dalek niecza/immediate: Type constraints for subroutine signatures
19:48 dalek niecza/immediate: review: https://github.com/sorear/niecza/commit/a5b4388254
19:48 stepnem left #perl6
19:48 jnthn When pmichaud++ gets the profiling stuff in place, I can work out where we spend time in compiling core
19:50 jnthn Aside from parsing the string PSS-> thousands and thousands of times to make a RPA that we then throw out... :)
19:52 pmichaud I'm glad I added config.default :)
19:54 stepnem joined #perl6
19:55 pmichaud echo "--gen-nqp=master --gen-parrot" > config.default     # always build nom from nqp master
19:55 pernatiy left #perl6
19:58 pernatiy joined #perl6
20:04 dalek rakudo/nom: 03b247c | pmichaud++ | tools/build/NQP_REVISION:
20:04 dalek rakudo/nom: Bump NQP_REVISION to get --combine flag from HLL::Compiler.
20:04 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/03b247c35c
20:04 dalek rakudo/nom: 5e51943 | pmichaud++ | / (3 files):
20:04 dalek rakudo/nom: Add --version to nom.
20:04 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5e519431a3
20:04 dalek rakudo/nom: b25f270 | pmichaud++ | src/ (4 files):
20:04 dalek rakudo/nom: Merge branch 'nom' of github.com:rakudo/rakudo into nom
20:04 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b25f270938
20:04 dalek rakudo/nom: 1e786a1 | pmichaud++ | / (3 files):
20:04 dalek rakudo/nom: Rename src/perl6.p6 to src/main.nqp .
20:04 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1e786a1dbf
20:07 wamba left #perl6
20:08 jevin left #perl6
20:08 dalek niecza/immediate: 5dd9704 | sorear++ | src/niecza:
20:08 dalek niecza/immediate: Subroutine signatures with default values
20:08 dalek niecza/immediate: review: https://github.com/sorear/niecza/commit/5dd97045b1
20:08 tadzik pmichaud: so what's the final stance of eventual perl6->rakudo rename?
20:08 pmichaud tadzik: haven't decided yet.
20:09 pmichaud jnthn: are there any core classes that have attributes yet?  do attributes work as I would expect in nom?
20:09 lichtkind joined #perl6
20:09 jnthn pmichaud: X::Base does
20:09 jnthn pmichaud: They should mostly work (more)
20:09 pmichaud ah, okay.
20:09 jnthn I fixed the accessor case yesterday
20:10 jnthn Note that there's no BUILD/BUILDALL etc yet
20:10 pmichaud I'm wondering what &infix:<,> should look like.
20:10 jnthn It makes a Parcel?
20:10 pmichaud yes
20:10 jnthn oh, hmm :)
20:11 jnthn It can't be slurpy because, well :)
20:11 pmichaud not a normal slurpy, no.
20:12 jnthn pmichaud: If its signature just is taking the capture, then you could pull the values out of the capture directly.
20:13 pmichaud maybe, but that doesn't sound quite right.
20:13 jnthn That may well be easiest.
20:13 jnthn How so?
20:13 pmichaud oh, what does "taking the capture" entail?
20:13 jnthn sub infix:<,>(|$) { ... }
20:13 sorear sub infix:<,>(\|@x) { @x }
20:13 jnthn The | quant.
20:14 jnthn sorear: \| ?
20:14 jnthn std: sub foo(\|@x) { @x }
20:14 p6eval std 37a0cdd: OUTPUT«ok 00:01 114m␤»
20:14 lichtkind greeting earthlings
20:14 pmichaud I mean, what kind of object do I get as a result?
20:14 sorear jnthn: \| binds the arguments to the function as a Parcel
20:14 masak lichtkind: hello, child of light.
20:15 jnthn sorear: When did that get added?
20:15 sorear jnthn: before my time
20:15 jnthn pmichaud: If you want it to be fast, just do that and grab the Parrot call capture and work straight from that.
20:15 pmichaud example of "grab the Parrot call capture"?
20:15 pmichaud (sorry, I don't know all of the exact details of how this is set up)
20:16 jnthn pmichaud: it's OK, I'm having to check too :)
20:16 pmichaud (I know it in PIR, I don't know it in NQP)
20:16 jnthn pmichaud: pir::find_lex('call_sig')
20:16 jnthn pmichaud: Will do it
20:16 jnthn pmichaud: Though we could make a more efficient way too
20:16 pmichaud whatever works for now is fine
20:17 pmichaud how do I get the slurpy RPA out of the call_sig?
20:17 jnthn pmichaud: Thing is that |$c will wrap the Parrot capture up in something Perl6-y
20:17 jnthn pmichaud: Probably no way other than looping
20:17 pmichaud hmmm.
20:17 jnthn pmichaud: Would it help if I wrote you an op that just gave you the RPA from the curent call capture?
20:17 jnthn pmichaud: It'll take me like 2 mins to write. :)
20:18 jnthn Then you can do something like
20:18 jnthn sub infix:<,>(|$) { # so binder is a no-op
20:19 pmichaud ideally, I'm thinking:
20:19 jnthn pir::setattribute__0PPsP(pir::repr_new__PP(Parcel), Parcel, '$!storage', pir::the_op_i_write__P())
20:19 jnthn }
20:19 pmichaud yes, that would work.
20:19 pmichaud I guess we don't have .new yet either?
20:19 jnthn Yes
20:19 jnthn But don't use it in primitives. :)
20:20 pmichaud what qualifies as a primitive?
20:20 jnthn Neesd to be fast :)
20:20 pmichaud so, List stuff shouldn't use new?
20:20 jnthn .new will have to go through the bless/create/BUILDALL path
20:20 pmichaud or maybe List stuff implements its own .new ?
20:20 jnthn Well, yes, you can also override .new and do whatever you wish. :)
20:21 pmichaud might be better/easier than all of the explicit repr_new stuff.
20:21 jnthn I'm just saying that I dobut we can make the default .new super-zippy
20:21 pmichaud noted.
20:21 pmichaud yes, an op to grab the rpa would be wonderful.
20:21 * jnthn git stash's, writes the op
20:22 pmichaud I suppose slurpy params are waiting for an Array implementation, too :-)
20:23 pmichaud if we have the get_rpa op we can cheat a bit more on say() for now, too :)
20:24 jnthn pmichaud: Right ;)
20:28 cognominal left #perl6
20:29 cognominal joined #perl6
20:29 jnthn pmichaud: Written :)
20:29 jnthn Just re-building so I can test it.
20:30 wknight8111 left #perl6
20:30 sorear it helps if your routine_def action method actually saves the optree somewhere.  *oops*
20:30 jnthn sorear: ?
20:31 jnthn Oh :) Yes, I see :)
20:31 pmichaud I think it's an unbound "your"
20:31 arnsholt Sounds like sorear made a thinko =)
20:31 jnthn Yes, I was wondering what was wrong with my routine_def :P
20:31 sorear a particulary bad one =)
20:31 pmichaud jnthn: well.... where shall I start?  ;-P
20:32 jnthn .oO( oh crap. )
20:32 jnthn :P
20:33 jnthn pmichaud: pushed
20:34 pmichaud jnthn: pulled, wfm
20:35 jnthn (yes, I tested it too)
20:36 dalek rakudo/nom: e1b2a77 | jnthn++ | src/ops/perl6.ops:
20:36 dalek rakudo/nom: perl6_current_args_rpa op for pmichaud++.
20:36 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e1b2a777b0
20:37 mberends pmichaud: Parrot/Zavolaj fall down on void returns from native libs.  There are test cases commented out with error reports in https://github.com/jnthn/zavolaj/blob/master/t/03-customlib.t.  No rush, I'm going to sleep soon.
20:37 pmichaud mberends: yes, I've had issues with void returns also -- I'm not sure if it's Parrot, Rakudo, or Zavolaj
20:37 pmichaud (I suspect Rakudo.)
20:38 mberends :(
20:38 dalek niecza/immediate: f1ee2b3 | sorear++ | / (3 files):
20:38 dalek niecza/immediate: Minor fixes to get the rest of the compiler stages to run
20:38 dalek niecza/immediate: review: https://github.com/sorear/niecza/commit/f1ee2b3068
20:39 jnthn At a guess it needs dealing with in Zavolaj.
20:40 pmichaud I think the common failure mode is null pmc access
20:40 mberends yes, in these cases too
20:40 jnthn yeah...Zavolaj shouldn't really let null PMCs escape, I suspect.
20:41 jnthn And my guess it that it may be doing so
20:41 pmichaud I think it's rakudo's boxing that has trouble with them.
20:41 pmichaud I could be wrong, though.
20:41 jnthn Possibly that too
20:41 jnthn It's been a while since I hacked on Zavolaj.
20:41 * jnthn remembers writing it in the first place
20:41 jnthn Was the last piece of code I wrote in Bratislava.
20:41 mberends there may be a mixup between OpaquePointer and UnManagedStruct as well.
20:42 jfried left #perl6
20:43 sorear niecza: has $.x
20:43 p6eval niecza v6-89-ge849cf7: OUTPUT«Potential difficulties:␤  'has' declaration outside of class at /tmp/belGv2krQN line 1:␤------> [32mhas[33m⏏[31m $.x[0m␤␤Unhandled exception: attribute x declared outside of any class␤  at /home/p6eval/niecza/boot/lib/CORE.setting line 469 (CORE die @ 2) ␤  at
20:43 p6eval ../home/p6eval/niec…
20:43 sorear will be a proper SORRY! in /immediate
20:44 pmichaud pmichaud@kiwi:~/nom$ ./perl6
20:44 pmichaud > say 1,2,3
20:44 pmichaud 123
20:44 jnthn pmichaud: Should I be able to cp config.status config.default ?
20:44 pmichaud jnthn: no, you have to create config.default manually
20:44 jnthn pmichaud: already?!
20:44 sorear pmichaud: does say (1,2,3) also work?
20:44 pmichaud jnthn: no, that's a cheat
20:44 pmichaud jnthn: no parcels involved yet
20:45 jnthn pmichaud: :P
20:45 sorear cheat?
20:45 pmichaud 1,2,3 is an argument list in Rakudo, it doesn't become a Parcel
20:45 pmichaud sorear: you're correct that  say (1,2,3) likely doesn't work
20:45 pmichaud > say (1,2,3)
20:45 pmichaud Could not find sub &infix:<,>
20:46 pmichaud jnthn: just put whatever default options you want passed to Configure.pl into config.default
20:46 jnthn pmichaud: ah, ok
20:46 pmichaud e.g.
20:46 pmichaud echo "--gen-parrot --gen-nqp" >config.default
20:46 pmichaud the options can still be overridden on the command line
20:46 jnthn pmichaud: FAIL
20:47 jnthn Backlash at the backslash!
20:47 pmichaud oh, you had backslashes in the string?
20:47 jnthn Windows path :P
20:47 pmichaud try single quotes
20:48 jnthn :)
20:48 pmichaud seriously
20:48 pmichaud '--with-nqp=c:\path\to\nqp.exe'
20:48 jnthn pmichaud: yeah, that helps
20:48 jnthn Now it tells me my NQP is too old. :)
20:48 daniel-s joined #perl6
20:48 pmichaud ...and it probably is :)
20:48 jnthn It's probably correct. :)
20:49 pmichaud the contents of config.default get passed through shellwords and then unshifted onto @ARGV
20:49 jnthn pmichaud: If I want to let it manage my build, should I use --gen-nqp or --gen-parrot?
20:49 jnthn It suggests either :)
20:49 pmichaud --gen-parrot is sufficient
20:49 pmichaud --gen-parrot implies --gen-nqp
20:50 pmichaud --gen-nqp by itself means "build my own nqp using whatever parrot you happen to find"
20:50 pmichaud --gen-parrot (with or without --gen-nqp)  means  "build my own parrot and use that to build nqp"
20:52 jnthn pmichaud: ouch :(
20:52 jnthn C:\Consulting\rakudo>perl Configure.pl --gen-parrot
20:52 jnthn The system cannot find the path specified.
20:52 jnthn Died at tools/lib/NQP/Configure.pm line 87.
20:52 thou joined #perl6
20:52 pmichaud looking
20:53 pmichaud line 87 is
20:53 pmichaud close($CONFIG) or die $!;
20:53 pmichaud huh?
20:53 jnthn wow :)
20:53 jnthn I concur, that's where it happens
20:53 jnthn :/
20:54 pmichaud so the open succeeds but the close failes?
20:54 pmichaud fails?
20:54 pmichaud try removing the "or die $!" there
20:54 pmichaud (I really don't care if it gets closed or not :)
20:54 jnthn pmichaud: That deals with it.
20:55 jnthn pmichaud: This feels familiar
20:55 jnthn pmichaud: Pipe-opens on Win32 don't die at open time.
20:55 jnthn Or something weird like that
20:55 jnthn This isn't the first time I've seen the issue
20:55 jnthn It dies in the same way later on but I guess that means I need to fix it in nqp also :)
20:55 pmichaud yes
20:55 pmichaud currently tools/lib/NQP/Configure.pm is intended to be identical in both nqp and nom
20:56 pmichaud so any changes we make in one we should make in the other
20:56 jnthn oh, no, it doesn't get all the way...dies at line 130 no
20:56 pmichaud there's also a close or die in read_parrot_config  (line 130)
20:56 jnthn *now
20:56 dalek rakudo/nom: fb4a373 | pmichaud++ | src/CORE.setting/IO.pm:
20:56 dalek rakudo/nom: Enable &say and &print to be able to accept an argument list instead of single arguments.
20:56 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/fb4a37386c
20:58 jnthn pmichaud: Fixed both, seeing how it works
20:59 jnthn looks rather better
21:00 jnthn whoa
21:00 sorear jnthn: I would just like to take this chance to express my envy of your class Signature / struct Rakudo_Signature relationship.
21:00 jnthn pmichaud: Now Windows pops up a dialog asking what program it should open config_lib.pir using :D
21:01 pmichaud lol
21:01 jnthn sorear: I was quite happy about that. :)
21:02 jnthn pmichaud: When I hit cancel I get "Unable to determine value for 'make' from parrot config"
21:02 jnthn pmichaud: Any clues where I should look?
21:02 pmichaud jnthn: fixing.
21:03 pmichaud will push in a second
21:03 jnthn ah, thanks
21:04 dalek niecza/immediate: b01de0c | sorear++ | src/niecza:
21:04 dalek niecza/immediate: Implement basic has-attributes
21:04 dalek niecza/immediate: review: https://github.com/sorear/niecza/commit/b01de0c0ed
21:04 sorear \o/ "Hello, world"
21:04 sorear still a few more things that need to be reimplemented, though, like if statements, and settings
21:06 dalek nqp: eeb63e9 | pmichaud++ | tools/lib/NQP/Configure.pm:
21:06 dalek nqp: Update NQP::Configure to handle Win32 oddities.
21:06 dalek nqp: review: https://github.com/perl6/nqp/commit/eeb63e99ea
21:06 pmichaud jnthn: pushed both
21:07 pmichaud (should just be able to pull from nom and have it work)
21:07 dalek rakudo/nom: 1a64e24 | pmichaud++ | tools/ (2 files):
21:07 dalek rakudo/nom: Update NQP::Configure to handle Win32 open oddities.
21:07 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1a64e24f61
21:07 pmichaud afk for a moment (phone)
21:07 lichtkind_ joined #perl6
21:08 tadzik .u ಠ
21:08 phenny U+0CA0 KANNADA LETTER TTHA (ಠ)
21:09 lichtkind left #perl6
21:09 thou left #perl6
21:09 lichtkind_ is now known as lichtkind
21:09 jnthn pmichaud: Looks better so far.
21:11 bluescreen10 left #perl6
21:12 dalek rakudo/nom: af791e0 | jnthn++ | tools/lib/NQP/Configure.pm:
21:12 dalek rakudo/nom: Fix NQP::Configure on Win32.
21:12 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/af791e0677
21:12 dalek rakudo/nom: 08a9082 | jnthn++ | / (3 files):
21:12 dalek rakudo/nom: Resolve merge conflict.
21:12 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/08a90829fc
21:19 thou joined #perl6
21:26 masak blog post! http://strangelyconsistent.org/blog/june-9-2011-given
21:26 spq1 left #perl6
21:27 jnthn yay, masak's given us another blog post \o/
21:28 sorear \o/
21:29 sorear masak: s/less place/less space/ ?
21:29 masak sorear: fixing, thanks.
21:31 hercynium left #perl6
21:31 dalek niecza/immediate: dec96e1 | sorear++ | src/ (2 files):
21:31 dalek niecza/immediate: Reimplement attribute default values
21:31 dalek niecza/immediate: review: https://github.com/sorear/niecza/commit/dec96e18e2
21:32 pmichaud ..."chocolate crunching action"?
21:32 * pmichaud wonders what THAT could be
21:32 masak pmichaud: it's a game called "chomp!"
21:33 pmichaud jnthn: success?
21:33 jnthn pmichaud: yes :)
21:33 masak pmichaud: it's really two-dimensional Nim :P
21:33 jnthn pmichaud: My regularly scheduled hacking has now resumed. :)
21:33 pmichaud jnthn: \o/
21:33 jnthn pmichaud++
21:33 daniel-s ?
21:33 * daniel-s confused
21:33 pmichaud jnthn: one useful feature of the new system
21:33 pmichaud perl Configure.pl --gen-parrot=master
21:33 pmichaud builds against the parrot 'master' branch
21:33 masak daniel-s: ¿
21:34 jnthn pmichaud: ooh!
21:34 jnthn pmichaud: Neat.
21:34 daniel-s OMG! upsidedown questionmark!!
21:34 jnthn pmichaud: Any commit identifier?
21:34 jnthn daniel-s: huh, it's right way up for me...
21:34 pmichaud jnthn: yes.
21:34 masak daniel-s: I thought it might un-confuse you... :)
21:34 daniel-s haha
21:34 masak well? did it help? :)
21:35 daniel-s yea
21:35 daniel-s but I'm still going back to sleep
21:35 * masak knew it¡
21:35 daniel-s now you're just showing off
21:36 masak ñäh :P
21:36 daniel-s left #perl6
21:39 masak good ♞, daniel-s.
21:40 mj41 left #perl6
21:40 frettled nice one
21:41 Psyche^ joined #perl6
21:42 Patterner left #perl6
21:42 Psyche^ is now known as Patterner
21:43 masak frettled: I can't take credit for it, though. it's au++'s meme.
21:43 frettled masak: yeah, but this is the first time I saw the symbol :D
21:44 masak new client? :)
21:46 jnthn .u ♞
21:46 phenny U+265E BLACK CHESS KNIGHT (♞)
21:46 jnthn :D
21:46 * jnthn 's font don't do it.
21:48 frettled masak: no, not really, but perhaps the somewhat recent font update took care of it.
21:48 frettled «black chess knight» - no, it's white here
21:48 frettled :D
21:49 masak Unicode's definition of "black" sometimes includes "white" :P
21:50 masak and vice versa.
21:51 masak good knight, #perl6.
21:53 masak left #perl6
21:55 lichtkind goodnight
22:09 pmichaud .u WHITE CHESS KNIGHT
22:09 phenny U+2658 WHITE CHESS KNIGHT (♘)
22:11 dalek niecza/immediate: fc6b0df | sorear++ | src/niecza:
22:11 dalek niecza/immediate: Reimplement constants
22:11 dalek niecza/immediate: review: https://github.com/sorear/niecza/commit/fc6b0dfd8e
22:25 dalek rakudo/nom: c88dfb2 | jnthn++ | src/binder/multidispatch.c:
22:25 dalek rakudo/nom: Tweak multi-dispatch check order for consistency with the binder.
22:25 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c88dfb240a
22:25 dalek rakudo/nom: 26dd914 | jnthn++ | src/Perl6/Metamodel/ (2 files):
22:25 dalek rakudo/nom: Fix a few small bugs in various meta-methods.
22:25 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/26dd9146a9
22:25 dalek rakudo/nom: f9ab62c | jnthn++ | src/Perl6/Metamodel/ (2 files):
22:26 dalek rakudo/nom: Start to fill out role specialization, from parametric to concrete.
22:26 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f9ab62c236
22:26 dalek rakudo/nom: 48a2204 | jnthn++ | src/Perl6/ (3 files):
22:26 dalek rakudo/nom: First cut at passing along role body block, plus fix up method naming issues.
22:26 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/48a2204312
22:31 dalek rakudo/nom: e9d014b | pmichaud++ | / (3 files):
22:31 dalek rakudo/nom: Stub in Iterable and Parcel, initial infix:<,> implementation.
22:31 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e9d014bb9d
22:34 jnthn yay, it begins \o/
22:34 sorear what begins?
22:34 jnthn sorear: list implementation in nom :)
22:35 * sorear is glad eir current rewrite doesn't touch lists.
22:36 sorear std: class Foo { method @.<foo bar> { ... } }
22:36 p6eval std 37a0cdd: OUTPUT«ok 00:01 112m␤»
22:36 sorear what is that supposed to mean?
22:37 jnthn O.O
22:37 jnthn std: please smoke less drugs
22:37 p6eval std 37a0cdd: OUTPUT«[31m===[0mSORRY![31m===[0m␤Undeclared routines:␤        'drugs' used at line 1␤ 'less' used at line 1␤  'please' used at line 1␤        'smoke' used at line 1␤Check failed␤FAILED 00:01 113m␤»
22:38 sorear looks like TimToady was implementing S13:173 and got carried away
22:38 * jnthn slightly horrified that that parses.
22:38 sorear niecza: $::::x
22:38 p6eval niecza v6-89-ge849cf7: OUTPUT«[31m===[0mSORRY![31m===[0m␤␤*ONE* pair of leading colons SHALL BE ENOUGH at /tmp/UFqKtoe32c line 1 (EOF):␤------> [32m$::::x[33m⏏[31m<EOL>[0m␤␤Unhandled exception: Check failed␤␤  at /home/p6eval/niecza/boot/lib/CORE.setting line 469 (CORE die @ 2) ␤  at
22:38 p6eval ../home/p6eval/niecza…
22:38 Ali_h_ joined #perl6
22:39 jnthn lol!
22:39 arnsholt Is that like "YOU SHALL NOT PASS"?
22:39 arnsholt =)
22:39 jnthn ah, I see...hm
22:39 pmichaud maybe "Check failed" should be "Check bounced" :)
22:39 jnthn :D
22:40 pmichaud although I suppose that's really  "Cheque bounced" if you're speaking that other dialect of American
22:40 Ali_h left #perl6
22:40 Ali_h__ joined #perl6
22:41 jnthn :P
22:41 jnthn You mean that *correct* dialect? :)
22:41 dalek rakudo/nom: 43a8b52 | pmichaud++ | / (4 files):
22:41 dalek rakudo/nom: Stub in Iterator, List, and ListIter.
22:41 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/43a8b52675
22:43 Ali_h_ left #perl6
22:45 envi_laptop left #perl6
22:49 ewemoa joined #perl6
22:50 sahadev left #perl6
22:52 dalek rakudo/nom: 4f8db8f | pmichaud++ | / (3 files):
22:52 dalek rakudo/nom: Stub in Seq, add Parcel.list .
22:52 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4f8db8f182
22:52 pmichaud jnthn: what's the best mechanism to perform an 'isa' check ?
22:53 pmichaud (or maybe 'does' will work also)
22:53 jnthn pmichaud: typecheck op
22:53 jnthn pmichaud: See Mu.pm's ACCEPTS method
22:53 pmichaud ah.  "type_check"
22:53 jnthn pmichaud: That's the fast way that hits the cache and gives you an answer from just looking at some pointers. :)
22:54 jnthn Of course, you can't pass it a string.
22:54 pmichaud no problem, don't need to.
22:54 jnthn Do we need string isa at all? :)
22:54 jnthn Because I sure didn't implement it... :)
22:54 pmichaud I'm pretty sure   $x.isa("Something")  has to work someday.
22:54 pmichaud er
22:54 pmichaud yeah, that.
22:54 jnthn ew
22:54 jnthn OK
22:55 pmichaud there's tests for it in roast
22:55 jnthn well...it doesn't have to work fast :)
22:55 pmichaud correct, I'm fine if it's slow.
22:55 pmichaud I'm also fine if it goes away someday.
22:55 jnthn It won't be deadly slow, but I'm not interested in making it a 6model primitive.
22:55 sorear I call p5fossil
22:55 jnthn Not unless some other langauges badly want it.
22:56 jnthn (fine if it goes away) I wouldn't miss it.
22:56 pmichaud sorear: I called p5fossil on it originally and was kinda steered away from that
22:56 pmichaud (about three years ago...)
22:56 jnthn It's kinda dangerous because of its inexactness.
22:56 pmichaud agreed.
22:56 pmichaud as I said, I wouldn't mind seeing it go away.  the work around is   .isa(eval("Something"))
22:57 pmichaud or maybe even  ::($x)  or something like that
22:57 jnthn yeah
22:58 sorear have you figured out how to make eval not leak yet?
22:59 dalek niecza/immediate: de8e351 | sorear++ | src/niecza:
22:59 dalek niecza/immediate: Implement method definitions
22:59 dalek niecza/immediate: review: https://github.com/sorear/niecza/commit/de8e35119f
23:00 jnthn sorear: Wasn't especially aware that it did, but I'm not at all surprised either.
23:01 pmichaud jnthn: each eval() creates a new Parrot sub.  :-/
23:01 jnthn pmichaud: Sure, which is fine...if it gets GC'd afterwards.
23:01 sorear worse, eval() creates a Packfile
23:01 sorear with a new constant table
23:01 jnthn I'm guessing it...doesn't.
23:01 pmichaud Parrot subs go into the constant table, iirc
23:02 jnthn Right, but in a separate PackFile data structure.
23:02 pmichaud anyway, if it gets gc'd I'm much less concerned, yes.
23:02 pmichaud just have to make sure all of its subs are anon
23:02 jnthn I'm guessing since sorear asked, it's leaking.
23:02 jnthn oh, darn
23:02 jnthn yes, there is that instally issue :/
23:03 jnthn pmichaud: Is there a PAST flag for "anon"?
23:03 jnthn Other than setting it in pirflags?
23:03 pmichaud jnthn: don't give it a name
23:03 pmichaud and it's anon
23:03 pmichaud (iirc)
23:03 jnthn ah, that's maybe not enough
23:04 jnthn It'd be nice if the sub carried around its name but didn't get installed.
23:04 pmichaud there must be some other way to make it anon, though.
23:04 jnthn Tehre's a :anon flag I believe
23:04 pmichaud I know that blocks are :anon by default
23:04 jnthn We could probably get away with blanket applying it to everything these days.
23:04 pmichaud but if it gets a name, I think it's not :anon
23:04 pmichaud anyway, pirflags is the best bet at the moment
23:04 pmichaud but we can look at other options
23:05 jnthn I was most bothered to see that Parrot Sub PMC carries around it in IIRC 3 or 4 different copies of the name... :/
23:07 dalek rakudo/nom: 02b1c21 | jnthn++ | / (3 files):
23:07 dalek rakudo/nom: Just enough to be able to apply methods and attributes from a single concrete role. Doesn't mean we really have working roles yet, but it does mean we make it through the full does trait -> compose -> specialize -> apply procedure.
23:07 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/02b1c21379
23:09 Ali_h__ left #perl6
23:13 * sorear is slightly bothered by the fact that .NET 3.5 does not support garbage collection of dynamically generated code...
23:13 dalek niecza/immediate: 8c00c99 | sorear++ | src/niecza:
23:13 dalek niecza/immediate: Reimplement private method calling
23:13 dalek niecza/immediate: review: https://github.com/sorear/niecza/commit/8c00c99c70
23:14 icwiener left #perl6
23:16 envi_laptop joined #perl6
23:19 cooper|ipad left #perl6
23:19 cooper|ipad joined #perl6
23:20 pmichaud jnthn: for core list operations, do you think I should use Q:PIR or while statements for looping?
23:21 tadzik yay, sleepless night
23:23 jnthn pmichaud: I'd use while
23:23 pmichaud I'm worried the block invocations will get too expensive.
23:23 jnthn pmichaud: Here's my fear on Q:PIR. We won't know what it's doing, so the optimizer won't be able to make much in the way of assumptions.
23:23 jnthn pmichaud: When we have one, that is
23:23 jnthn But I don't see that as a far-off thing.
23:24 pmichaud I don't mind switching from Q:PIR to a while loop later
23:24 jnthn I'd expect us to be able to do the block inlining.
23:24 pmichaud I could write both for now.
23:24 jnthn True.
23:24 pmichaud so we use Q:PIR for now, then uncomment the block form when it's ready
23:24 jnthn +1 if that isn't going to be too much effort.
23:24 pmichaud I'll start with the block form for now
23:24 pmichaud we can optimize with Q:PIR if it turns out to be a hotpath
23:25 jnthn Oh, even better. :)
23:25 pmichaud (or with block inlining if we're ready for it then)
23:25 sorear jnthn: ... tell me more about these "optimizations"
23:27 jnthn sorear: The obvious case where Q:PIR can get in the way is if we want to demote lexicals to registers (becasue there's no way a closure could be taken and none are contextual), but there's a Q:PIR there that may be looking them up with find_lex.
23:28 * sorear nods
23:29 jnthn I suspect there'll be more cases like that. The main optimization I'm thinking that'd make while better is that right now every loop body is a Parrot sub invocation, which is multiple GCables.
23:29 jnthn Not to mention the call overhead.
23:29 pmichaud anytime we use Q:PIR we're drastically limiting our options for optimization (unless we ignore the effects of Q:PIR)
23:29 jnthn Right.
23:30 jnthn It's the short term win that could hurt the medium term optimizer.
23:30 pmichaud Q:PIR has always been intended as a "just get this working" and not a "long term solution"
23:30 jnthn *nod*
23:31 Chillance left #perl6
23:34 sorear long term solurong term solution, that's pir::, right?
23:35 jnthn nqp::
23:35 jnthn (compile-time abstraction layer)
23:35 sorear ohright
23:36 tyatpi left #perl6
23:44 tadzik pmichaud: what is your opinion on parrot's tree-optimizer? Is that a target for Rakudo, or we're rather to roll out our own thing?
23:50 dalek niecza/immediate: 8989b7d | sorear++ | src/niecza:
23:50 dalek niecza/immediate: Reimplement placeholder variables
23:50 dalek niecza/immediate: review: https://github.com/sorear/niecza/commit/8989b7dcc3
23:51 pmichaud tadzik: it's not really a target for rakudo.  I think it makes incompatible assumptions with what we're doing.
23:52 tadzik I see
23:53 jnthn Thing is, the tree isn't where a lot of interesting things to do are.
23:53 whiteknight joined #perl6
23:53 jnthn I mean, sure, you diddle with the tree
23:53 jnthn But often that's based on meta-objects.
23:53 jnthn "oh, we can do this assignment unchecked because we have enough type information to know its OK"
23:53 jnthn and so forth
23:57 tadzik and things like "oh, there's not much intredasting in this Block, lets make it Stmnts and inline it"?
23:57 jnthn Yes, once we work out what intredasting is, at least. :)
23:57 tadzik slap me if that doesn't make sense, it's late and all I'm thinking is semiconductors :)
23:58 tadzik it's deeper than "there are some local variables or not"?
23:59 pmichaud CALLER:: comes to mind.
23:59 jnthn Has to be...every block has a $_, $! and $/
23:59 pmichaud as does OUTER::
23:59 jnthn pmichaud: CALLER is no biggie
23:59 jnthn Nor that
23:59 jnthn You can only see contextuals with that.
23:59 jnthn Or anything marked is context explicitly
23:59 jnthn Spec already makes that concession
23:59 pmichaud jnthn: right, that's what I was referring to (indirectly)

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

Perl 6 | Reference Documentation | Rakudo