»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
ingy TimToady: sshhhh. lizmat's trying to sleepzzz 00:16
zacts so are there any production projects using perl6? 00:36
Timbus the top perl 6 rosettacode entry for chess960, doesnt work as intended. 03:13
just backlogging there.
ingy Timbus: it still looks cool ;) 03:28
TimToady Timbus: fixed 04:46
TimToady broke it in the first place, trying to avoid uninit warnings
but my fix caused the pick loop to always be true, so it never ran
now it uses a repeat to always do the pick at least once 04:47
TimToady Timbus++ for noticing 04:59
Timbus thanks fine 05:00
i think, it would also be good to use the enum to generate the output. somehow feels weird to make all those constants, and then apply it to a not-so-constant list of characters. i guess 05:02
my headache is hindering my ability to sentence :s 05:05
TimToady otoh it's ready to convert to unicode this way 05:07
(I didn't write it, btw)
TimToady check pieces aren't alphabetic, but maybe we could teach enums in non-identifiers to use a term:<♜> to define symbols 05:09
*chess
TimToady though you'd still have to do ♜1 and ♜2 to avoid collisions 05:10
Timbus use an ordinary hash instead of an enummap and just swap the .values around to determine position. 05:13
moritz lizmat: I'm talking about S17-supply/{on,delay,uniq,stable,watch_path}.t which all fail here (some only when run in parallel spectest 05:25
lizmat: and I'm both interested in getting rid of the test failures, and how to fudge tap_ok tests in general 05:26
TimToady m: my $p = 'BQBRRRNN'; $p = $p.comb.pick(*).join while ($p.rindex('B') - $p.index('B')) %% 2; substr-rw($p,$p.index('R', $p.index('R') + 1), 1) = 'K'; say $p; 05:34
camelia rakudo-moar 1984fd: OUTPUT«NRKQBBRN␤»
Timbus TimToady++ :o 05:40
TimToady m: repeat until m/B.*B/.chars %% 2 { $_ = <B Q B R R R N N>.pick(*).join } s:2nd/R/K/; say .comb; 06:11
camelia rakudo-moar 1984fd: OUTPUT«===SORRY!=== Error while compiling /tmp/WeG9dNHjq1␤Confused␤at /tmp/WeG9dNHjq1:1␤------> { $_ = <B Q B R R R N N>.pick(*).join } ⏏s:2nd/R/K/; say .comb;␤ expecting any of:␤ method arguments␤ …»
TimToady m: repeat until m/B.*B/.chars %% 2 { $_ = <B Q B R R R N N>.pick(*).join }; s:2nd/R/K/; say .comb;
camelia rakudo-moar 1984fd: OUTPUT«R K B N N B Q R␤»
TimToady it's a bit sad that .subst doesn't accept a :2nd argument, only :nth(2) 06:37
jnthn morning, #perl6 06:39
ingy hi jnthn 06:40
I just wrote a new markup called Kwim that's better syntax than markdown and richer model than pod 06:41
and it converts to both!
and html of course
I've been migrating all my pod to kwim and making sure everything converts back 06:42
sergot_ morning o/
ingy anyone know if there is a pod markup for travis badges? 06:43
Woodi morning :) 06:45
Woodi zacts: re: so are there any production projects using perl6? few days I completed perl6 project that work as good as perl5 in calculating weekly "production" here :) only difference is 1 second in execution time. what is annoying a bit becouse > then blink... 06:50
zacts Woodi: cool 06:51
I'm interested in eventually learning more about perl6
can I still do one-liners in perl6? 06:52
Woodi with big, unconscious FROGGS++ contribution :o)
yes
FROGGS hmmm?
zacts I don't understand?
Woodi I was asking for help *here* and random voluntiers was helping :) 06:53
perl -e 'code;' works
FROGGS zacts: you can still do one-liners, but maybe the Perl 5 binary supports some command line flag that the Perl 6 (rakudo) binary does not 06:54
and also important: strict is enabled by default and you cannot turn it off atm
even for one-liners
zacts: but we will happily implement stuff for you, if it is specced, and you need it urgently 06:55
zacts oh neat
Woodi btw. can markdown have colors ? if not html then is better, feature-minimal format :) 06:56
zacts I don't understand what the benefit of using perl6 over perl5 is designed to be, since perl6 isn't supposed to replace perl5, but a sister project?
FROGGS Woodi: I don't think md supports colours
zacts for what types of projects is perl6 designed to do well at that perl5 is not?
I wonder if multimarkdown can do colors 06:57
Woodi zacts: perl6 is kind optimized for readability :)
FROGGS zacts: it is supposed to be the language for the next 30 years, but we realized that it will not replace P5 entirely because people do not rewrite their stuff when it works
zacts Woodi: so will it be like a freeform python?
FROGGS: oh I see 06:58
FROGGS that is why Perl 5 developement is still ongoing, because people love and use it
zacts: but that does not mean that Perl 6 is not awesome... you'll see that its architecture and possibilities are superior to anything known :o)
zacts ok cool 06:59
will it have Moose like capabilities by default?
and what is that quantum::superposition stuff I've heard about? 07:00
FROGGS zacts: for example I've heard from a company that has more than 14_000_000 lines of python 2.7 code... they are stuck, they cannot upgrade
same for huge Perl 5 code bases
TimToady zacts: yes, the MOP is built in 07:00
zacts FROGGS: yeah I can understand that, but for personal projects, and new projects perl6 sounds cool
FROGGS zacts: exactly
TimToady m: say 42.^methods
camelia rakudo-moar 1984fd: OUTPUT«WHY Int Num Rat FatRat abs Bridge chr sqrt base expmod is-prime floor ceiling round lsb msb narrow sign conj rand sin asin cos acos tan atan atan2 sec asec cosec acosec cotan acotan sinh asinh cosh acosh tanh atanh sech asech cosech acosech cotanh acotanh …»
TimToady m: my $x = 2; say "Matches" if $x == 1 | 2 | 3; 07:01
camelia rakudo-moar 1984fd: OUTPUT«Matches␤»
FROGGS m: say &infix:<eq>.WHAT
camelia rakudo-moar 1984fd: OUTPUT«(Sub+{<anon>}+{Precedence})␤»
TimToady ^^ there's your meta-objects, and there's your junctions (quantum superpositions)
FROGGS zacts: it is not that everything looks like an object, everything is 07:02
zacts oh cool
how about functional programming?
TimToady but you can pretend that something isn't an object if you like :)
Woodi zacts: not like python :) but in Perl spirit !
TimToady lots of FP
moritz zacts: supported :-)
FROGGS from the objects you instanciate over infix operators to the signatures of your subroutine or method
zacts nice!
so are subs first class?
moritz sure 07:03
TimToady including operators
zacts oh wow
moritz m: my $x = sub ($a) { $a * 2} ; say $x($_) for 1..4
camelia rakudo-moar 1984fd: OUTPUT«2␤4␤6␤8␤»
zacts and lambda?
zacts or am I thinking too much of (scheme)? 07:03
moritz m: my $x = -> $a { $a * 2 } ; say $x($_) for 1..4
camelia rakudo-moar 1984fd: OUTPUT«2␤4␤6␤8␤»
zacts :D
moritz zacts: there's your lambda
zacts oh wow. well, now I'm totally interested
moritz if you squint hard enough, the -> looks like a fallen lambda
also, there's a short form 07:04
TimToady fallen and a bit broken :)
zacts -/ <- this is my favorite ascii lambda
FROGGS m: for ^10 -> $x, $y { say $x * $y }
moritz m: my $x = * + 2 ; say $x($_) for 1..4
camelia rakudo-moar 1984fd: OUTPUT«0␤6␤20␤42␤72␤»
rakudo-moar 1984fd: OUTPUT«3␤4␤5␤6␤»
Woodi oO( PHP huge codebase ? throw away views-only code ? )
moritz * + 2 is short for -> $x { $x + 2 }
zacts how about things like POE / Async::IO / etc.. 07:05
FROGGS * is called Whatever
TimToady that's mostly there now
moritz zacts: there's some support for async IO in core, currently evolving
FROGGS zacts: that is where you can help, write modules, because modules.perl6.org could need some helping hands :o)
zacts and can I start writing my own perl6 CPANish modules? 07:06
oh, I see!
FROGGS yes
zacts and artistic 2.0 license?
TimToady yes
FROGGS also, I am working hard these days to make use of CPAN, so that we can use its power to distribute our modules
moritz that's what we use for the compiler
(AL2)
zacts nice. It would be cool to try to add hooks to perl6 from vim or neovim I'm thinking. 07:07
TimToady drools 07:07
moritz there's also perl6 syntax hilighting for vim
:se ft=perl6
zacts although, I'm currently using emacs evil-mode.
oh nice
well, I'll have to learn me some perl6, and see if I can help with modules. 07:08
but note I'm still intermediate / newbie as far as programming is concerned.
TimToady is okay, Perl is a learn-as-you-go langauge
zacts I'm still learning all of this stuff. I haven't written a perl5 module, mainly due to the fact that most everything is already written.
TimToady should learn to spell as he goes...
moritz zacts: and typically #perl6 is very happy to help you and explain stuff 07:09
zacts cool
FROGGS TimToady: I always tell my kids not to do anything else while they go :o) 07:09
moritz (provided that you do some reading on your own too, when we point you to docs)
TimToady rosettacode.org is a good place to compare p5 code with p6 code that does the same thing
zacts oh of course, but I've made it through #perl so reading doc isn't a problem for me. ;-)
TimToady: oh nice. 07:10
TimToady well, and with most every other language too
zacts has even helped others find good doc. I'm also trying to get perldoc perlbooks patched for more up-to-date doc such as chromatic's book and ovid's new book. 07:11
TimToady the biggest change from P5 will be the regex syntax 07:12
zacts oh, I was about to ask about regex.
and POD / perldoc, I wonder about those too..
TimToady but S05 is still written largely as a delta from Perl 5, so that's a good place to get the hang of it
zacts ok, that is the spec for perl6? 07:13
anyway, I'll read more and come back when I've got either a cool idea, or have more questions.
TimToady yeah, see perlcabal.org/syn/
zacts I love writing documentation, so if you guys need help with that, such as writing POD / perldoc. yeah. 07:14
TimToady cool, we can always use better docs
zacts (that might help me learn perl6 at the same time also)
moritz zacts: the perl6/doc repo on github needs lots of love :-)
zacts ok
well thanks, laters
TimToady ciao
FROGGS o/ 07:15
Woodi later !
zacts hm.. back for a sec. perlcabal.org/syn/Differences.html wow this is amazing. I like many of the changes, although some will require me to learn new habits. (similar to learning a new mode or plugin for vim). 07:52
FROGGS true 07:54
zacts oh so I can still use a perl5 compatible mode for regex it looks like
FROGGS yes, though it is not yet 100% compatible
zacts (regex was what first got me to learn perl in the first place several years ago)
FROGGS: well of course, only the perl interpreter can parse perl5, or something like that? 07:55
FROGGS I am working also on a Perl 5 slang, so you can run unmodified Perl 5 code... still in an beta stage though :/
zacts: no, everything that can *run* Perl 5 can properly *parse* Perl 5
because you always do both
BEGIN blocks and use statements are a good example 07:56
the same goes for Perl 6
zacts FROGGS: ah ok 07:57
Timbus i think the perl 5 compatible regex is low priority, because perl 6 regexes are just so much better 07:58
zacts Timbus: oh, yeah that sounds cool. I don't have a problem with learning a new regex syntax/flavor. 07:59
especially since they sound like they are out of this world
grondilu FROGGS: talking about v5 I was wondering: could v5 use th perl 5 api via NativeCall instead of reimplementing everything in Perl6/NQP?
zacts yeah the new regex "rules" look way awesome. 08:02
Timbus they is
:) 08:03
FROGGS grondilu: we could, but it will either be very very complex then, or you have the same as qqx{perl -e ...}
zacts so what are currently the main setbacks to perl6 development? 08:04
moritz performance 08:04
FROGGS grondilu: read diakopter++'s grant... I am unable to do it, that's why I reimplement P5's behaviour in rakudo/nqp, which makes it easy to pass vars around for example
moritz lack of reliability in certain areas (IO, precompilation)
lack of modules
lack of documentation
zacts moritz: like how much performance? 08:05
FROGGS moritz: but we get better about performance these days
zacts and reliability, hm.. (personally I would be more concerned about reliability at this stage than performance)
moritz zacts: it really depends on the problem domain, and how you solve stuff in Perl 6, but a factor 10x to 100x slower than perl 5 is not unheard of
zacts: though, as FROGGS said, improving
zacts oh cool.
FROGGS zacts: dunno if it is representable: t.h8.lv/p6bench/2014-05-12-spesh_lo...artup.html 08:06
zacts does perl6 participate in GSoC? I'm a college student.
just getting started with comp sci undergrad. right now I'm @ a community college.
FROGGS zacts: when you look at that stats, compare perl5 to rakudo-moar, not nqp
zacts ok
Timbus it does. i think someone even submitted something about bolting on a hotpath jit of some sort
FROGGS zacts: we have GSoC students this year, yes :o)
zacts oh nice! 08:07
moritz one implements a JIT compiler for MoarVM
the other SSL support for our HTTP modules
sergot_++
brrt++
FROGGS not only SSL (TLS, really!) support, but the entire LWP toolchain 08:08
tadzik oh, hey zacts 08:09
moritz finds that MTA (Moar Than Awesome)
zacts tadzik: hey sup? oh you are the dude I was working on that perl-webcasts with iirc.
tadzik yep 08:10
zacts cool. I haven't made any progress on it, too many projects, and school is going to get busy soon starting in the fall.
:-)
moritz school? busy? wait till you have > 1 kids at home! :-)
zacts but, today reminded me of it because someone mentioned pearlbee.org/ or whatever 08:11
moritz: :D
zacts tadzik: www.builtinperl.com/ <- the exact layout we planned for the perl-webcast 08:12
tadzik haha, yeah
lizmat moritz: maybe we need something like subtests 08:16
(as in Perl5's Test::More
) will ponder while doing second part of commute to Poznan
lizmat commuting& 08:31
timotimo gentwoo.elisp.net/users/omasanori - huh, interesting concept 08:56
timotimo oh, zacts is gone 09:08
timotimo FROGGS: that benchmark isn't very representable, because it only shows moarvm and that has known problems with string performance 09:08
FROGGS timotimo: then it is very representable
timotimo you think so? 09:09
i could make a new graph with only rakudo-moar, rakudo-parrot and rakudo-jvm 09:10
FROGGS and Perl 5 ?
timotimo yes
FROGGS I mean, r-m is the fastest we have... and when its string ops are slow, well, then that is what we need to show 09:11
timotimo i didn't even realize rakudo-moar is able to overtake nqp on the while_empty_native benchmark, that's pretty cool
well, if you have something that heavily relies on join, you can just switch to parrot
if you have something that runs for a long time, just switch to jvm
FROGGS true
in case you can switch at all
timotimo right
it's more likely you can switch from moar to jvm than from moar to parrot, given moar and jvm share multithreading capabilities 09:12
zacts: heya
zacts: seems like nobody mentioned that perl 6 has multithreading
so ... that's a thing that ought to get some people excited
dalek rlito: 6cf47b4 | (Flavio S. Glock)++ | TODO-perlito5:
Perlito5 - TODO update
09:13
FROGGS Perl 5 has that too, but to a different layer of abstraction
timotimo as far as i heard that is either terrible or just "processes" 09:13
FROGGS it is easy to do it very wrong, yes 09:14
daxim what is the perl6 internal string model called again? .oO(something normalisation mumble) 11:11
yoleaux 26 Apr 2014 22:04Z <FROGGS> daxim: I have information about ß.uc... if you are interested please either read your privmsg or ping me
nwc10 daxim: NFG. Normalisation Form for Graphemes 11:13
(or, probably Normalization Form for Graphemes, because Larry comes from the place with other ideas about spelling
nothing implements it yet
I think that it's a deliberate joke that it can be confused with other meanings for NFG 11:14
daxim ok, is there a design document for that? can't find details with a google search 11:15
nwc10 that I don't know.
arnsholt It's in one of the synopses
Which precise one escapes me ATM, but it might be S02 11:16
daxim found S02 S03, but very light on details, no implementation hints
nwc10 the implementation idea that I'm aware of is to use negative code points for the faked up combining characters 11:17
daxim "Documentation for this can hypothetically be found in S15." # aha, it's clearly a todo
arnsholt I think lue has been working on a spec for it recently 11:23
daxim perl.plover.com/perl67.html 11:29
jnthn rather suspects the detailed spec will come about as the implementation takes place. :) 11:59
Just as has happened with S17.
FROGGS daxim / nwc10: raw.githubusercontent.com/perl6/sp...nicode.pod
dalek ecs: 64799da | grondilu++ | S05-regex.pod:
Fixing pod errors in S05

