»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo: / pugs: / std: | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by Juerd on 28 August 2009.
00:00 solarion left
pugs_svn r28509 | lwall++ | [viv] process alternate nibbler from regexen 00:06
00:07 crythias joined
diakopter ++TimToady 00:07
diakopter prepares to lob more bugs over the wall
00:08 rhr_ joined 00:21 rhr left
TimToady hides in plain sight *poof* 00:22
pugs_svn r28510 | carlin++ | [S02-magicals/config.t] Add a test for $*OSVER. 00:26
00:28 xinming left
pugs_svn r28511 | carlin++ | [S02-magicals/config.t] Wrong plan number. carlin-- 00:28
00:28 rhr joined 00:34 lambdabot left
mikehh rakudo (c8181aa) builds on parrot r41567 - make test / make spectest_smolder (up to r28509 -> #28343) PASS - Ubuntu 9.04 amd64 00:36
00:39 msmatsko joined 00:42 rhr_ left 00:46 msmatsko left, msmatsko joined 00:48 araujo left 00:51 rhr_ joined 01:00 alester left 01:01 wayland joined 01:02 rhr left, araujo joined 01:16 orafu left, orafu joined, wayland76 left 01:26 rhr_ left 01:29 rhr joined 01:31 hudnix joined 01:32 wayland is now known as wayland76 01:37 nihiliad joined 01:40 rhr_ joined
crythias yeah, baby 01:41
01:43 solarion joined 01:53 __ash__ left, rhr left 01:54 __ash__ joined 01:55 __ash__ left 01:59 Whiteknight left 02:15 stephenlb left
pugs_svn r28512 | colomon++ | [docs/Perl6] postfix:<i> should return a Complex. 02:30
02:36 patspam joined, patspam1 left
diakopter I'd be perfectly healthy if it weren't for this doggone hypochondria! 02:38
02:51 hercynium left 02:53 crythias left 03:45 msmatsko left 04:03 patspam left, patspam joined 04:09 xinming joined 04:12 tak11 left 04:15 Caelum_ joined 04:17 jaldhar joined 04:18 Caelum left, PZt left 04:25 justatheory left 04:53 PZt joined 04:56 Student left 05:11 payload left 05:12 quietfanatic joined
quietfanatic I am currently fighting an incorrugible bug whereby an auspiciously declared array becomes unwilling to store anything but Ints. 05:14
05:16 nihiliad left
quietfanatic Caught it! 05:18
rakudo: our Int @A1; our @A2; @A2[0] = "Str" 05:19
p6eval rakudo c8181a: OUTPUT«Assignment type check failed; expected Int, but got Str␤in Main (/tmp/mVjCqSxaqo:0)␤»
quietfanatic The first array being declared as Int messes with the second array as well. 05:20
rakudo: my Int $a; my $b; $b = "Str" 05:23
p6eval rakudo c8181a: ( no output )
quietfanatic rakudo: my Int @a; my @b; @b[0] = "Str"
p6eval rakudo c8181a: OUTPUT«Assignment type check failed; expected Int, but got Str␤in Main (/tmp/Nwq34ys7uq:0)␤»
quietfanatic rakudo: my Int %a; my %b; %b<a> = "Str"
p6eval rakudo c8181a: ( no output )
quietfanatic I am submitting this. 05:25
05:34 patspam left, patspam1 joined 06:01 Confield left
pugs_svn r28513 | lwall++ | [Cursor] de-dup importation code 06:11
r28513 | [STD etc.] id field now indirect to avoid string duplication
06:11 NorwayGeek left
diakopter phenny: tell mberends I'll be offline-ish for a day or two... 06:41
phenny diakopter: I'll pass that on when mberends is around.
06:42 NorwayGeek joined 06:49 mberends joined
mberends thanks phenny, from the future ;) 06:50
phenny mberends: 06:41Z <diakopter> tell mberends I'll be offline-ish for a day or two...
mberends diakopter: np, I'm gonna try making a new fudging test harness, in Perl 5 for bootstrapping reasons (that almost came out botstrapping ;) 06:52
06:55 ihrd joined, ihrd left 06:56 barney joined 07:00 browser_zzz joined 07:04 envi^home joined 07:08 payload joined 07:09 iblechbot joined 07:10 pdcawley left 07:14 rfordinal joined 07:21 NorwayGeek|Away joined, NorwayGeek left
moritz_ rakudo: my $x = 2; $x **= 4; say $x 07:22
p6eval rakudo c8181a: OUTPUT«16␤»
07:28 NorwayGeek|Away left 07:31 mariuz joined 07:37 NorwayGeek joined, NorwayGeek|Away joined 07:39 NorwayGeek left 07:48 ejs joined, ejs left
mikehh rakudo (c8181aa) builds on parrot r41572 - make test / make spectest_smolder (up to r28513 -> #28357) PASS - Ubuntu 9.04 amd64 07:51
moritz_ rakudo: say "34".Num 08:01
p6eval rakudo c8181a: OUTPUT«Method 'Num' not found for invocant of class 'Str'␤»
moritz_ ou.ch
08:02 athomason joined 08:03 meppl joined
moritz_ colomon: roots.t down to two failures (Inf and NaN related) 08:08
08:16 payload left 08:18 dukeleto joined 08:24 am0c joined
am0c OH HAI 08:24
moritz_ moin 08:25
Matt-W o/ 08:36
moritz_ \o 08:42
am0c \o 08:43
08:46 patspam1 left
moritz_ whoa, google tells me that my blog has 289 subscribers. It amazes me every time I find evidence that people read blogs, because I always though that most blogs were "write once, read never" or so :-) 08:51
frettled :)
I think it's safest to write to them as if lots of people read them, but expect that there are none. ;) 08:52
08:52 envi^home left
frettled Oh, I found a new use for Camelia, BTW - as (one of several) logos on a cycling team shirt. :D 08:52
moritz_ :-) 08:53
sjohnson hi to Matt-W , moritz_ , and frettled 08:54
are you all still awake? you guys must be in different parts of the world from me :)
Matt-W I'm awake
it's 10am here
frettled nearly 11 here
sjohnson: but yeah, 59°56′58″N 10°45′23″E 08:56
sjohnson are you guys in Europe?
2am here <--- Vancouver Canada timezone 08:57
frettled ah, waaaay south ;)
moritz_ Europe, yes 08:58
sjohnson does anyone here speak a nice sounding European language?
( `ー´) 08:59
moritz_ does German qualify as "nice sounding"? (probably not...)
I learned a bit French in school, too
frettled Foreigners have been known to accuse Norwegians of «singing» our language, but I'm not sure I agree.
moritz_ frettled: in some sense I can agree with that, though I wouldn't call that an accusation 09:00
09:01 riffraff joined
huf judging by the reactions of americans, the only thing they hear out of hungarian speech are the 'r'-s 09:02
which probably disqualifies it as a nice sounding language for an anglophone
frettled what about Canadians?
huf never been to canadia 09:03
Matt-W I speak English with a southern accent 09:05
That might be considered nice until you look into the grammar, English is a hideous mishmash really
masak is Swedish, that's quite a nice-sounding language I think
I also like German, but I'm odd like that (it's also the only other language I speak worth anything)
huf nah, english is a really nice sounding language 09:06
Matt-W English is a very versatile language
huf imho it has better flow and sounds nicer than my native language
Matt-W Probably because of its messiness
I'm not familiar with Hungarian
huf you havent heard of "speak the hungarian rapper"? 09:07
anyway, sample of the language: www.youtube.com/watch?v=BDXyCUNczg0...playnext=1 09:08
09:17 jaffa8 joined 09:19 jaffa8 is now known as jaffa4 09:23 pmurias joined 09:32 NorwayGeek|Away left 09:34 NorwayGeek joined 09:35 NorwayGeek left 09:40 NorwayGeek joined, NorwayGeek left 09:44 NorwayGeek joined 09:54 eiro left
wayland76 Oi cn say things in good Strine :) 09:55
huf "strine"? 09:56
wayland76 www.abc.net.au/civics/globalcitizen...strine.htm
huf ah.
wayland76 "Strine" is what it sounds like when an Australian says "Australian" with an Australian accent 09:58
huf: nice sample. I didn't watch all of it, but it sounded good :)
09:59 PZt left 10:05 browser_zzz left 10:06 eiro joined 10:08 BooK left 10:11 krunen left, krunen joined
pmurias diakopter: hi 10:16
10:17 |theJackal| is now known as kent\n 10:32 iblechbot left 10:36 NorwayGeek left 10:39 ruoso left 10:43 NorwayGeek joined 10:47 payload joined 10:50 rff joined 10:57 riffraff left 11:05 pmurias left
frettled wayland76: Bruce! 11:09
colomon moritz_: \o/ you didn't say roots.t had the only two failures left in our branch!!!!! that's awesome! 11:11
11:13 simcop2387 left
frettled and grandsome! 11:18
or was that grawsome?
11:19 NorwayGeek left
wayland76 frettled: How are ya, Bruce? 11:19
grandsome/grawsome I'm not familiar with, but I grew up with no TV 11:20
11:20 simcop2387 joined
frettled wayland76: just fine, mate! 11:27
and you?
«grandsome»/«grawsome» were suggestions for solving the «awesome»/«grand» problem
jaffa4 hi 11:36
tell me something that should be implemented for Perl 6. 11:37
11:38 masak joined
masak good day, temporal camels. 11:39
11:39 envi^home joined
moritz_ \o/ 11:42
frettled masak: that's only temporary ;)
11:43 NorwayGeek joined
colomon rakudo: say (1i)i; 11:43
p6eval rakudo c8181a: OUTPUT«-1+0i␤»
moritz_ rakudo: say roots(Inf, 3) 11:44
p6eval rakudo c8181a: OUTPUT«InfNaNi-InfInfi-Inf-Infi␤»
frettled rakudo: say sqrt(-1);
p6eval rakudo c8181a: OUTPUT«NaN␤»
moritz_ that's just weird...
frettled rakudo: say sqrt(0i-1);
p6eval rakudo c8181a: OUTPUT«0+1i␤»
moritz_ I'd rather say we return 3 NaNs for roots(Inf, 3) 11:45
frettled moritz_: yeah, that one was cute
jaffa4 tell me something that should be implemented for Perl 6.
moritz_ jaffa4: feed operators
jaffa4 what is feed operator?
moritz_ search for ==> in the synopsis 11:46
colomon moritz_: I was just looking at the spec for postfix:<i>. I fixed it to return a Complex (rather than Num) last night, but it also says it takes a Num, which is wrong too. 11:47
moritz_: agreed wrt to roots(Inf, 3) 11:48
moritz_ colomon: according to our spec update from yesterday it should probably take a Numeric and return a Complex
colomon Numeric is a role which can include Complex?
moritz_ yes
I highly recommend reading r28502 11:49
we now have Numeric (Complex + Real), Real (Num, Rat, Int, ...) 11:50
colomon Heh. So when do we start changing Rakudo to match? ;) 11:53
moritz_ after the native-complex branch landed
pugs_svn r28514 | colomon++ | [docs/Perl6] postfix:<i> should take a Numeric. 11:54
jaffa4 moritz_, can you tell me another important thing to implement?
moritz_ jaffa4: macros
jaffa4: string handling at various Unicode levels 11:55
11:55 rff left, iblechbot joined
jaffa4 moritz_, nothing is implemented for macros 11:57
11:57 nbrown04 joined
jaffa4 Do you say that nothing is implemented for macros? 11:57
moritz_ well, STD.pm surely contains some hooks
jaffa4 Are you replying me? 11:58
moritz_ yes
11:58 nbrown04 left
jaffa4 but I cannot use STD.pm 11:58
moritz_ jaffa4: what can you use? 11:59
jaffa4 If I am correct rakudo is based on something else.
moritz_ yes
jaffa4: but that's the first time you mentioned rakudo
jaffa4 so what did you menition std.pm?
moritz_ jaffa4: other implementations use it already (mildew, sprixel)
jaffa4: and you didn't ask about rakudo, specifically
jaffa4 i thought it was obvious. 12:00
moritz_ well, it wasn't, at least not to me
jaffa4 nothing else is in good state.
Or do you know otherwise?
moritz_ anyway, things that need implementing in rakudo: threads, native types, ... the ROADMAP if full of them
jaffa4 What is the state of other implementations? 12:01
moritz_ varying
12:01 NorwayGeek left
jaffa4 Are they worst than rakudo? 12:02
mberends perl6: say "hello " x 3 12:03
moritz_ depends on your point of view
p6eval elf 28514, pugs, rakudo c8181a, sprixel 28513: OUTPUT«hello hello hello ␤»
mberends 4 implementations agree :)
moritz_ and I wouldn't call rakudo's state "bad"
jaffa4 I did not say bad. 12:04
moritz_ well, "worst" the superlative of "bad"
12:04 PZt joined
jaffa4 Are they worsethan rakudo? 12:04
masak jaffa4: you sometimes have a careless way of expressing yourself.
moritz_ jaffa4: since rakudo's state isn't bad, your question is based on a false assumption 12:05
masak jaffa4: I know you don't mean any harm, just that you have an infirm grasp of the language. but be a bit careful.
12:06 payload left
jaffa4 the question that are they worse than rakudo does not imply for me that rakudo is bad. 12:06
masak jaffa4: it's very easy to interact with people in here, by default. less easy if you piss them off.
12:06 NorwayGeek joined
moritz_ jaffa4: to me it sounds like it anyway 12:06
mberends jaffa4: you began by asking what needs to be implemented. Answer: lots. How would you be able to contribute? 12:07
jaffa4 I can do anything I want.
12:07 payload joined
mberends jaffa4: that's bold. Can you write in PIR? 12:08
jaffa4 at least the programming task required by rakudo I do not think they are beyond my abillities.
moritz_ wishes he could do everything he wants, too
jaffa4 watch out, I corrected myself!
masak wishes he had more tuits of clones
moritz_ jaffa4: then let me point you to docs/ROADMAP in the Rakudo repository, it's full of things that needs to be done
and it also explains what needs to be done first, if applicable 12:09
jaffa4 mberends,I can write some PIR, yes 12:10
and I wrote a small compiler for PIR>
moritz_ though it's a tad outdated - for example (C) seems to be done already (at least mostly)
masak jaffa4: have you been using Rakudo some? I always maintain that it's a good way to get involved.
mberends jaffa4: If you could add the fork() function to Rakudo, I would be grateful. If you don't write it, pmichaud++ must do it, and we need his time for more important tasks. 12:11
moritz_ mberends++ # proposing small-scale, workable tasks
mberends be aware that Rakudo fork() relies on Parrot fork(), no idea of the status of that 12:14
moritz_ be aware that windows doesn't have a fork() system call
masak Matt-W: Swedish, a nice-sounding language? I wish I could step away from it enough to hear how it actually sounds. :P 12:15
moritz_ I have a completely unrelated question... when pmichaud and others talk about proto regexes, they seem to assume/imply/know/* that proto regexes will imply some significant speed gains
it was never obvious to me. Why? 12:16
masak good question. 12:17
yes, I've been hearing that for over a year now.
let me have a guess at it: because they essentially turn the parsing at that particular place into one big jump table. 12:18
or something.
moritz_ but they don't, at least not in the general case
well, maybe there are some clever optimizations that can exploit the fact that in STD.pm many proto regxes start with a constant rule 12:19
masak 'a constant rule'?
moritz_ one which matches a literal 12:20
sorry, bad wording
moritz_ would like to hire masak for line 182 of the ROADMAP
masak I think something like that might be used to optimize, yes.
I'm on it. :)
today I've been mulling over how best to make info leaflets for Web.pm so that people can get going quickly. 12:21
I want to be inspired by the info things for Chrome and Shoes. they're nice.
moritz_ praises whiteknight++ for wknight8111.blogspot.com/2009/09/ar...model.html 12:22
12:24 ruoso joined
Matt-W masak: seemed like it to me. Sort of bubbly. 12:25
masak aye, we do a lot of stuff with phrase melody. 12:26
a way for Swedes to mock each other is to pretend that the other one speaks English that way, too. :) 12:27
Matt-W nothing much wrong with that 12:28
the English is still intelligible
I also quite like Swedish accents :)
masak
.oO( bork, bork, bork )
12:29
frettled encheferize!
12:31 arthur-_ joined 12:32 NorwayGeek left 12:35 NorwayGeek joined
masak whiteknight++ # really good post 12:40
mdxi here's my summation: "A software architect should be like Hari Seldon, except that they tell people what's going on now instead of making holo-recordings to be played after 10,000 years" 12:41
and yes. good post :)
12:41 iblechbot left 12:42 NorwayGeek left 12:45 NorwayGeek joined 12:52 payload left 13:00 araujo left
masak rakudo: role Answer[:$default = 42, $d = $default] { method Str { "The {$d == $default ?? '' !! "modified " }answer is $d" } }; say Answer.new; say Answer[43].new 13:00
p6eval rakudo c8181a: OUTPUT«Potential internal error: bindability check may have done more than just binding.␤The answer is 42␤Potential internal error: bindability check may have done more than just binding.␤The modified answer is 43␤»
masak I still don't grok when that warning is triggered. 13:01
moritz_ masak: some cases of non-trivial dispatch to parameterized roles.
masak well, yes. 13:02
but which ones?
and is there something really potentially dangerous with the above code?
moritz_ well, it's wrong
masak oh?
moritz_ having a positional argument after a named one is wrong
masak I thought they just couldn't be mixed. 13:03
maybe I'm out-of-date.
moritz_ I think the cases are cross-dependencies with default values, and where-blocks
std: role Answer[:$default = 42, $d = $default] { }
p6eval std 28514: OUTPUT«===SORRY!===␤Can't put optional positional parameter after variadic parameters at /tmp/0GV0rUspi2 line 1:␤------> ole Answer[:$default = 42, $d = $default⏏] { }␤ expecting any of:␤ standard stopper␤ terminator␤ whitespace␤FAILED
..00:01 104m␤»
masak ah.
rakudo: sub foo(:$named, $positional) {} 13:04
p6eval rakudo c8181a: ( no output )
masak rakudo: sub foo(:$named, $positional) {}; say 'alive'
p6eval rakudo c8181a: OUTPUT«alive␤»
masak is that one in RT?
moritz_ I think so, but not sure.
13:04 ruoso left
PerlJam hello #perl6 13:05
moritz_ \o/
masak rakudo: sub foo(:$) {}; say 'an anonymous named parameter!?'
p6eval rakudo c8181a: OUTPUT«an anonymous named parameter!?␤»
moritz_ :-)
masak std: sub foo(:$) {}
p6eval std 28514: OUTPUT«ok 00:01 102m␤»
masak well, shoot in yourself foot, I guess.
13:05 ruoso joined
masak erm, 'foot in yourself shoot'. 13:05
moritz_ why? foo(|{ '' => 'foo'}) 13:06
masak moritz_: that's a pair, no?
not a named argument.
oh, |
masak tries
moritz_ right
and the name is the empty string :-)
masak hey, wait a minute :)
Matt-W that's not anonymous
masak there's no way to test if it got passed.
Matt-W that's just named with the empty string 13:07
heh even if you can do it it's of no use whatsoever
masak Matt-W: '$' in signatures means a anon scalar.
Matt-W unless... can a routine introspect the parameters it was passed and do a .perl on them?
moritz_ rakudo: sub foo(:$) { say 'foo' }; foo(|{'' => 'bar'})
p6eval rakudo c8181a: OUTPUT«argument doesn't array␤in sub foo (/tmp/wixb9JIzjQ:1)␤called from Main (/tmp/wixb9JIzjQ:0)␤»
masak it can.
Matt-W so you can get at them then
even if they don't have names
moritz_ Matt-W: probably only if it receives a raw signature 13:08
masak rakudo: sub foo(:$) {}; say &foo.signature.perl
p6eval rakudo c8181a: OUTPUT«:(Any $?)␤»
moritz_ that's wrong :-)
13:08 am0c left
Matt-W BUG 13:08
masak why?
moritz_ it's not a positional
masak oh, right.
masak submits rakudobug
Matt-W and it's not called ?, either
moritz_ and the "argument doesn't array" doesn't look too bright either
masak Matt-W: no, that's a postfix.
Matt-W oh yes sorry 13:09
optional
moritz_ Matt-W: the ? means "optional" here
moritz_ too slow
Matt-W but it should be a named optional
:$?
moritz_ right
rakudo: my %h = '' => 3; sub foo(:$) { say 5; }; foo |%h
p6eval rakudo c8181a: OUTPUT«FixedIntegerArray: index out of bounds!␤in sub foo (/tmp/lbCKj1pGvo:1)␤called from Main (/tmp/lbCKj1pGvo:0)␤» 13:10
moritz_ yet another bug... masak? :-)
masak submits
rakudo: sub foo(:$a) {}; say &foo.signature.perl
p6eval rakudo c8181a: OUTPUT«:(Any :$a?)␤»
masak it gets that one right.
Matt-W rakudo: sub foo(:$, :$) {}; say $foo.signature.perl 13:12
p6eval rakudo c8181a: OUTPUT«Symbol '$foo' not predeclared in <anonymous> (/tmp/8OMTadSqa4:2)␤in Main (src/gen_setting.pm:3469)␤»
Matt-W rakudo: sub foo(:$, :$) {}; say &foo.signature.perl
p6eval rakudo c8181a: OUTPUT«:(Any $?, Any $?)␤»
13:14 crythias joined 13:20 icwiener joined
masak a follow-up on my continuations rant from yesterday: S04:627 specifies C<gather> as being lazy. how will this be carried out on a VM without continuations? 13:20
s/carried out/pulled off/ 13:21
moritz_ masak: continue your rant when TimToady is present :-)
PerlJam masak: through the magic of turing equivalence (in other words, painfully :)
masak how meta. 13:22
colomon moritz_: where does roots live now?
moritz_ colomon: spread all over the place, actually
masak PerlJam: my (obvious) point is that if the pain can be abstracted in that case, why not for continuations in general?
moritz_ colomon: the real implementation in Complex.pm
colomon just remembered I could use ack.
13:22 pmurias joined
moritz_ ack++ # one of the most useful development tools 13:23
masak I'll settle for 'delimited' continuations, even though I don't know exactly what they are.
moritz_ colomon: somehow I haven't been able to make sin(Complex) dispatch to Complex.sin
colomon moritz_: somehow missed the version in Complex.pm the first time I looked this morning.
masak ack++ # like grep, but prettier
moritz_ anyway, we have failures in two files left 13:24
colomon what two files? I only got failures in roots.t when I tried spectest this morning.
moritz_ the roots.t should be rather trivial to fix by a couple of 'return NaN if $thing ~~ Inf|NaN'
jaffa4 what is ack?
colomon moritz_: that's why I was asking where roots is. ;) 13:25
PerlJam jaffa4: betterthangrep.com/
mdxi jaffa4: andy lester's better-than-grep grep
moritz_ colomon: trig.t fails for me
colomon really?
moritz_ aye
colomon (trying it again now) 13:26
moritz_ colomon: do you have local modifications to the test file?
colomon moritz_: no, I've been doing all my trig modifications to the new-trig.t files.
Errr... but wait, how the heck does it work on mine? we shouldn't have Complex.sin or Complex.cos now! 13:27
moritz_ why not? I think I uncommented the implementions in Complex.pm
colomon oh, you did. hmmm. 13:28
yeah, trig.t passes for me.
I bet new-trig.t fails, let's see...
new_trig.t, perl 6 is leading me to confuse _ and - with disturbing regularity 13:29
moritz_ how exceedingly strange
colomon what failures are you getting?
moritz_ colomon: it dies after test 126 13:30
when it tries to calculate sin($complex_number)
and redispatches to Any.sin()
and thus tries to coerce the Complex to Num, which obviously doesn't work 13:31
colomon sin(Complex) is actually defined in trig.t right now.
moritz_ it shouldn't be :/ 13:32
colomon Hmmm, new_trig.t does fail with the "You can't just coerce a Complex to Num" error. 13:33
moritz_: clearly it shouldn't be! but the weirdness that forced it to be was why we are on this branch. 13:34
moritz_ yeah, right
I added that error to get a better backtrace (and because it's true)
colomon new_trig.t is failing in Any::asin.
moritz_ and your rakudo is on 65af3ca0376198b88d0ccd3a37fc935407e5a704 without local modifications? 13:35
colomon yup.
I didn't do a Configure --gen-parrot this morning when I pulled, could that make a diff?
moritz_ maybe
but maybe my local rakudo checkout has problems 13:36
colomon trying with new configure now.
moritz_ and maybe my parrot is newer 13:37
I'll try a fresh clone, and a a Configure --gen-parrot
colomon make finished, trying trig.t again now. 13:40
masak rakudo: sub foo($a = $default, :$default = 42) {}; say "alive" 13:43
p6eval rakudo c8181a: OUTPUT«alive␤»
masak std: sub foo($a = $default, :$default = 42) {}
p6eval std 28514: OUTPUT«ok 00:02 104m␤»
masak rakudo: sub foo($a = $default, :$default = 42) { say $a }; foo 13:44
p6eval rakudo c8181a: OUTPUT«Null PMC access in isa()␤in sub foo (/tmp/lROEg7zEa4:1)␤called from Main (/tmp/lROEg7zEa4:0)␤»
masak submits rakudobug
today is a day of good harvest :)
moritz_ uhm, why STD.pm complain about $default not being defined? 13:45
masak it doesn't.
moritz_ that's what I wanted to write
why doesn't it complain?
masak STD bug?
moritz_ STD bug.
masak hightlights TimToady 13:46
rakudo: sub foo($a = $default, :$default = 42) { say 'alive' }; foo 13:47
p6eval rakudo c8181a: OUTPUT«Null PMC access in isa()␤in sub foo (/tmp/9yQXQGoWdm:1)␤called from Main (/tmp/9yQXQGoWdm:0)␤»
13:48 NorwayGeek left
colomon moritz_: trig.t still works for me after configure and rebuild. 13:49
13:50 NorwayGeek joined 13:51 NorwayGeek left
moritz_ colomon: works here too, now 13:52
colomon \o/
moritz_ "suddenly success"
13:53 NorwayGeek joined
colomon I've got to do some $work now, but if you get the roots patch in place, I'll try to get the full suite of trig functions up and running later today. 13:53
moritz_ I'm slightly suspicious now... updating to the newest parrot to see if it changes anything
colomon k 13:54
I'm also going to noodle around and add new tests in complex.t, I think. 13:57
moritz_ ok 13:58
13:58 icwiener_ joined
diakopter sprixel: say "43".Num # for moritz_ 14:04
p6eval sprixel 28514: OUTPUT«43␤»
colomon rakudo: say "43".Num;
p6eval rakudo c8181a: OUTPUT«Method 'Num' not found for invocant of class 'Str'␤»
moritz_ sprixel++
diakopter++
diakopter sprixel: say "43.3325".Int 14:05
p6eval sprixel 28514: OUTPUT«43␤»
14:06 iblechbot joined 14:07 abra joined
diakopter sprixel: say "0b10010".Int 14:08
p6eval sprixel 28514: OUTPUT«18␤»
diakopter is still offline-ish 14:11
masak mberends: I made one more commit to temporal-flux-perl6syn. I wonder whether the 'P0.5Y' is a net win or a net fail. it's practical, but it seems to me it inevitably introduces a calendarish type of rounding errors which could otherwise be avoided. 14:12
14:13 Student joined, icwiener left 14:16 justatheory joined 14:23 SmokeMachine joined 14:27 Psyche^ joined 14:29 Patterner left, rfordinal left 14:38 FCO joined 14:39 jaffa4 left, jaffa4 joined 14:40 SmokeMachine left
mberends masak: just read your remark. I want to think it over a bit before forming my opinion. Temporal is such a Bikeshed type subject... 14:41
masak mberends: that's OK, you have time. :P
by the way, re your hesitation towards s/DateTime/Time/, namely "Date is date-only, Time is time-only, DateTime is both." -- I spent some time wondering how much that opinion is biased by having implemented the last iteration of DateTime. :) 14:44
not saying you're wrong, or even that you shouldn't be biased.
14:44 riffraff joined
frettled waves a cardboard placard with Time::UTC and Time::TAI. 14:46
14:46 [particle] left 14:48 [particle] joined
masak I think this is the first time someone has waved a cardboard placard in here. I'm unsure as to the symbolism of it. 14:49
Matt-W cardboard placards are flammable
masak that might factor into it somehow.
I got the impression that it was a scoreboard, and that Time::UTC and Time::TAI were going to have a race. 14:50
but maybe frettled is just a peaceful demonstrator.
14:51 zloyrusskiy joined
jnthn pmichaud++ # pct-rx branch commits aplenty 14:51
masak jnthn!
jnthn masak!
masak pulls, er updates
jnthn has hand wonderful day out thanks to (korean friends)++, and is a bit tired to read those tonight. 14:52
frettled masak: it was rather peaceful, I hope. Those are current CPAN modules which bear some relevance to Temporal. 14:53
jnthn: goodie, you probably deserved it! 14:54
masak is 'frugal' the new 'eager'? or is it something else?
Matt-W I tried to look at the pct-rx branch changes, but I found parrot SVN's web interface very unhelpful
masak Matt-W: git-svn
jnthn Matt-W: Was the trac timeline diffs any better? 14:55
jnthn read that
Matt-W that doesn't give me a nice shiny web interface
jnthn: didn't know about that
jnthn trac.parrot.org
see timeline
Matt-W all I found was a horrible thing that wanted me to enter revision numbers :o
which seemed like a step back in time even for SVN
jnthn Matt-W: That's where you get grateful it's svn revision numbes, not git sha-1s ;-) 14:56
14:56 Psyche^ is now known as Patterner
Matt-W true 14:56
it'd be nice if I could filter this timeline by branch
Woodi anyone can tell me how to exit from rakudo interpreter ? how to end ./perl6 ? 14:57
Matt-W ctrl-C 14:58
moritz_ can I tell git-svn not to "aggressively search" for "old history"?
Woodi and other way ?
masak Matt-W: trac.parrot.org/parrot/log/branches/pct-rx
moritz_ Ctrl+D
Matt-W exit, possibly
jnthn kill
Matt-W maybe die
moritz_ exit doesn't work
jnthn no, repl catches exceptions
Matt-W aaah
masak REPL--
jnthn I fear even exit, though maybe that should chain...
14:58 jaffa8 joined
jnthn well, catcing die is good 14:58
Woodi exit no, die no, quit no, return no...
jnthn Catching exit exceptions probably is not.
Matt-W Woodi: ctrl-C then
jnthn But it's treating em all the same ATM 14:59
moritz_ Ctrl+D works here, too
Woodi i cannot accept ^C :)
moritz_ why not?
[particle] Q:PIR{end}
Woodi but ^D is ok and work :)
i prefer p6 interpreter can be civilised
Matt-W what's uncivilised about SIGINT
it's when you have to send it a SIGKIL that you're getting into uncivilised territory 15:00
Woodi kill -9/-15 is kinda administrative
but ^D eq EOT 15:01
masak aye, seems 'frugal' means :? 15:02
Woodi and if no way to exit from p6 interpreter i think better to not enter there...
[particle] rakudo needs something like: multi method exit(Int $x) { Q:PIR {$P0 = find_lex '$x'; $I0 = $P0; exit $I0 } }
jnthn would support exit working in the reply
Woodi you ant to scary new user ?
jnthn erm
repl
[particle]: suspect we already have one
Matt-W the repl generally needs some work
jnthn [particle]: exit iirc throws an exception
Matt-W it's not deliberately scary 15:03
[particle] ok, so the handlers need changing. that's straightforward.
jnthn [particle]: and the repl's "code threw an exception" handler just doesn't have stuff in place to rethrow exit exceptions.
[particle]: Yeah, if there's agreement, it should be.
I've not got any thoughts why exit should not actually exit the repl.
15:04 rfordinal joined
Woodi anyway i think ^D should send NL before finish, unix tools do this 15:04
[particle] it should absolutely exit.
moritz_ btw this worked for me: git svn clone --no-metadata -r41479:HEAD svn.parrot.org/parrot/branches/pct-rx/
jnthn [particle]: Patches (or ticket) welcome. :-) 15:05
moritz_ there's already a ticket for that
[particle] et viola.
jnthn there we are then
somebody just needs to write a little code ;-)
Matt-W hell 15:06
that sounds like something even I could do
but right now, I'm going home
moritz_ mentally hears Mark Knopfler - Going Home (Theme from the "Local Hero") 15:07
15:07 zloyrusskiy left, justatheory left
moritz_ too many cow-orkers around to actually play music :-) 15:08
15:08 zloyrusskiy joined 15:10 Caelum_ is now known as Caelum 15:14 cahek joined 15:15 rfordinal left 15:16 jaffa4 left
TimToady masak: on VMs without continuations, laziness must be emulated with closures, as STD does on Perl 5. 15:18
15:18 cahek left 15:19 cahek joined, cahek left
masak TimToady: I'm running up against some situations where first-class continuations would be very useful. that's why I'm thinking of this lately. 15:20
pugs_svn r28515 | lwall++ | [STD] complain about non-existent default vars, just for masak++
masak \o/
15:21 cahek joined
masak or maybe not even first-class, but some mechanism such as Ruby's 'yield'. 15:22
TimToady just implement Haskell on the VM, and then finish pugs :P 15:23
masak it feels strange that we have gather/take and pipes, but no local way to make the same kind of control flow.
TimToady that's because I like to keep my laziness orthogonal to sub cals 15:24
*calls
masak I see.
Seaside and Lift are two web applications which make good use of continuations. PGE and other parsers use them liberally. I'm still trying to figure out which contortions are necessary to port such applicationa to pure Perl 6. 15:25
TimToady and I very much don't like co-routines that change their signature depending on whether they're initting or continuing, though making yield return new arguments is a sop to fix that
masak s/applicationa/applications/
15:25 kidd` joined
masak hm, yes. co-routines changing signatures feels wrong, I agree. 15:26
TimToady I thought those were just "web continuations"
masak the point is that they're syntactically supported.
mberends masak: Temporal.pod now has week-of-year twice in the same list. Also, surely for Duration "D0.5Y" is more intuitive than "P0.5Y".
TimToady well, basically, lazy lists are our continuation syntax primitive 15:27
moritz_ rakudo: say "NaN" ~~ NaN
p6eval rakudo c8181a: OUTPUT«1␤»
masak mberends: the 'P' is from ISO 8601.
TimToady lazy lists are also a poor-man's monad
making sure time happens in the right order :) 15:28
PerlJam But I thought Perl 6 made us rich!
TimToady prophetic past tense is tricky
masak TimToady: either I'm missing something major from the 'lazy lists are our continuation syntax primitive', or I'm simply dissatisfied with it.
s:2nd/'/' viewpoint/ 15:29
15:29 silug left
TimToady continuations are like naked singularities, but the event horizon is a lazy list 15:29
masak TimToady: I'll do some research to try to understand your hesitation towards naked-singularity continuations. 15:31
15:31 zloyrusskiy left 15:32 jaffa8 left
masak mberends: (duplicate attribute) fixed. I also alphabetized the attributes while I was at it. 15:32
mberends++ # for noticing
15:33 cahek left 15:35 KyleHa joined
masak more to the point, I can see with some difficulty how a lazy list might help replace continuations in a regex parser, and not at all in the case of a Seaside-like web framework. 15:37
15:40 mberends left 15:41 zloyrusskiy joined 15:42 KyleHa left 15:43 ejs joined
moritz_ colomon: in the branch root(NaN, 1) does the Right Thing[tm] IMHO, but it returns (for example) a Complex.new(NaN, 0) intead of just a NaN. Smart-matching that against NaN fails... 15:48
colomon: IMHO it would be OK to fudge these tests for now, and merge the branch
15:49 riffraff left 15:51 snearch joined
moritz_ rakudo: say (NaN+0i) ~~ NaN 15:54
p6eval rakudo c8181a: OUTPUT«1␤»
moritz_ that's the actual thing we'll be regressing, not the roots() function
pmichaud: would you like to review the native-complex branch before merging? (I could very much understand if you don't, because of your other "distractions" at the moment :-) 15:56
masak (pmichaud's "distractions")++ 15:57
15:57 nihiliad joined
moritz_ the ~~ NaN thing is something we can fix 15:57
but since masak++ moved some operators to the setting in master it's some code I'm not too eager to touch in the branch 15:58
16:01 cdarroch joined
masak moritz_: merge in the branch, and then fix it, perhaps? 16:02
16:03 crythias left
moritz_ masak: in principle yes, but I'd like to get an answer from pmichaud++ first 16:03
masak aye, sure. 16:04
16:05 lanny joined 16:06 kidd` left
mikehh rakudo (c8181aa) builds on parrot r41579 - make test / make spectest_smolder (up to r28515 -> #28385) PASS - Ubuntu 9.04 amd64 16:07
16:10 justatheory joined 16:12 NorwayGeek|Away joined
colomon moritz_: I would think of Complex(NaN, 0) as being the wrong thing, actually, but perhaps I don't completely grok how NaN and types are supposed to work together. 16:12
lanny rakudo: my @xs=<0 1 3.14 0xA 0755 bar>; say @test.map: -> $n {"$n={$n.Int}, "}; 16:13
p6eval rakudo c8181a: OUTPUT«Symbol '@test' not predeclared in <anonymous> (/tmp/2bWZne3PvN:2)␤in Main (src/gen_setting.pm:3469)␤»
16:13 gbacon left, NorwayGeek left
lanny bah. cut/paste ftw 16:13
rakudo: my @xs=<0 1 3.14 0xA 0755 bar>; say @xs.map: -> $n {"$n={$n.Int}, "};
p6eval rakudo c8181a: OUTPUT«0=0, 1=1, 3.14=3, 0xA=10, 0755=755, bar=0, ␤»
lanny Is there a way to tell Int to use a different base? 16:16
masak rakudo: say :4<101>
p6eval rakudo c8181a: OUTPUT«17␤»
lanny Thanks. 16:17
masak rakudo: my $foo = '1010'; say eval ":4<$foo>"
p6eval rakudo c8181a: OUTPUT«68␤»
moritz_ rakudo: my $foo = '1010'; say :16($foo) 16:18
p6eval rakudo c8181a: OUTPUT«4112␤»
moritz_ rakudo: my $foo = '1010'; say :4($foo) 16:19
p6eval rakudo c8181a: OUTPUT«68␤»
moritz_ there ya go, without eval :-)
diakopter sprixel: my $foo = '1010'; say :4($foo)
p6eval sprixel 28515: OUTPUT«68␤»
moritz_ impressed
lanny rakudo: my @xs=<0 1 3.14 0xA :8(0755) bar>; say @xs.map: -> $n {"$n={$n.Int}, "}; 16:20
p6eval rakudo c8181a: OUTPUT«0=0, 1=1, 3.14=3, 0xA=10, :8(0755)=0, bar=0, ␤»
lanny rakudo: my @xs=<0 1 3.14 0xA :8(755) bar>; say @xs.map: -> $n {"$n={$n.Int}, "};
p6eval rakudo c8181a: OUTPUT«0=0, 1=1, 3.14=3, 0xA=10, :8(755)=0, bar=0, ␤»
lanny aha 16:22
rakudo: my @xs=<0 1 3.14 0xA 0o755 bar>; say @xs.map: -> $n {"$n={$n.Int}, "};
p6eval rakudo c8181a: OUTPUT«0=0, 1=1, 3.14=3, 0xA=10, 0o755=493, bar=0, ␤»
lanny better. Can't wait for: grok radix
16:24 snearch left, barney left
lanny Course if I could have remembered the term 'radix' I could have just grepped. 16:25
rakudo: my @xs=<< 0o755 :8<755> >>; say @xs.map: -> $n {"$n={$n.Int}, "};
p6eval rakudo c8181a: OUTPUT«0o755=493, :8<755>=493, ␤»
16:30 TopoMorto joined
TimToady moritz_: in blog s/If found/I've found/ 16:31
moritz_ TimToady: thanks, fixed (fix percolating to the site right now) 16:32
lanny sub f(Int @xs) of Int { [+] @xs; }; my @av=<2 3 4>; f(@av.map: {$_.Int}).say; 16:37
rakudo: sub f(Int @xs) of Int { [+] @xs; }; my @av=<2 3 4>; f(@av.map: {$_.Int}).say; 16:38
p6eval rakudo c8181a: OUTPUT«Parameter type check failed; expected Positional[Int], but got List for @xs in call to f␤in sub f (/tmp/yD4QWVo9DV:1)␤called from Main (/tmp/yD4QWVo9DV:0)␤»
lanny rakudo: sub f(Int @xs) of Int { [+] @xs; }; my @av=<2 3 4>; f([@av.map: {$_.Int}]).say;
p6eval rakudo c8181a: OUTPUT«Parameter type check failed; expected Positional[Int], but got Array for @xs in call to f␤in sub f (/tmp/KkfWrtmQ9V:1)␤called from Main (/tmp/KkfWrtmQ9V:0)␤»
lanny Isn't @xs an Array of Int?
moritz_ no 16:39
it's an untyped array 16:40
and it holds Str's actually
rakudo: say <2 3 4>[0].WHAT
p6eval rakudo c8181a: OUTPUT«Str()␤»
16:40 stephenlb joined
lanny Right. That's @av. 16:40
I'm asking of @xs in sub f
moritz_ erm, sorry
jnthn lanny: If you are going to pass an array into a routine that ones a typed array, you need to pass in a typed array. 16:41
*wants*
16:41 Intensity joined
lanny Ok. I see. 16:42
TimToady moritz_: re proto regexen, they participate fully in LTM as alternatives, so they do speed things up in the general case, assuming you have LTM as STD has it
lanny Is there a way of doing that anonymously rather than building a temp variable for it?
jnthn In Rakudo at the moment, I think not - in the future the syntax Array[Int](1,2,3) may do it. 16:43
16:43 mariuz left
jnthn Or maybe not. I figure there's a way... 16:43
moritz_ TimToady: and LTM is fast... because it's DFAish? is that the point?
jnthn If not that, perhaps an adverb to the circumfix [....]
lanny Yes. Would think so too.
jnthn TimToady: Answers welcome. ;-)
TimToady moritz_: yes, or some fast form of parallel NFA matching 16:44
moritz_ TimToady: thanks, that explains things 16:45
16:45 TiMBuS left
TimToady STD currently fakes DFA with a trie on constant strings and brute force otherwise, but the semantics are right 16:46
16:46 ruoso left
moritz_ in token foo:sym<bar> { <sym> ... } do you recognize that <sym> is basically a literal? 16:47
16:47 TopoMorto left
moritz_ s/you/STD.pm + Curser.pmc/ 16:48
(+ grammar fixes ;-)
TimToady certainly
see src/perl6/lex/STD/foo to see the LTM table for foo (in an active STD dir) 16:49
16:52 rindolf joined 16:53 payload joined
masak hah! according to lex/STD/twigil, the dot is a twigil! :) 16:54
moritz_ what is the ?? prefix?
TimToady where is there a ?? prefix? 16:56
moritz_ lex/STD/prefix
\?\?(?#::)(?#FATE7 prefix STD::prefix__S_318QuestionQuestion )
TimToady std: say ?? $x 16:57
p6eval std 28515: OUTPUT«===SORRY!===␤Preceding context expects a term, but found infix ?? instead at /tmp/94nOv2CD42 line 1:␤------> say ??⏏ $x␤FAILED 00:01 104m␤»
TimToady it can detect that reasonably since ? ? $x is non-sensical 16:58
moritz_ ah 16:59
TimToady likewise, there's still a + twigil
std: $+foo
p6eval std 28515: OUTPUT«Potential difficulties:␤ The + twigil is deprecated, use the * twigil instead at /tmp/kP46gdZPw0 line 1:␤------> $+⏏foo␤ The + twigil is deprecated, use the * twigil instead at /tmp/kP46gdZPw0 line 1:␤------> $+⏏foo␤ok 00:01 101m␤»
TimToady and that's why
lanny rakudo: sub f(Int @xs) { [+] @xs }; f(1..5).say; 17:01
p6eval rakudo c8181a: OUTPUT«Parameter type check failed; expected Positional[Int], but got Range for @xs in call to f␤in sub f (/tmp/7W1GMmyENd:1)␤called from Main (/tmp/7W1GMmyENd:0)␤»
17:01 crythias joined 17:02 omega left
TimToady jnthn: Array[Int](...) looks like a perfectly good cercion to me, assuming Array partakes of the role nature 17:03
*coercion
17:03 omega joined
jnthn TimToady: Well, it's parametric, so I guess it needs to. 17:03
TimToady arguably, of course, you can't coerce to a role in any case
jnthn TimToady: Well, yeah, that's why I was like "hmm" 17:04
TimToady there's some punning/delegation going on there, I expect
jnthn Of course, if we spec that as "it's a coercion to the punned class" then the problem "goes away"
I probably need to figure out how to pun faster than Rakudo currently does if things like array are gonna be roles. 17:05
moritz_ what are parameterized roles punned into? I mean there's no parametric class...
17:05 mberends joined
jnthn moritz_: A class that does the parametric role. 17:05
moritz_ ok
TimToady to the class it's just a part of its name, kinda
jnthn (the class is "anonymous" in so far as it has no direct reference from the package or lexpad.)
moritz_ feels a bit stupid today 17:06
jnthn (but for debugging purposes I think that it may be nice to pack the class thing its name is matching the name of the role that was punned)
TimToady your intelligence is worse today :)
jnthn erm, to make the class...
my typing sucks, but it just went 2am :-) 17:07
17:07 masak left
TimToady waves his hands vaguely in jnthn++'s direction 17:07
17:07 ruoso joined
jnthn yawns 17:08
I think time to sleep. I want to go see some interesting places tomorrow. :-)
TimToady g'night
jnthn o/
17:10 silug joined
TimToady std: sub foo($a = $default, :$default = 42) {} 17:14
p6eval std 28515: OUTPUT«Potential difficulties:␤ Variable $default is not predeclared at /tmp/1AKbdNCsky line 1:␤------> sub foo($a = $default⏏, :$default = 42) {}␤ok 00:02 104m␤»
17:21 TimToady sets mode: +v phenny 17:23 justatheory left, ejs left 17:24 TimToady sets mode: +oooo [particle] colomon cognominal frettled, TimToady sets mode: +oooo japhb Matt-W mberends moritz_, TimToady sets mode: +oo sjohnson szbalint, TimToady sets mode: +v hugme, TimToady sets mode: +o PerlJam 17:26 TimToady sets mode: +o wayland76 17:28 Confield joined 17:30 payload left 17:34 justatheory joined, justatheory left 17:35 justatheory joined 17:42 envi^home left 17:53 szabgab joined
colomon moritz_: does the roots commit (from two hours ago) mean all spectests pass now? 17:54
17:55 iblechbot left
moritz_ no 17:56
17:57 lucs left
colomon darn 17:57
17:57 abra left
pmichaud moritz_: I don't feel I need to review the native-complex branch before merging. 17:57
moritz_ rakudo: say +(2+3i)
pmichaud: ok
p6eval rakudo c8181a: OUTPUT«2+3i␤»
pmichaud (haven't looked to see if this happened yet)
pugs_svn r28516 | diakopter++ | [sprixel] add some JS libraries written largely by me 17:58
moritz_ rakudo: say (2+3i).Num
pmichaud I just peeked in to make sure the protoregex spec hasn't changed on me today :)
p6eval rakudo c8181a: OUTPUT«Method 'Num' not found for invocant of class 'Complex'␤»
colomon moritz_: we need to overload + for Complex, IMO.
diakopter mberends: take a look at those libraries I just committed... there's a lot there :)
colomon prefix+, I mean. which means moving it to the setting 17:59
moritz_ colomon: I think prefix:<+> is allowed to return any Numeric
so it's a no-op on Complex
17:59 lucs joined
colomon right, but if you try it right now on our branch, it tries to call .Num on it. 17:59
moritz_ rakudo: class A { method Num { NaN } }; say A.new ~~ NaN
pmichaud prefix:<+> likely means "numeric context", which may be very different from "coerce to Num"
p6eval rakudo c8181a: OUTPUT«1␤»
mberends diakopter: wow, lots of goodies! 18:00
moritz_ pmichaud: with yesterday's spec changes in mind it might mean 'coerce to Numeric'
colomon: oh.
pmichaud oh, I didn't see those spec changes, then.
I'll have to look.
later, when I'm ready for a break from protoregexes
moritz_ don't hurry
colomon I'm not sure if I like the 'coerce to Numeric' idea. 18:01
I've been thinking of it conceptually as 'coerce to something you can do math on'.
diakopter mberends: none of it's really ready use directly in sprixel yet (except the ToJS() function, which I ported from the ToJS.pm I wrote, so I can have pretty printed serialization of possibly-self-referential JS objects without duplication).
the rest of it is from the parser-generator/grammar-interpreter metalanguage system I wrote in JS 18:02
moritz_ colomon: and Numeric is the role which means "somethiing you can do math on"
colomon so for instance, if you've got a Vector class, prefix:<+> would return itself
moritz_ hm
good point
unless it adds a prefix:<+> multi
colomon moritz_: as I understand it, Numeric is complex or maybe real
pmichaud for those who are wondering why protoregexes should help parsing speed, take a look at the "statement_control" rule in Rakudo's grammar.pg file
and imagine you're about to parse a 'for' statement
colomon has to take his dog for her shots. back soon. 18:03
pmichaud as things stand now, the parser first tries (and fails) all of the alternatives above the <for_statement> subrule 18:04
moritz_ pmichaud: but that's an LTM feature, not a protoregex feature, no?
pmichaud it's a protoregex feature also
well....
I should say that the first cut of protoregexes will recognize initial string prefixes 18:05
moritz_ so it's an optimization too
pmichaud I tend to think of "optimizations" as being things that go beyond the spec. This behavior is mandated by the spec. (more)
anyway, when I have protoregexes implemented, we'll be able to do statement_control:for instead, and when we go to parse a <statement_control> subrule it'll jump immediately to the correct protoregex candidate(s) 18:06
instead of attempting all of the false candidates
moritz_ so it will match \w+\b (in perl 5 regexes) first, and then look for a jump candidate? 18:07
pmichaud no
it'll have a list of all of the initial strings
from all of the candidates
moritz_ ok
pmichaud and then it will check for those initial strings
TimToady it's even better than that
pmichaud in the full implementation case it's even better, yes. 18:08
I'm talking about the "first cut" at the moment :)
TimToady because it only matched all the alternatives at statement, and determined a fate
so it already has its fate determined by the time it reaches the statement_control rule
18:08 gbacon joined
pmichaud my initial implementation probably won't have fates done yet 18:09
and this is where I tend to draw a distinction between "protoregex" and "ltm" :) 18:10
for me, "ltm" includes all of the subrule processing; I won't have that part yet.
18:11 zpmorgan left
mberends diakopter: does your sprixel run num.t and radix.t? here it says 'Can't locate object method "Str" via package "Test"'. t/01-sanity/04-if.t works fine. 18:12
TimToady speaking of which, I see I have a bug, since lex/STD/statement_02 doesn't include all the termish prefixes
18:13 mspaulding left
diakopter oh noes 18:13
diakopter sees the cycle of breakage/fixage between std/sprixel begin
TimToady oh, it won't change anything visible to sprixel 18:14
it's just trying all the statement_controls before it tries EXPR, but the structure is the same
diakopter ok; but np if it does in the future; I'm tongue-in-cheek
I just thought of a truly wicked way to implement multiple inheritance using JS' prototype system 18:18
TimToady pmichaud: I don't see any problem with that approach, since every rule also has to work standalone when the Fates are off visiting Mt Olympus 18:19
diakopter let's just say it involves temporarily changing the .__proto__ member of the involved object prototypes (basically creating a resolution chain at resolution time)
18:19 zloyrusskiy left
pmichaud TimToady: right (more) 18:21
TimToady: I figure I want to get a basic protoregex implementating working first, move Rakudo and NQP to be using protoregex-and-contextual based parsing, and then work on optimizing the engine for full ltm semantics including fates 18:22
but even the basic protoregex implementation should give us some parsing speed improvement
if nothing else, we get to avoid a lot of method calls and creation of cursor/match objects that exist just to say "false." 18:23
18:23 ssm left, jantore left, lucs left, Confield left, mberends left, reqamst left, japhb left, meteorjay left, c1sung left, kcwu left, rafl left, renormalist left, yath left, bionoid left, hatseflats left, Juerd left, pnu left
diakopter mberends: to answer your question, I don't know 18:26
18:29 kidd joined
PerlJam pmichaud: Are there some benchmarks handy that will show the parsing speed difference, or is it just eye-ball the time it takes rakudo to build ? 18:32
pmichaud PerlJam: it'll have to be eye-ball
because the grammar has to change significantly in order to tell
and I don't expect those changes to happen "overnight"
PerlJam it could ... if there were a hackathon specifically for updating the grammar. 18:33
:-)
pmichaud it's more than just updating the grammar, it's also updating all of the action methods that go along with it
and one of the whole points of doing these changes now is that we need contextuals in our grammar, so that we can refactor the action methods
and I doubt those refactors will happen in the span of a day 18:34
put another way, I suspect that much of october and november will be working on cleaning up regressions from the switches jnthn++ and I will be making 18:35
s/switches/refactors and changes
moritz_ but if all goes right, the usage of proto regexes can happen gradually, no?
so that you only port one rule at a time
pmichaud if we're only porting rules, then perhaps yes. 18:36
but there's a lot of other stuff that needs to change as well
and some of those changes aren't "gradual"
e.g., switching "is also" to "augment" isn't a gradual change -- it's a significant change to how we process the ast internally 18:37
18:37 frederico joined
pmichaud same for lexical handling of namespaces, classes, and subroutines 18:37
rindolf «No one knows all of Perl - not even Larry Wall. Except Chuck Norris, who knows all of Perl 5, Perl 6 and can answer questions about the design of Perl 7. » 18:38
18:42 mberends joined, lucs joined, Confield joined, reqamst joined, japhb joined, meteorjay joined, ssm joined, c1sung joined, kcwu joined, rafl joined, pnu joined, jantore joined, yath joined, hatseflats joined, bionoid joined, renormalist joined, Juerd joined, irc.freenode.net sets mode: +ooo mberends japhb Juerd 18:53 justatheory left 18:56 zloyrusskiy joined
Juerd mberends: Pong 19:04
19:05 zloyrusskiy left 19:07 rjh left 19:08 ruoso left 19:11 justatheory joined 19:25 NorwayGeek|Away left 19:26 NorwayGeek joined, zloyrusskiy joined
pugs_svn r28517 | colomon++ | [t/spec] Add some basic tests for complex addition and subtraction. 19:33
19:35 iblechbot joined
mberends hi Juerd, with this netsplit I was wondering if there was any channel left. Also, you mentioned a few days back that you can provide feather accounts and perl6 subdomains. If it's possible, I'd like to develop a blogging website using Rakudo and masak++'s web.pm. Is it feasible for feather to host something like that? 19:36
Juerd Certainly. 19:37
If you want a feather account, mail me your real name and preferred username.
mberends :) willdo 19:38
Juerd Note that feather is DIY; you can run a web server, but it's not a hosting platform, so there's no Apache set up for your project or anything.
moritz_ if you need any other directions you can also talk to me; I'm admin on feather1 and feather2
Juerd The global Apache is non-development, but a reverse proxy or redirect can be set up. 19:39
mberends with http-daemon, Rakudo is its own webserver ;)
Juerd Yes.
The suggested port number for your own project is 7000 + uid :)
mberends ok, sensible.
thanks both of you, I'll start in a day or so 19:41
19:41 mspaulding joined 19:42 zloyrusskiy left 19:53 justatheory left
Juerd mberends: Better send that email now, 'cause I might be slow to respond :) 19:54
mberends ok :) 19:55
TimToady phone 20:00
mberends Juerd: sent, but take your time :) 20:02
Juerd ok :)
pugs_svn r28518 | lwall++ | [gimme5] generate EXPR__PEEK so it propagates LTM 20:05
mberends diakopter: are those JS libs guaranteed free of licensing issues? There are so many authors named in there, people who have nothing to to with Perl... 20:06
*to do
lanny rakudo: sub f($x) { $x > 255 ?? 0 :: $x; }
p6eval rakudo c8181a: OUTPUT«ResizablePMCArray: Can't pop from an empty array!␤»
lanny ah. 20:08
moritz_ lanny: known bug 20:09
it's ?? !! instead of ?? :: FYI
lanny The one where I can't type? :)
moritz_ the error message is... less than awesome
TimToady std: sub f($x) { $x > 255 ?? 0 :: $x; }
p6eval std 28517: OUTPUT«===SORRY!===␤Please use !! rather than :: at /tmp/6aV9smNfkv line 1:␤------> sub f($x) { $x > 255 ?? 0 ⏏:: $x; }␤ expecting any of:␤ bracketed infix␤ infix stopper␤ standard stopper␤ terminator␤FAILED 00:01 104m␤»
lanny Yes. Started grepping through tests to see and noticed the !!
20:13 hercynium joined 20:20 justatheory joined
mberends wrote ?? :: quite a few times before learning the Right Way 20:22
moritz_ which is why a more awesom error message would be great in rakudo 20:23
20:31 icwiener_ left
diakopter how is some less than full, if awefull is less than awesome? 20:34
20:38 crythias left
TimToady feels fullsome 20:41
moritz_ colomon: trying to move prefix:<+> to the setting resulted in horrible failures - no idea what I did wrong 20:44
TimToady perhaps defined it in terms of something that things + is more primitive? 20:47
*thinks
moritz_ no, I defined it in PIR, which triggered vtable method calls, which are as primitive as you can get 20:48
20:55 lambdabot joined
pugs_svn r28519 | moritz++ | [t/spec] more tests for Complex arithmetics 20:58
20:59 rindolf left 21:00 [particle]1 joined
colomon moritz_: yeah, I had the same thing happen to me the day before you started the complex branch. 21:02
moritz_: though I figured it was just because my attempt was too stupid to survive.
moritz_ that could be very well the case with my attempt too ;-) 21:03
anyway, 've merged native-complex into master locally, and now I'm about to move Num.accepts into the setting to fix the last two remaining test failures
colomon moritz_: my conclusion after fiddling around is that the actual generic object to num conversion happens magically in the Parrot code.
sweet! 21:04
21:04 szabgab left
moritz_ colomon: yes, it's the get_number vtable methods 21:04
s/s$//
21:04 frew_ left
moritz_ oh wow, that looks scarry 21:05
there's a .sub 'Num::ACCEPTS' :anon :method
ah, that's for $stuff ~~ Num, not for $suff ~~ $instance_of_Num
lisppaste3 moritz_ pasted "would you think this is a sane ACCEPTS method?" at paste.lisp.org/display/87969 21:11
moritz_ I'm not sure if the spec talks about Complex ~~ Num, but it seems the most sensible thing for me to do 21:12
21:16 abra joined 21:17 abra left, [particle] left 21:18 athomason left, abra joined 21:19 abra left, asdadasd joined 21:20 cognominal left, bigpresh_ left, bigpresh_ joined, abra joined, cognominal joined 21:21 iblechbot left 21:22 abra left 21:23 abra joined 21:24 asdadasd left 21:33 frew_ joined 21:40 abra left 21:43 crythias joined 21:48 abra joined 21:49 mberends left 21:51 pmurias left
pugs_svn r28520 | moritz++ | [t/spec] $thing ~~ "NaN" is not the same as $thing ~~ NaN 21:55
21:56 MartinTSW joined, abra left 21:58 MartinTSW left
moritz_ The Big Merge has landed 22:00
22:00 dalek left, dalek joined
moritz_ and spammed #parrot ;-) 22:01
lanny Is numeric bit manipulation past 32 bits a known issue? 22:06
moritz_ in Rakudo yes
lanny I wonder if I still have a pugs commit bit. I don't see any tests for that. 22:08
dalek kudo: ffe6481 | moritz++ | docs/ChangeLog:
[docs] ChangeLog updates
22:12
22:21 MartinTSW joined 22:22 FCO left
diakopter lanny: what's your email address; I'll look 22:23
22:26 mspaulding left, [particle] joined
lanny Well it's changed since I got laid off. :/ 22:26
So my new one is [email@hidden.address]
22:26 MartinTSW left
lanny it was [email@hidden.address] (or maybe I used [email@hidden.address] even back then) 22:27
22:29 alfieANDfred joined 22:32 alfieANDfred left, alfieANDfred joined, alfieANDfred left, alfieANDfred joined 22:33 alfieANDfred left 22:41 [particle]1 left 22:43 crythias left
TimToady lanny: and do you want your svn nick to be lanny? 22:50
lanny I would. That's not the same as the nick listed on commitbit.pugscode.org? 22:51
TimToady you were at lan3ny 22:52
you want that addr instead?
or the new one?
lanny I'll go with 'lanny'.
Far fewer folks than I would think get the Tom Lehrer reference. 22:53
TimToady I mean the Lanny.Ripple addr
lanny oh. I've got lan3ny@gmail as well so I'll keep that one.
TimToady I can resend the commitbit if you don't remember your password
lanny I did happen to remember it so that won't be needed.
TimToady okay 22:54
lanny Even put it on a yellow sticky this time.
TimToady welcome back aboard :)
lanny Thanks.
22:58 buubot left 22:59 buubot joined, nihiliad left 23:03 lanny left 23:06 cdarroch left 23:26 meppl left 23:31 ihrd joined 23:33 ihrd left, tak11 joined 23:34 alfieANDfred joined 23:43 Maddingue left 23:48 mikehh left 23:52 araujo joined