»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
00:02 kurahaupo joined
grondilu rn: say <1/3>.Rat; 00:03
p6eval niecza v22-36-g19fa03a: OUTPUT«0.33333333333333331␤»
..rakudo bf472b: OUTPUT«0.333333␤»
grondilu rn: say <1/3>.WHAT;
p6eval niecza v22-36-g19fa03a: OUTPUT«Rat()␤»
..rakudo bf472b: OUTPUT«Str()␤»
00:04 Chillance left
lue colomon: have you checked what nqp -v says? 00:04
colomon lue: no 00:05
I just blew away my rakudo directory and started over from scratch.
lue: rebuild from scratch appears to have worked 00:09
lue Good.
japhb TimToady, it occurred to me while I was out that a simple increase in whitespace might help. Does this look better to you? gist.github.com/4132800 00:12
japhb backlogs to see if someone knew how to colorize a gist 00:13
lue I'm convinced now that the only sane way to do an emacs major mode for P6 is for the major mode to interface with a P6 script that does the real work (getting an emacs regexp to handle multiline comments is near-insane) 00:19
colomon is there still a script out there to do syntax highlighting for p6? I remember using one years ago... 00:20
lue there probably is (my guess the perl6/mu repo), but no clue how outdated it is. 00:21
.oO(The only downside to Perl 6 regexes is having to deal with the non-P6 kinds)
00:22
grondilu What's 'Bridge' in Real.pm? 00:26
oh ok it's documented in .perl6/specs/S32-setting-library/Numeric.pod 00:30
grondilu always forget to use -r option to grep when searching in the doc
00:32 cognominal joined 00:38 wamba left 00:42 sivoais joined 00:44 bowtie left 00:49 lorn joined 00:56 rurban_ left 01:01 ifim left 01:17 hypolin joined, benabik joined
dalek rl6-bench: 07f2717 | (Geoffrey Broadwell)++ | analyze:
Add blank lines between tests in text summary output with style off
01:28
01:31 cognominal left 01:42 fgomez left 01:44 gv left 01:45 benabik left 01:49 cspencer joined 02:02 fgomez joined 02:05 xinming left 02:06 gootle joined 02:10 Entonian joined, Entonian left 02:13 benabik joined 02:38 FROGGS_ joined
lue
.oO(Where *did* the old highlighter go?)
02:42
02:42 FROGGS left 02:47 cognominal joined 02:49 benabik left
colomon lue: it seems to me it was connected to std, maybe it went with it? 02:53
lue ah, yes. There seems to be a std_hilite folder. 02:54
02:54 aindilis left
lue
.oO(STD isn't very useful for parsing the individual files in the rakudo codebase)
02:57
03:04 aindilis joined 03:06 benabik joined 03:07 kurahaupo left 03:09 xinming joined 03:46 rurban_ joined, orafu left, orafu joined 03:54 am0c joined 03:59 rurban_ left 04:05 xinming left 04:07 thou joined 04:30 sirrobert joined
sirrobert r: module A { our %foo = (a => 1, b => 2) }; say %A::foo.perl; 04:32
p6eval rakudo bf472b: OUTPUT«PARROT VM: Could not load bytecode␤unimplemented key type 1␤»
sirrobert How do I create a package-level variable?
(and access it from outside)
sorear n: module A { our %foo = (a => 1, b => 2) }; say %A::foo.perl; 04:33
p6eval niecza v22-36-g19fa03a: OUTPUT«{"a" => 1, "b" => 2}.hash␤»
sirrobert hrm
lue r: say "class Foo \{ ... \}" ~~ /\{<.ws>*"..."<.ws>*\}/
p6eval rakudo bf472b: OUTPUT«PARROT VM: Could not load bytecode␤unimplemented key type 1␤»
lue O.o
sirrobert sorear: I take from that that it just isn't implemented in Rakudo yet?
lue wonders if telling p6eval to recompile rakudo will help 04:34
r: say "Rakudo is alive!";
p6eval rakudo bf472b: OUTPUT«PARROT VM: Could not load bytecode␤unimplemented key type 1␤»
sirrobert ohhh
well, the error I get in rakudo is: No such method 'STORE' for invocant of type 'Any' 04:35
I guess I can work around with classes for now
lue sirrobert: got the same error running it in my rakudo as well. 04:36
sirrobert lue: thanks
lue (the No such method 'STORE' one, of course)
sirrobert I'll do a less-than-correct implementation now that works and fix it later =)
lue: nod 04:37
lue nom: say "nom test"; 04:41
p6eval rakudo bf472b: OUTPUT«PARROT VM: Could not load bytecode␤unimplemented key type 1␤»
lue star: say "star test";
p6eval star 2012.10: OUTPUT«star test␤»
sirrobert star: module A { our %foo = (a => 1, b => 2) }; say %A::foo.perl; 04:42
p6eval star 2012.10: OUTPUT«No such method 'STORE' for invocant of type 'Any'␤ in block at /tmp/YmGWRP3Hr9:1␤␤»
04:54 colomon_ joined, colomon left, colomon_ is now known as colomon 04:59 SamuraiJack joined 05:08 rurban_ joined 05:17 sftp left
grondilu rn: "foo bar" ~~ m:g/ <.alpha>+ /; say $/ 05:20
p6eval niecza v22-36-g19fa03a: OUTPUT«===SORRY!===␤␤Regex modifier g not yet implemented at /tmp/4cB1HrSggW line 1:␤------> "foo bar" ~~ m:g⏏/ <.alpha>+ /; say $/␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1437 (…
..rakudo bf472b: OUTPUT«PARROT VM: Could not load bytecode␤unimplemented key type 1␤»
grondilu star: "foo bar" ~~ m:g/ <.alpha>+ /; say $/
p6eval star 2012.10: OUTPUT«Any()␤»
grondilu star: say "foo bar" ~~ m:g/ <.alpha>+ /; 05:21
p6eval star 2012.10: OUTPUT«False␤»
grondilu star: say "foo bar" ~~ m/ <.alpha>+ /;
p6eval star 2012.10: OUTPUT«「foo」␤␤»
diakopter sum1 broke r? 05:22
05:22 telex left
lue It was working a few hours ago, I'm guessing it broke on its own. 05:23
lue doesn't know the command to force p6eval to recompile rakudo 05:25
05:28 rurban_ left
geekosaur I think in theory it should just be 'evalbot rebuild rakudo' but I don't know if there's separate steps needed for parrot/nqp at this point or not 05:32
05:36 telex joined 05:43 SamuraiJack left 05:44 telex left 05:46 SamuraiJack joined
lue has just thought of a possible idea for the interpretation of / %hash / 05:48
05:53 telex joined, birdwindupbird joined, aaaa joined 05:54 aaaa left 05:55 Kharec joined 06:03 cognominal left
bonsaikitten file parrot-4.10.0.tar.bz2 06:07
parrot-4.10.0.tar.bz2: gzip compressed data
hey, who oopsied that one?! :(
sorear bonsaikitten: #parrot 06:11
lue will ls -l perchance tell you the last owner (besides you)?
sorear according to the blog, 4.10.0 was rurban 06:12
bonsaikitten sorear: since the .tar.gz works I don't care too much
would file a bug if there were a sane bugtracker nearby :\
sorear are the .tar.gz and the .tar.bz2 different? 06:13
what bugtrackers do you consider sane?
bonsaikitten oh, parrot still uses trac, that's tolerable 06:14
it's just github that always keeps me demotivated
lue I think they're using github issues. (looks like it, at least)
bonsaikitten oh, so that is the schizo bugtracker? so my memory was right 06:15
lue What's wrong with issues? I'm just curious is all. 06:17
bonsaikitten lue: well, github is just a generally annoying UI 06:19
06:20 wamba joined
lue on the other hand didn't like gitorious the one time he had to use it for whatever reason. 06:23
bonsaikitten lue: I didn't say it was any better ;) 06:27
lue I know :) . I just thought I'd mention my bad-looking git hosting service. 06:28
06:29 cspencer left 06:35 hypolin left
sorear say, bonsaikitten 06:36
I'm redoing the niecza build system
now would be a great time to make feature requests
moritz wants "make install" 06:42
06:43 cognominal joined
bonsaikitten sorear: if you want to make me really happy ... make it possible to install by package manager (iow, root) and usable without lots of magic by normal users 06:45
sorear: and make the bootstrapping autofetching optional so that an installed older version can be used for that 06:46
apart from that I don't really have any complaints
06:50 hypolin joined 06:57 grondilu left
sorear bonsaikitten: do you want to have to deal with very narrow version compatibility ranges? 07:00
bonsaikitten sorear: I don't care much about that 07:01
as long as it's easy enough to figure out why it doesn't want to build
07:10 GlitchMr joined
tadzik good yawning 07:16
sorear o/ tadzik 07:20
cognominal github.com/perl6/nqp/blob/master/VERSION # 2011.12 ! that must be wrong! 07:27
07:31 Kharec left, Kharec joined 07:51 wamba left 07:54 domidumont joined
masak www.flickr.com/photos/bingosnet/788...1293303096 -- "Live together in perfect harmony 07:56
"
aww :)
08:06 hypolin left
sorear masak: hey, a much better set of pictures of yapc::eu 08:06
sorear finds several of himself, including one in the venue proper 08:07
08:10 nyuszika7h joined 08:11 sirrobert left 08:19 hypolin joined 08:20 brrt joined, domidumont left 08:21 domidumont joined, FROGGS_ left
Su-Shee ever since we're all sparkly code princesses, it'll be ok anyways.. ;) 08:25
good morning everyone.
08:26 cognominal left, cognominal_ joined
tadzik hello 08:34
brrt hi tadzik
08:36 telex left
Su-Shee da dazik is in da house ;) 08:37
08:37 telex joined
Su-Shee +d ;) 08:37
tadzik good I'm not tad sick 08:39
08:39 kaleem joined 08:43 fhelmberger_ joined 08:54 cognominal joined
sorear good morning Su-Shee & tadzik 08:55
08:56 cognominal_ left 08:58 FROGGS joined
Su-Shee tadzik: you're not a tad sick? ;) 08:59
tadzik fortunately, no :) 09:02
jnthn morning o/ 09:03
Su-Shee hello jnthn :)
jnthn r: say "broken?" 09:05
p6eval rakudo bf472b: OUTPUT«PARROT VM: Could not load bytecode␤unimplemented key type 1␤»
jnthn hm, wtf.
FROGGS what the 09:08
just say that I dont was it
tadzik hands FROGGS a coffee 09:09
jnthn um 09:10
NQP has been built and installed.
===SORRY!===
NQP revision 2012.11 required (currently 2011.12).
FROGGS thanks, need one, thats true
I dont get that... 09:11
github.com/perl6/nqp/blob/master/VERSION there is 2012.11 09:12
but reading the backlog someone said there is 2011.12
the tag is right too 09:14
09:16 cognominal left
FROGGS the VERSION file in nqp tarball is ok too 09:18
moritz tries
09:19 integral joined, integral left, integral joined
FROGGS <colomon> lue: rebuild from scratch appears to have worked 09:20
so there is a problem if you just pull the changes
maybe there already was a tag called 2012.11 last december (by accident) ? 09:21
... in nqp branch
09:21 cognominal joined
moritz yes, there was something like that 09:22
and I've deleted that tag
but you need to git fetch --prune to get that 09:23
FROGGS k, that explains it
brrt p6: my $i = 0; $i += $i++;
p6eval rakudo bf472b: OUTPUT«PARROT VM: Could not load bytecode␤unimplemented key type 1␤»
..niecza v22-36-g19fa03a: ( no output )
FROGGS and I didnt noticed because I'm used to make clean pulls before testing and bundling
brrt n: my $i = 0; $i += $i++; say $i;
p6eval niecza v22-36-g19fa03a: OUTPUT«1␤»
FROGGS clean clones I mean
p6: my $i 09:24
p6eval niecza v22-36-g19fa03a: OUTPUT«Potential difficulties:␤ $i is declared but not used at /tmp/u3op5lHJyb line 1:␤------> my ⏏$i␤␤»
..rakudo bf472b: OUTPUT«PARROT VM: Could not load bytecode␤unimplemented key type 1␤»
moritz FROGGS: I don't think there's much you could have done
FROGGS ya, tags are a bit fishy 09:25
moritz dammit, segfault while building src/stage1/QASTNode.pbc 09:26
jnthn Here, it really did check out a very old version of NQP 09:27
09:27 sisar left
moritz jnthn: try git fetch --pruge in nqp 09:28
jnthn purge or prune? :)
moritz yes :-)
prune
09:29 odoacre joined
jnthn hm, something still not quite right...anyway, need to go to $dayjob now that I've got stuff packed for LPW... 09:32
moritz gist.github.com/4134743
jnthn moritz: You sure it's not just a case of the wrong checkout? 09:34
I actually had to git tag -d 2012.11 and pull to get the correct 2012.11 tag... 09:36
09:37 odoacre left
jnthn bbl & 09:38
09:38 cognominal left 09:40 odoacre joined 09:45 cognominal joined
dalek rlito: faef513 | (Flavio S. Glock)++ | / (2 files):
Perlito5 - command line compiler - catch internal errors
09:50
09:53 GlitchMr left 09:54 thou left 09:55 cognominal left, integral left 09:56 integral joined, integral left, integral joined 10:04 cognominal joined 10:05 sisar joined 10:12 sqirrel joined 10:16 cognominal left 10:17 hypolin left
dalek rlito: 574d226 | (Flavio S. Glock)++ | / (6 files):
Perlito5 - js - fix context in chained method calls
10:18
10:18 brrt left 10:22 cognominal joined, wamba joined 10:33 integral left 10:40 integral joined, integral left, integral joined 10:50 gv joined 10:54 wamba left 10:58 tokuhiro_ left, tokuhiro_ joined 11:05 Su-Shee_ joined 11:09 Su-Shee left 11:19 cognominal left
FROGGS moritz: who cares about the smolder machine? 11:43
we need to repair the nqp tags there too
moritz FROGGS: no idea 11:46
FROGGS: everybody can submit reports to smolder 11:48
make spectest_smolder
jnthn r: say "works yet?" 11:51
p6eval rakudo bf472b: OUTPUT«PARROT VM: Could not load bytecode␤unimplemented key type 1␤»
moritz oh, I should take care of that I suppose 11:52
jnthn hopes it's just deleting the old tag and pulling 12:00
12:03 cognominal joined 12:08 Su-Shee_ is now known as Su-Shee
moritz deleting the nqp repo helped :-) 12:10
(not finished compiling yet though)
r: say 42 12:12
p6eval rakudo 50be5d: OUTPUT«42␤» 12:13
jnthn \o/
moritz++
cognominal jnthn++ # for the git tag delete incantation 12:20
12:21 wamba joined
FROGGS k, if nobody fixes smolder, I'll send daily reports ;o) smolder.parrot.org/app/projects/smoke_reports/5 12:24
12:26 mtk joined 12:29 imarcusthis joined 12:31 bowtie joined 12:32 tokuhiro_ left, tokuhiro_ joined
FROGGS cool, whole spectest within 9 minutes 12:35
12:36 Psyche^ joined 12:39 Patterner left, Psyche^ is now known as Patterner
moritz FROGGS: how many cores? 12:39
FROGGS 4
I'd like to run that on one of our machines here, 16 cores, its not the newest one but it would be some sort of benchmark 12:40
'here' is $work 12:41
12:44 Patterner left, whiteknight joined, odoacre left, odoacre joined
FROGGS moritz: do we add tests for the text of error messages? (wanna close some LTA reports) 12:49
moritz FROGGS: no, we add error classes, and check for them
see t/spec/S32-exceptions/misc.t for some examples :-)
bbkr likes this solution 12:51
moritz testability is the most important reason for doing the typed exception stuff at all 12:52
12:53 GlitchMr joined 13:02 Psyche^ joined, SamuraiJack left, Psyche^ is now known as Patterner 13:04 sftp joined 13:10 PacoAir joined
FROGGS moritz: ahh, understand 13:19
13:20 odoacre left 13:21 odoacre joined
moritz it's on my TODO to produce typed exceptions from the multi dispatcher and binder 13:25
not sure if/when I'll get to it though 13:26
13:30 gv left, gv joined 13:32 gv left 13:41 yves_ joined
cognominal FROGGS, how do you set or reset tag needed in RT? 13:41
FROGGS you mean "test needed" ? 13:44
cognominal yes
FROGGS well, I clist on custom fields, and (de-)select this tag
and add links to the testfile
if I remove the tag 13:45
err s/clist/click/ 13:46
cognominal I don't see testneeded on the "custom field" page :( 13:48
FROGGS there is a multiline select field on the right 13:49
rt.perl.org/rt3/Ticket/Modify.html?id=77386
jnthn cognominal: I normally find it on the jumbo tab 13:53
in tags
FROGGS got a german locale, dunno what it is called where I am 13:54
cognominal do I need special capabilities?
I don't have a locale, so I should see "tags" but I don't 13:56
in neither page
14:04 wamba left
FROGGS maybe you are not a rt admin for the perl6 queue 14:06
moritz should be able to help you there 14:07
14:07 wamba joined 14:09 fhelmberger_ left
dalek ecs: 6fca0a0 | (Arne Skjærholt)++ | S21-calling-foreign-code.pod:
Rewrite S21 so that Zavolaj/NativeCall is spec foreign function interface.

