Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2006-09-13

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:00 markstos joined perl6
00:02 drbean joined perl6
00:03 markstos ?
00:04 jferrero joined perl6
00:05 obra 'evening
00:05 markstos Hello Jesse
00:07 jferrero joined perl6
00:08 markstos I backlogged. TimToady, you said " I expect that specs to get filled out with P5ish carryovers as the entire P5 test suite (core parts, at least) are ported over to P6, and people notice there's no place to L<> to, and do some cagecleaning on the specs."
00:08 markstos regarding that,
00:08 markstos should the process remain the same for that phase--- emailing feedback to p6l ?
00:09 markstos Or would it be worthwhile to start a grassroots S16 based on how P5 works, and then work through @Larry to get it blessed ?
00:09 markstos A lot of stuff in there is like 'chown' and 'unlink'... boring stuff I wouldn't expect to change much
00:09 markstos or be the focus of much controversy.
00:10 markstos As I've found, a few parts of it are already implemented, based on the P5 spec, I guess.
00:12 obra are chown and unlink going to actually be core primitives in p6?
00:13 markstos Jesse, I was just looking at the list under S12, found here:
00:14 markstos (clipboard trouble. one moment. )
00:14 markstos http://feather.perl6.nl/syn/​S29.html#Pending_Apocalypse
00:14 lambdabot Title: S29, http://tinyurl.com/zsx4l
00:15 markstos I don't really have an opinion one way or the other. I've just being trying to connect tests with specs.
00:15 markstos If S16 started to exist, it would clear that up.
00:15 svnbot6 r13250 | audreyt++ | * Change Pugs.Val.Code.Param.p_variable from ID to Var
00:15 svnbot6 r13250 | audreyt++ |   so that my p6l reply to gaal++ would actually make sense. :-)
00:15 svnbot6 r13250 | audreyt++ |   Also unify the Var type from both oldLand and newLand;
00:15 svnbot6 r13250 | audreyt++ |   augmentation of Var should take place in Pugs.Types.
00:16 markstos Anybody know where this is spec'ed?
00:17 markstos ?eval my $a1 = my    $b1 = 42;
00:17 evalbot_r13235 is now known as evalbot_r13249
00:17 evalbot_r13249 \42
00:18 audreyt operators spec, S03:1102 "Declarators"
00:18 audreyt but not really. "it works as in perl5"
00:19 clkao audreyt: morning!
00:19 markstos thanks audreyt: reviewing now.
00:20 audreyt greetings
00:20 markstos audreyt: how can #perl6 team be most helpful to prepare for the upcoming release?
00:20 audreyt markstos: look at failing tests; determine if the tests has been typo'ed or otherwise bogus
00:20 audreyt that, and changelogging :)
00:21 markstos audreyt: Is the best source for failing tests, smoke.pugscode.org ?
00:21 audreyt right, or your local smoke.html
00:21 markstos And should all failing tests be marked as :todo<something> right now ?
00:21 markstos if they are legit failures?
00:21 audreyt if they are legit regressions
00:22 audreyt (you can tell by the failures occuring at the end of tests)
00:22 audreyt then leave as failing
00:22 audreyt s/at the end/_not_ at the end/
00:22 audreyt if they are newly added
00:22 markstos So anything at the worked for the last release, should work for this release, too. :)
00:22 audreyt then yes, :todo<feature> as needed
00:22 audreyt yes. that's the rule we've been oeprating under
00:22 markstos Got it.
00:22 audreyt "no regressions, but plenty of todos"
00:23 markstos And is the rumor true that you have a big OO commit once the release is out?
00:23 clkao iirc there was somehting about backend-spcific todos
00:23 audreyt markstos: integrating nothingmuch's work, yes.
00:24 audreyt still not clear if we should two it over two passees
00:24 audreyt one for 6.4-compat bits
00:24 markstos I'll see about writing something up that explains the status and makes it easier for people to help with the release prep.
00:24 audreyt and one when 6.6 bindist comes out
00:24 markstos speed!
00:24 audreyt or just go for 6.6.
00:24 clkao is it christmas yet?
00:24 obra agentzh: you wanted to know when jifty came out next.
00:24 obra "now"
00:24 obra clkao: yes!
00:24 audreyt I guess that depends on whether Simon & Simon actually releases 6.6 in ICFP :)
00:24 obra I've made you a gifty, cl
00:25 clkao that's for my birthday, and it's late!
00:25 audreyt *groan*
00:25 obra how about I make hotsprings exist in the UK?
00:26 TimToady I don't know of anyone who would mind if S16 leapt up out of the quantum foam.
00:26 audreyt interprocess communication?
00:26 audreyt that'd be cool
00:26 clkao ;)
00:26 obra clkao: how about I get simon cozens to hack on Perl 6 again?
00:26 clkao hehe
00:27 TimToady I coulda used some ♨ in the UK last week...
00:27 markstos TimToady: and the idea is generally to take the list of functions listed here, and have them work like Perl 5, as a base line?
00:27 markstos http://feather.perl6.nl/syn/​S29.html#Pending_Apocalypse
00:27 lambdabot Title: S29, http://tinyurl.com/zsx4l
00:28 clkao TimToady: appearantly Bath now has bathable bath
00:28 clkao since last month
00:28 TimToady well, except we're trying to rationalize everything into packages and the alias into *
00:28 TimToady *then
00:28 TimToady what, did they get amoebas again or something?
00:29 markstos TimToady: is the packages organization something important to spec'ed before implementation, or will it end up close enough to the same ?
00:30 markstos I mean, will things like 'unlink' and 'chown' which have tests already: will the syntax/loading of them change ?
00:30 frederico joined perl6
00:31 TimToady for now you can assume most of the important ones will automatically be in the * namespace.
00:31 TimToady 'course, many of them are multis, so it doesn't really matter where they are...
00:33 markstos Ok. Anyway, the doc will be labeled DRAFT at first, and if people care about a stable implementation, they can bring questions about key functions to p6l for review and assurance.
00:34 markstos I could see the process being a little organic, with the stuff people care about more stabilizing first.
00:34 TimToady audreyt: I forget what we said was the unified notation that allowed both push(@a,1,2,3) and push(@a: 1,2,3)
00:35 markstos TimToady: is there a precendent for what the S12 file name should be? IO.pod ?
00:35 TimToady was it an ordinary multi with a : on the semi-invocant?
00:36 TimToady S16?
00:36 markstos er, yes.
00:36 TimToady not that I know of...
00:37 TimToady or was it an ordinary method with a *name?
00:37 TimToady or something else?
00:46 svnbot6 r13251 | markstos++ | S16, IO.pod, springs forth from the quantum foam.
00:47 markstos TimToady:  If that looks OK to you as a Draft, you could go ahead and remove the "S16" section currently in S29, and reference this.
00:48 TimToady you could do it too.  That's why I left S29 in the clutches of pugs commiters, after all.  :)
00:50 markstos Oh, right.
00:51 TimToady and I'd much rather *give* forgiveness than permission.  :)
00:52 markstos heh
00:55 audreyt TimToady: the unified notation is
00:55 svnbot6 r13252 | markstos++ | remove section referencing S16 from S29, since we have S16 now.
00:55 audreyt method push is export
00:55 TimToady ah, right
00:55 audreyt which installs a parsetime redispatcher macro
00:55 audreyt that you can turn off using normal import notation
00:57 TimToady thanks.
00:57 audreyt glad to be of service :)
00:57 TimToady what do you think about the X metaoperator?
00:58 audreyt sorry, I missed the context
00:58 audreyt outer product?
00:58 hikozaemon joined perl6
00:58 TimToady that and a bunch of other stuff.
00:58 markstos audreyt: It was in a recent patch to p6l
00:58 TimToady see S03 diffs
00:59 markstos I thought the X metaoperator looked kinda mathy.
00:59 TimToady It's supposed to stand out a little.
00:59 markstos I had trouble thinking of a "use case" for my own work.
00:59 TimToady It has to stand up to a list.
01:00 TimToady I suspect X~ will be the most used.
01:00 TimToady but also ordinary X
01:00 markstos Yes, I think that's the part I'd be most likely to use myself.
01:00 audreyt I wonder if we are piecemeal reinventing comprehensions...
01:00 audreyt in a fragmented way, that is
01:00 TimToady for @a X @b X @c -> [$a,$b,$c] { ... }
01:00 TimToady instead of three nested loops.
01:01 markstos audreyt: "comprehensions" ? which language has that ?
01:01 markstos TimToady... on, neat.
01:01 audreyt [ a ++ b ++ c | a <- as, b <- bs, c <- cs ]
01:01 audreyt is the haskell equivalent of X~
01:01 audreyt markstos: js2, python, haskell, scala, etc
01:02 audreyt I also wonder about "X," vs "X ,"
01:02 audreyt that's one drawback of ident as metaop char
01:03 audreyt though X is indeed a good visual metaphor
01:03 TimToady for a while I had it XopX
01:03 TimToady but it was too cluttered
01:03 audreyt that's very mooselike
01:03 azr|elious joined perl6
01:03 audreyt X,X
01:03 TimToady @a X*X @b X*X @c
01:03 lambdabot Maybe you meant: all-dicts arr ask . v
01:04 audreyt though in a sense, as it's infix, circum shows no bias
01:04 TimToady well, there is bias in that the right side varies faster.  :)
01:04 audreyt yeah but it's like saying in numeric addition the right side varies faster :)
01:04 * audreyt ponders
01:05 TimToady I agree X, is a bit dicey
01:05 audreyt I think I prefer X*X and X,X really.
01:05 audreyt otherwise I tend ot see
01:05 audreyt X*
01:05 TimToady When I had it that was @
01:05 audreyt as somehow involving postfix *
01:06 TimToady X~ was X and X was XX
01:06 audreyt ugh, that would allow @@@
01:06 TimToady typo
01:06 TimToady I keep typing @ for X
01:06 audreyt mm, they are, like, next to each other on keyboard :)
01:07 TimToady on the assumption that X : XX :: x : xx
01:07 audreyt I think I'd prefer that.
01:07 audreyt X being shorthand for X~X
01:07 TimToady then for a while I had stringy as ~X, but that got really ugly with longer ones.
01:07 audreyt because if those two occur most frequent in real use
01:07 obra audreyt: how hard would it be to let declarative action subclasses modify or add arguments
01:07 zgh joined perl6
01:08 audreyt then they warrant a noiseless form
01:08 mjk joined perl6
01:08 TimToady yes, I could certainly be argued back into that position.
01:08 audreyt obra: line 121 Jifty::Param::Schema
01:09 audreyt obra: semantically, add a hook there would do
01:09 TimToady and arguably stringy would probably be more common than listy
01:09 audreyt ergonomically, I have no idea, which is why I punted.
01:09 audreyt TimToady: yup
01:09 TimToady plus the x/xx similarity
01:09 audreyt and I'm not quite sure metaop is warranted to be honest.
01:10 audreyt [*]<<([X] ...)
01:10 audreyt looks good enough to me
01:10 TimToady [*]<< gets pretty ugly
01:10 markstos yep
01:10 audreyt perhaps [X*X] ?
01:10 audreyt or [X*] ?
01:10 audreyt as a variation on the [\*] form
01:11 audreyt which is like an extra / on the [\]
01:11 TimToady doesn't have right precedence unless it's like zip
01:11 TimToady and then you need parens
01:11 audreyt yeah. so X, XX, X*X
01:11 audreyt does it make our precomposed metaop lexing explore combinatorially? :)
01:12 TimToady can still do [*]<<( @a X
01:12 TimToady etc.
01:12 TimToady XX @b XX @c ...
01:12 audreyt I don't know, this looks less general than [] and >><< still
01:12 TimToady I was wondering about that.  At some point we give up pregenerating htem.
01:13 audreyt but I think X and XX is good
01:13 * audreyt ponders about the XYX chromosomal metaoperator
01:13 audreyt I need to run in a few mins :) I think X*X can be implemented without too much hassle
01:14 audreyt and I really like it keeping *'s infix image
01:14 TimToady well, sure, it's just sugar for the hyperreduce
01:14 audreyt yup
01:14 TimToady I'll change spec back to X*X then.
01:14 audreyt and X and Xx :)
01:14 audreyt er, XX.
01:14 audreyt TimToady++
01:14 TimToady XXX would be cool too.
01:14 audreyt curiously, that means XXX XXXX XXXXX XXXXXX
01:15 audreyt are all valid
01:15 TimToady though XopX may already be dwimmy on multidims
01:15 TimToady if we really want outer product of matrices
01:15 audreyt does XXXXX parse as X twice producted
01:15 b00t joined perl6
01:15 obra audreyt: thanks
01:16 TimToady seems...exxxxxcessive
01:16 audreyt if so the precomposition is boundless
01:16 audreyt yeah. so perhaps only allow X>>X<<X and >>XXX<<
01:16 audreyt and not more layers
01:16 bsb audreyt: I agree with the list comprehensions point.  I'd prefer to generate, permute, filter and process in glue-able parts
01:17 audreyt bsb: did you see how Scala does it?
01:17 audreyt it's sheer genius
01:17 bsb no, I'll check it out
01:17 audreyt I'm pushing GHC hackathon people to add it back to Haskell (they had it in Haskell 1.3 but took it out)
01:18 audreyt bsb: http://scala.epfl.ch/intro/comprehensions.html
01:18 lambdabot Title: The Scala Programming Language: Sequence Comprehensions, http://tinyurl.com/zcv6o
01:18 azr|elious is now known as azr|el
01:18 audreyt "This example shows that comprehensions are not restricted to lists. The previous program uses iterators instead. Every datatype that supports the operations filter, map, and flatMap (with the proper types) can be used in sequence comprehensions."
01:18 audreyt aka monad comprehensions, aka LINQ combinators, aka generalized query
01:19 bsb mmmmm
01:19 TimToady Ruby's .each
01:20 fglock joined perl6
01:21 markstos Here's a page about Scala comprehensions: http://scala.epfl.ch/intro/comprehensions.html
01:21 lambdabot Title: The Scala Programming Language: Sequence Comprehensions, http://tinyurl.com/zcv6o
01:21 markstos Oh, dupe. sorry.
01:21 audreyt bsb: use case: http://scala.epfl.ch/examples​/files/simpleInterpreter.html
01:21 lambdabot Title: sources/examples/files/simpleInterpreter.scala, http://tinyurl.com/zfdh8
01:22 fglock markstos: may I paste the answers here?
01:22 audreyt bsb: specifically the "case Add" and "case App"
01:22 audreyt bsb: it looks just like... pugs internals :)
01:22 markstos fglock: sure, as long it wouldn't violate the usual conventions about how much is too much to paste in IRC.
01:23 markstos It would kind of make it "live" to have the interview on IRC, making it more fun, though.
01:23 pasteling "fglock" at 200.203.83.109 pasted "v6.pm" (63 lines, 2.8K) at http://sial.org/pbot/19652
01:24 fglock we can continue it live :)
01:24 markstos Yes. I'll "backlog" it now.
01:25 TimToady dindin &
01:27 markstos fglock; it's great! I'll post it now.
01:28 markstos Is there anything else you wanted to add ?
01:28 fglock anything you'd like to ask?
01:29 fglock I'll give a 2h tutorial on v6.pm in YAPC::SA
01:29 bsb scala comprehensions let the inner enumerator depend on the outer ones, can X? eg. $i=1..10; $j = 1..$i
01:30 markstos fglock: P6-on-P6 makes my head hurt. Doesn't there need to be binary involved for that ?
01:31 audreyt the "binary" is a perl5 file :)
01:31 audreyt perl5 source code, even.
01:31 audreyt (v6.pm uses perl5 as perl6's "object code")
01:31 markstos That's P6 on P5, which I understand.
01:31 audreyt yeah, once you have P6-on-anything you can use that to boot p6-on-p6.
01:31 markstos He said a goal is P6-on-P6, which makes my head hurt. :)
01:32 audreyt but I'll not steal fglock's thunder :)
01:32 * audreyt goes out for food and errands &
01:32 fglock one sec
01:32 wolverian http://www.virtualschool.edu/mon/Softwa​reEngineering/BrooksNoSilverBullet.html -- good article (and old :)
01:32 lambdabot http://tinyurl.com/78m2l
01:32 markstos So the Perl 6 script is run the Perl 6 compiler, which may be a script that runs a Perl 5 binary ?
01:33 clkao fglock: if i go to yapc::sa, do i get to talk on some stuff?
01:33 NamelessOne joined perl6
01:33 fglock clkao: it would be great if you could give a talk
01:33 fglock markstos: when you compile p6 to p5, you get a .pmc
01:34 fglock p6-on-p6 will have a bunch of p5 pmc files
01:34 clkao fglock: will let you know once i decide
01:35 fglock if you modify the p6 source, it will regenerate the pmc
01:35 markstos But it could run as a fast as "Perl 5 speeds", because of the PMC files ?
01:35 fglock clkao: great
01:35 fglock markstos: yes
01:35 markstos Got it. It may be a little slower because of the extra layers, but computers may be a little faster. :)
01:36 fglock perl5 will "see" only the pmc files, but once a p6 source is modified, then the compiler is called again
01:37 fglock pmc files don't have the extra layer - they don't even have a "use v6-alpha" line
01:37 weinig joined perl6
01:37 markstos Got it (But they are additional abstraction in some cases, like using Sub::Multi/Data::Bind, etc)
01:37 markstos Another question: How hard is it to add additional language features ?
01:38 fglock markstos: re features - you pay for what you use
01:38 markstos Is there any part of Perl 6 that you say as "impossible" to implement this way?
01:38 markstos fglock: I see what at you are saying: If you don't use Sub::Multi, it is never loaded.
01:38 fglock mmm
01:39 markstos s/say/see/
01:39 fglock some perl6 features might be slow in perl5 - like coroutines
01:39 fglock but not impossible
01:40 markstos Cool.
01:43 fglock markstos: some features were already implemented in pil-run, which was the previous p6-on-p5 - they just need to be "ported" to v6
01:43 fglock like junctions
01:44 fglock and lazy lists
01:46 markstos bbiab
01:46 fglock clkao: you may come even if you don't give a talk :)
01:46 clkao heh
01:47 fglock food &
01:47 fglock left perl6
02:07 vel joined perl6
02:09 markstos The interview with fglock has been published: http://pugs.blogs.com/pugs/2​006/09/status_report_p.html
02:09 lambdabot http://tinyurl.com/fa5ct
02:10 markstos next I'll write up audrey's notes on the release status and and how to help, and then also perhaps one bring attention to S16, and the need to help flesh it out.
02:10 markstos But at the moment, I think I'll sleep
02:11 markstos left perl6
02:16 weinig is now known as weinig|zZz
02:23 zgh joined perl6
02:46 mako132_ joined perl6
02:56 prism joined perl6
03:02 Khisanth hmm
03:02 Khisanth who was it that said doing a svk sync is very intensive for the svn server?
03:04 mugwump isn't that if you're skipping revisions?
03:12 mako132_ joined perl6
03:29 jdv79 apoc 5 is the best doc on p6 rules and grammars?
03:32 mugwump I liked the treatment in _Perl 6 and Parrot essentials_ more
03:33 jdv79 any idea what's the most  complete implementation is so far?
03:34 svnbot6 r13253 | putter++ | Prelude.pm - cosmetic reordering of methods in Num.
03:34 jdv79 id like to start foolin around with em
03:37 jdv79 is everyone asleep or busy hacking:)
03:37 jdv79 i remember it being noisier in here in the past
03:44 Khisanth you scared everyone away!
04:07 dj_goku joined perl6
04:08 mugwump jdv79: afaik all three of pugs, pge and Pugs::Compiler::Rule are fairly developed
04:42 gaal jdv79: Syn 5.
04:43 gaal who asked for a moose metaoperator? ╙*╜
04:52 svnbot6 r13254 | putter++ | t/xx-uncategorized/S29_spec.t - Created.  Some failing tests from the top of S29.
04:54 gaal audreyt, TimToady: :($ : $x) is precisely what I had been parsing :(: $x) as. I need to think about this some more to figure out a predictive parsing strategy - there's already a comment in the code about how I'm unhappy with the first param being parsed twice...
05:05 bsb gaal:  what does the meta-moose do?
05:06 gaal "what would you like it to do?" }:)
05:07 bsb kinda looks like it forks...
05:07 gaal hmm, you can't define metaoperators in Perl 6, can you?
05:07 gaal I mean new ones.
05:08 bsb not that I know of
05:08 bsb yet
05:14 BooK__ joined perl6
05:14 MacVince Does Perl 6 have exceptions?
05:14 MacVince With a try/catch block?
05:15 gaal yes. "die" throws, CATCH blocks catch
05:15 gaal try { } protects against propagation
05:15 mugwump gaal: S06 lists infix_prefix_meta_operator:<!>, prefix_circumfix_meta_operator:{'[',']'}, etc
05:15 gaal note that unlike most other languages with exceptions, the CATCH block lives *inside* the block throwing.
05:16 MacVince inside?
05:16 gaal MacVince: instead of try { die "" } catch { "oh la la" }...
05:16 gaal try { die "" CATCH { ... } }
05:16 gaal in fact, if you have a CATCH block, the 'try' is optional.
05:17 MacVince ok
05:17 MacVince Well, from a first look, that looks weird, but I can probably get used to it :)
05:17 gaal MacVince: this is in line with many other closure traits that Perl 6 offers.
05:18 gaal also, the scoping rules are probably clearer
05:33 f0rth joined perl6
05:33 svnbot6 r13255 | putter++ | pi() is now more like spec.  I'm trying to get it right, as a way of shaking down Prelude.pm and Prim.hs problems.
05:33 svnbot6 r13255 | putter++ | Prim.hs - "pi" renamed "Pugs::Internals::pi".  Surprisingly, it no longer works in this form!  Now yields {obj:Code::Exp}.
05:33 svnbot6 r13255 | putter++ | Prelude.pm - Added Math::Basic::pi, S29.  I would have liked to ::= Pugs::Internals::pi, but with that not working, a literal value is used.
05:33 svnbot6 r13255 | putter++ | Prelude.pm - Added *pi(), for backwards compatibility.  This is non-spec. S29 says  use Math::Basic :constants  is needed to get pi.  That's next.  I would have liked to ::= Math::Basic::pi, but that wasn't working in the Prelude.
05:49 corpse joined perl6
06:06 marmic joined perl6
06:15 NamelessOne left perl6
06:18 kanru joined perl6
06:34 scw joined perl6
06:48 perlbot joined perl6
06:58 mdiep joined perl6
07:02 prefiks joined perl6
07:14 kane-xs joined perl6
07:17 iblechbot joined perl6
07:20 gaal audreyt: regeneralized comrehensions would be evry interesting!
07:24 SCalimlim joined perl6
07:25 nothingmuch moose
07:25 [mago] joined perl6
07:35 gaal caribou!
07:38 prefiks left perl6
07:39 lumi Klipspringer
07:47 Schmooster caribou....that's what I was trying to remember
07:48 Schmooster Elk!
07:49 Schmooster audreyt, next time you're about, congratulations on the place in the Dynamic Languages Symposium, and good luck :)
07:58 bsb night &
07:58 bsb left perl6
08:10 joshmoore joined perl6
08:14 audreyt Schmooster: thanks! (/me goes back to napping)
08:14 audreyt Schmooster: you goig to OOPSLA/DLS too?
08:14 zakharyas joined perl6
08:16 wolverian http://www.says-it.com/seal/index.php DIY seals - example: http://www.cs.helsinki.fi/u/ivacklin/seal.gif
08:16 lambdabot Title: Official Seal Generator
08:21 gaal that's a moose, not a seal...
08:37 notThis joined perl6
08:41 nothingmuch now *this* is an official moose seal: http://nothingmuch.woobling.o​rg/p-seal-at-toronto-zoo.jpg
08:41 lambdabot http://tinyurl.com/fwflk
08:42 nothingmuch one might be tempted to make a mashup out of this type of seal: http://www.bbcresources.com/images/seal.jpg
08:42 nothingmuch however, this variety has gone out of fashion
08:42 nothingmuch and is unlikely to raise moose awareness
08:45 gaal nothingmuch: the mime type on that jpg looks wrong... i get a page with the url itself on it.
08:46 gaal ah no
08:46 gaal tricky moose.
08:50 lumi Your jpg seems to kill my viewers
08:51 lumi Your jpg is bork, I think
08:51 TreyHarris works fine for me
08:51 TreyHarris maybe it's one of those mac-only jpg's. lol
08:52 lumi (those exist?) I'm on Linux here
08:53 TreyHarris i was kidding.  though it's possible, there are certainly mac-only and win32-only mov's and avi's.  (not intentionally, i don't think, just by dint of the codecs not being correctly interoperable)
08:53 TreyHarris or, in some cases, by dint of the codecs being correctly uninteroperable...
08:54 TreyHarris my god, my pugs is almost 36 hours out of date.  how could i have let this happen?? :-)
08:59 notThis joined perl6
08:59 mj41__ joined perl6
09:00 notThis is now known as timbunce
09:09 mugwump joined perl6
09:18 elmex joined perl6
09:19 nothingmuch lumi: try now?
09:21 lumi nothingmuch: No, still bad
09:22 lumi display won't show it, and it actually crashes KDE's imagey things
09:31 timbunce joined perl6
09:33 f0rth joined perl6
09:52 timbunce joined perl6
09:54 ruoso joined perl6
10:09 MacVince_ joined perl6
10:09 nothingmuch lumi: odd
10:10 nothingmuch lumi: how about now?
10:11 lumi Works!
10:11 lumi Your jpeg2000 encoder's bork I guess
10:11 lumi Or alternately, my decoder(s?) are
10:14 ludan joined perl6
10:14 buetow joined perl6
10:14 jferrero joined perl6
10:16 nothingmuch lumi: i didn't mean to do it as jpeg2000
10:16 nothingmuch i would bet on the latter
10:17 nothingmuch since it did work for some of us
10:17 nothingmuch but *shrug*
10:17 nothingmuch who uses that anyway
10:20 nothingmuch is there a nice perl idiom for reversing the nesting order of a hash of hashes?
10:21 nothingmuch that is, if i have { a => { 1 => "foo", 2 => "bar" }, b => { 2 => "gorch" } } i'd like { 1 => { a => "foo" }, 2 => { a => "bar", b => "gorch" } }
10:33 krunen joined perl6
10:34 [mago] joined perl6
10:41 gaal [.{}] reverse flatten_nesting %h
10:41 gaal where flatten_nesting not included
10:44 Juerd [] doesn't work for postcircumfix. You have to alias and get an infix
10:44 Juerd my &infix:<dehash> ::= &postcircumfix:<{ }>;
10:44 Juerd [dehash] flatten_nesting %h
10:44 Juerd Oh, with reverse.
11:05 gaal that's enhash
11:06 gaal oh
11:06 gaal oh
11:06 gaal [=>] reverse [dehash] %h
11:15 gaal nothingmuch: moose?
11:16 kane-xs_ ls
11:17 gaal . ..
11:17 kane-xs_ ya ya, it's a ww
11:17 kane-xs_ move along now, nothing to see
11:19 gaal hm this doesn't do quite what nm wants, he has more than one path.
11:21 nothingmuch gaal: moose!
11:21 nothingmuch gaal: that's perl 6
11:21 nothingmuch i meant perl 5
11:21 nothingmuch nevermoose, i did it with a loop
11:25 markstos joined perl6
11:25 gaal 1. implement Inline::GHC
11:25 gaal 2. write it in Haskell
11:27 nothingmuch heh
11:27 gaal that must be our most popular module that doesn't exist
11:28 nothingmuch *nod*
11:33 svnbot6 r13256 | markstos++ | Add link to new S16.html from syn/index.
11:33 svnbot6 r13256 | markstos++ | (May neeed help from agentzh to make the link work).
11:34 frankg joined perl6
11:38 markstos audreyt: I looked up S03:1103, but I don't see where it describes that 'my' and other declarators can be used on the RHS
11:38 markstos I see no example like this : my $a1 = my    $b1 = 42;
11:39 markstos or gaal, perhaps you know... I cee you contributed to this test file as well.
11:39 markstos [t/var/chained.t]
11:42 markstos Also, that test exercises "let", "env" and "temp", none of which are in the list of valid Declarators in S03.  Something is out of sync.
11:55 iblechbot joined perl6
11:58 markstos left perl6
12:04 Limbic_Region joined perl6
12:06 iblechbot_ joined perl6
12:20 gaal hm, now that param decl is unified with callconv, this may be an issue
12:20 nothingmuch @tell audreyt attribute grammars have landed in MO
12:20 lambdabot Consider it noted.
12:22 Limbic_Region she sleeping or just AFK?
12:22 * Limbic_Region had a dream about her last night
12:23 Limbic_Region odd as that may be - it is even more odd considering I had a dream a few weeks back about other folks I know from the net - both involved bad driving
12:37 weinig joined perl6
12:51 gaal should :(: $x) stringify as :($ : $x)? or can the $ be omitted like I omit other hints when they are not required?
12:51 gaal (assuming omitting is OK...)
12:52 audreyt gaal: :(: $x) is perhaps illegal
12:52 lambdabot audreyt: You have 1 new message. '/msg lambdabot @messages' to read it.
12:52 audreyt lambdabot: @messages
12:52 lambdabot nothingmuch said 31m 38s ago: attribute grammars have landed in MO
12:52 audreyt ooh
12:52 gaal oh, so need the explicit $ ?
12:53 audreyt Limbic_Region: I was afk. accidentally killed off an entire afternoon/evening's productivity
12:53 gaal ok
12:53 Limbic_Region oh no
12:53 gaal I still don't know how to deal with the predictivity predicament
12:53 audreyt by taking weird drugs without first consulting its side effects ;) (it's meant to be taken before sleep, apparently)
12:54 Limbic_Region well, you need rest so I guess it was a fortunate accident
12:54 audreyt true, which means I'll be sleeping in but a few mins, too... still feeling kinda dizzy; it's better than jet lag though.
12:54 Limbic_Region if you are interested in the dream, you were driving (which you were nervous about) and didn't know how to properly go through standing water on the road
12:54 audreyt gaal: what makes it impredictit again?
12:54 Limbic_Region you ended up causing the car to spin in circles 3 times - at which point I offered to drive
12:55 gaal see the comment above inv <- in ruleParam
12:55 Limbic_Region you felt extremely embarrased and offered to get one of the old cars you had lying out in the field
12:55 Limbic_Region I ended up driving - to a campus of some sort
12:55 Limbic_Region odd huh
12:55 audreyt gaal: well first you remove the first case
12:56 audreyt and then do a parse over ruleParam
12:56 gaal because :(:) is illegal?
12:56 audreyt if it's not there, you have (Nothin, []) as (inv, params)
12:56 audreyt yes
12:56 audreyt if it's there, you then look for lexeme char oneOf ",:"
12:56 gaal :(:) was a mood disorder anyway
12:57 audreyt and if it's :, you know it's inv, and parse as needed
12:57 audreyt in either case the rest is sepby lexeme char '.'
12:57 audreyt and if the oneOf ",:" is not foudnd, you have (Nthing, [first]) as (iv, params)
12:57 audreyt this can probably be abstracted away massively, but it's entirely predictive
12:57 gaal . !?
12:58 audreyt Limbic_Region: yeah, odd ish :)
12:58 audreyt Limbic_Region: have we met in person?
12:58 agentzh joined perl6
12:58 Limbic_Region no
12:58 gaal I can personally witness to no fault in audreyt's driving
13:00 rodi joined perl6
13:00 * Limbic_Region rarely dreams of himself at all and when he does - it is almost never with people he knows - and on those rare occasions that he does dream of himself and people that he knows - it is even rarer that it is in the present (usually from highschool)
13:00 agentzh markstos: you're adding smartlinks for IO.pod?
13:00 agentzh oh, he's not here.
13:00 Limbic_Region so it struck me as extremely odd - I dreampt about castaway (theorbtwo's SO) driving (badly I might add) a few weeks ago too - but I have met both of them in person on 2 occassions
13:01 audreyt gaal: in any case I implemented it, committing
13:01 agentzh to use pugs' perl 5 embedding, i need 5.8.8, to use jifty, i was told *not* to use 5.8.8 since it's "too new". :)
13:01 gaal hm ok i had an unrelated fix coming, nm will merge
13:02 gaal what do you call parsec w/o try? LL(1)?
13:02 agentzh LL(1)? oh my god...
13:02 audreyt yes
13:03 svnbot6 r13257 | audreyt++ | * Pugs.Parser: Predictive parsing for signature literals.
13:03 gaal I may have asked this here before, but is there a chart somewhere comparing parsert classes?
13:03 agentzh i was told that LL(1) is very weak. :)
13:03 lumi I think wikipedia had a decent writeup..
13:03 gaal audreyt: but fast.
13:03 gaal anyway, thanks audreyt for the last commit!
13:04 gaal audreyt: btw how come defaultInvocantParam wasn't broken for you? I had to add a varNullScalar to Types
13:05 audreyt I don't know :)
13:05 gaal touch Pugs.Val after vi Pugs.Val.Code...
13:06 audreyt *nod*
13:06 gaal pine, pine pine for the fnordy 6.6...
13:07 lumi gaal: Maybe there should be build dependencies on the included Pugs.Val.*?
13:07 Limbic_Region well, we could always branch Pugs
13:07 Limbic_Region merge when 6.6 binaries become available to most common platforms
13:07 gaal lumi: problem it's handled by ghc --make
13:07 audreyt I bet gaal had a local branch already :)
13:07 gaal yeah
13:08 agentzh @tell markstos according to the current implementation of smartlinks.pl, L<S16> is not a valid smartlink; you need at least a section name here.
13:08 lambdabot Consider it noted.
13:08 gaal audreyt: is my $x = my $y = .. a problem now that vardecls are sigs?
13:09 [particle] joined perl6
13:09 Yappo joined perl6
13:10 audreyt gaal: no it is not
13:10 lumi gaal: I guess ghc -M isn't useful?
13:10 audreyt decl in either side of assignment behave as simple list
13:11 audreyt or rather, more generally, sigs do that.
13:11 audreyt that is you can have :($x, $y) = 1,2,3.
13:12 audreyt that's at lhs
13:12 audreyt at rhs, declarator evalates to the values, not a signature literal
13:12 audreyt my $x = my :($y);
13:12 audreyt is not
13:12 audreyt my $x = :($y)
13:12 audreyt but
13:12 svnbot6 r13258 | agentz++ | [util/smartlinks.pl]
13:12 svnbot6 r13258 | agentz++ | - added S16 (IO.pod) to the synopsis list.
13:12 svnbot6 r13258 | agentz++ | to make smartlinks.pl to generate HTML file for S16,
13:12 audreyt my $x = $y
13:12 svnbot6 r13258 | agentz++ | however, there need to be at least one *working*
13:12 svnbot6 r13258 | agentz++ | smartlink in the test suite.
13:12 gaal lumi: not unless we want to preprocess them and add even more complexity to the build system...
13:13 audreyt this is, however, extremely underspecced, and only intuitable from examples
13:13 audreyt patches welcome etc :)
13:13 audreyt actually, the Sig-at-lhs is not intuitable, so it remains conjectural
13:13 audreyt but I think it's more consistent that way.
13:13 gaal I have a patch attempt that turned into a warnocked p6l post about paramdecl/sigs, so I'll pass for now...
13:14 audreyt "Unpacking tree"?
13:14 gaal yeah, I think so.
13:15 gaal so my :(complex_sig1) = my :(complex_sig2) will just work?
13:15 gaal that's groovy but scary.
13:16 gaal huh wait, what if it's both rhs and lhs?
13:16 gaal ... = my :($x) = ...
13:16 gaal "middle hand side"
13:17 audreyt @tell TimToady can you take some cycles and dewarnock gaal's Unpacking tree thread? I think my S03 patch (r11725) answers that, but both my patch and gaal's interpretation would benefit form some sanity checks..
13:17 lambdabot Consider it noted.
13:17 lumi gripping hand side?
13:17 audreyt gaal: like any middle hand side it's evaluated twice.
13:17 gaal both hand side!
13:17 gaal that's almost a Joni Mitchell song
13:18 [particle] [=] @array_of_complex_sigs;
13:18 gaal heh
13:18 gaal but no, it's when you want to decl them too
13:18 [particle] oh, my :)
13:19 gaal "array_of_complex_sigs" is a prosodically satisfying phrase.
13:19 Limbic_Region in ghc, is there an english way I should be reading type signatures the fat arrow and the skinny arrows in particular?
13:19 * gaal can't think of any iambic trimeter poems right now...
13:20 gaal but it's common enough, with caesura, in pentameter
13:20 Limbic_Region lumi - if you are not familiar with the gripping hand - check out the jargon file
13:20 gaal Limbic_Region: "=>" is sorta "such that"
13:21 gaal Limbic_Region: I can't think of a good englishification of ->.
13:21 audreyt "maps into"
13:21 Limbic_Region gaal - am re-reading ch. 4 in YAHT cause I don't think I fully got it
13:21 gaal but for a simple example:
13:21 Limbic_Region I was able to understand the examples but I didn't do a good job of generating my own in the examples
13:21 gaal (+) :: Num a => a -> a -> a
13:21 Limbic_Region when I get to one that I had trouble with - I will ping again (assuming a haskell speaking person is around - else will pop over to #haskell)
13:22 gaal for numeric a, the function has type a -> a -> a
13:22 Limbic_Region well - you still have a lot of symbols and not enough english in there
13:23 Limbic_Region gaal - why is it a -> a -> a and not a -> a
13:23 gaal the easiest way to begin with -> is to treat it like an arg separator, with the convention that the last one is the return value.
13:23 agentzh LR: haskell is like maths instead of english. :)
13:24 audreyt for any type X in the Num type class, this function takes a value of type X, and returns a function that takes another value of type X, and then return a value of type X.
13:24 Limbic_Region I understood that from context
13:24 gaal (+) x y = z
13:24 Limbic_Region but I still am having a hard time thinking of it in english
13:24 gaal they are all Num
13:24 gaal including the return value z
13:24 audreyt what's more, then are all of the same type.
13:24 gaal and the same num
13:24 gaal right
13:24 Limbic_Region agentzh - yes, I know - but I am trying to find devices that will help me "get" the language
13:24 agentzh LR: :)
13:24 fglock joined perl6
13:25 * agentzh is writing a toy haskell program which solves a quadratic equation.
13:25 Limbic_Region that I think I could do quite easily agentzh
13:25 Limbic_Region I am not having a hard time slinging code to get desired results
13:25 gaal Limbic_Region: audreyt points out the pretty profound principle in haskell that all functions are basically unary
13:25 agentzh LR: there're error handling though.
13:25 Limbic_Region I am having a hard time understanding it
13:25 gaal except if they're nullary :)
13:26 Limbic_Region ;-)
13:26 gaal so for now just thing of it this way
13:26 gaal 1. drop off the last element
13:26 Limbic_Region that's the return - yes
13:26 gaal 2. s/->/, /g
13:27 gaal (+) :: some Num type, the same Num type, returns the same Num type
13:27 Limbic_Region ok - so if I am reading you correctly then
13:27 gaal or let's take a different example:
13:27 gaal @type length
13:27 lambdabot forall a. [a] -> Int
13:27 gaal ignore the forall
13:27 Limbic_Region (+) :: (Num a) => a -> a -> a
13:27 gaal length :: [a] -> Int
13:28 Limbic_Region wait
13:28 Limbic_Region let me work this out
13:28 gaal ok
13:28 Limbic_Region (+) :: (Num a) => a -> a -> a
13:28 Limbic_Region start with "returns type a" allowing the last -> to be dropped
13:28 Limbic_Region saving it away for later
13:29 Limbic_Region turn any -> into commas which indicate the number of parameters
13:29 Limbic_Region both of the same type
13:29 gaal (brb, phone)
13:29 Limbic_Region the thing on the left hand side of the fat arrow is defining the specific type of a
13:29 [particle] looks like 'a' is an alias for 'Num'
13:29 Limbic_Region so, given to numerical values of the same type, return a numerical value of that type
13:29 lumi Not the specific type, it just constrains it to a typeclass
13:30 Limbic_Region lumi - I am interchanging typeclass and type here
13:30 Limbic_Region I know that is not correct
13:30 audreyt [particle]: Num corresponds to a role in perl6
13:30 Limbic_Region but that's cause I am not thinking of static typing
13:30 audreyt Num is an interface that various concrete types can satisfy
13:31 Limbic_Region yes - I get that part no problem
13:31 audreyt as long as they provide simple things like "negate" and "abs" etc
13:31 Limbic_Region ok, so I think I can now look at the type signatures and translate them into verbal tags
13:31 ofer0 joined perl6
13:32 Limbic_Region which theoretically means I can take words in my head and make type signatures out of them
13:32 Limbic_Region no longer read-only - thansk
13:32 Limbic_Region thanks even
13:32 audreyt Limbic_Region++
13:32 * audreyt goes to catch some more sleep *wave* :)
13:32 Limbic_Region sleep well - and don't crash any cars in your dreams
13:33 audreyt I'll think of square roots of giraffes instead
13:36 Limbic_Region gaal - when you are off the phone, I have a question for you
13:37 Limbic_Region let's say I wanted to create an add_op which was smarter than (+)
13:38 Limbic_Region in that both sides of the op inlined with `add_op` do not have to be of the same type
13:38 Limbic_Region what would the signature for that look like?
13:39 [particle] say, using Num and Str for example? or Foo, or Whatever.
13:39 Limbic_Region I am thinking I would need multiple signatures
13:39 * [particle] watches and learns
13:41 Limbic_Region particle - there is already some magic going on because of the typeclass
13:41 Limbic_Region I am intentionally removing that magic to see what the signature would look like
13:42 Limbic_Region for instance - haskell has no problem handling 3 + .1415926535897932384626433
13:42 Limbic_Region because both sides are of the typeclass Num
13:42 Limbic_Region and there is some internal wrangling to decide that a float should be returned and not an int
13:42 [particle] right, as audreyt said, typeclass is ~~ perl 6 role
13:43 lumi That's in the parser
13:43 Limbic_Region my question is what would the signature look like if instead you had done something like let x = 3::int and y = .14 :: float
13:43 lumi Well, soon after, something like fromIntegral
13:44 Limbic_Region and then did - x `add_op` y
13:44 lumi You want.. add_op :: (Num a, Num b) => a -> b -> a
13:44 lumi or sth?
13:44 lumi What should be the return?
13:44 Limbic_Region nope, that's it
13:44 Limbic_Region and is what I was thinking
13:45 Limbic_Region except that they are not in Num anymore are they
13:45 Limbic_Region so it would be something like add_op :: (Int, Float) => a -> b -> b
13:45 dakkar joined perl6
13:45 Limbic_Region except that expects a certain ordering
13:46 lumi Limbic_Region: You put types where constraints should be
13:46 Limbic_Region so my assumption that I would need multiple signatures is the question really
13:46 lumi You want just: add_op :: Int -> Float -> Float -- ?
13:46 Limbic_Region ahhh
13:47 Limbic_Region so that would mean it doesn't matter if I did y `add_op` x or x `add_op` y ?
13:48 lumi I don't quite understand.. You want to do (1 :: Int) `add_op` (1 :: Float) or the other way around, freely?
13:48 lumi And for it to have the same return type?
13:49 Limbic_Region lumi - forget floats and ints for a second as I think I am complicating things by mangling something haskell automatically handles
13:49 lumi What do you want to happen?
13:49 Limbic_Region let's say I have a function that can take two different types (neither of which is part of a typeclass) in any order
13:50 lumi Functions can't take things in any order
13:50 Limbic_Region and return one of those two types
13:50 putter joined perl6
13:50 Limbic_Region lumi - I thought so, so multiple signatures
13:50 Limbic_Region ?
13:50 lumi Oh, a -> b -> Either a b maybe?
13:51 lumi The 'maybe' doesn't belong in the signature (sorry)
13:51 Limbic_Region yeah, I knew what you meant - though maybe is a type too ;-)
13:51 putter mugwump: details?  no.  Perhaps v6 has some p6 on CPAN.  I don't know what else might.
13:51 lumi Limbic_Region: No, Maybe is a type :P
13:51 Limbic_Region what I think I am really getting at here is multi-function dispatch
13:52 lumi You can get that with typeclasses
13:52 Limbic_Region ok, so I define a typeclass that contains both the types I want to handle
13:52 Limbic_Region the signature gets simplified
13:52 lumi This could get really tricky really fast
13:53 Limbic_Region and the underlying code of the function needs to be told what specifically to return
13:53 lumi No... you have to know what to return, for the signature
13:53 Limbic_Region I can see doing it that way - but I still am interested in if multiple signatures for a function is allowec
13:53 lumi "no" except using typeclasses
13:53 Limbic_Region lumi - the signature will be the typeclass
13:54 audreyt class Addable a b c | a b -> c where
13:54 audreyt    add_op :: a -> b -> c
13:54 audreyt instance Addable a b c => Addable b a c where
13:54 putter re dreams, sigh.  I get code reviews of things written day before.  ;)
13:54 audreyt    add_op = flip add_op
13:54 Limbic_Region or rather, the return in the signature will be the typeclass
13:54 [particle] Limbic_Region: you seem to be wondering if (a|b) -> (a|b) -> (a|b) is allowed
13:54 Limbic_Region particle - close
13:54 Limbic_Region (a|b) -> (a|b) -> b
13:54 putter ?eval sub f($a,$b){$a+$b}  f(4 xx 2)
13:54 evalbot_r13249 is now known as evalbot_r13256
13:54 evalbot_r13256 Error: No compatible subroutine found: "&f"
13:55 Limbic_Region particle - the return type will always be the same regardless of arg positions
13:55 lumi Limbic_Region: See audreyt++'s class example :) But that uses fundeps
13:56 Limbic_Region yeah yeah - what I really should be doing is continuing to push through YAHT without trying to get ahead of it
13:56 Limbic_Region that's what gets me into trouble
13:56 Limbic_Region now that I have a working signature to english, english to signature transformer in my head I think I can fully grok the rest of the chapter
13:56 lumi Yeah, don't switch from functional to logic programming in mid-tutorial
13:57 Limbic_Region I have mandatory civil rights training in a few minutes anyway
13:57 [particle] this is what you do in case you lose your civil rights?
13:57 Limbic_Region yay for the smoke results btw - more tests, more passes, less failures
13:57 Limbic_Region particle - is that a serious question?
13:58 [particle] no
13:58 Limbic_Region ok, in that case I am off
13:58 putter ?eval  4 xx 2
13:58 evalbot_r13256 (4, 4)
13:58 * Limbic_Region pokes [particle] about util/yaml_harness.pl before leaving though
13:58 [particle] haven't had a chance yet, sorry
13:58 putter ?eval sub f($a,$b){$a+$b} f(2,2)
13:58 evalbot_r13256 4
13:58 putter ?eval sub f($a,$b){$a+$b} f( (2,2) )
13:59 * [particle] is working on pge test harness refactoring
13:59 evalbot_r13256 Error: No compatible subroutine found: "&f"
14:00 putter My fuzzy recollection was argument lists were list context which flattened lists in them.  No?
14:03 audreyt it is not so.
14:03 audreyt $a and $b gives item context each
14:03 audreyt only *$x and *@y gives flattening contexts.
14:03 audreyt your desired semantics is
14:03 audreyt f([,] 4 xx 2)
14:04 audreyt which will be supported as soon as normal runcore switches to use new-land Capt and Sig semantics
14:04 putter Ah, ok.  My thanks.  So much for dream code reviews. ;)
14:07 TimToady rehi
14:07 lambdabot TimToady: You have 1 new message. '/msg lambdabot @messages' to read it.
14:07 svnbot6 r13259 | putter++ | t/xx-uncategorized/S29_spec.t - bugfix.
14:09 cjeris joined perl6
14:10 weinig is now known as weinig|bbl
14:13 apple-gunkies joined perl6
14:15 TimToady audreyt: yes, the intent was that my Dog ($fido, $spot) distribute.
14:16 TimToady use case: my Int ($x, $y, $z)
14:17 BooK joined perl6
14:17 xdg joined perl6
14:19 putter Hmm.  Say a file M.pm contains sub *f() is export {3}.  You then see f when you  use M;.  Is there an _inline_ equivalent of M.pm?   Ie, declare a module M which isnt imported until used?  module M { sub &f() is export {3} } smashes f immediately...
14:20 putter ok, that was confused.  got it.  tnx.
14:23 gaal that was kind of a long call
14:23 gaal but sorry, can't stay
14:25 svnbot6 r13260 | gaal++ | * expose a build break and fix it (#include--)
14:25 svnbot6 r13260 | gaal++ | * positionals are not required named args
14:25 svnbot6 r13260 | gaal++ | * print, but not parse, :($ :)
14:25 svnbot6 r13260 | gaal++ | * add the desired sig to test description, to ease analysis
14:25 svnbot6 r13260 | gaal++ |   of parsefails.
14:26 dakkar_ joined perl6
14:26 dakkar_ is now known as dakkar
14:28 awwaiid joined perl6
14:30 putter since I'm 0 for 2 this morning, could I get someone to reality check me on the following.  Math::Basic is a module.  Some of it is always available, some only on use().  Two deisign optionis.  Prelude.pm could require() a normal Basic.pm.  Slow.  Or Prelude could contain the always available (like now), and Basic be
14:30 pasteling joined perl6
14:31 putter err, "fake"?, ie, it's development coordinated with Prelude, with it only containing the at request stuff (eg, pi()).
14:32 putter Given the effort to make the Prelude go fast, the second option seems preferable.
14:32 putter Perhaps create an ext/Pugs-Prelude/  to contain a Math::Basic with these somewhat odd properties.
14:32 putter Anyone have any thoughts?
14:33 pmurias_ joined perl6
14:33 putter s/effort/effort invested/
14:33 gaal putter: if some of it is always in, then it sohuld be part of the prelude and be precompiled.
14:34 gaal whether the code lives in the file Prelude.pm or in some other pm file is... technical
14:34 putter ;)
14:34 gaal we actually have a (somewhat hacy) way of catting together files for the prelude!
14:35 putter so is there some way to create a Foo.pm that gets so catted, but still behaves normally if the user use()s it?
14:36 pmurias_ gaal: does it get catted on the AST or source level?
14:36 dakkar_ joined perl6
14:36 gaal pmurias_: source.
14:37 gaal but that's before compilation.
14:37 gaal putter: yes. modulo possible bugs with %*INC...
14:38 gaal putter: look at config.yml for where to put it
14:38 gaal i have to go now, good luck! :)
14:38 putter gaal: great.  my thanks for your help. :)
14:39 gaal wish there could be more of it
14:39 gaal (my help, not your thanks :)
14:39 gaal &
14:39 putter lol
14:41 lollan joined perl6
14:57 putter audreyt: ping?
14:57 elmex joined perl6
15:00 putter audreyt: pugs design guidance question.  Couple of options.  Motivated by it seeming undesirable that a Math::Basic.pm get use()d, and loaded, by Prelude, all the time.  (1) use precompiled_modules, which should probably then be turned on by default.
15:01 putter Downside is it makes the precompiled_modules hackery more critical.
15:02 putter (2) Create ext/Pugs-Prelude, with a trimmed Math::Basic containing just those things users need to explicitly import, with the rest being in Prelude.pm.
15:04 putter (3) ... "putter, work on something else!".  Prelude-ification of primitives having proved a minefield in the past, perhaps it is no longer a top of the todo list objective(?), and I should leave it alone until things are more stable.
15:04 putter Any preferences?
15:07 audreyt reparse is currently cheap. 1) is most sensible and is _much_ easier with newExp (less recursive Pad bookkeeping). probably prelude should be renamed GLOBAL.pm or some such at some point. and yes I'm sleeping :)
15:08 audreyt translates to: if Prelude imports and reexports Math::Basic I think it'd get included into Prelude.pm.yml at this moment; so no special action needed.
15:09 audreyt if you feel like it, some investigation would be helpful/fun
15:09 audreyt changelogging can also use some help if you are lloking for specific something else :)
15:10 putter thanks!
15:10 audreyt *puff*
15:10 audreyt :)
15:11 lanny joined perl6
15:12 dakkar_ is now known as dakkar
15:12 agentzh i'll update some parts of the changelog.
15:13 agentzh is someone working on that?
15:14 MacVince_ is now known as MacVince
15:15 putter agentzh: not at the moment, so have at it! :)
15:15 agentzh okay!
15:20 agentzh is it okay to split "Test, Examples and Documentations" into two sections? it's bloating now.
15:22 lisppaste3 joined perl6
15:22 weinig|bbl is now known as weinig
15:22 nwc10 joined perl6
15:22 hexmode joined perl6
15:22 agentzh i think i can do a good portion of the changelog since i've been following pugs pretty closely recently. :)
15:23 agentzh especially the documentation and tests part.
15:24 [particle] s/following/changing/ :)
15:28 agentzh hehe
15:28 agentzh right
15:31 vel joined perl6
15:41 svnbot6 r13261 | agentz++ | [ChangeLog]
15:41 svnbot6 r13261 | agentz++ | - first attack (many items are added)
15:42 Daveman :o
15:49 gaal agentzh: ChangeLog says of prove6: "You can use this to run only a portion of the test suite or even a single file"
15:49 gaal I don't understand the 'now'.
15:49 gaal you could do that with prove before.
15:50 agentzh the old prove6 is in csh iirc
15:50 gaal prove w/o 6
15:50 agentzh but i'm talking about prove6. :)
15:51 agentzh instead of the general prove.
15:51 agentzh particle added prove6.bat to make the old csh more general.
15:51 agentzh then i did the rewrite.
15:52 agentzh prove6 is just a shortcut for prove. :)
15:52 agentzh or a thin wrapper.
15:54 gaal uh, it doesn't call prove
15:54 gaal does it?
15:54 agentzh it calls prove.
15:54 gaal where?
15:55 gaal sorry, I can't see it.
15:55 onsen joined perl6
15:55 gaal I see it calls runtests
15:55 agentzh ah...sorry, i changed that.
15:55 agentzh for performance reasons.
15:55 c6rbon joined perl6
15:55 agentzh :)
15:55 gaal so, it's a replacement
15:56 * agentzh is still backloging.
15:56 agentzh gaal: probably. :)
15:56 gaal since I've always used prove, it would be great if you could write a summary of the differences between the two proves, so I know what I'm missing :)
15:58 PerlJam gaal: you're missing a shiny roundish 6  :)
15:58 gaal PerlJam: it's not written in Perl 6.
15:58 PerlJam I didn't say it was
15:58 gaal guess I really am missing the 6 then. :)
16:00 agentzh gaal: okay, i'll mention the support for multiple backends and implementations in prove6
16:00 agentzh now i'm reading the svn log. the "first attack" was done by my memory.
16:01 gaal okay. agentzh++ for changelogging! I'm off to a bike ride. see you
16:01 agentzh basically i'm ignoring the signature/capture parts and fglock's work since i'm not familiar with those things.
16:01 agentzh gaal: see you. :)
16:01 gaal agentzh: that's fine. bye :) &
16:04 onsen_ joined perl6
16:09 pdcawley joined perl6
16:10 integral joined perl6
16:10 pdcawley audreyt: Are you going to be at EuroOSCON?
16:12 agentzh is this release 6.2.13?
16:12 agentzh i don't think it's 6.28.0 already. :)
16:15 jdv79 best implementation of p6 rules and grammars?
16:19 [particle] jdv79: lib/Pugs/Grammar/*.pm (written in perl5), or parrot's languages/perl6/src/*.pg (written in perl6)
16:20 [particle] oh, wait implementation of rules/grammars, not code
16:20 [particle] i'm sorry, not grammar of implementations
16:21 [particle] i haven't compared parrot's pge to the other implementations, but it's pretty good
16:22 [particle] for example, it allows us to write the perl 6 parser's grammar as a perl 6 grammar :)
16:22 Psyche^ joined perl6
16:23 Psyche^ is now known as Patterner
16:24 norageek joined perl6
16:31 agentzh oh, more than 3000 revisions for this release...
16:31 agentzh the changelog can be quite length then.
16:31 svnbot6 r13262 | agentz++ | [ChangeLog]
16:31 svnbot6 r13262 | agentz++ | - second attack: i'm processing the svn log in the
16:31 agentzh *lengthy
16:31 svnbot6 r13262 | agentz++ |   reversed order, now i'm at r13090, still 3000 revisions
16:31 svnbot6 r13262 | agentz++ |   to go.
16:35 weinig is now known as weinig|away
16:35 putter ?eval sub f($x){$x} sub g(*@x){f(*@x)} g(4)
16:35 evalbot_r13256 [4,]
16:36 putter sigh
16:36 justatheory joined perl6
16:39 TimToady ?eval sub f($x){$x} sub g(*@x){f([,]@x)} g(4)
16:39 evalbot_r13256 Error:  unexpected "@" expecting "\171", "<<", dot, ":", "(", comment, term postfix, operator or ")"
16:39 TimToady ?eval sub f($x){$x} sub g(*@x){f([,] @x)} g(4)
16:39 evalbot_r13256 [4,]
16:39 TimToady I think the *@x is vestigial and should parsefail
16:39 ajs_ ?eval [[2,3]]
16:39 evalbot_r13256 [[2, 3],]
16:41 agentzh oops, so many things need to mention...
16:42 agentzh anyone wants to write for P5 to P6 converter?
16:46 agentzh i'll only leave a placeholder in the ChangeLog file.
16:46 svnbot6 r13263 | agentz++ | [ChangeLog]
16:46 svnbot6 r13263 | agentz++ | - another attack (r13048 ~ r13261 is mostly done)
16:55 agentzh oh my god...changelogging is really a hard work...
16:55 svnbot6 r13264 | agentz++ | [ChangeLog]
16:55 svnbot6 r13264 | agentz++ | - more items added, now i've reviewed r12962 ~ r13261.
16:55 svnbot6 r13264 | agentz++ |   (remember, i'm changelogging in the reversed order.)
16:55 Limbic_Region [particle] ping
16:56 [particle] pong
16:56 * Limbic_Region thinks he has shoe-horned in P::FM into util/yaml_harness.pl
16:56 Limbic_Region testing now
16:56 [particle] wow!
16:56 Limbic_Region if this works - I will check it in
16:56 [particle] k
16:56 Limbic_Region but there is still a lot that could be done to improve it
16:57 Limbic_Region fwiw, I didn't create a plug-in API as was my lofty original goal - I just redefined a method
16:58 nwc10 left perl6
16:59 fglock joined perl6
16:59 svnbot6 r13265 | agentz++ | [ChangeLog]
16:59 svnbot6 r13265 | agentz++ | - assumed that pugs will be released as 6.2.13 in
16:59 svnbot6 r13265 | agentz++ |   September.
17:00 agentzh fglock: please add stuff to ChangeLog when you have time. :)
17:01 * agentzh is happy tonight because he has Jifty running on his windows with help of #jifty.
17:02 agentzh so much for today, see you guys and gals tomorrow. :)
17:02 agentzh &
17:02 agentzh left perl6
17:03 lambdabot joined perl6
17:05 xinming_ joined perl6
17:09 svnbot6 r13266 | agentz++ | [ChangeLog]
17:09 svnbot6 r13266 | agentz++ | - minor fixes
17:18 putter agentzh++
17:18 fglock I wonder if is there a script that gives the dependency tree of a module - I need to cleanup the Pugs::Compiler::Rule distribution
17:19 Limbic_Region fglock - yes there is - though I can't point you in the right direction other than to Super Search at the Monastery
17:19 Limbic_Region IIRC, theorbtwo even did a visual graph of it
17:19 fglock thanks
17:19 * Limbic_Region just doesn't have the nodes bookmarked
17:20 dg joined perl6
17:20 Limbic_Region also see the Module::Dependency family on CPAN
17:20 [particle] yep, i remember that, but can't remember the name either
17:21 [particle] Limbic_Region: how long till your commit? i'm wondering if i should build pugs beforehand
17:22 putter left perl6
17:22 Limbic_Region [particle] - it is working but I can't tell if it is working correctly yet
17:22 zakharyas joined perl6
17:23 Limbic_Region and it is a freaking PITA to ctrl-c and add debug prints and start again
17:23 Limbic_Region I would say within the next 30 minutes
17:23 [particle] ok, i'll build pugsas a baseline
17:23 [particle] that way i can compare test results
17:26 Limbic_Region yeah, I have already done that and have intentionally not svn'd up while I have been working on this
17:27 Limbic_Region [particle] - you are going to need to set an env var to specify the number of children handlers
17:27 [particle] i can handle that :)
17:27 Limbic_Region PUGS_TESTS_CONCURRENT
17:27 [particle] what are you testing with now?
17:27 Limbic_Region well, 10 but I am not sure my branch to use P::FM is being taken
17:28 Limbic_Region so I just did a whole bunch of print statements to see
17:28 [particle] is it faster?
17:28 Limbic_Region not letting it finish to find out
17:28 fglock jdv79: re implementation of p6 rules and grammars - http://svn.openfoundry.org/pugs/perl5/Pug​s-Compiler-Rule/lib/Pugs/Grammar/Rule2.pm is compiled with v6.pm
17:28 lambdabot http://tinyurl.com/egsnm
17:28 Limbic_Region something I expected to happen didn't
17:29 [particle] oh, i figured you'd run a subset of the tests, is that possible?
17:29 Limbic_Region [particle] - it is but is difficult to do via nmake smoke
17:29 [particle] also, you could have the children print their pid on start/stop
17:29 Limbic_Region and because things don't always work the same from the command line as through the harness
17:30 [particle] ah, i see
17:30 Limbic_Region I am using the harness to be sure
17:30 [particle] well, perhaps you could remove some of the test dirs from your working copy
17:30 Limbic_Region ok - it is has got to the part of the build where it is running the harness - should know in a few secs if it is working correctly
17:31 Limbic_Region ok - it doesn't look like it is taking my P::FM branch for some reason - debugging
17:31 jdv79 fglock: thanks
17:32 jdv79 doesn't PGE implement them as well?
17:32 [particle] jdv79: yes
17:32 Limbic_Region darn it
17:33 Limbic_Region the window I set the env var in isn't the one I am running the harness from
17:33 [particle] gah
17:34 jdv79 its just that one is parrot
17:34 jdv79 's and one is pug's then?
17:34 [particle] jdv79: https://svn.perl.org/parrot/trunk/l​anguages/perl6/src/grammar_rules.pg
17:34 lambdabot http://tinyurl.com/k9tzr
17:34 Limbic_Region [particle] - how long is your current build taking to smoke?
17:34 fglock jdv79: one is parrot and the other is perl5
17:35 [particle] Limbic_Region: i've never run make smoke
17:35 [particle] right now, my build is failing :(
17:35 jdv79 do you forsee PGE becoming the only one or both tracking on into the night?
17:35 [particle] looks like it's calling gcc for some reason...
17:35 jdv79 just trying to get an idea of their relationship, if any;)
17:35 Limbic_Region :(
17:36 [particle] jdv79: there are multiple implementations of the perl6 spec at the moment
17:36 fglock jdv79: actually, both these files are perl6
17:36 [particle] pugs with haskell back end, v6-alpha with perl5 back end
17:37 [particle] perl6 with parrot back end
17:37 Limbic_Region [particle] - so the handrolled version says "how many children are you willing to start" then it divides the tests equally and each one runs the test in serial
17:38 [particle] ok
17:38 Limbic_Region I just made P::FM do the same thing - replacing the fork with ->start.  Lots of improvements could be made by taking advantage of some of the P::FM features though
17:38 Limbic_Region which is why I said there is lots of room for improvement
17:38 [particle] jdv79: there is no clear winner at the moment.
17:39 [particle] Limbic_Region: i need to get compiling first. dunno what's wrong
17:39 Limbic_Region k - tried realclean yet?
17:40 Limbic_Region and/or have you changed perl/ghc versions recently?
17:40 [particle] doing that now
17:40 [particle] i'm using your 0906 image
17:40 [particle] w/ as perl 5.8.8b817
17:40 [particle] i haven't yet gotten it to compile with this setup
17:40 [particle] but i haven't tried in some time
17:42 weinig joined perl6
17:42 svnbot6 r13267 | fglock++ | Pugs-Compiler-Rule - "lrep" is no longer used to bootstrap - moved to misc/lrep
17:43 Limbic_Region ok - that should work - the only thing that I can possibly think of is that 817 requires a patch to make XS modules build with Module::Build to work
17:43 Limbic_Region I am using the 0906 image and 5.8.8 817 myself
17:43 Limbic_Region oh, but you don't use MinGW though right - so nevermind that stuff about the patch
17:44 [particle] right, no mingw
17:44 [particle] okay, so i'm doing makefile.pl now
17:44 [particle] i was doing make fast btw
17:44 [particle] should that work?
17:44 Limbic_Region AFAIK
17:45 [particle] and will the tests run in human time?
17:45 [particle] or geologic?
17:45 Limbic_Region < 1 hour for me
17:45 Limbic_Region about a week ago it was only half that
17:45 [particle] ok, but you don't make fast, right?
17:47 [particle] fglock: have you looked at parrot's perl6 grammar so they can be consolidated where appropriate?
17:48 jdv79 i still can't underand the whole p6 on p5 - just seems like it would be really slow and nobody and why would one use it?
17:49 jdv79 its definitely "cool" though
17:49 fglock [particle]: yes - the PGE grammar doesn't use return objects, or hash dispatch; otoh, the v6.pm grammar doesn't use post-processing, it emits directly from the syntax tree
17:49 Limbic_Region no particle - but according to audreyt, the runtime difference between the two is getting less and less worth the extra compile time
17:50 Limbic_Region she was almost ready to make fast the default
17:50 [particle] fglock: yes, i think we should work on a common AST, parrot is heading in this direction. that would decouple front-end from back-end
17:50 [particle] Limbic_Region: ok, i'm 'fast'ing now
17:50 fglock [particle]: have you seen the v6-Compiler initial grammar?
17:51 [particle] fglock: i'm a bit behind on the status of v6-Compiler atm
17:51 fglock http://svn.openfoundry.org/pugs/v6/v​6-Compiler/lib/v6/Grammar/Native.pm
17:51 lambdabot http://tinyurl.com/kv35c
17:51 Limbic_Region [particle] - I have a feeling that something external is affecting the behavior of what I am doing - trying to isolate now
17:51 fglock it constructs AST from the grammar
17:51 Limbic_Region IOW - no matter what I do, I can't get it to follow the P::FM branch
17:53 Limbic_Region yep, just as I suspected
17:53 [particle] my build still fails :(
17:53 Limbic_Region something is setting the concurrent=1
17:53 Limbic_Region nopaste the error?
17:53 [particle] nopasting, and trying optimized
17:54 pasteling "[particle]" at 144.81.84.173 pasted "win32 build error" (746 lines, 36.6K) at http://sial.org/pbot/19662
17:56 Limbic_Region I found the problem - config.yml
17:57 Limbic_Region [particle] - do you have any logs of builds that succeded?
17:58 svnbot6 r13268 | fglock++ | Pugs-Compiler-Rule - removed more bootstrapping files
17:58 [particle] Limbic_Region: doubtful
17:58 Limbic_Region the CC = gcc looks suspect to me
17:58 [particle] yeah, i don't know why that's occuring
17:58 [particle] is gcc installed with ghc?
17:59 [particle] and if so, why is it passing what look like msvc flags?
17:59 [particle] it looks like i'm using 0819, not 0906
17:59 [particle] and CC is set to gcc from that dist
18:00 Limbic_Region [particle] - it looks like different parts of the build are confused about which compiler to use
18:00 Limbic_Region I assume there is an ENV var that will make msvc++ default
18:01 [particle] perhaps, or maybe it's in path
18:01 Limbic_Region fwiw - I am using p::fm now
18:01 Limbic_Region and it appears to be working
18:01 [particle] yay!
18:01 Limbic_Region perhaps 10 is a bit too many though
18:01 * Limbic_Region lowers it to about 4
18:01 [particle] 5 was a magic number for me in years past
18:03 Limbic_Region I was at 100% cpu so 10 was too many
18:04 Limbic_Region particle - it is in Makefile.PL
18:04 Limbic_Region my $cc = $ENV{CC} || 'gcc';
18:04 Limbic_Region so apparently you just need to set CC appropriately - though I haven't dug further
18:05 Limbic_Region after a realclean that is
18:06 [particle] hrmm, well, i'll give that a try
18:06 [particle] but 'make' seems to work
18:06 [particle] only 'nmake fast' is b0rked
18:06 [particle] smoking now, started at :06
18:07 nothingmuch TimToady: weird perl 5 question- is print $fh "foo" syntactically an indirect method call?
18:08 [particle] why is smoke rebuilding pugs?
18:08 Limbic_Region dunno
18:08 Limbic_Region someone asked that the other day - I thought it was fixed at one time
18:09 [particle] perhaps it's bad dependencies
18:09 Limbic_Region fwiw - it doesn't rebuild everything
18:10 Limbic_Region oh, once it gets to actually running the tests - let me know what your cpu utilization is like
18:10 TimToady nothingmuch: yes
18:11 nothingmuch *click* *whrirr* *spiN*
18:11 [particle] Limbic_Region: ok
18:11 * nothingmuch lies face down in a pool of oil and crushed pretzels
18:11 [particle] ack. missing dependencies. installing
18:12 MacVince left perl6
18:12 nothingmuch so how come print FOO "moose" is OK, but FOO->print("moose") isn't?
18:12 nothingmuch is indirect dispatch special cased for globs?
18:12 svnbot6 r13269 | fglock++ | Pugs-Compiler-Rule - cleanup old files; updated MANIFEST
18:13 nothingmuch the error for 'print $foo "foo"' is different than the one for 'random_method $foo "foo"' when $foo is undef
18:14 Limbic_Region [particle] - I am stuck at 100% cpu even with just 2 instances
18:14 [particle] Limbic_Region: and with 1?
18:14 Limbic_Region didn't check that - possible already at 100%
18:14 Limbic_Region which means this would only benefit really beefy systems or ones with mult cpu
18:15 [particle] still, it allows tuning not previously available
18:16 * Limbic_Region breaks out to see what 1 process consumes
18:18 TimToady nothingmuch: you asked about syntax.  The semantic analysis treats those differently, yes.
18:18 joshmoore is now known as joshmoore_
18:18 nothingmuch ok
18:18 * nothingmuch is working on Perl::Generate again
18:18 joshmoore_ is now known as joshmoore
18:18 nothingmuch hence the vague questions
18:21 Limbic_Region [particle] - heh, 100% with single thread
18:22 [particle] baselining++
18:22 Limbic_Region the laptop at home is dual proc - will try that
18:23 Limbic_Region going to check in yaml_harness.pl
18:23 [particle] ok, i'm running smoke now
18:24 svnbot6 r13270 | fglock++ | Pugs-Compiler-Rule - version 0.17 in CPAN
18:27 Limbic_Region few dependencies huh?
18:27 Limbic_Region ;-)
18:27 svnbot6 r13271 | Limbic_Region++ | Added dependency on List::Util and support for Parallel::ForkManger to allow Win32 concurrency.  Please revert at the first sign of trouble as this has not been heavily tested
18:28 [particle] ah, perhaps smoke depends on install?
18:28 [particle] the parrot paradigm is *don't install*
18:28 [particle] perhaps pugs paradigm is different
18:30 Limbic_Region I don't think so
18:30 [particle] no, perhaps not.
18:30 [particle] in any case, pugs pegs cpu
18:30 gaal fglock: Acme::Module::Authors
18:32 Limbic_Region how beefy is your box?
18:32 gaal Limbic_Region: was 10 above the number of concurrent moose?
18:32 gaal the rule of thumb is cpu_count + 1
18:33 gaal but your antler may vary.
18:33 c6rbon is now known as c6rbon_
18:33 gaal also, 100% CPU is fine. %s not spent on smoking are wasted.
18:33 mauke_ joined perl6
18:33 c6rbon_ is now known as c6rbon
18:33 Limbic_Region gaal - right, but if I am spiked at 1 (i.e. serial)
18:34 Limbic_Region is adding another process (on a single cpu arch) going to buy me anything
18:34 Limbic_Region my reason for adding P::FM support was so that if a winders box had spare CPU we could utilize it
18:35 gaal on a single cpu box probably nothing.
18:35 Limbic_Region since in general, N tasks done in parallel with time slicing is still faster than N tasks down in serial
18:35 gaal on hyperthreading it did win a few %s.
18:35 Limbic_Region this is because of the noops that the cpu does while it is waiting for instruction
18:35 gaal but, just run a few benchmarks and see.
18:35 Limbic_Region unfortunately, it doesn't appear to be any free cpu noop cycles to suck up
18:35 Limbic_Region but my system at home is dual proc so
18:36 Limbic_Region will test there tonight as well
18:36 gaal groovy.
18:36 gaal btw, the setting is best put obtained from config.yml
18:36 nothingmuch hmmmmmmmmmmmm
18:36 gaal this isn't something you change often, and there's no reason to litter the env with it.
18:36 gaal nothingmuch: mmmmmmmh!
18:36 * nothingmuch wonders how to propagate sigil information in the light of subscripting for the emitter
18:37 * nothingmuch tries to lie face down in that puddle again
18:37 Limbic_Region gaal - I realized that after the fact - it is in config.yml
18:37 nothingmuch maybe the fumes will inspire me ;-)
18:37 Limbic_Region in fact, it doesn't matter what your env is - if there is a setting in config.yml it will overide it
18:37 gaal nothingmuch: what are you doing on bike day?
18:37 nothingmuch bike day? whuzzat?
18:37 Limbic_Region and the env var wasn't my idea, it was already in yaml_harness.pl
18:37 nothingmuch i can make a guess
18:37 nothingmuch i think i'm more interested in "when"
18:37 gaal i guess your guess is correct
18:37 nothingmuch oh! yom kippur
18:38 nothingmuch heh
18:38 gaal yes
18:38 nothingmuch <embarraced>
18:38 nothingmuch nothingmuch-- # not a good jew at all
18:38 nothingmuch hmm.... i normally slack off with friends
18:38 gaal so, I really wanna use the opportunity and go for a nice ride
18:38 gaal but I think visitng you would be a little too far
18:38 nothingmuch well
18:39 nothingmuch we can go the day before
18:39 nothingmuch and camp somewhere
18:39 [particle] yummy kippers
18:39 Limbic_Region [particle] - is your smoke still running?
18:39 nothingmuch and then bike all day
18:39 nothingmuch and drive back at sundown
18:39 [particle] Limbic_Region: i stopped smoking
18:39 nothingmuch someone bought me that biking in israel book
18:39 Limbic_Region and if yes - is it stuck on ext/libwww/t/ something or other
18:39 nothingmuch let me find some ideas in it
18:39 Limbic_Region [particle] - why?
18:39 [particle] restarting with new yaml_harness
18:40 nothingmuch fwiw, it's a good book
18:40 nothingmuch but not enough trails in the south
18:40 Limbic_Region what happened to baselining?
18:41 gaal oh, 1-2 october, sun-mon
18:41 Limbic_Region btw - you may end up hanging on a test in ext/libwww/t/
18:41 Limbic_Region if you do, just del all .t file in the subdirectory for the purposes of the smoke
18:41 Limbic_Region there is no easy way to skip tests through make smoke
18:43 [particle] Limbic_Region: i moved the baseline to concurrency=1
18:43 [particle] then i'll test more
18:43 bernhard joined perl6
18:44 Limbic_Region okie dokie
18:44 nothingmuch gaal: i can probably have the car for the 24hrs
18:44 nothingmuch i shoulcd be able to pick you up sunday afternoon, and we can go to somewhere
18:45 nothingmuch and bike the next day
18:45 gaal cool
18:45 gaal bbiab
18:45 nothingmuch i'll make a list of possible trails
18:46 gaal aw, supercalifragilisticexpialidocious and silly left the spec :(
18:46 lanny Hmm.  If I have code:  my $x = $obj.foo();  $x.bar();   which does what I expect then is there a situation where $obj.foo().bar() shouldn't do the same thing?  (Cause I have such a situation.)
18:47 Limbic_Region (method chaining)-- # IMO
18:48 Limbic_Region does $obj.foo return a different object than $obj or a copy of $obj ?
18:48 Limbic_Region I believe it should work either way btw
18:48 mauke_ is now known as mauke
18:49 lanny Specifically I'm playing with 'is also' on Pair to add methods car() and cdr().  I build a list (A B (C D) E).  my $p = $cons.cdr.cdr.car; $p.car() correctly gives 'C'.  $cons.cdr.cdr.car.car() does not parse with 'cannot find method car() on Any'.
18:50 lanny car() has implicit return signature (i.e., 'our method car...') while cdr of Pair ().
18:51 lanny However if I use .key and .value instead of car and cdr everything works as expected.
18:51 * Limbic_Region ducks and watches the greek fly over his head like a 747
18:51 lanny So it seems like with method chaining the type knowledge that I'm working with a Pair doesn't seem to catch up with the method call.
18:51 Limbic_Region if the syntax is valid then it is a pugs bug - but I have no idea if it is valid
18:51 lanny I'll write a test then.
18:52 nothingmuch gaal: ctx switch to ICQ/AIM/whatever?
18:52 lanny So my next question is how do I make 'class Pair is also' lexical so any tests that run after my test don't have Pairs with a car() and cdr() method? :)
18:53 lanny Oh wait.  Silly question.  Forget I asked it.
18:56 [particle] limbic_region: pugs bombs at ext\Set\t\basic.t, but smoke continues
19:05 fglock nothingmuch: this is my new emitter prototype - I think we are working in the same problem - http://svn.openfoundry.org/pugs/perl5/Pugs-C​ompiler-Perl6/lib/Pugs/Emitter/Perl6/Perl5/
19:05 lambdabot Title: Revision 13271: /perl5/Pugs-Compiler-Perl6/l​ib/Pugs/Emitter/Perl6/Perl5, http://tinyurl.com/l2czz
19:06 nothingmuch fglock: unlikely... i realizeed i want more ergonomics
19:06 nothingmuch i don't think the ast i'm trying to represent is easily parsable
19:06 nothingmuch but i will probably much prefer using your stuff than PPI
19:06 nothingmuch the fact that PPI is just a glorified tokenizer really made me sad
19:06 nothingmuch it's also very hard to generate programatically
19:12 frobnitz joined perl6
19:13 onsen joined perl6
19:16 rodi left perl6
19:35 jferrero joined perl6
19:39 lanny Hmm.  Pugs is just that good.  My possible-bug works fine in the latest release.
19:39 onsen joined perl6
19:44 prism joined perl6
19:47 peteso joined perl6
19:49 gaal is there a way to hint the parser about what class a method signature is for, so that member params can be checked for existence?
19:49 gaal oh, maybe not, AUTO*...
19:49 gaal but I can certainly imagine that under some strictures I'd want :($.elk) to parsefail
19:50 gaal if I didn't have an $.elk attrib
19:50 peteso I've been reading and following the parrot and pugs projects since their inceptions, I'd like to get involved and actually contribute something, any suggestions?
19:50 gaal peteso: sure! tests are a great way to learn Perl 6 and help a lot with the effort
19:51 integral is now known as constant
19:51 integral joined perl6
19:51 gaal depending on what you already know / what you wish to get into, there are many things in the TASKS file you could pick up
19:51 peteso is that help writing the testsuites or what?
19:51 gaal do you know haskell? would you like to learn it?
19:51 peteso I know a bit and yes, I am trying to learn it further
19:52 gaal peteso: yup. we have over 11k tests and counting
19:52 gaal and we'll need several times that(!)
19:52 gaal look in the t/ directory under pugs
19:52 peteso the canonical perl6 spec I suppose
19:52 integral joined perl6
19:53 gaal oh, a great way to get into things is to visit http://spec.pugscode.org/
19:53 lambdabot Title: Official Perl 6 Documentation
19:53 gaal as you read the synopses there, you'll see some of them are linked to tests
19:54 gaal eg: http://perlcabal.org/syn/S0​2.html#Lexical_Conventions and click on - Show the snippet from t/syntax/unicode.t
19:54 lambdabot Title: S02, http://tinyurl.com/kz7ga
19:54 gaal on happy days this even shows actual *results* of these tests
19:55 gaal so, as you read, you can tell what parts of the spec are well-covered and what aren't.
19:55 gaal sometimes you'll find things actually have tests for tehm, but those aren't linked to the spec
19:55 peteso spiffy..
19:55 gaal it's easy to add the link though
19:56 gaal let me have your email address (/msg ok too)
19:56 peteso as in, the linking part (not the
19:57 gaal oh, you can't /msg on freenode, you aren't registered.
19:58 gaal rot13 it or something?
19:58 peteso haha, just a sec, let me register
20:00 gaal peteso: okay, invitation on it's way. welcome! :)
20:03 prism joined perl6
20:06 svnbot6 r13272 | lanny++ | Smartlink for method chaining.  Regression on chaining through implicit return of Any.
20:06 onsen_ joined perl6
20:07 weinig is now known as weinig_
20:07 weinig_ is now known as weinig
20:08 ajs_ Hmmm... Am I doing something dumb? I do C<< grammar E { regex ab { a*b } }; "accaaab"~~ /<E::ab>/; >> and pugs segvs
20:10 gaal fwiw, with external parrot I'm getting:
20:10 gaal *** Cannot parse PGE: <E::ab> Error: Illegal PMC enum (0) in new
20:10 gaal you're running embparrot, right?
20:10 ajs_ yeah
20:10 gaal get a stacktrace?
20:10 ajs_ not yet
20:11 gaal i mean, try to get one?
20:11 gaal unlimit coredumpsize ; repeat it ; gdb pugs core ; bt
20:11 ajs_ Program received signal SIGSEGV, Segmentation fault.
20:11 ajs_ [Switching to Thread 1204608 (LWP 31911)]
20:11 ajs_ 0x00daa8e3 in string_make_direct (interpreter=0xa887da8, buffer=0x86e6ad0,
20:11 ajs_    len=2037604201, encoding=0xa8158f8, charset=0xa8416d8, flags=0)
20:11 ajs_    at src/string.c:630
20:11 ajs_ 630             mem_sys_memcopy(s->strstart, buffer, len);
20:12 ajs_ The full back trace is obviously much longer
20:12 [particle] make smoke with optimized pugs takes 91min *ouch*
20:12 gaal that's in parrot, ajs_?
20:12 ajs_ trying to figure that out
20:12 ajs_ Yeah, it looks like
20:13 [particle] i don't think parrot likes namespaces in rule names
20:13 ajs_ string_make_direct called by string_make_direct from string_make from shift_opcode_string from hash_thaw from parrot_hash_visit and so on
20:13 ajs_ all called from Parrot_thaw
20:14 ajs_ it seems not
20:14 ajs_ So, how do I get at a grammar's rules?
20:14 marmic_ joined perl6
20:14 [particle] from pugs with embedded parrot? dunno.
20:17 justatheory joined perl6
20:17 fglock this works with v6.pm - but the result looks wrong:
20:17 fglock perl -e 'use v6-alpha' - ' grammar E { regex ab { a*b } }; "accaaab"~~ /<E::ab>/; $/.perl.say '
20:17 pdcawley joined perl6
20:20 fglock it matches at wrong from/to - looks like there is an offset, maybe a backtracking problem
20:20 pmichaud pge understands <Foo::bar>
20:21 [particle] perhaps it's pugs/parrot bitrot
20:21 [particle] *integration bitrot
20:21 gaal does a dummy named parameter make any sense at all? :( :$ )
20:22 gaal ajs_: maybe nopaste the bt? I can't likely help further but it'll proably be useful.
20:22 pmichaud one has to make sure to create the Foo grammar itself -- I don't know how pugs is converting grammars into rules
20:22 pmichaud or if it's creating the separate grammar class
20:23 pmichaud usually the "illegal enum" means that Parrot can't find the grammar class
20:24 gaal pmichaud: I *think*, superficially from line 274 in Pugs.Parser, that we do create the grammar class.
20:24 pmichaud likely
20:26 jferrero joined perl6
20:27 gaal oof, parsing dummy vars predictively's annoying.
20:28 baest_ joined perl6
20:32 Limbic_Region um, is someone aware that the smoke server is out of space?
20:33 Limbic_Region in any case, I have to go
20:41 TreyHarris [particle]: you asked earlier about whether make install was required for make smoke
20:41 TreyHarris perhaps I should add this to PROBLEMS
20:41 gaal huh? it shoulnd't be
20:42 TreyHarris but at one point, I had only Prelude.pm.yml and Test.pm.yml in my blib6
20:42 TreyHarris gaal helped me diagnosis this
20:42 TreyHarris so pugs was looking to my install for replacements, which caused blowup
20:42 gaal oh, right, TreyHarris, would you like to fix that @*INC moosup?
20:42 TreyHarris so it shouldn't be, but it might if something's screwed up, which may cause almost-correct but subtly-broken behavior
20:43 TreyHarris gaal: backlogged on tuits, but i'll enqueue it :-)
20:43 [particle] it seems the smoke target does some things over again
20:43 gaal 23:32 < Limbic_Region> um, is someone aware that the smoke server is out of space?
20:43 gaal ouch!
20:43 [particle] anything that will reduce my 91min smoke time is appreciated
20:43 TreyHarris [particle]: another known problem.  if you make, and immediately make again, you will rebuild some stuff.  so make smoke, depending on pugs, is no different
20:44 [particle] oh.
20:44 [particle] this is the first i've read of a PROBLEMS file
20:45 gaal TreyHarris++
20:45 gaal I have to sleep soon
20:45 TreyHarris i'm starting to think we might need a Makefile.PL pumpking soon.  i'm having to touch my makefile old for diffs i don't care about (or exclude Makefile.PL from updating until a diff comes that i do care about)... 'svn update; make' is almost guaranteed to cause a clean
20:45 [particle] indeed. TreyHarris++
20:45 TreyHarris if you wait more than 16 hours or so between makes
20:46 [particle] i've *almost* submitted my first smoke result
20:46 [particle] except for the server space issue.
20:46 [particle] and, of course, the error message is b0rked.
20:46 [particle] For help, please send mail to the webmaster (<a href="mailto:webmaster@localhost
20:46 [particle] ">webmaster@localhost</a>), giving this error message
20:46 [particle] and the time and date of the error.
20:46 [particle] :/
20:47 gaal I sent an email to iblech, hopefully he can help...
20:47 [particle] gaal++
20:48 gaal iblech++ you mean :)
20:48 * [particle] takes a wait-and-see attitude :)
20:48 [particle] due to the broken message, i didn't even know who to contact.
20:49 [particle] so, knowledge = karma
20:49 gaal svk log | grep -c iblech tells me to keep directing karma that way :)
20:55 gaal okay, that's it for me, good night all!
20:56 svnbot6 r13273 | gaal++ | * partial support for stringifying unpacky sigs; fails some tests.
20:56 svnbot6 r13273 | gaal++ |   (touch src/Pugs/Val.hs to get this to compile)
21:00 rodi joined perl6
21:05 TreyHarris nothingmuch: still conscious?
21:07 weinig is now known as weinig|food
21:09 Limbic_Region joined perl6
21:11 frankg joined perl6
21:12 nothingmuch TreyHarris: yes
21:12 nothingmuch for about a half hour more
21:13 TreyHarris nothingmuch: privmsg'ing you
21:15 svnbot6 r13274 | fglock++ | misc/pX/fglock - added example file Grammar.pm
21:16 pdcawley joined perl6
21:18 fglock nothingmuch: what if anon classes in v6.pm were plain objects, that didn't use perl5 namespaces and dispatching at all
21:19 fglock this way we could have lexical classes too
21:21 SamB ?eval "Hello"
21:21 evalbot_r13256 is now known as evalbot_r13272
21:21 evalbot_r13272 "Hello"
21:22 nothingmuch fglock: that's what I'm doing right now
21:22 fglock nothingmuch: can I use it? :)
21:23 Limbic_Region ?eval say hello
21:23 evalbot_r13272 Error: No compatible subroutine found: "&hello"
21:23 Limbic_Region ?say "hello"
21:23 lambdabot Maybe you meant: faq map slap
21:23 nothingmuch fglock: it'll be *DOG* slow
21:23 nothingmuch http://nothingmuch.woobling.org/MO/
21:24 lambdabot Title: Index of /MO
21:24 svnbot6 r13275 | rodi++ | documentation, comments, and readability updates.
21:24 nothingmuch after i refactor a bit tomorrow i'll do emit p5
21:24 nothingmuch which will take meta objs and compile them to perl 5 packages if it can
21:25 fglock re slow: you mean the dispatch?
21:25 nothingmuch fglock: yes
21:25 nothingmuch it's higher order dispatch
21:25 nothingmuch look at MO::Run
21:25 nothingmuch and t/basic.t
21:26 nothingmuch which should be renamed to t/responder_interface.t
21:26 fglock that's bad - I need fast roles for p6-p6
21:27 clkao fglock: so how organised is yapc::sa at the moment? is there schedule etc yet?
21:27 clkao nothingmuch: you are not done with role improvements yet?
21:28 fglock clkao: it's under way - http://www.conisli.org/grade/ - people can still submit talks until sep.30
21:28 nothingmuch clkao: i think it's sort of done
21:28 lambdabot Title: .:: CONISLI - Congresso Internacional de Software Livre ::.
21:28 nothingmuch clkao: i have been working on native attribute grammars in the meta model
21:28 nothingmuch good results
21:32 fglock nothingmuch: I wonder if this can be implemented with fewer levels of indirection, with complexity added on demand at runtime
21:33 nothingmuch fglock: that's what the emitter layer is going to try for
21:33 fglock ok
21:33 nothingmuch if perl 5 packages can represent a non lossy runtime model of the "complex" meta model then no more work is needed
21:33 nothingmuch if not, an AUTOLOAD version will be conjured
21:34 nothingmuch but multi invocant, or non object invocation will never work in p5 land
21:34 nothingmuch with the -> operator
21:34 nothingmuch since all it models is object/method invocation
21:34 nothingmuch and MO does more
21:34 Limbic_Region ?eval say "hello"
21:34 evalbot_r13272 OUTPUT[hello ] Bool::True
21:34 nothingmuch but we don't really care =)
21:34 Limbic_Region ?eval "/msg Limbic_Region stop messing around"
21:34 evalbot_r13272 "/msg Limbic_Region stop messing around"
21:35 Limbic_Region ?eval my $msg = "/msg Limbic_Region hello"; $msg
21:35 nothingmuch fglock: if you want i'll give you a tour tomorrow
21:35 evalbot_r13272 \"/msg Limbic_Region hello"
21:35 nothingmuch Limbic_Region: i doubt it evaluates commands
21:35 nothingmuch there's no reason for it to
21:35 nothingmuch /foo etc is cli
21:35 nothingmuch it's not an irc
21:35 nothingmuch thing
21:36 nothingmuch you can prefix with /say
21:36 fglock nothingmuch: sure
21:36 nothingmuch /here is a line starting with a slash
21:36 nothingmuch fglock: okies
21:36 Limbic_Region nothingmuch - right
21:36 nothingmuch fwiw, the 2 minute version is:
21:36 nothingmuch t/si.t is single inheritence
21:36 nothingmuch t/mi_si.t is the same test in an MI meta model
21:37 nothingmuch t/ag.t is attribute grammars as weird role like things
21:37 nothingmuch t/mi.t tests true mi only semantics (MRO)
21:37 nothingmuch t/roles.t checks role composition edge cases
21:37 nothingmuch t/private_* tests caller sensitive method dispatch
21:37 nothingmuch and slot name mangling
21:38 nothingmuch MO::Compile::* is the meta model
21:38 nothingmuch MO::Run::* is what the meta model is compiled down to
21:38 svnbot6 r13276 | lanny++ | t/unspecced/sort.t 'return' cleanup
21:39 nothingmuch </overview>
21:39 nothingmuch fglock: see you tomorrow
21:40 lanny joined perl6
21:40 fglock thanks
21:47 lisppaste3 joined perl6
21:48 justatheory joined perl6
21:54 svnbot6 r13277 | fglock++ | v6 - TODO update
21:57 svnbot6 r13278 | fglock++ | v6 - TODO update (more)
22:06 svnbot6 r13279 | fglock++ | v6 - ChangeLog update
22:07 jferrero joined perl6
22:08 fglock does Parrot already have p6 grammars for Ruby and Python? It would be nice to see these compiled to p5
22:09 [particle] there's one for ruby, in languages/cardinal
22:09 fglock or p6 even
22:10 fglock [particle]: thanks
22:10 [particle] we're also working on a C99 grammar
22:10 [particle] which we'll use internally to process C header files #define, etc
22:10 [particle] how'd you like to implement C in perl :)
22:10 fglock cool
22:11 fglock it could even implement this in XS
22:11 [particle] LOL
22:12 fglock I'm almost-seriously considering a p5 compiler
22:12 obra a p5 compiler?
22:13 [particle] the tough part is the compiler/lexer interaction in p5
22:14 fglock [particle]: yep - but some people here seem to know how this works :)
22:14 [particle] i've heard "it can be done" :)
22:15 frederico joined perl6
22:16 obra it would be interesting for perl's parser to get refactored... o O { And defined in Perl 5}
22:18 fglock obra: I wonder how hard would it be to refactor v6.pm into a p5-p5 compiler - it should be easier than writing the p6 compiler in the first place
22:18 obra fglock: are you on p5p?
22:18 fglock no
22:18 obra it might be interesting to talk to p5p about what sorts of things could help make v6 work even better.
22:19 Limbic_Region is there a way to limit the arbitrary precision of ghc
22:20 fglock obra: I need to find this out first - there are some things that I don't know if they are possible
22:20 Limbic_Region there are some number tests that are failing because Perl wants a NaN or Inf or some such
22:20 fglock like anonymous namespaces
22:20 Limbic_Region and ghc is just happily calculating the answer
22:22 fglock obra: I'll find out with audreyt during yapc::sa
22:24 [particle] Limbic_Region: i find it funny that ghc seems to have a numeric value for Inf in those tests :)
22:26 obra fglock: p5p is often a good place to ask about scary deep features.
22:27 obra there are lots of folks there who know answers that even audrey may not ;)
22:27 obra and it would be good for v6.pm to be more visible to perl5 core hackers
22:27 TimToady speaking of v6, I probably just broke it, at least temporarily
22:28 streawkceur joined perl6
22:28 TimToady fglock: you'll probably need to patch up a few places where I was incorrectly unsure of the s/ref/WHAT/ change.
22:28 svnbot6 r13280 | lwall++ | Great metaoperator renaming: ref -> WHAT, SKID -> WHICH, META -> HOW
22:28 fglock obra: ok - p5p scares me a bit - maybe it shouldn't :)
22:29 obra fglock: it scared me a lot at first two
22:29 mako132_ joined perl6
22:29 obra now I realize that everyone is sweet and friendly. except for tchrist. but even he is known to apologize these days
22:29 markstos joined perl6
22:29 fglock TimToady: no problem :)
22:29 obra But you're doing some first-class hacking on new ways to make the perl5 core stretch for another 10 years. it's in everybody's interest to help you
22:30 * fglock blush
22:31 obra *grin*
22:32 TimToady occasionally I wish I knew something about P5 internals, but then the fit passes...
22:32 obra timtoady++
22:33 dakkar what did SKID stan for?
22:33 TimToady whatever you like, but mostly "safe key ID"
22:34 TimToady which nobody could remember anyway...
22:34 dakkar oh. something like a content hash, or the memory location?
22:34 dakkar meaning, unique across all objects, or not?
22:35 TimToady depends on whether the object type thinks of itself as a value type.
22:35 TimToady all versions of 2 have the same identity, if not the same memory address.
22:35 TimToady it's meaningless to ask "which 2"
22:36 dakkar right
22:36 TimToady but "WHICH $dog" makes much more sense
22:37 dakkar a friend of mine once wrote a language where number literals were, in fact, constructing instances of numbers... so that you could say 'increment 0'
22:37 dakkar not that it did any good
22:37 * dakkar has strange friends
22:38 dakkar which reminds me... prototype ("undef") objects are road only, right?
22:38 TimToady increment dakkar
22:38 dakkar read
22:38 dakkar is now known as dakkar_plus_1
22:38 justatheory_ joined perl6
22:39 TimToady depends on where they are.
22:39 TimToady my Dog $spot .= new;
22:39 dakkar_plus_1 is now known as dakkar
22:39 TimToady puts a prototype into $spot and then calls its new mutatingly.
22:40 TimToady and that gives it a different WHICHness.
22:41 TimToady it doesn't destroy the prototypical Dog's WHICHness.
22:41 TimToady Dog.WHICH === Dog.WHICH
22:41 dakkar ok. but to change the state of the prototype object I assume would require trickery
22:41 TimToady Dog.WHICH !=== Cat.WHICH
22:42 TimToady It's really just a placeholder for the real object that replaces it.
22:42 TimToady the prototype itself never changes
22:42 TimToady if you said Dog .= new it'd fail, I expect.
22:43 dakkar so if I want all new dogs to have orange eyebrows, I have to change the Dog class (directly or indirectly)
22:43 TimToady yes
22:44 TimToady though I suppose even this is negotiable at some level.  but we won't tell anyone that.
22:45 dakkar I think many people were impressed by the mutability of undef in Perl5, as shown in Birmingham
22:45 TimToady someone at YAPC::EU just gave a lightning talk that P5's undef was insufficiently undefined.
22:45 dakkar I was there ;-)
22:45 TimToady So was I. :-)
22:48 zakharyas Juerd++
22:48 fglock left perl6
22:53 markstos TimToady: You said "I think the *@x is vestigial and should parsefail". What's the  *@x replacement ?
22:53 lambdabot markstos: You have 1 new message. '/msg lambdabot @messages' to read it.
22:55 TimToady what I ?evaled right after it.
22:55 TimToady [,] @x
22:56 dakkar what about "splat" hashes?
22:56 markstos Sorry, missed that. I didn't realize [,] @x was working yet. Cool.
22:57 TimToady oddly, though *@x should parsefail, *(@x) should not.
22:57 TimToady It should attempt to apply .(@x) to the Whatever object.
22:57 dakkar argh
22:57 TimToady which will likely fail.
22:58 dakkar I should really re-read the synopses... too much has changed since the last time I did
22:58 TimToady [,] is the new splat.  * in sigs only means "slurpy" now.
22:58 dakkar so a hash in list context evals to a list of pairs
22:59 TimToady yeah...they change just about every time I read them...  ;)
23:00 markstos TimToady: would you mind helping me find where "my $a1 = my    $b1 = 42;" is spec'ed (having "my" appear on the RHS?)
23:01 TimToady well, as audrey said, it's not, except in the "like P5" sense.
23:02 TimToady so I'll have to read that part of the synopses and see if they change.  :)_
23:02 pasteling "[particle]" at 144.81.84.173 pasted "synopsis results for C<ack --perl "=\s*my">" (5 lines, 190B) at http://sial.org/pbot/19676
23:03 markstos I see. I actually didn't realize that worked in Perl 5, until I tried it just now. It's rather uncommon.
23:04 markstos I guess I can just link to the "Declarators" section now, and add a note about it being "like p5"
23:05 mako132_ joined perl6
23:05 markstos ?eval sub foo(*%x) { say %x.perl; } my %h = <a b c d>; foo([,] %h);
23:05 evalbot_r13272 is now known as evalbot_r13276
23:05 evalbot_r13276 OUTPUT[{} ] Bool::True
23:06 dakkar not what I would have expected...
23:06 TimToady you turned 'em into named args.
23:06 markstos My either.
23:06 markstos s/My/Me
23:06 markstos and then what happened ?
23:06 dakkar ?eval my %h={a=>1,b=>2};say %h.perl
23:06 evalbot_r13276 OUTPUT[{("a" => 1), ("b" => 2)} ] Bool::True
23:07 markstos I thought *%x was a slurpy that would absorb named args.
23:07 dakkar ?eval sub foo(@a) { say @a.perl}; my %h={a=>1,b=>2};foo([,]%h)
23:07 evalbot_r13276 Error: No compatible subroutine found: "&h"
23:07 TimToady um, they disappeared into the circumambient gasses, I guess.
23:07 dakkar ?eval sub foo(@a) { say @a.perl}; my %h={a=>1,b=>2};foo([,] %h)
23:07 evalbot_r13276 OUTPUT[[("a" => 1), ("b" => 2)] ] Bool::True
23:08 TimToady that seems kinda busted
23:08 dakkar which? my eval?
23:08 markstos or the result ?
23:08 TimToady the result
23:09 dakkar why? [,] %h creates a list of pairs, which gets passed to the sub
23:10 TimToady but pairs passed to the sub should be processed as named args.
23:10 dakkar hmm
23:11 dakkar and how should I pass a list of pairs into an array argument?
23:11 dakkar ?eval sub foo(*@a) { say @a.perl}; my %h={a=>1,b=>2};foo([,] %h)
23:11 evalbot_r13276 OUTPUT[[("a" => 1), ("b" => 2)] ] Bool::True
23:12 dakkar this one is correct?
23:13 TimToady oh, I see the problem.  my %h={...} is incorrect
23:13 markstos it should parsefail?
23:13 dakkar another thing that changed when I wasn't looking? ;-)
23:13 markstos I thought {} was a hash constuctor
23:13 TimToady should give a warning about odd number of elements, I suppose.
23:13 dakkar ?
23:13 markstos 4 is odd?
23:14 dakkar we are missing somenthig
23:14 TimToady ?eval sub foo(*@a) { say @a.perl}; my %h = (a=>1,b=>2);foo([,] %h)
23:14 evalbot_r13276 OUTPUT[[("a" => 1), ("b" => 2)] ] Bool::True
23:14 TimToady ?eval sub foo(*%x) { say %x.perl}; my %h = (a=>1,b=>2);foo([,] %h)
23:14 markstos ?eval sub foo(*%x) { say %x.perl}; my %h = (a=>1,b=>2);foo([,] %h)
23:14 evalbot_r13276 OUTPUT[{} ] Bool::True
23:15 evalbot_r13276 OUTPUT[{} ] Bool::True
23:15 dakkar ok, I'm going to dinner now. see you tomorrow
23:15 TimToady myself I need to go fetch the laundry...
23:15 TimToady biab &
23:16 markstos If Perl 6 doesn't have references why would the difference between () and {} make a difference there ?
23:17 TimToady because () behaves differently in list than in scalar context.
23:17 TimToady in list context they're a no-op
23:17 TimToady ?eval sub foo(*%x) { say %x.perl}; my %h = a=>1,b=>2;foo([,] %h)
23:17 evalbot_r13276 OUTPUT[{} ] Bool::True
23:17 TimToady same bug. :)
23:17 TimToady ?eval sub foo(*%x) { say %x.perl}; my %h = {a=>1,b=>2};foo([,] %h)
23:18 evalbot_r13276 OUTPUT[{} ] Bool::True
23:18 TimToady it's possible that hash assignment is now smart enough to recognize a hash in the list and unpack it.
23:18 markstos ?eval sub foo(*%x) { say %x.perl}; my %h = (a=>1,b=>2); say %h.perl ; foo([,] %h)
23:18 evalbot_r13276 OUTPUT[{("a" => 1), ("b" => 2)} {} ] Bool::True
23:19 TimToady ?eval sub foo(*%x) { say %x.perl}; my %h = {a=>1,b=>2},'x','X';foo([,] %h)
23:19 evalbot_r13276 OUTPUT[{} ] Bool::True
23:19 markstos ?eval sub foo(*%x) { say %x.perl}; my %h = {a=>1,b=>2}; say %h.perl ; foo([,] %h)
23:19 evalbot_r13276 OUTPUT[{("a" => 1), ("b" => 2)} {} ] Bool::True
23:19 TimToady ?eval sub foo(*@a) { say @a.perl}; my %h = {a=>1,b=>2},'x','X';foo([,] %h)
23:19 markstos Yep, () and {} seem the same in these cases.
23:19 evalbot_r13276 OUTPUT[[("a\t1" => ("b" => 2)), ("x" => "X")] ] Bool::True
23:20 TimToady no, it's not smart enough to do that *and* handle the pairs, apparently...
23:20 TimToady well, laundry really &
23:28 jferrero joined perl6
23:34 apple-gunkies joined perl6
23:41 cjeris left perl6
23:48 vel joined perl6
23:51 mako132_ joined perl6
23:55 coumbes joined perl6
23:59 Aankhen`` joined perl6

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

Perl 6 | Reference Documentation | Rakudo