Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2013-05-06

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:01 dayangkun joined #perl6
00:01 grondilu I was also surprised it worked.
00:02 grondilu rn: my $x = 13; say $x[1]
00:02 camelia niecza v24-37-gf9c8fc2: OUTPUT«(Any)␤»
00:02 camelia ..rakudo 88f9c9: OUTPUT«Index out of range. Is: 1, should be in 0..0␤  in method gist at src/gen/CORE.setting:10022␤  in method gist at src/gen/CORE.setting:893␤  in sub say at src/gen/CORE.setting:10917␤  in block  at /tmp/sRCz5e_urZ:1␤␤»
00:02 grondilu rn: my $x = 13; say $x.elems
00:02 camelia rakudo 88f9c9, niecza v24-37-gf9c8fc2: OUTPUT«1␤»
00:08 Pleiades` joined #perl6
00:51 daniel-s joined #perl6
00:52 daniel-s perl: say "hi"
00:52 daniel-s rn: say "hi"
00:52 camelia rakudo 88f9c9, niecza v24-37-gf9c8fc2: OUTPUT«hi␤»
00:58 sorear perl6: say "hi"
00:58 camelia rakudo 88f9c9, niecza v24-37-gf9c8fc2: OUTPUT«hi␤»
01:17 MrMeek-afk joined #perl6
01:22 FROGGS_ joined #perl6
02:50 pecastro joined #perl6
02:50 adu joined #perl6
02:58 lue joined #perl6
03:46 odoacre_ joined #perl6
03:47 preflex joined #perl6
04:06 adu joined #perl6
04:25 Psyche^ joined #perl6
04:26 satyavvd joined #perl6
04:29 moritz \o
04:37 octave joined #perl6
04:52 xinming joined #perl6
05:01 adu o/
05:06 kurahaupo joined #perl6
05:07 zby_home joined #perl6
05:20 dalek rakudo/nom: c2736b2 | moritz++ | tools/build/NQP_REVISION:
05:20 dalek rakudo/nom: bump NQP revision to get NCI fix by arnsholt++
05:20 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c2736b2136
05:21 satyavvd joined #perl6
05:45 lustlife joined #perl6
05:46 kaleem joined #perl6
05:56 dmol joined #perl6
06:13 grondilu joined #perl6
06:14 grondilu rn: my module Foo { sub talk is export { say "hello" } }; import Foo <talk>; talk;
06:14 camelia niecza v24-37-gf9c8fc2: OUTPUT«[31m===[0mSORRY![31m===[0m��Action method statement_control:import not yet implemented at /tmp/1Ums2bNJ1e line 1:�------> [32mort { say "hello" } }; import Foo <talk>[33m�[31m; talk;[0m��Unhandled exception: Unable to resolve method statement_level…
06:14 camelia ..rakudo 88f9c9: OUTPUT«===SORRY!===␤Error while importing from 'Foo': no EXPORT sub, but you provided positional argument in the 'use' statement␤»
06:19 grondilu I thought the 'use Module <func>' was implemented now :/
06:19 dmol joined #perl6
06:22 dayangkun joined #perl6
06:26 grondilu masak: about your masakism:  you know what would be cool?  A Euler/Rosalind-style website for learning Perl6.  With tasks, scores, achievments, badges and stuff.
06:29 grondilu or something like codespells (https://sites.google.com/a/eng.ucsd.edu/codespells/).  I don't know in details how codespells works, but I like the pitch:  some kind of MMORPG where the ultimate goal is to master a programming language.
06:31 frdmn joined #perl6
06:53 FROGGS joined #perl6
06:55 labster Well, the Using Perl 6 book does not match my style of learning at all.  I think we do need address education, especially for novices.
06:57 labster I was thinking of starting some writing some tutorials when I finished up with the path project.
07:04 tadzik good morning #perl6
07:05 diakopter hi
07:05 diakopter what I did today: https://github.com/moose/moose/pull/16
07:07 labster nice, diakopter
07:11 tadzik wow, awesome
07:11 moritz diakopter++
07:13 domidumont joined #perl6
07:14 domidumont joined #perl6
07:15 rindolf joined #perl6
07:17 diakopter I'm not counting on them accepting the patch; I can think of some decent reasons against
07:17 labster r: so ('a', 'b')>>.match( /c/ ).all
07:17 camelia rakudo c2736b:  ( no output )
07:17 labster r: say so ('a', 'b')>>.match( /c/ ).all
07:17 camelia rakudo c2736b: OUTPUT«True␤»
07:18 moritz r: say  ('a', 'b')>>.match( /c/ ).perl
07:18 camelia rakudo c2736b: OUTPUT«(Nil, Nil)␤»
07:18 FROGGS ohh
07:18 moritz r: say  ('a', 'b')>>.match( /c/ ).all
07:18 camelia rakudo c2736b: OUTPUT«all()␤»
07:18 moritz oh
07:18 moritz Nil shouldn't listify to the empty list
07:19 moritz that's old spec, and very much conflicts with failed matches returning Nil
07:19 FROGGS r: say (Nil, Nil).all # you expect all(Nil) ?
07:19 camelia rakudo c2736b: OUTPUT«all()␤»
07:20 moritz yes
07:20 labster Oh good, I'm not going crazy, it is a bug.
07:20 moritz r: say (Nil, Nil)
07:20 camelia rakudo c2736b: OUTPUT«Nil Nil␤»
07:20 moritz r: say (Nil, Nil).list
07:20 camelia rakudo c2736b: OUTPUT«␤»
07:24 * FROGGS is testing a possible patch
07:25 * moritz too
07:25 FROGGS :P
07:25 FROGGS damn, you have the faster machine...
07:25 moritz but my patch might be wronger
07:26 FROGGS well, my is just a guess... so we are head-to-head
07:27 sqirrel joined #perl6
07:27 FROGGS but this tells me I'm not too off:
07:27 FROGGS r: say (Mu, Mu).all
07:27 camelia rakudo c2736b: OUTPUT«all((Mu), (Mu))␤»
07:27 moritz r: say Nil.list.elems # that's the real problem
07:27 camelia rakudo c2736b: OUTPUT«0␤»
07:28 moritz but my patch will cause lots of spectest failures, I fear
07:28 moritz because empty blocks still return Nil
07:28 FROGGS ohh, I deadlocked my rakudo :/
07:29 * labster goes back to patching IO::Spec::Win32
07:29 moritz ./perl6 --target=pir --output=lib/Pod/To/Text.pir lib/Pod/To/Text.pm
07:29 moritz ===SORRY!===
07:29 moritz Odd number of elements found where hash expected
07:31 FROGGS I was here btw: src/core/ListIter.pm:43
07:31 FROGGS and comented out the eslif condition
07:31 FROGGS elsif*
07:33 xinming_ joined #perl6
07:36 moritz and I removed the Iterator from Nil
07:36 FROGGS me too right now
07:36 FROGGS still a deadlock on my box
07:36 moritz but the problem is deeper
07:37 moritz there's code in Actions.nqp (iirc) that makes empty statement lists return Nil
07:37 moritz I'm pretty sure that needs to be updated to return an empty parcel instead
07:37 FROGGS moritz: true, at several places
07:37 kivutar joined #perl6
07:38 FROGGS every action method that doesnt produce ast but does something else, throws a QAST::Var( Nil in place
07:40 labster I feel like a line employee in the worm cannery asking, "Hey, I wonder what's in these?"
07:41 domidumont joined #perl6
07:45 fhelmberger joined #perl6
07:51 hoelzro good morning #perl6!
07:53 tadzik hello hoelzro
07:53 moritz \o *
07:54 hoelzro I am pleased to announce that my Perl 6 lexer has been merged into pygments' main branch \o/
07:54 labster o/
07:54 tadzik \o/
07:54 tadzik awesome! hoelzro++
07:54 labster w00t
07:54 moritz \o/
07:54 moritz hoelzro++
07:55 dalek rakudo/nil-noniterable: 399e782 | moritz++ | src/ (3 files):
07:55 dalek rakudo/nil-noniterable: make Nil not iterable, and return empty Parcel from empty statements
07:55 dalek rakudo/nil-noniterable: review: https://github.com/rakudo/rakudo/commit/399e7824c6
07:56 moritz rakudo builds again in that branch
07:56 moritz but about 10% to 20% of the test files fail in spectest
07:57 moritz oh drat, World uses Nil too
07:58 moritz anyway, it's a good baseline for some motivated hackers to start exterminating the remaining bugs :-)
08:04 fuad joined #perl6
08:04 FROGGS hoelzro++ # \o/
08:06 berekuk joined #perl6
08:08 dalek roast: 75c35af | (Brent Laabs)++ | S32-io/io-spec-win.t:
08:08 dalek roast: fix IO::Spec::Win32.canonpath test verbosity
08:08 dalek roast: review: https://github.com/perl6/roast/commit/75c35af7bf
08:08 dalek roast: e328a75 | (Brent Laabs)++ | S32-io/io- (3 files):
08:08 dalek roast: IO::Path::Win32 tests, and add another test to spec::win32
08:08 dalek roast: review: https://github.com/perl6/roast/commit/e328a75a02
08:12 moritz nqp: state $x = 42; say($x);
08:12 camelia nqp: OUTPUT«Confused at line 2, near "state $x ="␤current instr.: 'panic' pc 14721 (src/stage2/gen/NQPHLL.pir:5232) (src/stage2/gen/NQPHLL.nqp:279)␤»
08:21 donaldh joined #perl6
08:28 frdmn|afk joined #perl6
08:30 frdmn|afk joined #perl6
08:34 sciurius joined #perl6
08:41 hoelzro great; pygments seems to do a release about once a year =(
08:42 hoelzro and their last one was in February
08:43 arnsholt Once a year? That's quite slow
08:44 hoelzro yeah
08:44 hoelzro not too thrilled about that =/
08:53 arnsholt Definitely, definitely
08:53 FROGGS releasing once a year feels like working for a dead project somehow
08:55 dalek roast: 7c4e0b5 | (Brent Laabs)++ | S32-io/io-path-cygwin.t:
08:55 dalek roast: IO::Path::Cygwin tests
08:55 dalek roast: review: https://github.com/perl6/roast/commit/7c4e0b5c0d
08:57 labster okay, I'm pretty much done, at least until readlink is implemented.
09:01 labster another pull request for someone to handle.  No one has given me a commit bit for rakudo yet.
09:04 moritz labster: I hope you'll get one soon
09:04 moritz labster: just needs a +1 from jnthn :-)
09:05 labster Well, when he's awake, I'll ask.
09:05 daxim joined #perl6
09:06 sciurius1 joined #perl6
09:06 dayangkun joined #perl6
09:07 masak good antenoon, #perl6
09:07 moritz good an, masak
09:07 sciurius1 joined #perl6
09:08 masak and a fine an it is, indeed.
09:08 dalek rakudo/nil-noniterable: 1a9a731 | moritz++ | src/ (8 files):
09:08 dalek rakudo/nil-noniterable: switch World and some of the setting from Nil to ()
09:08 dalek rakudo/nil-noniterable: review: https://github.com/rakudo/rakudo/commit/1a9a731585
09:09 frdmn joined #perl6
09:11 tokomer joined #perl6
09:24 fuad Hello, folks.
09:25 moritz oh hai fuad
09:26 fuad How are you, moritz? It's been awhile!
09:27 moritz fuad: I'm fine, thanks
09:27 moritz fuad: what about you?
09:28 moritz labster: spectesting your pull request now...
09:28 fuad moritz: Doing good thank you
09:28 labster moritz: I already did it, but a second test won't hurt.
09:29 * labster is finally learning how to be a good committer.
09:29 masak fuad! \o/
09:29 masak tadzik: after watching http://perlmaven.com/tadeusz-sosnierz , I'm now very curious about the t-shirts :D
09:30 * moritz too
09:31 moritz labster: it's not a sign of distrust, just a step always executed before pushing commits that touch code
09:32 masak "trust but verify".
09:34 nwc10 was there a result from all the slowdown bisecting last night?
09:34 moritz it was discoved that 'git clean' has bugs/undocumented features
09:36 masak yeah. I began from the top, and I'm still at it.
09:37 masak moritz: I learned a Chinese saying recently: "被卖了还帮着数钱" -- "After the sale they even helped me count the money." -- kind of the dual of "trust but verify" ;)
09:38 masak or not "dual", really. "converse", perhaps.
09:38 salv0 joined #perl6
09:38 moritz masak: I'm having trouble understanding the connotation of that saying
09:39 masak moritz: I got the feeling it's about not being gullible where it would hurt you but benefit others.
09:39 dalek rakudo/nom: 6e9f456 | (Brent Laabs)++ | / (2 files):
09:39 dalek rakudo/nom: add IO::Path and IO::Spec spectests, fix minor Win32 path separator issue
09:39 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6e9f45691c
09:39 dalek rakudo/nom: 540c014 | moritz++ | / (2 files):
09:39 dalek rakudo/nom: Merge branch 'nom' of https://github.com/labster/rakudo into nom
09:39 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/540c014d3e
09:40 fuad masak: Hey, bro!
09:42 masak fuad: salut, frère!
09:44 moritz ♫ frère fuad, frère fuad, dormez-vous? ♫
09:45 kaleem joined #perl6
09:48 masak :D
09:49 labster maybe fuad is asleep?
09:49 moritz Ronja loves that song (though with s/fuad/jacque/), and in multiple languages (de, en, fr, nb)
09:50 moritz and she loves fr the best :-)
09:50 labster It's a good simple song.  Even Captain Picard likes it.
09:50 moritz that knights it, of course :-)
09:52 labster http://blog.brentlaabs.com/2013/05/porting-module-to-perl-6.html  < sort of a blend of "what I did on File::Spec" and "why porting to Perl 6 is good".
09:54 moritz labster++
09:55 moritz woah, http://de.wikipedia.org/wiki/Fr%C3%A8re_Jacques has quite a few languages
09:56 moritz (German wikipedia)++
09:57 masak in the lyrics we got for the song when I went to school, they had made up at least one language.
09:57 masak they called it "Indian speech".
09:57 masak in retrospect, I find that odd and somewhat disrespectful.
09:59 masak wow, that is an impressive list.
09:59 masak new goal: learn to sing those versions, *with decent pronunciation*.
10:02 sqirrel joined #perl6
10:03 labster the Japanese version seems to have too many syllables in line 2.
10:08 labster good night
10:16 fuad :)
10:17 woolfy joined #perl6
10:23 tadzik masak: ha-ha :)_
10:24 kresike joined #perl6
10:24 kresike hello all you happy perl6 people
10:24 masak hello happy kresike
10:25 kresike masak, o/
10:30 FROGGS joined #perl6
10:32 woosley left #perl6
11:02 colomon labster++
11:18 xinming joined #perl6
11:20 * colomon 's smoke test failed overnight because crontab does not get PATH from .bashrc.  Trying again no, and judging by ps it looks like it is working.
11:23 FROGGS colomon: I smoked yesterday manually, sad is just that I can't access that box right now to get the result :/
11:30 xinming joined #perl6
11:47 cognominal nqp: class A {}; my $a.new; say($a.HOW.name($a))
11:47 camelia nqp: OUTPUT«NQPMu␤»
11:48 cognominal moritz: ♫ Sonnez les matines ♫ Ding Daing Dong
11:48 sorear joined #perl6
11:49 cognominal btw: I would have expected  A  as output for the nqp oneliner
11:49 FROGGS nqp: class A {}; my $a := A.new; say($a.HOW.name($a))
11:49 camelia nqp: OUTPUT«A␤»
11:50 colomon FROGGS: smoke test is still running on my machine, which means it is probably right, I think!
11:50 FROGGS cool!
11:51 FROGGS colomon: can we submit the results to somewhere?
11:51 colomon my crontab's mail output is still kind of broken, though.
11:51 moritz cognominal: your one-line does not correlate A to $a at all
11:52 cognominal moritz: so, how to print $a classname?
11:54 moritz nqp: class A {}; my $a := A; say($a.HOW.name($a))
11:54 camelia nqp: OUTPUT«A␤»
11:54 colomon FROGGS: my big goal is to produce a webpage that indicates smoke results and how they have changed over time.  (ie EMERGENCY: $module just went red; $other-module has been working for 97 days)
11:54 colomon afk # nom-am
11:55 cognominal moritz: I meant the classname of an A instance
11:56 moritz cognominal: same
11:57 FROGGS nqp: class A {}; my $a := A.new; say($a.HOW.name($a))
11:57 camelia nqp: OUTPUT«A␤»
11:57 FROGGS cognominal: you just need to involve A in some kind
11:57 FROGGS can't leave it untouched
11:58 cognominal oops
11:58 cognominal need to wake up
12:00 arnsholt colomon: What I've been thinking is that we probably want to capture the TAP stream from prove into some kind of (semi-)structured format
12:00 arnsholt Like JSON
12:02 FROGGS arnsholt: just a few stripped out fields plus the TAP blurb, right?
12:02 moritz see TAP::Harness::Archive
12:02 FROGGS json++ btw
12:02 arnsholt Pretty much, yeah
12:02 FROGGS brb
12:02 arnsholt moritz: Oooh, that's useful
12:03 moritz that's what spectest_smolder uses
12:08 * moritz loves http://woodgears.ca/marbleadd/
12:09 colomon hmm... my problem isn't storing the results -- I'm just saving the smoke test's results.json file with a date stamp in the filename.
12:09 colomon what I'm looking for is a clever way to analyze and report those results.
12:11 moritz make a picture, with a red rectangle for a failure, and a green for a pass
12:11 colomon moritz: over time
12:11 moritz right
12:11 moritz one row for each module, where each column is a smoke date
12:11 moritz and a green->red transition makes it sort higher up on the page
12:11 colomon emmentaler already generates a pretty output for a single smoke run
12:13 colomon moritz: hmm.  only displaying the last week or so, with a summary for what came before that?
12:14 moritz colomon: or maybe a month
12:14 moritz if you really use only red + green boxes, it's easy to fix 30 or 31 into one row
12:15 moritz if one box is 15x15 pixel, it's easy to read, and 450 pixel fit onto most browser screens
12:15 moritz plus the module name in the same row
12:16 * moritz is almost tempted to do it himself
12:16 * colomon would be happy to use moritz's work
12:18 moritz colomon: can you give the json files from a few runs, so that I have some data to work with?
12:19 colomon give me a moment...
12:21 colomon the 2k3 thing still your e-mail?
12:21 moritz colomon: aye
12:22 colomon done
12:22 colomon if you need more I can rummage up an older run or two.
12:23 colomon the emmentaler repo has a script for reading one of these result files and formatting it.
12:25 colomon also, my e-mail issue cleared up!  Looks like cron didn't get the MAILTO in my .bashrc either.  (Obvious in retrospect...)
12:28 robinsmidsrod joined #perl6
12:29 * colomon initially didn't do it the geekosaur++ told him to do it, and so it didn't work quite right.
12:34 * [Coke] needs to make IRSSI have a longer backscroll, yikes.
12:40 * colomon is also thinking that we could add an optional e-mail field to META.Info saying who to e-mail when a module goes from green to red.
12:40 dalek perl6-roast-data: 4174cd2 | coke++ | / (4 files):
12:40 dalek perl6-roast-data: today (automated commit)
12:40 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/4174cd219b
12:40 dalek perl6-roast-data: d9c49bb | coke++ | / (4 files):
12:40 dalek perl6-roast-data: today (automated commit)
12:40 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/d9c49bb045
12:40 [Coke] niecza has been dirty for 292 days. pugs has been dirty for 1 day. rakudo has been dirty for 1 day.
12:42 * colomon clearly needs to get off his arse and fix up the niecza test run...
12:47 xinming joined #perl6
12:47 rindolf left #perl6
12:52 census joined #perl6
12:52 moritz colomon: https://gist.github.com/moritz/5524912
12:54 moritz it generates images like http://moritz.faui2k3.org/tmp/DBIish.png
12:54 * [Coke] thinks that the testing thing sounds vaguely like the smolder replacement he was trying to hack on.
12:54 * [Coke] got distracted and never went back to it, bad Coke.
12:55 moritz which shows that for the first 5 days no data was available
12:55 moritz and for the next, prereq failed, and the finaly day, tests passed
12:56 colomon +1
12:56 colomon \
12:56 colomon moritz++
12:56 moritz that certainly still needs a lot more work, but it's a good base to start from
12:57 colomon yes
12:57 moritz number of days to show is configurable
12:58 moritz another idea would be generate a HTML table
12:58 moritz where the cells are colored
12:58 moritz or an image
12:59 timotimo labster++ # i enjoyed your blog post :)
12:59 moritz which is a link to the actual test result
12:59 shinobicl joined #perl6
12:59 timotimo do you know about these tiny little images that show developments over the past, that - i hear - get a lot of use for stock exchange data?
13:00 timotimo next to the name of a stock or maybe its current value there's a line going up and down that's barely bigger than the text itself
13:00 timotimo maybe something like that could be implemented for smoking? but instead there might be two lines: tests spec'd and tests passed?
13:02 moritz I wanted to implement that for showing activity of IRC channels
13:02 timotimo i like that idea
13:03 timotimo would that be implemented in perl6?
13:03 * timotimo looks at available graphics libraries
13:04 moritz it would, though I don't really know with which graphics lib
13:04 moritz not with GD, because it doesn't do subpixel rendering
13:04 moritz which makes GD::Graph pretty useless if you have large data sets
13:05 timotimo does imlib provide image creation routines?
13:05 timotimo it says something about "high quality anti-aliased output" on the module description for that
13:05 FROGGS you dont need images for that
13:06 FROGGS you html
13:06 FROGGS use*
13:06 FROGGS you can have colored divs and place them as bars on a background-div
13:07 timotimo we're talking about lines, though, not bars
13:07 timotimo can divs have subpixel widths and heights?
13:07 timotimo hm, i suppose they can
13:07 moritz but it kinda clutters the HTML
13:08 moritz and it's by no means semantic markup
13:08 timotimo right, especially with lots of data.
13:08 timotimo in that case, i'd prefer a <canvas> and some json data set instead
13:08 FROGGS yeah, depends on how much elements we are talking about
13:08 FROGGS you cant render subpixels using html-divs
13:09 timotimo OK
13:09 bluescreen10 joined #perl6
13:10 * moritz isn't very productive at $work today
13:11 timotimo moritz: do you know if gnuplot can be made to output something appropriate?
13:12 moritz timotimo: I'm pretty sure; it's very versatile
13:12 timotimo would you consider that a workable solution?
13:12 moritz yes
13:13 * timotimo investigates
13:15 [Coke] ah, looks like larry broke the spec tests with daacea39
13:15 colomon [Coke]: context?
13:15 FROGGS repository?
13:15 [Coke] er, 151f725c
13:15 [Coke] roast.
13:16 colomon TimToady++ is modifying roast?!
13:16 FROGGS looks like: https://github.com/perl6/roast/commit/151f725c
13:17 FROGGS pnr: say wordcase("hello")
13:17 camelia pugs: OUTPUT«*** No such subroutine: "&wordcase"␤    at /tmp/IcM9PQ2R5v line 1, column 5 - line 2, column 1␤»
13:17 camelia ..niecza v24-37-gf9c8fc2: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Undeclared routine:â�¤     'wordcase' used at line 1â�¤â�¤Unhandled exception: Check failedâ�¤â�¤  at /home/p6eval/niecza/boot/lib/CORE.setting line 1443 (die @ 5) â�¤  at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 37) â�¤  at …
13:17 camelia ..rakudo 540c01: OUTPUT«Hello␤»
13:17 FROGGS pnr: say capitalize("hello")
13:17 camelia rakudo 540c01, niecza v24-37-gf9c8fc2, pugs: OUTPUT«Hello␤»
13:17 FROGGS I see
13:18 PacoAir joined #perl6
13:18 colomon prn: say capitalize("hello world")
13:18 camelia rakudo 540c01, niecza v24-37-gf9c8fc2, pugs: OUTPUT«Hello World␤»
13:19 MrMeek joined #perl6
13:19 [Coke] the other rakudo failure is on s02-types/bool.t, and parrot is throwing: *** glibc detected *** ./perl6: free(): invalid next size (fast): 0x0e744cf8 ***
13:20 gtodd r:  say (Nil, Nil)
13:20 camelia rakudo 540c01: OUTPUT«Nil Nil␤»
13:20 gtodd r: say (Ni, Ni)
13:20 camelia rakudo 540c01: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Undeclared name:â�¤    Ni used at line 1â�¤â�¤Â»
13:21 colomon niecza> say wordcase("hello world")
13:21 colomon Hello World
13:21 * colomon likes easy-to-fix issues
13:21 colomon looks like capitalize is still used a few places in roast.
13:22 * [Coke] wonders if rakudo can just change or not.
13:22 [Coke] (worrying about downstreamers)
13:22 moritz rakudo implements wordcase
13:22 dalek niecza: 20128d7 | (Solomon Foster)++ | lib/CORE.setting:
13:22 dalek niecza: Change capitalize to wordcase.
13:22 dalek niecza: review: https://github.com/sorear/niecza/commit/20128d7c56
13:22 moritz and has for a few months
13:22 masak r: constant Ní = "Ekke Ekke Ekke Ekke Ptangya Ziiinnggggggg Ni!"; say "The knights who say {Ní}"
13:22 camelia rakudo 540c01: OUTPUT«The knights who say Ekke Ekke Ekke Ekke Ptangya Ziiinnggggggg Ni!␤»
13:23 moritz since 2012.09
13:23 [Coke] r: say wordcase "eek"
13:23 colomon Is capitalize gone from the spec?
13:23 camelia rakudo 540c01: OUTPUT«Eek␤»
13:23 gtodd masak: ++
13:24 [Coke] r: say wordcase ""
13:24 camelia rakudo 540c01: OUTPUT«Cannot get character of empty string␤  in regex  at src/gen/CORE.setting:4729␤  in method match at src/gen/CORE.setting:4501␤  in method subst at src/gen/CORE.setting:4576␤  in method subst at src/gen/CORE.setting:2491␤  in method wordcase at src/gen/CORE.setting:4…
13:24 [Coke] there's your bug.
13:25 masak [Coke]++
13:25 moritz and I believe it even exposes an underlying bug in the regex engine
13:25 masak looks like.
13:25 colomon capitalize is indeed gone from the spec, according to ack
13:25 * masak .oO( life happens on the sad path )
13:25 daxim rakudo: Qc「{ 23+43 }」.say
13:26 camelia rakudo 540c01: OUTPUT«66␤»
13:26 gtodd masak: "birth, joy, love, happiness, much sorrow"
13:29 timotimo unset border; unset tics; unset key; plot 'plot' with lines; - this will give only a line, no decorations whatsoever
13:30 daxim what's .quoteharder?
13:30 daxim in S02
13:31 timotimo i've just asked about this last week
13:31 timotimo it's just an example method. not specced and not implemented
13:31 skids joined #perl6
13:31 timotimo but quite amusing to me at least :)
13:31 masak gtodd: "life happens on the sad path" is a constant reminder to write TDD tests for the conditions that make the SUT produce an error. those are usually the interestingest ones.
13:32 [Coke] ugh. I was just bitten by that. tested the happy path. release to beta tester, who hit the unhappy path and is now stuck because the error diagnostic was useless.
13:33 gtodd masak: perl poetry :)
13:33 census what about perl pottery ...
13:34 geekosaur the result of perl puttering
13:39 gaussblurinc_ joined #perl6
13:41 dalek roast: 8861b64 | (Solomon Foster)++ | S (2 files):
13:41 dalek roast: Change a few straggling capitalize calls to word.case.
13:41 dalek roast: review: https://github.com/perl6/roast/commit/8861b647be
13:42 colomon errr, wordcase.
13:42 kaare_ joined #perl6
13:44 moritz http://[2001:780:101::2]/ # IRC logs over ipv6
13:44 moritz AAAA records will follow soonish
13:45 [Coke] ENOTAURL?
13:45 [Coke] could be our proxy here at work.
13:46 moritz [Coke]: or you simply don't have IPv6 access
13:48 geekosaur buggy programs don't always understand that an ipv6 literal is in brackets
13:50 moritz one of those buggy programs are the IRC logs themselves, which don't linkify the URL
13:55 * moritz opened https://rt.cpan.org/Ticket/Display.html?id=85087
14:00 daxim dupe of https://rt.cpan.org/Public/Bug/Display.html?id=68288
14:01 ajr joined #perl6
14:03 moritz oh right. Good that rt supports merging of tickets :-)
14:05 dalek roast: cc39be9 | (Stéphane Payrard)++ | S03-operators/shortcuts.t:
14:05 dalek roast: tests for @.[], %.{} and &.()
14:05 dalek roast: review: https://github.com/perl6/roast/commit/cc39be9563
14:05 dalek roast: cfdba7b | (Stéphane Payrard)++ | S (2 files):
14:05 dalek roast: Merge branch 'master' of https://github.com/perl6/roast
14:05 dalek roast: review: https://github.com/perl6/roast/commit/cfdba7b97e
14:05 cognominal sorry I messed up again. in roast.
14:06 cognominal I need to improve my git skills
14:07 masak ok, I finished the bisect. https://gist.github.com/masak/5520459
14:07 FROGGS gorram it
14:07 FROGGS there my name in it
14:07 FROGGS is*
14:07 masak not only that, but just to be sure, I went back and rebuilt both c255f1d^ and c255f1d from a *completely fresh Rakudo*.
14:07 masak c255f1d^ is good and c255f1d is bad.
14:08 masak FROGGS: I'm not going to blame you for anything :)
14:08 FROGGS puuhhh
14:08 masak FROGGS: I'm sure the commit was an improvement in some regards.
14:08 FROGGS ó.ò
14:08 FROGGS so, what exactly is slow?
14:08 pmichaud good morning, #perl6
14:08 masak but I'm going to make an effort (1) understanding what it does, (2) understanding why it's slow, and (3) seeing what we can do about the slowness.
14:09 FROGGS hi pmichaud
14:09 masak pmichaud: bisect done. :)
14:09 masak https://gist.github.com/masak/5520459
14:09 colomon masak++
14:09 FROGGS masak: ahh, yeah, before that commit there was no interpolation for these cases
14:10 pmichaud note that it also added some eval()s into the process
14:10 FROGGS "these cases" is array interpolation and variable assertion...
14:10 masak note also another thing from the bisect results: we used to be slow to the tune of ~42 minutes. we're now slow to the tune of ~64 minutes.
14:10 masak that's big enough of a difference to be significant.
14:10 FROGGS :/
14:11 FROGGS pmichaud: I have no idea how to come around that eval
14:11 moritz my first guess is that it broke some kind of caching, and that it recomputes some regex stuff for each position
14:11 masak FROGGS: yeahbut. I haven't changed psyde.
14:11 masak FROGGS: why would your (unrelated) improvements slow down my program?
14:11 masak moritz: sounds rather likely.
14:11 FROGGS no idea, I dont know your program
14:11 pmichaud looking at the commit, I'm suspicious of
14:11 masak people told me it'd help to do a --profile. maybe I should do that now, for both those commits.
14:12 pmichaud -                                        QAST::SVal.new( :value('!LITERAL') ),
14:12 pmichaud +                                        QAST::SVal.new( :value('INTERPOLATE') ),
14:12 pmichaud !LITERAL is fairly fast.  INTERPOLATE is slow.
14:12 FROGGS true
14:17 pmichaud so, I see two items as part of resolving this.  First, we need to figure out where masak's program is doing regex interpolation; second we need to figure out why it's so slow.
14:18 masak aye.
14:18 masak I think I'll do --profile next.
14:18 masak while also looking at source code and seeing how things hang together.
14:20 moritz might be worth looking of .trans does regex interpolation
14:21 masak yes, that's a likely suspect.
14:23 dalek specs: 90fffba | (Stéphane Payrard)++ | S02-bits.pod:
14:23 dalek specs:  short forms : @.[], %.{} and &.()
14:23 dalek specs: review: https://github.com/perl6/specs/commit/90fffbad28
14:24 pmichaud oh, this also involves one of my unanswered questions.
14:24 pmichaud Pm-20
14:24 pmichaud https://github.com/perl6/mu/blob/master/misc/pm.txt#L7
14:25 FROGGS r: my $x = [<a b c d>];  'a b c d' ~~ / $x /;
14:25 camelia rakudo 540c01:  ( no output )
14:25 FROGGS r: my $x = [<a b c d>];  'a b c d' ~~ / <$x> /;
14:25 camelia rakudo 540c01:  ( no output )
14:25 FROGGS r: my $x = [<a b c d>];  say 'a b c d' ~~ / $x /;
14:25 camelia rakudo 540c01: OUTPUT«「a」␤␤»
14:26 pmichaud FROGGS: yes, I know that's how Rakudo currently implements it.  Not sure it's correct.
14:29 masak pmichaud: nice! hope that an answer will turn up for that one as part of our investigations :)
14:30 pmichaud https://github.com/perl6/specs/issues/39
14:31 pmichaud Before the c255f1d patch, Rakudo treated / $x / interpolations as a single literal.  After the patch, it appears to treat it as an alternation of literals.
14:32 FROGGS hmmm, I basically did TDD + reading spec
14:32 pmichaud The spec is silent on this.
14:32 pmichaud afaik, there weren't any tests for this case.
14:32 FROGGS that is part of the problem I guess
14:33 FROGGS there are/were tests for arrays in regexes and friend
14:33 pmichaud well, the spec might not be silent on it, but it's unclear to my reading.  :)
14:33 pmichaud for arrays held in scalar variables?
14:33 FROGGS spec says that / @a / should be treated as an alternation
14:33 pmichaud sure, but this isn't / @a /
14:33 pmichaud this is / $a /
14:34 pmichaud and @ vs $ makes a difference in other parts of the spec
14:34 pmichaud for example
14:34 pmichaud n:  my @a = 1..4;  for @a { .say }
14:34 camelia niecza v24-38-g20128d7: OUTPUT«1␤2␤3␤4␤»
14:34 pmichaud n: my $a = [1..4];  for $a { .say }
14:34 camelia niecza v24-38-g20128d7: OUTPUT«1 2 3 4␤»
14:34 FROGGS yeah, I see
14:35 FROGGS so we should make clear statements on this in the spec
14:36 pmichaud yes, which is why I wrote the Pm-20 question three years ago.  :-P
14:36 FROGGS :o)
14:37 pmichaud I'll add issues for the other unanswered questions in that file, I guess.
14:37 pmichaud (and make sure they've not been answered somewhere else)
14:38 ajr joined #perl6
14:38 pmichaud oh, Pm-23 was discussed recently.  I don't remember the outcome.
14:39 pmichaud it's about whether   Grammar.parse($str)  has an implied $-anchor at the end--- i.e., it matches the whole string and fails, or matches a partial string and succeeds (like a parser would do)
14:39 pmichaud s/and/or/
14:40 FROGGS ya, the question is: what is the default, and how to specify the opposite
14:40 masak I believe the outcome was confusion.
14:40 pmichaud that matches my recollection as well.
14:40 pmichaud I can create an issue for it.  I might be able to find the discussion in the irclogs also
14:40 LlamaRider joined #perl6
14:41 pmichaud found it, I think.
14:42 * colomon briefly though pmichaud had found the cause of the slowdown...
14:42 pmichaud colomon: oh, I'm about 80% certain the cause of the slowdown is that we're now passing literals through INTERPOLATE instead of !LITERAL
14:42 colomon oh, Pm-23, though!  I'm quite interested in that.  Been meaning to write a long blog post on it since around the time you filed it.
14:43 FROGGS masak: I commented to your gist
14:43 colomon pmichaud: 80% sure means you're just making a (very educated) guess.  :)
14:43 pmichaud colomon: and that statement would be 100% accurate.  :)
14:43 FROGGS pmichaud: I changed that back and no spectest fail...
14:44 FROGGS I'm really sure why I did that at that time :/
14:44 FROGGS s/really/not/
14:44 FROGGS -.-
14:44 colomon pmichaud: I know many times I have made (what I thought were) very educated guesses about optimization targets and been very wrong.  :)
14:44 FROGGS r: my @a = 1..3; say "123" ~~ / "@a" /
14:44 camelia rakudo 540c01: OUTPUT«Nil␤»
14:45 pmichaud r: my @a = 1..3; say "1 2 3" ~~ / "@a" /
14:45 camelia rakudo 540c01: OUTPUT«Nil␤»
14:45 moritz r: my @a = 1..3; say "123" ~~ / "@a[]" /
14:45 camelia rakudo 540c01: OUTPUT«Nil␤»
14:45 moritz r: my @a = 1..3; say "123" ~~ / @a /
14:45 camelia rakudo 540c01: OUTPUT«「1」␤␤»
14:45 pmichaud r: my @a = 1..3; say "1 2 3" ~~ / "@a[]" /
14:45 camelia rakudo 540c01: OUTPUT«「1 2 3」␤␤»
14:45 pmichaud \o/
14:45 FROGGS okay
14:45 moritz pmichaud: (unrelated, but also of interest, IMHO): http://irclog.perlgeek.de/perl6/2013-05-06#i_7023183
14:46 pmichaud moritz: yes, I haven't gotten around to even reading all of the new spec surrounding Nil
14:46 FROGGS pmichaud: that still works locally with '!LITERAL'
14:47 pmichaud once again the Nil changes fundamentally affect list-handling design (sigh)
14:47 pmichaud FROGGS: what still works locally....?
14:47 FROGGS r: my @a = 1..3; say "1 2 3" ~~ / "@a[]" /
14:47 camelia rakudo 540c01: OUTPUT«「1 2 3」␤␤»
14:47 FROGGS this
14:47 pmichaud well, yes, because that shouldn't be calling !LITERAL.  Or it's produced by a totally different section of the regex parse.  :)
14:48 cognominal how can I get an infinite list alternating between two values?
14:48 colomon cognominal: Z
14:48 pmichaud cognominal: depends on the values
14:49 pmichaud xx would do it, too.
14:49 colomon rn: say ((1, 1, 1... *) Z (5, 5, 5 ... *))[^10]
14:49 moritz r: say (<a b> xx *)[^10]
14:49 camelia rakudo 540c01, niecza v24-38-g20128d7: OUTPUT«1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5 1 5␤»
14:49 camelia rakudo 540c01: OUTPUT«a b a b a b a b a b a b a b a b a b a b␤»
14:49 colomon xx would be more elegant, too.
14:49 cognominal xx does not do it
14:49 cognominal moritz++
14:49 colomon errr.... but .flat
14:49 moritz r: say (<a b> xx *).list[^10]
14:49 camelia rakudo 540c01: OUTPUT«a b a b a b a b a b a b a b a b a b a b␤»
14:49 colomon ?
14:50 moritz r: say (<a b> xx *).flat[^10]
14:50 camelia rakudo 540c01: OUTPUT«a b a b a b a b a b␤»
14:50 moritz looks righter
14:50 moritz colomon++
14:50 colomon moritz++, pmichaud++
14:50 pmichaud r: my @a = <a b> xx *;   say @a[100..105];
14:50 camelia rakudo 540c01: OUTPUT«a b a b a b␤»
14:50 cognominal r: say (<a b> xx *).list[^10].perl
14:50 camelia rakudo 540c01: OUTPUT«(("a", "b"), ("a", "b"), ("a", "b"), ("a", "b"), ("a", "b"), ("a", "b"), ("a", "b"), ("a", "b"), ("a", "b"), ("a", "b"))␤»
14:50 pmichaud cognominal: you have to flatten the result.
14:50 pmichaud .list doesn't flatten.
14:50 cognominal ok, thx
14:51 pmichaud FROGGS: / "@a[]" /   gets handled by     token metachar:sym<"> { <?["]> <quote=.LANG('MAIN','quote')> }
14:52 pmichaud FROGGS: / @a /    gets handled by        token metachar:sym<rakvar> {
14:52 cognominal Z is better for what I do. I pass the infinite list as a parameter
14:52 cognominal * argument
14:52 pmichaud that's why switching to !LITERAL doesn't have any impact on "..."  expressions in a regex.
14:52 FROGGS there is a    method metachar:sym<">($/) { self.rxquote($/) }    in rakudo's Perl6::RegexActions too
14:52 FROGGS err
14:53 pmichaud right,  metachar:sym<">  is the action corresponding to the parse rule I gave above.
14:53 FROGGS ya, just seen that 'token'
14:53 pmichaud ...is it calling INTERPOLATE too?
14:53 pmichaud AIIIIIIIIIIIGH!
14:53 FROGGS the action-method is calling INTERPOLATE
14:53 pmichaud yes
14:53 pmichaud and that's ... bad.
14:53 FROGGS which is not what we want, ehh?
14:54 FROGGS yeah :/
14:54 pmichaud INTERPOLATE is slow-slow-slow.
14:54 pmichaud Calling INTERPOLATE here means that every quoted regex ends up going through interpolate :-(
14:54 masak oh, so I only have to look for quoted regexes?
14:54 masak goodie.
14:55 pmichaud well, quoted regexes that don't resolve at compile time, it appears.
14:55 pmichaud "abc"  should still be fast.
14:55 FROGGS let me rerun the spectest suite and then I'll revert that bit ...
14:55 pmichaud "$x"  is going through INTERPOLATE, when it should be !LITERAL
14:56 masak sounds like a potentially easy fix, anyway.
14:56 cognominal (<a> xx *) Z (<b> xx *)   # apparently not lazy. hangs on my system
14:56 FROGGS masak: I've attached the diff if you wnat to test now
14:56 FROGGS want*
14:57 moritz r: say ((<a> xx *) Z (<b> xx *))[^5[
14:57 camelia rakudo 540c01: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Unable to parse expression in subscript; couldn't find final ']'â�¤at /tmp/_ZNqZcVytS:1â�¤------> [32msay ((<a> xx *) Z (<b> xx *))[^5[[33mâ��[31m<EOL>[0mâ�¤    expecting any of:â�¤        postfixâ�¤        subscriptâ�¤        semicolon listâ�¤Â»â€¦
14:57 moritz r: say ((<a> xx *) Z (<b> xx *))[^5]
14:57 camelia rakudo 540c01: OUTPUT«a b a b a b a b a b␤»
14:57 masak in the middle of profiling, but I'll test right after that.
14:57 araujo joined #perl6
14:57 FROGGS cool
14:57 moritz cognominal: let me guess, you run it the REPL?
14:57 cognominal yup
14:57 moritz cognominal: the REPLY tries to stringify the return value, which is an eager operation
14:57 moritz *REPL
14:57 cognominal indeed
14:58 pmichaud ohhhh!
14:58 cognominal not the first time, I get caught on that one
14:58 pmichaud the INTERPOLATE->!LITERAL switch is exactly the one I mentioned when this all started.
14:58 pmichaud I didn't realize that was in :sym<"> and :sym<'>
14:58 pmichaud I thought it was in :sym<rakvar>
14:59 colomon rn: say Nil.perl
14:59 camelia rakudo 540c01, niecza v24-38-g20128d7: OUTPUT«Nil␤»
14:59 colomon rn: say Nil === Nil
14:59 camelia niecza v24-38-g20128d7: OUTPUT«Unhandled exception: No value for parameter '$l' in 'infix:<===>'␤  at /home/p6eval/niecza/lib/CORE.setting line 0 (infix:<===> @ 1) ␤  at /tmp/l1OcXR2rDj line 1 (mainline @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4299 (ANON @ 3) ␤  at /home/p6e…
14:59 camelia ..rakudo 540c01: OUTPUT«True␤»
15:00 nwc10 pmichaud: can I ask a possibly stupid question? Does this mean that that switch is possibly also adding a bug, in that things that shoud not interpolate might now do so?
15:00 FROGGS rn: say Mississippi.perl
15:00 camelia rakudo 540c01: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Undeclared name:â�¤    Mississippi used at line 1â�¤â�¤Â»
15:00 camelia ..niecza v24-38-g20128d7: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Undeclared name:â�¤        'Mississippi' used at line 1â�¤â�¤Unhandled exception: Check failedâ�¤â�¤  at /home/p6eval/niecza/boot/lib/CORE.setting line 1443 (die @ 5) â�¤  at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 37) â�¤  at …
15:01 pmichaud nwc10: it's possible but I don't think likely.
15:01 FROGGS r: my $a = 'a+b'; say 'aab' ~~ / "$a" /
15:01 camelia rakudo 540c01: OUTPUT«Nil␤»
15:01 kbenson joined #perl6
15:01 FROGGS no, needs an assertion
15:01 pmichaud the INTERPOLATE method has an option on it that says whether or not the value should be re-evaluated as a regex versus treated as a literal string
15:01 pmichaud and in this case, it's calling INTERPOLATE with the "evaluate as literal" option.
15:02 FROGGS r: my $a = 'a+b'; say 'aab' ~~ / <"$a"> / # this
15:02 camelia rakudo 540c01: OUTPUT«[31m===[0mSORRY![31m===[0m�Unrecognized regex metacharacter < (must be quoted to match literally)�at /tmp/lk9hBe3xWU:1�------> [32mmy $a = 'a+b'; say 'aab' ~~ / <[33m�[31m"$a"> / # this[0m�Unable to parse regex; couldn't find final '/'�at /tmp/lk9hBe3xWU:1�…
15:02 FROGGS err
15:02 FROGGS r: my $a = 'a+b'; say 'aab' ~~ / <$a> / # this
15:02 camelia rakudo 540c01: OUTPUT«「aab」␤␤»
15:03 pmichaud the slowdown is that INTERPOLATE does a _lot_ of checks on the value before deciding how to handle it, when (in this case) we already know that it needs to be evaluated as a literal string and should bypass all of those checks.
15:03 nwc10 ah OK
15:03 pmichaud in fact, I wonder if INTERPOLATE would be better written as a multimethod.
15:03 pmichaud since most of the checks are typechecks.
15:04 nwc10 I'm wondering if there are any other similar inefficiencies in the compiler, where the option is hardcoded
15:04 nwc10 but, a multimethod (done right) would let the compiler figure that out for itself?
15:05 dalek niecza: b7c22a6 | (Solomon Foster)++ | t/spectest.data:
15:05 dalek niecza: Turn off nil.t altogether until I can get Nil working better.
15:05 dalek niecza: review: https://github.com/sorear/niecza/commit/b7c22a671b
15:06 FROGGS pmichaud: is this test invalid? https://github.com/perl6/roast/blob/master/S05-metasyntax/litvar.t#L35
15:06 pmichaud oh, there may be.  When a lot of these regex-related patches came in I didn't have time to fully review them.  I did note other problems with the approach being used, however, such as the use of eval() within the method to do regex interpolation.
15:06 moritz r: '' ~~ / <:L> /
15:06 camelia rakudo 540c01: OUTPUT«Cannot get character of empty string␤  in regex  at /tmp/iwmzk4uA9Y:1␤  in method ACCEPTS at src/gen/CORE.setting:10370␤  in method ACCEPTS at src/gen/CORE.setting:683␤  in block  at /tmp/iwmzk4uA9Y:1␤␤»
15:07 moritz anyone want to submit that one? I can't reach my smtp server right now :(
15:07 moritz it's what makes worcase() blow up
15:08 Targen joined #perl6
15:08 dalek roast: 4df081a | (Solomon Foster)++ | S02-types/declare.t:
15:08 dalek roast: Fudge for niecza.
15:08 dalek roast: review: https://github.com/perl6/roast/commit/4df081ab8f
15:08 dalek roast: 4080bec | (Solomon Foster)++ | S03-operators/context.t:
15:08 dalek roast: Fudge for niecza.
15:08 dalek roast: review: https://github.com/perl6/roast/commit/4080bec4d5
15:09 FROGGS moritz: done
15:09 pmichaud FROGGS: I think that test is invalid, yes.
15:09 FROGGS k
15:10 pmichaud n:  my @a = <a b c d>;   say 'c' ~~ / @a[0] /;
15:10 camelia niecza v24-38-g20128d7: OUTPUT«Potential difficulties:â�¤  Apparent subscript will be treated as regex at /tmp/2LTQ8t2ZFb line 1:â�¤------> [32mmy @a = <a b c d>;   say 'c' ~~ / @a[33mâ��[31m[0] /;[0mâ�¤â�¤Nilâ�¤Â»
15:10 pmichaud hrm.
15:10 pmichaud std:  my @a = <a b c d>;   say 'c' ~~ / @a[0] /;
15:10 camelia std b33d8e0: OUTPUT«Potential difficulties:â�¤  Apparent subscript will be treated as regex at /tmp/sHEMe4Iw6z line 1:â�¤------> [32mmy @a = <a b c d>;   say 'c' ~~ / @a[33mâ��[31m[0] /;[0mâ�¤  [0] appears to be an old-school character class; please use <[0]> if youâ�¤    mean a character cla…
15:11 pmichaud well, I don't know then.
15:11 pmichaud S05:1277 confuses the issue.
15:12 moritz FROGGS: thanks
15:12 pmichaud / [ @cmds[0] | @cmds[1] | @cmds[2] | ... ] /
15:12 FROGGS true, this isnt right
15:12 pmichaud S05:1277 seems to think that @cmds[0] is a subscript
15:13 pmichaud STD.pm6 seems to think that [0] is a single-character regex
15:13 pmichaud time for another issue filing... :-)
15:13 FROGGS I think there was a discussion with TimToady, and STD is right on that
15:14 pmichaud if we could find that discussion, it'd be helpful.
15:14 pmichaud I'll put a note in the issues though to update S05
15:14 FROGGS this should be the way to do it: / [$(@cmds[0]) | $(@cmds[1]) | $(@cmds[2]) | ... ] /
15:14 FROGGS will search for the discussion
15:15 geekosaur that somehow seems LTA
15:15 moritz it does
15:15 pmichaud well, the real way to do it is   / @cmds /
15:15 moritz but you sometimes do want to access array elements
15:15 FROGGS if you want all elements, yes
15:16 moritz and if you really mean to match a string, quoting it as '@cmd[0]' isn't particularly hard
15:16 FROGGS the problem is, if you want @arr[0] to be supported, you must support %hash<a> too
15:16 moritz more to the point, it seems very weird to have different interpolation rules between regexes and double-quote strings
15:16 moritz FROGGS: and what's the problem with that?
15:16 FROGGS <a> is a regex rule?
15:16 FROGGS so is %
15:17 moritz but %hash<a> is a longer token than %
15:17 moritz we have lots of cases everywhere in the language where a prefix of something is also valid syntax on its own
15:17 FROGGS http://irclog.perlgeek.de/perl6/2013-02-23#i_6490881
15:18 gaussblurinc joined #perl6
15:19 pmichaud std:      / [ @cmds[0] | @cmds[1] | @cmds[2] | ... ] /
15:19 camelia std b33d8e0: OUTPUT«[31m===[0mSORRY![31m===[0m�Variable @cmds is not predeclared at /tmp/Ywz31PC_Mi line 1:�------> [32m/ [ [33m�[31m@cmds[0] | @cmds[1] | @cmds[2] | ... ] /[0m�Variable @cmds is not predeclared at /tmp/Ywz31PC_Mi line 1:�------> [32m/ [ @cmds[0] | [33m�[31m@c…
15:20 pmichaud std: my @cmds;     / [ @cmds[0] | @cmds[1] | @cmds[2] | ... ] /
15:20 camelia std b33d8e0: OUTPUT«Potential difficulties:â�¤  Apparent subscript will be treated as regex at /tmp/G7whgTIAPx line 1:â�¤------> [32mmy @cmds;     / [ @cmds[33mâ��[31m[0] | @cmds[1] | @cmds[2] | ... ] /[0mâ�¤  [0] appears to be an old-school character class; please use <[0]> if youâ�¤    mean…
15:22 pmichaud https://github.com/perl6/specs/issues/40
15:26 kresike bye folks
15:29 pmichaud https://github.com/perl6/specs/issues/41
15:29 * jnthn waves from the airport
15:29 * moritz waves back
15:29 [Coke] boy are your arms tired.
15:30 jnthn :)
15:31 spider-mario joined #perl6
15:31 [Coke] LHF: open roast spec tickets for RT#77146, RT#93978 (link back to RT URL, then forward link RT tickets to spec tickets.)
15:31 xorp left #perl6
15:32 dalek mu: 86ee60e | pmichaud++ | misc/pm.txt:
15:32 dalek mu: [misc/pm.txt]:  Update Pm-20 and Pm-23 with pointers to newly created spec issues.
15:32 dalek mu: review: https://github.com/perl6/mu/commit/86ee60e1d3
15:33 sergot hi! o/
15:33 dalek rakudo/nom: 2696aab | (Tobias Leich)++ | src/Perl6/Actions.nqp:
15:33 dalek rakudo/nom: revert to !LITERAL for quotes in regex
15:33 dalek rakudo/nom:
15:33 dalek rakudo/nom: The interpolation is already handled by the quote language, we dont need
15:33 dalek rakudo/nom: to interpolate twice. This might fix a slowdown masak++ discovered.
15:33 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2696aab924
15:33 FROGGS masak: pullable now
15:34 pmichaud that could be it... but we still need to figure out where masak's code is doing interpolation.
15:34 jnthn ooh, has the cause of the slowdown beocme apparent?
15:34 pmichaud The only instance I could see of quoting is
15:34 pmichaud for dir('posts', :test( / '.markdown' $ / ))>>.basename -> $markdown_filename {
15:35 pmichaud and that _shouldn't_ be calling either !LITERAL or INTERPOLATE.
15:35 pmichaud oh, and
15:35 pmichaud %info<created> ~~ /(\d\d\d\d) '-' (\d\d) '-' (\d\d)/;
15:35 pmichaud and a few other similar ones.  :)
15:35 pmichaud it'd be worth checking if those are being mis-compiled into !LITERAL or !INTERPOLATE calls.
15:36 moritz not Str.trans?
15:36 pmichaud I didn't look at .trans specifically to see if it's doing any quoting.
15:36 jnthn '-' *may* be going through !LITERAL but it'd better not be going through !INTERPOLATE...
15:37 pmichaud '-' shouldn't be going through !LITERAL, either.
15:37 pmichaud it should be compiled into the regex so that it participates in NFA
15:37 jnthn Ah, yes.
15:37 jnthn It's "..." that interpolates that needs some special-er handling.
15:37 pmichaud I'm in the middle of a rebuild, will check the code output in a sec.
15:38 TimToady though of course "..." should optimize to '...' when it can
15:38 pmichaud TimToady: correct.
15:38 pmichaud there's code in there to do that... I'm just not sure it's working.
15:38 pmichaud moritz: I didn't look into the guts of Str.trans yet; I was just looking for places in masak's direct code that might be hitting INTERPOLATE
15:38 * jnthn vaguely recalls updating those bits when he re-did quoting.
15:38 pmichaud Str.trans frightens me still.
15:39 pmichaud method rxquote($/) {
15:39 pmichaud my $quote := $<quote>.ast;
15:39 pmichaud if $quote.has_compile_time_value {
15:39 pmichaud my $qast := QAST::Regex.new( :rxtype<literal>, nqp::unbox_s($quote.compile_time_value) );
15:39 jnthn Hmm
15:39 pmichaud the .has_compile_time_value (should) dtrt if the "..."  doesn't involve any string interpolation.
15:39 jnthn I think so.
15:39 pmichaud I just want to verify that's the case :)
15:40 FROGGS I dont see !LITERAL or INTERPOLATE here fwiw: perl6 --target=ast -e "'2013-05-06' ~~ /(\d\d\d\d) '-' (\d\d) '-' (\d\d)/"
15:40 jnthn Well, it should be a QAST::WVal.
15:40 pmichaud ?
15:40 jnthn Which always gives true to .has_compile_time_value :)
15:40 pmichaud ah.
15:40 jnthn oh, hm...what does that screen sya about my flight...
15:41 jnthn oh, phew, nothing bad :)
15:41 masak pmichaud, FROGGS and others: https://github.com/masak/profiles-of-slowness
15:42 FROGGS r: say 804610762993 / 150169596476 # ticks with bug / without bug
15:42 camelia rakudo 540c01: OUTPUT«5.3580137516158␤»
15:42 jnthn hoelzro++ # pygments lexer for Perl 6 getting merged
15:42 FROGGS I have to go home now, see you all in a bit... :/
15:43 tadzik see you in a byte :)
15:43 masak r: 804610762993 #`[ticks with bug] / 150169596476 #`[ticks without bug]   # annotating values. this is basically the only thing I (occasionally) use in-line comments for.
15:43 camelia rakudo 540c01:  ( no output )
15:43 masak r: say 804610762993 #`[ticks with bug] / 150169596476 #`[ticks without bug]   # might want to print stuff, too.
15:43 camelia rakudo 540c01: OUTPUT«5.3580137516158␤»
15:44 pmichaud the profile isn't telling me much obvious (because I've forgotten how to set kcachegrind up to read p6 profiles properly)
15:45 masak ok. next up: trying FROGGS' fix.
15:46 jnthn omg, boarding...
15:46 jnthn &
15:48 pmichaud O M G
15:48 pmichaud "Found it!"  (I think)
15:48 tadzik o, my boarding
15:48 colomon where's jnthn off to?
15:48 * colomon is thinking it is early for YAPC::NA....
15:48 FROGGS[mobile] joined #perl6
15:49 xilo joined #perl6
15:49 tadzik early for PLPW too :)
15:49 masak colomon: it's $dayjob-related.
15:49 colomon masak: 'nuf said
15:50 masak pmichaud: listening :)
15:51 pmichaud here's where switching INTERPOLATE semantics made the slowdown....   https://github.com/rakudo/rakudo/blob/nom/src/core/Str.pm#L548
15:53 pmichaud for constant strings, / $pat: /  used to create a nice constant regex.
15:53 pmichaud now it creates a bunch of calls to INTERPOLATE
15:54 masak ...and it affects all calls to Str.match, which seems to be fairly central in regex matching.
15:54 pmichaud correct.
15:54 masak ah.
15:54 colomon yow
15:54 pmichaud I suspect it can be fixed by doing  "$pat":
15:54 pmichaud well, worked-around, anyway.
15:54 masak I will continue to test FROGGS' fix. after that I will try "$pat".
15:54 pmichaud masak: I was just about to suggest that... +1
15:55 pmichaud but we still need to fix  / $var /   in the general case.  As it sits now, it's obviously way too slow for the common use of $var.
15:56 pmichaud (assuming that "$pat" solves the timing issue)
16:03 pmichaud I'm afk... kid errand :-/
16:03 masak *nod*
16:05 DarthGandalf joined #perl6
16:24 Util rn: say [ 5 ~~ 1..7 ].perl;
16:24 camelia rakudo 2696aa, niecza v24-38-g20128d7: OUTPUT«[Bool::True]␤»
16:24 Util rn: sub day ( Int $dow where {$^n ~~ 1..7} ) { say $dow }; day(5);
16:24 camelia rakudo 2696aa, niecza v24-38-g20128d7: OUTPUT«5␤»
16:24 Util rn: sub day ( Int $dow where    * ~~ 1..7  ) { say $dow }; day(5);
16:24 camelia niecza v24-38-g20128d7: OUTPUT«Unhandled exception: Constraint type check failed for parameter '$dow' in 'day'␤  at /tmp/9sOL5wFTKA line 0 (day @ 1) ␤  at /tmp/9sOL5wFTKA line 1 (mainline @ 4) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4299 (ANON @ 3) ␤  at /home/p6eval/niecza/lib/…
16:24 camelia ..rakudo 2696aa: OUTPUT«Constraint type check failed for parameter '$dow'␤  in sub day at /tmp/AjfGczvL3i:1␤  in block  at /tmp/AjfGczvL3i:1␤␤»
16:24 Util ???
16:26 TimToady rn: sub day ( Int $dow where 1..7 ) { say $dow }; day(5);
16:26 camelia rakudo 2696aa, niecza v24-38-g20128d7: OUTPUT«5␤»
16:28 TimToady rn: say * ~~ Whatever
16:28 camelia rakudo 2696aa, niecza v24-38-g20128d7: OUTPUT«True␤»
16:29 TimToady arguably * could be forced to closurize on the left even though it doesn't on the right
16:29 thou joined #perl6
16:29 FROGGS joined #perl6
16:36 FROGGS[mobile] joined #perl6
16:39 dmol joined #perl6
16:41 masak TimToady: that still doesn't address my typology counter-argument: "it's as if you're inserting a new type between 3 and Int, at the point of the enum declaration"
16:41 * TimToady is starting to regret all the spec'd-but-smelly instrospective semantics of / $mystery / and / @mysteries /
16:42 TimToady masak: eh, wasn't talking about that
16:42 masak oh, ok.
16:42 TimToady but I agree, I think
16:49 rurban joined #perl6
16:49 TimToady I suspect the semantics we're actually looking for there is "Can this value be coerced to the enum?", which probably puts it into the bailisick of a Day() coercive declaration, not a smartmatch
16:51 TimToady on the / $x / and / @x / questions, is there anyone currently depending on the ambiguity to pass both strings and regex to the same matcher?  I'm inclined to rip out the introspection and say / $x / is always / "$x" /, and you must say / <$x> / to get the other thing
16:52 TimToady likewise / @x / would always be literals, and / <@x> / would always be regex
16:52 TimToady and if you want to intermix, then you'll have to preprocess the strings in your arrays into regexen
16:53 TimToady this is one of those place where the semantic fight between the language and the OO-ness is coming out badly
16:53 TimToady with FP vs OO we made a clean separation between calls to function and calls to methods
16:53 TimToady here it's not clean
16:54 TimToady and I think I need to invoke rule 2 on / $x / and / @x /
16:55 Util TimToady, masak: Thanks
16:56 pmichaud TimToady: what's the canonical way to "preprocess the strings into regexen"?
16:56 TimToady also, simplying this to be language-dominant and not object dominant means that the answer to Q20 is that $x is always the same as "$x" even if $x contains an arrya
16:56 TimToady and you'd say @$x to mean the other thing
16:57 TimToady map { Regex ?? $_ !! rx/$_/ }, @array
16:57 TimToady or some such
16:57 pmichaud ...but based on what you just said,   rx/$_/  would be a literal match.
16:57 TimToady um, <$_>, yeah
16:57 pmichaud so, /<$_>/
16:58 pmichaud which seems icky, because it's actually a regex containing a regex, then.
16:58 pmichaud there's a level of indirection there.
16:58 TimToady yes, but basic idea is to put the onus onto the programmer if they want to mix levels like that
16:58 pmichaud I understand that part, and agree.
16:58 pmichaud I'm thinking we need a better mechanism for "convert a string to a regex"
16:58 TimToady not bake it into regex semantics, which is the same mistake as p5, mixing levels
16:58 pmichaud something like a regex eval.
16:58 TimToady could be
16:59 TimToady Regex(Str)
16:59 pmichaud right now we have code that does    eval("regex anon { $x }")   which is horrible imo
16:59 TimToady why not just a coercion?
17:00 pmichaud I'm fine with doing it as a coercion.
17:00 TimToady I suppose we could try ripping out the multis that introspect there and see what breaks...
17:01 alester joined #perl6
17:01 TimToady but it feels like one of things we must break regardless
17:02 pmichaud what about  / &foo /, then?  Should it also always be <&foo>  to get the regex-y interpolation?
17:02 TimToady though I still slightly mistrust my brane lo these six weeks after surgery...
17:02 TimToady probably
17:03 frdmn joined #perl6
17:03 TimToady colomon: on Nil in niecza, the problem I ran into is that niecza uses Nil heavily in the regex engine to mean (), alas
17:04 TimToady so while a failed regex returns Nil, I never got to the point of de-listifying it successfully
17:04 pmichaud moritz: ping
17:05 TimToady I tried to split it into Nil vs Empty (to return the () instead of Nil), but didn't get it to work due to insufficient familiarity with C#
17:06 pmichaud moritz: unping, found the answer to my question.
17:06 pmichaud so... empty blocks were changed to return () instead of Nil ?
17:06 pmichaud that feels... wrongish.
17:07 TimToady for list comprehensions and such
17:07 pmichaud feels like it should return something that is undefined, though.
17:07 masak rn: say defined ()
17:07 TimToady but we've defined what it returns :)
17:07 camelia rakudo 2696aa, niecza v24-38-g20128d7: OUTPUT«True␤»
17:09 masak I don't feel I fully understand the ramifications. why did we change from returning Nil to returning ()? what's a use case where one relies on the definedness of calling a block which might be empty?
17:10 pmichaud the use case I can think of is when someone has created a block that doesn't explicitly return a value.
17:11 pmichaud i.e., programmer omission.
17:11 pmichaud I'd like it to signal somehow that the value being returned is a default.  I'm not sure that () should be that default.
17:11 TimToady my @list = (if foo {42} elsif bar {} else {43}) for @input
17:12 TimToady but I suppose one could explicitly return () there
17:12 pmichaud or even just {()}
17:13 pmichaud but yes, I do understand the case of   my @list = (if foo {42} elsif bar {43}) for @input
17:13 pmichaud which leaves a hanging else
17:13 pmichaud I'm not sure it makes sense for the unhandled case to simply "disappear" from the input there, though.
17:14 pmichaud I'll defer to the rosettacode master on that, though.
17:15 masak oh, it definitely does make sense for it to disappear.
17:16 masak that's what I expect from .map
17:16 masak and I have the same expectations in Perl 5, using for example ? :
17:16 TimToady and a list comprehension is really just a funny map
17:16 TimToady $_ * 2 if .odd for @list
17:16 pmichaud hmmm.
17:17 pmichaud removing values is something I expect from a .grep :-) :-)
17:17 spider-mario + grep/filter, sometimes
17:17 spider-mario but perl’s flattening of lists allows to implement grep with map
17:17 masak pmichaud: yes, but "one value" in map is just a special case. there can be zero or more values.
17:17 spider-mario :p
17:17 pmichaud $_ * 2 if .odd for @list   I can understand.
17:18 pmichaud moritz: in https://github.com/rakudo/rakudo/commit/399e7824c6e1055ededc7d43952f22dabf196dbd (which I know is in a branch)... the thing that returns () should definitely *not* be called "nil".  :-)
17:18 moritz pmichaud: yes, I kinda figured that out myself, but didn't have enough brainpower to come up with a clever name
17:18 pmichaud moritz: also, I'm thinking that there should be a constant identifier for () somewhere.
17:19 pmichaud could be Empty  :-P
17:19 moritz NotNil :-)
17:19 pmichaud or Parcel::empty
17:19 moritz whatever it is, having the codegen all in one place does help :-)
17:19 pmichaud indeed.
17:20 moritz pmichaud: did you start the pugs-commits mailing list (or group)?
17:21 pmichaud yes.
17:21 moritz pmichaud: can you delete it again?
17:21 pmichaud probably.
17:21 pmichaud I already took care of the spammer.
17:21 moritz it draws spam, and zero legitimate traffic
17:21 moritz and the pugs commits are all in the Mu repo anyway :-)
17:22 pmichaud yeah, the group was from when pugs was svn-hosted and we didn't have a way to get email notifications out.
17:22 pmichaud deleting group.
17:22 moritz pmichaud++
17:22 pmichaud It's now gone.
17:22 pmichaud There were only about 10 members anyway.
17:25 pmichaud moritz: for Actions.pm, I suggest "return_empty" for now.
17:25 moritz pmichaud: but it's not a return
17:25 pmichaud "value_empty"
17:25 pmichaud "empty_value"
17:25 moritz empty_parcel ?
17:26 pmichaud sure, "empty_parcel" works for now.
17:26 moritz or do you want to not have to rename when the semantics change? :-)
17:26 pmichaud yeah, I was trying to think of what we call it when we fall through a block with no explicit end-value
17:27 moritz "default return value"
17:27 moritz "empty block return value"
17:27 moritz ok, empty_value :-)
17:27 pmichaud "but it's not a return"
17:27 lizmat rn: constant Empty=()
17:27 moritz there's a difference between return and return value
17:27 camelia rakudo 2696aa, niecza v24-38-g20128d7:  ( no output )
17:27 pmichaud also, I'm not sure that all of those Nil's that are converted should be converted
17:27 * moritz neither
17:27 lizmat rn: constant Empty=(); say Empty.WHAT
17:27 moritz which is why it's in a branch :-)
17:27 camelia rakudo 2696aa, niecza v24-38-g20128d7: OUTPUT«(Parcel)␤»
17:29 pmichaud the downside (or maybe upside) of a symbolic name is that it could be overridden.
17:30 pmichaud r: sub foo(\Nil) { };   say foo(4)    # curious
17:30 camelia rakudo 2696aa: OUTPUT«4␤»
17:30 pmichaud :-P
17:30 TimToady o_O
17:30 pmichaud the sub returns Nil :-)
17:31 pmichaud which got defined to be "4"
17:31 TimToady reminds me of the patch to P5 that set 'undef' to a random number so it'd be really undefined
17:31 pmichaud r: my \Nil := 4;  sub foo() { };  say foo
17:31 camelia rakudo 2696aa: OUTPUT«4␤»
17:31 * geekosaur is thinking more of old fortran
17:32 pmichaud if that's something we want to allow, then there should be a symbol for ().
17:32 geekosaur pass a numeric literal as a function parameter, assign to that parameter in the function, you've just changed the value of that literal in the entire program
17:32 TimToady r: my \Nil := (); say Nil.perl
17:32 camelia rakudo 2696aa: OUTPUT«()␤»
17:32 pmichaud If it's something we don't want to allow, then we should force the return of an empty parcel that can't be modified.
17:33 TimToady the seems saner
17:33 TimToady *that
17:34 pmichaud always an empty parcel is certainly safer as the initial position.
17:34 pmichaud can add a symbol later if needed... hard to go the other way.
17:34 TimToady it's one of those things where the primitives turn out not to be as primitive as one would like...
17:35 dickinsm joined #perl6
17:35 TimToady and hence, really a circularity saw issue at some level
17:37 Chillance joined #perl6
17:38 jnthn Rakudo looks up the symbols it needs lexically, which means (for better or worse) than you can override pretty much anything :)
17:39 jnthn finland++ # free wifi at airports
17:45 nwc10 Portland has free wifi too
17:46 nwc10 IIRC so do Vienna and Bratislava, and neither match /land$/
17:49 jnthn Yes, Vienna and Blava indeed do. Or did when I lived there. It was nice. :)
17:54 ilogger2 joined #perl6
17:55 dalek specs: f252dce | larry++ | S05-regex.pod:
17:55 dalek specs: remove eval-level confusion from / $x / and / @x /
17:55 dalek specs: review: https://github.com/perl6/specs/commit/f252dcef34
17:59 timotimo fwiw, moritz, this is what i came up with for the ticker lines out of gnuplot. i have not checked if it does nice subpixel rendering though: set term png size 100, 26; set autoscale; set output 'figure.png'; unset border; unset tics; unset key; plot 'plot' with lines lt rgb "gray";
18:00 timotimo and there needs to be a bit of fiddling with aspect ratio, otherwise it will be crammed together in the middle of the picture
18:01 timotimo another thing is, that i see no way (yet) to make the images be in relation to each other properly, as in have the same scaling
18:05 arnsholt You can set size in gnuplot with the set term command
18:05 arnsholt And if you want them on the same scale, you'll probably have to set xrange/yrange explicitly
18:05 moritz timotimo: set yrange
18:05 lustlife joined #perl6
18:07 timotimo good point
18:07 timotimo arnsholt: in my code you'll see that i did already set the size with the "set term" command :)
18:09 arnsholt I'll shut up then =)
18:09 thou joined #perl6
18:09 arnsholt I must admit I skimmed the gnuplot commands
18:15 flussence I've done some stuff with gnuplot... feel free to steal any useful bits you see in github.com/flussence/specgraphs
18:15 supernovus joined #perl6
18:16 sergot does P6LIB="" still work?
18:16 moritz PERL6LIB=.
18:16 sergot moritz++ thanks
18:17 jnthn $flight.next(); &
18:22 dalek roast: 37df68b | larry++ | S05-metasyntax/litvar.t:
18:22 dalek roast: bring regex var matching in line with new spec
18:22 dalek roast: review: https://github.com/perl6/roast/commit/37df68be06
18:25 ajr joined #perl6
18:32 TimToady .oO("Make that bad dwim go away!")
18:34 colomon TimToady: just read the backlog.  I can try to help you with the C# bits to fix Nil in Niecza, if you can explain to me what the heck they are supposed to do.  :)
18:35 sergot Can I return matching token after parsing, in grammars?
18:35 sergot I mean:
18:36 sergot grammar { token a {}; method hm() { return a } } ?
18:36 sergot Something like that.
18:36 arnsholt No, don't do that
18:36 arnsholt Or, actually that can work
18:36 sergot I wanted access to tokens by .token_name
18:37 arnsholt But a takes some implementation-specific arguments
18:37 arnsholt (IIRC)
18:37 arnsholt If you look at Rakudo's grammar there are some methods that are used in parsing
18:37 sergot my $r = $gram.parse(...); say $r.my_super_token;
18:37 arnsholt It's NQP, but you might be able to use the concepts the same way in Perl 6
18:38 pmichaud sergot: $r in that case isn't an instance of your grammar.  It's a Match object.
18:38 supernovus There are some seriously weird issues when installing modules. Stuff that works just fine when ran as "raw" Perl 6, fails horribly once it's been pre-compiled by panda or ufo. I'd brought this up before with XML::Query, and now it's affecting DateTime::Format (provider of the strftime function and its kin.)
18:38 sergot arnsholt++ ill see
18:38 domidumont joined #perl6
18:38 pmichaud $gram.parse(...) returns an instance of class Match, not an instance of the Grammar.
18:38 sergot pmichaud: so is there any possibility to do what I want? :)
18:38 arnsholt sergot: It might be easier to help if you explained what general problem you're trying to solve
18:38 sergot I don't want <> :)
18:39 pmichaud might be able to mixin a role that does what you want.
18:40 pmichaud r: my $m = '3b2' ~~ / <alpha> /;  my $x = $m but role { method alpha() { self<alpha> } };   say $x.role   # maybe
18:40 camelia rakudo 2696aa: OUTPUT«No such method 'role' for invocant of type 'Match+{<anon>}'␤  in block  at /tmp/vQ7EWFJEUF:1␤␤»
18:40 pmichaud r: my $m = '3b2' ~~ / <alpha> /;  my $x = $m but role { method alpha() { self<alpha> } };   say $x.alpha  # maybe #2
18:40 camelia rakudo 2696aa: OUTPUT«「b」␤␤»
18:41 sergot I'm working on LWP::UserAgent. I want to create is_success() method, which returns true if the status is equal to 200.I did this with storing Match object in $!reponse, I though it can be done without this.
18:42 sergot Not in LWP::UA, but in HTTP::Response.
18:42 sergot Is it possible?
18:43 pmichaud I'm afraid I need much more detail about the design.  Short answer is "yes, it's possible", but it might be messy.
18:45 daxim joined #perl6
18:45 sergot pmichaud: here is my LWP::UA: https://github.com/sergot/lwp-useragent
18:46 sergot pmichaud: it's just a draft.
18:47 sergot pmichaud: As You can see in README, I wanted a method .is_success, but it doens't work on LWP::UA object, but HTTP::Response. So was my idea.
18:48 sergot Not my, it works so in p5. :)
18:49 pmichaud I suspect you don't want HTTP::Response to be the grammar.
18:49 pmichaud at least, not if that's what comes back from $ua.get("URL")
18:49 pmichaud I wouldn't expect to get a Grammar back from .get("URL")
18:51 pmichaud I'd probably create HTTP::Response::Grammar to be the grammar to parse HTTP responses, and then have HTTP::Response be a class of objects representing the processed response.
18:51 [Coke] +1
18:51 sergot pmichaud++: You're right! \o/ Thank You!
18:52 [Coke] ugh. http://news.perlfoundation.org/mt/mt-search.cgi?blog_id=18&amp;tag=grants&amp;limit=20 looks horrible in my browser.
18:52 moritz [Coke]: blue background all over?
18:53 moritz my first guess would be an unclose <a> tag or so
18:53 sergot moritz: I've so.
18:53 lizmat same in Safari, error console only murmurs something about Twitter widgets being deprecated
18:55 dalek specs: 1f34173 | larry++ | S05-regex.pod:
18:55 dalek specs: distinguish .subparse from .parse
18:55 dalek specs: review: https://github.com/perl6/specs/commit/1f3417335c
18:55 [Coke] lizmat: I just emailed the webmaster about the twitter thing.
18:56 colomon specs: 1f34173 -- oooo, interesting!
18:57 [Coke] and since it's not just me, emailed them on the search results also.
18:58 FROGGS ohh, .subparse # TimToady++
18:58 FROGGS I like it
19:03 pmichaud TimToady: fwiw, if you say "Closes #41" or "Fixes #41" in the commit message, it'll automatically close the GitHub issue.
19:03 pmichaud (and reference the commit)
19:03 FROGGS ohh, cool
19:04 TimToady I keep forgetting :)
19:04 pmichaud no problem, I just closed it manually :)
19:04 FROGGS githubs magic feels a bit perly
19:04 TimToady I even thought of it between the two spec commits, and then forgot again :)
19:04 pmichaud heh
19:06 TimToady prn: rx/foo/.Str.say
19:06 camelia niecza v24-38-g20128d7: OUTPUT«Regex()<instance>␤»
19:06 camelia ..pugs: OUTPUT«<Regex>␤»
19:06 camelia ..rakudo 2696aa: OUTPUT«␤»
19:07 TimToady prn: rx/foo/.say
19:07 camelia pugs: OUTPUT«<Regex>␤»
19:07 camelia ..niecza v24-38-g20128d7: OUTPUT«regex ANON(Any \self) { ... }␤»
19:07 camelia ..rakudo 2696aa: OUTPUT«␤»
19:08 TimToady prn: rx/foo/.Str.perl.say
19:08 camelia pugs: OUTPUT«"<Regex>"␤»
19:08 camelia ..niecza v24-38-g20128d7: OUTPUT«"Regex()<instance>"␤»
19:08 camelia ..rakudo 2696aa: OUTPUT«""␤»
19:09 TimToady r: rx/foo/.Str.WHAT.say
19:09 camelia rakudo 2696aa: OUTPUT«(Str)␤»
19:10 sergot pmichaud: Could you take a look now?
19:10 TimToady returning '' from rx/foo/.Str seems wrongishish
19:10 sergot pmichaud: I did as you said, I think. :)
19:10 colomon rn: my $match = 'abd' ~~ m/ (a) (b) c || (\w) b d /; say $match.perl
19:10 camelia rakudo 2696aa: OUTPUT«Match.new(orig => "abd", from => 0, to => 3, ast => Any, list => (Match.new(orig => "abd", from => 0, to => 1, ast => Any, list => ().list, hash => EnumMap.new()),).list, hash => EnumMap.new("", (), ))␤»
19:10 camelia ..niecza v24-38-g20128d7: OUTPUT«#<match from(0) to(3) text(abd) pos([#<match from(0) to(1) text(a) pos([].list) named({}.hash)>].list) named({}.hash)>␤»
19:10 sergot pmichaud: https://github.com/sergot/lwp-useragent
19:13 masak FROGGS: unfortunately, the partial revert didn't seem to speed things up: https://gist.github.com/masak/5520459#file-benchmark-results-txt
19:13 masak trying pmichaud's proposed patch now.
19:13 FROGGS masak: k, :o(
19:13 pmichaud yes, I suspect it's the variable interpolation one.
19:13 pmichaud should we go through a release cycle and deprecation notice before updating to the new spec?
19:13 dalek roast: 69dfa1d | (Solomon Foster)++ | S05-match/capturing-contexts.t:
19:13 dalek roast: Fix / fudge for Niecza.
19:13 dalek roast: review: https://github.com/perl6/roast/commit/69dfa1d7f1
19:14 masak TimToady: just backlogged over coerce/bailisick. agree fully.
19:14 masak lizmat: which means that you have everyone's blessing to unspec 3 ~~ Day :)
19:17 moritz but then we have UNSPECCED behavior :-)
19:17 * TimToady wonders if .ACCEPTS on a coercion type should automatically check for a defined result
19:17 dalek specs: f06441c | (Elizabeth Mattijsen)++ | S02-bits.pod:
19:17 dalek specs: Fix problem in comment of wrong example
19:17 dalek specs: review: https://github.com/perl6/specs/commit/f06441c581
19:17 TimToady 3 ~~ Day()  is easier to write than 3 ~~ Day().defined
19:18 SmokeMachine joined #perl6
19:19 japhb_ joined #perl6
19:21 lizmat rn: my enum Day <Sun Mon Tue Wed Thu Fri Sat>; say 3 ~~ Day()
19:21 camelia niecza v24-38-g20128d7: OUTPUT«Unhandled exception: No value for parameter '$key' in 'CommonEnum.postcircumfix:<( )>'␤  at /home/p6eval/niecza/lib/CORE.setting line 0 (CommonEnum.postcircumfix:<( )> @ 1) ␤  at /tmp/UIN5ffb3dw line 1 (mainline @ 4) ␤  at /home/p6eval/niecza/lib/CORE.sett…
19:21 camelia ..rakudo 2696aa: OUTPUT«Not enough positional parameters passed; got 0 but expected 1 in sub-signature␤  in method postcircumfix:<( )> at src/gen/CORE.setting:2611␤  in block  at /tmp/cPVVJuaNVI:1␤␤»
19:21 moritz I think that'd need to be Day($_)
19:22 lizmat feel more like a multi-method with a no parameter signature needs to be generated ?
19:22 lizmat *multi-sub
19:22 moritz wihch returns a magical object, which, when smart-matched against, coerces?
19:22 moritz sounds like ETOOCUTE, ETOOMUCHMAGIC
19:23 * lizmat feels a lot like the wizard's apprentice
19:23 sergot r: "\n" ~~ /./;
19:23 camelia rakudo 2696aa:  ( no output )
19:23 sergot r: say $1 if "\n" ~~ /(.)/;
19:23 camelia rakudo 2696aa: OUTPUT«(Any)␤»
19:24 sergot r: say 1 if "\n" ~~ /(.)/;
19:24 camelia rakudo 2696aa: OUTPUT«1␤»
19:24 sergot r: say 1 if "\n" ~~ /./;
19:24 camelia rakudo 2696aa: OUTPUT«1␤»
19:24 sergot r: say 1 if "\r" ~~ /./;
19:24 camelia rakudo 2696aa: OUTPUT«1␤»
19:26 [particle] joined #perl6
19:28 lizmat masak: feels like unspeccing at this point is not the right thing to do.  Maybe mark them as TBD instead?
19:30 pmichaud r: my enum Day <Sun Mon Tue Wed Thu Fri Sat>; say Day(3).defined
19:30 camelia rakudo 2696aa: OUTPUT«True␤»
19:30 pmichaud r: my enum Day <Sun Mon Tue Wed Thu Fri Sat>; say Day(8).defined
19:30 camelia rakudo 2696aa: OUTPUT«False␤»
19:31 pmichaud r: my enum Day <Sun Mon Tue Wed Thu Fri Sat>; say 3 ~~ Day($_)
19:31 camelia rakudo 2696aa: OUTPUT«True␤»
19:31 pmichaud r: my enum Day <Sun Mon Tue Wed Thu Fri Sat>; say 8 ~~ Day($_)
19:31 camelia rakudo 2696aa: OUTPUT«False␤»
19:31 masak lizmat: no, I actually think that 3 ~~ Day is insane.
19:32 pmichaud I think that 3 ~~ Day is wrong also.  3 is an Int.
19:32 pmichaud and
19:32 pmichaud r: my enum Day <Sun Mon Tue Wed Thu Fri Sat>; say Int ~~ Day
19:32 camelia rakudo 2696aa: OUTPUT«False␤»
19:33 lizmat r: my enum Day <Sun Mon Tue Wed Thu Fri Sat>; say Day ~~ Int
19:33 camelia rakudo 2696aa: OUTPUT«True␤»
19:33 colomon rn: say ((1 => 2) => 3).perl
19:33 lizmat r: my enum Day <Sun Mon Tue Wed Thu Fri Sat>; say Day ~~ 3
19:33 camelia niecza v24-38-g20128d7: OUTPUT«1 => 2 => 3␤»
19:33 camelia ..rakudo 2696aa: OUTPUT«(1 => 2) => 3␤»
19:33 camelia rakudo 2696aa: OUTPUT«Parameter '' requires an instance, but a type object was passed␤  in method Bridge at src/gen/CORE.setting:3243␤  in sub infix:<==> at src/gen/CORE.setting:3166␤  in sub infix:<==> at src/gen/CORE.setting:3006␤  in method ACCEPTS at src/gen/CORE.setting:2784␤  in m…
19:34 masak good news, performance-wise: https://gist.github.com/masak/5520459#file-benchmark-results-txt
19:34 colomon rn: say ((1) => 3).perl
19:34 camelia rakudo 2696aa, niecza v24-38-g20128d7: OUTPUT«1 => 3␤»
19:34 masak I'll run spectests. and then maybe commit.
19:36 pmichaud masak: is that after the "$pat" commit ?
19:36 masak yes.
19:36 lizmat pmichaud: I don't understand where the topic gets set in "say 3 ~~ Day($_)"
19:36 pmichaud once again a masak++ has found a hole in the cheese.  :)
19:37 pmichaud lizmat: smartmatching sets a topic
19:37 moritz r: 42 ~~ .say
19:37 lizmat ah, ok,  so maybe I should put "3 ~~ Day($_)" instead of "3 ~~ Day" in the spec?
19:37 camelia rakudo 2696aa: OUTPUT«42␤»
19:38 masak lizmat: sounds sane.
19:38 pmichaud r: say 42 ~~ * / 2;
19:38 camelia rakudo 2696aa: OUTPUT«21␤»
19:38 lizmat otoh, isn't saying that more or less the same as 1 ~~ 1 ?
19:38 masak r: my enum Day <Sun Mon Tue Wed Thu Fri Sat>; say 3 ~~ Day(3); say 3 ~~ Day(5)
19:38 camelia rakudo 2696aa: OUTPUT«True␤False␤»
19:38 pmichaud lizmat: yes, I suspect it is.
19:38 pmichaud r: my enum Day <Sun Mon Tue Wed Thu Fri Sat>; say Day(3)
19:38 camelia rakudo 2696aa: OUTPUT«Wed␤»
19:38 masak r: my enum Day <Sun Mon Tue Wed Thu Fri Sat>; say 9 ~~ Day(9)
19:38 camelia rakudo 2696aa: OUTPUT«False␤»
19:39 masak no, it isn't.
19:39 masak see above.
19:39 pmichaud r: my enum Day <Sun Mon Tue Wed Thu Fri Sat>; say Day(8)
19:39 camelia rakudo 2696aa: OUTPUT«(Day)␤»
19:39 lizmat ok, so for checking whether in range, it would make sense.  gotcha
19:39 masak yeah.
19:39 masak which was what the original/current spec line is about, after all.
19:40 moritz timotimo: the gnuplot script you came up with seems to waste a whole bunch of space in the images where legends etc. would usually be
19:40 moritz timotimo: do you have any idea how to change that?
19:43 moritz never mind, I found 'set rmargin 0' and 'set lmargin 0'
19:46 dalek specs: bff6266 | (Elizabeth Mattijsen)++ | S12-objects.pod:
19:46 dalek specs: After much deliberation it was decided that matching ints against enumeration
19:46 dalek specs: types is too weird (at least now).  Adapt the spec to show an alternate way
19:46 dalek specs: of doing this using the topic as set by the smartmatch.  Closes #117875.
19:46 dalek specs: review: https://github.com/perl6/specs/commit/bff6266805
19:48 [Coke] note that "Closes" completely does not work on RTs.
19:48 dalek niecza: 31f36d2 | (Solomon Foster)++ | lib/CORE.setting:
19:48 dalek niecza: Fix Pair.perl to properly handle the case where the key is a Pair.  Fixes #167.
19:48 dalek niecza: review: https://github.com/sorear/niecza/commit/31f36d2a2f
19:48 [Coke] also, we should probably be using git-style commit messages.
19:48 [Coke] (with a short first line)
19:50 pmichaud I've found that the "short first line" standard doesn't work for a lot of my commit messages.
19:50 moritz summarize harder :-)
19:50 pmichaud I mean, whenever I do a commit I always think "do a short first line" and I often fail to come up with one.
19:51 moritz it's really just a matter of practise
19:51 pmichaud if so, then I've been practicing for months and failing.
19:51 moritz well, it might be also a question of priorities
19:51 pmichaud I am being quite literal when I say that I think "short first line" on *every* commit.
19:52 moritz for example it's easier to come up with short first lines if they don't have to be too specific
19:52 [Coke] e.g. https://github.com/rakudo/rakudo/commit/80257434650c3fd8059df2d39916eee96f2dd19b - putting a line break before the We would be fine here.
19:52 pmichaud [Coke]: fair enough, that's a good example.
19:52 moritz like 'fix over-backtracking over captures' without going into the details when that bug occurred, or how it was fixed
19:52 moritz that can go into the subsequent lines
19:53 pmichaud "fix over-backtracking over captures" doesn't seem specific enough to me, though.
19:53 pmichaud I'd at least want to know what kind of captures.
19:53 [Coke] pmichaud: then you'd read the rest of the commit message.
19:53 moritz what [Coke]++ said
19:53 Moukeddar joined #perl6
19:53 pmichaud I mean in a summary line.
19:53 masak Moukeddar! \o/
19:54 pmichaud anyway, I'll try harder then.
19:54 Moukeddar Hello guys , and Hello masak \o/
19:54 masak usually I find that good first commit likes are on the form "<verb> <object>", with <object> simply being specific enough.
19:54 moritz pmichaud: that's what I meant by "a question of priorities"
19:54 Moukeddar i miss here
19:54 masak Moukeddar: welcome back!
19:54 pmichaud When I come up with one that doesn't work, I'll ping the channel and see how it could've been done better.
19:54 moritz pmichaud: either you give short lines the first priority, or specificity
19:54 masak pmichaud: ooc, do you have the same issue with email subject lines?
19:54 masak (honest question)
19:55 lizmat [Coke]: well, it shows intent  :-)
19:55 masak because that, in some sense, is what the first line of a commit message is.
19:55 [Coke] lizmat: fair enough!
19:55 masak when the commit gets format-patch'ed, the first line becomes the subject line of the patch email.
19:55 pmichaud masak: I have trouble finding things based on overly short subject lines, yes.
19:56 pmichaud if you're asking "do I have trouble coming up with short subject lines", the answer is "sometimes", but I do it anyway.
19:56 masak I meant the latter, yes.
19:56 pmichaud but then later I can't find the message I was looking for, because the subject line was too short, which kind of defeats the purpose of the subject line.  :)
19:57 pmichaud anyway, I have an example
19:57 moritz in other news I now have small images showing the activity of IRC channels
19:57 moritz ... but not enough time to integrate them into the website today :(
19:57 pmichaud https://github.com/perl6/nqp/commit/e3b8ef2e17791b19778f653eeba8b444cde73bb2
19:57 * lizmat will use short lines in the future
19:57 pmichaud https://github.com/perl6/nqp/commit/b48b5c3f7033e49e217c3264189094e49842fac4
19:58 nwc10 moritz: cool
19:58 masak pmichaud: solution: "fix RT #117831"
19:58 pmichaud oh, that's just about the worse subject line I can imagine.
19:58 colomon masak: ugh
19:58 pmichaud *worst
19:58 pmichaud it says nothing about what the commit is about.
19:58 masak ok, trying again. :)
19:58 moritz pmichaud: "P6Regex: fix capturing on the right of +%"
19:59 moritz or s/right/RHS/ if you prefer
19:59 masak "fix behavior of RHS of +% in regexes"
19:59 arnsholt I'd probably say something like "Properly handle <alpha> + % <sep>" and then describe the correct behaviour and RT number in-depth in the body of the message
19:59 moritz or "fix capturing of +% separator"
20:00 sergot ugh, can IO::Socket connect to host using url?
20:00 pmichaud moritz: those work for me.
20:00 pmichaud as I said, I'll try harder.
20:00 moritz sergot: not URL, just domain names und IPs
20:00 [Coke] P6Rgex: <alpha>+% now captures multiple <seps>
20:00 pmichaud otoh, I don't know how many tuits you all want me spending on commit messages.
20:00 [Coke] not that many, no.
20:01 masak pmichaud: it quickly becomes automatic.
20:01 moritz not too much; just saying it's possible
20:01 sergot moritz: so host => 'google.pl' should work?
20:01 pmichaud masak: as I said, I think about this stuff on each commit and it hasn't been automatic for me yet.
20:01 moritz sergot: yes
20:01 pmichaud so, it may be "automatic" for others, but the automatic-ness hasn't hit me yet.
20:01 masak :/
20:01 moritz http://moritz.faui2k3.org/tmp/irc-activity/ fwiw
20:02 masak pmichaud: ok, that's a problem I can't assist with. it's become (more or less) automatic for me.
20:02 pmichaud well, seeing more good examples (like the ones you all have just given) definitely helps.
20:02 pmichaud as I said, when I get stuck I'll ping the channel :)
20:02 moritz and specifically for this channel, http://moritz.faui2k3.org/tmp/irc-activity/perl6.png
20:02 sergot moritz: I tried so, and I had some problems.
20:02 sergot moritz: oh, I have an idea, will try.
20:02 masak Moukeddar: nice!
20:02 moritz sergot: did they go away when you substituted the host name with IP?
20:02 masak er, moritz: nice!
20:03 moritz sergot: that's an easy way to check if host names are the problem
20:03 pmichaud Does the "short commit" also have an 80 character limit on it, ooc?
20:04 pmichaud https://github.com/perl6/nqp/commit/b48b5c3f7033e49e217c3264189094e49842fac4    looks like I got bit by an 80-column limit, too.
20:04 pmichaud (I did summarize that one into one line, just not one short-enough line :)
20:05 fgomez joined #perl6
20:05 pmichaud probably needed to omit the "instead of a list quantifier" part of the message.
20:09 domidumont joined #perl6
20:10 masak pmichaud: subject line has a (soft) limit at 50 chars. body lines have a (soft) limit at 72 chars.
20:13 pmichaud oooh, 50 is short.
20:14 pmichaud even tweets are longer :-P
20:15 masak pmichaud: if it makes you feel better, I used one of your commits in a recent git course as a (positive) example of how to write commit comments.
20:15 masak it was more or less by accident. I just grabbed a commit that I thought would serve as a good example. turns out it did.
20:16 pmichaud Yes, that makes me feel better.  :)   I don't feel particularly badly, because I know I've already been working to follow the commit guidelines.  There are just times when I don't see an obvious shortener.
20:16 masak nodnod
20:17 masak and those *are* soft limits. meaning it's up to you to decide when they're worth breaking.
20:17 pmichaud looking back through most of my commits I don't see many that violate it; and when they do, it's typically been "okay, I don't see an easy way out so I'll just break things and take the heat"
20:17 masak right.
20:17 dalek roast: e0f6b87 | (Solomon Foster)++ | S16-filehandles/io.t:
20:17 dalek roast: Refudge for Niecza.
20:17 dalek roast: review: https://github.com/perl6/roast/commit/e0f6b87cb2
20:17 pmichaud Besides, part of the reason is use Perl is because I don't like arbitrary limits.  :-) :-)
20:18 masak yeah, it's a very Perlish notion.
20:18 masak I know you're joking. but they're not arbitrary in this case. they're the answer to "what limits would we need if we were to establish the commit-email isomorphism?"
20:19 masak (which is actively used by git-format-patch and git-am)
20:24 pmichaud r: say 768 * .75
20:24 camelia rakudo 2696aa: OUTPUT«576␤»
20:25 pmichaud r: say 765 * .75
20:25 camelia rakudo 2696aa: OUTPUT«573.75␤»
20:30 masak the "$pat" patch seems to break a spectest. spectesting without the patch to be sure.
20:30 Pleiades` joined #perl6
20:38 * lizmat is searching in the spec on how to do an case-insensitive sort as a method
20:38 timotimo i'm le back~  .  moritz, did you work more on the plotting in the mean time?
20:38 lizmat I find: http://perl6advent.wordpress.com/2010/12/23/day-23-its-some-sort-of-wonderful/
20:39 lizmat which gives as an example:
20:39 lizmat rn: my @unsorted; my @sorted = @unsorted.sort: { .lc };
20:39 camelia niecza v24-40-g31f36d2: OUTPUT«Potential difficulties:â�¤  @sorted is declared but not used at /tmp/FeeAAKKvST line 1:â�¤------> [32mmy @unsorted; my [33mâ��[31m@sorted = @unsorted.sort: { .lc };[0mâ�¤â�¤Â»
20:39 camelia ..rakudo 2696aa:  ( no output )
20:39 lizmat hmmm...
20:40 lizmat rn: say 1.^methods.sort: { .lc }
20:40 camelia rakudo 2696aa: OUTPUT«No such method 'lc' for invocant of type 'Method'␤  in block  at /tmp/MSY9_nrctX:1␤␤»
20:40 camelia ..niecza v24-40-g31f36d2: OUTPUT«Unhandled exception: Unable to resolve method methods in type ClassHOW␤  at /tmp/Bl5Arxq9in line 1 (mainline @ 4) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4312 (ANON @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4313 (module-CORE @ 583) ␤  at…
20:41 [Coke] rn: my @unsorted = qw<l i z m a t>; @unsorted.sort: { .lc }.say;
20:41 camelia niecza v24-40-g31f36d2: OUTPUT«{ ... }␤Unhandled exception: Unable to resolve method count in type Bool␤  at /home/p6eval/niecza/lib/CORE.setting line 1743 (List.sort @ 5) ␤  at /tmp/QqIF73cNYz line 1 (mainline @ 5) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4312 (ANON @ 3) ␤  at /…
20:41 camelia ..rakudo 2696aa: OUTPUT«Block.new()␤No such method 'postcircumfix:<( )>' for invocant of type 'Bool'␤  in block  at src/gen/CORE.setting:6227␤  in method sort at src/gen/CORE.setting:6221␤  in block  at /tmp/oTJ4gKCnJr:1␤␤»
20:41 [Coke] (is that the error you were trying to trigger?)
20:42 lizmat Ah, I think I know what the pb is
20:43 [Coke] rn: my @unsorted = qw<l i z m a t>; @unsorted.sort({ .lc }).say
20:43 lizmat rn: say 1.^methods.map(:{~$_}).sort: { .lc }
20:43 camelia rakudo 2696aa, niecza v24-40-g31f36d2: OUTPUT«a i l m t z␤»
20:43 camelia niecza v24-40-g31f36d2: OUTPUT«Unhandled exception: Unable to resolve method methods in type ClassHOW␤  at /tmp/SS5uH8UqN3 line 1 (mainline @ 4) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4312 (ANON @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4313 (module-CORE @ 583) ␤  at…
20:43 camelia ..rakudo 2696aa: OUTPUT«abs ACCEPTS acos acosec acosech acosh acotan acotanh asec asech asin asinh atan atan2 atanh base Bool Bridge ceiling chr cis Complex conj cos cosec cosech cosh cotan cotanh DUMP exp expmod FatRat floor gist Int is-prime isNaN log log10 Num Numeric perl pred rand Ra…
20:43 lizmat apparently I need to stringify the Method objects first
20:45 [Coke] before you try to print them out?
20:45 [Coke] oh, before you try to sort them alphabetically.
20:51 labster good postnoon, #perl6
20:52 labster From the size of my email inbox, it looks like y'all have gotten a lot of work done today.
20:53 dalek roast: 0149c63 | (Solomon Foster)++ | S12-methods/parallel-dispatch.t:
20:53 dalek roast: Fudge for Niecza.
20:53 dalek roast: review: https://github.com/perl6/roast/commit/0149c63f00
20:56 colomon rn: "m" ~~ /:i <[M]>/
20:56 camelia rakudo 2696aa, niecza v24-40-g31f36d2:  ( no output )
20:56 colomon rn: say "m" ~~ /:i <[M]>/
20:56 camelia niecza v24-40-g31f36d2: OUTPUT«Nil␤»
20:56 camelia ..rakudo 2696aa: OUTPUT«「m」␤␤»
20:57 colomon rn: say "m" ~~ /:i <[m]>/
20:57 camelia rakudo 2696aa, niecza v24-40-g31f36d2: OUTPUT«「m」␤␤»
20:59 dalek roast: 2e32d1e | (Solomon Foster)++ | S05-modifier/ignorecase.t:
20:59 dalek roast: Fudge for Niecza.
20:59 dalek roast: review: https://github.com/perl6/roast/commit/2e32d1e582
21:00 sergot https://github.com/sergot/lwp-useragent it's something! \o/
21:00 colomon \o/
21:01 tadzik sergot++
21:02 tadzik I really hope it takes off
21:02 tadzik LWP::Simple seems more often broken than it's working these days
21:02 tadzik good to have some fresh bloo^Wcode
21:05 sergot I hope so too. :)
21:09 SmokeMachine joined #perl6
21:09 dalek roast: 835646d | (Solomon Foster)++ | S05-metasyntax/litvar.t:
21:09 dalek roast: Fudge for Niecza.
21:09 dalek roast: review: https://github.com/perl6/roast/commit/835646dfc3
21:11 dalek niecza: 6231d24 | (Solomon Foster)++ | t/spectest.data:
21:11 dalek niecza: Remove any-hash.t, as it no longer exists.
21:11 dalek niecza: review: https://github.com/sorear/niecza/commit/6231d24e7e
21:21 masak oh, the fix doesn't break any spectests. those two files were already broken on my system.
21:21 masak so then I think I can go ahead and submit this fix...
21:23 gaussblurinc_ joined #perl6
21:25 snearch joined #perl6
21:25 [Coke] colomon++ # cleanup
21:29 colomon [Coke]: still a ton to go, alas
21:30 [Coke] hopefully someone will get rakudo passing before tomorrow.
21:34 * jnthn is home :)
21:36 lizmat welcome home, jnthn!
21:39 jnthn Hopefully the tuits will start to trickle again for a while. :)
21:40 sorear yay jnthn!  home is good.
21:41 timotimo welcome home jnthn :)
21:42 jnthn Yeah, though this month will probably not have the highest density of "home" :)
21:45 lizmat oddly enough, for me this month has seen the most of "home" so far of all months this year  :-)
21:46 jnthn Well, May is the final rush on teaching before the summer sets in. :)
21:47 timotimo time to cram for all those exams? or time to sit in all those parks?
21:47 lizmat and we cannot all teach over IRC  :-(
21:47 jnthn Well, I kinda like the meatspace aspect of it.
21:49 jnthn And usually the travel is relatively easy-going...just some train journeys.
21:49 lizmat indeed, that's true.  With the after-ski features as well, I guess ?
21:50 jnthn after-ski?
21:51 lizmat beer-time?
21:51 kurahaupo joined #perl6
21:52 jnthn Ah. I tend not to do that much beer while teaching. :)
21:52 lizmat I should have said "apres-ski"
21:52 lizmat many Dutch people go skiing in winter/spring, but mostly for the "apres-ski"
21:52 jnthn .oO( Unless $correct-colleague is in town... :) )
21:52 lizmat (is my impression anyway)
21:53 * jnthn has never tried skiing
21:53 jnthn I really should fix that :)
21:53 FROGGS jnthn: but same like with code: dont break anything ó.ò
21:54 jnthn Yes, indeed! :)
21:54 jnthn .oO( What's the skiing equivalent of spectests? )
21:54 FROGGS no idea, never tried it :o)
21:55 kurahaupo slalom poles?
22:01 dalek rakudo/nom: 9ed5c55 | masak++ | src/core/Str.pm:
22:01 dalek rakudo/nom: fix regex interpolation slowdown in matching
22:01 dalek rakudo/nom:
22:01 dalek rakudo/nom: A recent commit (c255f1d) caused a 10x slowdown in one of my
22:01 dalek rakudo/nom: projects. This commit fixes the slowdown without breaking any
22:01 dalek rakudo/nom: spectests.
22:01 dalek rakudo/nom:
22:01 dalek rakudo/nom: This is only a stopgap solution. Something more lasting will
22:01 dalek rakudo/nom: also be needed in the regex engine, I think. But it does fix
22:01 dalek rakudo/nom: the particular slowness I was experiencing.
22:01 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9ed5c5534c
22:02 lizmat masak++
22:03 timotimo that's an impressively small delta
22:03 FROGGS masak++
22:03 masak pmichaud++
22:04 * lizmat can now go to sleep&
22:04 jnthn 'night, lizmat
22:06 masak 'night, lizmat
22:17 sjohnson joined #perl6
22:18 sergot gnight o/
22:20 masak 'night, sergot
22:20 masak 'night, #perl6
22:33 skids joined #perl6
22:34 jnthn labster: t\spec\S32-io\io-path-unix.rakudo seems to hang on Windows.
22:34 FROGGS gnight all
22:34 diakopter o/
22:35 jnthn (Disclaimer: this is after merging nom into my jvm-support branch, but it feels unlikely it'd not behave that way in nom.)
22:36 dalek Heuristic branch merge: pushed 29 commits to rakudo/jvm-support by jnthn
22:39 * lue thought for a second that jnthn said merging jvm-support to nom
22:44 jnthn No :)
22:45 jnthn Just getting the latest stuff from nom, which is about all I have the energy to do tonight.
22:50 labster jnthn: Huh.  I'm not actually on windows, so let me know how it's dying.
22:58 jnthn labster: It doesn't die, it actually hangs.
22:58 jnthn labster: 1-16 pass, so I guess it's 17.
23:00 timotimo or the output isn't flushed corrctly?
23:00 jnthn No
23:00 jnthn my $relpath = IO::Path::Unix.new('foo/bar' ); say $relpath.absolute
23:00 jnthn That hangs in the REPL
23:01 jnthn Or in a file.
23:03 jnthn can golf it to IO::Path::Unix.new('foo').absolute which also hangs
23:03 * jnthn needs to get some rest
23:04 jnthn back tomorrow...'night
23:04 diakopter o/
23:15 cognominal curiosity pointed by BooK in #perlfr, palindromic url for a palindromic text :  http://graner.net/nicolas/salocin/ten.renarg//:ptth
23:18 timotimo sadly the / are not flipped
23:18 timotimo is the text in reverse? ah, no, it's just french ;)
23:19 cognominal It is also a palindrome, you can read it from either end
23:19 cognominal for the /, palindrome are not visual.
23:19 timotimo ah, ok
23:20 timotimo also, i cannot read that from either end ;))

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

Perl 6 | Reference Documentation | Rakudo