Summer of Perl | 6.2.12 released! | paste: sial.org/pbot/perl6 | pugs.blogs.com | pugscode.org | pugs.kwiki.org | www.treehugger.com/files/th_images/paradigm.jpg
Set by nothingmuch on 12 July 2006.
clkao fglock: around? 00:29
fglock: i change the signature_term_type to use bare_ident. now junctive type is having infinite loop. is this a bug in PCR? 00:35
TimToady clkao: did you ever get an answer on proto? 00:36
clkao TimToady: uhm, not really
TimToady defined in S6
TreyHarris TimToady: I'll ask audreyt the same question later, but I'm giving an internal talk at $job next week to update on Perl 6 progress in the past 6-ish months. other than what I've seen in the Synopsis deltas, is there anything else that's happened since YAPC important enough for such a talk, in your opinion? 00:40
TimToady loop {...} while has changed to repeat {...} while 00:41
TreyHarris yep, got that one down :-)
TimToady thinking... 00:42
TreyHarris thanks!
TimToady pipe ops now called feed ops 00:43
TimToady can now use \ on any whitespace 00:43
there's now a ! metaoperator 00:45
env vars now "is context" vars
clkao is this an effort to stop christmas happening or to have a better christmas? 00:46
TimToady << ... >> now matches word boundaries in regex
I'm just listing changes that happened in the last month for TreyHarris++ 00:47
TimToady but mostly this is for a better christmas. Most of these things are not changing something that exists. the main exception, repeat, I already hacked into the .hs and pcp parsers 00:53
clkao yay 00:54
TreyHarris TimToady: thanks, that was helpful, I missed ! and hadn't thought about some of the others 00:55
TimToady++
TimToady It was easy, I just did "svn log SXX.pod | less" :) 00:56
audreyt dduncan: sorry, I'm totally fried 00:57
my brain stopped working
so I'm back to hotel and ready to crash
dduncan: I did intend to come to OSCamp to find you 00:58
audreyt but the unexpected lightning-talk-call razed my schedule 00:58
sorry about that...
*thunk* &
TreyHarris TimToady: oh duh, I don't have the synopses checked out, they're not in the pugs repository--where are they? But in any case, I was more interested if there was anything outside the Synopsis space that I might have missed
I watch the deltas sent to p6-l, of course, but that's not as flexible as having it checked out 00:59
dduncan audreyt, well at least we met in the hall ... that was the least I wanted 01:00
TimToady TreyHarris: svn.perl.org/perl6/doc/trunk/design 01:11
afk &
TreyHarris TimToady: thanks!
spinclad TreyHarris: if you haven't followed them, audrey's blogs at pugs.blogs.com/pugs should tell you a lot. We've had hage things happening with p6-in-p5, p6-in-p6, moose ... Xmas is coming, the goose is getting fat. 04:45
TimToady: i just noticed that ?? !! has both names C<trinary> and C<ternary> in S03. (MHO favors C<ternary>, naturally.) 04:53
PerlJam spinclad: as long as no one makes the mistake of replacing them both with "tertiary" :) 04:58
gaal mooooooose 05:31
lumi gaal: Morning! I'm leaving your way presently 05:36
Do you have unwired network or a wire? Or should I BMOE? 05:37
nothingmuch moose morning 05:37
gaal lumi: no wifi, alas 05:38
lumi: did you have breakfast?
lumi Nay
I ran errands all morning instead 05:39
gaal "all morning"!? 8:41
nothingmuch my thoughts exactly
gaal ok come here and we'll grab a bite somewhere
nothingmuch e.t.a? 05:40
lumi t-1h or so
gaal lumi: there are cables. BYOAnythingYouThinkIsGood 05:41
agentzh TimToady: what's wrong with "proto"? 06:53
pasteling "agentzh" at 210.22.200.67 pasted "Another patch for S04 (r10488). Review welcomed. :=)" (80 lines, 3.7K) at sial.org/pbot/18645 07:32
agentzh bbiab & 07:34
tessier__ Why implement perl6 in haskell? Why bother with perl at all? Why not just code in haskell? 08:59
Bleadof Brilliant! 09:00
tessier__ I'm looking for enlightenment, not gratuitous flattery. :P 09:01
Bleadof There was a hint of sarcasm in that comment ;)
tessier__ Either way you leave me unsatisfied. 09:05
Bleadof That was the point ;) 09:07
tessier__ WTF is the deal with Audrey Tang? 09:08
Someone is confused.
Juerd tessier__: Haskell is a very different language than Perl 6 09:16
In short, Haskell doesn't allow you to shoot yourself in the foot so easily.
tessier__ Juerd: Right. That would seem to be an advantage. So why use haskell to build the ability to shoot yourself in the foot? Why care about perl6? 09:22
Juerd tessier__: Because Perl 6 is a great language that lacks an implementation, and Haskell makes the first implementation possible. 09:34
tessier__: And because Audrey cares about both languages. I'm very happy about that :)
cognominal tessier_: with perl6 you can program in a functional way, you don't have to. This means one does not to immediately rewire his whole brain to start working 09:44
s/not to/not have to/ 09:45
tessier__ cognominal: Could you not program in a functional way before perl6? 09:58
lambdabot i am just a fun girl!
tessier__ FWIW I just bought Higher Order Perl last night. Should arrive in a few days. 09:59
lambdabot why me? :)
tessier__ lambdabot: Girls are fun but my advice is that if it fucks, floats, or flies, you are better off renting it by the hour.
nothingmuch tessier__: marry me 10:12
tessier__ nothingmuch: What do you have to offer me as a life partner? 10:13
nothingmuch love 10:16
by the hour, of course 10:17
oh, and I could also teach you how to appreciate the beauty of PHP
i say screw all this perl 6 haskell mumbo jumbo
i mean, who the hell even *needs* lexicals?
Juerd PHP 7 *may* get first class functions! 10:19
nothingmuch OMIGAAWD
i better learn csh then
cognominal tessier__, that's perl, you could, you did not have to
Juerd clipped his fingernails 10:20
Let's see if this reduces the number of typos :)
gaal audreyt: "by sending a feed into C<*>." -> "feeding into C<*>" ? 10:32
nothingmuch decides to stop working on the vim stuff 10:37
it's too hateful
plus, if those guys on that wiki did so much research
but got nothing so far
it must be hard
gaal m ++ oose
@hoogle Map a b => [(a, b)] 10:42
lambdabot Data.FiniteMap.fmToList :: FiniteMap key elt -> [(key, elt)]
Data.Map.assocs :: Map k a -> [(k, a)]
Data.Map.toAscList :: Map k a -> [(k, a)]
gaal (sorry, my local goa is borked because system fps clashes with pugs fps...) 10:43
xerox FiniteMap ?!?!
Data.Map.toList
You want ->, not =>, gaal :-)
(->) is the function type constructor, => divides the constraints from the actual type. 10:44
gaal er.
yes yes
blame the sun.
xerox nods
gaal lumi++ # meatspaceprvmsg informing me \bot does privmsg 10:45
hoogle++ # liberal enough to give me the right answer even when under the influence of tlv weather
gaal :79 10:47
nothingmuch fioo 10:48
test
gaal nothingmuch: probably a few feet behind you 10:49
nothingmuch vimirc officially sucks
it's almost 100% blocking
you can't get messages while typing
(insert mode) 10:50
and it's event loop is timer based
gaal for a minute there I didn't see the 'i' and couldn't understand what was wrong with vim's rc file.
nothingmuch "i" ? 10:51
gaal vim_I_rc
nothingmuch oh 10:58
agentzh is there any plan to release pugs test suit separately to CPAN? 11:00
and is there any good idea to sync the test suit with synopses more closely by some clever synatx or tools? 11:01
gaal agentzh: there was a thread on p6l. dduncan++ wants it as do others...
i think mostly it's looking for someone to do it.
agentzh: well, yes! look at util/catalog_tests.pl 11:02
agentzh gaal: looking
gaal usage: run your smoke test, then that
it takes a minute or two to run, and then e.g.
(sec...) 11:03
agentzh okay
gaal perlcabal.org/~gaal/pugstest/t_inde...ml#line_69
lambdabot Title: want
gaal that is a file linked to from smoke.html
see the hyperlink? follow it
agentzh hmm, seems good 11:04
agentzh gaal: it's very nice 11:04
gaal I just got spam with the title "no more new classes". after this morning's haskell chase, that's almost tempting 11:05
agentzh: also the synopses are automatically xreffed back to arbitrary tests
this aspect of the process isn't very prettily implemented, but it does work. 11:06
agentzh url?
oh, i see.
gaal agentzh: just look for "T" superscripts
yes
so any test that is decorated with a comment saying L<...> does that
credit to theorbtwo, nothingmuch, ted nelson and some others 11:07
agentzh are the synopses' HTML files generated after very smoke?
gaal agentzh: this isn't automatic, but yes, you'd need to do that.
agentzh hey, that's exactly what i've been pondering
L<...> with some magic text matcher 11:08
gaal the reason is that html isn't really bidirectional, so we need to create target documents that have anchors for us.
agentzh and two-way cross references
gaal agentzh: yes, like I said, ted nelson :)
@google xanadu
lambdabot www.imdb.com/title/tt0081777/
Title: Xanadu (1980)
gaal er, no
@google project xanadu
lambdabot en.wikipedia.org/wiki/Project_Xanadu
gaal that's more like it :) 11:09
agentzh lambdabot is cute
gaal yes!
agentzh en.widipedia.org is not accessible here
saddly i'm behind the Great Firewall
gaal I'll pate for you, sec.
agentzh okay! 11:10
pasteling "gaal" at 192.115.25.249 pasted "Project Xanadu" (73 lines, 6.3K) at sial.org/pbot/18650
agentzh gaal: thanks for the paste 11:12
gaal np
agentzh will look closer later. supper &
gaal moooose 12:36
bpphillips is just a lurking mooose 12:37
jawd is there any perl mailer out? 13:05
agentzh jawd: p6-l and p6-c 13:06
jawd where can i get them?
agentzh jawd: a sec...
wolverian perl mailer? 13:07
agentzh dev.perl.org/perl6/lists/
in case that you mean "mailing lists"
lambdabot Title: Mailing Lists - perl6
jawd oh..
i was talkin about a perl mailer.. 13:08
wolverian did you mean "a module to send e-mails"?
jawd e.q; for spammin
yea
agentzh oh, that kind of stuff...
wolverian see CPAN. I recommend the Email::* modules. also, this channel is for the development of the next perl version, not generic perl discussion. try #perl
also, don't spam. :-)
agentzh everyone here hates spam 13:09
jawd i hate spam
i do spam
paradoxal, it is
agentzh dodges
wolverian please give me your personal contact information. 13:10
[particle] thinks #perl6 needs a spam filter 13:13
glasser hmm, does moose have available svn yet? 13:14
agentzh gaal: the history of the Xanadu project is rather educational. i've just finished reading your paste. thanks a lot! 13:27
glasser: ask stevan
glasser stevan: hmm, does moose have available svn yet? :) 13:28
also, i'm curious about the level of support for cloning objects in moose 13:29
agentzh agentzh tries to play with util/catalog_tests.pl a bit 13:32
glasser like, i see that Class::MOP gives a shallow cloning operation, and says there are good reasons not to do more 13:33
but i'm wondering, if i'd like to use moose in a project, and i'd like my objects to have a deep clone operation (with specifying "clone this attr value, share this one") a la SVK::Accessor 13:35
at what level one should extend moose.
(ie, is this a reasonable patch for Moose itself? or for a mixin?)
agentzh thinks #perl6 is sleeping 13:41
gaal: in case you backlog, is there a way to generate cross-referenced HTML pages without smoking? 13:42
gaal: smoking pugs' test suit is an unpleasant process on this machine 13:43
gaal: not to mention i even can't build pugs here :(
jumping between synopses and tests are not very natural. i think a better way is to embed tests directly into synopses, but by default these tests are "folded" and can be "expanded" by the user, just like what Google usually does 13:47
*embedding
furthermore, synopses with embeded tests may be easier to print onto papers 13:48
glasser: <stevan_> we set up #moose over at irc.perl.org too, for Class::MOP and Moose related questions/stuff 13:52
glasser: maybe try out #moose instead?
gaal agentzh: elk 13:53
agentzh: do you have an account on feather?
agentzh nope
gaal it's a fastish machine and you can run your smokes there :)
agentzh can you ask Juerd to give me one?
gaal no: you should email him with your name and prefered username 13:54
are you able to ssh to machines outside .cn?
agentzh okay!
with some odd proxy, yes.
gaal agentzh: re folding tests into spec, the problem is that they don't necessarily correspond to each other in order 14:33
so a .t file can have tests pertinent to more than on syn doc, and vv.
what would you embed?
[particle] tests in spec is like php in html *yuck* 14:44
aufrank there's something to be said for including any examples from the spec in the tests, though
want to make sure any code that's supposed to run does
FurnaceBoy thinks of literate programming, mathematica notebooks, etc, etc 14:47
agentzh [particle]: by default the tests are folded in a small button-like label in the spec 14:48
we can always click the label, say, "t/subroutines/multi_sub.t (2)", to expand the correponding test code 14:49
agentzh most of the time, we can only see labels like "t/test/name" listed in the spec 14:50
[particle] but editing the spec happens in text editors, where the tests can't be hidden
agentzh i don't think that will be very annoying
agentzh <agentzh> [particle]: you have misunderstood me. i am talking about the generated HTML files, not the pod 14:59
<agentzh> the idea is: the program scans through the test files, collecting references to the synopses, and then generate the HTML outputs with all the information embedded 15:00
we just need some JavaScript to "hide" the test code by "magic labels" temporarily
the synopses and pugs' tests are still living separately. it is the program which mixes them up 15:01
aufrank: testing the sample code in the synopses is something mandatory, i think :) 15:02
gaal: Re not one-to-one correspondence
that's easy. if one test references multiple synopses, we can have it appear as a "label" in all the referenced synopses 15:04
agentzh hates the firewall which makes his IRC connection extremely fragile. 15:12
embedding a whole test file into the spec is not interesting at all. it should be a single test case or a small portion of a test file 15:14
one "label" corresponds to one group or a single test case 15:15
we need some way to split the .t files in any event
i'll try to roll out an implementation after walking through all the Synopses. :) 15:19
gaal nothingmuch: 16:02
> let hw = "~":["~Y"++x|x<-hw] in hw !! 4
lambdabot "~Y~Y~Y~Y~"
xerox > intersperse 'Y' (replicate 5 '~') 16:03
lambdabot "~Y~Y~Y~Y~"
lumi I like the ~:[ emoticon 16:04
cjeris gaal: in practice is that linear or quadratic in the index 4?
xerox > take 9 $ fix ("~Y"++) 16:05
lambdabot "~Y~Y~Y~Y~"
xerox <3 fixed points 16:06
wolverian I see what you did there.. 16:07
xerox ?pl fix f = f (fix f) 16:20
lambdabot fix = fix (ap id)
xerox ?fptools Control.Monad.Fix 16:23
lambdabot darcs.haskell.org/packages/base/Con...nad/Fix.hs
TimToady agentzh: you were asking about "proto"? Did you mean implementation or spec? 16:24
gaal cjeris: it's memoized. 16:35
xdg audreyt: Class-InsideOut 1.01 is headed for CPAN. register( $classname ) automatically gives you a blessed scalar now. 16:44
agentzh i'm rewriting util/prove6 using perl 5 17:09
i hope it can harness both pugs and v6.pm 17:10
[particle] ...and be windows friendly :)
agentzh so newbies (like me) won't constantly be asking stupid questions like "how can i run just a portion of the huge test suit?"
[particle]: which implementation should prove6 choose to run by default? 17:12
is it okay to say "util/prove6 --pugs t/some/*.t" and "util/prove6 --perl5 t/some/*.t"?
[particle] as in, pugs or v6? if i understand correctly, prove6 does v6 by default now. 17:13
agentzh given the maturity of these two implementations, i think prove6 should default to the Haskell pugs
[particle] the above syntax looks good, and could include --js and --parrot 17:14
agentzh [particle]: yes, the current prove6 defaults to v6.pm
do you think it's okay to change to pugs? 17:15
the implementations of --js and --parrot are somewhat out of my knowledge, so that's an excercise for someone else. :=) 17:16
[particle] i'd rather it say as v6, as that seems to be the strategic direction, but i don't care so much, 'cause i'll just run C<prove6 --perl ...> 17:17
agentzh okay 17:18
maybe i should also alias --perl to --perl5 :)
and also --v6-alpha
agentzh following your advice, i'll make prove6 default to v6.pm then 17:19
[particle] okay. i'm sure it can easily be changed if others disagree.
agentzh :) 17:21
svnbot6 r11802 | agentz++ | * reimplemented prove6 script using Perl 5, which can harness the pugs test suit with specified implementations. 17:35
r11802 | agentz++ | util/prove6 --pugs t/some-dir/*.t
r11802 | agentz++ | util/prove6 --perl5 t/some-dir/*.t
r11802 | agentz++ | option aliases --haskell, --perl, --v6-alpha are also supported
r11802 | agentz++ | XXX add support for other pugs' backends (--js and --parrot)
agentzh [particle]: it is windows friendly, because i'm using windows. :=) 17:36
[particle]: i've tested it under cygwin to make sure it's unix-friendly as well. 17:37
[particle] yay. did you remove prove6.bat? (upping)
agentzh yes, i did
win32 users can always say "perl util/prove6 ..."
svnbot6 r11803 | agentz++ | fixed a typo in prove6 17:40
agentzh [particle]: it faults to pugs anyway in case that someone else will change the code as you said. :P 17:43
*defaults
agentzh looks into t/examples/ 17:48
[particle] rebuilds pugs 17:52
svnbot6 r11804 | agentz++ | multi_sub.t: adjusted the planned number of tests 17:55
agentzh ?eval (1,2,3).say 18:07
evalbot_11804 OUTPUT[123 ] Bool::True 18:07
agentzh ?eval [1,2,3].say 18:08
evalbot_11804 OUTPUT[1 2 3 ] Bool::True
agentzh is this difference expected?
or is it a bug?
examples/slurpy-list-params/flatten-arg-lists.pl fails its tests due to this difference 18:09
aufrank ?eval my @a = [1, 2, 3]; say @a; 18:10
evalbot_11804 OUTPUT[1 2 3 ] Bool::True
aufrank ?eval my $a = [1, 2, 3]; say $a;
evalbot_11804 OUTPUT[1 2 3 ] Bool::True
agentzh Array objects may be different from Seq 18:11
aufrank ?eval my @a = (1, 2, 3); say @a;
evalbot_11804 OUTPUT[123 ] Bool::True
aufrank ?eval my $a = (1, 2, 3); say $a;
evalbot_11804 OUTPUT[1 2 3 ] Bool::True
aufrank huh
that last one seems to me like the @seq behavior is wrong
agentzh :)
aufrank: will you fix it?
aufrank not within the next 6-8 hours 18:12
not on a machine where I have a checkout until later tonight
agentzh okay
never mind
i'll just "fix" the tests
aufrank sorry, I'd do it if I could :)
agentzh so (1,2,3).say should prints "1 2 3", yes? 18:13
*print
xerox ?eval (1,2,3).say
evalbot_11804 OUTPUT[123 ] Bool::True
xerox :-)
agentzh okay, i'll leave that to audreyt 18:14
agentzh bedtime & 18:14
aufrank ?eval[,](1, 2, 3).say 18:41
lambdabot Unknown command, try @list
evalbot_11804 OUTPUT[123 ] Bool::True
aufrank ?eval [,]<1 2 3>.say
evalbot_11804 Error: unexpected "[" expecting program
nothingmuch gaal: moose 20:58
gaal moose. 21:05
home-p?
nothingmuch gaal: yes 21:31
i had an "interesting" journey
turns out kaplan is closed after 22:00
or actually around 21:50
but at least I got some excercise =) 21:32
svnbot6 r11805 | Sage++ | The AST description for the parser now contains many, many more nodetypes. I believe this is now an exhaustive list, but I'm not optimistic enough to claim anything for sure. 21:51
r11806 | Sage++ | The parser for the translator now works with the extended AST definition to name all nodes. 21:54
r11806 | Sage++ | At this point, all files should (hopefully) parse with no unknown nodes. This can be checked by running the parser with the -U (Unknown Debug) option.
r11806 | Sage++ | The parser is, more or less, complete: it parses everything and has a proper name for everything it parses.
r11807 | Sage++ | Adding the tool I used to get node names. It's very simple and should be pretty self explanatory (useage instructions are in the file), but in the interest of documenting my SoC work I'm including it. 21:57
r11807 | Sage++ | It can find all node names in files in the folder it's run in, or search for instances of a given nodetype in all files in the current folder. Useful for me as a dev tool.