This is a complete rewrite of this synopsis. The document that was here was extremely short, and didn't really spec anything. There some mention of importing Perl 5 code, however. If this is missed, it should probably be incorporated into S11.
14:11
arnsholt There. 'Tis done 14:12
14:13 sisar left, wamba left
tadzik cool 14:13
sorry, typo
cooool
arnsholt =D
14:15 Kharec left 14:17 Kharec joined
jnthn ooh 14:19
arnsholt++
FROGGS cool! 14:20
arnsholt Writing an email to perl6-language now to try and engage those who aren't active here as well
felher arnsholt++ 14:23
14:25 wamba joined 14:38 sisar joined 14:47 cognominal left, LordVorp joined 14:53 PerlJam joined 14:55 cognominal joined 14:57 cspencer joined 14:58 cspencer left 15:03 hoelzro joined 15:09 kaare_ joined 15:11 cognominal left 15:29 wamba left
FROGGS moritz: is it the case that I cant throw typed exceptions from things happening in nqp grammar for example? 15:32
moritz: the best I can do is stuff like that, right? github.com/perl6/roast/blob/master...nown.t#L38 15:33
(which is exactly the error message I wanted to test btw ) 15:34
dalek ast: d18cdd7 | (Tobias Leich)++ | S05-metasyntax/unknown.t:
Linked now closed RT ticket about unrecogn. metachar

  rt.perl.org/rt3/Ticket/Display.html?id=77386
