»ö« | 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 implementedcurrent 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:gcurrent 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 atomParse failedFAILED 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 expectedcurrent 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 expectedcurrent 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 expectedcurrent 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«11{"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 valuecurrent 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«CNull 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 invokecurrent 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 invokecurrent 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 aacurrent 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«123No 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«234Use 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«234» | ||
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«123No 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«123123No 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«23123No 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«234» | ||
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 1Check failedFAILED 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-infixParse failedFAILED 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 failedFAILED 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... |