nested lists were messed up around line 2270
12:58
dalek kudo-star-daily: ba19091 | coke++ | log/ (5 files):
today (automated commit)
13:12
[Coke] if there's a group of tests that cannot be todo'd individually, we should probably skip the whole block, unfortunately.
[Coke] 'ack -a tap_ok' : nada. 13:15
[Coke] weird. that dir had no t/spec. :) 13:16
lizmat has arrived at the Elephant 13:18
[Coke] ~~ lizmat! 13:18
lizmat so, how about implementing sub tests in Test.pm ? 13:19
is that a plan? It would immediately fix the issues with tap_ok 13:20
and other ones, like throws_like
jnthn lizmat: How's l'elephant? 13:21
lizmat: Have you unpacked your trunk yet? :P 13:22
lizmat we're halfway unpacking the trunk 13:22
jnthn wonders if the hotel is big and trumpets now and then :)
lizmat the hotel is much smaller than we thought 13:23
jnthn Just don't try giving it LSD :P
lizmat but the room is very nice and roomy
jnthn Cool :)
Is it situated kinda central?
Will I be able to sanely walk to it from the station tomorrow? :)
lizmat I have no idea: we selected it by proximity to the venue
jnthn ah, ok :)
I'll look at a map later :) 13:24
lizmat my navigator says 3.3 km from main railway station 13:25
if that is a sane distance for you, it will be a sane walk :-)
jnthn That's a "if it's not raining" walk :) 13:26
lizmat hehe just don't start looking for a pink polka dotted elephant... 13:27
jnthn aww
lizmat you won't find the hotel that way
jnthn Is it well hidden? :)
lizmat it's in the middle of what I would describe as a suburb 13:28
feels like it used to be two houses, that they connected through an connection through the basement
*a
jnthn ah, k
My train gets in at 18:30 or so tomorrow. 13:30
btyler .tell colomon woo for ganging up on panda with pull reqs to fix $*VM.name :) 14:31
yoleaux btyler: I'll pass your message to colomon.
colomon btyler++ 14:32
yoleaux 14:31Z <btyler> colomon: woo for ganging up on panda with pull reqs to fix $*VM.name :)
colomon message was driving me crazy. :)
btyler tadzik mentioned doing something to accomodate folks on older rakudos 14:33
before merging the VM name tweak
lizmat wonders whether the deprecation messages are too much?
please note that everything still works 14:34
so it you have code that runs on older rakudo's
you don't need to change it
or make some special condition to handle both cases
and perhaps the deprecation message is too soon?
I could undeprecate $VM<name> and $VM<config> for now and wait for a few months before officially deprecating? 14:35
btyler they're great, but for small fixes it is hard to resist opening a pull req to get the message to go away -- they're a pretty strong call to action
they make it too easy, almost :)
lizmat sometimes I wonder whether warnings shouldn't work this way as well (or at least optionally so) 14:38
so I'm looking at implementing subtests in lib/Test.pm 14:42
and I wonder if there is an easy way to .wrap a PeudoStash like MY::
*PseudoStash
a "subtest" would then just become a code ref that would wrap proclaim and say, and wrap the entire MY:: PseudoStash 14:45
until the subtest is done, when proclaim and say would be unwrapped, and the original MY:: restored
jnthn: would that have *any* chance of flying ?
the alternative would be to make all necessary my variables dynamic 14:46
and create new ones inside "subtest"
r: our $*a = "foo"; $*a.say; { our $*a = "bar"; $*a.say }; $*a.say 14:48
camelia rakudo-{parrot,jvm,moar} 1984fd: OUTPUT«foo␤bar␤foo␤»
lizmat I guess that has the best chances right now :-) 14:50
[Coke] finds some more sixers on gittip.com 14:54
dalek rlito: add51c9 | (Flavio S. Glock)++ | / (4 files):
Perlito5 - js - emitter for qr()
15:10
lizmat $ perl6 lib/Test.pm
Segmentation fault: 11
LizyPro-2:rakudo liz$ MVM_SPESH_DISABLE=1 perl6 lib/Test.pm
===SORRY!===
Dynamic variable $*done_testing_has_been_run not found
should I file a rakudobug for this? ^^^ jnthn timotimo ? 15:11
lizmat rL our $*a; END { say $*a } # golfed 15:15
r: our $*a; END { say $*a } # golfed
camelia rakudo-parrot 1984fd: OUTPUT«===SORRY!===␤Dynamic variable $*a not found␤Dynamic variable $*a not found␤current instr.: 'print_exception' pc 140071 (src/gen/p-CORE.setting.pir:59512) (gen/parrot/CORE.setting:11392)␤called from Sub 'throw' pc 411113 (src/gen/p-CORE.setting.pi…»
..rakudo-jvm 1984fd: OUTPUT«===SORRY!===␤Dynamic variable $*a not found␤Unhandled exception: Dynamic variable $*a not found␤ in print_exception (gen/jvm/CORE.setting:11370)␤ in <anon> (gen/jvm/CORE.setting:11412)␤ in (gen/jvm/main.nqp:54)␤ in (gen/jvm/main.nqp)␤ i…»
..rakudo-moar 1984fd: OUTPUT«(signal )»
masak lizmat: please, file a rakudobug. 15:17
so that used to work, hm?
it's not 100% clear to me that it should.
lizmat I'm not sure
lizmat r: our $*a; BEGIN { $*a = "foo" }; END { say $*a } # here it should find it, no? 15:17
camelia rakudo-{parrot,jvm,moar} 1984fd: OUTPUT«===SORRY!===␤Dynamic variable $*a not found␤» 15:18
lizmat apparently the BEGIN does make a difference, as it no longer segfaults
S04:1902 : "Therefore you can't reliably refer to run-time variables from these closures even if they appear to be in the scope." 15:21
synopsebot Link: perlcabal.org/syn/S04.html#line_1902
lizmat so I guess it's not supposed to work
the segfault is just a LTA error message :-)
woolfy I want to see the Poznan city center while the sun is shining... :-)
dalek rlito: 51143f3 | (Flavio S. Glock)++ | / (3 files):
Perlito5 - js - emitter for qr() - simplify
lizmat seems I'm being abducted& 15:25
jnthn decommute &
btyler jnthn++ # panda's happily building/rebootstrapping again on HEAD master/master/nom 15:41
dalek : 303759d | TimToady++ | docs/Perl6/Perl5/Differences.pod:
' and - just have to be before alpha, not between

