»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo:, alpha:, pugs:, std:, or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by lichtkind on 5 March 2010.
00:11 yinyin joined
sorear jnthn: Hi! 00:21
00:35 vdo left 01:00 snarkyboojum left
lue o hello! 01:06
01:08 lest_away is now known as lestrrat 01:20 BrowserUk joined, BrowserUk left 01:28 justatheory joined 01:40 alester joined, snarkyboojum joined
lue hello? 01:40
colomon hears nothing but silence.... 01:41
snarkyboojum hilue
lue I don't hear TimToady's cricket 01:42
sorear I don't hear jnthn either
snarkyboojum hears the gentle rumble of snoring 01:43
colomon actually it's the gentle rumble of purring here. 01:44
lue hates the fact that it's always dead when he can get online :/
snarkyboojum we need a 'per6 irc log with playback; feature :P 01:45
01:46 Targhan joined
snarkyboojum how's binding looking lue? 01:46
lue P6DVR...
binding?
oh!
Still researching :/
Targhan Is rakudo supposed to be compilable on a windows platform, and pass a majority of the tests that it does on Linux? 01:47
snarkyboojum ah v. good - read your blog post
Targhan: I think so, one of the primary devs works on windows (someone correct me if I'm wrong)
Targhan I've been interested in getting into perl 6 dev stuff and have decided I don't want to setup a linux machine at home 01:48
but the instructions are a bit spartan. happen to know who does dev on windows?
lue you wouldn't believe how hard it is to find where variables are initialized (then again, when I was told there was no API...)
snarkyboojum Targhan: jnthn - one the main men :) 01:49
Targhan Hmmm sourceforge.net/projects/parrotwin32/files/ seems to have some information
Thanks the tip
snarkyboojum there's a binary distribution for win too I think
sorear lue: I know right now exactly how to implement binding in Rakudo
colomon I think jnthn develops on Windows, but I think he's on a plane at the moment.
Targhan Hmmm nevermind, that page is just binaries
lue how?
sorear lue: Wake up TimToady so I can ask him one question
lue: Once you've done that, I'll add binding to one of my rakudo forks 01:50
Targhan I'm looking for the checklist of things to install to actually build on windows
like I installed msysgit, which in turn wants svn installed so it can load the pugs unit tests.
snarkyboojum Targhan: where are you looking?
Targhan and I highly doubt windows comes with a C compiler standard so I know I'll need that too
snarkyboojum Targhan: yep - you will :)
Targhan well I did a git clone on the repository and looked at the README
lue swipes TimToady's cricket
sorear snarkyboojum: jnthn is on Windows 01:51
Targhan interestingly msysgit comes with perl 5.8.8
snarkyboojum sorear: aye - thought so ^^
Targhan anyway I'll hack around some more on my own. In theory I shouldn't need handholding for this part.
01:51 molaf joined
snarkyboojum Targhan: should just be a matter of building parrot and then rakudo. Having said that I've never done either on windows, but have fun! 01:55
Targhan well the issue is more that windows comes with far fewer programming tools than linux, and the build process can take a lot of them for granted 01:56
like the readme says you need unicode libraries installed, which I assume linux has for free and is non-standard on linux
snarkyboojum Targhan: aye. I remember reading about people building rakudo with mingw on one of the mailing lists 01:57
lue
.oO(wow! this is in Actions.pm: my $name := $sigil ~ $twigil ~ $desigilname;)
.oO( := )
snarkyboojum Targhan: the unicode libraries (ICU) are optional, but some features mightn't work fully without them
PerlJam lue: nqp doesn't do assignment. 01:58
colomon lue: nqp uses := everywhere.
lue oh yeah. I forgot the part where nqp parses all the p6 :P
snarkyboojum nqp only does binding right? 01:59
ah - colomon's statement :)
02:00 Psyche^ joined
lue wonders if there's a unicode glyph for face in hands, or pulling hair 02:00
sorear Targhan: You're only like the fifteenth person who has read our README and concluded ICU was required
Targhan: What sentence do we need to fix?
There's obviously a bug in it.
lue: shouldn't be. 02:01
diakopter m( <--- facepalm
02:01 Patterner left, Psyche^ is now known as Patterner 02:02 wknight8111 left
lue Let ye who live without Unicode, suffer. Seriously, unicode plays an important role in P6. At some point, it ought to be required. 02:03
sorear Unicode is required. ICU isn't 02:05
lue hm, apparently, some forms of := call a BIND function... 02:06
sorear (insofar as the standard library is full of French quotes, and you'll need to build that)
lue: cite?
lue in core/operators.pm 02:08
!BIND is in builtins/Signature.pir
02:09 justatheory left
sorear rakudo sources are never to be considered normative 02:09
lue that's where I got it. It's for Signatures, apparently :/ 02:10
sorear the binder is *scary* 02:11
lue and it wouldn't work for two Mu's anyway. 02:13
snarkyboojum how did it work in alpha?
02:14 alester left
lue rakudo: my $a = 3; my $b := $a; $b = 6; say $a; 02:14
p6eval rakudo 27e05a: OUTPUT«:= binding of variables not yet implemented␤current instr.: '&die' pc 17905 (src/builtins/Junction.pir:393)␤»
lue alpha: my $a = 3; my $b := $a; $b = 6; say $a;
p6eval alpha 30e0ed: OUTPUT«6␤»
lue dashes to alpha source 02:15
first of all, it's PIR code, and it's in [alpha's] builtins/assign.pir 02:21
no guarantees it would work though. Can't be that easy...
02:21 JimmyZ joined
sorear keep in mind that alpha and ng are ~unrelated 02:21
colomon rakudo: my @array = 'a'..'f'; my %hash = @array »=>» 1; say %hash.perl 02:22
p6eval rakudo 27e05a: OUTPUT«{"c" => 1, "d" => 1, "e" => 1, "f" => 1, "a" => 1, "b" => 1}␤»
02:22 mtnviewmark joined
lue of course. seems a bit suspicious. Do we have Perl6Scalar in master? 02:23
sorear alpha doesn't have := in assign.pir 02:25
you're looking at the implementation of =
:= is somewhere else entirely
and it IS that easy, but you just won't listen to me
lue I could swear that was := at the beginning... oh well.
sorear infix:= means "infix" : "=" 02:26
see also infix:~~, infix:+, etc
lue sorear: I don't recall you saying anything about the difficulty of binding (quick backlogging)
sorear the implementation of := appears to be at line 143 of src/parser/grammar-oper.pg
lue thank you (looking) 02:27
.oO(if only I knew where in the guts variables are being created. Either there's a perception filter or I'm just thick :D)
02:36
02:39 agentzh joined
sorear whee, record rakudobuild speed 02:39
10m15s real 02:40
lue ooh. 02:41
02:44 mtnviewmark left 02:46 snarkyboojum left 02:48 molaf left 02:49 snarkyboojum joined
Tene oh, right, I need to try building rakudo on my new laptop. 02:49
snarkyboojum rakudo builds quickly on my new i7 (macbook pro) :) 02:50
02:50 molaf joined
JimmyZ new++ 02:51
lue sb: :O 02:59
me wants macbook pro D:
afk 03:04
03:08 justatheory joined 03:12 JimmyZ left 03:22 jaldhar_ left, jaldhar_ joined
snarkyboojum just discovered --makefile-timing 03:26
:)
03:35 am0c left, justatheory left 03:36 gfx joined, snarkyboojum left 03:47 suz joined 03:49 molaf left, suz left 03:50 am0c joined 03:51 snarkyboojum joined
Tene real3m35.708s 03:52
user4m27.422s
sys0m3.278s
snarkyboojum I break the 3min mark on my new lappy 03:55
snarkyboojum shuts up about the new laptop :)
03:56 skangas joined
diakopter I bloggeth'd: diakopter.blogspot.com/2010/05/jsme...smeta.html 03:59
dalek kudo: 3d3893a | (Martin Berends)++ | tools/test_summary.pl:
tools/test_summary.pl now logs Parrot and Rakudo versions, and has a much better report example
04:03
snarkyboojum diakopter: v. cool post 04:05
diakopter thanks 04:09
snarkyboojum that Callable sytnax really isn't pleasant on the eyes eh (not that I understand it - which could be part of the problem perhaps) 04:10
diakopter Callable[:(ParamType0, ParamType1, ParamType2 --> ReturnType)] 04:11
I think the :() is a filter of some sort
actually it's not all that different from C#'s
Func<ParamType0, ParamType1, ParamTypee, ReturnType> 04:12
04:30 am0c left, finanalyst joined 04:33 rv2733 left 04:35 LionMadeOfLions joined 04:38 Targhan left
snarkyboojum in hindsight, I'm unqualified to comment :) 04:38
04:40 Targhan joined 04:42 alester joined
plobsing diakopter: have you considered the cheney/mta method as an alternative to trampolining? 04:46
04:57 hercynium left
sorear Tene: is that on master or codestring? 05:01
er, trunk or codestring 05:02
sorear wants to add better instrumentation to PCT 05:04
finanalyst good localtime. Any one here know what's happening to regex on rakudo recently 05:06
sorear Please elaborate. 05:17
What are the symptoms?
finanalyst i have been trying to get regex to work. 05:18
rakudo: my $x='qw=345 er=12'; $x ~~ m/ (<digit>+) /; .say for @($/)
p6eval rakudo 3d3893: OUTPUT«Method 'say' not found for invocant of class 'Regex;Match'␤current instr.: '_block68' pc 889 (EVAL_1:293)␤»
sorear don't use .say
use say $_
.say only works on Perl6 objects
finanalyst rakudo: my $x='qw=345 er=12'; $x ~~ m/ (<digit>+) /; for @($/) { say $_} 05:19
p6eval rakudo 3d3893: OUTPUT«345␤»
sorear the rakudo regex engine is a foreign call and returns foreign objects
05:19 jonrafkind left
sorear (masak plan to fix that eventually) 05:19
05:19 kaare joined
finanalyst rakudo: my $x='qw=345 er=12'; $x ~~ m/ (<digit>+) + /; for @($/) { say $_} 05:19
p6eval rakudo 3d3893: OUTPUT«345␤»
05:20 kaare is now known as Guest98903
sorear This is a very important principle of regex. It only matches things that are in the pattern. 05:20
finanalyst rakudo: my $x='qw=345 er=12'; $x ~~ m:g / (<digit>+) /; for @($/) { say $_}
p6eval rakudo 3d3893: OUTPUT«Could not find sub &m:g␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
sorear You told it to match contiguous sequences of digits. You can't have " er=" in a contiguous sequence of digits.
finanalyst so how do i parse the whole sequence? 05:21
and then extract the digit bits
i thought i had it figured out for alpha and wrote working code, but the code doesnt work any moe 05:22
sorear rakudo: 'qw=345 er=12' ~~ m/ [(<digit>+) .*?]* /; for @() { say $_ }
p6eval rakudo 3d3893: ( no output )
sorear not sure if that'll work
ok
rakudo: 'qw=345 er=12' ~~ m/ [(<digit>+) .*?]* /; for @($/) { say $_ }
p6eval rakudo 3d3893: OUTPUT«␤»
finanalyst rakudo: 'qw=345 er=12' ~~ m/ (<!digit>+ <digit>+)+ /; for @($/) { say $_ } 05:24
p6eval rakudo 3d3893: ( no output )
finanalyst rakudo: '123456' ~~ m/(<digit>)+/; for @($/) { say $_ } 05:26
p6eval rakudo 3d3893: OUTPUT«123456␤»
sorear rakudo: say 'qw=345 er=12'.comb(/(<digit>)+/).eager.perl
p6eval rakudo 3d3893: OUTPUT«("345", "12")␤»
sorear rakudo: say 'qw=345 er=12'.comb(/\d+/).eager.perl
finanalyst ahhhhh light dawns
p6eval rakudo 3d3893: OUTPUT«("345", "12")␤»
finanalyst thank you 05:27
sorear could also do 05:28
finanalyst rakudo say 'dw=345 er=12'.comb(/.*?\=<digit>+/).eager.perl 05:29
sorear rakudo: grammar Pairs { rule pair { (\w+) "=" (\d+) { make($0 => $1) } }; rule TOP { <pair>* { my %h = $<pair>».ast; make %h } }; }; Pairs.parse('qw=345 er=12').ast.perl.say 05:30
p6eval rakudo 3d3893: OUTPUT«Method 'list' not found for invocant of class 'ResizablePMCArray'␤current instr.: '!dispatch_method_parallel' pc 357 (src/glue/dispatch.pir:71)␤»
sorear or not 05:31
finanalyst rakudo: say 'dw=345 er=12'.comb(/.*?\=<digit>+/).eager.perl
p6eval rakudo 3d3893: OUTPUT«("dw=345", " er=12")␤»
finanalyst rakudo: say 'dw=345 er=12'.comb(/(\w+) "=" (\d+)/).eager.perl 05:32
p6eval rakudo 3d3893: OUTPUT«("dw=345", "er=12")␤»
05:41 Heame joined, Heame left 05:44 bakedb__ joined
finanalyst rakudo: my rule pair { (\w+) "=" (\d+) { make($0 => $1) } }; 'qw=12 er=34' ~~ m/<pair>*/ 05:51
p6eval rakudo 3d3893: OUTPUT«Method 'pair' not found for invocant of class 'Regex;Cursor'␤current instr.: '_block96' pc 1364 (EVAL_1:439)␤»
finanalyst std: my rule pair { (\w+) "=" (\d+) { make($0 => $1) } }; 'qw=12 er=34' ~~ m/<pair>*/ 05:52
p6eval std 30610: OUTPUT«ok 00:01 115m␤»
finanalyst sorear: rakudo not accepting named rules/regexen
can this be true? 05:53
sorear finanalyst: we're still failing over 8,000 tests 05:54
05:54 uniejo joined 06:03 gfx left
finanalyst sorear: ok, i understand. its just that matching and grammars are such an important part of perl6, I thought it would be one of the first things to be de-bugged 06:05
sorear matching and grammars are one of the most complicated parts of perl6 06:06
we don't currently implement /any/ of it
"grammar" and // in Rakudo is just a foreign call to Regex::Cursor:from<parrot> 06:08
it's the same PEG engine which runs Perl6::Grammar
since it's just a bootstrap engine, it's quite limited
also, it returns :from<parrot> objects, which do not inherit from Mu and do not support methods like .say 06:09
phenny: tell jnthn that I hear you're an expert on YOU_ARE_HERE. Would you review topic/lexical-persistence on my rakudo github fork? It implements proper "my" handling in the REPL 06:11
phenny sorear: I'll pass that on when jnthn is around.
finanalyst sorear: thank you for the explanation. 06:22
sorear on the silver lining side, this means that you can just take a Rakudo m// object and monkeypatch it into the Perl6::Grammar symbol table and it *just works* 06:25
macros would have been at least 10x harder if we weren't relying on the bootstrap regex engine for user code
06:28 JimmyZ joined 06:32 agentzh left 06:40 alester left
pugssvn r30611 | moritz++ | [t/spec] be more liberal with expected error in rx.t 06:40
moritz_ diakopter++ # some seriously cool blogging 06:49
finanalyst sorear: could you give an example of how to monkeypatch m// into Perl6::Grammar symbol table 06:50
sorear macro term:<tomorrow> { "now + 86400" } 06:53
moritz_ rakudo: multi sub a($, $) { } 06:57
p6eval rakudo 3d3893: ( no output )
moritz_ still uses the old parrot 06:58
rakudo: my @a = <a b c>; my %h = @a Z 1 xx * 07:04
p6eval rakudo 3d3893: ( no output ) 07:05
moritz_ rakudo: my @a = <a b c>; my %h = @a Z 1 xx *; say %h.perl
p6eval rakudo 3d3893: ( no output )
07:06 Su-Shee joined 07:08 lestrrat is now known as lest_away
dalek p-rx: 9d4c8a9 | sorear++ | src/NQP/Compiler.pir:
Add to command options, not overwrite them

