Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2010-06-18

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:00 snarkyboojum jnthn: very true.. 'pussy-cat' is a common one from my parents generation ;)
00:02 snarkyboojum question about rakudo * on p6l :)
00:03 REPLeffect joined #perl6
00:04 jnthn snarkyboojum: "duck" was one that sounded a tad random to me :-)
00:05 masak I'll let pmichaud answer that p6l question.
00:05 snarkyboojum jnthn: ah, the english are so creative with their language :)
00:06 masak the release guide suggest that at this point, one celebrate with the appropriate form of fun. I think I'll go for the 'sleep' option. :)
00:07 masak see you tomorrah, #perl6.
00:07 snarkyboojum masak o/
00:11 yinyin joined #perl6
00:12 arnsholt Hmm. I think I may actually start to understand how EXPR works
00:15 REPLeffect joined #perl6
00:17 sorear My hat goes off to this Aaron Sherman guy.
00:17 sorear Not many people can edit compiler output.
00:17 sorear Even fewer can fail to notice that it's obviously not meant to be edited.
00:20 jnthn sorear: To be fair, at one point a lot more of Rakudo, and the grammar engine, when in PIR than are today.
00:20 jnthn But yes, the code does have a quite generated feel. :-)
00:21 sorear Hand-written PIR tends to have named variables, comments, and non-uniform whitespace
00:21 sorear He had none of these luxuries
00:25 REPLeffect joined #perl6
00:33 Sarten-X joined #perl6
00:40 masonkramer_ joined #perl6
00:44 [Coke] If you need a grant manager, I can volunteer.
00:45 [Coke] (and that was before I saw "little to do"! =-)
00:49 [Coke] what's this about editing the generated nqp-rx files?
00:49 [Coke] I fail to see a commit...
00:59 jnthn [Coke]: It was a patch on p6l
01:01 jnthn Sleep o/
01:01 [Coke] jnthn: ahhhhhhhhh
01:01 [Coke] o/
01:05 whiteknight I've got a patch to make rakudo build on current parrot after the ns_func_cleanup branch merged.
01:05 whiteknight http://github.com/Whiteknight/rakudo/commi​t/3d3418f08ff2d53821d8904a0994679f454a17d2
01:05 whiteknight I don't know how to submit a patch on rt, so I'm posting it here
01:06 Tene whiteknight: you can mail rakudobug@perl.org, or I can mail that for you, if you'd prefer
01:06 whiteknight bah
01:06 Tene 'k, I'll do it
01:06 whiteknight no no no, I'm putting together an email
01:06 Tene ... that's good, because I just remembered that my email is currently hosed.
01:08 [Coke] ooh, I must have committed something.
01:08 * [Coke] bets it was like 2 characters.
01:09 Visitor99 joined #perl6
01:16 eternaleye joined #perl6
01:26 REPLeffect joined #perl6
01:35 yinyin joined #perl6
01:43 sorear I'm having this perverse desire to write a PAST code generator for STD.pm6
01:46 snarkyboojum patch to make the spectest progress graph update again (increases the default width of the generated graph) http://gist.github.com/443096
01:49 snarkyboojum it's currently failing with 'Horizontal size too small at tools/progress-graph.pl line 112, <$f> line 756.'
01:49 snarkyboojum of course this can be controlled via a command line switch, so perhaps it's unnecessary, either way I'm guessing rakudo.org/status doesn't specify the width via the cli
01:50 REPLeffect joined #perl6
02:00 snarkyboojum sorear: hopefully the libraries won't be too random :)
02:01 REPLeffect joined #perl6
02:02 sorear snarkyboojum: I don't follow
02:02 snarkyboojum sorear: a light-hearted comment on your p6l post
02:03 snarkyboojum rakudo * will contain "Some random libraries" :)
02:08 cxreg so this now works: (^Inf)>>.say
02:08 TiMBuS joined #perl6
02:08 cxreg but it consumes ever-increasing amounts of RAM
02:08 cxreg an artifact of how iterators work currently?
02:12 plobsing joined #perl6
02:12 colomon no
02:12 colomon >> is never lazy
02:12 cxreg sure it is
02:12 colomon sure it is not.
02:13 cxreg then why does it print output?
02:13 cxreg wouldn't it spin forever if not?
02:13 colomon ....good question
02:13 colomon it's supposed to be eager....
02:13 cxreg in any case, "for 1..Inf { .say }" does the same thing
02:14 colomon ... which is also not supposed to work (yet)
02:14 cxreg i thought Pm's List refactor fixed it
02:14 ajs joined #perl6
02:14 colomon nope
02:14 cxreg well, something did :)
02:14 colomon I explicitly asked him that this morning.
02:15 cxreg i could bisect
02:15 cxreg but it would take a while, since building takes like 20 minutes
02:15 sorear cxreg: >>.say is always a mistake
02:15 sorear do we have the compiler warning on that yet?
02:15 cxreg no
02:16 cxreg sorear: because of the possible parallelism, i know
02:16 cxreg sorear: i wasnt expecting sane output, just testng it
02:16 colomon huh.
02:17 colomon oh, I'll bet it has to do with http://github.com/rakudo/rakudo/commit/9​6af91db7fc9c3cdbbd43fa7a392d1054503d96a
02:17 colomon (for for, anyway)
02:17 sorear actually, hypers should be lazy
02:17 colomon so now maybe the input is lazy but the output is always eager
02:17 sorear well, streaming
02:19 sorear .say for (^1000)>>.expensive shouldn't wait for all the threads to finish before giving output
02:19 sorear ditto (^1000)>>.expensive>>.cheap , cheap shouldn't wait for all the input
02:20 cxreg @birdy>>.cheap>>.cheap
02:21 colomon sorear: I just read it over, and I see no evidence its spec'd that way.
02:22 colomon and: "To force non-lazy list processing, use the eager list operator"
02:22 colomon "A variant of eager is the hyper list operator"
02:29 sorear colomon: "should" in this context introduces a hypothetical tense
02:31 pronik`` joined #perl6
02:39 colomon anyway, cxreg, I think what you're seeing is that for now takes its input lazily, and then eagerly executes.
02:40 colomon so unlike map, you can't use it to generate a lazy list -- it tries to generate all its results at once.
02:40 colomon but you can give it an infinite list as input.  pmichaud++
02:40 sorear TimToady: What phaser are subroutine definitions run in?
02:41 sorear sub x {} === my &x; ??? { &x := ... }
02:52 agentzh joined #perl6
02:55 pugssvn r31339 | colomon++ | [t/spec] Unfudge test that now works.
02:56 [mark] joined #perl6
02:57 dalek rakudo: 28aaf32 | (Solomon Foster)++ | src/core/operators.pm:
02:57 dalek rakudo: If the generating Block in the series operator returns something undefined, the
02:57 dalek rakudo: series terminates.
02:57 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/2​8aaf32ca3855d151f0744a48e635ad9db185ec1
03:23 ciphertext colomon: are you still working on the series operator?
03:23 lue .oO(Is it just me, or do some of these assumptions contradict eachother, creating an impossible situation? http://www.kalzumeus.com/2010/06/17/fals​ehoods-programmers-believe-about-names/)
03:27 snarkyboojum joined #perl6
03:32 REPLeffect joined #perl6
03:32 snarkyboojum joined #perl6
03:35 snarkyboojum seen carlins
03:38 snarkyboojum buubot: seen carlins
03:38 buubot snarkyboojum: I don't think I've seen carlins.
03:38 sorear Sorry, I haven't seen carlins on #perl6
03:42 REPLeffect joined #perl6
03:44 Visitor99 joined #perl6
03:44 Visitor99 left #perl6
03:44 Visitor99 joined #perl6
03:52 REPLeffect joined #perl6
04:02 REPLeffect joined #perl6
04:11 snarkyboojum joined #perl6
04:23 snarkyboojum joined #perl6
04:24 synth joined #perl6
04:33 REPLeffect joined #perl6
04:44 REPLeffect joined #perl6
04:46 TimToady sorear: all named declarations are done at BEGIN time
04:50 kda left #perl6
04:52 pugssvn r31340 | lwall++ | [STD] don't count identifier extenders as part of longest token
04:55 REPLeffect joined #perl6
04:59 dalek rakudo: 0b83903 | util++ |  (13 files):
04:59 dalek rakudo: Fixed various typos in comments and error messages.
04:59 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/0​b839037be4c41984d354394afe8127b86ef3dae
04:59 dalek rakudo: 712cba4 | util++ | src/core/operators.pm:
04:59 dalek rakudo: Merge branch 'master' of github.com:rakudo/rakudo
04:59 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/7​12cba424bdb571e3f8b427cbb18fb67141ef9ce
05:05 REPLeffect joined #perl6
05:12 kaare joined #perl6
05:12 itz joined #perl6
05:27 REPLeffect joined #perl6
05:34 diakopter I love how gmail sends its own google alert email to Spam folder
05:36 orafu joined #perl6
05:39 Su-Shee joined #perl6
05:56 REPLeffect joined #perl6
06:06 REPLeffect joined #perl6
06:19 synth joined #perl6
06:21 moritz_ good morning
06:26 snarkyboojum moritz_ o/
06:26 moritz_ \o
06:26 moritz_ rakudo: say (a => 'b').flip.perl
06:26 p6eval rakudo 28aaf3: OUTPUT«"b\ta"␤»
06:27 moritz_ rakudo: say (a => 'b').invert.perl
06:27 p6eval rakudo 28aaf3: OUTPUT«Method 'invert' not found for invocant of class 'Pair'␤  in main program body at line 11:/tmp/bY4E972Gis␤»
06:27 moritz_ masak++ # release
06:27 snarkyboojum rakudo: say %(a => 'b').invert
06:27 p6eval rakudo 28aaf3: OUTPUT«b  a␤»
06:31 snarkyboojum %() still makes the REPL core dump :O
06:31 moritz_ :(
06:31 snarkyboojum or perl6 -e for that matter
06:36 REPLeffect joined #perl6
06:40 eternaleye joined #perl6
06:42 pugssvn r31341 | moritz++ | [t/spec] Pair.invert
06:54 dalek rakudo: 717459e | moritz++ | src/core/Pair.pm:
06:54 dalek rakudo: Pair.invert
06:54 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/7​17459efdad0abb857c55e2096fc954af1b9acff
06:57 REPLeffect joined #perl6
07:01 snarkyboojum joined #perl6
07:01 eternaleye joined #perl6
07:07 REPLeffect joined #perl6
07:09 snarkyboojum joined #perl6
07:10 Mowah joined #perl6
07:10 sorear Does a Perl6 compiler have to account for the possibility of someone saying eval '&fa' ~ 'il := 2' ?
07:11 sorear and every fail call in the RTS suddentl being rerouted
07:11 sorear er, := sub () {}
07:11 sorear := 2 would croak, 2 !.does Callable
07:13 pugssvn r31342 | sorear++ | [Cursor] Revert a bogus optimization; a horizon is always needed before things like quantifiers, the length that they match the LTM engine cannot control
07:14 sorear pmichaud: How does NQP handle lexer recursion?
07:15 yinyin joined #perl6
07:27 REPLeffect joined #perl6
07:29 tadzik joined #perl6
07:31 pugssvn r31343 | sorear++ | [Cursor] \' also needs the metacharacter treatment.  (How did this not cause a fatal error?)
07:32 moritz_ NQP doesn't have proper LTM
07:33 moritz_ so afaict it doesn't autogenerate LTM-lexers from subrules at all (if that's your question, sorear)
07:33 yinyin joined #perl6
07:34 sorear yeah
07:35 sorear so nqp only considers the syntactic prefix, gotcha
07:35 moritz_ just literal prefixes and <sym>
07:36 kensanata joined #perl6
07:37 REPLeffect joined #perl6
07:40 yinyin joined #perl6
07:41 Schwern joined #perl6
07:47 Schwern joined #perl6
07:48 REPLeffect joined #perl6
07:52 sorear std: my $x = *; sub infix:<quack>($z, $y) { }; * quack 5;
07:52 p6eval std 31325: OUTPUT«ok 00:01 109m␤»
07:53 sorear ok, it's a recent regression
07:53 mee joined #perl6
07:55 cognominal rakudo:  say    %( \( 1, (:a(2)), :b(2)) ).keys
07:55 p6eval rakudo 712cba: OUTPUT«ab␤»
07:56 cognominal I thought that (:a(2)) would end up as positional
07:56 moritz_ yes, it should
07:56 moritz_ bug
07:56 cognominal will file
07:57 moritz_ cognominal++ # the new masak *SCNR*
07:57 cognominal masaker than masak is difficult.
07:57 cognominal SCNR?
07:57 moritz_ what massacre?
07:57 moritz_ sorry, could not resist
07:58 jferrero joined #perl6
07:58 cognominal I updated my patch for Capture.perl to handle that case so I was surprised to see the result
08:06 cognominal the cloud is cloudy today, gmail does not want to send my bug  :(
08:07 pugssvn r31344 | sorear++ | [Cursor] Remove a fossil of the old LTM which was causing operator definitions to break
08:07 sorear yay, I just fixed one of the biggest regressions in STD
08:08 pragma_ people keep using this word 'regression', but i'm not sure if they know what it means
08:09 moritz_ pragma_: what makes you think people don't know what it means?
08:09 REPLeffect joined #perl6
08:09 sorear The act of passing back or returning; retrogression; retrogradation.
08:09 sorear The test which I speak of, I broke two days ago.
08:10 cognominal is this so rare a word in English?
08:10 moritz_ not in context of programming
08:11 dakkar joined #perl6
08:11 moritz_ where it is often used for "breakage of something that used to work", which is a valid use for "regression", because it is indeed a step back, in some sense and some dimension
08:11 sdo joined #perl6
08:12 mee I think people conflate regrestion-as-bug with regression-as-statistical-method
08:16 ejs joined #perl6
08:17 xabbu42 joined #perl6
08:19 REPLeffect joined #perl6
08:19 dakkar_ joined #perl6
08:19 moritz_ do they? I don't think I've ever observed it
08:20 sorear moritz_: would it be possible for me to help debug why STD hasn't updated yet?
08:22 cognominal BooK-- # pointe sur des blogs intéressants.
08:22 cognominal oops
08:22 moritz_ sorear: I can just run the rebuild, and nopaste you the output
08:23 pugssvn r31345 | pmurias++ | [mildew] optC is the default backend
08:23 pugssvn r31346 | pmurias++ | [mildew] fix a bug happening while parsing multiple molds in the same run
08:23 pugssvn r31347 | pmurias++ | [smop] the s1p/t/*.m0ld tests pass using mildew
08:24 moritz_ sorear: http://nopaste.snit.ch/21361
08:27 clintongormley joined #perl6
08:28 pugssvn r31348 | sorear++ | [viv] min is no longer used; don't generate it.  Cuts STD.pmc load time from 3.35s to 3.20s
08:28 pugssvn r31349 | pmurias++ | [smop] remove the old build system so that nobody gets confused
08:29 pmurias joined #perl6
08:29 REPLeffect joined #perl6
08:29 pmurias ruoso: smop built using Module::Build and using Mildew for processing m0ld passes s1p/t/*.m0ld tests
08:29 sorear moritz_: What Perl version is running on feather?
08:30 sorear from the error message, it looks like my hack for getting at the Unicode databases is failing to find them
08:31 moritz_ sorear: mutiple... in the shell where I started it it picks up 5.12.1, but I think the cronjob uses 5.10.0
08:31 pmurias sorear: how different is the VAST from the boostraped STD from the one produced by the gimme5 one?
08:32 sorear pmurias: identical, modulo a few obscure bugs I had to fix
08:32 moritz_ yes, the cron job picsk up 5.10.0
08:33 moritz_ same error
08:33 moritz_ should I try to nuke src/perl6/ and try again?
08:34 sorear that's strange, because that error *would* be caused by running under 5.10
08:34 sorear I would have thought 5.12 would fix it
08:35 sorear is your /usr/local/bin/perl a 5.10?  std uses an absolute path
08:35 moritz_ yes
08:35 sorear I'll fix that
08:36 sorear in what ways is 5.12 available?
08:36 moritz_ well
08:36 sorear 'perl' in $PATH, usr/bin?
08:36 moritz_ I can make it the perl in $PATH
08:36 moritz_ or I can change the symlink in /usr/local/bin/perl to point to /opt/perl-5.12.1/bin/perl
08:37 sorear yeah that should be enough to make it work
08:37 sorear (excepting for chroot issues?)
08:37 moritz_ it's all in a chroot
08:38 * moritz_ tries again
08:39 pugssvn r31350 | sorear++ | [STD/README] Bump dependency to 5.12, since we use undocumented interfaces to get direct access to the Unicode properties.  Ideally we would maintain our own database, possibly set up by a Makefile rule.  Patches welcome.
08:39 xabbu42_ joined #perl6
08:41 thebird joined #perl6
08:47 pmurias sorear: what would i have to do to lower the dependency back to 5.10?
08:47 moritz_ std: 1
08:47 p6eval std 31350: OUTPUT«Use of uninitialized value in split at CursorBase.pm line 1828.␤Use of uninitialized value in split at CursorBase.pm line 1828.␤Use of uninitialized value in split at CursorBase.pm line 1828.␤Use of uninitialized value in split at CursorBase.pm line
08:47 p6eval ..1828.␤[31m===[0mSORRY![31m===…
08:47 moritz_ maybe evalbot is still using 5.10
08:49 pugssvn r31351 | moritz++ | [evalbot] use perl 5.12.1 to run STD
08:49 sorear pmurias: find a reasonably fast way to access the Unicode properties of a codepoint that works on 5.10 and 5.12
08:50 sorear currently, STD slurps in Perl5.12's internal data files and then uses vec()
08:52 moritz_ uh, ouch
08:52 moritz_ /usr/local/bin is in PATH before /bin/
08:52 moritz_ and /usr/bin
08:52 moritz_ so now the perl that's generally picked up is a 5.12.1
08:52 moritz_ which doesn't have the modules installed needed for evalbot
08:54 * moritz_ hopes that the few hundred dependencies (including POE) will install without problem
08:57 moritz_ of course it doesn't
08:57 moritz_ *sigh*
08:58 arnsholt Changing the user's $PATH might be easier?
08:59 moritz_ it might, if the process weren't hidden in diakopter's screen session :-)
09:00 * moritz_ curses at GD::Graph
09:01 moritz_ that's what's supposed to generate the graphs on rakudo.org/status
09:02 arnsholt su to root, su to diakopter and do it for him? O=)
09:02 REPLeffect joined #perl6
09:02 moritz_ however, it doesn't support subpixel rendering
09:03 moritz_ and since pmichaud's last update to spectest-progress.csv there are more datapoints than the canvas is wide
09:03 moritz_ thus failing to generate the graphic
09:03 moritz_ I guess we'll have to switch to gnuplot variant permanently
09:05 pmurias sorear: wouldn't bundling those data files with STD work?
09:08 sorear pmurias: good idea, I'll do that.
09:09 jnthn morning o/
09:09 p6eval joined #perl6
09:09 moritz_ m\orning
09:09 moritz_ std: 1
09:09 p6eval std 31351: OUTPUT«ok 00:01 110m␤»
09:11 REPLeffect joined #perl6
09:11 Schwern joined #perl6
09:11 pugssvn r31352 | pmurias++ | [smop] all the tests use one harness
09:14 sorear Unicode::Properties::XS also looks maybe interesting
09:15 moritz_ rakudo: multi a ($) { }; multi a (Int $) { }; say &a.cando(\1).WHAT
09:15 p6eval rakudo 717459: OUTPUT«Method 'cando' not found for invocant of class 'Perl6MultiSub'␤  in main program body at line 11:/tmp/Az0YK8Vr6e␤»
09:15 pugssvn r31353 | sorear++ | [Cursor] We don't actually use the ability to attach multiple fates to a NFA node.  -0.05s startup time
09:18 sorear um, epic fail
09:18 xabbu42_ joined #perl6
09:18 sorear whoever was preparing Unicode::Property::XS forgot to include the .xs file in the MANIFEST
09:18 sorear there is /no source code/ for this distribution
09:19 moritz_ ouch
09:20 sorear no binaries, either
09:21 moritz_ maybe mail the author
09:21 REPLeffect joined #perl6
09:21 jnthn moritz_: Yeah, I need to fix that .cando on multi thing
09:22 jnthn moritz_: It's not .cando itself, just a more general bug
09:23 sorear PAUSEID@cpan.org ?
09:23 moritz_ it's worth a try
09:25 pugssvn r31354 | moritz++ | [t/spec] fudge regex-in-variable.t for rakudo
09:27 moritz_ jnthn: would .cando on a multi return the most specific match first?
09:28 jnthn moritz_: I don't think it's spec'd that way.
09:28 jnthn moritz_: I suspect at the moment it would not.
09:28 jnthn moritz_: If it needs to, I can fix that.
09:29 jnthn Or it's an easy-ish bit of C hacking if someone else wants to.
09:29 jnthn It would make sense.
09:29 moritz_ jnthn: it would make calling the right one of several MAIN multis much easier
09:29 moritz_ well, not much actually
09:30 moritz_ we could do .cando, and a normal dispatch if it succeeds
09:30 jnthn moritz_: Patch S06 if you like.
09:30 moritz_ it migth awesomeify error messages though
09:30 dalek rakudo: 6ec1691 | moritz++ | t/spectest.data:
09:30 dalek rakudo: run one more test file (regex interpolation)
09:30 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/6​ec1691ebd5dfc51936280904f4a11e3da82b671
09:31 sorear mail sent
09:31 REPLeffect joined #perl6
09:32 moritz_ jnthn: in your mental model, can a nextsame() result in an ambigous dispatch?
09:33 jnthn Yes
09:34 jnthn oh wait
09:34 * jnthn slurps the coffee harder
09:34 jnthn moritz_: No
09:34 jnthn moritz_: It just makes a list of all the candidates that could work and moves through them.
09:34 pugssvn r31355 | moritz++ | [S06] order of candidates returned from .cando
09:34 moritz_ so the candidate list is actually a list, and not a more general graph
09:34 moritz_ (the one that nextsame uses)
09:34 jnthn We build a DAG during the sorting, but the candidate list beyond that is just a list
09:35 jnthn And the one we work through for nextsame is just a list containing some (or maybe all in extreme cases) of the items from the overall candidate list
09:35 moritz_ I kinda expected the dispatch to provide a pointer into the DAG
09:35 jnthn Actually doing a topological sort destroys the DAG.
09:35 moritz_ and then nextsame advances that pointer to less specific candidates
09:35 jnthn We don't store the DAG at all in the long run.
09:36 jnthn We just store a sorted list.
09:36 jnthn And finding candidates for nextsame is like grepping that list to say "which things in this list match this capture"
09:36 moritz_ so how can you detect ambiguous dispatch efficiently? always check the next-specific candidate too?
09:37 moritz_ so it seems my mental image of multi dispatch was still a tad wrong
09:37 jnthn moritz_: Ah, the list is a little more than a list
09:37 jnthn moritz_: We have a "marker" between each group of equally tied candidates.
09:38 moritz_ ah
09:38 jnthn So we consider up to the next marker and see how many matching candidates we have.
09:38 jnthn In my impl it's just a NULL
09:38 moritz_ so next time we get a NULL PMC access... :-)
09:38 jnthn And the real list end is two NULLs in a row.
09:38 jnthn No, it's a C NULL. :-)
09:38 jnthn You'll get a segfault.
09:38 jnthn But it doesn't happen. :-)
09:38 moritz_ :-)
09:38 arnsholt I have a grammar with these two rules: token items:sym<last> { <EXPR> }; token items:sym<ht> { <EXPR> <.ws> '|' <EXPR> }
09:39 moritz_ don't
09:39 arnsholt Is a|b being parsed as a items:sym<last> a bug or a result of me not grokking LTM properly?
09:39 moritz_ first of all <.ws> terminates LTM, even in a perfect LTM implementation
09:40 moritz_ secondly, rakudo only does LTM for literal prefixes and <sym>
09:40 arnsholt (The grammar is in nqp-rx, but I suspect that has the same limitation)
09:40 moritz_ right
09:41 moritz_ you have to refactor into
09:41 moritz_ <EXPR> [ <.ws> '|' <EXPR> ] ?
09:41 arnsholt Quite
09:41 arnsholt Messes up my nice action methods, but oh well =)
09:42 moritz_ and remember that it turns $<EXPR> into an array
09:42 moritz_ yes, that's a shame (messed up action methds)
09:42 REPLeffect joined #perl6
09:43 arnsholt It's for Prolog lists, so I'll probably say $<car>=<.EXPR> [<.ws> '|' $<cdr>=<.EXPR>]? =)
09:43 moritz_ <car=.EXPR>
09:43 moritz_ shorter
09:43 xabbu42_ joined #perl6
09:43 snarkyboojum not sure if this is needed/wanted, but this is a patch to make the spectest progress graph update again (it's currently failing with a perl error) - http://irclog.perlgeek.de/​perl6/2010-06-18#i_2452142
09:43 Juerd Is whitespace not allowed around that =?
09:44 arnsholt moritz_: Oh, nice. I'll just go change all my grammars now =)
09:45 am0c joined #perl6
09:46 Zapelius joined #perl6
09:50 moritz_ arnsholt: please test first :-)
09:50 moritz_ Juerd: dunno
09:51 sjohnson hi!
09:52 REPLeffect joined #perl6
09:54 Juerd I wonder if feather is actually still being used
09:54 moritz_ it is
09:54 yinyin joined #perl6
09:54 moritz_ feather1 for various screen sessions and websites
09:54 Juerd For more than just irssi and some other mostly-idle things...
09:55 Juerd It doesn't appear to be used much for compiling these days
09:55 moritz_ I think the pugs smokes were discontinued
09:55 Juerd Very understandable
09:55 pugssvn r31356 | sorear++ | [Cursor] Following a so-simple-I-feel-stupid suggestion from pmurias++, we now keep our own copy of part of the Unicode property database.  As a fringe benefit, it's much more similar to the internal form and can be loaded in 0.1s less time.
09:55 arnsholt moritz_: The <x=.y> thing I don't think needs testing
09:55 Juerd It has 2,5 GB of RAM and the free memory number has not reached 0 in over a year now.
09:55 arnsholt The other solution needs a bit of work. But I think I should do that after work =)
09:56 jnthn Juerd: Well, if you really want somebody to change that... ;-)
09:56 Juerd Feather1 has had 1 GB of buffers+cache for months.
09:56 Juerd jnthn: I have to cut costs somehow, and decreasing feather's footprint would certainly help
09:56 jnthn Mostly I've used feather for irssi
09:57 Juerd I wouldn't mind keeping it in its current state if it actually needed it
09:57 Juerd But it looks like I could easily dial down the resources without anyone noticing it for the things that its being used for
09:57 moritz_ Juerd: I think feather2 is rather promising for cutting down
09:57 Juerd moritz_: In what way?
09:57 moritz_ Juerd: reducing footprint
09:58 moritz_ it runs a few websites, but nothing really memory intensive, I'd guess
09:58 Juerd It's mostly idle, isn't it?
09:58 moritz_ right
09:58 sorear aaaand my mail to the PAUSE contact id of Unicode::Property::XS bounced
09:58 sorear looks like it's ::ButWorks time
09:58 Juerd My current thougts are to buy a new machine and replace feather0, c10 and cow, three Xen dom0's
09:58 Juerd Put them all on one physical machine
09:58 moritz_ the only reason to have it in a separate VM is security concerns
09:59 Juerd Slightly shrink feather1 and 2's memory
09:59 moritz_ hugme runs on it, which needs to store github API tokens to work
09:59 * sorear -> sleep
09:59 Juerd feather2 only has 350 MB :)
10:00 sorear hey, that's as much as my localhost
10:00 moritz_ oh, maybe there's not much to gain there by cutting memory :-)
10:00 Juerd 135 MB buffers, 63 MB cache, 97 MB free. That would mean it could run with a negative amount of memory! :)
10:01 moritz_ :-)
10:01 Juerd I guess there's some overlap between buffers and cache, perhaps.
10:01 * Juerd doesn't know how that works, anyway.
10:01 arnsholt I think the answer goes along the lines of "Operating systems are hard, let's go shopping!" =)
10:02 Juerd Virtual ones are rather soft
10:02 arnsholt True, true
10:02 arnsholt But thinking too hard about virtual memory makes me go cross-eyed
10:02 REPLeffect joined #perl6
10:03 pmurias ruoso: ping
10:03 Juerd arnsholt: Not cross-brained?
10:04 Mowah joined #perl6
10:11 FardadJalili joined #perl6
10:13 REPLeffect joined #perl6
10:13 dual joined #perl6
10:15 FardadJalili consider @my-array an array of pairs. what's the difference between @my-array>>.key>>.chars and @my-array>>.key.chars ?
10:17 moritz_ the former returns a list of numbers, each of which is the number of chars of a key
10:17 moritz_ the latter (if it works at all) turns the list of all keys into a string, and returns the number of characters therein
10:18 moritz_ rakudo: my @a = <a bc>; say @a.chars
10:18 p6eval rakudo 717459: OUTPUT«4␤»
10:18 moritz_ ok, works
10:18 FardadJalili oh
10:18 FardadJalili so >>. return a list of keys itself
10:19 mathw yes
10:19 FardadJalili ok thanks a lot
10:19 mathw >>. calls the method on each element of the array
10:19 mathw and gives back a list of the results
10:28 colomon phenny: tell ciphertext I've paused for the moment (on series), but I still have a list of things that need doing  and a notion that this is a pretty good time to be doing them.
10:28 phenny colomon: I'll pass that on when ciphertext is around.
10:31 bbkr Kiev release! reminds me of my Kiev/Chernobyl trip :) time for testing...
10:31 tadzik MAIN sub <3 :)
10:32 jnthn bbkr: Heh, despite having been in Kiev three times I've still never been on a trip to Chernobyl.
10:33 REPLeffect joined #perl6
10:34 bbkr jnthn: it's one hour travel by bus from there, but you need to obtain pass first. remember to get Geiger meter, some places still have 20x radiation norm.
10:35 jnthn bbkr: Is it actually worth to visit?
10:37 tadzik rakudo: my %hash = foo => 'bar', val => 5; for (%hash.keys) { say "$_ -> %hash<$_>" }
10:37 p6eval rakudo 717459: OUTPUT«val -> ␤foo -> ␤»
10:37 tadzik why doesn't it work?
10:37 jnthn tadzik: You want %hash{$_}
10:38 jnthn <...> is only for literal keys
10:38 jnthn It doesn't interpolate variables.
10:38 tadzik ah, I got it
10:38 tadzik so it's looking for an entry with '$_' key
10:38 tadzik ?
10:38 jnthn Right. :-)
10:38 tadzik smart :)
10:40 snarkyboojum left #perl6
10:41 bbkr jnthn: worth every penny. despite the fact that it's the last chance to see old sarcophagus and chimney (they are building new one), you can also "travel back" in time to visit creepy remains of model-socialist town. I'm from Poland so I know how socialism looked like, but for outsiders who never been in soviet block it may be shocking.
10:44 REPLeffect joined #perl6
10:44 jnthn bbkr: *nod* I'll try and do it next time I find myself in Kiev. :-)
10:49 bbkr jnthn: I've managed to visit sarcophagus in Chernobyl, Pripyat school, pre-school, swimming pool, theater, ship bay, hotel, amusment park, outside Pripyat machines graveyard, death bridge, red forest before absorbed radiation went to dangerous level. i skipped to Duga systems (also known as Chernobyl-2) and Janow train station (STALKER players know what it looks like)due to high radiation.
10:50 pkkm joined #perl6
10:51 xabbu42_ joined #perl6
10:51 bbkr rakudo: my @t=1,2; my %h; %h{@t}="one","two"; say %h.perl
10:51 p6eval rakudo 6ec169: OUTPUT«{"1" => "one", "2" => "two"}␤»
10:52 bbkr rakudo: my %h; %h{"12".comb(/(\d)/)}="one","two"; say %h.perl # test with GatherIterator
10:52 p6eval rakudo 6ec169: OUTPUT«{"1" => "one", "2" => "two"}␤»
10:52 bbkr yay! good job!
10:53 ggoebel joined #perl6
10:54 cosimo joined #perl6
10:59 cosimo joined #perl6
11:04 REPLeffect joined #perl6
11:07 Mowah joined #perl6
11:14 REPLeffect joined #perl6
11:17 Mowah joined #perl6
11:21 Zapelius Parrot Plumage is The Way to use perl6 modules?
11:26 moritz_ Zapelius: I've mostly used proto so far
11:27 Zapelius found proto too, but wasn't sure which one to use. will try it first. thanks moritz_
11:36 REPLeffect joined #perl6
11:36 envi^home joined #perl6
11:37 FardadJalili can you use .signature on methods? ( or, is split a method of Str class? )
11:46 moritz_ FardadJalili: yes, works on methods too
11:47 FardadJalili moritz_: how should I use it on Str's split then? something like this => say &some-sub.signature.params>>.name ~ ""; ?
11:47 moritz_ I guess the method is really in Any
11:48 moritz_ rakudo: say Any.^methods.grep({.name eq 'split'}).signature.perl
11:48 p6eval rakudo 6ec169: OUTPUT«Method 'signature' not found for invocant of class 'List'␤  in main program body at line 11:/tmp/LM1lFEIlnJ␤»
11:48 moritz_ rakudo: say Any.^methods.grep({.name eq 'split'}).[0].signature.perl
11:48 p6eval rakudo 6ec169: OUTPUT«Method 'signature' not found for invocant of class ''␤  in main program body at line 11:/tmp/HSosAZOWa8␤»
11:48 moritz_ rakudo: say Any.^methods.grep({.name eq 'split'})
11:48 p6eval rakudo 6ec169: OUTPUT«␤»
11:48 moritz_ rakudo: say Any.^methods(:local).grep({.name eq 'split'})
11:49 p6eval rakudo 6ec169: OUTPUT«␤»
11:49 moritz_ rakudo: say Any.^methods(:local)
11:49 p6eval rakudo 6ec169: OUTPUT«pickflatanySeqminmaxdoesrotatej​oincanreducereverselistisamapminmaxsor​tfirstgrepnonevaluesNumericelemsendStr​allkeysuniqclassifypairskvoneACCEPTS␤»
11:49 moritz_ rakudo: say 'foo'.methods().join(" ")
11:49 p6eval rakudo 6ec169: OUTPUT«Method 'methods' not found for invocant of class 'Str'␤  in main program body at line 11:/tmp/GUqgLKvvQs␤»
11:49 moritz_ rakudo: say 'foo'.^methods().join(" ")
11:49 p6eval rakudo 6ec169: OUTPUT«pred Int l Bool succ encode Num WHICH perl s Str ACCEPTS d e f pred atanh cosec exp p5chop lc chars sinh to-radians acotan roots lcfirst sec asec trim cotanh trim-leading cis log sech log10 rand truncate sprintf bytes sqrt sin asin cosh succ sign asinh acosech abs uc ceiling
11:49 p6eval ..unpola…
11:50 moritz_ rakudo: say 'foo'.^methods().grep({.name eq 'abs'})
11:50 p6eval rakudo 6ec169: OUTPUT«abs␤»
11:50 moritz_ rakudo: say 'foo'.^methods().grep({.name eq 'split'})
11:50 p6eval rakudo 6ec169: OUTPUT«split␤»
11:50 moritz_ rakudo: say 'foo'.^methods().grep({.name eq 'split'}).[0]
11:50 p6eval rakudo 6ec169: OUTPUT«split␤»
11:50 moritz_ rakudo: say 'foo'.^methods().grep({.name eq 'split'}).[0].signature.perl
11:50 p6eval rakudo 6ec169: OUTPUT«get_attr_str() not implemented in class 'Perl6MultiSub'␤  in main program body at line 1␤»
11:50 moritz_ rakudo: say 'foo'.^methods().grep({.name eq 'split'}).[0].candidates>>.signature.perl
11:50 p6eval rakudo 6ec169: OUTPUT«(:(Mu : Regex $matcher, Any $limit = { ... }, Any :all($all);; *%_), :(Mu : Any $delimiter, Any $limit = { ... }, Any :all($all);; *%_))␤»
11:56 REPLeffect joined #perl6
11:56 FardadJalili moritz_: can I ask what does that ^ do in 'foo'.^methods() ?
11:56 agentzh joined #perl6
11:56 takadonet morning all
11:57 colomon o/
11:57 takadonet how is everyone doing?
11:57 moritz_ FardadJalili: it's a method call on the meta class
11:58 moritz_ FardadJalili: which handles introspection of Perl 6 objects
11:58 colomon takadonet: post-release grogginess here.  :)
11:58 Zapelius plumage and proto both failed to install the Test -module :(
11:58 moritz_ Zapelius: there's a Test.pm shipped with rakudo
11:58 Zapelius plumage had a syntax error and proto failed to open something
11:58 Zapelius really? :)
11:59 moritz_ yes, reallly
11:59 * Zapelius runs find
11:59 moritz_ rakudo: use Test; plan 1; ok 1, 'a test';
11:59 p6eval rakudo 6ec169: OUTPUT«1..1␤ok 1 - a test␤»
11:59 xabbu42_ joined #perl6
12:00 moritz_ it installed into $prefix/lib/$parrot_version​-devel/languages/perl6/lib
12:00 moritz_ *it is
12:02 Zapelius interesting. it's there now. before getting proto and plumage I was getting a "Unable to find module 'Test' in.."
12:02 Zapelius anyway, it works now :)
12:02 moritz_ \o/
12:03 FardadJalili it seems perl6 does have a doc implemented in it's compiler :D.
12:03 moritz_ doc?
12:03 FardadJalili documentation
12:03 moritz_ not yet
12:06 xabbu42_ joined #perl6
12:07 rv2733 joined #perl6
12:10 masak joined #perl6
12:11 masak oh hai, #perl6!
12:11 moritz_ oh hai masak
12:11 moritz_ masak++ # release
12:11 mathw o/ masak
12:11 mathw masak++
12:11 mathw everyone++ # rakudo #30! wow!
12:11 colomon \o/
12:11 masak mathw: have you been a release manager yet?
12:12 mathw masak: no
12:12 masak mathw: consider trying it. it's easier than it might seem. :)
12:13 mathw I have considered it
12:13 mathw I just have never got round to sticking my hand up
12:13 masak oh, that's easy too :)
12:13 moritz_ mathw: if you say "yes" now, I'll assign you for the August release
12:14 mathw Okay
12:14 mathw I should be recovered from summer school by then
12:15 masak mathw++
12:18 mathw and it's before my life goes autumn crazy like it seems to every year now
12:18 mathw so \o/ for timing
12:19 moritz_ mathw: please submit a CLA if you haven't already
12:19 dalek rakudo: efcf64d | moritz++ | docs/release_guide.pod:
12:19 dalek rakudo: mathw++ is our release manager for August 19th
12:19 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e​fcf64d9a77acc4284a0e2ce04dec9b98d3cf170
12:19 mathw Yes I should do that
12:19 mathw how?
12:20 moritz_ http://www.perlfoundation.org/​contributor_license_agreement
12:20 xabbu42_ joined #perl6
12:21 Zapelius rakudo: require "Foo.pm";
12:21 p6eval rakudo 6ec169: OUTPUT«Could not find sub &require␤  in main program body at line 11:/tmp/LlLt21CYuf␤»
12:21 Zapelius rakudo: need "Foo.pm";
12:21 p6eval rakudo 6ec169: OUTPUT«Could not find sub &need␤  in main program body at line 11:/tmp/djwwmp2zNu␤»
12:21 moritz_ now that's strange; I'm quite sure that use is implemented in terms of need
12:22 moritz_ rakudo: need Test;
12:22 p6eval rakudo 6ec169:  ( no output )
12:22 moritz_ ah, only recognized as a syntactic form without the quotes
12:23 Zapelius how do I load a local module not in INC ? as quotes don't do
12:23 mathw moritz_: you'll have to remind me when I'm at home and can print it
12:23 mathw or I might even remember (gasp)
12:23 moritz_ Zapelius: BEGIN { @*INC.push('path') }
12:25 masak rakudo: say (a => 'b').invert.perl
12:25 p6eval rakudo 6ec169: OUTPUT«"b" => "a"␤»
12:25 Zapelius moritz_, actually, the correct question is for libs, that contain just some classes, no module X {} -definitions
12:25 masak moritz_++
12:25 REPLeffect joined #perl6
12:26 masak Zapelius: modifying @*INC from inside the program should be a last resort, if you ask me. better to set PERL6LIB or use the -I flag to perl6.
12:26 Zapelius I could make them modules but that's just for testing so I feel kind of too lazy to do that.. :)
12:26 mathw rakudo: my %h = (a => 1, b => 2, c => 3); %h.perl.say; %h>>.invert.perl.say;
12:27 p6eval rakudo 6ec169: OUTPUT«{"c" => 3, "a" => 1, "b" => 2}␤(3 => "c", 1 => "a", 2 => "b")␤»
12:27 mathw \o/
12:27 cognominal joined #perl6
12:27 mathw and it demonstrates hash non-ordering too :)
12:27 mathw (not to be relied upon)
12:27 moritz_ and also that .invert returns a list, not a hash
12:28 mathw (reliability especially void on the planet Earth)
12:28 mathw moritz_: yeah but you could just cram it back in a hash afterwards
12:28 moritz_ right
12:28 moritz_ or use hash.push
12:28 JimmyZ joined #perl6
12:29 * mathw has a sudden vision of everyone getting together and chanting "There's more than one way to do it!"
12:29 moritz_ well, %h.push does something different that just cramming stuff into a hash
12:30 moritz_ rakudo: m %h; %h.push: { a => 1, b => 2, a => 3}.insert; say %h.perl
12:30 p6eval rakudo 6ec169: OUTPUT«===SORRY!===␤Symbol '%h' not predeclared in <anonymous> (/tmp/ujewTehrdz:11)␤»
12:30 Zapelius got to go..
12:30 moritz_ rakudo: my %h; %h.push: { a => 1, b => 2, a => 3}.invert; say %h.perl
12:30 p6eval rakudo 6ec169: OUTPUT«{"3" => "a", "2" => "b"}␤»
12:30 moritz_ uhm
12:31 moritz_ rakudo: my %h; %h.push: { a => 1, b => 2, c => 1}.invert; say %h.perl
12:31 p6eval rakudo 6ec169: OUTPUT«{"2" => "b", "1" => ["c", "a"]}␤»
12:31 mathw oooooh
12:31 moritz_ that's what I wanted to demonstrate
12:31 mathw ooooooooooooh
12:31 mathw that's even more awesome
12:32 masak mathw: we should totally have such a chant.
12:32 mathw masak: nah, we should have an entire song
12:32 * masak wants to write one now
12:33 mathw go ahead
12:33 mathw I'm useless at lyrics
12:35 REPLeffect joined #perl6
12:36 dalek rakudo: 3da39cf | snarkyboojum++ | tools/progress-graph.pl:
12:36 dalek rakudo: Increase the width of the spectest progress graph
12:36 dalek rakudo: Signed-off-by: Moritz Lenz <moritz@faui2k3.org>
12:36 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/3​da39cf2b3e038ffd60048e6093550da09581516
12:37 arnsholt nqp: sub h(*%h) { %h }; say(h('a' => 1));
12:37 p6eval nqp: OUTPUT«Assignment ("=") not supported in NQP, use ":=" instead at line 1, near "> 1));"␤current instr.: 'parrot;HLL;Grammar;panic' pc 552 (src/cheats/hll-grammar.pir:205)␤»
12:37 arnsholt Bug?
12:37 moritz_ nqp: sub h(*%h) { %h }; say(h(a => 1));
12:38 p6eval nqp: OUTPUT«Hash[0xfceb50]␤»
12:38 moritz_ arnsholt: it seems nqp only supports the version of => with an identifier on the LHS
12:38 jnthn Aye, NQP doesn't know about pairs over than those that work as named arguments.
12:38 moritz_ arnsholt: the reason is that parrot has no native concept of pairs... what jnthn said
12:38 arnsholt Ah, right
12:38 jnthn So, not a bug as such, though it's an unhelpful error.
12:39 arnsholt In that case, I'll populate my operator hash the old-fashioned way
12:39 moritz_ arnsholt: that said, a patch to the parser which produces a more awesome error message would be appreciated
12:39 jnthn Aye
12:39 moritz_ do you have commit access to nqp-rx already?
12:39 arnsholt Yeah
12:40 arnsholt Apparently someone gave it to me in Copenhagen
12:40 masonkramer joined #perl6
12:40 moritz_ :-)
12:41 arnsholt Of course, I didn't notice until a few months later ^^
12:42 masak "slowly pulled into a web of trust" :P
12:42 jnthn "caught in a web of trust" ;-)
12:43 masak ah, much better :)
12:43 moritz_ and s/pulled/dragged/ :-)
12:44 masak where were you guys yesterday when I wanted comments on the release announcement? :P
12:44 moritz_ nope, I went to bed shortly before
12:45 masak rakudo: subset IntOnAThursday of Int where { Date.today.day-of-week == 4 }; say 5 ~~ IntOnAThursday
12:45 p6eval rakudo 6ec169: OUTPUT«0␤»
12:45 masak \o/
12:45 moritz_ you're so evil.
12:46 REPLeffect joined #perl6
12:46 mathw hahaha
12:46 mathw awesome
12:46 masak :>
12:46 masak should probably have named the type IntAndTodayIsThursday, though.
12:48 snarkyboojum joined #perl6
12:48 masak why is the numeric value of an enum the default when stringifying, by the way? I've been wondering that occasionally, and I'm sure there's a good reason, but I can't think of it.
12:48 masak snarkyboojum! \o/
12:48 masak if it were the name that was printed instead, my evaluation above would say "False" instead.
12:48 mathw I tend to think that the numeric value of an enum should be as hidden as possible, lest people start treating them like C programmers do
12:49 snarkyboojum masak-san! o/
12:49 masak mathw: right.
12:49 masak in some sense, the string value is much more meaningful than the numeric value, which only has to be unique, but is otherwise arbitrary.
12:49 masak (actually, the enum mechanism doesn't even enforce its being unique)
12:50 moritz_ masak: you wondered about :: yesterday. It just means "parse the following bareword as a type name, even though you didn't declare it yet"
12:50 moritz_ it's enough to declare it later (but still at compile time)
12:50 jnthn masak: In general, enum elements are just the value + some extra bits mixed in, or at least so far as I can follow.
12:50 Visitor99 joined #perl6
12:50 masak moritz_: ok. any special contortions needed to square that with its use as a type variable in signatures?
12:50 Visitor99 left #perl6
12:50 Visitor99 joined #perl6
12:51 masak jnthn: right, I get that part. but why can't we stringify to the name per default?
12:51 moritz_ masak: it's something I've long complained about (that type captures use the same syntax). It really feels like a unification of two concepts that aren't similar enough
12:51 moritz_ in both case it's "it's a type", but apart from that they are quite different
12:52 dakkar joined #perl6
12:52 moritz_ one promises a type declaration, the other is a type declaration
12:52 moritz_ but I haven't been able to come up with a better syntax for either
12:52 jnthn They look the same, but I think the way we get them parsed works out to be difference.
12:52 jnthn *different
12:52 jnthn masak: Well, if you had an enum whose underlying type was strings rather than ints...
12:52 masak moritz_: because in Date.pm, it's used once as a forward-reference, and once as a type restriction, even though the intent was probably forward-declaration both times.
12:53 masak jnthn: not what I meant.
12:53 jnthn ...then I guess things get a bit odd maybe.
12:53 jnthn masak: Maybe not, but it's still a problem.
12:53 masak jnthn: I meant for ordinary things like Bool. why do we print "0" rather than "False"?
12:54 jnthn Because Bool is an enum based on an integer type
12:54 mathw Does the leading :: mean perhaps "There is a type called..."
12:54 moritz_ masak: right. Line 89 is wrong.
12:54 pmichaud good morning, #perl6
12:54 jnthn morning, pmichaud
12:54 masak moritz_: it is, isn't it? what's the fix?
12:54 masak moritz_: actually, it's an excellent example of why your complaint matters. :)
12:54 masak morning, pmichaud!
12:55 moritz_ masak: the fix is to add a stub
12:55 moritz_ masak: class DateTime { ... }
12:55 masak ah, yes.
12:55 masak how sad. :(
12:55 moritz_ masak: because you can't use the other meaning of :: in a signature
12:56 REPLeffect joined #perl6
12:56 masak cognominal++ # RT ad libs!
13:04 synth joined #perl6
13:06 REPLeffect joined #perl6
13:07 masak std: loop (;;) {}
13:07 p6eval std 31356: OUTPUT«cannot open unicode maps: No such file or directory at CursorBase.pm line 1825.␤BEGIN failed--compilation aborted at CursorBase.pm line 1845.␤Compilation failed in require at Cursor.pm line 3.␤BEGIN failed--compilation aborted at Cursor.pm line 3.␤Compilation failed in require at
13:07 p6eval ..S…
13:07 masak sorear: help! :/
13:08 JimmyZ he is sleeping
13:08 masak it's no real rush, I guess.
13:09 masak but something is broken now, it seems.
13:14 SmokeMachine joined #perl6
13:15 pkkm_ joined #perl6
13:15 xabbu42_ joined #perl6
13:16 REPLeffect joined #perl6
13:18 cognominal joined #perl6
13:19 dalek rakudo: 3b87387 | pmichaud++ | docs/ROADMAP:
13:19 dalek rakudo: Update ROADMAP with new release date, completed items.
13:19 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/3​b87387bbe33778915d52fc8925aa78b918ffa0c
13:23 Trashlord joined #perl6
13:26 REPLeffect joined #perl6
13:31 masak Rakudo master doesn't do #=[] doc comments. can't say I miss them. but I'll have to rewrite Druid to temporarily not use them.
13:31 masak maybe that's a cue to work out a syntax that both vim and I can actually stand.
13:33 rgrau joined #perl6
13:34 pmichaud or we could add the #=[] comment form again :)
13:34 * pmichaud looks.
13:36 masak for now, I settled on #= on the first line, and then # on subsequent lines.
13:36 pmichaud okay
13:36 masak vim likes it a lot better, and I think I like it too.
13:36 pmichaud but I think it's a 4-line change to enable #=[ ]
13:36 masak by all means, add it back. I'm changing this anyway.
13:37 pmichaud wfm
13:37 masak I'd rather work on S26 than live with a documentation syntax I don't really believe in :)
13:39 [Coke] p
13:39 Guest23195 joined #perl6
13:40 pugssvn r31357 | sorear++ | [STD-eco] uniprops needs to be treated as a compiler file and copied to snap (masak++)
13:41 masak sorear++
13:47 perlygatekeeper joined #perl6
13:48 REPLeffect joined #perl6
13:48 masak I've been looking a bit at Haddock, seeing if there's something we can steal from that system of documentation. http://www.haskell.org/had​dock/doc/html/ch03s02.html
13:48 masak Haddock uses '-- |' for a "before" documentation comment, and '-- ^' for an "after" documentation comment.
13:50 masak "after" seems to be an end-of-line comment on the same line as the declaration, whereas "before" is an end-of-line comment on the line before.
13:50 sorear often, but not always
13:50 sorear haddock doesn't care about lines
13:50 sorear only file positions
13:50 sorear TimToady would like it ;)
13:51 masak :)
13:51 masak anyway, I think it's better than what S26 has now, which is basically guessing magic.
13:52 masak might be there are better symbols than '|' and '^'.
13:52 pmichaud can always do   #|  and #^  :-)
13:52 masak yes, that was the assumption.
13:53 masak (i.e. that's what I meant)
13:53 jnthn #^ and #v ;-)
13:53 jnthn Wish we had a non-alphanumeric downwards pointing char. :-)
13:53 masak aye.
13:53 sorear .u DOWN
13:53 phenny U+22A4 DOWN TACK (⊤)
13:54 masak it's a bit surprising that one is a \W and the other is a \w.
13:54 jnthn #/\ and #\/
13:54 jnthn ;-)
13:54 pmichaud #↓
13:54 pmichaud #↑
13:54 pmichaud .u DOWNWARDS ARROW
13:54 phenny U+2193 DOWNWARDS ARROW (↓)
13:54 jnthn their heads are a bit small in my font
13:54 pmichaud #⇵
13:54 sorear .u TOP
13:54 phenny U+230F TOP LEFT CROP (⌏)
13:55 sorear .u BOTTOM
13:55 phenny U+230D BOTTOM LEFT CROP (⌍)
13:55 pmichaud #∧
13:55 pmichaud .u LOGICAL OR
13:55 phenny U+2228 LOGICAL OR (∨)
13:55 pmichaud .u LOGICAL AND
13:55 phenny U+2227 LOGICAL AND (∧)
13:55 masak I think we should find solutions within ASCII, though.
13:55 pmichaud oooh, ascii
13:55 pmichaud might be tricky
13:56 sorear | and ^
13:56 masak so far, the "best" proposal is the original pair... aye.
13:56 sorear well, there had to be a reason haddock picked it
13:56 pmichaud #above   and #below  :-)
13:56 sorear std: 2+2
13:56 p6eval std 31356: OUTPUT«cannot open unicode maps: No such file or directory at CursorBase.pm line 1825.␤BEGIN failed--compilation aborted at CursorBase.pm line 1845.␤Compilation failed in require at Cursor.pm line 3.␤BEGIN failed--compilation aborted at Cursor.pm line 3.␤Compilation failed in require at
13:56 p6eval ..S…
13:57 pmichaud or even #=above and #=below
13:57 PerlJam greetings
13:57 masak pmichaud: it's very clear, but I fear it's too long for same-line #=above comments.
13:57 pmichaud or choose better words for "above" and "below"
13:58 masak pmichaud: and in that case, the declaration isn't really 'above' either.
13:58 pmichaud so, what are the cases you're looking at?
14:01 masak pmichaud: not really sure what you're asking. but all of the Pod documentation I had written for Druid was situated on the line above the method-or-attribute, IIRC.
14:02 masak pmichaud: for now, I've used '#= ' for those comments. since it doesn't mean anything, might as well.
14:02 jnthn Do we really need a way to say "this is a comment for the thing above me"?
14:03 pmichaud actually, the grammar does capture #= specially.
14:03 jnthn e.g. #= or something always means "this is a comment about the thingy on the next line"
14:03 pmichaud i.e., it goes through a different parse than a plain '#'
14:04 pmichaud (the comment still ends at the end of the line, though.)
14:04 masak pmichaud: oh! right. if it parsefails, then I'll probably switch to '#| ' :)
14:04 pmichaud it should parse the same, as long as it's not #= + quote, like   #=(...)
14:04 masak jnthn: a comment on the next line is probably not that common, no. don't recall what S26 says about that case.
14:05 masak jnthn: but a doc comment later on the same line can be really nice for attrs.
14:05 masak pmichaud: it's always '#=' and a space in my files.
14:05 masak so maybe I'll leave it in.
14:05 pmichaud I might want the comment on the next line if it's longish
14:05 pmichaud e.g.
14:05 dalek rakudo: d2add46 | pmichaud++ | src/Perl6/Grammar.pm:
14:05 dalek rakudo: Restore #=(...) comment syntax.
14:05 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/d​2add46aeab983c9082ca985d64685a59d748577
14:05 pmichaud has $.super-long-attribute;
14:06 pmichaud #= used in the case when we need the convoluted whatathing
14:06 jnthn pmichaud: Why not write it on the line above?
14:06 pmichaud I might have a pattern where all of my attributes are followed by #=comments
14:06 pmichaud wait, I said that wrong
14:06 pmichaud example:
14:06 pmichaud has $.x;    #  number of x's
14:07 pmichaud has $.o;    # number of o's
14:07 pmichaud has $.someincrediblylongname
14:07 pmichaud # some incredibly long description
14:07 patspam joined #perl6
14:07 pmichaud i.e., my pattern is that the comment comes after the declaration (either on the same line, or on a subsequent line)
14:07 masak I'm pretty sure it would be better to use one symbol for 'comment is before' and another for 'comment is after'. right now we don't distinguish, and that could probably cause subtle bugs.
14:07 pmichaud switching to putting it above the declaration would look weird in that case
14:08 masak pmichaud: aye. that's a good use case.
14:08 masak and it's "symmetric" as well, even if that particular case will probably be least used.
14:08 sorear masak: I completely agree
14:09 pmichaud I know that there are often times when I end up with a series of declarations where just one of them has a same-line comment that doesn't fit, so I have to figure out what to do
14:09 masak I'll look into whether a change to S26 would be non-problematic.
14:10 pmichaud if we have a special form for "comment what follows", then #= could potentially always be "comment what precedes"
14:10 pmichaud and that could either be "same line" or "line above"
14:10 masak I think the current syntax ( '#=()' ) is heavy-weight, visually unappealing, hard on syntax coloring tools, and not well-integrated in other Perl 6 syntacitc constructs.
14:11 pmichaud given our discussion now, I'd hope that #=()  would be "multiline comment what precedes"
14:11 pmichaud (I'm unfamiliar with current spec)
14:11 masak it is.
14:11 masak it's a multiline comment of either what precedes or what follows.
14:12 pmichaud I think we should make it simply "what precedes"
14:12 pmichaud and come up with a different symbol than = for "what follows"
14:12 masak I think we should kill off the #=() entirely.
14:12 sorear #| for follows
14:12 masak sorear: I like that.
14:12 pmichaud masak: I disagree about being not well integrated in othe Perl 6 syntactic constructs
14:12 jnthn I work regularly in a language that only lets me put doc comments before and I *just cope*. People always could do that. :-)
14:12 pmichaud the () uses the standard quoting pattern
14:13 [particle] well, = is unlikely to be the first character on a line, that's a reason it was chosen
14:13 pmichaud and a syntax highlighter already has to know about that
14:13 sbp why not #> for symbolically pointing to what follows?
14:13 sbp (he says, not really following the conversation with full attention, sorry)
14:13 pmichaud masak: put another way, the syntax allows any bracketing character following the #=, not just (.
14:13 masak pmichaud: it doesn't. most other syntax highlighting misparses are bearable, even those involving quotes. this one isn't.
14:14 pmichaud okay, I'll rephrase.
14:14 pmichaud The *grammar* allows any bracketing character following the #=
14:14 masak er. "it doesn't" as a reply to "the syntax highlighter has to know about that"
14:14 pmichaud doesn't a syntax highlighter need to know how to deal with   q (...)      ?
14:15 pmichaud rakudo:  say q (hello\nworld);
14:15 p6eval rakudo 3da39c: OUTPUT«hello\nworld␤»
14:15 masak pmichaud: I'm on a vim syntax highlighter here. don't know if it's Perl 5 or Perl 6.
14:15 masak pmichaud: it gets things wrong fairly often.
14:15 masak pmichaud: it gets #=() wrong consistently.
14:15 pmichaud masak: it's probably way out of date with respect to recent versions of the grammar
14:16 masak I know.
14:16 pugssvn r31358 | sorear++ | [Cursor] Clean up parse/parsefile/initparse a bit and plug some contextual leaks.  Provide a reference argument for returning the used contents of a parsed file.
14:16 pugssvn r31358 | [viv] Stop relying on no-longer-leaked $*ORIG.
14:16 pmichaud the syntax highligher could (should) be taught the perl 6 bracketing rules
14:16 masak it's not the only reason I hate the #=() construct.
14:16 masak even if I don't succeed in lobbying it out of existence, I probably won't use it in my code again.
14:16 pmichaud is it the parens you dislike?
14:16 masak pmichaud: yes.
14:16 sorear masak: it's a good thing you don't have to use #=(), then
14:17 pmichaud would another bracketing character work?
14:17 masak it is.
14:17 masak pmichaud: no.
14:17 pmichaud okay.
14:17 pmichaud what *would* you like to see for multiline "I comment what precedes" syntax?
14:18 pmichaud oh, I know!
14:18 pmichaud $has  $.something;
14:18 PerlJam [10 years from now, masak is reading other people's Perl...]  masak: Crap! There's that #=() construct again!
14:18 pmichaud #=  this is the first line of my comments
14:18 pmichaud #=   this is the second line of my comments
14:18 pmichaud #=  all of these are commenting about $.something
14:19 pmichaud has $.somethingelse
14:19 masak pmichaud: I'm almost doing that. but I figured I could leave out the '=' on subsequent lines.
14:19 REPLeffect joined #perl6
14:19 masak pmichaud: but I'm open on that point. doesn't really matter to me.
14:19 pmichaud if we keep it in there, it makes it clear that they're meant to be related
14:19 masak it's a *vast* improvement on #=() in any case.
14:19 masak pmichaud: yeah, you're probably right.
14:19 pmichaud omitting the '=' would mean "I'm starting a new comment"
14:19 pmichaud or an otherwise unrelated comment
14:20 masak I'll change my Druid code to do '#|' everywhere :)
14:20 dakkar_ joined #perl6
14:20 masak (because my comments are before the declarations)
14:20 pmichaud then for consistency with #(...),  we could allow #=(...) also
14:20 pmichaud but it wouldn't be required
14:20 masak pmichaud: you mean #`()
14:21 sorear I happen to kind of like #>
14:21 pmichaud what does #`() mean?
14:21 PerlJam pmichaud: multi-line comment
14:21 masak pmichaud: it's the construct formerly known as #()
14:21 pmichaud oh, right.
14:21 pmichaud okay, yes.
14:21 macdaddy joined #perl6
14:21 sorear #> or #|?
14:22 masak sorear: if we use #>, we'd almost have to use #< too
14:22 pmichaud I'd be okay with that.
14:22 pmichaud er, no I wouldn't.
14:22 pmichaud #<   looks like it should be "bracketed"
14:23 pmichaud has $.x;      #<  how many x's
14:23 pmichaud although it does argue for arrows :-)
14:23 pmichaud has $.x;      #<=  how many x's
14:23 pmichaud #=>   how many o's
14:23 pmichaud has $.o;
14:24 pmichaud has $.z;
14:24 pmichaud #<=  how many z's
14:24 pmichaud (all of these end up with ='s in them, which is kind of nice in a pod-ian sort of way)
14:25 PerlJam pmichaud: << and >> in regex look like they should be "bracketed" as well but they needn't be.
14:25 pmichaud PerlJam: yes, I agree.  Fortunately they're not common.
14:25 pmichaud but looking at my first has $.x line above, I *really* want to put that closing > on it.
14:26 masak as visual pills go, '#<=' looks a bit odd. :)
14:26 pmichaud I agree, it does.
14:26 sorear fine, I'll accept #| almost as well
14:26 pmichaud I still think I like the   #=   and #|  better
14:26 masak aye.
14:26 sorear #= and #| it is
14:26 pmichaud I could live with #>, but #<  feels unbalanced to me
14:27 [particle] is that '#= ' and '#| ' ?
14:27 mathw #< feels okay to me because I'm used to //< which Doxygen uses
14:27 masak [particle]: don't know if we need enforce the space.
14:28 masak [particle]: but maybe it's a good idea for both esthetic and safety reasons.
14:28 pmichaud the challenge with #|  is similar to the challenge with #{, though.
14:28 [particle] | is much more likely to be the first character on a line than =
14:28 [particle] especially with ||
14:28 pmichaud yes, what particle said
14:28 REPLeffect joined #perl6
14:28 pmichaud if someone is commenting out blocks of code, then #| might show up
14:28 masak that's true.
14:28 pmichaud otoh, the reason why #{ was a problem was because it ended up acting like a multiline comment
14:28 [particle] #^
14:28 masak but the failure mode is not as bad as with multiline comments.
14:28 pmichaud that doesn't exist with #|
14:28 masak right.
14:28 pmichaud right.
14:29 pmichaud (and #{ is no longer a multiline comment anyway)
14:29 pmichaud so, I'd still be able to live with #|
14:29 [particle] '#^ ' points to the line above
14:29 pmichaud I think I still like keeping things to   "before" and "after"  instead of "above" and "below"
14:30 pmichaud otoh (sigh)    "#<"  line above   "#="  same line   "#>"   line after
14:30 pmichaud but I think I'd still prefer #= to mean "before"
14:30 sorear pmichaud: perl 6 doesn't think in lines, only .pos <=> .pos
14:31 pmichaud sorear: perl 6 doesn't, but documentation authors do.
14:31 pmichaud still, I agree that "#="  would mean "before this position"
14:31 pmichaud if I have
14:31 pmichaud has $.x;    #= long description
14:32 pmichaud and I later need to change $.x  to be something longer and move the description to the next line, I'd like it if I didn't also have to change the #=
14:32 sorear I think at this point we're all agreed that '#=' should be before this position and #| should be after
14:32 pmichaud works for me
14:32 sorear the only remaining point is whether to enforce space after both forms
14:32 PerlJam What is Perl 6 going to do differently with these lines than regular comments?
14:32 pmichaud #| provisionally, in case someone thinks of something better
14:32 sorear to disambiguate from the embedded versions
14:32 pmichaud PerlJam: documentation
14:32 [particle] enforcing the space is critical
14:32 [particle] =head1
14:33 PerlJam pmichaud: right, but are we talking for a sub.doc() method or what?
14:33 pmichaud PerlJam: document parsers and introspection tools can use the #=
14:33 pmichaud PerlJam: yes.
14:33 sorear I support enforcing the space too
14:33 sorear PerlJam: Actually it's specced as sub.WHY
14:33 pmichaud I'm fine either with or without space enforcement
14:33 mathw With, I like spaces
14:33 pmichaud changing =head1 to   #=head1  ends up with essentially the same effect
14:33 sorear and by "enforces" I mean a worry, not a sorry
14:33 sorear std: #( foo ) 2+2
14:34 p6eval std 31358: OUTPUT«ok 00:01 109m␤»
14:34 sorear std: #( foo )
14:34 p6eval std 31358: OUTPUT«ok 00:01 106m␤»
14:34 pmichaud std:   say #(foo) 2+2
14:34 sorear std: #( foo␤  )
14:34 p6eval std 31358: OUTPUT«Potential difficulties:␤  Embedded comment seems to be missing backtick at /tmp/ODab7jU5Mq line 1:␤------> [32msay #(foo)[33m⏏[31m 2+2[0m␤  Unsupported use of bare 'say'; in Perl 6 please use .say if you meant $_, or use an explicit invocant or argument at /tmp/ODab7jU5Mq line
14:34 p6eval ..…
14:34 p6eval std 31358: OUTPUT«[31m===[0mSORRY![31m===[0m␤(Possible runaway string from line 1)␤Confused at /tmp/W6gxegUbTe line 2:␤------> [32m  [33m⏏[31m)[0m␤    expecting statement list␤Parse failed␤FAILED 00:01 106m␤»
14:35 pugssvn r31359 | sorear++ | [STD-eco] Set svn:ignore properties.  (I've put this off too long)
14:35 pmichaud masak++   # outstanding work on comments
14:36 pmichaud Thank you for pressing this issue so hard.
14:36 sorear #perl6++
14:36 masak thank y'all for being so receptive :)
14:36 pmichaud .oO( masak++ is in Texas? )
14:36 pmichaud .oO( "y'all"? )
14:36 masak ah.
14:37 masak no, I use it when I mean "not only you, but all of you".
14:37 * pmichaud seriously considers buying masak++ a big texas hat.  :)
14:37 masak because the latter is too long to write. :)
14:37 PerlJam maybe masak is an honorary Texan  :)
14:37 sorear y'all is a very interesting word
14:37 mathw arguably, English does need that distinction
14:37 pmichaud at least it wasn't  "all y'all"  :)
14:37 sorear it's a treadmill, but not a euphemism treadmill
14:38 masak by the way, Druid conversion to Rakudo master seems to be blocking on this RT ticket I just submitted: http://rt.perl.org/rt3/Tic​ket/Display.html?id=75852
14:39 REPLeffect joined #perl6
14:39 pmichaud workaround:    class A { ... };   use A::B;   class A { # definitions }    # maybe?
14:39 pmichaud where the ... is literal here
14:39 masak will try.
14:40 masak right.
14:40 masak yes, it worked. pmichaud++
14:41 * masak adds the workaround to the RT ticket
14:42 * pmichaud really would like to see Druid on master again
14:43 masak I've re-lapsed into Druid development recently. it started with a C re-implementation. then I started thinking about simple strategy algorithms in C. then I realized that it'd be way easier (if not as fast) to prototype those in Perl 6, with the existing Druid implementation. :)
14:44 pmichaud +1
14:44 pmichaud to all of that :)
14:47 sorear What does it do?
14:48 masak sorear: http://www.cameronius.com/games/druid/
14:49 masak if we require a space after '#|' (and I'm not yet convinced we should), there has to be an exception for otherwise empty comment lines, such as those between paragraphs.
14:50 pmichaud agreed.
14:51 pmichaud at the moment, I don't feel entirely comfortable with requiring the space.
14:52 mathw the newline is a kind of space :)
14:52 pmichaud okay, so it has to be  <?before \s>    :-P
14:53 mathw pffft
14:53 * mathw goes home
14:53 pmichaud still, like masak, I'm not sure about requiring the space.  I don't know why.
14:53 masak if I get around to writing up spec, I'll probably not require the space.
14:54 pmichaud I really really hope you get around to writing the spec.  I'll send you lots of karma points.  And maybe a hat.
14:54 masak wow, a hat!
14:54 masak :)
14:54 pmichaud ...and perhaps a small hague grant would be appropriate?
14:55 masak maybe for implementing the thing.
14:55 pmichaud nothing drives a good spec like an implementation :)
14:55 masak 对对对
14:56 * pmichaud wonders how hard it would be to implement .WHY
14:56 pmichaud that might be a good hacking session at yapc::eu
14:56 pmichaud or while I'm on vacation :)
14:57 pmichaud in the meantime, I think I'll do
14:57 masak closures!
14:58 pmichaud augment class Mu { method WHY { return "Why not?" } }
14:58 masak :P
14:58 * masak got scolded once for asking "why not?" during a panel discussion :)
14:58 pmichaud "Why?"   # scnr
14:59 masak IIRC, when wanting to use technology X for use case Y, asking "why?" was a constructive question, but asking "why not?" didn't lead anywhere useful.
14:59 REPLeffect joined #perl6
15:00 masak especially not if the latter question was the whole answer to the former question. :P
15:00 sorear "Because I think it will work, and nobody's said why not"
15:00 masak \+o/
15:03 bphillips joined #perl6
15:06 pugssvn r31360 | sorear++ | [Cursor] Erect a taller abstraction barrier around the NFA construction system
15:08 xabbu42_ joined #perl6
15:09 REPLeffect joined #perl6
15:09 dalek rakudo: 8a5f383 | pmichaud++ | docs/spectest-progress.csv:
15:09 dalek rakudo: spectest-progress.csv update: 490 files, 33443 (83.7% of 39960) pass, 4 fail
15:09 dalek rakudo: Failure summary:
15:09 dalek rakudo: S05-interpolation/regex-in-variable.rakudo 19 - Nested array match (a)
15:09 dalek rakudo: S05-interpolation/regex-in-variable.rakudo 20 - Nested array match (e)
15:09 dalek rakudo: S05-interpolation/regex-in-variable.rakudo 21 - Multiple array matching
15:09 dalek rakudo: S05-interpolation/regex-in-variable.rakudo 23 - Multiple array non-compiling
15:09 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/8​a5f383a96688bb52f39cabfeafac8d0119f10a9
15:11 patspam joined #perl6
15:13 ash__ joined #perl6
15:15 patspam joined #perl6
15:17 itz left #perl6
15:18 xabbu42_ joined #perl6
15:23 FardadJalili what's the problem with this code?
15:23 FardadJalili rakudo: my $s="dog bites man"; my token word { \w+ }; if $s ~~ m/ <word> / { say "OK!"; }
15:24 p6eval rakudo d2add4: OUTPUT«Method 'word' not found for invocant of class 'Cursor'␤  in <anon> at line 11:/tmp/N3jSvzDLzW␤  in 'Cool::match' at line 2192:CORE.setting␤  in 'Regex::ACCEPTS' at line 4995:CORE.setting␤  in 'infix:<~~>' at line 326:CORE.setting␤  in main program body at line
15:24 p6eval ..11:/tmp/N3jSvzDLzW␤»
15:24 TimToady try <&word>
15:24 sorear rakudo doesn't yet implement DWIM for scoped assertions
15:25 sorear TimToady: btw I fixed categoricals
15:25 TimToady I know, I'm snaptesting right now :)
15:25 TimToady I'm a stealth tester...
15:27 pmurias joined #perl6
15:27 TimToady oh, I guess you deserve a \o/ sorear++  :)
15:27 TimToady well, more than one, but I don't wish to be tiresome
15:30 TimToady hmm, getting a number of: Can't open syml/Test/Util.pm.syml: No such file or directory at CursorBase.pm line 308.
15:31 Ross joined #perl6
15:35 masak std: class A { has Int $.color where 1|2; }
15:35 p6eval std 31360: OUTPUT«[31m===[0mSORRY![31m===[0m␤Two terms in a row at /tmp/vVVvjpuKJP line 1:␤------> [32mclass A { has Int $.color [33m⏏[31mwhere 1|2; }[0m␤    expecting any of:␤ bracketed infix␤  infix or meta-infix␤      statement modifier loop␤  trait␤Parse failed␤FAILED 00:01 113m␤»
15:36 TimToady hmm
15:36 masak and here I was going to submit a rakudobug...
15:37 masak rakudo: class A { has Int $.color where 1|2; }
15:37 p6eval rakudo d2add4: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 11␤»
15:37 masak alpha: class A { has Int $.color where 1|2; }
15:37 p6eval alpha 30e0ed:  ( no output )
15:37 * masak likes alpha's response the best
15:38 masak TimToady: did that 'hmm' mean 'STD.pm6 should parse this -- wonder why it doesn't?' ?
15:38 TimToady yes
15:38 * masak submits rakudobug
15:39 * jnthn also surprised
15:39 masak rakudo: class A { has $.x where 1 }
15:39 p6eval rakudo d2add4: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 11␤»
15:39 TimToady std: class A { has (Int $.color where 1|2); }
15:39 p6eval std 31360: OUTPUT«ok 00:01 112m␤»
15:41 jnthn rakudo:  class A { has ($.x where 1) }
15:41 p6eval rakudo d2add4:  ( no output )
15:41 jnthn ah
15:42 jnthn Yeah, only works if we parse a siggy.
15:42 masak I'd expect it to work without the parens, though.
15:42 jnthn Same
15:42 jnthn Now sure how much of a pain it'll be.
15:43 jnthn Hopefully almost none.
15:43 * jnthn visits the bottle bank
15:46 sorear TimToady: Util.pm.syml stuff is quite strange... I didn't realize I had touched that?
15:47 pugssvn r31361 | sorear++ | [Cursor] Early out on imperative subregexes, now with less confusing inflexible braided control flow
15:47 pmurias ruoso: ping
15:47 sorear I think I now have all the sub-refactors out of the way
15:47 TimToady seems to be not creating the Util subdir in syml
15:47 TimToady er, Test dir
15:48 TimToady so Util.pm.syml ends up in syml instead of syml/Test
15:48 sorear hmm, somehow we've gone under 3 seconds
15:49 sorear I guess I forgot a -0.05s on that last commit :)
15:52 justatheory joined #perl6
15:53 meppl joined #perl6
15:53 pugssvn r31362 | pmurias++ | [smop] use Dist::Zilla
15:53 pugssvn r31363 | pmurias++ | [smop] tools/ri doesn't depend on mangle.pl anymore, when tests fail an exception is thrown so cpanm notices that
15:53 TimToady added <post_constraint>* to variable declarator, testing
15:54 TimToady passes make, snaptesting
15:54 * jnthn back
15:54 TimToady I think I have a fix
15:55 TimToady just checking for unforeseen ramifications of allowing post_constraints on variable declarations
15:55 TimToady not so much the where clause, but also the subsig constraint
15:56 jnthn TimToady: Oh...does a subsig constraint...make sense there?
15:56 jnthn Hm
15:56 jnthn I guess it could work :-)
15:57 TimToady if this flies you can say: my $x [$left,right] := $binary_node
15:57 jnthn Oh, it may even just do the right thing.
15:57 jnthn Yeah
15:57 jnthn Well
15:57 jnthn Taht's actually harder.
15:57 jnthn Potentially
15:57 TimToady = is problematic
15:57 * jnthn ponders
15:58 TimToady syntactically, it doesn't appear to interfere, from early snaptest returns
15:58 jnthn rakudo: my %h = a => 1, b => 2; subset Foo where { $_ ~~ :(:$a!, :$b!) }; my Foo $x = %h;
15:58 p6eval rakudo d2add4:  ( no output )
15:58 jnthn rakudo: my %h = aadvark => 1, b => 2; subset Foo where { $_ ~~ :(:$a!, :$b!) }; my Foo $x = %h;
15:58 p6eval rakudo d2add4: OUTPUT«Type check failed for assignment␤  in '&infix:<=>' at line 1␤  in main program body at line 11:/tmp/v0zlfhPb1p␤»
15:58 jnthn omgz
15:58 jnthn :-)
15:59 jnthn OK, it probably can work.
15:59 FardadJalili does this work ? -> http://perlgeek.de/en/article/5-to-6#post_20
15:59 jnthn Sometimes stuff I've implemetned scares me by sucking less than I expected it to.
15:59 xabbu42_ joined #perl6
16:00 ash__ FardadJalili: Grammars work in rakudo, that specific example might be a bit out of date (the blog post said it was from Dec. 2008...)
16:00 TimToady the = on a declarator is a pseudo assignment anyway
16:01 jnthn TimToady: constraints just smart-match
16:01 jnthn TimToady: And smart-matching against the signature probably does the right kind of thing.
16:01 jnthn TimToady: Trouble is it won't bind the variables though, I fear.
16:01 jnthn It'll just say "yes this data structure has this shape"
16:01 jnthn That's perhaps fine.
16:02 TimToady people will expect variable creation based on sigs
16:02 TimToady how do sigs do it?
16:02 jnthn I mean, it's not like :($a, $b) = foo(); does anything useful.
16:03 jnthn TimToady: In my ($x, $y) := foo(); then it's the declarator followed by a signature that makes it work.
16:03 TimToady no, but my $x is treating $x as a param, not a sig
16:03 TimToady so my $x is short for my ($x)
16:03 jnthn Do you mean, how do signatures handle sub-signature matches?
16:03 TimToady so my $x [] should be like my ($x [])
16:03 TimToady yes
16:04 jnthn Just coerce the parameter to a Capture and recurse into the binder again using the nested signature and the capture.
16:04 jnthn Oh, I know what.
16:05 jnthn If it's my $x [] := blah();
16:05 jnthn Then we'll just build a signature
16:05 TimToady so all we really need to do is recognize that we need to call the ordinary binder...yes
16:05 jnthn OK, that'll work.
16:05 jnthn For the binding case
16:05 jnthn What about the assignment one?
16:05 TimToady and either force = to be binding, or require :=
16:05 TimToady carping is fine for now, conservatively
16:06 jnthn OK, that's reasonable.
16:06 TimToady but the = could also be considered a default :)
16:06 TimToady which is binding, I think
16:06 jnthn There is that way of looking at it.
16:06 jnthn It's a tad fun to compile because
16:06 jnthn my ($x, $y) := foo(); # we actually want a signature on the LHS
16:07 jnthn my ($x, $y) = foo(); # we want a Parcel on the LHS
16:07 jnthn At the moment we just always build both, default to the Parcel and the := has a reducecheck that says "oh hey, you're binding so I'll take the sig on the LHS instead"
16:07 TimToady but only some sigs can parcelize in any case
16:07 TimToady this just ain't one of 'em
16:07 jnthn Well, yes
16:07 jnthn At the moment we're not complainy enough about that.
16:08 jnthn (There's an RT, I'll get to it. :-))
16:08 pmichaud TimToady: when you and jnthn++ are finished, I have a question about .[0]
16:08 TimToady I'm fine with complaining for now
16:08 pmichaud (several questions, actually)
16:08 TimToady I think we're done
16:08 pmichaud okay
16:08 pmichaud with something like
16:08 jnthn TimToady: OK, works well for me too. If we work out a sensible other thing to do, that always leaves the option open to do it.
16:09 pmichaud my $a = 3;   say $a[0];
16:09 jnthn Yes, done. :-)
16:09 pmichaud the current intent is that $a[0]  returns $a itself?
16:09 TimToady yes, as an Any-list thing
16:09 pmichaud what about $a[1] ?
16:10 TimToady fail
16:10 pmichaud what if $a !~~ Any ?
16:10 TimToady just like my @a = 1; say @a[1]
16:10 TimToady you think it should be Mu-list?  :)
16:10 pmichaud I'm simply asking.  :)
16:11 pmichaud (so I know where to put the method :-)
16:11 TimToady I think it should probably autothread, so Any
16:11 pmichaud okay, that works for me.  More:
16:11 jnthn Is this a case of any implementing method postcicumfix:<[ ]>(\$index) ( self.list.[$index] }
16:11 TimToady pugs: say (1|2|3).[0].perl
16:11 p6eval pugs: OUTPUT«\(1 | 2 | 3)␤»
16:11 pmichaud jnthn: perhaps, but there's more.
16:11 jnthn OK
16:11 pmichaud given:
16:12 pmichaud my Mu $a;   $a[0] = 4;
16:12 pmichaud does $a autopromote to an Array?
16:12 ciphertext joined #perl6
16:12 pmichaud (I'm assuming that with   my Any $a;  $a[0] = 4;   it will autopromote)
16:12 Visitor99 joined #perl6
16:13 pmichaud s/autopromote/autovivify/  if $clearer;
16:13 TimToady we have to distinguish lvalue subscripting from rvalue, I guess
16:13 pmichaud well, not necessarily
16:14 pmichaud I've been thinking that .[] on (certain?) protoobjects can return a but WHENCE( ...)  that autovivifies
16:14 pmichaud such as Mu and Any
16:14 pmichaud so I'm curious as to whether it's Mu or Any :-)
16:14 TimToady but on rvalue returns the thing itself?
16:15 TimToady or I guess it could make the list anyway, and then .[0] it
16:15 pmichaud we can distinguish based on undefinedness
16:15 TimToady since something could be used as both an rvalue and then an lvalue
16:15 TimToady conceivably
16:15 pmichaud oh, yes, I suppose.
16:16 pmichaud Anyway, my question was whether something that is Mu would autovivify to a container, or if that was restricted to Any
16:16 TimToady or even Cool, if we default to Cool instead of Any?
16:16 pmichaud given what you said above about .[] being a feature of Any, I'm inclined to (initially) try the same approach for autovivify
16:16 pmichaud and see what happens/breaks
16:17 pmichaud and yes, Cool instead of Any if we default to that.
16:17 pmichaud I'll try it with Any to begin with, and if it causes a problem we can likely revisit.
16:17 TimToady my $x; $x += 42 could be a function of coolness
16:17 sorear how well do we understand autovivification?
16:18 TimToady we're not omniscient :)
16:18 pmichaud I think I have a reasonable handle on it now, having done the variable/container/list refactor this past week.
16:18 TimToady so this is probably a good spot for experimentation
16:18 pmichaud I just needed to get TimToady++'s initial leanings on some of the programmer-visible stuff
16:18 TimToady and treating rvalues/lvalues as consistently as possible as long as possible seems clean
16:18 pmichaud agreed.
16:19 pmichaud anyway, I'll have something WHENCE-like done in the next few days, if not at yapc::na
16:19 pmichaud *if not then
16:19 pmichaud putting the feature in Any definitely minimizes the impact at the moment
16:19 TimToady one thing we do know is that P5 has conniption fits about trying to decide whether an argument to a function should be treated as rvalue or lvalue
16:20 TimToady and treating an arg as potentially lvalue has historically been one of the slowdowns in p5 sub calls
16:20 pugssvn r31364 | sorear++ | [Cursor] It turns out that separating nfa::disj and nfa::ltmprefate doesn't actually make any sense, so recombine them.  Remove unused nfa::has_nontrivial_fates.
16:21 TimToady the WHENCE solution seems good because you only have to generate one when you already know something is missing
16:21 ajs joined #perl6
16:21 pmichaud and that generally occurs only when .[] appears on an undefined value
16:21 pmichaud so I was wondering which undefined values needed to be aware of it :)
16:21 pmichaud I'll go with Any for now.
16:21 pmichaud Thanks.
16:22 REPLeffect joined #perl6
16:23 thebird joined #perl6
16:23 TimToady tests out clean, so....
16:23 pugssvn r31365 | lwall++ | [STD] add <post_constraint>* to variable_declarator
16:28 masak I now have Druid compiling in a local branch.
16:29 pmichaud \o/  masak++
16:29 masak all tests fail :)
16:29 ive joined #perl6
16:29 pmichaud /o\
16:30 masak $one.step for ^2; # :)
16:30 sorear .move(:forwards) for ^Inf
16:31 * masak hopes something good is in $_
16:32 Visitor99 rakudo: my $a = "say 1"; $a();
16:32 p6eval rakudo d2add4: OUTPUT«invoke() not implemented in class 'Perl6Str'␤  in main program body at line 11:/tmp/M1vyOnL1Wm␤»
16:32 jnthn rakudo: my $a = "say 1"; eval $a;
16:32 p6eval rakudo d2add4: OUTPUT«1␤»
16:32 ash__ Visitor99: you'd have t oeval it if you want that to execute
16:33 ash__ s/t oeval/to eval/
16:35 Visitor99 rakudo: my $b = "say 'b';" my $a = "eval $b;"; eval $a;
16:35 p6eval rakudo d2add4: OUTPUT«===SORRY!===␤Confused at line 11, near "my $b = \"s"␤»
16:40 bbkr rakudo: eval $A::b; # hmm, less than perfect error message
16:40 p6eval rakudo d2add4: OUTPUT«Null PMC access in can()␤  in 'eval' at line 936:CORE.setting␤  in 'eval' at line 957:CORE.setting␤  in main program body at line 11:/tmp/kww0_t0GDE␤»
16:40 sorear What's the Perl 6 syntax for accessing a slot of an object not in 'self'?
16:41 masak sorear: not sure you can do that.
16:42 masak sorear: the $object!foo syntax calls private method !foo on $object, it doesn't access $!foo on it.
16:42 jnthn Aye, I don't think there's syntax for it either.
16:44 pmichaud there is -- I asked about this before (and received an answer)
16:44 pmichaud I just don't remember the answer.  :(
16:45 * pmichaud looks
16:45 bbkr rakudo: grammar X {has $.x;}; X.new(x=>666).x.say
16:45 p6eval rakudo d2add4: OUTPUT«666␤»
16:45 bbkr finally works! hoooray!
16:45 patrickas joined #perl6
16:46 bbkr big progress in this release
16:49 pmichaud aha!  Pm-6 has the answer!
16:49 pmichaud Answer:  as of r28932, C<< $b!SomeClass::xyz >>.  --Pm
16:49 sorear yay Pm-6!
16:49 pmichaud I don't know if it's changed since then.
16:49 pmichaud (see misc/pm.txt for the full question and answer)
16:50 pmichaud (in pugs repo)
16:50 sorear yeah I read the pm file once
16:50 sorear long ago.
16:52 Visitor99 joined #perl6
16:52 REPLeffect joined #perl6
16:53 Visitor99 rakudo: my $b = "say 'b';" my $a = 'eval $b;'; eval $a;
16:53 diakopter <@sorear> Does a Perl6 compiler have to account for the possibility of someone saying eval '&fa' ~ 'il := 2' ?
16:53 p6eval rakudo 8a5f38: OUTPUT«===SORRY!===␤Confused at line 11, near "my $b = \"s"␤»
16:54 alester joined #perl6
16:55 pmichaud visitor 99:  missing semicolon
16:55 pmichaud (after first assignment to $b)
16:55 Visitor99 rakudo: my $b = "say 'b'"; my $a = 'eval $b'; eval $a;
16:55 p6eval rakudo 8a5f38: OUTPUT«b␤»
16:58 dakkar joined #perl6
17:00 diakopter sorear: re above, I'd think so.
17:02 sorear that is quite unfortunate
17:02 sorear TimToady: Can something be done to stop HardRoutines from being rebound, or must a single string eval break inlining for everyone?
17:05 diakopter sorear: note, I've been known to "think so" wrongly, often.
17:05 ejs joined #perl6
17:06 jnthn $b!SomeClass::xyz - would that not conflict with calling a private method in a particular superclass of $b?
17:06 jnthn rakudo: my $b; $b!SomeClass::xyz # will fail but curious if it parses
17:06 p6eval rakudo 8a5f38: OUTPUT«Could not find sub !!dispatch_::␤  in main program body at line 11:/tmp/NAlDM5rZ31␤»
17:06 jnthn oh heh.
17:06 jnthn Interesting way to fail. :-)
17:07 jnthn Anyway, Rakudo tried to call a private method in a superclass.
17:10 * masak submits that as an LTA rakudobug
17:11 jnthn masak: It's a bit more than LTA
17:11 jnthn masak: As in, it's not just an error fail
17:11 jnthn It's a real fail.
17:11 masak ok.
17:12 bbkr rakudo: say eval ""; # does this follow the spec? looks weird...
17:12 p6eval rakudo 8a5f38: OUTPUT«1␤»
17:13 masak bbkr: no, it doesn't. it's a reported bug.
17:13 bbkr masak: thanks
17:13 masak found it while upgrading GGE to Rakudo master. :)
17:13 arthur-_ joined #perl6
17:13 xabbu42_ joined #perl6
17:14 cdarroch joined #perl6
17:14 cdarroch joined #perl6
17:14 bbkr std: say eval eval;
17:14 p6eval std 31365: OUTPUT«Potential difficulties:␤  Unsupported use of bare 'eval'; in Perl 6 please use .eval if you meant $_, or use an explicit invocant or argument at /tmp/nEpC5BgpkT line 1:␤------> [32msay eval eval[33m⏏[31m;[0m␤ok 00:01 109m␤»
17:15 REPLeffect joined #perl6
17:17 patrickas rakudo: say (1|(2|3)).eigenstates.perl;
17:17 p6eval rakudo 8a5f38: OUTPUT«(1, any(2, 3))␤»
17:18 [Coke] sd
17:18 masak num &
17:18 bbkr rakudo: eval "my $x;"
17:18 p6eval rakudo 8a5f38: OUTPUT«===SORRY!===␤Symbol '$x' not predeclared in <anonymous> (/tmp/d29DOqjIb8:11)␤»
17:18 jnthn masak: omnumnum!
17:18 masak bbkr: interpolation.
17:19 TimToady maybe we should rename .eigenstates to .HERE-BE-DRAGONS
17:19 bbkr masak: indeed, thanks.
17:19 moritz_ nope, it's a noun
17:19 moritz_ so
17:19 moritz_ .DRAGONS-HERE-ARE :-)
17:20 TimToady .IF-YOU-PROCEED-YOU-ARE-LI​KELY-TO-BE-EATEN-BY-A_GRUE
17:20 sorear I'm fine with eigenstates
17:20 proller joined #perl6
17:20 sorear a little rope isn't bad
17:21 TimToady that's the trouble--it's proven to be a very attractive rope, and lots
17:21 sorear Who'se abusing it today?
17:21 TimToady I'd just as soon encode the answer to the faq in the method name :)
17:21 TimToady newcomers
17:21 patrickas implementation is not according to spec anyway ... so it's even wrong type of wrope , otherwise i would have happily used it to hang myslef :-)
17:22 TimToady I'd just as soon it not become the #1 FAQ
17:22 jnthn TimToady: The concern being people will use it as a set?
17:22 jnthn Rather than using Set?
17:22 TimToady yes
17:23 moritz_ maybe it would help if we implemented Set :-)
17:23 moritz_ so that people can use it
17:23 TimToady and only all() junctions are at all like a set
17:23 jnthn rakudo: say Set;
17:23 p6eval rakudo 8a5f38: OUTPUT«Set()␤»
17:23 moritz_ rakudo: say Set.new(1, 2, 3)
17:23 p6eval rakudo 8a5f38: OUTPUT«Set()<0x3e42860>␤»
17:23 jnthn TimToady: Could always say that if you want to see the values in the junction you gotta coerce it to a Set.
17:23 jnthn Then the method is .Set :-)
17:24 colomon rakudo: say Set.new(1, 2, 3).perl
17:24 p6eval rakudo 8a5f38: OUTPUT«Set.new(1, 2, 3)␤»
17:24 moritz_ rakudo: say (1 + Set(1, 2, 3)).perl
17:24 p6eval rakudo 8a5f38: OUTPUT«Could not find sub &Set␤  in main program body at line 11:/tmp/8NoGsQEfZf␤»
17:24 TimToady so, please enumerate the set of none(1,2,3).Set for me
17:24 moritz_ rakudo: say (1 + Set.new(1, 2, 3)).perl
17:24 p6eval rakudo 8a5f38: OUTPUT«Can't take numeric value for object of type Set␤  in 'Any::Numeric' at line 1226:CORE.setting␤  in 'infix:<+>' at line 5818:CORE.setting␤  in main program body at line 11:/tmp/RNLPvU_gR_␤»
17:24 colomon moritz_: should be
17:25 colomon rakudo: say (1 <<+>> Set.new(1, 2, 3)).perl
17:25 p6eval rakudo 8a5f38: OUTPUT«get_pmc_keyed() not implemented in class 'Set'␤  in 'at_key' at line 1065:CORE.setting␤  in 'postcircumfix:<{ }>' at line 1063:CORE.setting␤  in 'hyper' at line 1␤  in main program body at line 1␤»
17:25 colomon but that's totally NYI
17:25 jnthn .u UNION
17:25 phenny U+222A UNION (∪)
17:25 moritz_ should sets autothread like junctions?
17:25 jnthn moritz_: No
17:25 jnthn rakudo: say Set ~~ Any
17:25 p6eval rakudo 8a5f38: OUTPUT«1␤»
17:25 REPLeffect joined #perl6
17:25 bbkr rakudo: my $x=any(1); say "5any(1)7" ~~/5 $x 7/ # is this intended behavior? shouldn't $x be checked for Str type?
17:25 p6eval rakudo 8a5f38: OUTPUT«5any(1)7␤»
17:25 sorear any, all, one, and none junctions should have distinct subtypes of Junction, and only AllJunction has .Set ?
17:25 xabbu42_ joined #perl6
17:27 Lorn joined #perl6
17:28 rv2733 joined #perl6
17:28 pkkm joined #perl6
17:29 TimToady moritz_: autothreading of listy things will be done with each(), see S09:1063
17:30 TimToady and that includes sets
17:30 mantovani joined #perl6
17:30 Wolfman2000 joined #perl6
17:31 jnthn sorear: There isn't a subtype for each type of junction.
17:33 TimToady since one() and any() are, to the first approximmation, sets of sets, we could return the list of sets, where one() returns a singleton set for each value, and any() returns the powerset of them, or whatever the proper name is
17:34 Tene powerset is set of all subsets
17:39 am0c__ joined #perl6
17:39 sorear jnthn: I was saying there could be, not that there is
17:41 jnthn sorear: Ah, OK.
17:41 jnthn sorear: I'd interpreted it as "asking". :-)
17:42 gabiruh joined #perl6
17:43 envi^home joined #perl6
17:49 azert0x joined #perl6
17:49 tadzik joined #perl6
17:53 Visitor99 left #perl6
18:01 gabiruh joined #perl6
18:08 patrickas what does "icu" mean in spectest.data?
18:09 moritz_ patrickas: that the test depends on the availability of the icu library
18:09 PerlJam patrickas: I See You  ;)
18:10 patrickas oh ok
18:10 patrickas PerlJam spooky!
18:13 lue ohai
18:14 patrickas hi lue
18:17 pyrimidine joined #perl6
18:27 patrickas rakudo: class Foo {} ;multi sub reverse (Foo $a) {} ;for &reverse.candidates {try {.signature.perl.say;CATCH {say $!}}}
18:27 p6eval rakudo 8a5f38: OUTPUT«:(Foo $a)␤get_attr_str() not implemented in class 'Sub'␤get_attr_str() not implemented in class 'Sub'␤»
18:28 patrickas alpha: class Foo {} ;multi sub reverse (Foo $a) {} ;for &reverse.candidates {try {.signature.perl.say;CATCH {say $!}}}
18:28 p6eval alpha 30e0ed: OUTPUT«:(*@values)␤:(%hash)␤:(Foo $a)␤»
18:34 moritz_ any ideas for an -Ofun rakudo hacking session?
18:35 colomon that hacking on rakudo or hacking in rakudo?
18:35 moritz_ hackiing on rakudo, primarily
18:36 moritz_ but with rakudo might also be a nice idea
18:36 moritz_ well, actually I have an idea for that :-)
18:36 * colomon is still hoping to have a good chance to play with ufo soon
18:36 am0c__ joined #perl6
18:37 TimToady <sorear> TimToady: Can something be done to stop HardRoutines from being rebound, or must a single string eval break inlining for everyone?
18:37 TimToady an eval runs after CHECK time, so it is illegal to rebind a HardRoutine; someone needs to have turned it into a SoftRoutine instead before CHECK time
18:40 moritz_ Actions.pm lines 390 to 395 look wrong
18:40 moritz_ it delays module loading to happen after 'use' time
18:40 moritz_ erm
18:40 moritz_ after BEGIN
18:41 * lue hears hackathon and -Ofun in the same sentence, and is interested.
18:42 moritz_ if I don't get a better idea, I'll hack a bit on Math::Model
18:43 TimToady sorear: so while it would be possible, in theory, to know whether we've actually inlined a HardRoutine, and treat it as Soft after CHECK time if nobody had "claimed" it, I think that would be a bad idea
18:43 * justatheory encapsulates bad ideas
18:43 * diakopter a year or two away from that
18:43 TimToady and we should force people to declare their soft routines whether or not they end up getting inlined
18:45 TimToady this is the same with most optimizations--we will assume something is optimizable unless explicitly pessimized before CHECK time
18:46 TimToady and eval is not to be taken as a universal pessimization.  :)
18:47 TimToady I think the worst an eval can do is force creation of a pad with all visible external lexicals
18:47 TimToady or we force the user to declare the "import" list
18:49 TimToady alternately, we scan all single quoted strings for bits that look like variable names, and import those by default :)
18:49 xabbu42_ joined #perl6
18:51 TimToady so, for instance, eval '$x = 42;' knows that $x needs to be available to the eval's pad, likewise for eval "\$x = 42"
18:51 TimToady if there is no such variable visible, it just removes it from the list
18:51 diakopter yeah but
18:51 TimToady if you construct a var name, you're hosed :)
18:51 diakopter unscannable codegen...
18:52 diakopter hm
18:53 pmichaud (one().Set  and any().Set)   ooooooooh I like that notion.
18:53 ShaneC joined #perl6
18:54 ShaneC left #perl6
18:54 TimToady as long as any(1,2,3).Set gives you Set(Set(1),Set(2),Set(3),Se​t(1,2),Set(1,3),Set(1,2,3))
18:55 pmichaud seems like that should be very doable.
18:55 pmichaud and lazily, at that.
18:56 TimToady and none(1,2,3).Set gives you something like Any where $_ !=== any(1,2,3) or some such
18:56 pmichaud would it actually need to be a Set(...) at the outside -- a List wouldn't be sufficient?
18:56 pmichaud maybe .sets then
18:56 TimToady also, we could possibly do any(1...*) for any monotonic series where you can tell when you've gone far enough
18:57 pmichaud and any(...).Set  is any(...).sets.Set
18:57 xabbu42_ joined #perl6
18:58 sorear TimToady: So &-variable containers cannot be rebound if they currently point to a HardRoutine?  How does that work?
18:58 pmichaud anyway, it's worth playing with
18:58 TimToady probably special case
19:01 TimToady either special pass in CHECK, or &foo lookup knows to deref to see if it's holding a HardRoutine, and carp appropriately
19:02 pmichaud afk
19:02 TimToady your inliner is presumably already looking at these things at CHECK time
19:02 TimToady so maybe it's not a special pass
19:04 szabgabx joined #perl6
19:05 TimToady in any case, after the CHECK, something constrains hard routine containers from being rebound; seems non-expensive unless someone actualy tries to rebind the routine container
19:05 lue joined #perl6
19:05 sorear I was not aware non-rebindable containers existed.
19:05 sorear Do any other types exist?
19:06 TimToady if we want 'em to
19:06 cono joined #perl6
19:07 TimToady alternately, we don't require the check, but just rope off a large chunk of suspect code as "erroneous"
19:08 TimToady rakudo: 1 := 2
19:08 p6eval rakudo 8a5f38: OUTPUT«:= binding of variables not yet implemented␤  in 'infix:<:=>' at line 601:CORE.setting␤  in main program body at line 11:/tmp/6XA0S0qsuD␤»
19:08 TimToady whatever prevents that from happening can likely be used for immutable routine containers
19:09 moritz_ like, not implementing binding? :-)
19:09 TimToady yeah, something like that :)
19:10 lue what bad is that it didn't recongnize the real issue :)
19:10 FardadJalili joined #perl6
19:10 TimToady CHECK time is when the compiler says "Going...going...gone!"
19:10 * sorear wonders why all containers are bindable by default, but not tieable by default
19:11 sorear seems to me that tying is a special case of binding
19:11 TimToady then if we implement binding, we don't have to do tieing
19:12 Visitor99 joined #perl6
19:13 TimToady if static analysis doesn't tell us whether a variable is rebound, then we can assume it is not rebindable, I think
19:14 TimToady and require 'is bindable' to pessimize it for, say, eval
19:14 TimToady it doesn't quite give the same freedome as P5's tie does
19:14 masak joined #perl6
19:15 TimToady but then, tie is one of the reasons P5 is slow
19:15 masak mmm, nom.
19:15 [particle] we've picked other reasons to be slow
19:16 TimToady which are hopefully temporary
19:16 TimToady we could pessimize all variables with "use UNIVERSAL_REBINDING;" or some such, I suppose :)
19:17 pyrimidine left #perl6
19:17 TimToady but I'd really like to keep the default optmizable, even if not yet optimized...
19:18 TimToady this will also help the optimizer decide when it can replace reference types with native types
19:19 TimToady (knowing if anyone cares about the container)
19:19 masak that's why it's important to cover the bottom of your routine, so that no containers accidentally leak out.
19:22 masak rakudo: class A { has $!x = 42; method foo { $!x }; method bar { say $!x } }; my $a = A.new; A.foo++; A.bar
19:22 p6eval rakudo 8a5f38: OUTPUT«Type objects are abstract and have no attributes, but you tried to access $!x␤  in 'A::foo' at line 11:/tmp/vgYpommS2b␤  in main program body at line 11:/tmp/vgYpommS2b␤»
19:22 masak oops.
19:22 masak rakudo: class A { has $!x = 42; method foo { $!x }; method bar { say $!x } }; my $a = A.new; $a.foo++; $a.bar
19:22 p6eval rakudo 8a5f38: OUTPUT«43␤»
19:22 arnsholt nqp-rx's default quote_atom rule excludes quoted string syntaxes like SQL and Prolog where you insert a quote char by doubling it
19:23 arnsholt And it seems to me that the negative assertion <!stopper> is a bit unnecessary, seeing how the non-escape sequence part of the match is <-quote_escape-stopper>
19:23 TimToady method foo should be returning an lvalue
19:23 TimToady much like the earlier problem of take $x++
19:23 TimToady *shoudn't grr
19:23 masak TimToady: it is, that's why it's working.
19:23 Tene It's confusing to me that you can call instance methods on the type object.  I guess I don't quite understand Perl 6's OO
19:23 arnsholt Can anyone see a problem with removing the <!stopper> assertion?
19:23 TimToady what the heck has gone wrong with my n't key!?!?!?!!
19:24 masak TimToady: it shouldn't?
19:24 * masak is very surprised
19:24 masak Tene: the type object is an instance of the class.
19:25 TimToady what's the point of 'method foo is rw' if 'method foo' means the same thing?
19:25 Tene masak: if it's an instance of the class, why doesn't it have attributes?
19:25 masak TimToady: oh, ok. makes sense.
19:25 masak TimToady: I'm just used to 'rw' being on by default in Rakudo right now.
19:25 masak Tene: it does; you're just not allowed to use them. :)
19:26 TimToady Tene, the point is to be able to do logic like "Socratese is a Man", where Man is a generic undefined Man object, but behaves as a Man in all generic predicates
19:26 TimToady Socrates, grr
19:26 cdarroch joined #perl6
19:26 cdarroch joined #perl6
19:27 masak rakudo: class Man {}; class Socrates is Man {}; say Socrates ~~ Man
19:27 * Tene nods.
19:27 p6eval rakudo 8a5f38: OUTPUT«1␤»
19:28 pugssvn r31366 | sorear++ | [Cursor] Major refactor of NFA generation.  NFAs are now constructed in a hierarchal object graph form, then converted into the array in a single pass; there is no rescanning of graphs by composition operators.
19:28 TimToady rakudo: class Man { method is_an_island { 0 } }; say Man.is_an_island
19:28 p6eval rakudo 8a5f38: OUTPUT«0␤»
19:29 TimToady rakudo: class Man { }; class Island {}; say Man ~~ Island
19:29 p6eval rakudo 8a5f38: OUTPUT«0␤»
19:29 sorear Tene: Incidentally, Perl 5 OO works the same way.  The untyped name of a class can be used to call any method that doesn't need to access instance storage
19:29 TimToady rakudo: class Man { }; class Island {}; say Man !~~ Island
19:29 p6eval rakudo 8a5f38: OUTPUT«1␤»
19:30 TimToady except the untyped name is not an object
19:30 masak rakudo: class Man { method small-step {} }; class Humanity { method great-leap {} }; .small-step for Man; .great-leap for Humanity
19:30 p6eval rakudo 8a5f38:  ( no output )
19:30 sorear "Foo::Bar"->new = UNIVERSAL::can("Foo::Bar", "new")->("Foo::Bar"), exactly like object method dispatch
19:30 TimToady hence all the ref($self)||$self hacks
19:31 TimToady masak: you've just proven that the moon landing was faked!
19:31 masak TimToady: yep. look how easy it is. :P
19:32 lue ohai masak o/
19:32 masak of course, the alien they keep captive at Area 51 could have told us that years ago...
19:32 masak lue: ahoj!
19:33 masak lue: I'm bringing Druid up to Rakudo master this fine evening.
19:33 Schwern joined #perl6
19:33 lue \o/
19:34 ggoebel perl6: 'fubar'.reverse.say
19:34 p6eval rakudo 8a5f38: OUTPUT«fubar␤»
19:34 p6eval ..elf 31366, pugs: OUTPUT«rabuf␤»
19:34 masak ggoebel: .flip
19:34 pmurias masak: that's the reason they don't let him out
19:34 lue If the Moon Landing was a myth, they why are they cancelling the project?
19:34 ggoebel perl6: 'fubar'.flip.say
19:34 p6eval rakudo 8a5f38: OUTPUT«rabuf␤»
19:34 p6eval ..pugs: OUTPUT«*** No such method in class Str: "&flip"␤    at /tmp/f8372om_Ju line 1, column 1 - line 2, column 1␤»
19:34 p6eval ..elf 31366: OUTPUT«Can't locate object method "flip" via package "fubar" (perhaps you forgot to load "fubar"?) at (eval 124) line 3.␤ at ./elf_h line 5881␤»
19:34 ggoebel thanks
19:35 moritz_ and I am trying to plug SVG::Plot into Math::Model
19:35 masak pmurias: also, he's a great card reader, and he'd bankrupt Vegas in a day.
19:35 ggoebel perl6: @a=['fubar']; pop(@a).flip.say
19:35 p6eval rakudo 8a5f38: OUTPUT«===SORRY!===␤Symbol '@a' not predeclared in <anonymous> (/tmp/wQXNl95rj8:11)␤»
19:35 p6eval ..pugs: OUTPUT«*** ␤    Unexpected "=['"␤    expecting "::"␤    Variable "@a" requires predeclaration or explicit package name␤    at /tmp/ChRCdfGBLf line 1, column 3␤»
19:35 p6eval ..elf 31366: OUTPUT«Global symbol "$a_a" requires explicit package name at (eval 125) line 3.␤Global symbol "$a_a" requires explicit package name at (eval 125) line 4.␤ at ./elf_h line 5881␤»
19:35 masak ggoebel: 'my @a' :)
19:36 ggoebel perl6: my @a=['fubar']; pop(@a).flip.say
19:36 p6eval elf 31366: OUTPUT«Undefined subroutine &GLOBAL::pop called at (eval 125) line 4.␤ at ./elf_h line 5881␤»
19:36 p6eval ..rakudo 8a5f38: OUTPUT«rabuf␤»
19:36 p6eval ..pugs: OUTPUT«*** No such method in class Array: "&flip"␤    at /tmp/1OIHPp2Hki line 1, column 18 - line 2, column 1␤»
19:36 ggoebel thanks again!
19:36 masak I live to please.
19:36 Tene ggoebel: you might want to just use "rakudo:"
19:37 Tene pugs and elf aren't in quite the same state as rakudo
19:37 tadzik joined #perl6
19:39 sdo joined #perl6
19:39 sdo howdy
19:40 masak sdo: \o
19:41 colomon aaaiiiigggghhhh!!!  getting anything accomplished in C++ requires so many lines of code.....
19:42 lue hugme: hug colomon
19:42 * hugme hugs colomon and blushes
19:42 colomon thanks, hugme.  I needed that.
19:43 lue .oO(I was gobsmacked the first time I saw C code in Rakudo)
19:44 Tene perl6: say "foo".map: { "bar" }
19:44 p6eval elf 31366: OUTPUT«Can't locate object method "map" via package "foo" (perhaps you forgot to load "foo"?) at (eval 125) line 3.␤ at ./elf_h line 5881␤»
19:44 p6eval ..pugs, rakudo 8a5f38: OUTPUT«bar␤»
19:44 masak lue: be glad all of it isn't in C. :)
19:45 lue It should go away in P6.1 :)
19:45 sorear non-#perl6 people are very funny types
19:46 Tene What was the reason for the list methods being on everything, again?
19:47 masak Tene: because one item is often expected to act like a list of one item.
19:47 Tene For example?
19:47 eternaleye joined #perl6
19:47 TimToady Tene, it's a linguistic observation
19:47 masak rakudo: say (1,2,3).elems; say (1).elems
19:47 p6eval rakudo 8a5f38: OUTPUT«3␤1␤»
19:47 TimToady certain method names imply that you want a list
19:48 TimToady just as in natural lanuage, you can use words to force context on other words nearby
19:48 Tene And why does calling those method names on something that's not a list not suggest confusion on the part of the programmer?
19:48 moritz_ Tene: do you think that uc(1) should die?
19:48 xabbu42_ joined #perl6
19:49 TimToady because lists tend to degenerate to single values for various reasons
19:49 moritz_ or should it coerce to "1", and then uc it?
19:49 moritz_ it's the same idea for methods
19:49 TimToady .oO(there a uc(1) unix command?!?)
19:50 lue no :/
19:50 Tene Also, is this discussed in the specs somewhere?
19:51 TimToady rakudo: say uc 1e50
19:51 p6eval rakudo 8a5f38: OUTPUT«1E+50␤»
19:52 lue ō.o
19:52 TimToady there's your use case :)
19:52 lue where did the + come from?
19:52 TimToady rakudo: say ~1e50
19:52 p6eval rakudo 8a5f38: OUTPUT«1e+50␤»
19:52 TimToady rakudo: say 1e50
19:52 p6eval rakudo 8a5f38: OUTPUT«1e+50␤»
19:53 lue rakudo: say 1e5f
19:53 p6eval rakudo 8a5f38: OUTPUT«===SORRY!===␤Confused at line 11, near "say 1e5f"␤»
19:53 masak rakudo: sub postfix:<!!!>($s) { $s ~ '!!!' }; say uc 1e50!!!
19:53 p6eval rakudo 8a5f38: OUTPUT«1E+50!!!␤»
19:53 cdarroch joined #perl6
19:53 cdarroch joined #perl6
19:53 TimToady std: 0x_bad_cafe
19:53 lue rakudo: sub postfix:<!!!>($s) {$s ~ '!!!' }; say uc objection!!!
19:54 p6eval std 31366: OUTPUT«ok 00:01 109m␤»
19:54 p6eval rakudo 8a5f38: OUTPUT«Could not find sub &objection␤  in main program body at line 11:/tmp/SHSIJNKfEr␤»
19:54 lue std: 0xdead_beef_1337_cafe
19:54 p6eval std 31366: OUTPUT«ok 00:01 107m␤»
19:56 Visitor99 is this correct?
19:56 Visitor99 rakudo: my Str $a; say $a.^methods;
19:56 p6eval rakudo 8a5f38:
19:56 p6eval ..OUTPUT«ACCEPTSdefIntpredlBoolsuccencodeNumperlW​HICHsStrfrom-radianstrim-trailingcapitalizepredat​anhexpcosecp5choplccharssinhto-radiansacotanroots​lcfirstsecasectrimcotanhtrim-leadingcisloglog10se​chrandtruncatesprintfbytessinsqrtasincoshsuccsign​asinhacosechabsucceilingunpolarsamecasefloorsu…
19:57 moritz_ doesn't look wrong to me
19:58 Visitor99 my Str $s = "1.2"; say $s.sin;
19:58 colomon all those darned Cool methods....
19:58 Visitor99 rakudo: my Str $s = "1.2"; say $s.sin;
19:58 p6eval rakudo 8a5f38: OUTPUT«0.932039085967226␤»
19:59 Visitor99 rakudo: my Str $s = "0xdeadbeef"; say $s.sin;
19:59 p6eval rakudo 8a5f38: OUTPUT«0.956769719476176␤»
19:59 TimToady rakudo: my Str $a; say $a.^methods(:local).Str
19:59 masak Visitor99: if you want to space things out a bit, you can do 'say ~$a.^methods;'.
19:59 p6eval rakudo 8a5f38: OUTPUT«WHICH perl s Str ACCEPTS d e f pred Int l Bool encode succ Num␤»
19:59 lue rakudo: say "hi".d
19:59 p6eval rakudo 8a5f38: OUTPUT«Bool()␤»
19:59 lue rakudo: say "hi".d; say "hi".e; say "hi".f
19:59 p6eval rakudo 8a5f38: OUTPUT«Bool()␤0␤Bool()␤»
19:59 lue interesting...
19:59 whiteknight joined #perl6
20:00 TimToady we're intending to kick the filetests out of Str
20:00 lue that's what they are.
20:00 lue Seems more like an IO type thing anyway.
20:00 TimToady decommuting &
20:04 Psyche^ joined #perl6
20:05 lue afk # maybe when I come back I can find a long-term project screaming for me :)
20:06 justatheory_ joined #perl6
20:11 xabbu42_ joined #perl6
20:13 FardadJalili why do I get: ./perl6 t/spec/S05-grammar/example.t -> http://paste.ubuntu.com/451751/
20:14 moritz_ FardadJalili: the test file is out of date
20:15 masak FardadJalili: and it's not one that Rakudo currently runs as part of its spectest suite.
20:15 moritz_ rakudo doesn't run it by default
20:16 FardadJalili moritz_: but why? change in the syntax or what?
20:16 moritz_ FardadJalili: yes
20:17 FardadJalili moritz_: ok thanks again.
20:17 patrickas moritz_: does JSON::Tiny work with recent rakudos ?
20:17 moritz_ patrickas: mostly
20:18 moritz_ the parsing part works fine
20:18 moritz_ also constructing the data structures
20:18 patrickas thanks, that should be enough for a start
20:18 moritz_ the serialization has a few problems still
20:20 xabbu42_ joined #perl6
20:22 jrtayloriv joined #perl6
20:23 [Coke] p9
20:26 masak [Coke]: there isn't going to be a p9.
20:27 xabbu42_ joined #perl6
20:30 [particle] why is p6 afraid of p7?
20:31 diakopter because p7 p9 p9
20:31 diakopter augh
20:31 diakopter p7 p8 p9
20:31 masak 'pea-ate'?
20:32 diakopter oh.  was that a rhetorical question?
20:32 [particle] isn't that why there won't be a p9?
20:32 [particle] the same reason p6 is afraid of p7?
20:34 masak we'll need the Singularity to produce p7. making p6 is already tricky enough.
20:34 moritz_ plan9 had lots of good ideas
20:35 masak maybe p6 is afraid of p7 because p6 -> Signularity -> p7 :)
20:35 PerlJam masak++
20:36 moritz_ rakudo: my %h = a => [1, 3], b => [2, 4]; for [Z] %h<a b> -> $a, $b { say "$a $b" }
20:36 p6eval rakudo 8a5f38: OUTPUT«1 2 3 4 ␤»
20:36 moritz_ any way to get that to print 1 2\n3 4\n instead?
20:37 moritz_ rakudo: my %h = a => [1, 3], b => [2, 4]; for [Z] %h<a b>».list -> $a, $b { say "$a $b" }
20:37 p6eval rakudo 8a5f38: OUTPUT« ␤»
20:39 moritz_ hugme: add patrickas to json
20:39 * hugme hugs patrickas. Welcome to json!
20:40 moritz_ # in case you have a fix :-)
20:40 patrickas Thanks ... I doubt I will ... but you never know :-)
20:44 masak moritz_:
20:44 masak rakudo: my %h = a => [1, 3], b => [2, 4]; for %h<a b> -> [$a, $b], [$c, $d] { say "$a $c"; say "$b $d" }
20:44 p6eval rakudo 8a5f38: OUTPUT«1 2␤3 4␤»
20:45 moritz_ masak: that's cheating
20:46 moritz_ i have some few hundred values in a and b each :/
20:46 moritz_ workaround for SVG::Plot pushed
20:46 masak joined #perl6
20:50 dalek rakudo: df98be5 | moritz++ | src/core/List.pm:
20:50 dalek rakudo: List.hash
20:50 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/d​f98be56f51b0df572d48c6bb3ad4d514fdbc84d
20:52 masak moritz_: you didn't specify the rules, so I wasn't cheating; was just trying to solve the problem for you. :)
20:55 SmokeMachine joined #perl6
20:55 masak can't be much help on [Z], though. I don't even have an intuition for what it does. that's one scary operator :)
20:58 sorear TimToady: How does bindability work for anonymous containers?  IE if @foo exists, when can the optimizer assume @foo[13] will never be rebount?
20:59 pugssvn r31367 | sorear++ | [Cursor] Optimize ltm alternation after horizons a bit.  Cuts 200 nodes off the statementlist_0 NFA.
20:59 masak ah hah hah. I'm the first person to be bitten by the laziness in Rakudo's new gather block. :)
21:00 sorear (we're back under the 3s mark!)
21:00 masak this explains Rakudo's strange refusal to run the inside of a certain gather block in Test::Ix in Druid. :)
21:01 masak sorear: what is it that takes 3s?
21:01 masak should a gather block act eagerly in sink context?
21:01 moritz_ rakudo: my %h = a => 1; 'a' ~~ /./; say %h{$/}
21:01 p6eval rakudo 8a5f38: OUTPUT«maximum recursion depth exceeded␤  in 'postcircumfix:<{ }>' at line 1␤  in 'postcircumfix:<{ }>' at line 1054:CORE.setting␤  in 'postcircumfix:<{ }>' at line 1␤  in 'postcircumfix:<{ }>' at line 1␤  in 'postcircumfix:<{ }>' at line 1␤  in 'postcircumfix:<{ }>' at line 1␤  in
21:01 p6eval ..'postc…
21:01 sorear masak: tryfile /tmp/y, where /tmp/y contains "2 + 2"
21:01 moritz_ masak: yes
21:01 sorear averaged over 10 runs, dropping the first
21:02 moritz_ but sink context is NYI
21:02 masak sorear: ah, ok.
21:02 sorear it's a crude benchmark of STD startup overhead
21:02 * moritz_ submits rakudobug
21:02 diakopter http://icfpcontest.org/2010/?today
21:02 masak moritz_: right.
21:04 xabbu42_ joined #perl6
21:08 patrickas moritz_++ JSON::Tiny works again
21:10 Guest23195 "The first major release (named "Rakudo *" or "Rakudo Star") is expected in the second quarter of 2010"
21:11 Guest23195 Perhaps someone wants to edit http://en.wikipedia.org/wiki/Rakudo_Perl
21:11 masak joined #perl6
21:11 * moritz_ waits for pmichaud's blog post
21:11 masak rakudo: class A {}; my $a = A.new; say $a ~~ (*, $a, *)
21:11 p6eval rakudo 8a5f38: OUTPUT«Can't take numeric value for object of type A␤  in 'Any::Numeric' at line 1226:CORE.setting␤  in 'infix:<==>' at line 5818:CORE.setting␤  in 'negate' at line 56:CORE.setting␤  in 'List::ACCEPTS' at line 1␤  in 'Parcel::ACCEPTS' at line 1211:CORE.setting␤  in 'infix:<~~>' at
21:11 p6eval ..line 32…
21:12 * masak submits rakudobug
21:12 masak that used to work.
21:12 masak alpha: class A {}; my $a = A.new; say $a ~~ (*, $a, *)
21:12 p6eval alpha 30e0ed: OUTPUT«1␤»
21:12 moritz_ then we can link to that blog post as a citation
21:13 pmichaud sorry, my blog post is a little delayed
21:13 pmichaud and I hate to admit *why*
21:13 pmichaud it'll be up tonight, though.
21:18 pugssvn r31368 | sorear++ | [Cursor] Prune duplicate fates
21:18 moritz_ d'oh
21:18 moritz_ SVG::Plot doesn't do xy plots yet :(
21:21 masak joined #perl6
21:21 xabbu42_ joined #perl6
21:23 moritz_ that kinda delays the connection to Math::Model (which now assembles all the data in the necessary format, or at least close enough)
21:24 moritz_ rakudo: say *[3].(list(1..10))
21:24 p6eval rakudo 8a5f38: OUTPUT«Any()␤»
21:25 pnate joined #perl6
21:33 M_o_C joined #perl6
21:33 M_o_C joined #perl6
21:39 xabbu42 joined #perl6
21:39 * FardadJalili says goodbye
21:39 FardadJalili left #perl6
21:41 xabbu42_ joined #perl6
21:41 diakopter rakudo: say { }\{ }.WHAT
21:41 p6eval rakudo 8a5f38: OUTPUT«List()␤»
21:44 diakopter rakudo: say \{ }\{ }.WHAT
21:44 p6eval rakudo 8a5f38: OUTPUT«Capture()<0x3c25f90>␤»
21:47 diakopter moritz_:
21:47 diakopter ping
21:48 diakopter perlesque: # hi
21:48 p6eval perlesque: OUTPUT«sh: mono: command not found␤»
21:48 diakopter moritz_: something broke ^^
21:52 Visitor99 rakudo: my Int $i = 1.0;
21:52 p6eval rakudo 8a5f38: OUTPUT«Type check failed for assignment␤  in '&infix:<=>' at line 1␤  in main program body at line 11:/tmp/ToKeuz_fTK␤»
21:52 Visitor99 rakudo: my Rat $i = 1;
21:52 p6eval rakudo 8a5f38: OUTPUT«Type check failed for assignment␤  in '&infix:<=>' at line 1␤  in main program body at line 11:/tmp/D8G1Orc7Um␤»
21:53 Visitor99 why those fail? I can understand the first, but... why 1 is not accepted as a Rat?
21:57 jnthn Visitor99: Int is not a Rat
21:57 jnthn rakudo: say Int ~~ Rat
21:57 p6eval rakudo 8a5f38: OUTPUT«0␤»
21:57 sorear TimToady: Under what circumstances is a contextual considered to be "is bindable"?
21:58 Visitor99 rakudo: say 1.WHAT
21:58 p6eval rakudo 8a5f38: OUTPUT«Int()␤»
21:58 Visitor99 rakudo: say (1.0).WHAT
21:58 p6eval rakudo 8a5f38: OUTPUT«Rat()␤»
22:03 mberends joined #perl6
22:05 jnthn o/ mberends
22:05 mberends \o from distant Lund ;)
22:06 jnthn It's harder to be distant in this appartment than my previous one. :-)
22:08 mberends there's no place like 192.168.1.100 :)
22:08 jnthn ooh, yes, that's a good comfyspot.
22:09 ejs joined #perl6
22:14 sorear Would anybody mind if I moved viv to all tabs or all spaces?  The inconsistency is getting to me
22:14 tedv joined #perl6
22:16 * Tene reminded of http://www.emacswiki.org/pic​s/static/TabsSpacesBoth.png
22:17 Tene (the first hit on google for: mix tabs spaces)
22:18 [Coke] tene++
22:28 xabbu42_ joined #perl6
22:33 jnthn rakudo: say (*-3).signature.perl
22:33 p6eval rakudo 8a5f38: OUTPUT«:(;; Mu $x)␤»
22:37 jnthn my $x = (*.foo(say(42)));
22:37 jnthn rakudo: my $x = (*.foo(say(42)));
22:37 p6eval rakudo 8a5f38: OUTPUT«42␤»
22:47 xabbu42_ joined #perl6
22:51 lue oboy t-storm. Goodbye for now [shutting down] o/
22:54 Schwern joined #perl6
22:55 k23z__ joined #perl6
22:58 Guest23195 left #perl6
23:07 masonkramer it might be dividing by zero to even ask this question, but, does perl6 have AUTOLOAD?
23:11 patspam1 joined #perl6
23:11 jnthn masonkramer: It has a mechanism for doing that kind of thing, see Autoloading section in http://svn.pugscode.org/pugs/do​cs/Perl6/Spec/S10-packages.pod
23:12 arthur-- joined #perl6
23:12 sorear masonkramer: In theory, yes.  In practice, the spec is unusable as written and needs a rewrite.
23:12 jnthn sorear: Well, it's at least fair to say that nobody tried implementing it yet anyway, afaik. :-)
23:13 jnthn Heh, maybe that's why it needs a rewrite. ;-)
23:13 sorear TimToady: ping
23:15 Sarten-X joined #perl6
23:25 masonkramer (oh...weird...if package declarations require a block, then everything is going to have an extra level of indentation ... )
23:26 sorear why are you using packages anyway
23:27 masonkramer I'm not, I was justing reading jnthn's link to S10
23:27 sorear perl 6 programmers use roles, classes, and modules instead
23:27 jnthn sorear: All of which are types of package. ;-)
23:27 jnthn masonkramer: There is also a semi-colon form for everything except "package"
23:27 diakopter real programmers use reverse indentation
23:27 jnthn masonkramer: And what sorear said - you don't use "package" really in Perl 6.
23:28 pugssvn r31369 | jnthn++ | [t/spec] Unfudge a test in advent2009-day19.t.
23:28 pugssvn r31370 | jnthn++ | [t/spec] Some unfudging and new tests for Whatever currying.
23:30 jnthn TimToady: I've got Rakudo doing *.foo currying at compile time now; let me know if you decided which way to swing on keeping $x.foo currying if $x contains *.
23:30 diakopter real programmers use a 3d monitor, and indented text appears farther away than outer text
23:31 masonkramer it should appear *closer in* because the most indented parts are the inner loops where all the good stuff happens
23:31 masonkramer well, mho
23:31 dalek rakudo: 92e914a | jonathan++ | src/Perl6/Actions.pm:
23:31 dalek rakudo: Curry *.foo at compile time now. Also add = and := to the operators that we do
23:31 dalek rakudo: not curry.
23:31 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/9​2e914adf1345e7130e9833937d0c1e45f59ff67
23:33 diakopter I got all these cans of Spaghettios really cheap!  Food for months!  Hooray!  \o/
23:34 jnthn Sounds like a well balanced diet. :-)
23:35 jnthn Sleep time for me; night o/
23:38 sorear Have you checked the price of corn recently?  It's quite absurd, or was
23:39 Wolfman2000 joined #perl6
23:48 masonkramer package "autoviv"...cute...I like...very perly
23:49 supernovus joined #perl6
23:56 masonkramer oh nice... multi CANDO sounds much better than AUTOLOAD...much much nicer
23:57 masonkramer i love it...
23:57 masonkramer but the note at the top says that this should be excised
23:57 sorear There's one tiny catch.
23:58 sorear Because of the way the import system works, any function defined using CANDO is only visible to the module that requested it.

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

Perl 6 | Reference Documentation | Rakudo