X0123-Y432 is a valid identifier.
15:53
timotimo huh? what did jnthn even change? 15:56
i'm confused.
ingy btyler: hi 15:57
btyler ingy: hi! already used search. life is good. timotimo: I don't know honestly -- there was a commit to moar but it didn't mention panda 16:02
ingy btyler: glad you like it. file issues as needed. 16:03
PerlJam: I figured out a simple way and powerful way to do per command help and also usage on command errors. will have it later today. 16:04
PerlJam ingy++ 16:05
dalek : 611cf01 | TimToady++ | docs/Perl6/Perl5/Differences.pod:
you mustn't poke multis into GLOBAL, no, no, no!
16:07
jnthn haha
Yes, that's quite the bad idea :)
ingy PerlJam: `git hub help --all` will work like `git help --all`
jnthn btyler: I...uh...didn't fix anything yet? :S 16:08
btyler jnthn: ...bother. upgraded to heisenbug :( 16:11
PerlJam oh the ways in which we fool ourselves ... I just accidentally typed 'perl6 and kept wondering why my commands weren't generating any output :) 16:12
dalek : 040f663 | TimToady++ | docs/Perl6/Perl5/Differences.pod:
subscripts are now functions, not methods
16:14
mls jnthn: in your 'Include SC identifiers in bytecode dump' MoarVM commit, is that commenting out of the 'cached' check intentional? 16:55
jnthn Hm, no... 16:55
I wonder if that might be what fixed Panda for btyler though... :)
[Coke] RT #69492 - marked as fixed, but not testneeded. LHF for someone to write a test... 17:02
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=69492
[Coke] hey, can we get a ticketing system that doesn't aggresively reformat code making it impossible to cut and paste? 17:05
rakudo: eval "ba" 17:09
camelia rakudo-{parrot,jvm,moar} 1984fd: OUTPUT«===SORRY!=== Error while compiling eval_0␤Undeclared routine:␤ ba used at line 1␤␤Saw 1 call to deprecated code during execution.␤================================================================================…» 17:10
[Coke] r: eval "{\n\n\n\n\'}"
camelia rakudo-{parrot,jvm,moar} 1984fd: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Confused␤at /tmp/tmpfile:1␤------> eval "{\n\⏏n\n\n\'}"␤ expecting any of:␤ postfix␤»
moritz [Coke]: you realize that those { } introduce a closure? 17:11
TimToady not if it doesn't compile 17:11
masak TimToady: re github.com/perl6/mu/commit/040f663e58 -- surely if you s/method/sub/ something, it should have an additional parameter, too? 17:12
TimToady m: say "{\n\n\n\n\'}" 17:13
camelia rakudo-moar 1984fd: OUTPUT«===SORRY!=== Error while compiling /tmp/x6H__0VN2i␤Confused␤at /tmp/x6H__0VN2i:1␤------> say "{\n\⏏n\n\n\'}"␤ expecting any of:␤ postfix␤»
masak aka "where'd the invocant go?" :)
[Coke] .ask cognomial if we can close RT #75592 .
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=75592
yoleaux [Coke]: I'll pass your message to cognomial.
[Coke] moritz: its the original test code from cognomial in the ticket. 17:15
dalek : 2c710e6 | TimToady++ | docs/Perl6/Perl5/Differences.pod:
missing args spotted by masak++
17:16
[Coke] r: say :foo<<string\ here>>.perl
camelia rakudo-parrot 1984fd: OUTPUT«"foo" => $("string", "here")␤Saw 1 call to deprecated code during execution.␤================================================================================␤$*VM<config> called at:␤ gen/parrot/CORE.setting, line 6244␤Please use $*VM.config in…»
..rakudo-{jvm,moar} 1984fd: OUTPUT«"foo" => $("string", "here")␤»
[Coke] ^^ hey, we have some internal deprecations.
r: say callframe().callframe(1).my.perl # RT #77754 17:22
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=77754
camelia rakudo-jvm 1984fd: OUTPUT«Callframe.callframe not yet implemented. Sorry. ␤ in method callframe at gen/jvm/CORE.setting:14453␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-parrot 1984fd: OUTPUT«Callframe.callframe not yet implemented. Sorry. ␤ in method callframe at gen/parrot/CORE.setting:14710␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-moar 1984fd: OUTPUT«Callframe.callframe not yet implemented. Sorry. ␤ in method callframe at src/gen/m-CORE.setting:14513␤ in block at /tmp/tmpfile:1␤␤»
vendethiel subscripts are functions but they can access this ? 17:24
vendethiel ah, masak++ was faster 17:25
(what's wrong with having them as method ?) 17:27
well, I guess you need them as sub if you want to lexically override the builtin hash ones
masak vendethiel: the way I understand it, there were good arguments for it being methods, too, but what finally made the 'sub' side won was that subs are much easier to inline. 17:43
vendethiel fair enough 17:44
jnthn Also, infix, prefix, and postfix are subs...why not zoid^Wpostcircumfix? :) 17:47
masak well, to be fair, only postfix and postcircumfix would've made sense as methods. 17:54
vendethiel agreed 17:57
ingy btyler: did your coworkers like the git-hub? 18:11
PerlJam TimToady: Shouldn't the ex-invocant be typed as OrderedHash for those subs? Otherwise, how is the dispatcher to distinguish them? 18:15
dalek : 51a92da | TimToady++ | docs/Perl6/Perl5/Differences.pod:
multi needs type on former invocant, PerlJam++
18:20
TimToady obviously you guys should be writing this documentation, not me :)
PerlJam It's a group effort. :) 18:22
masak read that as "it's a grump effort" :) 18:26
nwc10 curious. Have you been reading this too? theoatmeal.com/comics/grump 18:28
nwc10 read that after the 2 parts of theoatmeal.com/comics/tesla_model_s
masak nwc10: hadn't seen that one, no :) 18:32
PerlJam Is token foo { <+:Digit + foo-bar> } meant to include the foo-bar rule in the character class because of LTM or should that be "add foo, subtract bar" ? 18:42
er ... ignore the poor choice of naming and pretend that one of those "foo" is something else. 18:43
vendethiel felt stupid when his internship tutor asked him the password and he answered "swagswag" (: 18:49
FROGGS *g* 18:51
masak you're not supposed to reveal your passwords to other people... :) 18:58
grondilu TimToady: about chess960: it seems that the code says "done compiling" and yet still takes ages to show the solution. On my machine anyway. 19:05
TimToady see last edit to add the eager I had on my machine
and forgot to copy over 19:06
grondilu oh, ok
dalek ast: ea2fea5 | (David Warring [email@hidden.address] | integration/advent2012-day15.t:
Don't assume hash key order.

  "The order of hash keys is implementation dependent and arbitrary" - S09
19:06
grondilu
.oO( "eager gather" is a bit weird )
19:07
TimToady takes about 12 seconds on my machine to generate all 960 entries
just using it for dataflow control here
notational convenience... 19:08
otherwise we'd have to mutate something, or put a bunch of parens to return loop values 19:09
TimToady just because something is lazy by default doesn't mean it's not useful in an eager context sometimes 19:09
and a few eagers thrown in is likely to make things run a lot faster once the optimizer learns about it a bit better 19:10
though in this case ranges already know to generate themselves in batches in a for/map situation 19:11
TimToady with an eager the optimzer could preallocate the output storage, for instance, since it's okay when you're eager to ask for .elems on the right side 19:12
grondilu ok
also, shouldn't you use splice instead of insert?
TimToady no, because I reuse the arrays, and splice is mutational, I think 19:13
grondilu oh yeah it's mutational indeed. 19:14
TimToady we oughta have something like that as a builtin though
it would be okay if we were generating a single board, but we're looping
vendethiel masak: that one, I am :) 19:15
masak .splice is one of the few that "has to" be mutational, because it already uses the return value for something else.
TimToady well, there's certainly room for a .subst-alike
.replacing($pos,$off,@list) 19:16
or some such
or .splicing, if you ignore the mutational metaphor 19:17
masak .splicing feels... not different enough. 19:18
grondilu .clone.splice(...) ? 19:20
masak ah, the jQuery approach. 19:21
grondilu well, I just realize that splice does not return the resulting array anyway 19:22
vendethiel
.oO( You must mean jQuery monad ! )
19:23
masak oh, right.
that's what I meant by <masak> .splice is one of the few that "has to" be mutational, because it already uses the return value for something else.
vendethiel
.oO( is there a jQuery backend in the works for rakudo ? )
masak vendethiel: there's a JS backend in the works.
vendethiel: but it's a long time since I heard any status on that.
vendethiel masak: 1) that was a joke 2) no, it's not really "in the works" 19:24
it even has huge chunks of PIR
masak :/ 19:24
vendethiel (since I'm doing too much of altJS already, I took a look, and I kept looking at the code like mmhmhmh, yes, yes) 19:25
[Coke] wonder if it would be worth switching the WIP on rakudo-js to moar instead of parrot. 19:28
seen pmurias
.seen pmurias
yoleaux I saw pmurias 13 Apr 2014 19:07Z in #perl6: <pmurias> the coffescript scoping still seems much saner the javascript one
vendethiel why is there backend-specific stuff even ? 19:29
masak pmurias: famous last words :P
vendethiel: yeah, PIR doesn't make sense in the context of Rakudo-JS.
grondilu is still thinking about the "eager gather" 19:30
r: say (do for ^2 { for ^2 { rand } });
camelia rakudo-{parrot,jvm,moar} 1984fd: OUTPUT«␤»
grondilu n: say (do for ^2 { for ^2 { rand } });
camelia niecza v24-109-g48a8de3: OUTPUT«Nil␤»
grondilu I thought this would return a list of four random numbers 19:31
grondilu n: say (do for ^2 { rand }); 19:31
camelia niecza v24-109-g48a8de3: OUTPUT«Nil␤»
grondilu n: say [ do for ^2 { rand } ];
camelia niecza v24-109-g48a8de3: OUTPUT«␤»
grondilu r: say [ do for ^10 { $_ } ]; 19:33
camelia rakudo-{parrot,jvm,moar} 1984fd: OUTPUT«0 1 2 3 4 5 6 7 8 9␤»
grondilu :/
jnthn grondilu: You need to do the inner for too
TimToady you need to desink each level
that's the WAT that goes with the latest DWIM :/ 19:34
vendethiel inner for ?
grondilu r: say [ do for ^2 { $_ } ];
camelia rakudo-{parrot,jvm,moar} 1984fd: OUTPUT«0 1␤»
TimToady much more straightforward to use gather/take, since that conveys up front what you're intending
grondilu yeah but really "eager gather" is nagging me 19:35
vendethiel what's the inner for ?
grondilu vendethiel: there were two for in the first attempt
vendethiel oh, alright 19:36
TimToady that's what eager is there for, to make lazy-by-default things eager
we're not gonna double our keywords just to avoid making one default the default 19:37
grondilu ok ok
vendethiel grondilu: alright, but I don't understand why rand vs $_ works here then
TimToady if we'd picked eager for the default we'd be scattering lazy's all over
grondilu vendethiel: neither do I, actually.
TimToady the rands were on niecza 19:38
grondilu r: say [ do for ^2 { rand } ];
camelia rakudo-moar 1984fd: OUTPUT«0.242092961426072 0.689935728269873␤»
..rakudo-jvm 1984fd: OUTPUT«0.5510638062724672 0.06658677472904218␤»
..rakudo-parrot 1984fd: OUTPUT«0.364523359199183 0.709466077891317␤»
grondilu indeed 19:39
masak 'night, #perl6 19:39
TimToady o/
vendethiel you fooled me, grondilu ! 19:42
it's nice it works :) 19:43
lizmat is back from abduction 19:44
jnthn How is the abduction in Poznan? 19:46
lizmat pretty good, actually...
the weather turned nice in the afteroon 19:47
TimToady lizmat is now back in induction...production...reduction...whatever the opposite of 'ab' is...
lizmat baduction ?
TimToady as uctions go that's pretty bad 19:48
sergot_ lizmat: Welcome to Poznan! \o/
lizmat Hi sergot_ !
somehow, lctions looks Polish to me now 19:49
TimToady well, if that's the case...
geekosaur subduction? :p
TimToady I cede the title to you
TimToady tries to imagine a superduction 19:50
TimToady the superducting tectonic plates rose hundreds of kilometers into the atmostphere... 19:50
lizmat
.oO( Rakudo, the superduction tape of the future internet )
19:51
jnthn Well, about 100km inland of the subduction, that's just about what happens...though more in the ~10km region :P 19:51
A hundred kilometer tall mountain would be a heck of a climb...
lizmat r: my $a, my $b; # LTA warning? 19:53
camelia ( no output )
TimToady std: my $a, my $b; # LTA warning?
camelia std ec3d853: OUTPUT«ok 00:01 125m␤»
FROGGS LTA silence :o)
TimToady it's perfectly fine, actually 19:54
std: my $a, $b; # LTA warning?
camelia std ec3d853: OUTPUT«===SORRY!===␤Variable $b is not predeclared (declarators are tighter than comma, so maybe your 'my' signature needs parens?) at /tmp/RhZV2ddXIg line 1:␤------> my $a, ⏏$b; # LTA warning?␤Check failed␤FAILED 00:01 12…»
lizmat r: my $a, my $b; ($a,$b) = (2,3)
camelia rakudo-{parrot,jvm,moar} 1984fd: OUTPUT«WARNINGS:␤Useless use of "," in expression "my $a, my $b" in sink context (line 1)␤»
lizmat std: my $a, my $b; ($a,$b) = (2,3)
camelia std ec3d853: OUTPUT«ok 00:01 128m␤»
TimToady that's true enough
lizmat r: my $a, my $b; .say # golfed further 19:55
camelia rakudo-{parrot,jvm,moar} 1984fd: OUTPUT«WARNINGS:␤Useless use of "," in expression "my $a, my $b" in sink context (line 1)␤Nil␤»
lizmat ah, I don't need the comma!
PerlJam std: / <[ a..m '-' n..z ]> /
camelia std ec3d853: OUTPUT«===SORRY!===␤Unsupported use of - as character range; in Perl 6 please use .. (or \- if you mean a literal hyphen) at /tmp/UahnFFRRet line 1:␤------> / <[ a..m '-'⏏ n..z ]> /␤Parse failed␤FAILED 00:01 123m␤»
lizmat r: my $a my $b; .say # huh? :-)
camelia rakudo-{parrot,jvm,moar} 1984fd: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Two terms in a row␤at /tmp/tmpfile:1␤------> my $a ⏏my $b; .say # huh? :-)␤ expecting any of:␤ scoped declarator␤ constraint…»
TimToady we should have a warning about duplicated chars in a cclass 19:56
like quotes...
lizmat: there's no reason you wouldn't just use a semicolon instead of a comma
lizmat I know 19:57
it was more a typo :-)
TimToady if it's not in sink context, of course, you might mean it
lizmat and a WAT afterwards :-)
PerlJam TimToady: why not make quoting characters valid in character classes? 19:58
lizmat I guess I sorta expected "my $a, $b" to be an equivalent for "my ($a,$b)" 19:59
lizmat since Perl 6 does away with parens in many cases 19:59
PerlJam i.e. so that <[ "a".."z" ]> is the same as <[ a..z ]>
TimToady p6 doesn't get rid of parens in lvalues
TimToady and just 'cuz Python makes , tighter than = on the LHS doesn't mean we're a'gonna do it 20:00
lizmat and completely understood (now) :-) 20:01
dalek p/loop_labels: b616d6c | (Tobias Leich)++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
keep the loop label as a MAST::Local

