»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend! Set by moritz on 3 May 2013. |
|||
00:01
dayangkun joined
|
|||
grondilu | I was also surprised it worked. | 00:01 | |
rn: my $x = 13; say $x[1] | 00:02 | ||
camelia | niecza v24-37-gf9c8fc2: OUTPUT«(Any)» | ||
..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» | |||
grondilu | rn: my $x = 13; say $x.elems | ||
camelia | rakudo 88f9c9, niecza v24-37-gf9c8fc2: OUTPUT«1» | ||
00:03
Pleiades` left
00:08
Pleiades` joined
00:12
berekuk left
00:42
rjbs left
00:49
daniel-s_ is now known as daniel-s
00:50
daniel-s left
00:51
daniel-s joined
|
|||
daniel-s | perl: say "hi" | 00:52 | |
rn: say "hi" | |||
camelia | rakudo 88f9c9, niecza v24-37-gf9c8fc2: OUTPUT«hi» | ||
sorear | perl6: say "hi" | 00:58 | |
camelia | rakudo 88f9c9, niecza v24-37-gf9c8fc2: OUTPUT«hi» | ||
01:17
MrMeek-afk joined
01:18
MrMeek left
01:22
FROGGS_ joined
01:24
FROGGS left
01:54
dayangkun left
02:46
lue left
02:48
pecastro left
02:50
pecastro joined,
adu joined
02:58
lue joined
03:18
ivan``_ is now known as ivan``
03:46
preflex left,
odoacre_ joined
03:47
preflex joined
04:02
skids left
04:05
adu left
04:06
adu joined
04:10
grondilu left
04:25
Psyche^ joined
04:26
satyavvd joined
04:28
Patterner left,
Psyche^ is now known as Patterner
|
|||
moritz | \o | 04:29 | |
04:37
octave joined
04:38
octave is now known as Guest5990
04:40
Guest5990 left
04:52
xinming joined
05:01
satyavvd left
|
|||
adu | o/ | 05:01 | |
05:02
frd|afk left
05:03
kurahaupo left
05:05
adu left
05:06
kurahaupo joined
05:07
zby_home joined,
zby_home left
|
|||
dalek | kudo/nom: c2736b2 | moritz++ | tools/build/NQP_REVISION: bump NQP revision to get NCI fix by arnsholt++ |
05:20 | |
05:22
satyavvd joined
05:45
lustlife joined
05:46
kaleem joined
05:56
dmol joined
05:59
dmol left
06:13
grondilu joined
|
|||
grondilu | rn: my module Foo { sub talk is export { say "hello" } }; import Foo <talk>; talk; | 06:14 | |
camelia | niecza v24-37-gf9c8fc2: OUTPUT«===SORRY!===Action method statement_control:import not yet implemented at /tmp/1Ums2bNJ1e line 1:------> ort { say "hello" } }; import Foo <talk>⏏; talk;Unhandled exception: Unable to resolve method statement_level… | ||
..rakudo 88f9c9: OUTPUT«===SORRY!===Error while importing from 'Foo': no EXPORT sub, but you provided positional argument in the 'use' statement» | |||
grondilu | I thought the 'use Module <func>' was implemented now :/ | 06:19 | |
06:20
dmol joined,
dmol left
06:22
dayangkun joined
|
|||
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:26 | |
or something like codespells (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:29 | ||
06:31
frdmn joined
06:35
FROGGS_ left
06:48
DarthGandalf left
06:54
FROGGS joined
|
|||
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:55 | |
I was thinking of starting some writing some tutorials when I finished up with the path project. | 06:57 | ||
tadzik | good morning #perl6 | 07:04 | |
diakopter | hi | 07:05 | |
what I did today: github.com/moose/moose/pull/16 | |||
labster | nice, diakopter | 07:07 | |
tadzik | wow, awesome | 07:11 | |
moritz | diakopter++ | ||
07:13
domidumont joined
07:14
domidumont left,
domidumont joined
07:15
rindolf joined
|
|||
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 | ||
camelia | rakudo c2736b: ( no output ) | ||
labster | r: say so ('a', 'b')>>.match( /c/ ).all | ||
camelia | rakudo c2736b: OUTPUT«True» | ||
moritz | r: say ('a', 'b')>>.match( /c/ ).perl | 07:18 | |
camelia | rakudo c2736b: OUTPUT«(Nil, Nil)» | ||
FROGGS | ohh | ||
moritz | r: say ('a', 'b')>>.match( /c/ ).all | ||
camelia | rakudo c2736b: OUTPUT«all()» | ||
moritz | oh | ||
Nil shouldn't listify to the empty list | |||
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) ? | ||
camelia | rakudo c2736b: OUTPUT«all()» | ||
moritz | yes | 07:20 | |
labster | Oh good, I'm not going crazy, it is a bug. | ||
moritz | r: say (Nil, Nil) | ||
camelia | rakudo c2736b: OUTPUT«Nil Nil» | ||
moritz | r: say (Nil, Nil).list | ||
camelia | rakudo c2736b: OUTPUT«» | ||
FROGGS is testing a possible patch | 07:24 | ||
moritz too | 07:25 | ||
FROGGS | :P | ||
damn, you have the faster machine... | |||
moritz | but my patch might be wronger | ||
FROGGS | well, my is just a guess... so we are head-to-head | 07:26 | |
07:27
sqirrel joined
|
|||
FROGGS | but this tells me I'm not too off: | 07:27 | |
r: say (Mu, Mu).all | |||
camelia | rakudo c2736b: OUTPUT«all((Mu), (Mu))» | ||
moritz | r: say Nil.list.elems # that's the real problem | ||
camelia | rakudo c2736b: OUTPUT«0» | ||
moritz | but my patch will cause lots of spectest failures, I fear | 07:28 | |
because empty blocks still return Nil | |||
FROGGS | ohh, I deadlocked my rakudo :/ | ||
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 | ||
===SORRY!=== | |||
Odd number of elements found where hash expected | |||
FROGGS | I was here btw: src/core/ListIter.pm:43 | 07:31 | |
and comented out the eslif condition | |||
elsif* | |||
07:33
xinming_ joined
|
|||
moritz | and I removed the Iterator from Nil | 07:36 | |
07:36
xinming left
|
|||
FROGGS | me too right now | 07:36 | |
still a deadlock on my box | |||
moritz | but the problem is deeper | 07:37 | |
there's code in Actions.nqp (iirc) that makes empty statement lists return Nil | |||
I'm pretty sure that needs to be updated to return an empty parcel instead | |||
FROGGS | moritz: true, at several places | ||
07:37
kivutar joined
|
|||
FROGGS | every action method that doesnt produce ast but does something else, throws a QAST::Var( Nil in place | 07:38 | |
labster | I feel like a line employee in the worm cannery asking, "Hey, I wonder what's in these?" | 07:40 | |
07:41
domidumont left,
domidumont joined
07:45
fhelmberger joined
|
|||
hoelzro | good morning #perl6! | 07:51 | |
tadzik | hello hoelzro | 07:53 | |
moritz | \o * | ||
hoelzro | I am pleased to announce that my Perl 6 lexer has been merged into pygments' main branch \o/ | 07:54 | |
labster | o/ | ||
tadzik | \o/ | ||
awesome! hoelzro++ | |||
labster | w00t | ||
moritz | \o/ | ||
hoelzro++ | |||
dalek | kudo/nil-noniterable: 399e782 | moritz++ | src/ (3 files): make Nil not iterable, and return empty Parcel from empty statements |
07:55 | |
moritz | rakudo builds again in that branch | 07:56 | |
but about 10% to 20% of the test files fail in spectest | |||
oh drat, World uses Nil too | 07:57 | ||
anyway, it's a good baseline for some motivated hackers to start exterminating the remaining bugs :-) | 07:58 | ||
08:04
fuad joined
|
|||
FROGGS | hoelzro++ # \o/ | 08:04 | |
08:06
berekuk joined
|
|||
dalek | ast: 75c35af | (Brent Laabs)++ | S32-io/io-spec-win.t: fix IO::Spec::Win32.canonpath test verbosity |
08:08 | |
ast: e328a75 | (Brent Laabs)++ | S32-io/io- (3 files): IO::Path::Win32 tests, and add another test to spec::win32 |
|||
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:13
sqirrel left
08:16
kurahaupo left
08:19
donaldh left
08:21
donaldh joined
08:28
frdmn|afk joined
08:29
frdmn|afk left
08:30
frdmn|afk joined,
frdmn left
08:34
sciurius left,
sciurius joined
08:41
c1sung left
|
|||
hoelzro | great; pygments seems to do a release about once a year =( | 08:41 | |
and their last one was in February | 08:42 | ||
arnsholt | Once a year? That's quite slow | 08:43 | |
hoelzro | yeah | 08:44 | |
not too thrilled about that =/ | |||
arnsholt | Definitely, definitely | 08:53 | |
FROGGS | releasing once a year feels like working for a dead project somehow | ||
08:54
dayangkun left
|
|||
dalek | ast: 7c4e0b5 | (Brent Laabs)++ | S32-io/io-path-cygwin.t: IO::Path::Cygwin tests |
08:55 | |
labster | okay, I'm pretty much done, at least until readlink is implemented. | 08:57 | |
another pull request for someone to handle. No one has given me a commit bit for rakudo yet. | 09:02 | ||
moritz | labster: I hope you'll get one soon | 09:04 | |
labster: just needs a +1 from jnthn :-) | |||
labster | Well, when he's awake, I'll ask. | 09:05 | |
09:05
daxim joined
09:06
sciurius1 joined,
dayangkun joined
|
|||
masak | good antenoon, #perl6 | 09:07 | |
09:07
sciurius1 left
|
|||
moritz | good an, masak | 09:07 | |
09:07
sciurius1 joined
09:08
sciurius left,
frdmn|afk left
|
|||
masak | and a fine an it is, indeed. | 09:08 | |
09:08
sciurius1 is now known as sciurius
|
|||
dalek | kudo/nil-noniterable: 1a9a731 | moritz++ | src/ (8 files): switch World and some of the setting from Nil to () |
09:08 | |
09:09
frdmn joined
09:11
tokomer joined
09:17
dayangkun left,
kaleem left
09:19
tokomer left
|
|||
fuad | Hello, folks. | 09:24 | |
moritz | oh hai fuad | 09:25 | |
09:25
FROGGS left
|
|||
fuad | How are you, moritz? It's been awhile! | 09:26 | |
moritz | fuad: I'm fine, thanks | 09:27 | |
fuad: what about you? | |||
labster: spectesting your pull request now... | 09:28 | ||
fuad | moritz: Doing good thank you | ||
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. | |||
masak | fuad! \o/ | ||
tadzik: after watching perlmaven.com/tadeusz-sosnierz , I'm now very curious about the t-shirts :D | |||
moritz too | 09:30 | ||
labster: it's not a sign of distrust, just a step always executed before pushing commits that touch code | 09:31 | ||
masak | "trust but verify". | 09:32 | |
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 | ||
masak | yeah. I began from the top, and I'm still at it. | 09:36 | |
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:37 | ||
09:38
salv0 left
|
|||
masak | or not "dual", really. "converse", perhaps. | 09:38 | |
09:38
salv0 joined
|
|||
moritz | masak: I'm having trouble understanding the connotation of that saying | 09:38 | |
masak | moritz: I got the feeling it's about not being gullible where it would hurt you but benefit others. | 09:39 | |
dalek | kudo/nom: 6e9f456 | (Brent Laabs)++ | / (2 files): add IO::Path and IO::Spec spectests, fix minor Win32 path separator issue |
||
kudo/nom: 540c014 | moritz++ | / (2 files): Merge branch 'nom' of github.com/labster/rakudo into nom |
|||
fuad | masak: Hey, bro! | 09:40 | |
masak | fuad: salut, frère! | 09:42 | |
moritz | ♫ frère fuad, frère fuad, dormez-vous? ♫ | 09:44 | |
09:45
kaleem joined
09:47
thou left
|
|||
masak | :D | 09:48 | |
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) | ||
and she loves fr the best :-) | 09:50 | ||
labster | It's a good simple song. Even Captain Picard likes it. | ||
moritz | that knights it, of course :-) | 09:51 | |
labster | blog.brentlaabs.com/2013/05/porting...erl-6.html < sort of a blend of "what I did on File::Spec" and "why porting to Perl 6 is good". | 09:52 | |
moritz | labster++ | 09:54 | |
woah, de.wikipedia.org/wiki/Fr%C3%A8re_Jacques has quite a few languages | 09:55 | ||
(German wikipedia)++ | 09:56 | ||
masak | in the lyrics we got for the song when I went to school, they had made up at least one language. | 09:57 | |
they called it "Indian speech". | |||
in retrospect, I find that odd and somewhat disrespectful. | 09:58 | ||
wow, that is an impressive list. | 09:59 | ||
new goal: learn to sing those versions, *with decent pronunciation*. | |||
10:02
sqirrel joined
|
|||
labster | the Japanese version seems to have too many syllables in line 2. | 10:03 | |
good night | 10:08 | ||
fuad | :) | 10:16 | |
10:16
woolfy left
10:17
woolfy joined
|
|||
tadzik | masak: ha-ha :)_ | 10:23 | |
10:24
kresike joined
|
|||
kresike | hello all you happy perl6 people | 10:24 | |
masak | hello happy kresike | ||
kresike | masak, o/ | 10:25 | |
10:31
FROGGS joined
10:32
woosley left
|
|||
colomon | labster++ | 11:02 | |
11:14
fuad left
11:16
xinming_ left
11:18
xinming joined
|
|||
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:20 | ||
FROGGS | colomon: I smoked yesterday manually, sad is just that I can't access that box right now to get the result :/ | 11:23 | |
11:28
xinming left
11:30
xinming joined
11:39
satyavvd left
|
|||
cognominal | nqp: class A {}; my $a.new; say($a.HOW.name($a)) | 11:46 | |
camelia | nqp: OUTPUT«NQPMu» | ||
cognominal | moritz: ♫ Sonnez les matines ♫ Ding Daing Dong | 11:48 | |
11:48
sorear joined
|
|||
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:50 | |
camelia | nqp: OUTPUT«A» | ||
colomon | FROGGS: smoke test is still running on my machine, which means it is probably right, I think! | ||
FROGGS | cool! | ||
colomon: can we submit the results to somewhere? | 11:51 | ||
colomon | my crontab's mail output is still kind of broken, though. | ||
moritz | cognominal: your one-line does not correlate A to $a at all | ||
11:52
Targen left
|
|||
cognominal | moritz: so, how to print $a classname? | 11:52 | |
moritz | nqp: class A {}; my $a := A; say($a.HOW.name($a)) | 11:54 | |
camelia | nqp: OUTPUT«A» | ||
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) | ||
afk # nom-am | |||
cognominal | moritz: I meant the classname of an A instance | 11:55 | |
moritz | cognominal: same | 11:56 | |
FROGGS | nqp: class A {}; my $a := A.new; say($a.HOW.name($a)) | 11:57 | |
camelia | nqp: OUTPUT«A» | ||
FROGGS | cognominal: you just need to involve A in some kind | ||
can't leave it untouched | |||
cognominal | oops | 11:58 | |
need to wake up | 11:59 | ||
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 | |
Like JSON | |||
FROGGS | arnsholt: just a few stripped out fields plus the TAP blurb, right? | 12:02 | |
moritz | see TAP::Harness::Archive | ||
FROGGS | json++ btw | ||
arnsholt | Pretty much, yeah | ||
FROGGS | brb | ||
arnsholt | moritz: Oooh, that's useful | ||
moritz | that's what spectest_smolder uses | 12:03 | |
moritz loves woodgears.ca/marbleadd/ | 12:08 | ||
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 | |
what I'm looking for is a clever way to analyze and report those results. | |||
moritz | make a picture, with a red rectangle for a failure, and a green for a pass | 12:11 | |
colomon | moritz: over time | ||
moritz | right | ||
one row for each module, where each column is a smoke date | |||
and a green->red transition makes it sort higher up on the page | |||
colomon | emmentaler already generates a pretty output for a single smoke run | ||
moritz: hmm. only displaying the last week or so, with a summary for what came before that? | 12:13 | ||
moritz | colomon: or maybe a month | 12:14 | |
if you really use only red + green boxes, it's easy to fix 30 or 31 into one row | |||
if one box is 15x15 pixel, it's easy to read, and 450 pixel fit onto most browser screens | 12:15 | ||
plus the module name in the same row | |||
moritz is almost tempted to do it himself | 12:16 | ||
colomon would be happy to use moritz's work | |||
moritz | colomon: can you give the json files from a few runs, so that I have some data to work with? | 12:18 | |
colomon | give me a moment... | 12:19 | |
the 2k3 thing still your e-mail? | 12:21 | ||
moritz | colomon: aye | ||
colomon | done | 12:22 | |
if you need more I can rummage up an older run or two. | |||
the emmentaler repo has a script for reading one of these result files and formatting it. | 12:23 | ||
also, my e-mail issue cleared up! Looks like cron didn't get the MAILTO in my .bashrc either. (Obvious in retrospect...) | 12:25 | ||
12:27
robinsmidsrod left
12:28
robinsmidsrod joined
|
|||
colomon initially didn't do it the geekosaur++ told him to do it, and so it didn't work quite right. | 12:29 | ||
[Coke] needs to make IRSSI have a longer backscroll, yikes. | 12:34 | ||
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 | rl6-roast-data: 4174cd2 | coke++ | / (4 files): today (automated commit) |
||
rl6-roast-data: d9c49bb | coke++ | / (4 files): today (automated commit) |
|||
[Coke] | niecza has been dirty for 292 days. pugs has been dirty for 1 day. rakudo has been dirty for 1 day. | ||
colomon clearly needs to get off his arse and fix up the niecza test run... | 12:42 | ||
12:45
xinming left
12:47
xinming joined,
rindolf left
12:52
census joined
|
|||
moritz | colomon: gist.github.com/moritz/5524912 | 12:52 | |
it generates images like 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. | |||
[Coke] got distracted and never went back to it, bad Coke. | |||
moritz | which shows that for the first 5 days no data was available | 12:55 | |
and for the next, prereq failed, and the finaly day, tests passed | |||
colomon | +1 | 12:56 | |
\ | |||
moritz++ | |||
moritz | that certainly still needs a lot more work, but it's a good base to start from | 12:57 | |
colomon | yes | ||
moritz | number of days to show is configurable | ||
another idea would be generate a HTML table | 12:58 | ||
where the cells are colored | |||
or an image | 12:59 | ||
timotimo | labster++ # i enjoyed your blog post :) | ||
moritz | which is a link to the actual test result | ||
12:59
shinobicl joined
|
|||
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? | 12:59 | |
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 | ||
maybe something like that could be implemented for smoking? but instead there might be two lines: tests spec'd and tests passed? | |||
moritz | I wanted to implement that for showing activity of IRC channels | 13:02 | |
timotimo | i like that idea | ||
would that be implemented in perl6? | 13:03 | ||
timotimo looks at available graphics libraries | |||
moritz | it would, though I don't really know with which graphics lib | 13:04 | |
not with GD, because it doesn't do subpixel rendering | |||
which makes GD::Graph pretty useless if you have large data sets | |||
timotimo | does imlib provide image creation routines? | 13:05 | |
it says something about "high quality anti-aliased output" on the module description for that | |||
FROGGS | you dont need images for that | 13:06 | |
you html | |||
use* | |||
you can have colored divs and place them as bars on a background-div | |||
timotimo | we're talking about lines, though, not bars | 13:07 | |
can divs have subpixel widths and heights? | |||
hm, i suppose they can | |||
moritz | but it kinda clutters the HTML | 13:08 | |
and it's by no means semantic markup | |||
timotimo | right, especially with lots of data. | ||
in that case, i'd prefer a <canvas> and some json data set instead | |||
FROGGS | yeah, depends on how much elements we are talking about | ||
you cant render subpixels using html-divs | |||
timotimo | OK | 13:09 | |
13:09
bluescreen10 joined
|
|||
moritz isn't very productive at $work today | 13:10 | ||
timotimo | moritz: do you know if gnuplot can be made to output something appropriate? | 13:11 | |
moritz | timotimo: I'm pretty sure; it's very versatile | 13:12 | |
timotimo | would you consider that a workable solution? | ||
moritz | yes | ||
timotimo investigates | 13:13 | ||
[Coke] | ah, looks like larry broke the spec tests with daacea39 | 13:15 | |
colomon | [Coke]: context? | ||
FROGGS | repository? | ||
[Coke] | er, 151f725c | ||
roast. | |||
colomon | TimToady++ is modifying roast?! | 13:16 | |
FROGGS | looks like: github.com/perl6/roast/commit/151f725c | ||
pnr: say wordcase("hello") | 13:17 | ||
camelia | pugs: OUTPUT«*** No such subroutine: "&wordcase" at /tmp/IcM9PQ2R5v line 1, column 5 - line 2, column 1» | ||
..niecza v24-37-gf9c8fc2: OUTPUT«===SORRY!===Undeclared routine: 'wordcase' used at line 1Unhandled 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 … | |||
..rakudo 540c01: OUTPUT«Hello» | |||
FROGGS | pnr: say capitalize("hello") | ||
camelia | rakudo 540c01, niecza v24-37-gf9c8fc2, pugs: OUTPUT«Hello» | ||
FROGGS | I see | ||
13:18
PacoAir joined
|
|||
colomon | prn: say capitalize("hello world") | 13:18 | |
camelia | rakudo 540c01, niecza v24-37-gf9c8fc2, pugs: OUTPUT«Hello World» | ||
13:19
MrMeek joined
|
|||
[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:19 | |
13:19
MrMeek-afk left
|
|||
gtodd | r: say (Nil, Nil) | 13:20 | |
camelia | rakudo 540c01: OUTPUT«Nil Nil» | ||
gtodd | r: say (Ni, Ni) | ||
camelia | rakudo 540c01: OUTPUT«===SORRY!===Undeclared name: Ni used at line 1» | ||
colomon | niecza> say wordcase("hello world") | 13:21 | |
Hello World | |||
colomon likes easy-to-fix issues | |||
looks like capitalize is still used a few places in roast. | |||
[Coke] wonders if rakudo can just change or not. | 13:22 | ||
(worrying about downstreamers) | |||
moritz | rakudo implements wordcase | ||
dalek | ecza: 20128d7 | (Solomon Foster)++ | lib/CORE.setting: Change capitalize to wordcase. |
||
moritz | and has for a few months | ||
masak | r: constant Ní = "Ekke Ekke Ekke Ekke Ptangya Ziiinnggggggg Ni!"; say "The knights who say {Ní}" | ||
camelia | rakudo 540c01: OUTPUT«The knights who say Ekke Ekke Ekke Ekke Ptangya Ziiinnggggggg Ni!» | 13:23 | |
moritz | since 2012.09 | ||
[Coke] | r: say wordcase "eek" | ||
colomon | Is capitalize gone from the spec? | ||
camelia | rakudo 540c01: OUTPUT«Eek» | ||
gtodd | masak: ++ | ||
[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… | ||
[Coke] | there's your bug. | ||
masak | [Coke]++ | 13:25 | |
moritz | and I believe it even exposes an underlying bug in the regex engine | ||
masak | looks like. | ||
colomon | capitalize is indeed gone from the spec, according to ack | ||
masak .oO( life happens on the sad path ) | |||
daxim | rakudo: Qc「{ 23+43 }」.say | 13:26 | |
camelia | rakudo 540c01: OUTPUT«66» | ||
gtodd | masak: "birth, joy, love, happiness, much sorrow" | ||
timotimo | unset border; unset tics; unset key; plot 'plot' with lines; - this will give only a line, no decorations whatsoever | 13:29 | |
daxim | what's .quoteharder? | 13:30 | |
in S02 | |||
timotimo | i've just asked about this last week | 13:31 | |
it's just an example method. not specced and not implemented | |||
13:31
skids joined
|
|||
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. | ||
[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:32 | |
gtodd | masak: perl poetry :) | 13:33 | |
census | what about perl pottery ... | ||
geekosaur | the result of perl puttering | 13:34 | |
13:39
gaussblurinc_ joined
|
|||
dalek | ast: 8861b64 | (Solomon Foster)++ | S (2 files): Change a few straggling capitalize calls to word.case. |
13:41 | |
colomon | errr, wordcase. | 13:42 | |
13:42
kaare_ joined
|
|||
moritz | [2001:780:101::2]/ # IRC logs over ipv6 | 13:44 | |
AAAA records will follow soonish | 13:45 | ||
[Coke] | ENOTAURL? | ||
could be our proxy here at work. | |||
moritz | [Coke]: or you simply don't have IPv6 access | 13:46 | |
geekosaur | buggy programs don't always understand that an ipv6 literal is in brackets | 13:48 | |
moritz | one of those buggy programs are the IRC logs themselves, which don't linkify the URL | 13:50 | |
moritz opened rt.cpan.org/Ticket/Display.html?id=85087 | 13:55 | ||
daxim | dupe of rt.cpan.org/Public/Bug/Display.html?id=68288 | 14:00 | |
14:01
ajr joined
14:02
ajr is now known as Guest35673
|
|||
moritz | oh right. Good that rt supports merging of tickets :-) | 14:03 | |
dalek | ast: cc39be9 | (Stéphane Payrard)++ | S03-operators/shortcuts.t: tests for @.[], %.{} and &.() |
14:05 | |
ast: cfdba7b | (Stéphane Payrard)++ | S (2 files): Merge branch 'master' of github.com/perl6/roast |
|||
cognominal | sorry I messed up again. in roast. | ||
I need to improve my git skills | 14:06 | ||
masak | ok, I finished the bisect. gist.github.com/masak/5520459 | 14:07 | |
FROGGS | gorram it | ||
there my name in it | |||
is* | |||
masak | not only that, but just to be sure, I went back and rebuilt both c255f1d^ and c255f1d from a *completely fresh Rakudo*. | ||
c255f1d^ is good and c255f1d is bad. | |||
FROGGS: I'm not going to blame you for anything :) | 14:08 | ||
FROGGS | puuhhh | ||
masak | FROGGS: I'm sure the commit was an improvement in some regards. | ||
FROGGS | ó.ò | ||
so, what exactly is slow? | |||
pmichaud | good morning, #perl6 | 14:09 | |
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. | ||
FROGGS | hi pmichaud | ||
masak | pmichaud: bisect done. :) | ||
gist.github.com/masak/5520459 | |||
colomon | masak++ | ||
FROGGS | masak: ahh, yeah, before that commit there was no interpolation for these cases | ||
pmichaud | note that it also added some eval()s into the process | 14:10 | |
FROGGS | "these cases" is array interpolation and variable assertion... | ||
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. | ||
that's big enough of a difference to be significant. | |||
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 | ||
masak | FROGGS: yeahbut. I haven't changed psyde. | ||
FROGGS: why would your (unrelated) improvements slow down my program? | |||
moritz: sounds rather likely. | |||
FROGGS | no idea, I dont know your program | ||
pmichaud | looking at the commit, I'm suspicious of | 14:12 | |
masak | people told me it'd help to do a --profile. maybe I should do that now, for both those commits. | ||
pmichaud | - QAST::SVal.new( :value('!LITERAL') ), | ||
+ QAST::SVal.new( :value('INTERPOLATE') ), | |||
!LITERAL is fairly fast. INTERPOLATE is slow. | |||
FROGGS | true | ||
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:17 | |
masak | aye. | 14:18 | |
I think I'll do --profile next. | |||
while also looking at source code and seeing how things hang together. | |||
moritz | might be worth looking of .trans does regex interpolation | 14:20 | |
masak | yes, that's a likely suspect. | 14:21 | |
dalek | ecs: 90fffba | (Stéphane Payrard)++ | S02-bits.pod: short forms : @.[], %.{} and &.() |
14:23 | |
pmichaud | oh, this also involves one of my unanswered questions. | 14:24 | |
Pm-20 | |||
github.com/perl6/mu/blob/master/misc/pm.txt#L7 | |||
FROGGS | r: my $x = [<a b c d>]; 'a b c d' ~~ / $x /; | 14:25 | |
camelia | rakudo 540c01: ( no output ) | ||
FROGGS | r: my $x = [<a b c d>]; 'a b c d' ~~ / <$x> /; | ||
camelia | rakudo 540c01: ( no output ) | ||
FROGGS | r: my $x = [<a b c d>]; say 'a b c d' ~~ / $x /; | ||
camelia | rakudo 540c01: OUTPUT«「a」» | ||
pmichaud | FROGGS: yes, I know that's how Rakudo currently implements it. Not sure it's correct. | 14:26 | |
masak | pmichaud: nice! hope that an answer will turn up for that one as part of our investigations :) | 14:29 | |
pmichaud | github.com/perl6/specs/issues/39 | 14:30 | |
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:31 | ||
FROGGS | hmmm, I basically did TDD + reading spec | 14:32 | |
pmichaud | The spec is silent on this. | ||
afaik, there weren't any tests for this case. | |||
FROGGS | that is part of the problem I guess | 14:33 | |
there are/were tests for arrays in regexes and friend | |||
pmichaud | well, the spec might not be silent on it, but it's unclear to my reading. :) | ||
for arrays held in scalar variables? | |||
FROGGS | spec says that / @a / should be treated as an alternation | ||
pmichaud | sure, but this isn't / @a / | ||
this is / $a / | 14:34 | ||
and @ vs $ makes a difference in other parts of the spec | |||
for example | |||
n: my @a = 1..4; for @a { .say } | |||
camelia | niecza v24-38-g20128d7: OUTPUT«1234» | ||
pmichaud | n: my $a = [1..4]; for $a { .say } | ||
camelia | niecza v24-38-g20128d7: OUTPUT«1 2 3 4» | ||
FROGGS | yeah, I see | ||
so we should make clear statements on this in the spec | 14:35 | ||
pmichaud | yes, which is why I wrote the Pm-20 question three years ago. :-P | 14:36 | |
FROGGS | :o) | ||
pmichaud | I'll add issues for the other unanswered questions in that file, I guess. | 14:37 | |
(and make sure they've not been answered somewhere else) | |||
14:37
Guest35673 left
14:38
ajr joined
|
|||
pmichaud | oh, Pm-23 was discussed recently. I don't remember the outcome. | 14:38 | |
14:38
ajr is now known as Guest41769
|
|||
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 | |
s/and/or/ | |||
FROGGS | ya, the question is: what is the default, and how to specify the opposite | 14:40 | |
masak | I believe the outcome was confusion. | ||
pmichaud | that matches my recollection as well. | ||
I can create an issue for it. I might be able to find the discussion in the irclogs also | |||
14:40
LlamaRider joined
|
|||
pmichaud | found it, I think. | 14:41 | |
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 | ||
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. | ||
FROGGS | masak: I commented to your gist | 14:43 | |
colomon | pmichaud: 80% sure means you're just making a (very educated) guess. :) | ||
pmichaud | colomon: and that statement would be 100% accurate. :) | ||
FROGGS | pmichaud: I changed that back and no spectest fail... | ||
I'm really sure why I did that at that time :/ | 14:44 | ||
s/really/not/ | |||
-.- | |||
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
frdmn left
|
|||
FROGGS | r: my @a = 1..3; say "123" ~~ / "@a" / | 14:44 | |
camelia | rakudo 540c01: OUTPUT«Nil» | ||
pmichaud | r: my @a = 1..3; say "1 2 3" ~~ / "@a" / | 14:45 | |
camelia | rakudo 540c01: OUTPUT«Nil» | ||
moritz | r: my @a = 1..3; say "123" ~~ / "@a[]" / | ||
camelia | rakudo 540c01: OUTPUT«Nil» | ||
moritz | r: my @a = 1..3; say "123" ~~ / @a / | ||
camelia | rakudo 540c01: OUTPUT«「1」» | ||
pmichaud | r: my @a = 1..3; say "1 2 3" ~~ / "@a[]" / | ||
camelia | rakudo 540c01: OUTPUT«「1 2 3」» | ||
pmichaud | \o/ | ||
FROGGS | okay | ||
moritz | pmichaud: (unrelated, but also of interest, IMHO): irclog.perlgeek.de/perl6/2013-05-06#i_7023183 | ||
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' | ||
pmichaud | once again the Nil changes fundamentally affect list-handling design (sigh) | 14:47 | |
FROGGS: what still works locally....? | |||
FROGGS | r: my @a = 1..3; say "1 2 3" ~~ / "@a[]" / | ||
camelia | rakudo 540c01: OUTPUT«「1 2 3」» | ||
FROGGS | this | ||
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? | ||
colomon | cognominal: Z | ||
pmichaud | cognominal: depends on the values | ||
xx would do it, too. | 14:49 | ||
colomon | rn: say ((1, 1, 1... *) Z (5, 5, 5 ... *))[^10] | ||
moritz | r: say (<a b> xx *)[^10] | ||
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» | ||
rakudo 540c01: OUTPUT«a b a b a b a b a b a b a b a b a b a b» | |||
colomon | xx would be more elegant, too. | ||
cognominal | xx does not do it | ||
moritz++ | |||
colomon | errr.... but .flat | ||
moritz | r: say (<a b> xx *).list[^10] | ||
camelia | rakudo 540c01: OUTPUT«a b a b a b a b a b a b a b a b a b a b» | ||
colomon | ? | ||
moritz | r: say (<a b> xx *).flat[^10] | 14:50 | |
camelia | rakudo 540c01: OUTPUT«a b a b a b a b a b» | ||
moritz | looks righter | ||
colomon++ | |||
colomon | moritz++, pmichaud++ | ||
pmichaud | r: my @a = <a b> xx *; say @a[100..105]; | ||
camelia | rakudo 540c01: OUTPUT«a b a b a b» | ||
cognominal | r: say (<a b> xx *).list[^10].perl | ||
camelia | rakudo 540c01: OUTPUT«(("a", "b"), ("a", "b"), ("a", "b"), ("a", "b"), ("a", "b"), ("a", "b"), ("a", "b"), ("a", "b"), ("a", "b"), ("a", "b"))» | ||
pmichaud | cognominal: you have to flatten the result. | ||
.list doesn't flatten. | |||
cognominal | ok, thx | 14:51 | |
pmichaud | FROGGS: / "@a[]" / gets handled by token metachar:sym<"> { <?["]> <quote=.LANG('MAIN','quote')> } | ||
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 | ||
* argument | |||
pmichaud | that's why switching to !LITERAL doesn't have any impact on "..." expressions in a regex. | ||
FROGGS | there is a method metachar:sym<">($/) { self.rxquote($/) } in rakudo's Perl6::RegexActions too | ||
err | |||
pmichaud | right, metachar:sym<"> is the action corresponding to the parse rule I gave above. | 14:53 | |
FROGGS | ya, just seen that 'token' | ||
pmichaud | ...is it calling INTERPOLATE too? | ||
AIIIIIIIIIIIGH! | |||
FROGGS | the action-method is calling INTERPOLATE | ||
pmichaud | yes | ||
and that's ... bad. | |||
FROGGS | which is not what we want, ehh? | 14:54 | |
yeah :/ | |||
pmichaud | INTERPOLATE is slow-slow-slow. | ||
Calling INTERPOLATE here means that every quoted regex ends up going through interpolate :-( | |||
masak | oh, so I only have to look for quoted regexes? | ||
goodie. | |||
pmichaud | well, quoted regexes that don't resolve at compile time, it appears. | 14:55 | |
"abc" should still be fast. | |||
FROGGS | let me rerun the spectest suite and then I'll revert that bit ... | ||
14:55
araujo left
|
|||
pmichaud | "$x" is going through INTERPOLATE, when it should be !LITERAL | 14:55 | |
masak | sounds like a potentially easy fix, anyway. | 14:56 | |
cognominal | (<a> xx *) Z (<b> xx *) # apparently not lazy. hangs on my system | ||
FROGGS | masak: I've attached the diff if you wnat to test now | ||
want* | 14:57 | ||
moritz | r: say ((<a> xx *) Z (<b> xx *))[^5[ | ||
camelia | rakudo 540c01: OUTPUT«===SORRY!===Unable to parse expression in subscript; couldn't find final ']'at /tmp/_ZNqZcVytS:1------> say ((<a> xx *) Z (<b> xx *))[^5[⏏<EOL> expecting any of: postfix subscript semicolon list»… | ||
moritz | r: say ((<a> xx *) Z (<b> xx *))[^5] | ||
camelia | rakudo 540c01: OUTPUT«a b a b a b a b a b» | ||
masak | in the middle of profiling, but I'll test right after that. | ||
14:57
araujo joined
|
|||
FROGGS | cool | 14:57 | |
moritz | cognominal: let me guess, you run it the REPL? | ||
cognominal | yup | ||
moritz | cognominal: the REPLY tries to stringify the return value, which is an eager operation | ||
*REPL | |||
cognominal | indeed | 14:58 | |
pmichaud | ohhhh! | ||
cognominal | not the first time, I get caught on that one | ||
pmichaud | the INTERPOLATE->!LITERAL switch is exactly the one I mentioned when this all started. | ||
I didn't realize that was in :sym<"> and :sym<'> | |||
I thought it was in :sym<rakvar> | 14:59 | ||
colomon | rn: say Nil.perl | ||
camelia | rakudo 540c01, niecza v24-38-g20128d7: OUTPUT«Nil» | ||
colomon | rn: say Nil === Nil | ||
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… | ||
..rakudo 540c01: OUTPUT«True» | |||
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 | ||
camelia | rakudo 540c01: OUTPUT«===SORRY!===Undeclared name: Mississippi used at line 1» | ||
..niecza v24-38-g20128d7: OUTPUT«===SORRY!===Undeclared name: 'Mississippi' used at line 1Unhandled 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 … | |||
pmichaud | nwc10: it's possible but I don't think likely. | 15:01 | |
FROGGS | r: my $a = 'a+b'; say 'aab' ~~ / "$a" / | ||
camelia | rakudo 540c01: OUTPUT«Nil» | ||
15:01
kbenson joined
|
|||
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 | ||
and in this case, it's calling INTERPOLATE with the "evaluate as literal" option. | |||
FROGGS | r: my $a = 'a+b'; say 'aab' ~~ / <"$a"> / # this | 15:02 | |
camelia | rakudo 540c01: OUTPUT«===SORRY!===Unrecognized regex metacharacter < (must be quoted to match literally)at /tmp/lk9hBe3xWU:1------> my $a = 'a+b'; say 'aab' ~~ / <⏏"$a"> / # thisUnable to parse regex; couldn't find final '/'at /tmp/lk9hBe3xWU:1… | ||
FROGGS | err | ||
r: my $a = 'a+b'; say 'aab' ~~ / <$a> / # this | |||
camelia | rakudo 540c01: OUTPUT«「aab」» | ||
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 | ||
pmichaud | in fact, I wonder if INTERPOLATE would be better written as a multimethod. | ||
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 | ||
but, a multimethod (done right) would let the compiler figure that out for itself? | 15:05 | ||
dalek | ecza: b7c22a6 | (Solomon Foster)++ | t/spectest.data: Turn off nil.t altogether until I can get Nil working better. |
||
FROGGS | pmichaud: is this test invalid? github.com/perl6/roast/blob/master...tvar.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. | ||
moritz | r: '' ~~ / <:L> / | ||
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» | ||
moritz | anyone want to submit that one? I can't reach my smtp server right now :( | 15:07 | |
it's what makes worcase() blow up | |||
15:08
Targen joined
|
|||
dalek | ast: 4df081a | (Solomon Foster)++ | S02-types/declare.t: Fudge for niecza. |
15:08 | |
ast: 4080bec | (Solomon Foster)++ | S03-operators/context.t: Fudge for niecza. |
|||
FROGGS | moritz: done | 15:09 | |
pmichaud | FROGGS: I think that test is invalid, yes. | ||
FROGGS | k | ||
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:------> my @a = <a b c d>; say 'c' ~~ / @a⏏[0] /;Nil» | ||
pmichaud | hrm. | ||
std: my @a = <a b c d>; say 'c' ~~ / @a[0] /; | |||
camelia | std b33d8e0: OUTPUT«Potential difficulties: Apparent subscript will be treated as regex at /tmp/sHEMe4Iw6z line 1:------> my @a = <a b c d>; say 'c' ~~ / @a⏏[0] /; [0] appears to be an old-school character class; please use <[0]> if you mean a character cla… | ||
pmichaud | well, I don't know then. | 15:11 | |
S05:1277 confuses the issue. | |||
moritz | FROGGS: thanks | 15:12 | |
pmichaud | / [ @cmds[0] | @cmds[1] | @cmds[2] | ... ] / | ||
FROGGS | true, this isnt right | ||
pmichaud | S05:1277 seems to think that @cmds[0] is a subscript | 15:13 | |
STD.pm6 seems to think that [0] is a single-character regex | |||
time for another issue filing... :-) | |||
FROGGS | I think there was a discussion with TimToady, and STD is right on that | ||
pmichaud | if we could find that discussion, it'd be helpful. | 15:14 | |
I'll put a note in the issues though to update S05 | |||
FROGGS | this should be the way to do it: / [$(@cmds[0]) | $(@cmds[1]) | $(@cmds[2]) | ... ] / | ||
will search for the discussion | |||
geekosaur | that somehow seems LTA | 15:15 | |
moritz | it does | ||
pmichaud | well, the real way to do it is / @cmds / | ||
moritz | but you sometimes do want to access array elements | ||
15:15
kivutar left
|
|||
FROGGS | if you want all elements, yes | 15:15 | |
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 | ||
moritz | more to the point, it seems very weird to have different interpolation rules between regexes and double-quote strings | ||
FROGGS: and what's the problem with that? | |||
FROGGS | <a> is a regex rule? | ||
so is % | |||
moritz | but %hash<a> is a longer token than % | 15:17 | |
we have lots of cases everywhere in the language where a prefix of something is also valid syntax on its own | |||
FROGGS | irclog.perlgeek.de/perl6/2013-02-23#i_6490881 | 15:18 | |
15:18
gaussblurinc joined,
gaussblurinc_ left
|
|||
pmichaud | std: / [ @cmds[0] | @cmds[1] | @cmds[2] | ... ] / | 15:19 | |
camelia | std b33d8e0: OUTPUT«===SORRY!===Variable @cmds is not predeclared at /tmp/Ywz31PC_Mi line 1:------> / [ ⏏@cmds[0] | @cmds[1] | @cmds[2] | ... ] /Variable @cmds is not predeclared at /tmp/Ywz31PC_Mi line 1:------> / [ @cmds[0] | ⏏@c… | ||
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:------> my @cmds; / [ @cmds⏏[0] | @cmds[1] | @cmds[2] | ... ] / [0] appears to be an old-school character class; please use <[0]> if you mean… | ||
pmichaud | github.com/perl6/specs/issues/40 | 15:22 | |
15:22
LlamaRider left
|
|||
kresike | bye folks | 15:27 | |
15:27
kresike left
|
|||
pmichaud | github.com/perl6/specs/issues/41 | 15:29 | |
jnthn waves from the airport | |||
15:29
kaleem left
|
|||
moritz waves back | 15:29 | ||
[Coke] | boy are your arms tired. | ||
jnthn | :) | 15:30 | |
15:31
spider-mario joined
|
|||
[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 | |
dalek | : 86ee60e | pmichaud++ | misc/pm.txt: [misc/pm.txt]: Update Pm-20 and Pm-23 with pointers to newly created spec issues. |
15:32 | |
sergot | hi! o/ | 15:33 | |
dalek | kudo/nom: 2696aab | (Tobias Leich)++ | src/Perl6/Actions.nqp: revert to !LITERAL for quotes in regex The interpolation is already handled by the quote language, we dont need to interpolate twice. This might fix a slowdown masak++ discovered. |
||
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. | ||
jnthn | ooh, has the cause of the slowdown beocme apparent? | ||
pmichaud | The only instance I could see of quoting is | ||
for dir('posts', :test( / '.markdown' $ / ))>>.basename -> $markdown_filename { | |||
and that _shouldn't_ be calling either !LITERAL or INTERPOLATE. | 15:35 | ||
oh, and | |||
%info<created> ~~ /(\d\d\d\d) '-' (\d\d) '-' (\d\d)/; | |||
and a few other similar ones. :) | |||
it'd be worth checking if those are being mis-compiled into !LITERAL or !INTERPOLATE calls. | |||
moritz | not Str.trans? | 15:36 | |
pmichaud | I didn't look at .trans specifically to see if it's doing any quoting. | ||
jnthn | '-' *may* be going through !LITERAL but it'd better not be going through !INTERPOLATE... | ||
pmichaud | '-' shouldn't be going through !LITERAL, either. | 15:37 | |
it should be compiled into the regex so that it participates in NFA | |||
jnthn | Ah, yes. | ||
It's "..." that interpolates that needs some special-er handling. | |||
pmichaud | I'm in the middle of a rebuild, will check the code output in a sec. | ||
TimToady | though of course "..." should optimize to '...' when it can | 15:38 | |
pmichaud | TimToady: correct. | ||
there's code in there to do that... I'm just not sure it's working. | |||
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 | |||
jnthn vaguely recalls updating those bits when he re-did quoting. | |||
pmichaud | Str.trans frightens me still. | ||
method rxquote($/) { | 15:39 | ||
my $quote := $<quote>.ast; | |||
if $quote.has_compile_time_value { | |||
my $qast := QAST::Regex.new( :rxtype<literal>, nqp::unbox_s($quote.compile_time_value) ); | |||
jnthn | Hmm | ||
pmichaud | the .has_compile_time_value (should) dtrt if the "..." doesn't involve any string interpolation. | ||
jnthn | I think so. | ||
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)/" | ||
jnthn | Well, it should be a QAST::WVal. | ||
pmichaud | ? | ||
jnthn | Which always gives true to .has_compile_time_value :) | ||
pmichaud | ah. | ||
jnthn | oh, hm...what does that screen sya about my flight... | ||
oh, phew, nothing bad :) | 15:41 | ||
masak | pmichaud, FROGGS and others: github.com/masak/profiles-of-slowness | ||
15:41
fhelmberger left
|
|||
FROGGS | r: say 804610762993 / 150169596476 # ticks with bug / without bug | 15:42 | |
camelia | rakudo 540c01: OUTPUT«5.3580137516158» | ||
jnthn | hoelzro++ # pygments lexer for Perl 6 getting merged | ||
FROGGS | I have to go home now, see you all in a bit... :/ | 15:43 | |
tadzik | see you in a byte :) | ||
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. | ||
camelia | rakudo 540c01: ( no output ) | ||
masak | r: say 804610762993 #`[ticks with bug] / 150169596476 #`[ticks without bug] # might want to print stuff, too. | ||
camelia | rakudo 540c01: OUTPUT«5.3580137516158» | ||
pmichaud | the profile isn't telling me much obvious (because I've forgotten how to set kcachegrind up to read p6 profiles properly) | 15:44 | |
masak | ok. next up: trying FROGGS' fix. | 15:45 | |
jnthn | omg, boarding... | 15:46 | |
& | |||
pmichaud | O M G | 15:48 | |
"Found it!" (I think) | |||
tadzik | o, my boarding | ||
colomon | where's jnthn off to? | ||
colomon is thinking it is early for YAPC::NA.... | |||
15:48
FROGGS[mobile] joined
15:49
xilo joined
|
|||
tadzik | early for PLPW too :) | 15:49 | |
masak | colomon: it's $dayjob-related. | ||
colomon | masak: 'nuf said | ||
15:50
domidumont left
|
|||
masak | pmichaud: listening :) | 15:50 | |
pmichaud | here's where switching INTERPOLATE semantics made the slowdown.... github.com/rakudo/rakudo/blob/nom/...tr.pm#L548 | 15:51 | |
15:51
FROGGS left
|
|||
pmichaud | for constant strings, / $pat: / used to create a nice constant regex. | 15:53 | |
now it creates a bunch of calls to INTERPOLATE | |||
masak | ...and it affects all calls to Str.match, which seems to be fairly central in regex matching. | 15:54 | |
pmichaud | correct. | ||
masak | ah. | ||
colomon | yow | ||
pmichaud | I suspect it can be fixed by doing "$pat": | ||
well, worked-around, anyway. | |||
masak | I will continue to test FROGGS' fix. after that I will try "$pat". | ||
pmichaud | masak: I was just about to suggest that... +1 | 15:55 | |
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. | |||
(assuming that "$pat" solves the timing issue) | 15:56 | ||
I'm afk... kid errand :-/ | 16:03 | ||
masak | *nod* | ||
16:05
DarthGandalf joined
|
|||
Util | rn: say [ 5 ~~ 1..7 ].perl; | 16:24 | |
camelia | rakudo 2696aa, niecza v24-38-g20128d7: OUTPUT«[Bool::True]» | ||
Util | rn: sub day ( Int $dow where {$^n ~~ 1..7} ) { say $dow }; day(5); | ||
camelia | rakudo 2696aa, niecza v24-38-g20128d7: OUTPUT«5» | ||
Util | rn: sub day ( Int $dow where * ~~ 1..7 ) { say $dow }; day(5); | ||
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/… | ||
..rakudo 2696aa: OUTPUT«Constraint type check failed for parameter '$dow' in sub day at /tmp/AjfGczvL3i:1 in block at /tmp/AjfGczvL3i:1» | |||
Util | ??? | 16:25 | |
TimToady | rn: sub day ( Int $dow where 1..7 ) { say $dow }; day(5); | 16:26 | |
camelia | rakudo 2696aa, niecza v24-38-g20128d7: OUTPUT«5» | ||
TimToady | rn: say * ~~ Whatever | 16:28 | |
camelia | rakudo 2696aa, niecza v24-38-g20128d7: OUTPUT«True» | ||
TimToady | arguably * could be forced to closurize on the left even though it doesn't on the right | 16:29 | |
16:29
thou joined,
FROGGS joined
16:30
Guest41769 left
16:35
FROGGS[mobile] left
16:36
FROGGS[mobile] joined
16:39
dmol joined
|
|||
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 / | |||
masak: eh, wasn't talking about that | 16:42 | ||
masak | oh, ok. | ||
TimToady | but I agree, I think | ||
16:47
[particle]1 is now known as [particle]
16:48
rurban left
16:49
rurban joined
|
|||
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:49 | |
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 | ||
likewise / @x / would always be literals, and / <@x> / would always be regex | |||
and if you want to intermix, then you'll have to preprocess the strings in your arrays into regexen | |||
this is one of those place where the semantic fight between the language and the OO-ness is coming out badly | 16:53 | ||
with FP vs OO we made a clean separation between calls to function and calls to methods | |||
here it's not clean | |||
and I think I need to invoke rule 2 on / $x / and / @x / | 16:54 | ||
Util | TimToady, masak: Thanks | 16:56 | |
pmichaud | TimToady: what's the canonical way to "preprocess the strings into regexen"? | ||
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 | ||
and you'd say @$x to mean the other thing | |||
map { Regex ?? $_ !! rx/$_/ }, @array | 16:57 | ||
or some such | |||
pmichaud | ...but based on what you just said, rx/$_/ would be a literal match. | ||
TimToady | um, <$_>, yeah | ||
pmichaud | so, /<$_>/ | ||
which seems icky, because it's actually a regex containing a regex, then. | 16:58 | ||
there's a level of indirection there. | |||
TimToady | yes, but basic idea is to put the onus onto the programmer if they want to mix levels like that | ||
pmichaud | I understand that part, and agree. | ||
I'm thinking we need a better mechanism for "convert a string to a regex" | |||
TimToady | not bake it into regex semantics, which is the same mistake as p5, mixing levels | ||
pmichaud | something like a regex eval. | ||
TimToady | could be | 16:59 | |
Regex(Str) | |||
pmichaud | right now we have code that does eval("regex anon { $x }") which is horrible imo | ||
TimToady | why not just a coercion? | 17:00 | |
pmichaud | I'm fine with doing it as a coercion. | ||
TimToady | I suppose we could try ripping out the multis that introspect there and see what breaks... | ||
17:01
alester joined
|
|||
TimToady | but it feels like one of things we must break regardless | 17:01 | |
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... | ||
probably | |||
17:03
frdmn joined
|
|||
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:03 | |
so while a failed regex returns Nil, I never got to the point of de-listifying it successfully | 17:04 | ||
pmichaud | moritz: ping | ||
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:05 | |
pmichaud | moritz: unping, found the answer to my question. | 17:06 | |
so... empty blocks were changed to return () instead of Nil ? | |||
that feels... wrongish. | |||
TimToady | for list comprehensions and such | 17:07 | |
pmichaud | feels like it should return something that is undefined, though. | ||
masak | rn: say defined () | ||
TimToady | but we've defined what it returns :) | 17:08 | |
camelia | rakudo 2696aa, niecza v24-38-g20128d7: OUTPUT«True» | ||
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:09 | |
pmichaud | the use case I can think of is when someone has created a block that doesn't explicitly return a value. | 17:11 | |
i.e., programmer omission. | |||
I'd like it to signal somehow that the value being returned is a default. I'm not sure that () should be that default. | |||
TimToady | my @list = (if foo {42} elsif bar {} else {43}) for @input | ||
but I suppose one could explicitly return () there | 17:12 | ||
pmichaud | or even just {()} | ||
but yes, I do understand the case of my @list = (if foo {42} elsif bar {43}) for @input | 17:13 | ||
which leaves a hanging else | |||
I'm not sure it makes sense for the unhandled case to simply "disappear" from the input there, though. | |||
I'll defer to the rosettacode master on that, though. | 17:14 | ||
masak | oh, it definitely does make sense for it to disappear. | 17:15 | |
that's what I expect from .map | 17:16 | ||
and I have the same expectations in Perl 5, using for example ? : | |||
TimToady | and a list comprehension is really just a funny map | ||
$_ * 2 if .odd for @list | 17:17 | ||
pmichaud | hmmm. | ||
removing values is something I expect from a .grep :-) :-) | |||
spider-mario | + grep/filter, sometimes | ||
but perl’s flattening of lists allows to implement grep with map | |||
masak | pmichaud: yes, but "one value" in map is just a special case. there can be zero or more values. | ||
spider-mario | :p | ||
pmichaud | $_ * 2 if .odd for @list I can understand. | ||
moritz: in github.com/rakudo/rakudo/commit/39...dabf196dbd (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 | ||
pmichaud | moritz: also, I'm thinking that there should be a constant identifier for () somewhere. | ||
could be Empty :-P | 17:19 | ||
moritz | NotNil :-) | ||
pmichaud | or Parcel::empty | ||
moritz | whatever it is, having the codegen all in one place does help :-) | ||
pmichaud | indeed. | ||
moritz | pmichaud: did you start the pugs-commits mailing list (or group)? | 17:21 | |
pmichaud | yes. | ||
moritz | pmichaud: can you delete it again? | ||
pmichaud | probably. | ||
I already took care of the spammer. | |||
moritz | it draws spam, and zero legitimate traffic | ||
and the pugs commits are all in the Mu repo anyway :-) | |||
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 | |
deleting group. | |||
moritz | pmichaud++ | ||
pmichaud | It's now gone. | ||
There were only about 10 members anyway. | |||
moritz: for Actions.pm, I suggest "return_empty" for now. | 17:25 | ||
moritz | pmichaud: but it's not a return | ||
pmichaud | "value_empty" | ||
"empty_value" | |||
moritz | empty_parcel ? | ||
pmichaud | sure, "empty_parcel" works for now. | 17:26 | |
moritz | or do you want to not have to rename when the semantics change? :-) | ||
pmichaud | yeah, I was trying to think of what we call it when we fall through a block with no explicit end-value | ||
moritz | "default return value" | 17:27 | |
"empty block return value" | |||
ok, empty_value :-) | |||
pmichaud | "but it's not a return" | ||
lizmat | rn: constant Empty=() | ||
moritz | there's a difference between return and return value | ||
camelia | rakudo 2696aa, niecza v24-38-g20128d7: ( no output ) | ||
pmichaud | also, I'm not sure that all of those Nil's that are converted should be converted | ||
moritz neither | |||
lizmat | rn: constant Empty=(); say Empty.WHAT | 17:28 | |
moritz | which is why it's in a branch :-) | ||
camelia | rakudo 2696aa, niecza v24-38-g20128d7: OUTPUT«(Parcel)» | ||
17:29
thou left
|
|||
pmichaud | the downside (or maybe upside) of a symbolic name is that it could be overridden. | 17:29 | |
r: sub foo(\Nil) { }; say foo(4) # curious | 17:30 | ||
camelia | rakudo 2696aa: OUTPUT«4» | ||
pmichaud | :-P | ||
TimToady | o_O | ||
pmichaud | the sub returns Nil :-) | 17:31 | |
which got defined to be "4" | |||
TimToady | reminds me of the patch to P5 that set 'undef' to a random number so it'd be really undefined | ||
pmichaud | r: my \Nil := 4; sub foo() { }; say foo | ||
camelia | rakudo 2696aa: OUTPUT«4» | ||
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 (). | ||
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 | ||
TimToady | r: my \Nil := (); say Nil.perl | ||
camelia | rakudo 2696aa: OUTPUT«()» | ||
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
daxim left
|
|||
TimToady | the seems saner | 17:33 | |
*that | |||
pmichaud | always an empty parcel is certainly safer as the initial position. | 17:34 | |
can add a symbol later if needed... hard to go the other way. | |||
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
|
|||
TimToady | and hence, really a circularity saw issue at some level | 17:35 | |
17:37
Chillance joined
|
|||
jnthn | Rakudo looks up the symbols it needs lexically, which means (for better or worse) than you can override pretty much anything :) | 17:39 | |
finland++ # free wifi at airports | |||
nwc10 | Portland has free wifi too | 17:45 | |
IIRC so do Vienna and Bratislava, and neither match /land$/ | 17:46 | ||
jnthn | Yes, Vienna and Blava indeed do. Or did when I lived there. It was nice. :) | 17:49 | |
17:55
ilogger2 joined,
ChanServ sets mode: +v ilogger2
|
|||
dalek | ecs: f252dce | larry++ | S05-regex.pod: remove eval-level confusion from / $x / and / @x / |
17:55 | |
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 | |
and there needs to be a bit of fiddling with aspect ratio, otherwise it will be crammed together in the middle of the picture | |||
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:01 | ||
arnsholt | You can set size in gnuplot with the set term command | 18:05 | |
And if you want them on the same scale, you'll probably have to set xrange/yrange explicitly | |||
moritz | timotimo: set yrange | ||
18:06
lustlife joined
|
|||
timotimo | good point | 18:07 | |
arnsholt: in my code you'll see that i did already set the size with the "set term" command :) | |||
arnsholt | I'll shut up then =) | 18:09 | |
18:09
thou joined
|
|||
arnsholt | I must admit I skimmed the gnuplot commands | 18:09 | |
flussence | I've done some stuff with gnuplot... feel free to steal any useful bits you see in github.com/flussence/specgraphs | 18:15 | |
18:15
supernovus joined
|
|||
sergot | does P6LIB="" still work? | 18:16 | |
moritz | PERL6LIB=. | ||
sergot | moritz++ thanks | ||
jnthn | $flight.next(); & | 18:17 | |
dalek | ast: 37df68b | larry++ | S05-metasyntax/litvar.t: bring regex var matching in line with new spec |
18:22 | |
18:25
ajr joined,
ajr is now known as Guest67138
|
|||
TimToady | .oO("Make that bad dwim go away!") |
18:32 | |
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:34 | |
sergot | Can I return matching token after parsing, in grammars? | 18:36 | |
I mean: | |||
grammar { token a {}; method hm() { return a } } ? | |||
Something like that. | |||
arnsholt | No, don't do that | ||
Or, actually that can work | |||
sergot | I wanted access to tokens by .token_name | ||
arnsholt | But a takes some implementation-specific arguments | 18:37 | |
(IIRC) | |||
If you look at Rakudo's grammar there are some methods that are used in parsing | |||
sergot | my $r = $gram.parse(...); say $r.my_super_token; | ||
arnsholt | It's NQP, but you might be able to use the concepts the same way in Perl 6 | ||
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.) | ||
sergot | arnsholt++ ill see | ||
18:38
domidumont joined
|
|||
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? :) | ||
arnsholt | sergot: It might be easier to help if you explained what general problem you're trying to solve | ||
sergot | I don't want <> :) | 18:39 | |
pmichaud | might be able to mixin a role that does what you want. | ||
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» | ||
pmichaud | r: my $m = '3b2' ~~ / <alpha> /; my $x = $m but role { method alpha() { self<alpha> } }; say $x.alpha # maybe #2 | ||
camelia | rakudo 2696aa: OUTPUT«「b」» | ||
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 | |
Not in LWP::UA, but in HTTP::Response. | |||
Is it possible? | |||
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:43 | |
18:45
daxim joined
|
|||
sergot | pmichaud: here is my LWP::UA: github.com/sergot/lwp-useragent | 18:45 | |
pmichaud: it's just a draft. | 18:46 | ||
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:47 | ||
Not my, it works so in p5. :) | 18:48 | ||
pmichaud | I suspect you don't want HTTP::Response to be the grammar. | 18:49 | |
at least, not if that's what comes back from $ua.get("URL") | |||
I wouldn't expect to get a Grammar back from .get("URL") | |||
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 | ||
sergot | pmichaud++: You're right! \o/ Thank You! | ||
[Coke] | ugh. news.perlfoundation.org/mt/mt-searc...p;limit=20 looks horrible in my browser. | 18:52 | |
moritz | [Coke]: blue background all over? | 18:53 | |
my first guess would be an unclose <a> tag or so | |||
sergot | moritz: I've so. | ||
lizmat | same in Safari, error console only murmurs something about Twitter widgets being deprecated | ||
dalek | ecs: 1f34173 | larry++ | S05-regex.pod: distinguish .subparse from .parse |
18:55 | |
[Coke] | lizmat: I just emailed the webmaster about the twitter thing. | ||
colomon | specs: 1f34173 -- oooo, interesting! | 18:56 | |
[Coke] | and since it's not just me, emailed them on the search results also. | 18:57 | |
FROGGS | ohh, .subparse # TimToady++ | 18:58 | |
I like it | |||
pmichaud | TimToady: fwiw, if you say "Closes #41" or "Fixes #41" in the commit message, it'll automatically close the GitHub issue. | 19:03 | |
(and reference the commit) | |||
FROGGS | ohh, cool | ||
TimToady | I keep forgetting :) | 19:04 | |
pmichaud | no problem, I just closed it manually :) | ||
FROGGS | githubs magic feels a bit perly | ||
TimToady | I even thought of it between the two spec commits, and then forgot again :) | ||
pmichaud | heh | ||
TimToady | prn: rx/foo/.Str.say | 19:06 | |
camelia | niecza v24-38-g20128d7: OUTPUT«Regex()<instance>» | ||
..pugs: OUTPUT«<Regex>» | |||
..rakudo 2696aa: OUTPUT«» | |||
TimToady | prn: rx/foo/.say | 19:07 | |
camelia | pugs: OUTPUT«<Regex>» | ||
..niecza v24-38-g20128d7: OUTPUT«regex ANON(Any \self) { ... }» | |||
..rakudo 2696aa: OUTPUT«» | |||
TimToady | prn: rx/foo/.Str.perl.say | 19:08 | |
camelia | pugs: OUTPUT«"<Regex>"» | ||
..niecza v24-38-g20128d7: OUTPUT«"Regex()<instance>"» | |||
..rakudo 2696aa: OUTPUT«""» | |||
TimToady | r: rx/foo/.Str.WHAT.say | 19:09 | |
camelia | rakudo 2696aa: OUTPUT«(Str)» | ||
sergot | pmichaud: Could you take a look now? | 19:10 | |
TimToady | returning '' from rx/foo/.Str seems wrongishish | ||
sergot | pmichaud: I did as you said, I think. :) | ||
colomon | rn: my $match = 'abd' ~~ m/ (a) (b) c || (\w) b d /; say $match.perl | ||
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("", (), ))» | ||
..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)>» | |||
sergot | pmichaud: github.com/sergot/lwp-useragent | ||
masak | FROGGS: unfortunately, the partial revert didn't seem to speed things up: gist.github.com/masak/5520459#file...esults-txt | 19:13 | |
trying pmichaud's proposed patch now. | |||
FROGGS | masak: k, :o( | ||
pmichaud | yes, I suspect it's the variable interpolation one. | ||
should we go through a release cycle and deprecation notice before updating to the new spec? | |||
dalek | ast: 69dfa1d | (Solomon Foster)++ | S05-match/capturing-contexts.t: Fix / fudge for Niecza. |
||
masak | TimToady: just backlogged over coerce/bailisick. agree fully. | 19:14 | |
lizmat: which means that you have everyone's blessing to unspec 3 ~~ Day :) | |||
moritz | but then we have UNSPECCED behavior :-) | 19:17 | |
TimToady wonders if .ACCEPTS on a coercion type should automatically check for a defined result | |||
dalek | ecs: f06441c | (Elizabeth Mattijsen)++ | S02-bits.pod: Fix problem in comment of wrong example |
||
TimToady | 3 ~~ Day() is easier to write than 3 ~~ Day().defined | ||
19:18
SmokeMachine joined
19:19
japhb_ joined
|
|||
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… | ||
..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» | |||
moritz | I think that'd need to be Day($_) | ||
19:22
supernovus left
|
|||
lizmat | feel more like a multi-method with a no parameter signature needs to be generated ? | 19:22 | |
*multi-sub | |||
moritz | wihch returns a magical object, which, when smart-matched against, coerces? | ||
sounds like ETOOCUTE, ETOOMUCHMAGIC | |||
lizmat feels a lot like the wizard's apprentice | 19:23 | ||
sergot | r: "\n" ~~ /./; | ||
camelia | rakudo 2696aa: ( no output ) | ||
sergot | r: say $1 if "\n" ~~ /(.)/; | ||
camelia | rakudo 2696aa: OUTPUT«(Any)» | ||
sergot | r: say 1 if "\n" ~~ /(.)/; | 19:24 | |
camelia | rakudo 2696aa: OUTPUT«1» | ||
sergot | r: say 1 if "\n" ~~ /./; | ||
camelia | rakudo 2696aa: OUTPUT«1» | ||
sergot | r: say 1 if "\r" ~~ /./; | ||
camelia | rakudo 2696aa: OUTPUT«1» | ||
19:26
[particle] joined
|
|||
lizmat | masak: feels like unspeccing at this point is not the right thing to do. Maybe mark them as TBD instead? | 19:28 | |
19:28
domidumont left
|
|||
pmichaud | r: my enum Day <Sun Mon Tue Wed Thu Fri Sat>; say Day(3).defined | 19:30 | |
camelia | rakudo 2696aa: OUTPUT«True» | ||
pmichaud | r: my enum Day <Sun Mon Tue Wed Thu Fri Sat>; say Day(8).defined | ||
camelia | rakudo 2696aa: OUTPUT«False» | ||
pmichaud | r: my enum Day <Sun Mon Tue Wed Thu Fri Sat>; say 3 ~~ Day($_) | 19:31 | |
camelia | rakudo 2696aa: OUTPUT«True» | ||
pmichaud | r: my enum Day <Sun Mon Tue Wed Thu Fri Sat>; say 8 ~~ Day($_) | ||
camelia | rakudo 2696aa: OUTPUT«False» | ||
masak | lizmat: no, I actually think that 3 ~~ Day is insane. | ||
pmichaud | I think that 3 ~~ Day is wrong also. 3 is an Int. | 19:32 | |
and | |||
r: my enum Day <Sun Mon Tue Wed Thu Fri Sat>; say Int ~~ Day | |||
camelia | rakudo 2696aa: OUTPUT«False» | ||
lizmat | r: my enum Day <Sun Mon Tue Wed Thu Fri Sat>; say Day ~~ Int | 19:33 | |
camelia | rakudo 2696aa: OUTPUT«True» | ||
colomon | rn: say ((1 => 2) => 3).perl | ||
lizmat | r: my enum Day <Sun Mon Tue Wed Thu Fri Sat>; say Day ~~ 3 | ||
camelia | niecza v24-38-g20128d7: OUTPUT«1 => 2 => 3» | ||
..rakudo 2696aa: OUTPUT«(1 => 2) => 3» | 19:34 | ||
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… | |||
masak | good news, performance-wise: gist.github.com/masak/5520459#file...esults-txt | ||
colomon | rn: say ((1) => 3).perl | ||
camelia | rakudo 2696aa, niecza v24-38-g20128d7: OUTPUT«1 => 3» | ||
masak | I'll run spectests. and then maybe commit. | ||
pmichaud | masak: is that after the "$pat" commit ? | 19:36 | |
masak | yes. | ||
lizmat | pmichaud: I don't understand where the topic gets set in "say 3 ~~ Day($_)" | ||
pmichaud | once again a masak++ has found a hole in the cheese. :) | ||
lizmat: smartmatching sets a topic | 19:37 | ||
moritz | r: 42 ~~ .say | ||
lizmat | ah, ok, so maybe I should put "3 ~~ Day($_)" instead of "3 ~~ Day" in the spec? | ||
camelia | rakudo 2696aa: OUTPUT«42» | ||
masak | lizmat: sounds sane. | 19:38 | |
pmichaud | r: say 42 ~~ * / 2; | ||
camelia | rakudo 2696aa: OUTPUT«21» | ||
lizmat | otoh, isn't saying that more or less the same as 1 ~~ 1 ? | ||
masak | r: my enum Day <Sun Mon Tue Wed Thu Fri Sat>; say 3 ~~ Day(3); say 3 ~~ Day(5) | ||
camelia | rakudo 2696aa: OUTPUT«TrueFalse» | ||
pmichaud | lizmat: yes, I suspect it is. | ||
r: my enum Day <Sun Mon Tue Wed Thu Fri Sat>; say Day(3) | |||
camelia | rakudo 2696aa: OUTPUT«Wed» | ||
masak | r: my enum Day <Sun Mon Tue Wed Thu Fri Sat>; say 9 ~~ Day(9) | 19:39 | |
camelia | rakudo 2696aa: OUTPUT«False» | ||
masak | no, it isn't. | ||
see above. | |||
pmichaud | r: my enum Day <Sun Mon Tue Wed Thu Fri Sat>; say Day(8) | ||
camelia | rakudo 2696aa: OUTPUT«(Day)» | ||
lizmat | ok, so for checking whether in range, it would make sense. gotcha | ||
masak | yeah. | ||
which was what the original/current spec line is about, after all. | |||
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 | |
timotimo: do you have any idea how to change that? | |||
never mind, I found 'set rmargin 0' and 'set lmargin 0' | 19:43 | ||
dalek | ecs: bff6266 | (Elizabeth Mattijsen)++ | S12-objects.pod: After much deliberation it was decided that matching ints against enumeration of doing this using the topic as set by the smartmatch. Closes #117875. |
19:46 | |
[Coke] | note that "Closes" completely does not work on RTs. | 19:48 | |
dalek | ecza: 31f36d2 | (Solomon Foster)++ | lib/CORE.setting: Fix Pair.perl to properly handle the case where the key is a Pair. Fixes #167. |
||
[Coke] | also, we should probably be using git-style commit messages. | ||
(with a short first line) | |||
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 :-) | ||
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 | ||
pmichaud | if so, then I've been practicing for months and failing. | ||
moritz | well, it might be also a question of priorities | ||
pmichaud | I am being quite literal when I say that I think "short first line" on *every* commit. | ||
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. github.com/rakudo/rakudo/commit/80...e96f2dd19b - putting a line break before the We would be fine here. | ||
pmichaud | [Coke]: fair enough, that's a good example. | ||
moritz | like 'fix over-backtracking over captures' without going into the details when that bug occurred, or how it was fixed | ||
that can go into the subsequent lines | 19:53 | ||
pmichaud | "fix over-backtracking over captures" doesn't seem specific enough to me, though. | ||
I'd at least want to know what kind of captures. | |||
[Coke] | pmichaud: then you'd read the rest of the commit message. | ||
moritz | what [Coke]++ said | ||
19:53
Moukeddar joined
|
|||
pmichaud | I mean in a summary line. | 19:53 | |
masak | Moukeddar! \o/ | ||
pmichaud | anyway, I'll try harder then. | 19:54 | |
Moukeddar | Hello guys , and Hello masak \o/ | ||
masak | usually I find that good first commit likes are on the form "<verb> <object>", with <object> simply being specific enough. | ||
moritz | pmichaud: that's what I meant by "a question of priorities" | ||
Moukeddar | i miss here | ||
masak | Moukeddar: welcome back! | ||
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. | ||
moritz | pmichaud: either you give short lines the first priority, or specificity | ||
masak | pmichaud: ooc, do you have the same issue with email subject lines? | ||
(honest question) | 19:55 | ||
lizmat | [Coke]: well, it shows intent :-) | ||
masak | because that, in some sense, is what the first line of a commit message is. | ||
[Coke] | lizmat: fair enough! | ||
masak | when the commit gets format-patch'ed, the first line becomes the subject line of the patch email. | ||
pmichaud | masak: I have trouble finding things based on overly short subject lines, yes. | ||
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. | ||
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 | |
anyway, I have an example | |||
moritz | in other news I now have small images showing the activity of IRC channels | ||
... but not enough time to integrate them into the website today :( | |||
pmichaud | github.com/perl6/nqp/commit/e3b8ef...44cde73bb2 | ||
lizmat will use short lines in the future | |||
pmichaud | github.com/perl6/nqp/commit/b48b5c...e49842fac4 | 19:58 | |
nwc10 | moritz: cool | ||
masak | pmichaud: solution: "fix RT #117831" | ||
pmichaud | oh, that's just about the worse subject line I can imagine. | ||
colomon | masak: ugh | ||
pmichaud | *worst | ||
it says nothing about what the commit is about. | |||
masak | ok, trying again. :) | ||
moritz | pmichaud: "P6Regex: fix capturing on the right of +%" | 19:59 | |
or s/right/RHS/ if you prefer | |||
masak | "fix behavior of RHS of +% in regexes" | ||
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 | ||
moritz | or "fix capturing of +% separator" | ||
sergot | ugh, can IO::Socket connect to host using url? | 20:00 | |
pmichaud | moritz: those work for me. | ||
as I said, I'll try harder. | |||
moritz | sergot: not URL, just domain names und IPs | ||
[Coke] | P6Rgex: <alpha>+% now captures multiple <seps> | ||
pmichaud | otoh, I don't know how many tuits you all want me spending on commit messages. | ||
[Coke] | not that many, no. | 20:01 | |
masak | pmichaud: it quickly becomes automatic. | ||
moritz | not too much; just saying it's possible | ||
sergot | moritz: so host => 'google.pl' should work? | ||
pmichaud | masak: as I said, I think about this stuff on each commit and it hasn't been automatic for me yet. | ||
moritz | sergot: yes | ||
pmichaud | so, it may be "automatic" for others, but the automatic-ness hasn't hit me yet. | ||
masak | :/ | ||
moritz | moritz.faui2k3.org/tmp/irc-activity/ fwiw | ||
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. | ||
as I said, when I get stuck I'll ping the channel :) | |||
moritz | and specifically for this channel, moritz.faui2k3.org/tmp/irc-activity/perl6.png | ||
sergot | moritz: I tried so, and I had some problems. | ||
moritz: oh, I have an idea, will try. | |||
masak | Moukeddar: nice! | ||
moritz | sergot: did they go away when you substituted the host name with IP? | 20:03 | |
masak | er, moritz: nice! | ||
moritz | sergot: that's an easy way to check if host names are the problem | ||
pmichaud | Does the "short commit" also have an 80 character limit on it, ooc? | ||
github.com/perl6/nqp/commit/b48b5c...e49842fac4 looks like I got bit by an 80-column limit, too. | 20:04 | ||
(I did summarize that one into one line, just not one short-enough line :) | |||
20:05
fgomez joined
|
|||
pmichaud | probably needed to omit the "instead of a list quantifier" part of the message. | 20:05 | |
20:09
domidumont joined
|
|||
masak | pmichaud: subject line has a (soft) limit at 50 chars. body lines have a (soft) limit at 72 chars. | 20:10 | |
pmichaud | oooh, 50 is short. | 20:13 | |
even tweets are longer :-P | 20:14 | ||
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 | |
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. | |||
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 | ||
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" | ||
masak | right. | ||
dalek | ast: e0f6b87 | (Solomon Foster)++ | S16-filehandles/io.t: Refudge for Niecza. |
||
pmichaud | Besides, part of the reason is use Perl is because I don't like arbitrary limits. :-) :-) | ||
masak | yeah, it's a very Perlish notion. | 20:18 | |
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?" | |||
(which is actively used by git-format-patch and git-am) | 20:19 | ||
pmichaud | r: say 768 * .75 | 20:24 | |
camelia | rakudo 2696aa: OUTPUT«576» | ||
pmichaud | r: say 765 * .75 | 20:25 | |
camelia | rakudo 2696aa: OUTPUT«573.75» | ||
20:25
domidumont left
|
|||
masak | the "$pat" patch seems to break a spectest. spectesting without the patch to be sure. | 20:30 | |
20:30
Pleiades` joined
|
|||
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? | ||
lizmat | I find: perl6advent.wordpress.com/2010/12/2...wonderful/ | ||
which gives as an example: | 20:39 | ||
rn: my @unsorted; my @sorted = @unsorted.sort: { .lc }; | |||
camelia | niecza v24-40-g31f36d2: OUTPUT«Potential difficulties: @sorted is declared but not used at /tmp/FeeAAKKvST line 1:------> my @unsorted; my ⏏@sorted = @unsorted.sort: { .lc };» | ||
..rakudo 2696aa: ( no output ) | |||
lizmat | hmmm... | ||
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» | ||
..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… | |||
[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 /… | ||
..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» | |||
[Coke] | (is that the error you were trying to trigger?) | ||
lizmat | Ah, I think I know what the pb is | 20:42 | |
[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 } | ||
camelia | rakudo 2696aa, niecza v24-40-g31f36d2: OUTPUT«a i l m t z» | ||
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… | |||
..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… | |||
lizmat | apparently I need to stringify the Method objects first | ||
[Coke] | before you try to print them out? | 20:45 | |
oh, before you try to sort them alphabetically. | |||
labster | good postnoon, #perl6 | 20:51 | |
From the size of my email inbox, it looks like y'all have gotten a lot of work done today. | 20:52 | ||
dalek | ast: 0149c63 | (Solomon Foster)++ | S12-methods/parallel-dispatch.t: Fudge for Niecza. |
20:54 | |
colomon | rn: "m" ~~ /:i <[M]>/ | 20:56 | |
camelia | rakudo 2696aa, niecza v24-40-g31f36d2: ( no output ) | ||
colomon | rn: say "m" ~~ /:i <[M]>/ | 20:57 | |
camelia | niecza v24-40-g31f36d2: OUTPUT«Nil» | ||
..rakudo 2696aa: OUTPUT«「m」» | |||
colomon | rn: say "m" ~~ /:i <[m]>/ | ||
camelia | rakudo 2696aa, niecza v24-40-g31f36d2: OUTPUT«「m」» | ||
dalek | ast: 2e32d1e | (Solomon Foster)++ | S05-modifier/ignorecase.t: Fudge for Niecza. |
20:59 | |
sergot | github.com/sergot/lwp-useragent it's something! \o/ | 21:00 | |
colomon | \o/ | ||
tadzik | sergot++ | 21:01 | |
I really hope it takes off | 21:02 | ||
LWP::Simple seems more often broken than it's working these days | |||
good to have some fresh bloo^Wcode | |||
21:03
SmokeMachine left
|
|||
sergot | I hope so too. :) | 21:05 | |
21:09
SmokeMachine joined
|
|||
dalek | ast: 835646d | (Solomon Foster)++ | S05-metasyntax/litvar.t: Fudge for Niecza. |
21:09 | |
ecza: 6231d24 | (Solomon Foster)++ | t/spectest.data: Remove any-hash.t, as it no longer exists. |
21:12 | ||
masak | oh, the fix doesn't break any spectests. those two files were already broken on my system. | 21:21 | |
so then I think I can go ahead and submit this fix... | |||
21:23
gaussblurinc_ joined
21:25
snearch joined
|
|||
[Coke] | colomon++ # cleanup | 21:25 | |
colomon | [Coke]: still a ton to go, alas | 21:29 | |
[Coke] | hopefully someone will get rakudo passing before tomorrow. | 21:30 | |
jnthn is home :) | 21:34 | ||
lizmat | welcome home, jnthn! | 21:36 | |
jnthn | Hopefully the tuits will start to trickle again for a while. :) | 21:39 | |
21:40
Guest67138 left
|
|||
sorear | yay jnthn! home is good. | 21:40 | |
timotimo | welcome home jnthn :) | 21:41 | |
jnthn | Yeah, though this month will probably not have the highest density of "home" :) | 21:42 | |
lizmat | oddly enough, for me this month has seen the most of "home" so far of all months this year :-) | 21:45 | |
jnthn | Well, May is the final rush on teaching before the summer sets in. :) | 21:46 | |
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 :-( | ||
jnthn | Well, I kinda like the meatspace aspect of it. | ||
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 ? | ||
jnthn | after-ski? | 21:50 | |
lizmat | beer-time? | 21:51 | |
21:51
kurahaupo joined
|
|||
jnthn | Ah. I tend not to do that much beer while teaching. :) | 21:52 | |
lizmat | I should have said "apres-ski" | ||
many Dutch people go skiing in winter/spring, but mostly for the "apres-ski" | |||
jnthn | .oO( Unless $correct-colleague is in town... :) ) |
||
lizmat | (is my impression anyway) | ||
jnthn has never tried skiing | 21:53 | ||
I really should fix that :) | |||
FROGGS | jnthn: but same like with code: dont break anything ó.ò | 21:54 | |
jnthn | Yes, indeed! :) | ||
.oO( What's the skiing equivalent of spectests? ) |
|||
FROGGS | no idea, never tried it :o) | ||
kurahaupo | slalom poles? | 21:55 | |
dalek | kudo/nom: 9ed5c55 | masak++ | src/core/Str.pm: fix regex interpolation slowdown in matching A recent commit (c255f1d) caused a 10x slowdown in one of my projects. This commit fixes the slowdown without breaking any spectests. This is only a stopgap solution. Something more lasting will also be needed in the regex engine, I think. But it does fix the particular slowness I was experiencing. |
22:01 | |
lizmat | masak++ | 22:02 | |
timotimo | that's an impressively small delta | 22:03 | |
FROGGS | masak++ | ||
masak | pmichaud++ | ||
22:03
lustlife left
|
|||
lizmat can now go to sleep& | 22:04 | ||
jnthn | 'night, lizmat | ||
masak | 'night, lizmat | 22:06 | |
22:12
Moukeddar left
22:16
gaussblurinc_ left
22:17
sjohnson joined
|
|||
sergot | gnight o/ | 22:18 | |
masak | 'night, sergot | 22:20 | |
'night, #perl6 | |||
22:33
skids joined
|
|||
jnthn | labster: t\spec\S32-io\io-path-unix.rakudo seems to hang on Windows. | 22:34 | |
FROGGS | gnight all | ||
diakopter | o/ | ||
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:35 | |
dalek | Heuristic branch merge: pushed 29 commits to rakudo/jvm-support by jnthn | 22:36 | |
lue thought for a second that jnthn said merging jvm-support to nom | 22:39 | ||
jnthn | No :) | 22:44 | |
Just getting the latest stuff from nom, which is about all I have the energy to do tonight. | 22:45 | ||
labster | jnthn: Huh. I'm not actually on windows, so let me know how it's dying. | 22:50 | |
jnthn | labster: It doesn't die, it actually hangs. | 22:58 | |
labster: 1-16 pass, so I guess it's 17. | |||
timotimo | or the output isn't flushed corrctly? | 23:00 | |
jnthn | No | ||
my $relpath = IO::Path::Unix.new('foo/bar' ); say $relpath.absolute | |||
That hangs in the REPL | |||
Or in a file. | 23:01 | ||
can golf it to IO::Path::Unix.new('foo').absolute which also hangs | 23:03 | ||
jnthn needs to get some rest | |||
back tomorrow...'night | 23:04 | ||
diakopter | o/ | ||
cognominal | curiosity pointed by BooK in #perlfr, palindromic url for a palindromic text : graner.net/nicolas/salocin/ten.renarg//:ptth | 23:15 | |
timotimo | sadly the / are not flipped | 23:18 | |
is the text in reverse? ah, no, it's just french ;) | |||
cognominal | It is also a palindrome, you can read it from either end | 23:19 | |
for the /, palindrome are not visual. | |||
timotimo | ah, ok | 23:20 | |
also, i cannot read that from either end ;)) |