15:37
15:39 FROGGS left 15:48 domidumont left
jnthn london & 15:53
16:08 fgomez left 16:16 fgomez joined 16:23 Kharec left 16:28 pmurias joined
pmurias arnsholt: one thought after reading the new S21 is that some implementation might wish to interop with other runtimes using the :from syntax 16:29
16:34 kaleem left
arnsholt pmurias: Yeah, that's what the old S21 had, but TBH I'm not sure how useful coopting the use syntax is for C interop 16:34
16:37 hoelzro is now known as hoelzro|away
arnsholt The old S21 talked a tiny bit about other kinds of interop, but I've intentionally limited the current one to only consider C interop 16:38
pmurias the use :from syntax could be usefull if parsing headers 16:40
arnsholt Possibly, but I think header fixing is a separate program, really
I've got to go now, but I'd love to continue this 16:41
arnsholt &
16:45 fgomez left 16:46 pix_ joined 16:47 pix_ left 16:52 kaleem joined 16:55 cognominal joined 16:57 kaleem left 17:04 sqirrel left, birdwindupbird left 17:05 fgomez joined 17:17 SamuraiJack joined 17:28 MayDaniel joined 17:33 pmurias left 17:35 rurban_ joined 17:48 odoacre left 17:49 odoacre joined 17:57 domidumont joined 18:05 FROGGS_ joined 18:10 FROGGS joined, Pleiades` left 18:15 Pleiades` joined, FROGGS_ left
FROGGS phenny: tell arnsholt that there is a pod error in S21 in description right after "Hypotheticals" 18:21
phenny FROGGS: I'll pass that on when arnsholt is around.
18:25 umagaivotavoavav joined
umagaivotavoavav hello 18:25
18:26 umagaivotavoavav left 18:27 wamba joined
moritz hi 18:28
FROGGS hi umagaivotavoavav, moritz
moritz FROGGS: re roast commit d18cdd78598b6ba6439fcb96665844e99ff8da40, that's ok for now; though in the long run we have to find a solution for throwing typed exceptions from nqp too 18:30
18:31 Chillance joined
FROGGS well, there are basically just two options, putting these types in nqp, or throw the exceptions from "perl" 18:32
18:40 SamuraiJack left 18:47 rurban__ joined, wamba left 18:48 rurban_ left 18:53 bapa joined
sorear good * #perl6 18:55
TimToady o/ 18:57
any ETA on a buildable niecza?
sorear should be stable by the weekend 18:58
TimToady cool, I just get a C# exception when I run it currently... 18:59
perigrin so your'e saying that right now niecza is Exceptional?
sorear: sounds like a quote for the home page that ... "TimToady finds us Exceptional!" 19:00
TimToady I would probably take exception to that
anyway, hope everyone involved had a good Turkey Day, except for the turkey 19:01
and I hope everyone not involved also had a good day
FROGGS ;o)
hi there
TimToady o/
perigrin had Fettucini so even a Turkey was saved ... in theory.
TimToady maybe your turkey wasn't involved 19:02
perigrin well the rest of the family had Turkey so I'm not sure how the savings work in practice.
19:03 umagaivotavoavav joined, umagaivotavoavav left
perigrin Turkeys don't deal well with lazy evaluation of dinners. 19:03
TimToady turkeys generally deal with lazy evaluation by becoming turkey sandwiches :) 19:04
19:04 umagaivotavoavav joined, umagaivotavoavav left
perigrin map { bread($_) } @leftovers ? 19:05
TimToady this is a perl 6 channel
perigrin @leftovers.map(bread($_)) ?
19:06 thou joined
perigrin needs to catch back up on perl6 syntax 19:06
TimToady std: map { bread($_) } @leftovers
p6eval std d38bbd0: OUTPUT«===SORRY!===␤Strange text after block (missing comma, semicolon, comment marker?) at /tmp/lNrAwfregd line 1:␤------> map { bread($_) }⏏ @leftovers␤ expecting any of:␤ horizontal whitespace␤ infix or meta-infix␤ infixed function…
TimToady just needs a comma 19:07
maybe map and grep need to suggest that more explicitly
perigrin right, google informed me
here more perl6ish ... bread(@leftovers.pick(*)) 19:08
perigrin is adventerous in his leftover sandwiches. 19:09
TimToady imagines his sandwich with cranberry sauce
19:09 thou left
perigrin it's actually quite good, it sets off the stuffing nicely. 19:09
there are a couple places here that do turkey, stuffing, cranberry, and gravey sandwiches. 19:10
19:10 daxim left
FROGGS damnit 19:13
FROGGS is getting hungry
19:17 rurban__ left
japhb This talk is making me hungry again and I *just* ate. :-) 19:34
FROGGS ya, me too, and there is nothing appropriate in the kitchen 19:36
19:50 rurban_ joined 20:09 kurahaupo joined
FROGGS moritz: got the typed exception: github.com/FROGGS/rakudo/commit/b3...2d95d626b4 20:18
20:23 mtk left 20:24 Chillance left 20:25 Chillance joined 20:40 ryutin joined
moritz FROGGS: I'd prefer a different approach (more) 20:41
FROGGS: patch NQP to call a method die_unrecognized_metachar($char) which throws the normal exception 20:42
FROGGS: and then in rakudo's Grammar.pm, overwrite that method
reparsing the exception seems rather fragile 20:43
(sorry for not speaking up earlier; only while baking kanelbullar today did I get the idea to do it that way) 20:44
20:44 grondilu joined
grondilu Is there a "tringular" version of reduce? I mean, something that would be to reduce what [\op] is to [op]? 20:45
*triangular
20:46 domidumont left
FROGGS moritz: k, will do it 20:47
dalek ecs: f6636e2 | lue++ | S21-calling-foreign-code.pod:
[S21] Fixed some POD formatting errors.