This means we can check for identical labels in the C code which resolves the handler, and do not need to do that in QAST.
TimToady thinks of Python's consistency on that point in terms of hobgoblins
[Coke] FROGGS: I assigned you the RT about loop labels.
TimToady and if you try to get rid of all the parens, you have the opposite problem of Lisp 20:03
FROGGS [Coke]: seen it 20:03
dalek kudo/loop_labels_test: ee0c5ed | (Tobias Leich)++ | src/core/MapIter.pm:
decont the label we pass to nqp::handle

Otherwise we compare the payload of the exception with the container of the label.
FROGGS will close it hopefully soon :o) 20:04
[Coke] FROGGS++
FROGGS I think parrot and moar are fine now 20:05
only jvm needs to be told what I did to moar right now: keep the label object but not a perhaps outdated mem address 20:06
dalek ast: b3ab04f | (David Warring [email@hidden.address] | integration/advent2010-day12.t:
adding advent 2010 day 12
20:21
TimToady PerlJam: that heads back in the direction of making people memorize a list of metachars; I'd rather keep it down to \ and .. and just warn if we see any duplicated char other than dot 20:26
TimToady and it's not like we have to be consistent with normal regex, since .. already means something very different in a cclass 20:27
dalek kudo/nom: 5e88e5d | (Elizabeth Mattijsen)++ | lib/Test.pm:
Preliminary work to create "subtest code, desc"
TimToady besides, I don't think we want to encourage people to write things like <[ "$a".."$z" ]> 20:29
that way lies madness
and we should keep such madness inside of <{...}> 20:30
PerlJam fair enough. I just expected <[ a..z '-' ]> to work and it seemed odd when it didn't. 20:30
PerlJam (and the complaint about - being last or escaped didn't help enough because I was thinking, "I've quoted it! Why does it need to be escaped?") 20:32
TimToady std: / <[ a..z]+'-'> / 20:43
camelia std ec3d853: OUTPUT«ok 00:01 124m␤»
TimToady std: / <[ a..z ] + '-'> / 20:44
camelia std ec3d853: OUTPUT«ok 00:01 124m␤»
vendethiel I've been bit by that too, while pretty minor
TimToady m: / <[ a..z ] + '-'> /
camelia rakudo-moar 1984fd: OUTPUT«===SORRY!=== Error while compiling /tmp/0El1ELZhgI␤Unable to parse expression in metachar:sym<assert>; couldn't find final '>' ␤at /tmp/0El1ELZhgI:1␤------> / <[ a..z ] + ⏏'-'> /␤ expecting any of:␤ …»
vendethiel s/b/h/|s/$/en
TimToady I guess rakudo doesn't suppor tthat yet
*ort
flussence r: (^0xFF)».chr.grep(/ <alpha & lower> /).say 20:56
camelia rakudo-parrot 1984fd: OUTPUT«too many positional arguments: 2 passed, 1 expected␤ in any alpha at gen/parrot/stage2/QRegex.nqp:1044␤ in regex at /tmp/tmpfile:1␤ in method ACCEPTS at gen/parrot/CORE.setting:13051␤ in method ACCEPTS at gen/parrot/CORE.setting:794␤ in b…»
..rakudo-jvm 1984fd: OUTPUT«Wrong number of arguments passed; expected 1..1, but got 2␤ in method ACCEPTS at gen/jvm/CORE.setting:13028␤ in block at gen/jvm/CORE.setting:1628␤ in method reify at gen/jvm/CORE.setting:7673␤ in method reify at gen/jvm/CORE.setting:7536␤ i…»
..rakudo-moar 1984fd: OUTPUT«Too many positional parameters passed; got 2 but expected 1␤ in any alpha at gen/moar/stage2/QRegex.nqp:1050␤ in method ACCEPTS at src/gen/m-CORE.setting:13085␤ in block at src/gen/m-CORE.setting:1628␤ in method reify at src/gen/m-CORE.setting…»
flussence
.oO( you are in a maze of twisty little backtraces, all different... )
20:57
vendethiel they're all different, yay ! 21:00
do we need {}-grouping for (non-LT)A error messages ?
flussence though at least that tells me the regex stuff is very VM-specific :) 21:03
vendethiel r: sub a($) {}; a(1, 2) 21:08
camelia rakudo-{parrot,jvm,moar} 1984fd: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Calling 'a' will never work with argument types (Int, Int)␤ Expected: :(Any)␤at /tmp/tmpfile:1␤------> sub a($) {}; ⏏a(1, 2)␤»
vendethiel r: sub a($) {}; a(Any, Any) 21:11
camelia rakudo-{parrot,jvm,moar} 1984fd: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Calling 'a' will never work with argument types (Any, Any)␤ Expected: :(Any)␤at /tmp/tmpfile:1␤------> sub a($) {}; ⏏a(Any, Any)␤»
dalek kudo/nom: 875ce09 | (Elizabeth Mattijsen)++ | lib/Test.pm:
Implement subtest code, desc;
21:12
: f5bcc41 | duff++ | docs/Perl6/Perl5/Differences.pod:
consistent indentation; minor grammar improvement
dalek : c6ec526 | duff++ | docs/Perl6/Perl5/Differences.pod:
turn tabs into spaces
21:16
dalek ast: 503b612 | (Elizabeth Mattijsen)++ | packages/Test/Tap.pm:
Make tap_ok use subtest, so it's only 1 test

Which should make fudging tests with tap_ok more straightforward
21:22
dalek rlito: 7afd967 | (Flavio S. Glock)++ | misc/overload.pl:
Perlito5 - misc - 'overload' example
21:26
flussence lizmat++ # just today I was wishing I could do subtest-ish things in p6... 21:32
lizmat yw :) 21:33
I still need to find out how to make "tap_ok" skippable
I sort of expect a list of names to live somewhere 21:34
TimToady look in fudge 21:43
lizmat found it 21:48
TimToady++
dalek ast: 5d24170 | (Elizabeth Mattijsen)++ | S17-supply/ (27 files):
Change # of tests because tap_ok is now 1

Which drops us below 32000 tests again :-(
21:51
jnthn Write more tests! :P 21:52
moritz subtests might also be a good solution to throws_like
dalek ast: e88708b | (Elizabeth Mattijsen)++ | fudge:
"tap_ok" is now also fudged
21:55
ast: 7ed2ee5 | (Elizabeth Mattijsen)++ | S17-supply/ (2 files):
Reluctantly skip failing S17-supply tests
lizmat moritz: throws_like is my next target 21:55
jnthn lizmat: That'll cost us even more passes ;) 21:56
(But agree it makes sense! :))
lizmat ok, slightly more tests use throws_like than I thought 21:59
so I'm moving that work to a later time
and call it a day now 22:00
a day
&
jnthn 'night, lizmat :) 22:01
jnthn gets to meet/hack with lizmat and others soon :D