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