The errors were mainly problems with item lists and missing whitespace around directives.
20:48
lue r: my $t = time; "a b" ~~ /a \s* b/; say time - $t; 20:51
p6eval rakudo 50be5d: OUTPUT«0␤»
lue r: my $t = time; "a b" ~~ /a <.ws>* b/; say time - $t;
p6eval rakudo 50be5d: OUTPUT«(timeout)»
lue I think <ws> is broken.
moritz lue: quantifying a zero-width match with anything but ? causes infinite loops 20:52
lue: well known, and not easy to fix
and quite logical, once you start to think about it
lue I thought <.ws> meant match but don't capture.
(and zero-width was <!ws>) 20:53
moritz yes, but <ws> is defined in a way to allow zero-width matches nonetheless 20:54
the first repetition matches the space
and the second matches the empty string between the space and the b
and all further matches do the same
TimToady grondilu: there's nothing specced yet 20:56
lue goes to double-check S05. The <ws> matches nothing (aka <?>, IIRC) thing is new to him.
20:57 bruges_ joined 20:59 ryutin left 21:03 GlitchMr left
lue Well, in S05 I found something alluding to the null string matching after $ on line 372, and a definition which appears to say null string is matched on line 2057. However, line 1808 suggests the null string shouldn't be matched. 21:05
moritz / <.ws> / # match "whitespace": 21:06
# \s+ if it's between two \w characters,
# \s* otherwise
\s* can match the null string 21:07
lue r: say ?("a" ~~ /\s*/);
p6eval rakudo 50be5d: OUTPUT«True␤»
21:07 cognominal left
lue r: say ?(" " ~~ /\w*/); 21:08
p6eval rakudo 50be5d: OUTPUT«True␤»
flussence r: say 'a' ~~ /[\s*]*/
eval: say 'a' ~~ /(?:\s*)*/
p6eval rakudo 50be5d: OUTPUT«(timeout)»
buubot_backup flussence: ERROR: syntax error at (eval 20) line 1, near "say 'a'"
flussence bah
eval: use 5.12; say 'a' ~~ /(?:\s*)*/
buubot_backup flussence: ERROR: Perl v5.120.0 required (did you mean v5.12.0?)--this is only v5.16.0, stopped at (eval 20) line 1. BEGIN failed--compilation aborted at (eval 20) line 1.
flussence doh
eval: use 5.012; say 'a' ~~ /(?:\s*)*/ 21:09
buubot_backup flussence: 1 1
lue r: say ?(" " ~~ /[\w*]*/);
p6eval rakudo 50be5d: OUTPUT«(timeout)»
flussence rn: say 'foo' ~~ /['']*/
p6eval rakudo 50be5d, niecza v22-36-g19fa03a: OUTPUT«(timeout)» 21:10
lue Now I see the actual bug, and \s* matching null does make sense. I think it was just "<.ws>* breaks because it matches an infinite number of null strings" is what broke my brain for a minute.
(what didn't help is me seeing <.ws> as basically "\s that doesn't break cperl-mode's highlighting") 21:11
flussence what's p5 doing there? I'd guess it sees ($nothing)* and interprets it as ($nothing)? instead.
sorear one sec
L<perlre/"Repeated Patterns Matching a Zero-length Substring"> 21:12
21:14 cognominal joined
TimToady P6, otoh, currectly classifies it as a DIHWIDT 21:15
lue
.oO(Do It HoWever I Deem Terrific?)
21:16
21:16 fgomez left
TimToady it's a dwimmery that is known to be difficult/impossible to do perfectly, so it's way down on the priority lists currently 21:17
21:17 fgomez joined
grondilu TimToady: (about reduce) maybe it could just be triangular in list context 21:17
TimToady grondilu: no, that would be P5-Think :) 21:18
huf Dwimmery Is Hard, Wherefore I Deallocate Tuits? 21:19
lue So, would a simple /<.ws>/ pull off what I mean when I try /<.ws>(*|+|?)/ (with the erroneous thinking that <.ws> =:= \s) ?
flussence I like that p5 is smart enough to handle this regex thing, but I'm not a fan of all the extra hidden state involved... 21:20
TimToady lue: I have no idea what you mean by that, so I can't say
the purpose of <.ws> is to locate the cursor at the start of the next token 21:21
lue I've been using <.ws> as if it were a (non-cperl-breaking) exact synonym for \s, and have therefore been typing things like <.ws>* and <.ws>+. My question is, do I need those modifiers? (would just <.ws> work fine?)
TimToady <.ws> should never be quantified
lue OK. 21:22
TimToady in general, you only want a <.ws> after you've matched something else that is not whitespace
which is how :sigspace is currently specced
(and implemented by STD, though I don't think either niecza or rakudo do so yet) 21:23
TimToady could be wrong
lue does s:g/\sS?/<.ws>/
TimToady moritz++ already summarized the semantics of <.ws> above 21:24
oh, nm 21:25
lue moritz++ indeed. I've been having quite a number of slip-ups in regex-land the past few days.
moritz everybody goes through that phase :-) 21:26
21:26 kaare_ left
dalek rl6-bench: f37c11a | (Geoffrey Broadwell)++ | bench:
Make sure to fetch all new remote tags in fetch command
21:28
rl6-bench: 4e657e7 | (Geoffrey Broadwell)++ | / (2 files):
commit
japhb Now with 2011.09 and 2012.11 and a few more tests: gist.github.com/4132800 21:31
for is so much slower in 2011.09 than all later releases that it swamps every other issue I've tested so far.
lue if my %h = "a"=>1,"b"=2; , Should / %h / be equal to / [ $<a>=1 | $<b>=2 ] / ? (Just a thought I had last night)
flussence I wonder if it'd be enough to have the compiler silently change any /<zero-width>*/ to /<zero-width>?/ (but only for a literal * quantifier) 21:33
lue I'd agree with that, if only because I can't imagine ever needing to match an infinite number of <?> . 21:35
moritz flussence: that will surprise lots of people too 21:40
for example people write regexes like [(\d*)(\D*)]+ 21:41
which is pretty much nonsense
ah well, I guess GIGO
21:44 cibs left 21:46 nyuszika7h left 21:48 cibs joined, rurban_ left 21:56 rurban_ joined
lue moritz: in the case of [(\d)*(\D*)]+, wouldn't an OK transformation be [(\d)+(\D)+]+ ? 21:59
22:00 nyuszika7h joined
lue oh, nvm. I'm seeing that as a bad thing now. 22:02
22:02 benabik left
japhb What's the current status of the sink context work for Rakudo? 22:05
moritz japhb: I have a branch that does some sink context, and spectests cleanly
qast-sink-1
but it still misses a lot of cases where sink context should be applied, and isn't 22:06
japhb Are you going to keep it separate until it's handling all cases, or merge it after this month's star? 22:07
moritz merge it, I think 22:08
that way it'll get more testers
one thing the branch doesn't do but should is to make 'for' an alias for .map
(and remove the implict &eager that is currently added, and let sink handle the same thing) 22:09
also, currently it sinks the return value from subroutine or method calls
I have no idea if that's how it should be 22:10
japhb What is the current difference between for and map, implementation-wise? I thought they were pretty close to equivalent .... 22:12
22:12 SmokeMachine left
japhb (more testers)++ 22:12
moritz for is always eager
(and it shouldn't be, but people are too surprised if loops don't execute :-) 22:13
japhb It does tend to break suspension of disbelief. ;-)
moritz that's why sink context makes it eager 22:14
japhb nodnod
moritz but in its current, qast-sink-1 busts most spectests when I disable that eagerness
22:15 Entonian joined
moritz first it failed completely, because traits aren't executed in sink context yet, and 'is export' had a for-loop as the last statement :-) 22:16
japhb sorear, how long has Niecza had essentially the same build-and-run sequence? Which is to say, as a first pass of getting multi-release niecza benchmark runs, how far back can I go without having to worry about differences in the build and run commands? 22:18
moritz, ouch. :-)
TimToady we should certainly sink the last statement of anything that has a --> Sink return, so we don't always have to rely on the caller for that info 22:19
japhb had forgotten you could specify that 22:21
TimToady which is why I mentioned it :)
moritz TimToady: --> Sink is not mentioned in the specs 22:22
TimToady hmm
22:23 kurahaupo left
sorear japhb: a long time 22:23
moritz the only Sink with capital S is the KitchenSink in the spec 22:24
oh by the way, should we name the method SINK?
like most other stuff that's called automatically
TimToady std: sub foo(-->) { ... }
p6eval std d38bbd0: OUTPUT«===SORRY!===␤No type found after --> at /tmp/Y2Aw3LKw73 line 1:␤------> sub foo(-->⏏) { ... }␤ expecting any of:␤ name␤ new name to be defined␤ param_sep␤ routine_def␤ signature␤ type_constraint␤Parse failed␤FAILED 00:00
..42m␤»…
moritz std: sub foo() returns () { ... } 22:25
p6eval std d38bbd0: OUTPUT«===SORRY!===␤Invalid type name at /tmp/Z7mT0RVY0c line 1:␤------> sub foo() returns ⏏() { ... }␤ expecting typename␤Parse failed␤FAILED 00:00 42m␤»
TimToady std: sub foo( --> () ) { ... }
p6eval std d38bbd0: OUTPUT«===SORRY!===␤No type found after --> at /tmp/Vs08l1vHTm line 1:␤------> sub foo( --> ⏏() ) { ... }␤ expecting any of:␤ name␤ type_constraint␤Parse failed␤FAILED 00:00 42m␤»
moritz std: sub foo() returns { ... }
p6eval std d38bbd0: OUTPUT«===SORRY!===␤Invalid type name at /tmp/bi3ZLlYkxL line 1:␤------> sub foo() returns ⏏{ ... }␤ expecting typename␤Parse failed␤FAILED 00:00 42m␤»
sorear what are the semantics of KitchenSink?
moritz none are specced
TimToady it's a placeholder for something that has an API for the pointy end of ==>
moritz goes to bed, and replaces himself with a placeholder that can stay on IRC 22:26
TimToady std: sub foo( --> Nil ) {...}
p6eval std d38bbd0: OUTPUT«ok 00:00 43m␤»
TimToady maybe that's what it mutate into
I can see routines that always return True, or always return () though 22:27
std: sub foo( --> True ) {...} 22:28
p6eval std d38bbd0: OUTPUT«ok 00:00 43m␤»
TimToady anyway, --> Nil seems like pretty good documentation of a procedure done only for its side-effects 22:29
can't really go with a 'proc' keyword, since methods also can do that 22:30
I suppose a method might want to specify --> self
(for the style where you apply mutator methods)
one could go as far as --> $result to support that style even 22:31
that is, declare a variable whose contents are automatically returned 22:33
we've sort of intentionally left room in the grammar for these variants, if we decide we want them someday
but putting any value or variable on the right of --> would automatically put the final statement into sink context; Nil or () would just be a subcase of that 22:35
arnsholt lue++ # fixin' my POD 22:37
phenny arnsholt: 18:21Z <FROGGS> tell arnsholt that there is a pod error in S21 in description right after "Hypotheticals"
22:39 wamba joined
lue arnsholt: It looks like you were trying some Pod6 :) [can't say I blame you --- After reading up on perldoc how to fix those errors, I like Pod6 better] 22:41
arnsholt Yeah, I was going for Pod6 22:42
Are the specs actually Pod5?
22:45 cognominal left
felher TimToady: just to be sure: in the case of '--> $result', you could then also write '--> Str $result', since the right of '-->' is a normal variable declaration, and therefore specify a return type that way? 22:45
lue arnsholt: All but S26, which is about Pod6. 22:46
(I imagine once there's a complete Pod6->HTML generator, there'll be a big effort to convert all the specs appropriately) 22:48
22:48 Entonian left
arnsholt Right, right. That makes sense =) 22:49
sorear Pod6 is quite close to PseudoPod
TimToady felher: presumably 22:51
22:51 cognominal joined
TimToady you could even say --> Str $result = "foobar" 22:51
felher TimToady: hm, nice 22:52
dalek d: a8bc48f | larry++ | STD.pm6:
make --> more like a normal parameter
22:58
lue I'm getting an invalid BUILDALLPLAN trying to use Grammar::Debugger 23:01
flussence I've had that every time I've tried using it, going back 3-4 months :/ 23:02
lue (I remember being able to use it a while ago though...) 23:04
diakopter how would we denote :blocking on a pop or unshift? (wait for an element)
lue perl6-debug works well enough with regexes though.
diakopter er, pop or shift. 23:05
23:05 rurban_ left
TimToady that depends on whether there's a list to ask for another element, not on how you mark things 23:05
23:05 rurban_ joined
diakopter why wouldn't there be a list 23:06
TimToady there's no list if nothing was planned
23:06 sizz joined
TimToady just the array 23:06
23:07 rurban_ left
TimToady [1,2,3] has exactly three elements, not three-plus 23:07
diakopter ok.. but I'm asking how would code tell pop or shift to keep polling for an element until one appeared?
(by another thread) 23:08
TimToady if someone else is supplying the elements, the default is to wait for them
it's up to the other end to decide whether to block or fail
diakopter r: my @a = (); say pop @a 23:09
p6eval rakudo 50be5d: OUTPUT«Element popped from empty list␤ in method gist at src/gen/CORE.setting:10149␤ in sub say at src/gen/CORE.setting:7460␤ in block at /tmp/2Sx4_eiXSl:1␤␤»
diakopter it failed.. (what I expected) but I thought you said the default was to block 23:10
23:11 sizz left
sorear I don't think :blocking on list operations makes sense 23:12
TimToady r: my @a.plan: gather for (^10).roll(*) { last unless $_; take $_ }; say @a
p6eval rakudo 50be5d: OUTPUT«===SORRY!===␤Confused␤at /tmp/vCeOf5TMrm:1␤»
sorear we shouldn't force
TimToady diakopter: "if someone else is supplying the elements"
sorear lists should not be concurrent data structures: don't force everyone to pay for the cost of a condvar/mutex
diakopter there are ways to have itboth ways.
TimToady r: my @a; @a.plan: gather { for (^10).roll(*) { last unless $_; take $_ } }; say @a 23:13
p6eval rakudo 50be5d: OUTPUT«No such method 'plan' for invocant of type 'Array'␤ in block at /tmp/cqhYBUy1tL:1␤␤»
diakopter r: my Array @a = []; say pop @a
p6eval rakudo 50be5d: OUTPUT«␤»
TimToady star: my @a; @a.plan: gather { for (^10).roll(*) { last unless $_; take $_ } }; say @a 23:14
p6eval star 2012.10: OUTPUT«No such method 'plan' for invocant of type 'Array'␤ in block at /tmp/yLEHGR1lyH:1␤␤»
TimToady though rakudo implemented .plan at one point
*ght
diakopter sorear: non-blocking data structures don't need a mutex
TimToady blocks on a nap & 23:15
diakopter sorear: also, a list can operate in fast single-threaded mode until a non-owner thread requests it to be upgraded (downgraded?) to concurrent mode 23:17
sorear *headdesk* 23:20
diakopter it just needs a thread id marker, and one check 23:21
(and the interrupt request system, of course)
23:21 sizz joined
diakopter why headdesk? if you think I'm that stupid, please explain how. 23:22
diakopter waits for sorear to lift his head off his desk 23:27
flussence I'd rather have something like inotify for variables and build threaded stuff around that. 23:30
23:30 MayDaniel left
sorear diakopter: you cannot asynchronously notify a thread that is not expecting asynchronous notification. 23:30
lists can be passed between threads, even implicitly, so it is not possible to know their owner. 23:31
diakopter creator, I meant
like I said, there would have to be the interrupt system 23:32
sorear I heard Moose is slow, is this true?
[...] some Moose features do cost more than others. It is also the policy of Moose to only charge you for the features you use, and to do our absolute best to not place any extra burdens on the execution of your code for features you are not using.
diakopter flussence: how would you build threaded stuff around a change notify thing 23:33
sorear I beleive I am the only person who applies this policy to perl 6
diakopter <eye roll>
sorear I am likely to fork the language over this issue.
because I see #perl6ers flaunting it DAILY
23:35 am0c left
diakopter there are tradeoffs for features. just because it's Moose's so-called policy doesn't mean it come close to fully succeeding at it. 23:35
sorear diakopter: "creator"? congratulations, you've just screwed over everyone who builds a 1 million element list in one thread, then pass it through an object pipe to another 23:36
niecza's lists will never be implicitly concurrent. this is final.
diakopter but how exactly are they screwed over? why wouldn't they expect a performance hit at low concurrency? (in exchange for scalability at high concurrency) 23:37
I'm not arguing for niecza to support anything
sorear: in a multi-threaded program, how will you know when to use locks on every operation on a data structure? 23:38
(otherwise mutating structures can interleave with ill effect) 23:39
(also, as of course you know, locks don't scale)
sorear: you're effectively saying that niecza will never support passing built-in data structures between threads 23:40
(unless you use locks, which don't scale)
for instance, if two threads try to pop, both can get the same value. 23:41
sorear diakopter: what I am saying now, what I have always said, is that the builtin structures must not be used concurrently from more than one thread
you can pass an array from one thread to another, as long as the passer then ceases to use it.
quite simply, I think List<> and ConcurrentQueue<> should be separate types. 23:42
if you want the latter, import it from Threads and use it.
you say that ConcurrentQueue<> can be made as fast and efficient as List<>
I do not beleive you
diakopter where did I say that
sorear 15:17 < diakopter> sorear: also, a list can operate in fast single-threaded mode until a non-owner thread requests it to be upgraded (downgraded?) to concurrent mode 23:43
if upgradable lists were as easy as you think, .net would have them already
I'm willing to be proven wrong, but only by code 23:44
diakopter I didn't say it was easy
I've been working on a concurrent deque with random access for months
.net doesn't have such things because nobody's ever made a concurrent deque with random access. 23:46
er, non-blocking.
s/made/published/ 23:47
jnthn o/ from London 23:53
(momentarily...about to sleep)
flussence inotify is just another way to block until something happens... so for the pop example, it'd look like "loop { take @a.pop if @a; wait @a }". Not saying it's perfect, but it's simple and makes sense. 23:56
s/if/while/ maybe 23:57
diakopter there is still periodic polling, of a message queue if not an attempt at the whole operation 23:58
23:58 rurban_ joined