accessible because the "larger" list of command options we used didn't include it).
07:17
Tene sorear: master 07:20
sorear: I'm way out of touch. I don't know what any of the branches are anymore. 07:21
sorear Tene: the "codestring" parrot branch speeds up rakudobuilds by about 20% (if you apply a NQP-rx patch in topic/no-codestring-target) 07:22
124 seconds to parse (and run action methods for) the setting 07:24
53 seconds in PAST::Compiler
185 seconds in POST::Compiler 07:27
peak memory usage 300M
for Test.pm, the breakdown is 5.6/1.7/1.1 07:29
07:31 viklund joined
sorear moritz_: Could you look over topic/stagestats? 13 lines had to be changed to get those numbers 07:32
07:33 meppl joined
moritz_ sorear: sorry, have to run now, will try to look later 07:42
07:44 quester_ joined 07:45 [mark] joined 07:52 Maddingue joined
sorear moritz_: Is there a better way to get patches looked at? (should I be sending them to RT?) 07:54
08:06 agentzh joined
JimmyZ I think the better way is to send a CLA 08:09
moritz_ sorear: yes, RT is canonical 08:12
08:12 agentzh left
moritz_ sorear: currently the situation for patches is rather bad, with pmichaud not having really returned yet, and jnthn being stuck in Iceland 08:13
08:13 lisppaste3 left
moritz_ sorear: anyway, persistent REPL and macros are so cool, we'll surely bother either of them until they've reviewed the patches 08:16
sorear: another thing... rakudo needs to implement the \e escape in regexes; I've tried adding it to Perl6::Grammar and it seemed not to havy any effect... do you know why? 08:18
does regex parsing recurse into the nqp-rx grammar, maybe?
diakopter: can you somehow tag your Perl 6 relateed blog posts, so that we can assemble them with planetsix? 08:21
08:21 dakkar joined
JimmyZ where is it? 08:21
moritz_ diakopter.blogspot.com/ 08:22
JimmyZ thanks. 08:25
08:29 plobsing left 08:31 quester_ left 08:32 JimmyZ left 08:34 masak joined
masak oh hai, #perl6 08:34
moritz_ \o/ it's masak 08:35
masak \o/
08:41 agentzh joined
masak diakopter++ # diakopter.blogspot.com/2010/05/jsme...smeta.html 08:44
it is informative to have things presented in the blog post format like this. 08:45
is 'middle end' an established CS term? because it's really an oxymoron. :) 08:46
moritz_ the middle also ends somewhere :-)
masak that's more of a pun than an excuse. :) 08:48
moritz_ likes puns 08:50
masak time puns like an arrow. 08:51
moritz_ I don't like all puns, though :-) 08:52
masak :P
from the latest Design Minutes: 'STD now allows subscripts on regex variables so $x[0] isn't taken as a character class; still needs speccing' 08:55
wouldn't that follow implicitly from variable interpolation working the same in regexes as in double-quoted strings? 08:56
moritz_ it should
std: my $x; / $x.join() /
p6eval std 30611: OUTPUT«ok 00:01 113m␤»
masak hm. reading on in the minutes, it seems they aren't though.
moritz_ std: / () / 08:57
masak bare arrays interpolate.
p6eval std 30611: OUTPUT«===SORRY!===␤Null pattern not allowed at /tmp/QRNPaNrRp2 line 1:␤------> / (⏏) /␤ expecting regex atom␤Parse failed␤FAILED 00:01 110m␤»
moritz_ masak: right
but that's fine, IMHO
because @ is already disallowed
because it's non-alpha but has no specific extra meaning 08:58
so there's no ambiguty
(that's why TimToady and pmichaud talked about bare @, iiuc)
masak *nod*
moritz_ std: / @ /
p6eval std 30611: OUTPUT«===SORRY!===␤Unrecognized regex metacharacter (must be quoted to match literally) at /tmp/ERkC3wREUP line 1:␤------> / @⏏ /␤Can't call method "_REDUCE" on unblessed reference at Cursor.pm line 731.␤FAILED 00:01 113m␤»
masak moritz_: somehow I feel Aristotle is onto something here: use.perl.org/comments.pl?sid=44812&cid=71979 09:03
but I can't quite figure out how it should be.
moritz_ X is wrong; colomon++ is right
or, wait 09:04
masak colomon? where is he right?
moritz_ rakudo: say (1, 2, 3 X 'a', 'b').perl
p6eval rakudo 3d3893: OUTPUT«(1, "a", 1, "b", 2, "a", 2, "b", 3, "a", 3, "b")␤»
moritz_ masak: didn't he comment there too?
masak ah, yes. now I see. 09:05
09:05 molaf joined
moritz_ rakudo: say (1, 2, 3 X 'a').perl 09:05
masak >>=>>> strikes again!
p6eval rakudo 3d3893: OUTPUT«(1, "a", 2, "a", 3, "a")␤»
masak colomon++
moritz_ so, that does seem to be right
rakudo: my @a = <a b c>; say @a X 1
p6eval rakudo 3d3893: OUTPUT«a 1b 1c 1␤»
masak some day I hope to be able to reach for that idiom first thing :)
moritz_ rakudo: my @a = <a b c>; say (@a X 1).perl 09:06
p6eval rakudo 3d3893: OUTPUT«("a", 1, "b", 1, "c", 1)␤»
moritz_ oh, aristotle++
rakudo: my @a = <a b c>; my %h = @a X 1; say %h.perl
p6eval rakudo 3d3893: OUTPUT«Odd number of elements found where hash expected␤current instr.: '&die' pc 17905 (src/builtins/Junction.pir:393)␤»
moritz_ rakudo: my @a = <a b c>; my %h = (@a X 1); say %h.perl
p6eval rakudo 3d3893: OUTPUT«Odd number of elements found where hash expected␤current instr.: '&die' pc 17905 (src/builtins/Junction.pir:393)␤» 09:07
moritz_ so, what's wrong? flattening?
rakudo: my @a = <a b c>; say (@a X 1).elems
p6eval rakudo 3d3893: OUTPUT«3␤»
moritz_ rakudo: my @a = <a b c>; say (@(@a X 1)).elems
p6eval rakudo 3d3893: OUTPUT«3␤»
moritz_ it seems very contradictory that .perl returns a 6-elem list, and .elems reports 3 09:08
09:09 snarkyboojum left 09:10 lest_away is now known as lestrrat
moritz_ rakudo: my @a = <a b c>; my %h = (@a XZ 1); say %h.perl 09:10
p6eval rakudo 3d3893: OUTPUT«Odd number of elements found where hash expected␤current instr.: '&die' pc 17905 (src/builtins/Junction.pir:393)␤» 09:11
moritz_ rakudo: my @a = <a b c>; my %h = (@a X=> 1); say %h.perl
p6eval rakudo 3d3893: OUTPUT«{"a" => 1, "b" => 1, "c" => 1}␤»
masak ah! X=> 09:17
I think that was the solution my brain might have been groping for. moritz_++ 09:18
moritz_ it seems that @list >>op>> scalar is the same as @list Xop scalar 09:21
masak the former runs the scalar in parallel, and the latter serially? :P 09:27
moritz_ that's a good point... does X imply order of execution? 09:28
I guess it does, since it's a bit lazier
masak I think it has to, if it's to handle infinite arrays and ranges. 09:29
there's this fundamental tension between lazy and hyper...
just as in real life :P you seldom see someone being lazy and hyperactive at the same time.
09:31 felipe left
masak rakudo: my $x='qw=345 er=12'; say $x.comb(/ <digit>+ /).perl.say 09:33
p6eval rakudo 3d3893: OUTPUT«("345", "12")␤1␤»
masak rakudo: my $x='qw=345 er=12'; say $x.comb(/ <digit>+ /).perl
p6eval rakudo 3d3893: OUTPUT«("345", "12")␤»
finanalyst masak: you repeated a snippet of mine. I am trying to generate a hash from a string like 'key=val key2=val2' 09:35
rakudo is not matching spec yet, so i am trying to find a workaround, or if rakudo is right, what the correct syntax is 09:36
masak rakudo: say 'qw=345 er=12'.comb( / \w+ '=' \d+ /).perl
p6eval rakudo 3d3893: OUTPUT«("qw=345", "er=12")␤»
masak does that help?
moritz_ rakudo: my $x='qw=345 er=12'; say $x.comb(/ <digit>+ /, :match).perl
p6eval rakudo 3d3893: OUTPUT«Method 'perl' not found for invocant of class 'Regex;Match'␤current instr.: 'perl6;Iterator;_block15200' pc 461810 (src/gen/core.pir:61777)␤»
finanalyst not quite because comb gives a list of strings of the form 'key=val' 09:38
moritz_ rakudo: my %h = 'qw=345 er=12'.comb( / (\w+) '=' (\d+) /, :match).map({; .[0] => .[1]}); say %h.perl
p6eval rakudo 3d3893: OUTPUT«Method 'postcircumfix:<[ ]>' not found for invocant of class ''␤current instr.: '!postcircumfix:<[ ]>' pc 11329 (src/builtins/Role.pir:26)␤»
moritz_ rakudo: my %h = 'qw=345 er=12'.comb( / (\w+) '=' (\d+) /, :match).map({say $_.WHAT; .[0] => .[1]}); say %h.perl
p6eval rakudo 3d3893: OUTPUT«Regex::Match()␤Regex::Match()␤Method 'perl' not found for invocant of class 'Regex;Match'␤current instr.: 'perl6;Pair;perl' pc 495355 (src/gen/core.pir:73515)␤»
masak finanalyst: yes, but you can loop on those, split on the '=' and assign to the hash.
moritz_ rakudo: my %h = 'qw=345 er=12'.comb( / (\w+) '=' (\d+) /, :match).map({say $_.WHAT; $_.[0] => $_.[1]}); say %h.perl 09:39
p6eval rakudo 3d3893: OUTPUT«Regex::Match()␤Regex::Match()␤Method 'perl' not found for invocant of class 'Regex;Match'␤current instr.: 'perl6;Pair;perl' pc 495355 (src/gen/core.pir:73515)␤»
moritz_ rakudo: my %h = 'qw=345 er=12'.comb( / (\w+) '=' (\d+) /, :match).map({say $_.WHAT; ~$_.[0] => ~$_.[1]}); say %h.perl
p6eval rakudo 3d3893: OUTPUT«Regex::Match()␤Regex::Match()␤{"er" => "12", "qw" => "345"}␤»
moritz_ rakudo: my %h = 'qw=345 er=12'.comb( / (\w+) '=' (\d+) /, :match).map({~$_.[0] => ~$_.[1]}); say %h.perl
p6eval rakudo 3d3893: OUTPUT«Method 'postcircumfix:<[ ]>' not found for invocant of class ''␤current instr.: '!postcircumfix:<[ ]>' pc 11329 (src/builtins/Role.pir:26)␤»
moritz_ rakudo: my %h = 'qw=345 er=12'.comb( / (\w+) '=' (\d+) /, :match).map({; ~$_.[0] => ~$_.[1]}); say %h.perl
p6eval rakudo 3d3893: OUTPUT«Method 'postcircumfix:<[ ]>' not found for invocant of class ''␤current instr.: '!postcircumfix:<[ ]>' pc 11329 (src/builtins/Role.pir:26)␤»
moritz_ rakudo: my %h = 'qw=345 er=12'.comb( / (\w+) '=' (\d+) /, :match).map({say $_.WHAT; ~$_.[0] => ~$_.[1]}); say %h.perl
p6eval rakudo 3d3893: OUTPUT«Regex::Match()␤Regex::Match()␤{"qw" => "345", "er" => "12"}␤»
moritz_ why does it work with the say(), but not without? 09:40
rakudo: my %h = 'qw=345 er=12'.comb( / (\w+) '=' (\d+) /, :match).map({say $_.WHAT; ~.[0] => ~.[1]}); say %h.perl
masak snickers at 'jnthn is an expert at YOU_ARE_HERE' in the backlog
p6eval rakudo 3d3893: OUTPUT«Regex::Match()␤Regex::Match()␤{"er" => "12", "qw" => "345"}␤»
masak I'm sure he is, it just sounds funny :P
moritz_ rakudo: my %h = 'qw=345 er=12'.comb( / (\w+) '=' (\d+) /, :match).map({say 1; ~.[0] => ~.[1]}); say %h.perl
p6eval rakudo 3d3893: OUTPUT«1␤1␤{"er" => "12", "qw" => "345"}␤»
moritz_ rakudo: my %h = 'qw=345 er=12'.comb( / (\w+) '=' (\d+) /, :match).map({1; ~.[0] => ~.[1]}); say %h.perl
p6eval rakudo 3d3893: OUTPUT«{"er" => "12", "qw" => "345"}␤»
moritz_ finanalyst: there you go
masak moritz_++
finanalyst moritz_++
moritz_ it's the auld hash vs. block
need a statement that doesn't look like a hash constructor to fool Rakudo 09:41
finanalyst in alpha {; ...} was sufficient
szabgab hi everyone 09:42
moritz_ and it should be; so should access to $_
hi szabgab
szabgab you might recall that we are going to have a Perl booth on LinuxTag in Berlin in June
finanalyst rakudo: {; $a => 1 }.WHAT.say
p6eval rakudo 3d3893: OUTPUT«Symbol '$a' not predeclared in <anonymous>␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 152 (compilers/pct/src/PCT/HLLCompiler.pir:108)␤»
szabgab where we would also like to show Rakudo
is there anyone here who could attend the event and help us ? 09:43
finanalyst rakudo: my $a; {; $a => 1}.WHAT.say; {1; $a => 1}.WHAT.say
p6eval rakudo 3d3893: OUTPUT«Hash()␤Block()␤»
09:44 yinyin left
szabgab I guess it is a "no" 09:44
so 2nd issue:
we need to fill out a form for each project so they can list them 09:45
does anyone else want to fill the form or shall I do it?
moritz_ for rakudo? or for perl?
szabgab for rakudo 09:46
moritz_ I can do that
szabgab I already did it for perl
then please go to vcc.linuxtag.org/ and fill it out
as much as you can
in "Partner projects, please put #16051 " 09:47
which is the id I have for "Perl"
and the booth is on that name
moritz_ do I need to open an account first?
masak szabgab: dude, you waited like one minute to get a volunteer for the booth. 09:48
szabgab: that's not how IRC works :P
szabgab :-)
finanalyst moritz_: looking at your parse to hash snippet, first time I see ~.[0] What is ~ ?
szabgab I am still waiting, don't worry
moritz_ finanalyst: stringification
finanalyst stringification of what? 09:49
moritz_ of .[0]
finanalyst ohhhhhhh!!!!
szabgab masak, ?
masak szabgab: oh, I'm not volunteering. sorry :/ 09:50
szabgab hah
masak my June is booked.
moritz_ szabgab: it seems that when I add a project, they think I'm going to attend 09:51
09:51 mikehh left
szabgab so what I am saying and asking is for some one or more people to come by during the event and help us out there 09:52
moritz_, and is that a problem?
moritz_ szabgab: don't know. At least it's misleading
szabgab I really don't understand a lot of things about their web site 09:53
moritz_ I'll do it anyway
moritz_ wonders whom to enter for "Press Contact" 09:59
maybe just myself?
masak sure. 10:01
moritz_ done
szabgab and pls let me know the # of the project so I can update it on www.perlfoundation.org/perl5/index....tag_berlin 10:02
10:02 rurban joined
moritz_ szabgab: #16124 10:03
szabgab thanks 10:04
btw I could not build the book
moritz_ what's the problem?
masak missing font? 10:05
szabgab paste.lisp.org/display/99022 10:06
and the pastebot does not work either :-(
oh what a day
and we have sand storm outside
it is stuck there and i don't even know how to exit from that prompt or whatever that is 10:07
moritz_ szabgab: try Ctrl + D 10:08
is build/book.tex empty?
szabgab hmm, indeed that worked
size 0
paste updated 10:09
moritz_ szabgab: that's bad... it means that pod 2 tex translation went wrong, without an error message
did have a failed attempt running 'make' beefore installing the required modules? 10:10
if so, please try 'make clean' before running 'make' again 10:11
10:12 agentzh left 10:17 rurban left
szabgab oh, that improved 10:21
not it asks me to enter file name:
! LaTeX Error: File `bera.sty' not found.
moritz_ there you go
szabgab bbl
cps 10:22
moritz_ I did write in the README that you need the bera latex package :-)
masak <masak> missing font? 10:26
:)
moritz_ hands masak the Successful Application Of Crystal Ball award; Congratulations! :-) 10:27
masak bows humbly
I'd like to thank my parents... 10:28
moritz_
.oO( the Lisp programmer would say: I'd like to thank my parens )
masak *lol*
Su-Shee *hihi* :)
sbp ouch 10:34
colomon rakudo: say (1, 2, 3 X=> 'a').perl 10:41
p6eval rakudo 3d3893: OUTPUT«(1 => "a", 2 => "a", 3 => "a")␤»
masak moritz_: what's currently blocking Match being a real Perl 6 class?
szabgab masak, moritz_ so how do I install that font ? 10:45
colomon Ah, I see moritz_++ eventually figured that one out. (backlogging) 10:46
10:46 molaf left 10:48 vegard left
masak "Proto is I<the> awesome dependency tracking and module installation system." 10:49
no, no, no, no, no! :P
colomon X=> is totally the best solution for @a X=> 1 making pairs, as it will be lazy in @a and its output.
masak *nod* 10:50
moritz_: did you see the two 'website for proto' contributions that just landed on p6c?
my client says they're from two days nad 12 hours ago, respectively. but I got them just now. 10:51
szabgab installing texlive-fonts-extra 10:53
10:59 bacek joined
bacek o/ 11:01
rakudo: my $a="foo"; my $b="bar"; say $a.comb Z $b.comb; 11:02
p6eval rakudo 3d3893: OUTPUT«bbar␤»
colomon bacek: that's the gather bug in action, I'd say.
bacek rakudo: my $a="foo"; my $b="bar"; my@a=$a.comb; my @b=$b.comb; say @a Z @b; 11:03
p6eval rakudo 3d3893: OUTPUT«fboaor␤»
colomon yup
bacek colomon, ok
11:09 clintongormley joined
szabgab book built, thanks 11:14
dalek ok: f20d2ae | (Gabor Szabo)++ | README:
add name of package containing bera in Ubuntu
11:15
11:29 Coleoid left
moritz_ wow, we've got 4 submissions to last week's contribution challenge 11:32
time to prepare the next one; I hope I'll get it posted tomorrow
masak moritz_: in relation to the weekly contributions, I had one loose thought: it would be really nice to get a 'try Rakudo' site up and running. the trick is to divide the task into sufficiently doable chunks. 11:40
moritz_ masak: what would a 'try rakudo' site contain? 11:41
masak tryruby.org/
we had one for Pugs during the Golden Age. 11:42
moritz_ run.pugscode.org
colomon ah, so sorear's improved REPL might be a key component.
masak yeah.
11:43 rv2733 joined
moritz_ it would be really awesome to build such a project step by step 11:44
masak I wouldn't have suggested it if I hadn't seen the amazing progress of last week. 11:45
moritz_ something with many corners to polish :-)
masak so, perhaps one contribution could be to make a pretty js shell, without the Rakudo in it.
and then some enterprising soul can just swoop in and do the deep magic, corresponding to what was done for Pugs. 11:46
moritz_ masak: sounds great; needs more time to prepare 11:47
I'll do a challenge first that fixes up some tests 11:48
masak indeed. just throwing it out before I forget.
moritz_ the most likely place for hosting would be feather3 11:49
and I'm not much of a web person - not sure I'd be the right one to "mentor" it 11:51
I can try though
Juerd Yep, that's what feather3's for 11:52
moritz_ I'm still slightly worried by rakudo not implementing any safety measures
masak aye, that is a cause for concern.
moritz_ www.globalnerdy.com/2010/05/09/new-...ng-jargon/ # I like "Unicorny" 11:56
and "Yoda Conditions"
11:57 envi^home joined
colomon "Drug Report" 11:58
masak "Bicrement"! 12:01
12:03 moritz_ sets mode: +oo colomon masak
masak yeah, the term "Yoda Conditions" will definitely stick. I use those sometimes. 12:08
colomon seems like they are a good idiom for p6
moritz_ from a rational perspective I undstand why they are good 12:09
but it just feels too unnatural
colomon briefly worries that p6 might be insane enough to allow 5 = $a to actually do something to 5....
moritz_ rakudo: 5 = my $a
p6eval rakudo 3d3893: OUTPUT«Cannot assign to readonly value␤current instr.: '&die' pc 17905 (src/builtins/Junction.pir:393)␤»
colomon \o/
masak of course, a good static analyzer would obviate the need for Yoda Conditions. 12:11
moritz_ $ perl -wE 'if ($x = 4) { say $x }' 12:12
Found = in conditional, should be == at -e line 1.
4
perl++
masak \o/
moritz_ std: my $x; if $x = 1 { .say }
p6eval std 30611: OUTPUT«ok 00:01 113m␤»
takadonet morning all 12:15
masak takadonet: \o
12:15 fridim joined
colomon rakudo: my $x = 10; if $x = 4 { say "darn" } 12:15
p6eval rakudo 3d3893: OUTPUT«darn␤»
takadonet ...
moritz_ looks forward to see 'lid' in action 12:16
masak that's the coverage tool :) you're thinking of sigmund.
I have a proof-of-concept p5 sigmund running locally.
moritz_ oh 12:17
masak it barks at me when I put 'self' or attribute twigils in a sub, or when I don't in a method.
that's what it currently does.
colomon is starting to find those new MacBook Pros (now allowing 8GB RAM) very appealing...
moritz_ uhm, isn't allowing 8GB memory standard for non-ancient PC motherboards? 12:18
4 slots which can be equipped with 2G each 12:19
colomon not for laptops, to the best of my knowledge
12:19 fridim left
moritz_ hm 12:19
right, I'm mostly familiar with desktops only
12:20 bluescreen joined
colomon I admit I haven't checked to see if my current MBP could handle 8GB or not. But I thought I max'd out the ram when I bought it... 12:20
12:20 lichtkind joined, bluescreen is now known as Guest54057
colomon basically, spectest + C++ build in under Windows VM has slowed my machine down to a crawl.... 12:20
lichtkind iv seen in Syn 06: macro circumfix:«<!-- -->» ($text) is parsed / .*? / { "" } 12:22
shouldnt it be macro circumfix:«<!-- -->» ($text) is parsed / .*? / #{ "" } ?
masak no, why? 12:23
moritz_ why would the method body be a comment?
s/method/macro/
masak that makes it effectively have no body, which is a parse error.
moritz_ it's just important that it returns an empty string or AST 12:24
masak patrickas++ snarkyboojum++ # test medals and project icons at proto.perl6.org/
time to put project icons in more projects :P 12:25
moritz_ is it documented somewhere how that works?
masak probably only implicitly in source.
moritz_ aka "no"
masak :)
hm, the displacement of the project name 'proto' by the icon feels wrongish.
but displacing all project names could be seen as wrongish too... 12:26
lichtkind masak: your right, thought comments where somewhat preserved in the AST
colomon what do the icons mean?
masak colomon: they're pictographs representing the project in an image form in an ad-hoc manner. 12:27
lichtkind moritz_: i ment you not masak :) 12:28
masak lichtkind: your question is based on a confusion that I, if I were you, would explore carefully.
takadonet nice with the medals! 12:29
masak :)
moritz_ lichtkind: comments have no place in an AST; just in a parse tree
lichtkind: only POD may enter the AST if it is addressable via POD variables
lichtkind moritz_: but i never wrote a parser 12:30
moritz_ lichtkind: time to change that :-)
masak lichtkind: seems you're mixing up use and mention somehow. a comment in the source program is not the same as a comment in a quasiquote.
lichtkind masak: i found out from moritz comment that even if i tried just replace the comment I need to but the expressen inside the braces and use reparsed trait 12:31
moritz_ or just return a string 12:32
which is then reparsed by default
(iirc)
12:33 envi^home left 12:35 SmokeMachine joined
lichtkind yes 12:35
12:35 envi^home joined
lichtkind augment and supersede work only on grammars or on every object? 12:36
moritz_ grammars and classes, I think
12:36 ruoso joined
masak grammars are classes with a funny metaclass. 12:37
augment/supersede decidedly don't work on roles or subtypes, which are immutable.
moritz_ ie "grammars are classes, only not"
masak no, they are classes. no not needed, really. 12:38
in theory, you could emulate a grammar with a class.
moritz_ I know
masak but it'd take a lot of boilerplate.
I do it in GGE :)
moritz_ your statement just got me started
masak github.com/masak/gge/blob/master/ex.../mygrammar
moritz_ ya know, the metaclass is what makes a class a class
masak no, the 'class' keyword is. :) 12:39
moritz_ so "with a funny metaclass" could also describe something that's decidedly very unlike a "standard" class
masak or, ultimately, TimToady is what makes a class a class. :P
12:39 Guest54057 left
moritz_ chuckles 12:39
masak I skipped a few steps :)
lichtkind thank you guys 12:42
12:51 iblechbot joined 12:54 Guest54057 joined 12:59 pmurias joined 13:07 rgrau_ joined
masak is the order between multi candidates which tie (in narrowness layers wider than the layer which succeeds) defined? 13:08
moritz_ doesn't understand the question 13:09
care to re-phrase?
masak sure. give me a minute.
I have candidates foo(Any, Str), foo(Str, Any) and foo(Str, Str). I make the call foo("OH", "HAI"). the MMDer finds foo(Str, Str), which happens to contain a 'nextsame'. which candidate is the next one? 13:10
moritz_ none
oh wait 13:11
hrmpf
13:11 JimmyZ joined, viklund left
masak now generalze that question to all possible candidates, and you have my original question. 13:11
moritz_ you'll get an ambiguous dispatch, no+
masak surely not.
moritz_ why not?
masak all three candidates are in the .WALK chain.
13:11 hatseflats left
masak or whatever chain they're in. 13:11
moritz_ that's what you get if the (Str, Str) doesn't exist
masak sure. 13:12
moritz_ so why not the same behaviour for nextsame()?
13:12 hatseflats joined
masak because the MMD has already done it's job. now it's just a list of decreasingly narrow candidates. 13:13
rakudo: multi foo(Any, Str) { say "A"; nextsame }; multi foo(Str, Any) { say "B"; nextsame }; multi foo(Str, Str) { say "C"; nextsame }; foo("OH", "HAI")
p6eval rakudo 3d3893: OUTPUT«C␤Null PMC access in clone()␤current instr.: '&nextsame' pc 18507 (src/builtins/assign.pir:78)␤»
masak submits rakudobug
moritz_ masak: unless it is really an acyclic graph of candidates, not a list 13:14
masak rakudo: multi foo() { nextsame }; foo() 13:15
p6eval rakudo 3d3893: OUTPUT«Null PMC access in clone()␤current instr.: '&nextsame' pc 18507 (src/builtins/assign.pir:78)␤»
masak moritz_: you might be right. in that case, my question doesn't make much sense. 13:19
I had a mental model of the candidates being collected before the first call, and then just being iterated on successive 'nextsame'-s. 13:20
13:21 Guest98903 left
moritz_ masak: they are collected before the first call, and they are in some kind of datastructur - but it's not a flat list 13:22
masak: more of a directed, acyclic graph 13:23
masak why is that? I mean, why aren't they just in a list? 13:24
moritz_ because (Int, Any) and (Any, Int) can't be ordered one way or another
masak with that reasoning, a list of list would be enough for a data structure.
moritz_ suppose you have (Any, Any), (Any, Int) and (Int, Any) 13:25
now if you call it with (Int, Hash)
the candidate list should be (Int, Any) and (Any, Any)
masak *nod*
moritz_ so you need some kind of treeish construct
masak no, why? 13:26
the list worked fine in this case.
you even called it a 'candidate list' yourself.
[Coke]_ hey, a while back sorear mentioned an nqp-rx patch that worked with parrot's codestring branch. anyone have a pointer to the patch?
moritz_ but how do you efficiently select the candidates?
masak doesn't understand what moritz_ considers to be the problem 13:27
moritz_ [Coke]_: there's a branch on github in the nqp-rx project
13:27 JimmyZ left
moritz_ colomon: called topic/no-codestring-target 13:27
erm, [Coke]_
masak: ok, you have a datastructure of the three signatures above 13:28
masak: and you get an (Int, Hash) signature
masak: how do you assemble the candidate $datastructure?
masak moritz_: oh, I definitely agree that prior to the MMD, the siggies need to be stored in a DAG.
moritz_ ok
masak moritz_: I was talking about during the 'nextsame' phase, though.
moritz_ then you do a dispatch
you look for a candidate on the lowest level of that DAG 13:29
masak 'lowest' as in 'narrowest'?
moritz_ if you have two on the same level, you've got an ambiguous dispatch
yes
13:29 JimmyZ joined
masak moritz_: I know all this. that wasn't my question. 13:29
moritz_ and every candidate connected as "wider" is your "candidate $mumble_data_structure" 13:30
why should it suddenly be a list?
it wasn't a list before
it was a sub-graph of a DAG
masak I just assumed that it needn't be anything more complicated than a list.
moritz_ so you assume the existance of a function that turns that sub-graph into a list 13:31
masak in my model, things would never ambiguous-dispatch after the initial call.
moritz_ which uses some kind of disambiguation
about which you asked in the first place
right?
masak I asked about whether there was an explicit ordering between things which tie. 13:32
that question only makes sense if the list of candidates is a list.
moritz_ a list implies that such an ordering has already been applied
unless it's a list of lists
where the inner lists store tied candidates 13:33
so now I understand why you talked about list of lists :-)
masak aye.
moritz_ so I understand the mental mismatch between our two models
masak the ordering has already been appled, but it might be arbitrary.
moritz_ and can't answer your question :( 13:34
masak I can't get any MMD nextsame to work right now. 13:36
moritz_ neither methods?
rakudo: class A { multi method b(Any $x) { 'any' }; multi method b(Int $x) { say "Int"; nextsame }}; say A.new.b() 13:37
13:37 yakeworld joined
p6eval rakudo 3d3893: OUTPUT«No candidates found to invoke␤current instr.: '_block14' pc 29 (EVAL_1:0)␤» 13:37
moritz_ rakudo: class A { multi method b(Any $x) { 'any' }; multi method b(Int $x) { say "Int"; self.nextsame }}; say A.new.b() 13:38
p6eval rakudo 3d3893: OUTPUT«No candidates found to invoke␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
masak (you need to provide an argument) 13:39
but no, I didn't get them to work either. they also Null PMC access.
this feels like a regression.
moritz_ I thought I've used this somewhere in rakudo 13:40
no, turns out I use callwith() 13:41
in Grammar.parse
masak now, the things you've said above, about 'nextsame' doing a new MMD dispatch. I can see 'callwith' doing that. but not 'nextsame'.
oh wait.
moritz_ I've never said that
masak no, we discussed this the other day. TimToady, jnthn and I. 13:42
'callwith' and 'nextwith' don't do a new dispatch either.
moritz_ in my mental model the candidate has a point to its current position in the DAG
masak they just look in the already collected list for matching siggies.
moritz_ so in my mental picture they walk the DAG into the direction of looser matches 13:43
masak and die on ties?
moritz_ and die on ties
masak that would make C3 dispatch an exception, right? because it provides an ordering where things might otherwise have died. 13:44
lichtkind thanks , and bye
13:44 lichtkind left
masak lichtkind: \o 13:45
13:48 uniejo left 13:50 alester joined
diakopter pmurias: hi 13:53
13:55 JimmyZ left
pmurias diakopter: hi 13:57
phenny pmurias: 09 May 23:32Z <diakopter> tell pmurias it's going to be another few days to finish classes/methods. They're somewhat more complex than I initially thought. But it's all worked out in my head now, so I'm quite certain I can finish them soon.
14:02 PacoLinux joined
dalek meta: r263 | pawelmurias++ | trunk/Sprixel/t/class.t:
start of a test for classes
14:06
diakopter pmurias: I've worked out a way for perlesque classes to be mutually referential 14:09
they have to be gradually typed... 14:10
pmurias with predeclarantion?
diakopter yes, but the attributes/methods must be predeclared as well
the types of the attributes and the signatures of the methods 14:11
pmurias gradual typing as in ecee.colorado.edu/~siek/gradualtyping.html?
diakopter: why do attributes/methods have to be predeclared? 14:12
14:13 envi^home left
finanalyst rakudo: class AB{has @.x; method aa { .say for @x; .say for @.x[1 ..^ +@.x] } };my AB $y .=new(:x(1,2,3)); $y.aa; 14:14
p6eval rakudo 3d3893: OUTPUT«Symbol '@x' not predeclared in aa␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 152 (compilers/pct/src/PCT/HLLCompiler.pir:108)␤»
14:14 [Coke]_ is now known as [Coke], pmurias left
finanalyst rakudo: class AB{has @.x; method aa { .say for @.x; .say for @.x[1 ..^ +@.x] } };my AB $y .=new(:x(1,2,3)); $y.aa; 14:14
p6eval rakudo 3d3893: OUTPUT«1␤2␤3␤No applicable candidates found to dispatch to for 'postcircumfix:<[ ]>'. Available candidates are:␤:(Mu : Int $i;; *%_)␤:(Mu : Block $b;; *%_)␤:(Mu : !whatever_dispatch_helper ;; *%_)␤␤current instr.: '!postcircumfix:<[ ]>' pc 11329 (src/builtins/Role.pir:26)␤»
moritz_ ye auld "too many posticircumfix methods, not all of them do slices" error 14:15
finanalyst moritz_: pray elucidate
when dont slices work?
masak finanalyst: @.x[1 ..^ +@.x] better written @.x[1 ..^ *]
finanalyst but that dont work 14:16
no more
diakopter phenny: tell pmurias they must be predeclared so that if they're referenced in a class/routine, the parser knows their type, since the parser does type-checking _as_it_goes_
phenny diakopter: I'll pass that on when pmurias is around.
masak finanalyst: I see. :/
moritz_ finanalyst: there are lots of classes and roles in Rakudo that handle various Positional types
finanalyst: and many of them have postcircumfix:<[ ]> methods
finanalyst and .....
moritz_ finanalyst: but most of them handle only a single argument, not slicing
and that's wrong 14:17
colomon masak: actually, there's an ambiguity there, I think.
masak colomon: do explain.
diakopter phenny: tell pmurias then when the parser encounters the actual method bodies, it grabs the appropriate RunSharp.MethodGen handles and puts the method bodies in them.
phenny diakopter: I'll pass that on when pmurias is around.
colomon or at least, @.x[ 1 .. * ] is probably preferable to @.x [1..^ *]
finanalyst neither work currently 14:18
colomon (sorry for random spacing there)
moritz_ the former just indexes over the end of the array, which yields an additional Nil
masak colomon: both should mean the same, but yes, '..' looks nicer than '..^'.
moritz_ which vanishes in list context
finanalyst rakudo: my @x=1,2,3,4; .say for @x[1 .. *]
p6eval rakudo 3d3893: ( no output )
moritz_ alpha: my @x=1,2,3,4; .say for @x[1 .. *] 14:19
colomon I believe you're wrong on two fronts there.
p6eval alpha 30e0ed: OUTPUT«2␤3␤4␤Use of uninitialized value␤␤»
colomon 1 .. * should be a Range, not a Whatever closure
It's the same as 1 .. Inf
masak fair enough.
finanalyst what I dont understand is why something works ok outside a method but not inside a method 14:20
colomon and [1 .. Inf] is supposed to stop when you run out of elements.
finanalyst: what are you thinking of?
finanalyst rakudo: my @x=1,2,3,4; .say for @x[1 ..^ +@x]
p6eval rakudo 3d3893: OUTPUT«2␤3␤4␤»
finanalyst works
rakudo: class AB{has @.x; method aa { .say for @.x; .say for @.x[1 ..^ +@.x] } };my AB $y .=new(:x(1,2,3)); $y.aa; 14:21
p6eval rakudo 3d3893: OUTPUT«1␤2␤3␤No applicable candidates found to dispatch to for 'postcircumfix:<[ ]>'. Available candidates are:␤:(Mu : Int $i;; *%_)␤:(Mu : Block $b;; *%_)␤:(Mu : !whatever_dispatch_helper ;; *%_)␤␤current instr.: '!postcircumfix:<[ ]>' pc 11329 (src/builtins/Role.pir:26)␤»
finanalyst doesnt work
masak that is indeed odd.
colomon ah, I believe that's an array-handling bug.
moritz_ seems like @.x is not the same kind of array as @x 14:22
rakudo: class A { has @.x }; say A.new(:x[1, 2, 3]).x.WHAT
p6eval rakudo 3d3893: OUTPUT«Array()␤»
colomon ran into this same sort of problem passing @x as an argument.
moritz_ rakudo: class A { has @.x }; say A.new(:x[1, 2, 3]).x.PARROT
p6eval rakudo 3d3893: OUTPUT«Array␤»
finanalyst rakudo: class AB{has @.x; method aa { my @y=1,2,3; .say for @y; .say for @.x; .say for @.x[1 ..^ +@.x] } };my AB $y .=new(:x(1,2,3)); $y.aa; 14:23
p6eval rakudo 3d3893: OUTPUT«1␤2␤3␤1␤2␤3␤No applicable candidates found to dispatch to for 'postcircumfix:<[ ]>'. Available candidates are:␤:(Mu : Int $i;; *%_)␤:(Mu : Block $b;; *%_)␤:(Mu : !whatever_dispatch_helper ;; *%_)␤␤current instr.: '!postcircumfix:<[ ]>' pc 11329 (src/builtins/Role.pir:26)␤»
masak rakudo: class A { has @.x }; say A.new(:x(1, 2, 3)).x.WHAT
p6eval rakudo 3d3893: OUTPUT«Array()␤»
finanalyst rakudo: class AB{has @.x; method aa { my @y=1,2,3; .say for @y[1 .. +@y]; .say for @.x; .say for @.x[1 ..^ +@.x] } };my AB $y .=new(:x(1,2,3)); $y.aa;
p6eval rakudo 3d3893: OUTPUT«2␤3␤␤1␤2␤3␤No applicable candidates found to dispatch to for 'postcircumfix:<[ ]>'. Available candidates are:␤:(Mu : Int $i;; *%_)␤:(Mu : Block $b;; *%_)␤:(Mu : !whatever_dispatch_helper ;; *%_)␤␤current instr.: '!postcircumfix:<[ ]>' pc 11329 (src/builtins/Role.pir:26)␤»
finanalyst definitely treating @y and @.x differently 14:24
moritz_ rakudo: class AB{has @.x; method aa { my @y=1,2,3; .say for @!x[1..^+@!x] } }; AB.new(:x[1, 2, 3]).aa
p6eval rakudo 3d3893: OUTPUT«No applicable candidates found to dispatch to for 'postcircumfix:<[ ]>'. Available candidates are:␤:(Mu : Int $i;; *%_)␤:(Mu : Block $b;; *%_)␤:(Mu : !whatever_dispatch_helper ;; *%_)␤␤current instr.: '!postcircumfix:<[ ]>' pc 11329 (src/builtins/Role.pir:26)␤»
14:24 envi^home joined
colomon rakudo: sub foo(@a) { .say for @a[1 ..^ +@a] }; my @a = 1... 4; foo(@a) 14:24
p6eval rakudo 3d3893: OUTPUT«2␤3␤4␤»
colomon hmmm.... 14:25
finanalyst shall i post a rakudobug?
colomon still thinks it's related to a rakudobug from a couple of weeks ago... 14:26
finanalyst: yes.
moritz_ anticipates a nice weird test in t/spec/integration/ somewhere
14:30 mtk0 joined
diakopter masak: see en.wikipedia.org/wiki/Compiler :P for discussion of middle-end 14:33
masak oh, ok :)
wouldn't be the first time CS people were intentially oxymoronic.
diakopter phenny: tell plobsing actually yes, I did consider tail-recursive invocation of the frames, since supposedly that's enforced much more consistently on .NET4 and recent Mono, but I haven't gotten there yet. It would actually be a very simple change. 14:36
phenny diakopter: I'll pass that on when plobsing is around.
14:43 iblechbot left 14:45 felipe joined 14:46 molaf joined 14:51 _kaare joined 14:52 ruoso left 14:55 ruoso joined 14:57 finanalyst left 15:14 kensanata joined
masak 'Unix is not one of the “perlisms” Ruby should be trying to distance itself from. Perl got that part right.' -- tomayko.com/writings/unicorn-is-unix 15:17
halfway through this post, I'm having this thought: Unix isn't one of the "perl5isms" Perl 6 should be trying to distance itself from. Perl 5 got that part right.
with which I mean, sometimes I look at the things the spec says about I/O and wrapped Unix commands, and think: "is this really better than what Perl 5 gives us?" 15:18
how would Perl 6 look if it only borrowed Perl 5's Unix wrappers wholesale, i.e. mostly as subs? 15:19
maybe this is one of the areas where we're out-clevering ourseles, trying to design something as inherently OO-y when it needn't be. 15:20
just a thought.
15:20 mtk0 left 15:25 SmokeMachine left
masak ok, so we changed &exec. that was probably good. 15:25
oh wait, that was &system. it's now &run. 15:26
TimToady exec is runinstead or some such now 15:29
masak S29 corroborates that. 15:30
TimToady but perhaps it's worthwhile renaming those Unixisms that we actually differ in API on
and not the others
runinstead may be different enough, don't recall
masak is there a sense in which Perl 6 is less of a Unix-y language than Perl 5?
S29 also speculates about renaming readpipe() into rungather(). 15:31
TimToady well, yes, where Unix is suboptimal
masak I should have guessed that the answer would involve hubris of some sort :P 15:32
TimToady but in some cases we could provide both a sub-opimal Unixy interface and a more-optimal, more portable standard Perl interface
masak "Is there any sense in which Perl 6 isn't X?" -- "Yes, in the cases where X is not good." :) 15:33
TimToady well, you asked for a sense, that seems sensical :)
masak :)
anyway, my feeling is that we'd probably profit more from fiddling less and providing more sideways Perl 5 compatibility rather than impressive OO hierarchies and stuff. 15:34
TimToady impressive OO hierachies aren't impressive :)
masak and something tells me Unix programmers like bareword subs. :) 15:35
jnthn o/ folks
phenny jnthn: 06:11Z <sorear> tell jnthn that I hear you're an expert on YOU_ARE_HERE. Would you review topic/lexical-persistence on my rakudo github fork? It implements proper "my" handling in the REPL
TimToady unless you've impressed on them
masak jnthn! \o/
YOU_ARE_HERE! :)
jnthn I made it home at 8am after 24-ish hours awake.
And then slept for almost 8 hours.
15:35 jotr^afk is now known as jotr_
jnthn It's going to be a curious week. :-) 15:35
(volcano ash)-- 15:36
Not that Iceland was a bad place to be stuck for a little longer than planned. ;-)
masak jnthn: did you see any phone books? 15:37
jnthn masak: No, but I know they're first name first. :-)
masak it's one thing knowing it on a theoretical level... :P 15:38
std: Proc
p6eval std 30611: OUTPUT«===SORRY!===␤Undeclared name:␤ 'Proc' used at line 1␤Check failed␤FAILED 00:01 111m␤»
masak even STD.pm6 doesn't believe in Unix OO. :)
TimToady std: PROCESS 15:39
p6eval std 30611: OUTPUT«ok 00:01 109m␤»
masak is that an all-capitals class name?
TimToady it's more-global-than-GLOBAL
since GLOBAL is per-interpreter 15:40
masak ah.
so S29 is out-of-date?
TimToady assuming that something like modperl6 is running multiple interpreters
jnthn masak: I experienced *other* things on a practical level. ;-) 15:45
masak jnthn: sounds good :) 15:47
jnthn: looking forward to a blog post about it, or something.
15:48 jonrafkind joined
jnthn masak: Well...some of it, yes. :-) 15:53
15:53 krunen joined
jnthn There'll be photos too. 15:53
masak \o/
krunen jnthn: I'm holding a perl6 talk in Oslo today and I may be a little short on slides. Do you mind if I show some slides from your "Solved in Perl 6" talk? Full attribution of course... 15:56
jnthn krunen: Yes, that's fine. 15:59
krunen jnthn: thanks!
moritz_ is also doing a Perl 6 talk tonight
16:00 patspam joined
colomon (perl 6 talks)++ 16:01
jnthn krunen++, moritz_++
jnthn has probably a month or so until his next Perl 6 talks
In Kiev! :-D 16:02
colomon \o/ 16:04
jnthn: we added Sop over the weekend. It does nothing. :)
masak should have been called Nop :) 16:05
[Coke] s:=no ?
[Coke] too slow.
colomon It will do something once threading is in place.
moritz_ once we do threading, it shoudl set $*DO_IT_ONE_AT_A_TIME or so
colomon moritz_: I was thinking we might be able to test some of that now. 16:06
jnthn colomon: Cool :-)
colomon for instance, we could make hyper process backwards (which would be a good move in general) unless that flag was set.
moritz_ or some semi-random sequence 16:07
colomon moritz_: semi-random is better but more work. I am a Perl programmer, I am lazy. :)
jnthn Lunch time. :-)
colomon jnthn: same here.....
jnthn pops to the shops 16:08
16:09 jonrafkind left, jonrafkind joined 16:11 justatheory joined
arnsholt pugs did the "hypers might not be in order thing" by putting the last element first, no? 16:14
TimToady first element last 16:15
16:19 cdarroch joined, cdarroch left, cdarroch joined 16:22 envi^home left
masak swimming & 16:23
16:24 masak left
moritz_ rakudo: say 2 == '2a' 16:24
p6eval rakudo 3d3893: OUTPUT«1␤»
16:26 M_o_C joined 16:29 kensanata left 16:33 rv2733 left
pugssvn r30612 | lwall++ | [STD] better message on 1__3 16:37
r30612 | [CORE] add minmax
16:38 Targhan_ joined 16:40 Targhan left, iblechbot joined 16:44 SmokeMachine joined
TimToady phenny: tell JimmyZ your eval at irclog.perlgeek.de/perl6/2010-05-09#i_2311370 doesn't work because {...} interpolates into double quotes before the eval ever runs 16:47
phenny TimToady: I'll pass that on when JimmyZ is around.
16:52 molaf left
TimToady moritz_: re rx.t: is there any reason why a failed eval shoudn't return a Failure object? 16:57
(if you were referring to JimmyZ's problem, that occurred before the eval) 17:00
17:19 circuitbreaker left 17:26 [mark] left
sjohnson happy monday 17:34
slavik sjohnson: mondays are never happy 17:35
17:35 pyrimidine joined 17:36 stephenlb joined
TimToady sjohnson: にほんに、もう火曜日です。 17:36
hmm, 日本に, rather 17:37
TimToady blames his input method for confusing him... 17:38
sjohnson 楽土 17:40
TimToady joydirt 17:42
sjohnson hmm.. thought that was camel. *busts out google* 17:43
<-- probably has input issues too! 17:44
diakopter joydirt makes me think of fundirt, like paydirt.
diakopter has output method issues.
17:44 stephenlb left
sjohnson Rakudo Perl, Codename: "joydirt" :) 17:44
slavik TimToady: you speak/write japanese? 17:45
TimToady a little
slavik so you can watch anime without subs/dubs ... nice :)
TimToady well, that's still a stretch 17:46
slavik I shouldv'e done linguistics in college instead of computer science ...
TimToady listening is the part I find most difficult
slavik I think that has to do with getting used to the language 17:47
diakopter thought computer science was a specialization of linguistics
slavik I had the same problem with english and I came to US
diakopter: some say it is mathematics
TimToady I would probably have to go live in Japan for a while to get fluent
diakopter mathematics is a specialization of linguistics? ;)
slavik but it's interesting that linguists can contribute a lot to computer science without a formal/any computer science education
TimToady: ;) 17:48
sjohnson i need subtitles for about 70% of it when i watch
jnthn has found that living somewhere leads to much easier language learning experience
er, living somewhere that speaks said language
:-)
sjohnson TimToady's anime basement tv
17:49 dakkar left
TimToady we don't do basements in california 17:49
sjohnson basements are a lot cooler in the summer... maybe they should implement the basement technique 17:52
all this time i thought perl 6 was made possible by smart basement hackers 17:58
diakopter had a basement in kansas. but then I was demoted to california
Tene I'm a basement hacker, until recently!
Just moved to california, though.
diakopter Tene: north? 17:59
Tene diakopter: sfbay
diakopter me2
Tene Mountain View, specifically.
brb, meeting
diakopter in the shadow of the Oracle Silos, myself
pugssvn r30613 | fglock++ | rm "perl5-kp6-kp6-noregex" (kp6 bootstrap files)
Su-Shee has only earthy, humid, low 130 year old basements. rats included. 18:01
Tene diakopter: let me know if you ever want to get together for hacking. 18:06
18:07 finanalyst joined
diakopter Tene: yah. you and me and dukeleto & TimToady 18:09
colomon had a basement at both houses, but has done much more Rakudo hacking in his son's nursery.
Tene diakopter: I thought dukeleto was in OR? 18:10
diakopter oh. maybe. but he's speaking at SFmongers next week 18:11
Tene Oh, huh, didn't know.
That sounds like fun.
diakopter oh wait.
diakopter got confused 18:12
sorry. david fetter lives in Oakland and is speaking on pl/parrot at sfmongers. 18:14
sjohnson colomon: :)
Tene No, you promised me dukeleto, so that's who I'm expecting. 18:15
diakopter argh.
18:16 ShaneC joined, ShaneC left 18:22 muixirt joined
colomon is having issues with "functional" style p6 programming leading to really long lines of code.... 18:26
[Coke] colomon: e.g.? 18:27
jnthn ponders whether having the ==> would give a more obvious way to nicely lay out a lot of such code.
colomon @split-loops.map({ .move-to-fundamental-period; }).grep({ $_.length > 1e-6 && $_.has-point-in-interior }).map({ my $a = $_; take $a; }).eager;
afk
jnthn Yes, it would. :-) 18:28
muixirt hi 18:29
what is the staus of pugs/ext modules wrt Rakudo?
s/staus/status/ 18:35
diakopter a different dialect, a different era
eons in internet time 18:36
Mbitrot
muixirt diakopter: other sources for modules than proto.perl6.org? 18:40
diakopter I don't know.
if you have blizkost, you can use some of CPAN maybe, I think.
muixirt ok, thanks 18:42
colomon how does ==> work? (hypothetically, obviously) 18:44
sjohnson Perl... making your life easier since 1987. 18:45
[Coke] colomon:I'd probably whitespace that this way: 18:46
nopaste.snit.ch/20518
sjohnson: hey, you don't work at NYSDEC, do you? 18:47
colomon [Coke]: I love that look, but as far as I know that doesn't work...
"Unable to parse blockoid, couldn't find final '}' at line 32"
(for instance)
is this just a Rakudobug? 18:48
[Coke] what, it has to COMPILE!? =-)
[Coke] checks rakudo...
diakopter phenny: tell masak I tagged that post with perl6
phenny diakopter: I'll pass that on when masak is around.
diakopter phenny: tell moritz_ you can add this to planet6 if you want diakopter.blogspot.com/search/label/perl6 18:49
phenny diakopter: I'll pass that on when moritz_ is around.
[Coke] colomon: your version doesn't work in rakudo either. 18:50
(perhaps the snippet is too small.)
colomon [Coke]: you'd have to define the relevant types and methods, yes. 18:51
diakopter phenny: tell masak url: diakopter.blogspot.com/feeds/posts/...lt/-/perl6
phenny diakopter: I'll pass that on when masak is around.
colomon but @a.map({ ... }).grep({ ...}) works fine.
diakopter phenny: tell moritz_ url: diakopter.blogspot.com/feeds/posts/...lt/-/perl6
phenny diakopter: I'll pass that on when moritz_ is around.
colomon oh, and obviously that snippet needs a gather around somewhere to collect the take
but trust me, it does work in context. :) 18:52
(and apologies that I cannot share the context -- it's $work)
18:53 dakkar joined 18:54 masak joined
masak aaaah. 18:54
phenny masak: 18:48Z <diakopter> tell masak I tagged that post with perl6
masak: 18:51Z <diakopter> tell masak url: diakopter.blogspot.com/feeds/posts/...lt/-/perl6
Tene hi masak!
masak diakopter: you must be confusing me with moritz_.
Tene: hi!
sjohnson sjohnson: nope. what made you think so? 18:55
Tene masak: I got my new laptop installed yesterday, and compiled parrot and rakudo. Things are looking promising. I should be able to talk timeline with you soon. :)
TimToady std: my @split-loops.map: { .move-to-fundamental-period; }.grep: { $_.length > 1e-6 && $_.has-point-in-interior }.map: { my $a = $_; take $a; }.eager;
p6eval std 30613: OUTPUT«ok 00:01 114m␤»
masak Tene: schweet. thinking of sending off an email to Alberto rather soon regardless. 18:56
Tene: also, make sure you have the alpha branch up-and-running :)
Tene oh? why?
[Coke] rakudo: say ^20.grep({ not $_ % 2 }).grep({ not $_ % 3 });
p6eval rakudo 3d3893: OUTPUT«Cannot resume dead coroutine.␤current instr.: 'perl6;GatherIterator;get' pc 563264 (src/gen/core.pir:97964)␤»
Tene o.O
TimToady std: my @split-loops\ .map({ .move-to-fundamental-period; })\ .grep({ $_.length > 1e-6 && $_.has-point-in-interior })\ .map({ my $a = $_; take $a; })\ .eager; 18:57
p6eval std 30613: OUTPUT«ok 00:01 111m␤»
masak Tene: because we wrote Web.pm during the alpha phase. I don't intent to drag out the grant by porting it to master before the grand goal-line.
Tene TimToady: and with feed operators?
masak: 'k
masak unless porting it is trivial, which it isn't.
[Coke] rakudo: say ^20.grep({ not $_ % 2 });
p6eval rakudo 3d3893: OUTPUT«0␤»
TimToady std: my @split-loops.map:{ .move-to-fundamental-period; }.grep:{ $_.length > 1e-6 && $_.has-point-in-interior }.map:{ my $a = $_; take $a; }.eager; 18:58
p6eval std 30613: OUTPUT«ok 00:01 112m␤»
[Coke] rakudo: say (^20).grep({ not $_ % 2 });
p6eval rakudo 3d3893: OUTPUT«024681012141618␤»
TimToady my point is that anywhere you can put whitespace you can put newlines
masak newlines are whitespace.
[Coke] rakudo: say (^20).grep({ not $_ % 2 }).grep({ not $_ % 3 });
p6eval rakudo 3d3893: OUTPUT«Cannot resume dead coroutine.␤current instr.: 'perl6;GatherIterator;get' pc 563264 (src/gen/core.pir:97964)␤»
TimToady and also that std groks $x.foo: {...}.bar as ($x.foo: {...}).bar 18:59
Tene std: my @a.grep: { ... } .grep: { ... }; 19:00
p6eval std 30613: OUTPUT«===SORRY!===␤Method call found where infix expected (omit whitespace?) at /tmp/sMAFshbDle line 1:␤------> my @a.grep: { ... } ⏏.grep: { ... };␤ expecting any of:␤ bracketed infix␤ infix or meta-infix␤Parse failed␤FAILED 00:01 113m␤»
Tene std: my @a.grep: { ... }\ .grep: { ... };
p6eval std 30613: OUTPUT«ok 00:01 111m␤»
TimToady sure feeds'd be prettier if we had 'em 19:01
and understood the threading implications :)
diakopter masak: OOPS 19:03
all you m-folk
masak diakopter: no worries. :)
Tene /nick mene
masak 'Masak und Moritz' :)
[Coke] m-? 19:04
oh.
19:05 TimToady sets mode: +vvvv buubot dalek hugme iblechbot, TimToady sets mode: +vv ilogger2 IRSeekBot, TimToady sets mode: +vv p6eval phenny, TimToady sets mode: +v pugssvn
diakopter will never again order Napa Waldorf Chicken Salad 19:05
sorear moritz_: I beleive it does, yes 19:13
19:14 clintongormley left
sorear TimToady: Consider $arbitrary-object[2] := $foo 19:26
What function or method does that call?
It couldn't be postcircumfix:<[ ]>:(Arbitrary-Class, Int) because that only returns a container and can't change the container's identity 19:27
19:33 M_o_C left, masak left
moritz_ TimToady: re eval() returning Failure, no reason against it, I just don't remember reading it as such in the specs 19:34
phenny moritz_: 18:49Z <diakopter> tell moritz_ you can add this to planet6 if you want diakopter.blogspot.com/search/label/perl6
moritz_: 18:51Z <diakopter> tell moritz_ url: diakopter.blogspot.com/feeds/posts/...lt/-/perl6
diakopter the 2nd one 19:35
let me know if you want atom instead
er. that is atom.
sigh.
let me know if you want rss instead.
moritz_ diakopter: [Coke]++ is on it 19:43
19:45 finanalyst left 19:47 dalek left
[Coke] anyone here with root on feather? 19:51
diakopter: it's added. may take a little while to prop. 19:52
moritz_ [Coke]: yes
19:52 dalek joined
[Coke] moritz_: can you kill my process 26609? it's trying to dump a core file. it's ignoring my kill -9. :P 19:52
... and now it's gone. (&*#@$. 19:53
moritz_ not fast enough
[Coke] (I've been trying to kill it for minutes now. =-)
sorear [Coke]: the linux core dumper runs as a non-interruptable kernel task; it cannot be stopped with signals
it's also very good at hogging I/O bandwidth
one of my least favorite subsystems
moritz_ my talk went well 20:00
and there were interesting questions 20:01
colomon moritz_++
moritz_ why multi sub dispatch for language extensions, and not methoss like C++
about perl 5 interactions
multi dispatch ties
cpan
junctions (I didn't mention them in the talk)
Rakudo * 20:02
20:02 tche left
moritz_ I answered the first question only briefly 20:04
the one who asked dind't quite understand my answer
so I'll write a mail to the mailing list, explaining it in more detail
sorear p6l? 20:05
moritz_ the local perlmonger's mailing list
Erlangen.pm
colomon Erlang?!?!!!!
;)
moritz_ (actually the name "Erlangen" comes from "Alder", which is called "Erle" in German) 20:06
slavik wait ... I just realised something ... how does Perl6 (rakudo) handle use v5; ? 20:07
does it know about it natively?
20:07 guest_ joined
sorear rakudo: use v5; 20:07
p6eval rakudo 3d3893: ( no output )
sorear actually, it doesn't handle it at all
rakudo: use v5; say «2»
p6eval rakudo 3d3893: OUTPUT«2␤» 20:08
slavik sorear: I am thinking about it in terms of blizkost ...
sorear slavik: don't
slavik and I think I missed some discussion on Perl6 and use v5; ...
sorear blizkost is never going to handle use v5
slavik because it will be v5, no? 20:09
20:09 guest_ left
sorear because it can't 20:09
use v5 is lexically transparent
slavik right
sorear use v5 in Rakudo, when it is implemented (I ballpark 2018), will be a grammar change directive *only*
it will let you write perl6 code using perl5 syntax 20:10
slavik oh, I see
so not really v5 ... just v5 syntax
sorear Perl 5 is a language 20:11
v5 is v5
I think you're confusing Perl 5 with perl 5 here.
slavik sorear: I think I am
sorear: once use v5 and blizkost are implemented, what would be the practical difference between them when writing Perl5 code? 20:12
I think that's a better question.
sorear slavik: blizkost supports using XS modules, but is slow, bloated, poorly integrated, and full of semantic potholes. It should be avoided if possible. 20:13
slavik sorear: s/blizkost/perl5/ ? heh
20:14 Su-Shee left 20:21 smash_ joined
smash_ hello everyone 20:21
pugssvn r30614 | kyle++ | [util] Friendlier message from purge-empty-dirs 20:22
20:30 ethel joined 20:32 ash__ joined
Tene hismash. 20:33
20:43 Guest54057 left 20:49 pmurias joined
diakopter pmurias: hi 20:49
pmurias diakopter: hi
phenny pmurias: 14:16Z <diakopter> tell pmurias they must be predeclared so that if they're referenced in a class/routine, the parser knows their type, since the parser does type-checking _as_it_goes_
pmurias: 14:17Z <diakopter> tell pmurias then when the parser encounters the actual method bodies, it grabs the appropriate RunSharp.MethodGen handles and puts the method bodies in them.
20:54 Guest54057 joined
tedv what exactly is // supposed to match in perl5, and is it different in perl 6? 20:55
diakopter std: // 20:59
p6eval std 30614: OUTPUT«===SORRY!===␤Null regex not allowed at /tmp/gykX4SkYxx line 1:␤------> //⏏<EOL>␤Check failed␤FAILED 00:01 112m␤»
21:00 saaki joined
tedv isn't the perl 5 version something like... "continue a scalar match in the last regular expression from the last point matched"? 21:00
anyway, the fact that I can't remember makes me happy that perl 6 doesn't support it 21:01
21:01 wknight8111 joined
saaki "exhaustive" 21:02
21:04 orafu left 21:06 orafu joined 21:09 ruoso left, pyrimidine left 21:10 gpw joined 21:17 gpw left 21:19 Guest54057 left
pmurias diakopter: csmeta assumes the input is in utf32, that's not the case on linux systems 21:22
pmurias hates the fact that C# won't let him redeclare a variable in an inner scope 21:23
21:29 kensanata joined 21:35 rv2733 joined 21:36 bakedb__ left 21:47 SmokeMachine left 21:48 stephenlb joined 21:50 jotr_ is now known as jotr_^away 21:53 meppl left 21:54 iblechbot left 22:02 _kaare left 22:05 pmurias left, jonrafkind left 22:07 snarkyboojum joined
diakopter utf32? surprised you ran into that 22:12
it might be a bug in my UTF32String.cs
phenny: tell pmurias utf32? surprised you ran into that it might be a bug in my UTF32String.cs 22:13
phenny diakopter: I'll pass that on when pmurias is around.
22:16 rv2733 left 22:25 Guest2257 left 22:26 dakkar left 22:29 ash__ left 22:31 saaki left, saaki joined 22:32 alester left, smash_ left 22:34 ethel left 22:45 yakeworld left 22:47 quester_ joined 22:53 Patterner left 22:56 ash__ joined 23:01 Psyche^ joined, Psyche^ is now known as Patterner 23:03 bluescreen joined 23:04 bluescreen is now known as Guest7343 23:07 gustavderdrache joined
sorear in S03-operators/binding-arrays.t:19, what's this mention of "runcores"? 23:12
hmm. I think I'll use the spectests as a proxy design 23:16
snarkyboojum should probably explicitly state which runcore it's talking about, i.e. parrot, haskell, blah (assuming that's what it's referring to) 23:17
not sure what "normal" runcore means
sorear I think it's a pugsism
but I really have no clue
snarkyboojum I think it may be too 23:18
jnthn sorear: Parrot also has a concept or runcores, dunno if it is from there.
snarkyboojum I just googled for "parrot haskell runcore" and there's references to audreyt using that terminology :) 23:19
hi jnthn, have you escaped volcanic clouds yet? 23:20
jnthn snarkyboojum: I have. :-)
snarkyboojum w00t! o/
jnthn wasn't sad to be stuck in Iceland a little longer though :-) 23:21
I like that place. :-)
snarkyboojum the weather doesn't look particularly inviting there atm :) 23:22
what's the bier like up there though?
"Although beer was banned in Iceland until March 1, 1989" :O
jnthn Yeah, but vodka was legal! 23:23
They sold this malt crap, and you added some vodka to it to make pseudo-bier.
23:23 gpw joined
snarkyboojum yikes! vodka shandy or something 23:23
[Coke] waits until he picks up the kid from school so he can enjoy some ginger infused vodka. 23:24
jnthn Thankfully, these days they have some microbreweries that turn out some really lovely beers, if you can track it down.
Including an excessively nice ale called Mori.
sjohnson hmm... beer 23:25
sorear jnthn: Are you, in fact, a YOU_ARE_HERE expert? 23:26
jnthn snarkyboojum: (weather) I actually vastly prefer coolish weather to hot weather. So I found Iceland quite comofrtable.
sorear: No.
sorear: I just implemented it in Rakudo.
sjohnson jnthn: yum yum
jnthn sorear: ;-)
sorear I guess that makes me the resident lexical scope continuation expert. ;)
jnthn Oh ew. :-)
Dare I ask what you're working on? :-) 23:27
snarkyboojum jnthn: I tend to agree - thought 20C autumn days down here are making me soft :)
sorear jnthn: I've gotten "my" scope working in the REPL; I thought you were the best candidate for patch review
jnthn Oooh.
sorear -> RT
jnthn sorear: Well, pmichaud would be, but I ain't seen him in a little while. 23:28
sorear: Where did you put it?
sorear: In Rakudo itself?
sorear github
yes
jnthn Or in nqp-rx?
snarkyboojum sorear++ x 4 :)
jnthn OK
pmichaud++ was planning doing it in the compiler tools, I think.
That's fine though - if we have it in Rakudo first, and he decides he likes it, it's easily movable. 23:29
If he doesn't, then it didn't make it into stuff that anything other than Rakudo is using so it's not hard to replace.
sorear: I'll try and look at the patch tomorrow. 23:30
sorear++ # attacking one of the big roadmap items
sorear To be honest I don't really see /how/ it could be treated as part of the compiler tools 23:31
unless the entire YOU_ARE_HERE mechanism is going to be transplanted into PAST::Compiler 23:32
the key insight is that, in an interactive session, the totality of preceding lines serves as the setting for the next one
jnthn I wasn't expecting it to be implemented in terms of the YOU_ARE_HERE thing, but I can see how it makes sense too. 23:33
sorear How were you expecting it to be implemented?
jnthn In terms of the Parrot primitive that YOU_ARE_HERE uses (set_outer)
sorear Should I just attach files to the rakudobug@ mail? 23:35
jnthn Yes
23:36 leonard_ joined
diakopter re: key insight, what you said. 23:36
23:37 leonard_ left 23:45 lestrrat is now known as lest_away
sorear phenny: tell pmichaud What would you think of me implementing the mixin subset of role functionality in NQP-rx? This would allow slangs in Rakudo, bringing our grammar closer to STD while fixing operator overload scoping and enabling lexical macros 23:49
phenny sorear: I'll pass that on when pmichaud is around.
23:51 snarkyboojum left
sorear jnthn: Can you give me a quick overview of the binder architecture? 23:51
23:51 ash__ left
jnthn sorear: The core of it is in src/binder/bind.c - there's a top level function that drives the overall process, and in various places it calls bind_one_param to actually do the binding of individual paramters. 23:52
sorear: It takes as input a P6 low level sig and a capture
23:53 gfldex is now known as Guest65697
jnthn And the whole process is driven by those. 23:53
23:53 gfldex_ joined
jnthn Well, driven by the signature really 23:53
sorear How does the binder get called?
jnthn Then there's a couple of dynops
23:53 gustavderdrache left
jnthn One of them is bind_signature 23:53
Which takes the Parrot call_sig as its argument
That is what calls into the binder.
23:54 Guest65697 left
jnthn See src/ops/perl6.ops for the implementation of that 23:54
23:54 muixirt left
jnthn It's a little fun in there because it's also part of what takes care of junction auto-threading 23:54
Basically, the binder can return one of three things: I bound OK, I failed to bind because one type was a junction, I failed to bind for some other reason.
That's what triggers junction failover.
23:55 kensanata left
sorear is largely trying to figure out what's going on in infix:<:=> 23:57
jnthn sorear: The signature case? 23:58
sorear is the only implemented case 23:59
jnthn That calls a !BIND method defiend in src/builtins/Signature.pir
Which does...magical things...