Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2012-11-23

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:02 kurahaupo joined #perl6
00:03 grondilu rn: say <1/3>.Rat;
00:03 p6eval niecza v22-36-g19fa03a: OUTPUT«0.33333333333333331␤»
00:03 p6eval ..rakudo bf472b: OUTPUT«0.333333␤»
00:03 grondilu rn: say <1/3>.WHAT;
00:03 p6eval niecza v22-36-g19fa03a: OUTPUT«Rat()␤»
00:03 p6eval ..rakudo bf472b: OUTPUT«Str()␤»
00:04 lue colomon: have you checked what nqp -v says?
00:05 colomon lue: no
00:05 colomon I just blew away my rakudo directory and started over from scratch.
00:09 colomon lue: rebuild from scratch appears to have worked
00:09 lue Good.
00:12 japhb TimToady, it occurred to me while I was out that a simple increase in whitespace might help.  Does this look better to you?  https://gist.github.com/4132800
00:13 * japhb backlogs to see if someone knew how to colorize a gist
00:19 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:20 colomon is there still a script out there to do syntax highlighting for p6?  I remember using one years ago...
00:21 lue there probably is (my guess the perl6/mu repo), but no clue how outdated it is.
00:22 lue .oO(The only downside to Perl 6 regexes is having to deal with the non-P6 kinds)
00:26 grondilu What's 'Bridge' in Real.pm?
00:30 grondilu 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 #perl6
00:41 sivoais joined #perl6
00:49 lorn joined #perl6
01:17 hypolin joined #perl6
01:17 benabik joined #perl6
01:28 dalek perl6-bench: 07f2717 | (Geoffrey Broadwell)++ | analyze:
01:28 dalek perl6-bench: Add blank lines between tests in text summary output with style off
01:28 dalek perl6-bench: review: https://github.com/japhb/pe​rl6-bench/commit/07f271757d
01:49 cspencer joined #perl6
02:02 fgomez joined #perl6
02:06 gootle joined #perl6
02:10 Entonian joined #perl6
02:13 benabik joined #perl6
02:38 FROGGS_ joined #perl6
02:42 lue .oO(Where *did* the old highlighter go?)
02:47 cognominal joined #perl6
02:53 colomon lue: it seems to me it was connected to std, maybe it went with it?
02:54 lue ah, yes. There seems to be a std_hilite folder.
02:57 lue .oO(STD isn't very useful for parsing the individual files in the rakudo codebase)
03:04 aindilis joined #perl6
03:06 benabik joined #perl6
03:09 xinming joined #perl6
03:46 rurban_ joined #perl6
03:46 orafu joined #perl6
03:54 am0c joined #perl6
04:07 thou joined #perl6
04:30 sirrobert joined #perl6
04:32 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␤»
04:32 sirrobert How do I create a package-level variable?
04:32 sirrobert (and access it from outside)
04:33 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␤»
04:33 sirrobert hrm
04:33 lue r: say "class Foo \{ ... \}" ~~ /\{<.ws>*"..."<.ws>*\}/
04:33 p6eval rakudo bf472b: OUTPUT«PARROT VM: Could not load bytecode␤unimplemented key type 1␤»
04:33 lue O.o
04:33 sirrobert sorear: I take from that that it just isn't implemented in Rakudo yet?
04:34 * lue wonders if telling p6eval to recompile rakudo will help
04:34 lue r: say "Rakudo is alive!";
04:34 p6eval rakudo bf472b: OUTPUT«PARROT VM: Could not load bytecode␤unimplemented key type 1␤»
04:34 sirrobert ohhh
04:35 sirrobert well, the error I get in rakudo is:  No such method 'STORE' for invocant of type 'Any'
04:35 sirrobert I guess I can work around with classes for now
04:36 lue sirrobert: got the same error running it in my rakudo as well.
04:36 sirrobert lue: thanks
04:36 lue (the No such method 'STORE' one, of course)
04:36 sirrobert I'll do a less-than-correct implementation now that works and fix it later =)
04:37 sirrobert lue: nod
04:41 lue nom: say "nom test";
04:41 p6eval rakudo bf472b: OUTPUT«PARROT VM: Could not load bytecode␤unimplemented key type 1␤»
04:41 lue star: say "star test";
04:41 p6eval star 2012.10: OUTPUT«star test␤»
04:42 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 #perl6
04:59 SamuraiJack joined #perl6
05:08 rurban_ joined #perl6
05:20 grondilu rn: "foo bar" ~~ m:g/ <.alpha>+ /; say $/
05:20 p6eval niecza v22-36-g19fa03a: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Regex modifier g not yet implemented at /tmp/4cB1HrSggW line 1:â�¤------> [32m"foo bar" ~~ m:g[33mâ��[31m/ <.alpha>+ /; say $/[0mâ�¤â�¤Unhandled exception: Check failedâ�¤â�¤  at /home/p6eval/niecza/boot/lib/CORE.setting line 1437 (…
05:20 p6eval ..rakudo bf472b: OUTPUT«PARROT VM: Could not load bytecode␤unimplemented key type 1␤»
05:20 grondilu star: "foo bar" ~~ m:g/ <.alpha>+ /; say $/
05:20 p6eval star 2012.10: OUTPUT«Any()␤»
05:21 grondilu star: say "foo bar" ~~ m:g/ <.alpha>+ /;
05:21 p6eval star 2012.10: OUTPUT«False␤»
05:21 grondilu star: say "foo bar" ~~ m/ <.alpha>+ /;
05:21 p6eval star 2012.10: OUTPUT«「foo」␤␤»
05:22 diakopter sum1 broke r?
05:23 lue It was working a few hours ago, I'm guessing it broke on its own.
05:25 * lue doesn't know the command to force p6eval to recompile rakudo
05:32 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:36 telex joined #perl6
05:46 SamuraiJack joined #perl6
05:48 * lue has just thought of a possible idea for the interpretation of / %hash /
05:53 telex joined #perl6
05:53 birdwindupbird joined #perl6
05:53 aaaa joined #perl6
05:55 Kharec joined #perl6
06:07 bonsaikitten file parrot-4.10.0.tar.bz2
06:07 bonsaikitten parrot-4.10.0.tar.bz2: gzip compressed data
06:07 bonsaikitten hey, who oopsied that one?! :(
06:11 sorear bonsaikitten: #parrot
06:11 lue will ls -l perchance tell you the last owner (besides you)?
06:12 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
06:12 bonsaikitten would file a bug if there were a sane bugtracker nearby :\
06:13 sorear are the .tar.gz and the .tar.bz2 different?
06:13 sorear what bugtrackers do you consider sane?
06:14 bonsaikitten oh, parrot still uses trac, that's tolerable
06:14 bonsaikitten it's just github that always keeps me demotivated
06:14 lue I think they're using github issues. (looks like it, at least)
06:15 bonsaikitten oh, so that is the schizo bugtracker? so my memory was right
06:17 lue What's wrong with issues? I'm just curious is all.
06:19 bonsaikitten lue: well, github is just a generally annoying UI
06:20 wamba joined #perl6
06:23 * lue on the other hand didn't like gitorious the one time he had to use it for whatever reason.
06:27 bonsaikitten lue: I didn't say it was any better ;)
06:28 lue I know :) . I just thought I'd mention my bad-looking git hosting service.
06:36 sorear say, bonsaikitten
06:36 sorear I'm redoing the niecza build system
06:36 sorear now would be a great time to make feature requests
06:42 * moritz wants "make install"
06:43 cognominal joined #perl6
06:45 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:46 bonsaikitten sorear: and make the bootstrapping autofetching optional so that an installed older version can be used for that
06:46 bonsaikitten apart from that I don't really have any complaints
06:50 hypolin joined #perl6
07:00 sorear bonsaikitten: do you want to have to deal with very narrow version compatibility ranges?
07:01 bonsaikitten sorear: I don't care much about that
07:01 bonsaikitten as long as it's easy enough to figure out why it doesn't want to build
07:10 GlitchMr joined #perl6
07:16 tadzik good yawning
07:20 sorear o/ tadzik
07:27 cognominal https://github.com/perl6/nqp/blob/master/VERSION  # 2011.12 !  that must be wrong!
07:31 Kharec joined #perl6
07:54 domidumont joined #perl6
07:56 masak http://www.flickr.com/photos/bingosne​t/7882167910/in/set-72157631293303096 -- "Live together in perfect harmony
07:56 masak "
07:56 masak aww :)
08:06 sorear masak: hey, a much better set of pictures of yapc::eu
08:07 * sorear finds several of himself, including one in the venue proper
08:10 nyuszika7h joined #perl6
08:19 hypolin joined #perl6
08:20 brrt joined #perl6
08:21 domidumont joined #perl6
08:25 Su-Shee ever since we're all sparkly code princesses, it'll be ok anyways.. ;)
08:25 Su-Shee good morning everyone.
08:26 cognominal_ joined #perl6
08:34 tadzik hello
08:34 brrt hi tadzik
08:37 Su-Shee da dazik is in da house ;)
08:37 telex joined #perl6
08:37 Su-Shee +d ;)
08:39 tadzik good I'm not tad sick
08:39 kaleem joined #perl6
08:43 fhelmberger_ joined #perl6
08:54 cognominal joined #perl6
08:55 sorear good morning Su-Shee & tadzik
08:58 FROGGS joined #perl6
08:59 Su-Shee tadzik: you're not a tad sick? ;)
09:02 tadzik fortunately, no :)
09:03 jnthn morning o/
09:03 Su-Shee hello jnthn :)
09:05 jnthn r: say "broken?"
09:05 p6eval rakudo bf472b: OUTPUT«PARROT VM: Could not load bytecode␤unimplemented key type 1␤»
09:05 jnthn hm, wtf.
09:08 FROGGS what the
09:08 FROGGS just say that I dont was it
09:09 * tadzik hands FROGGS a coffee
09:10 jnthn um
09:10 jnthn NQP has been built and installed.
09:10 jnthn ===SORRY!===
09:10 jnthn NQP revision 2012.11 required (currently 2011.12).
09:10 FROGGS thanks, need one, thats true
09:11 FROGGS I dont get that...
09:12 FROGGS https://github.com/perl6/nqp/blob/master/VERSION there is 2012.11
09:12 FROGGS but reading the backlog someone said there is 2011.12
09:14 FROGGS the tag is right too
09:18 FROGGS the VERSION file in nqp tarball is ok too
09:18 * moritz tries
09:19 integral joined #perl6
09:19 integral joined #perl6
09:20 FROGGS <colomon> lue: rebuild from scratch appears to have worked
09:20 FROGGS so there is a problem if you just pull the changes
09:21 FROGGS maybe there already was a tag called 2012.11 last december (by accident) ?
09:21 FROGGS ... in nqp branch
09:21 cognominal joined #perl6
09:22 moritz yes, there was something like that
09:22 moritz and I've deleted that tag
09:23 moritz but you need to   git fetch --prune  to get that
09:23 FROGGS k, that explains it
09:23 brrt p6: my $i = 0; $i += $i++;
09:23 p6eval rakudo bf472b: OUTPUT«PARROT VM: Could not load bytecode␤unimplemented key type 1␤»
09:23 p6eval ..niecza v22-36-g19fa03a:  ( no output )
09:23 FROGGS and I didnt noticed because I'm used to make clean pulls before testing and bundling
09:23 brrt n: my $i = 0;  $i += $i++; say $i;
09:23 p6eval niecza v22-36-g19fa03a: OUTPUT«1␤»
09:23 FROGGS clean clones I mean
09:24 FROGGS p6: my $i
09:24 p6eval niecza v22-36-g19fa03a: OUTPUT«Potential difficulties:â�¤  $i is declared but not used at /tmp/u3op5lHJyb line 1:â�¤------> [32mmy [33mâ��[31m$i[0mâ�¤â�¤Â»
09:24 p6eval ..rakudo bf472b: OUTPUT«PARROT VM: Could not load bytecode␤unimplemented key type 1␤»
09:24 moritz FROGGS: I don't think there's much you could have done
09:25 FROGGS ya, tags are a bit fishy
09:26 moritz dammit, segfault while building src/stage1/QASTNode.pbc
09:27 jnthn Here, it really did check out a very old version of NQP
09:28 moritz jnthn: try   git fetch --pruge  in nqp
09:28 jnthn purge or prune? :)
09:28 moritz yes :-)
09:28 moritz prune
09:29 odoacre joined #perl6
09:32 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 https://gist.github.com/4134743
09:34 jnthn moritz: You sure it's not just a case of the wrong checkout?
09:36 jnthn I actually had to git tag -d 2012.11 and pull to get the correct 2012.11 tag...
09:38 jnthn bbl &
09:40 odoacre joined #perl6
09:45 cognominal joined #perl6
09:50 dalek Perlito: faef513 | (Flavio S. Glock)++ | / (2 files):
09:50 dalek Perlito: Perlito5 - command line compiler - catch internal errors
09:50 dalek Perlito: review: https://github.com/fglock/​Perlito/commit/faef513f98
09:56 integral joined #perl6
09:56 integral joined #perl6
10:04 cognominal joined #perl6
10:05 sisar joined #perl6
10:12 sqirrel joined #perl6
10:18 dalek Perlito: 574d226 | (Flavio S. Glock)++ | / (6 files):
10:18 dalek Perlito: Perlito5 - js - fix context in chained method calls
10:18 dalek Perlito: review: https://github.com/fglock/​Perlito/commit/574d226cb3
10:18 brrt left #perl6
10:21 cognominal joined #perl6
10:22 wamba joined #perl6
10:40 integral joined #perl6
10:40 integral joined #perl6
10:50 gv joined #perl6
10:58 tokuhiro_ joined #perl6
11:05 Su-Shee_ joined #perl6
11:43 FROGGS moritz: who cares about the smolder machine?
11:43 FROGGS we need to repair the nqp tags there too
11:46 moritz FROGGS: no idea
11:48 moritz FROGGS: everybody can submit reports to smolder
11:48 moritz make spectest_smolder
11:51 jnthn r: say "works yet?"
11:51 p6eval rakudo bf472b: OUTPUT«PARROT VM: Could not load bytecode␤unimplemented key type 1␤»
11:52 moritz oh, I should take care of that I suppose
12:00 * jnthn hopes it's just deleting the old tag and pulling
12:03 cognominal joined #perl6
12:10 moritz deleting the nqp repo helped :-)
12:10 moritz (not finished compiling yet though)
12:12 moritz r: say 42
12:13 p6eval rakudo 50be5d: OUTPUT«42␤»
12:13 jnthn \o/
12:13 jnthn moritz++
12:20 cognominal jnthn++  # for the git tag delete incantation
12:21 wamba joined #perl6
12:24 FROGGS k, if nobody fixes smolder, I'll send daily reports ;o) http://smolder.parrot.org/a​pp/projects/smoke_reports/5
12:26 mtk joined #perl6
12:29 imarcusthis joined #perl6
12:31 bowtie joined #perl6
12:32 tokuhiro_ joined #perl6
12:35 FROGGS cool, whole spectest within 9 minutes
12:36 Psyche^ joined #perl6
12:39 moritz FROGGS: how many cores?
12:39 FROGGS 4
12:40 FROGGS 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:41 FROGGS 'here' is $work
12:44 whiteknight joined #perl6
12:44 odoacre joined #perl6
12:49 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
12:49 moritz see t/spec/S32-exceptions/misc.t for some examples :-)
12:51 * bbkr likes this solution
12:52 moritz testability is the most important reason for doing the typed exception stuff at all
12:53 GlitchMr joined #perl6
13:02 Psyche^ joined #perl6
13:04 sftp joined #perl6
13:10 PacoAir joined #perl6
13:19 FROGGS moritz: ahh, understand
13:21 odoacre joined #perl6
13:25 moritz it's on my TODO to produce typed exceptions from the multi dispatcher and binder
13:26 moritz not sure if/when I'll get to it though
13:30 gv joined #perl6
13:41 yves_ joined #perl6
13:41 cognominal FROGGS, how do you set or reset tag needed in RT?
13:44 FROGGS you mean "test needed" ?
13:44 cognominal yes
13:44 FROGGS well, I clist on custom fields, and (de-)select this tag
13:44 FROGGS and add links to the testfile
13:45 FROGGS if I remove the tag
13:46 FROGGS err s/clist/click/
13:48 cognominal I don't see testneeded on the "custom field" page :(
13:49 FROGGS there is a multiline select field on the right
13:49 FROGGS https://rt.perl.org/rt3/Ti​cket/Modify.html?id=77386
13:53 jnthn cognominal: I normally find it on the jumbo tab
13:53 jnthn in tags
13:54 FROGGS got a german locale, dunno what it is called where I am
13:54 cognominal do I need special capabilities?
13:56 cognominal I don't have a locale, so I should see "tags" but I don't
13:56 cognominal in neither page
14:06 FROGGS maybe you are not a rt admin for the perl6 queue
14:07 FROGGS moritz should be able to help you there
14:07 wamba joined #perl6
14:11 dalek specs: 6fca0a0 | (Arne Skjærholt)++ | S21-calling-foreign-code.pod:
14:11 dalek specs: Rewrite S21 so that Zavolaj/NativeCall is spec foreign function interface.
14:11 dalek specs:
14:11 dalek specs: This is a complete rewrite of this synopsis. The document that was here was
14:11 dalek specs: extremely short, and didn't really spec anything. There some mention of
14:11 dalek specs: importing Perl 5 code, however. If this is missed, it should probably be
14:11 dalek specs: incorporated into S11.
14:11 dalek specs: review: https://github.com/perl6/specs/commit/6fca0a0a6a
14:12 arnsholt There. 'Tis done
14:13 tadzik cool
14:13 tadzik sorry, typo
14:13 tadzik cooool
14:13 arnsholt =D
14:17 Kharec joined #perl6
14:19 jnthn ooh
14:19 jnthn arnsholt++
14:20 FROGGS cool!
14:20 arnsholt Writing an email to perl6-language now to try and engage those who aren't active here as well
14:23 felher arnsholt++
14:25 wamba joined #perl6
14:38 sisar joined #perl6
14:47 LordVorp joined #perl6
14:53 PerlJam joined #perl6
14:55 cognominal joined #perl6
14:57 cspencer joined #perl6
15:03 hoelzro joined #perl6
15:09 kaare_ joined #perl6
15:32 FROGGS moritz: is it the case that I cant throw typed exceptions from things happening in nqp grammar for example?
15:33 FROGGS moritz: the best I can do is stuff like that, right? https://github.com/perl6/roast/blob/​master/S05-metasyntax/unknown.t#L38
15:34 FROGGS (which is exactly the error message I wanted to test btw )
15:37 dalek roast: d18cdd7 | (Tobias Leich)++ | S05-metasyntax/unknown.t:
15:37 dalek roast: Linked now closed RT ticket about unrecogn. metachar
15:37 dalek roast:
15:37 dalek roast: https://rt.perl.org/rt3/Ti​cket/Display.html?id=77386
15:37 dalek roast: review: https://github.com/perl6/roast/commit/d18cdd7859
15:53 jnthn london &
16:16 fgomez joined #perl6
16:28 pmurias joined #perl6
16:29 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:34 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:38 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:40 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
16:41 arnsholt I've got to go now, but I'd love to continue this
16:41 * arnsholt &
16:46 pix_ joined #perl6
16:52 kaleem joined #perl6
16:55 cognominal joined #perl6
17:05 fgomez joined #perl6
17:17 SamuraiJack joined #perl6
17:28 MayDaniel joined #perl6
17:35 rurban_ joined #perl6
17:49 odoacre joined #perl6
17:57 domidumont joined #perl6
18:05 FROGGS_ joined #perl6
18:10 FROGGS joined #perl6
18:15 Pleiades` joined #perl6
18:21 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 #perl6
18:25 umagaivotavoavav hello
18:26 umagaivotavoavav left #perl6
18:27 wamba joined #perl6
18:28 moritz hi
18:28 FROGGS hi umagaivotavoavav, moritz
18:30 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:31 Chillance joined #perl6
18:32 FROGGS well, there are basically just two options, putting these types in nqp, or throw the exceptions from "perl"
18:47 rurban__ joined #perl6
18:53 bapa joined #perl6
18:55 sorear good * #perl6
18:57 TimToady o/
18:57 TimToady any ETA on a buildable niecza?
18:58 sorear should be stable by the weekend
18:59 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?
19:00 perigrin sorear: sounds like a quote for the home page that ... "TimToady finds us Exceptional!"
19:00 TimToady I would probably take exception to that
19:01 TimToady anyway, hope everyone involved had a good Turkey Day, except for the turkey
19:01 TimToady and I hope everyone not involved also had a good day
19:01 FROGGS ;o)
19:01 FROGGS hi there
19:01 TimToady o/
19:01 * perigrin had Fettucini so even a Turkey was saved ... in theory.
19:02 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 #perl6
19:03 umagaivotavoavav left #perl6
19:03 perigrin Turkeys don't deal well with lazy evaluation of dinners.
19:04 TimToady turkeys generally deal with lazy evaluation by becoming turkey sandwiches :)
19:04 umagaivotavoavav joined #perl6
19:05 perigrin map { bread($_) } @leftovers ?
19:05 TimToady this is a perl 6 channel
19:05 perigrin @leftovers.map(bread($_)) ?
19:06 thou joined #perl6
19:06 * perigrin needs to catch back up on perl6 syntax
19:06 TimToady std: map { bread($_) } @leftovers
19:06 p6eval std d38bbd0: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Strange text after block (missing comma, semicolon, comment marker?) at /tmp/lNrAwfregd line 1:â�¤------> [32mmap { bread($_) }[33mâ��[31m @leftovers[0mâ�¤    expecting any of:â�¤      horizontal whitespaceâ�¤  infix or meta-infixâ�¤    infixed function…
19:07 TimToady just needs a comma
19:07 TimToady maybe map and grep need to suggest that more explicitly
19:07 perigrin right, google informed me
19:08 perigrin here more perl6ish ... bread(@leftovers.pick(*))
19:09 * perigrin is adventerous in his leftover sandwiches.
19:09 * TimToady imagines his sandwich with cranberry sauce
19:09 perigrin it's actually quite good, it sets off the stuffing nicely.
19:10 perigrin there are a couple places here that do turkey, stuffing, cranberry, and gravey sandwiches.
19:13 FROGGS damnit
19:13 * FROGGS is getting hungry
19:34 japhb This talk is making me hungry again and I *just* ate.  :-)
19:36 FROGGS ya, me too, and there is nothing appropriate in the kitchen
19:50 rurban_ joined #perl6
20:09 kurahaupo joined #perl6
20:18 FROGGS moritz: got the typed exception: https://github.com/FROGGS/rakudo/commit/​b3a43b014f8f3d7d433aff775009a72d95d626b4
20:25 Chillance joined #perl6
20:40 ryutin joined #perl6
20:41 moritz FROGGS: I'd prefer a different approach (more)
20:42 moritz FROGGS: patch NQP to call a method die_unrecognized_metachar($char) which throws the normal exception
20:42 moritz FROGGS: and then in rakudo's Grammar.pm, overwrite that method
20:43 moritz reparsing the exception seems rather fragile
20:44 moritz (sorry for not speaking up earlier; only while baking kanelbullar today did I get the idea to do it that way)
20:44 grondilu joined #perl6
20:45 grondilu Is there a "tringular" version of reduce?   I mean, something that would be to reduce what [\op] is to [op]?
20:45 grondilu *triangular
20:47 FROGGS moritz: k, will do it
20:48 dalek specs: f6636e2 | lue++ | S21-calling-foreign-code.pod:
20:48 dalek specs: [S21] Fixed some POD formatting errors.
20:48 dalek specs:
20:48 dalek specs: The errors were mainly problems with item lists and missing whitespace
20:48 dalek specs: around directives.
20:48 dalek specs: review: https://github.com/perl6/specs/commit/f6636e2df9
20:51 lue r: my $t = time; "a b" ~~ /a \s* b/; say time - $t;
20:51 p6eval rakudo 50be5d: OUTPUT«0␤»
20:51 lue r: my $t = time; "a b" ~~ /a <.ws>* b/; say time - $t;
20:51 p6eval rakudo 50be5d: OUTPUT«(timeout)»
20:51 lue I think <ws> is broken.
20:52 moritz lue: quantifying a zero-width match with anything but ? causes infinite loops
20:52 moritz lue: well known, and not easy to fix
20:52 moritz and quite logical, once you start to think about it
20:52 lue I thought <.ws> meant match but don't capture.
20:53 lue (and zero-width was <!ws>)
20:54 moritz yes, but <ws> is defined in a way to allow zero-width matches nonetheless
20:54 moritz the first repetition matches the space
20:54 moritz and the second matches the empty string between the space and the b
20:54 moritz and all further matches do the same
20:56 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 #perl6
21:05 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:06 moritz / <.ws> /                # match "whitespace":
21:06 moritz #   \s+ if it's between two \w characters,
21:06 moritz #   \s* otherwise
21:07 moritz \s* can match the null string
21:07 lue r: say ?("a" ~~ /\s*/);
21:07 p6eval rakudo 50be5d: OUTPUT«True␤»
21:08 lue r: say ?(" " ~~ /\w*/);
21:08 p6eval rakudo 50be5d: OUTPUT«True␤»
21:08 flussence r: say 'a' ~~ /[\s*]*/
21:08 p6eval rakudo 50be5d: OUTPUT«(timeout)»
21:08 flussence eval: say 'a' ~~ /(?:\s*)*/
21:08 buubot_backup flussence: ERROR: syntax error at (eval 20) line 1, near "say 'a'"
21:08 flussence bah
21:08 flussence eval: use 5.12; say 'a' ~~ /(?:\s*)*/
21:08 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.
21:08 flussence doh
21:09 flussence eval: use 5.012; say 'a' ~~ /(?:\s*)*/
21:09 buubot_backup flussence: 1 1
21:09 lue r: say ?(" " ~~ /[\w*]*/);
21:09 p6eval rakudo 50be5d: OUTPUT«(timeout)»
21:09 flussence rn: say 'foo' ~~ /['']*/
21:10 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.
21:11 lue (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.
21:11 sorear one sec
21:12 sorear L<perlre/"Repeated Patterns Matching a Zero-length Substring">
21:14 cognominal joined #perl6
21:15 TimToady P6, otoh, currectly classifies it as a DIHWIDT
21:16 lue .oO(Do It HoWever I Deem Terrific?)
21:17 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 fgomez joined #perl6
21:17 grondilu TimToady: (about reduce) maybe it could just be triangular in list context
21:18 TimToady grondilu: no, that would be P5-Think :)
21:19 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) ?
21:20 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
21:21 TimToady 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?)
21:21 TimToady <.ws> should never be quantified
21:22 lue OK.
21:22 TimToady in general, you only want a <.ws> after you've matched something else that is not whitespace
21:22 TimToady which is how :sigspace is currently specced
21:23 TimToady (and implemented by STD, though I don't think either niecza or rakudo do so yet)
21:23 * TimToady could be wrong
21:23 * lue does s:g/\sS?/<.ws>/
21:24 TimToady moritz++ already summarized the semantics of <.ws> above
21:25 TimToady oh, nm
21:25 lue moritz++ indeed. I've been having quite a number of slip-ups in regex-land the past few days.
21:26 moritz everybody goes through that phase :-)
21:28 dalek perl6-bench: f37c11a | (Geoffrey Broadwell)++ | bench:
21:28 dalek perl6-bench: Make sure to fetch all new remote tags in fetch command
21:28 dalek perl6-bench: review: https://github.com/japhb/pe​rl6-bench/commit/f37c11ab2c
21:28 dalek perl6-bench: 4e657e7 | (Geoffrey Broadwell)++ | / (2 files):
21:28 dalek perl6-bench: commit
21:28 dalek perl6-bench: review: https://github.com/japhb/pe​rl6-bench/commit/4e657e761f
21:31 japhb Now with 2011.09 and 2012.11 and a few more tests:  https://gist.github.com/4132800
21:31 japhb for is so much slower in 2011.09 than all later releases that it swamps every other issue I've tested so far.
21:31 lue if my %h = "a"=>1,"b"=2; , Should / %h / be equal to / [ $<a>=1 | $<b>=2 ] / ?    (Just a thought I had last night)
21:33 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:35 lue I'd agree with that, if only because I can't imagine ever needing to match an infinite number of <?> .
21:40 moritz flussence: that will surprise lots of people too
21:41 moritz for example people write regexes like [(\d*)(\D*)]+
21:41 moritz which is pretty much nonsense
21:41 moritz ah well, I guess GIGO
21:48 cibs joined #perl6
21:55 rurban_ joined #perl6
21:59 lue moritz: in the case of [(\d)*(\D*)]+, wouldn't an OK transformation be [(\d)+(\D)+]+ ?
22:00 nyuszika7h joined #perl6
22:02 lue oh, nvm. I'm seeing that as a bad thing now.
22:05 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
22:05 moritz qast-sink-1
22:06 moritz but it still misses a lot of cases where sink context should be applied, and isn't
22:07 japhb Are you going to keep it separate until it's handling all cases, or merge it after this month's star?
22:08 moritz merge it, I think
22:08 moritz that way it'll get more testers
22:08 moritz one thing the branch doesn't do but should is to make 'for' an alias for .map
22:09 moritz (and remove the implict &eager that is currently added, and let sink handle the same thing)
22:09 moritz also, currently it sinks the return value from subroutine or method calls
22:10 moritz I have no idea if that's how it should be
22:12 japhb What is the current difference between for and map, implementation-wise?  I thought they were pretty close to equivalent ....
22:12 japhb (more testers)++
22:12 moritz for is always eager
22:13 moritz (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.  ;-)
22:13 moritz that's why sink context makes it eager
22:14 japhb nodnod
22:14 moritz but in its current, qast-sink-1 busts most spectests when I disable that eagerness
22:15 Entonian joined #perl6
22:16 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:18 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 japhb moritz, ouch.  :-)
22:19 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:21 * japhb had forgotten you could specify that
22:21 TimToady which is why I mentioned it :)
22:22 moritz TimToady: --> Sink is not mentioned in the specs
22:22 TimToady hmm
22:23 sorear japhb: a long time
22:24 moritz the only Sink with capital S is the KitchenSink in the spec
22:24 moritz oh by the way, should we name the method SINK?
22:24 moritz like most other stuff that's called automatically
22:24 TimToady std: sub foo(-->) { ... }
22:24 p6eval std d38bbd0: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤No type found after --> at /tmp/Y2Aw3LKw73 line 1:â�¤------> [32msub foo(-->[33mâ��[31m) { ... }[0mâ�¤    expecting any of:â�¤   nameâ�¤   new name to be definedâ�¤ param_sepâ�¤      routine_defâ�¤    signatureâ�¤      type_constraintâ�¤Parse failedâ�¤FAILED 00:00
22:24 p6eval ..42m␤»…
22:25 moritz std: sub foo() returns () { ... }
22:25 p6eval std d38bbd0: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Invalid type name at /tmp/Z7mT0RVY0c line 1:â�¤------> [32msub foo() returns [33mâ��[31m() { ... }[0mâ�¤    expecting typenameâ�¤Parse failedâ�¤FAILED 00:00 42mâ�¤Â»
22:25 TimToady std: sub foo( --> () ) { ... }
22:25 p6eval std d38bbd0: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤No type found after --> at /tmp/Vs08l1vHTm line 1:â�¤------> [32msub foo( --> [33mâ��[31m() ) { ... }[0mâ�¤    expecting any of:â�¤      nameâ�¤   type_constraintâ�¤Parse failedâ�¤FAILED 00:00 42mâ�¤Â»
22:25 moritz std: sub foo() returns  { ... }
22:25 p6eval std d38bbd0: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Invalid type name at /tmp/bi3ZLlYkxL line 1:â�¤------> [32msub foo() returns  [33mâ��[31m{ ... }[0mâ�¤    expecting typenameâ�¤Parse failedâ�¤FAILED 00:00 42mâ�¤Â»
22:25 sorear what are the semantics of KitchenSink?
22:25 moritz none are specced
22:25 TimToady it's a placeholder for something that has an API for the pointy end of ==>
22:26 * moritz goes to bed, and replaces himself with a placeholder that can stay on IRC
22:26 TimToady std: sub foo( --> Nil ) {...}
22:26 p6eval std d38bbd0: OUTPUT«ok 00:00 43m␤»
22:26 TimToady maybe that's what it mutate into
22:27 TimToady I can see routines that always return True, or always return () though
22:28 TimToady std: sub foo( --> True ) {...}
22:28 p6eval std d38bbd0: OUTPUT«ok 00:00 43m␤»
22:29 TimToady anyway, --> Nil seems like pretty good documentation of a procedure done only for its side-effects
22:30 TimToady can't really go with a 'proc' keyword, since methods also can do that
22:30 TimToady I suppose a method might want to specify --> self
22:30 TimToady (for the style where you apply mutator methods)
22:31 TimToady one could go as far as --> $result to support that style even
22:33 TimToady that is, declare a variable whose contents are automatically returned
22:33 TimToady we've sort of intentionally left room in the grammar for these variants, if we decide we want them someday
22:35 TimToady 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:37 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 #perl6
22:41 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:42 arnsholt Yeah, I was going for Pod6
22:42 arnsholt Are the specs actually Pod5?
22:45 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:46 lue arnsholt: All but S26, which is about Pod6.
22:48 lue (I imagine once there's a complete Pod6->HTML generator, there'll be a big effort to convert all the specs appropriately)
22:49 arnsholt Right, right. That makes sense =)
22:49 sorear Pod6 is quite close to PseudoPod
22:51 TimToady felher: presumably
22:51 cognominal joined #perl6
22:51 TimToady you could even say --> Str $result = "foobar"
22:52 felher TimToady: hm, nice
22:58 dalek std: a8bc48f | larry++ | STD.pm6:
22:58 dalek std: make --> more like a normal parameter
22:58 dalek std: review: https://github.com/perl6/std/commit/a8bc48fc2c
23:01 lue I'm getting an invalid BUILDALLPLAN trying to use Grammar::Debugger
23:02 flussence I've had that every time I've tried using it, going back 3-4 months :/
23:04 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)
23:04 lue perl6-debug works well enough with regexes though.
23:05 diakopter er, pop or shift.
23:05 TimToady that depends on whether there's a list to ask for another element, not on how you mark things
23:05 rurban_ joined #perl6
23:06 diakopter why wouldn't there be a list
23:06 TimToady there's no list if nothing was planned
23:06 sizz joined #perl6
23:06 TimToady just the array
23:07 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?
23:08 diakopter (by another thread)
23:08 TimToady if someone else is supplying the elements, the default is to wait for them
23:08 TimToady it's up to the other end to decide whether to block or fail
23:09 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␤␤»
23:10 diakopter it failed.. (what I expected) but I thought you said the default was to block
23:11 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
23:12 p6eval rakudo 50be5d: OUTPUT«===SORRY!===␤Confused␤at /tmp/vCeOf5TMrm:1␤»
23:12 sorear we shouldn't force
23:12 TimToady diakopter: "if someone else is supplying the elements"
23:12 sorear lists should not be concurrent data structures: don't force everyone to pay for the cost of a condvar/mutex
23:12 diakopter there are ways to have itboth ways.
23:13 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␤␤»
23:13 diakopter r: my Array @a = []; say pop @a
23:13 p6eval rakudo 50be5d: OUTPUT«␤»
23:14 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␤␤»
23:14 * TimToady though rakudo implemented .plan at one point
23:14 TimToady *ght
23:14 diakopter sorear: non-blocking data structures don't need a mutex
23:15 * TimToady blocks on a nap &
23: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:20 sorear *headdesk*
23:21 diakopter it just needs a thread id marker, and one check
23:21 diakopter (and the interrupt request system, of course)
23:21 sizz joined #perl6
23:22 diakopter why headdesk? if you think I'm that stupid, please explain how.
23:27 * diakopter waits for sorear to lift his head off his desk
23:30 flussence I'd rather have something like inotify for variables and build threaded stuff around that.
23:30 sorear diakopter: you cannot asynchronously notify a thread that is not expecting asynchronous notification.
23:31 sorear lists can be passed between threads, even implicitly, so it is not possible to know their owner.
23:31 diakopter creator, I meant
23:32 diakopter like I said, there would have to be the interrupt system
23:32 sorear I heard Moose is slow, is this true?
23:32 sorear [...] 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.
23:33 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
23:33 diakopter <eye roll>
23:33 sorear I am likely to fork the language over this issue.
23:33 sorear because I see #perl6ers flaunting it DAILY
23:35 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 sorear niecza's lists will never be implicitly concurrent.  this is final.
23:37 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 diakopter I'm not arguing for niecza to support anything
23:38 diakopter sorear: in a multi-threaded program, how will you know when to use locks on every operation on a data structure?
23:39 diakopter (otherwise mutating structures can interleave with ill effect)
23:39 diakopter (also, as of course you know, locks don't scale)
23:40 diakopter sorear: you're effectively saying that niecza will never support passing built-in data structures between threads
23:40 diakopter (unless you use locks, which don't scale)
23:41 diakopter 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
23:41 sorear you can pass an array from one thread to another, as long as the passer then ceases to use it.
23:42 sorear quite simply, I think List<> and ConcurrentQueue<> should be separate types.
23:42 sorear if you want the latter, import it from Threads and use it.
23:42 sorear you say that ConcurrentQueue<> can be made as fast and efficient as List<>
23:42 sorear I do not beleive you
23:42 diakopter where did I say that
23:43 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 sorear if upgradable lists were as easy as you think, .net would have them already
23:44 sorear I'm willing to be proven wrong, but only by code
23:44 diakopter I didn't say it was easy
23:44 diakopter I've been working on a concurrent deque with random access for months
23:46 diakopter .net doesn't have such things because nobody's ever made a concurrent deque with random access.
23:46 diakopter er, non-blocking.
23:47 diakopter s/made/published/
23:53 jnthn o/ from London
23:53 jnthn (momentarily...about to sleep)
23:56 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:57 flussence s/if/while/ maybe
23:58 diakopter there is still periodic polling, of a message queue if not an attempt at the whole operation
23:58 rurban_ joined #perl6

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

Perl 6 | Reference Documentation | Rakudo