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