Time |
Nick |
Message |
00:01 |
jnthn |
rakudo: say " ( no ouptput )" |
00:01 |
p6eval |
rakudo f99cc4: ( no output ) |
00:02 |
pugs_svn |
r28704 | lwall++ | [viv] do similarly with postcircumfix and dotty |
00:02 |
jnthn |
\o/ # wow p6eval has spell checker! |
00:02 |
moritz_ |
rakudo: say 1 |
00:02 |
p6eval |
rakudo f99cc4: ( no output ) |
00:02 |
jnthn |
...oops. |
00:02 |
moritz_ |
I was wondering why the NL was missing from yours |
00:03 |
moritz_ |
it segfaults during build |
00:03 |
jnthn |
heh heh |
00:03 |
jnthn |
...during build?! |
00:03 |
jnthn |
That's...ouch. |
00:03 |
jnthn |
moritz_: Where in the build? |
00:04 |
moritz_ |
rather late... but I didn't look closure, instead started a rebuild ;-) |
00:06 |
moritz_ |
/home/p6eval//p2/bin/parrot -o perl6_s1.pbc perl6.pir |
00:06 |
moritz_ |
make: *** [perl6_s1.pbc] Segmentation fault |
00:07 |
jnthn |
Oh, Parrot SEGV just on compiling? |
00:07 |
jnthn |
Damm. |
00:07 |
jnthn |
oh, hmm...I committed... |
00:08 |
jnthn |
-41447 |
00:08 |
jnthn |
+41772 |
00:08 |
jnthn |
So I did dump Parrot rev. |
00:08 |
jnthn |
Didn't actually need it for this commit, but instead for forthcoming one. |
00:09 |
moritz_ |
I have no idea how clean or unclean the parrot dir on that server is |
00:10 |
jnthn |
Maybe worth cleaning that up before we panic. :-) |
00:11 |
moritz_ |
aye |
00:12 |
moritz_ |
oh, did somebody fix the parallel build? |
00:12 |
|
lumi joined #perl6 |
00:13 |
jnthn |
moritz_: I tweaked the makefile a little today. |
00:14 |
jnthn |
moritz_: Added one missing dep I'd forgotten before. |
00:14 |
jnthn |
That may have done it. |
00:15 |
moritz_ |
ok, on two of the hosts the build was successful |
00:15 |
moritz_ |
now waiting for the p6eval one ;-) |
00:18 |
moritz_ |
rakudo: say 2 |
00:18 |
p6eval |
rakudo 3a4d14: OUTPUT«2» |
00:18 |
moritz_ |
much better ;-) |
00:18 |
jnthn |
\o/ |
00:19 |
jnthn |
rakudo: sub foo(::T $x) { }; say &foo.signature.perl |
00:19 |
p6eval |
rakudo 3a4d14: OUTPUT«:(Any ::T $x)» |
00:19 |
jnthn |
\o/ |
00:19 |
moritz_ |
\o/ indeed |
00:19 |
jnthn |
Now we just need the default closure in there |
00:19 |
jnthn |
And then the sig objects probably have everything the new binder will need. |
00:19 |
jnthn |
Well, apart from nested signatures. |
00:20 |
jnthn |
There's a slut for those. |
00:20 |
jnthn |
But we're not parsing 'em yet. |
00:20 |
moritz_ |
rakudo: sub foo(::T Int $x where { $x % 2 } ) { }; say &foo.signature.perl |
00:20 |
p6eval |
rakudo 3a4d14: OUTPUT«Multiple prefix constraints not yet supported at line 2, near ") { }; say"in Main (src/gen_setting.pm:1161)» |
00:20 |
moritz_ |
did you mean "slot"? |
00:20 |
jnthn |
didn't I type...oh...wow...ouch |
00:20 |
moritz_ |
:) |
00:21 |
jnthn |
That code should parse - I copied STD though. ;-) |
00:21 |
jnthn |
STD got fixed for that only a day or two ago. |
00:21 |
moritz_ |
rakudo: say 3 !% 2 |
00:21 |
p6eval |
rakudo 3a4d14: OUTPUT«0» |
00:22 |
moritz_ |
rakudo: say 4 !% 2 |
00:22 |
p6eval |
rakudo 3a4d14: OUTPUT«1» |
00:25 |
|
lumi joined #perl6 |
00:25 |
moritz_ |
jnthn: is .constraints supposed to be implemented? |
00:27 |
jnthn |
rakudo: sub foo($x) { }; say &foo.signature.params.constraints |
00:28 |
p6eval |
rakudo 3a4d14: OUTPUT«Method 'constraints' not found for invocant of class 'List'in Main (src/gen_setting.pm:204)» |
00:28 |
jnthn |
rakudo: sub foo($x) { }; say &foo.signature.params[0].constraints |
00:28 |
p6eval |
rakudo 3a4d14: OUTPUT«Use of uninitialized value» |
00:28 |
jnthn |
rakudo: sub foo($x where 1) { }; say &foo.signature.params[0].constraints |
00:28 |
p6eval |
rakudo 3a4d14: OUTPUT«Use of uninitialized value» |
00:28 |
jnthn |
hmm |
00:28 |
jnthn |
That second one is more unexpected. |
00:28 |
jnthn |
Yes, I think it's meant to be. |
00:28 |
|
SmokeMachine joined #perl6 |
00:28 |
jnthn |
Maybe bug. |
00:29 |
jnthn |
Or something else odd. |
00:29 |
pugs_svn |
r28705 | moritz++ | [t/spec] .constraints tests |
00:30 |
|
NorwayGeek joined #perl6 |
00:30 |
pugs_svn |
r28706 | moritz++ | [t/spec] non-closure constraints |
00:31 |
|
payload joined #perl6 |
00:31 |
moritz_ |
rakudo: sub h(::T $x, T $y) { }; |
00:31 |
p6eval |
rakudo 3a4d14: ( no output ) |
00:32 |
moritz_ |
rakudo: sub h(::T $x, T $y) { }; say &h.signature.params[1].type.perl |
00:32 |
p6eval |
rakudo 3a4d14: OUTPUT«Any» |
00:32 |
moritz_ |
not quite what I expected, but then I don't know what else it could have returned |
00:33 |
moritz_ |
rakudo: sub h(::T $x, T $y) { }; say &h.signature.params[0].type_capture.perl |
00:33 |
p6eval |
rakudo 3a4d14: OUTPUT«Method 'type_capture' not found for invocant of class 'Parameter'in Main (src/gen_setting.pm:204)» |
00:33 |
moritz_ |
rakudo: sub h(::T $x, T $y) { }; say &h.signature.params[0].type_captures.perl |
00:33 |
p6eval |
rakudo 3a4d14: OUTPUT«["T"]» |
00:34 |
jnthn |
moritz_: It transforms that lookup into a constraint. |
00:34 |
jnthn |
moritz_: For the moment, anyway. |
00:34 |
pugs_svn |
r28707 | moritz++ | [t/spec] type_captures |
00:35 |
jnthn |
moritz_: So :(::T $x, T $y) is kinda more like :(::T $x, $y where T) |
00:35 |
moritz_ |
is it also supposed to be that way? |
00:35 |
jnthn |
I'm really not too sure. |
00:35 |
moritz_ |
I mean it does make a difference for narrowness |
00:35 |
jnthn |
Well, that's an interesting problem. |
00:35 |
jnthn |
Remember narrowness matters when we're sorting the candidates. |
00:36 |
jnthn |
And that sorting is independent of any particular call. |
00:36 |
jnthn |
So we don't know that T will be when we do the sort. |
00:36 |
|
rgrau` joined #perl6 |
00:37 |
jnthn |
So we'd have to assume Any in the above case. |
00:37 |
jnthn |
At sort time. |
00:37 |
moritz_ |
so :(Any, Int) wins against :(::T, T) when called with (1, 2) |
00:37 |
jnthn |
Right. |
00:37 |
moritz_ |
that's fair if you document it, IMHO |
00:37 |
jnthn |
Well, the thing is |
00:37 |
jnthn |
:(Any, Int) wins against :(::T, T) |
00:38 |
jnthn |
That's *it*. |
00:38 |
jnthn |
Well |
00:38 |
jnthn |
If the first can bind of course. |
00:38 |
jnthn |
But the sorting - which is call-independent - sees the first sorted before the second. |
00:40 |
pugs_svn |
r28708 | lwall++ | [viv] more strange operator type cleanup, fake infixes, regex_infix, etc. |
00:40 |
jnthn |
The perhaps nice thing is that :(T, ::T) sorts narrower than :(Any, Any) |
00:40 |
jnthn |
Because the constraint makes it narrower. |
00:40 |
jnthn |
Which I think is what you want. |
00:41 |
moritz_ |
aye |
00:42 |
|
lumi joined #perl6 |
00:43 |
jnthn |
It's certainly a topic I've pondered quite a bit too, though. |
00:43 |
jnthn |
"is treating it as a constraint really OK" |
00:43 |
TimToady |
would :(Int ::T $x, T $y) be tighter than that? |
00:44 |
jnthn |
TimToady: :(Int ::T $x, T $y) would be tighter than :(T, ::T), yes |
00:44 |
moritz_ |
I'd expect that to turn into :(Int $x, Int $y where T) |
00:44 |
sjohnson |
Tene: on your slurp function you wrote for me a few months ago, do i need to close the $fh handler you wrote? |
00:44 |
sjohnson |
>> sub slurp { my $name = shift; open my $fh, '<', $name; local $/; <$fh> } |
00:44 |
jnthn |
moritz_: Actually only (ATM) :(Int ::T $x, $y where T)...hmm |
00:44 |
Tene |
sjohnson: no, because you're using a lexical filehandle. |
00:44 |
Tene |
sjohnson: so it's automatically closed at the end of the scope. |
00:45 |
jnthn |
TimToady: OOps, I meant :(::T, T) above |
00:45 |
jnthn |
moritz_: Though there's a decent argument for what you suggest. |
00:45 |
sjohnson |
Tene: thanks |
00:45 |
sjohnson |
( `ー´) |
00:47 |
moritz_ |
jnthn: if that's implementable without a major refactor of the dispatcher, that'd be a great compromise |
00:47 |
dalek |
rakudo: 1b83557 | moritz++ | t/spectest.data: |
00:47 |
dalek |
rakudo: we pass t/spec/S06-signature/introspection.t, jnthn++ |
00:47 |
dalek |
rakudo: review: http://github.com/rakudo/rakudo/commit/1b835575694653a394944ae24fec731f7e286e1c |
00:47 |
moritz_ |
maximal DWIM but preserving pre-sortability |
00:47 |
jnthn |
moritz_: Well, it's not even a dispatcher issue. |
00:47 |
jnthn |
moritz_: It's more a signature construction one. |
00:47 |
moritz_ |
right |
00:48 |
jnthn |
So in many senses, it's kinda easy. :-) |
00:48 |
moritz_ |
\o/ |
00:48 |
jnthn |
I agree it's a good balance. |
00:49 |
moritz_ |
I'll sneak it in as a TODO test ;-) |
00:49 |
TimToady |
we just have to say that an en passant type also captures the nominal type |
00:49 |
jnthn |
TimToady: ...in English? ;-) |
00:50 |
TimToady |
en passant is English, as of 1070 |
00:50 |
TimToady |
er, 1066 |
00:50 |
jnthn |
:-P |
00:50 |
moritz_ |
;-) |
00:50 |
moritz_ |
"in passing" |
00:50 |
moritz_ |
playing chess now and then helps you understand what "en passant" means ;-) |
00:51 |
jnthn |
TimToady: The proposal here is that :(Int ::T $x, T $y), which currently gets transformed to :(Int ::T $x, $y where T) would instead become :(Int ::T $x, Int $y where T) |
00:51 |
TimToady |
seems right |
00:51 |
jnthn |
TimToady: In other words, it's just shoving along as much as we statically can know about the nominal type. |
00:52 |
TimToady |
what about :(Int ::T $x where *.odd, T $y)? |
00:53 |
moritz_ |
would be turned into ... Int $y where T & *.odd |
00:53 |
moritz_ |
I suppose |
00:53 |
jnthn |
TimToady: Since ::T captures the nominal type, and has no relation to the constraint, I'd not really expect to distribute the constraint from the first parameter too. |
00:53 |
moritz_ |
so here our expectations diverge |
00:54 |
jnthn |
Well, but then things like :(Odd ::T $x) gets fun |
00:54 |
moritz_ |
but what jnthn says makes sense, also |
00:54 |
jnthn |
Assuming a subset Odd of Int where ... |
00:54 |
pmichaud |
I'm not sure I agree with the transformation |
00:54 |
jnthn |
Because signature construction picks that apart into a nominal type of Int and a constraint. |
00:54 |
TimToady |
that seems to argue for carrying wheres over |
00:54 |
|
stephenlb joined #perl6 |
00:55 |
jnthn |
TimToady: Yeah, it can be argued both ways. :-) |
00:55 |
TimToady |
indeed, what if you want ::T to be *only* the nominal type |
00:55 |
TimToady |
and appy a different constraint? |
00:56 |
jnthn |
TimToady: Well, ::T *is* only the nominal type. |
00:56 |
TimToady |
:(Odd ::T $x, T where Even) |
00:56 |
TimToady |
until a tighter type is bound |
00:57 |
TimToady |
then it's actual type |
00:57 |
jnthn |
rakudo: subset Even of Int where { $^n % 2 == 0 }; sub foo(::T $x) { say T.WHAT }; my Even $x = 42; foo($x) |
00:57 |
p6eval |
rakudo 1b8355: OUTPUT«Int()» |
00:57 |
jnthn |
TimToady: Well, thingy is...we've been talking so far about this as nothing more than signature syntax sugar. |
00:57 |
TimToady |
s/tighter/derived/ |
00:58 |
jnthn |
Rather than analysing relations between the types. |
00:58 |
TimToady |
en passant is supposed to mean the actual type of the argument |
00:58 |
TimToady |
suppose you derive MyInt from Int |
00:58 |
TimToady |
if you pass in a MyInt, T is MyInt, not Int |
00:59 |
jnthn |
TimToady: It's whatever .WHAT on the arguemnt hands back. |
00:59 |
jnthn |
TimToady: Oh, for sure, I agree. |
00:59 |
TimToady |
but you said it was only the nominal type, which that ain't |
01:00 |
jnthn |
TimToady: We really need to define some terms somewhere for what we call things. :-) |
01:00 |
TimToady |
if you say :(Int ::T $x, T $y), then the nominal type is Int, but actual is MyInt |
01:00 |
jnthn |
Nominal is a really bad word for what I want to express here really. I wish we had a better one. |
01:01 |
TimToady |
nominal isn't bad at all if you're thinking about "name equiv" vs "structural equiv" |
01:01 |
jnthn |
TimToady: Yes, but in :(Int ::T $x, T $y) then I see T as being bound to $x.WHAT |
01:01 |
jnthn |
Which I'd say is the nominal type of $x |
01:02 |
jnthn |
Well, assuming we found $x already of course. |
01:02 |
TimToady |
that's the storage type |
01:02 |
jnthn |
heh :-) |
01:02 |
TimToady |
no, $x's storage type may have no name at all |
01:02 |
jnthn |
Right, thus why we need to sort out the terminology on types. :-) |
01:02 |
TimToady |
a storage type is what the subset type is actually stored as |
01:02 |
TimToady |
the WHAT type |
01:03 |
jnthn |
I probably when I say "nominal" so often maybe what to actually say "storage type" |
01:03 |
TimToady |
but that's not what I've been calling nominal type at all |
01:03 |
TimToady |
I only mean the declared type in the sig |
01:03 |
jnthn |
Ah, OK. |
01:03 |
jnthn |
I think we're meaning the same thing and using different words. :-) |
01:03 |
moritz_ |
rakudo: multi a(::T $x, T $y) { 1 }; multi a($x, $y) { 2 }; say a([], {}) |
01:03 |
p6eval |
rakudo 1b8355: OUTPUT«2» |
01:05 |
jnthn |
So, ::T captures the storage type? |
01:05 |
jnthn |
Is that fitting with how you'd describe it? |
01:05 |
TimToady |
yes |
01:05 |
jnthn |
OK. |
01:05 |
jnthn |
I can accept that way of calling things. :-) |
01:05 |
TimToady |
we already know the nominal type, so no need to capture it |
01:06 |
jnthn |
I've been using nominal type in far wider sense than you. |
01:06 |
jnthn |
Or differently, at least. |
01:06 |
TimToady |
$x.WHAT can very easily give you a nameless type |
01:06 |
jnthn |
Yes. Nominal is a bad word for the thingy I wanted to express. |
01:06 |
TimToady |
not much nominal about that |
01:06 |
jnthn |
Indeed. |
01:07 |
jnthn |
It'd probably be worth trying to document our terms for this stuff a bit more somewhere. |
01:07 |
TimToady |
but fine for the declared type, as in the meaning of nominal: "that which we assume" |
01:08 |
TimToady |
as in "Larry is nominally a linguist" :) |
01:08 |
jnthn |
;-) |
01:09 |
jnthn |
OK, I think we're agreeing. Or at least, agreeing more than disagreeing. :-) |
01:09 |
|
lumi joined #perl6 |
01:10 |
moritz_ |
now if you want to make me happy, put the intersection of your agreeing into the spec somewhere ;-) |
01:11 |
* jnthn |
points at TimToady: he's in a far better timezone for being coherent than me ;-) |
01:14 |
moritz_ |
speaking of timezones... it's 3AM, I should try to get some sleep too |
01:14 |
moritz_ |
TTFN |
01:15 |
jnthn |
aye, 3am here too...I should perhaps do similar :-) |
01:17 |
|
orafu joined #perl6 |
01:20 |
|
rhr_ joined #perl6 |
01:26 |
|
M_o_C joined #perl6 |
01:42 |
pugs_svn |
r28709 | lwall++ | [S06] |
01:42 |
pugs_svn |
r28709 | document both nominal and storage aspects of ::T capture |
01:42 |
pugs_svn |
r28709 | clarify that T does not require an exact match |
01:42 |
pugs_svn |
r28709 | rename section to En passant type capture |
02:15 |
|
TiMBuS joined #perl6 |
02:35 |
|
JimmyZ joined #perl6 |
02:55 |
|
envi^home joined #perl6 |
03:15 |
|
lumi joined #perl6 |
03:18 |
|
rhr joined #perl6 |
03:22 |
|
TiMBuS joined #perl6 |
03:31 |
pugs_svn |
r28710 | lwall++ | [Cursor] switch back to YAML::XS because Syck can't load STD.pm.syml |
03:34 |
diakopter |
o_O |
03:35 |
TimToady |
why t/spec/S05-grammar/std.t was coredumping |
03:36 |
TimToady |
sorry if you have to download XS |
03:36 |
TimToady |
XS is a bit faster, actually |
03:37 |
diakopter |
viv already used ::XS |
03:37 |
TimToady |
hah |
03:37 |
TimToady |
maybe that's why cursor could load using Syck :) |
03:37 |
TimToady |
well, probably not |
03:38 |
* diakopter |
runs make again 2C what he canC |
03:38 |
TimToady |
make clean |
03:38 |
diakopter |
k |
03:42 |
diakopter |
./tryfile STD.pm took about 4% less time than r28709 |
03:42 |
diakopter |
within the error margin for linux64 in vmware on win64 |
03:43 |
diakopter |
how would one run a nytprof on ./tryfile STD.pm |
03:44 |
diakopter |
(to get the .html results you pasted awhile back) |
03:44 |
diakopter |
(is there a switch somewhere) |
03:44 |
|
agentzh joined #perl6 |
03:45 |
TimToady |
perl -d:NYTProf tryfile STD.pm, I think |
03:47 |
* diakopter |
builds perl-devel-nytprof from svn trunk |
03:51 |
diakopter |
JSON::Any depends on JSON::DWIW, but it doesn't say it does. |
03:54 |
diakopter |
er something. |
03:55 |
pugs_svn |
r28711 | kyle++ | [t/spec] Tests for "note" based on "say" tests |
03:55 |
pugs_svn |
r28712 | kyle++ | [t/spec] more testing of bare say |
03:57 |
|
davidm123 joined #perl6 |
03:58 |
davidm123 |
is there a robust implementation of perl6 sigils in perl5? (not some source filtering hack) |
03:59 |
TimToady |
I don |
03:59 |
TimToady |
I don't know of any such |
03:59 |
TimToady |
it would be difficult to bypass the lexer without a source filter |
04:00 |
TimToady |
that's one of the reasons Perl 6 does it differently :) |
04:01 |
davidm123 |
the peculiarities of perl5 sigils have been known for many years. |
04:01 |
davidm123 |
one might think there were some bandaid (not that we need to wait a decade for perl6 :) ) |
04:01 |
TimToady |
alas, we brainwashed people too thoroughly about the righteousness of Perl 5's sigil system |
04:03 |
TimToady |
unfortunately, to change the sigils, you have to change how the slices work, and when you do that, there are ramifications on how context must be applied lazily rather than eagerly |
04:08 |
* diakopter |
continues to wait for nytprof tryfile std |
04:09 |
diakopter |
go go gadget cpu fan |
04:11 |
diakopter |
hrm. 400MiB nytprof.out |
04:12 |
|
am0c joined #perl6 |
04:14 |
|
sparc joined #perl6 |
04:15 |
diakopter |
methinks for the next attempt I'll export NYTPROF=stmts=0 |
04:15 |
TimToady |
the stmts are the cool part |
04:16 |
diakopter |
ok 08:27 367m - 644785257 2009-10-06 03:51 nytprof.out |
04:16 |
diakopter |
erm. time must be off. |
04:17 |
diakopter |
well, not _time_, but the vm's clock. :) |
04:18 |
diakopter |
phenny: where'd you go |
04:19 |
diakopter |
Profile of tryfile for 519s, executing 50114444 statements and 7876888 subroutine calls in 120 source files and 923 string evals. |
04:20 |
diakopter |
only 923? |
04:22 |
diakopter |
how did 44947 calls to Cursor::_STARr take -424s |
04:22 |
diakopter |
(exclusive) |
04:24 |
TimToady |
bbl & |
04:26 |
|
KyleHa joined #perl6 |
04:28 |
KyleHa |
A grep for 'quietly' in the spec turns up exactly one line. It's a list with 'try' and 'void' and stuff. It was added at the same time as 'note'. Does it suppress $*ERR or something? |
04:34 |
|
alester joined #perl6 |
04:42 |
|
jrtayloriv joined #perl6 |
04:44 |
|
araujo joined #perl6 |
04:46 |
|
payload joined #perl6 |
04:47 |
|
am0c joined #perl6 |
04:48 |
|
cotto joined #perl6 |
05:00 |
JimmyZ |
rakudo: List.HOW.parents(List).perl.say; |
05:00 |
p6eval |
rakudo 1b8355: OUTPUT«[Any, Object]» |
05:17 |
|
perler joined #perl6 |
05:18 |
|
jrtayloriv joined #perl6 |
05:51 |
|
eternaleye joined #perl6 |
05:59 |
|
sbp joined #perl6 |
06:00 |
|
nsh joined #perl6 |
06:08 |
|
[particle] joined #perl6 |
06:09 |
|
infrared joined #perl6 |
06:10 |
|
xinming joined #perl6 |
06:10 |
|
Grrrr joined #perl6 |
06:12 |
|
simcop2387 joined #perl6 |
06:15 |
|
rapacity joined #perl6 |
06:15 |
|
synth joined #perl6 |
06:15 |
|
yahooooo joined #perl6 |
06:16 |
|
pugs_svn joined #perl6 |
06:18 |
|
athomason joined #perl6 |
06:18 |
|
colomon joined #perl6 |
06:21 |
|
takadonet joined #perl6 |
06:22 |
|
sjohnson joined #perl6 |
06:23 |
|
zerhash joined #perl6 |
06:24 |
|
arthur-_ joined #perl6 |
06:24 |
|
buubot joined #perl6 |
06:34 |
|
gbacon joined #perl6 |
06:38 |
pugs_svn |
r28713 | lwall++ | [viv] unbitrot -6 roundtripping; also unbitrot some -5 functionality |
06:57 |
|
tak11 joined #perl6 |
07:03 |
|
[particle]1 joined #perl6 |
07:14 |
|
tak11 joined #perl6 |
07:19 |
|
zloyrusskiy joined #perl6 |
07:21 |
|
tak` joined #perl6 |
07:32 |
|
am0c joined #perl6 |
07:44 |
|
[particle]1 left #perl6 |
07:47 |
|
rfordinal joined #perl6 |
07:51 |
|
Bzek joined #perl6 |
08:17 |
|
JimmyZ_ joined #perl6 |
08:37 |
|
eiro joined #perl6 |
08:37 |
|
BinGOs joined #perl6 |
08:50 |
|
rfordinal left #perl6 |
09:05 |
|
ShaneC joined #perl6 |
09:23 |
|
phenny joined #perl6 |
09:42 |
mikehh |
rakudo (1b83557) builds on parrot r41789 make test / make spectest_smolder (up to 28713 -> #28801) PASS - Ubuntu 9.04 amd64 |
09:46 |
|
zloyrusskiy joined #perl6 |
09:59 |
|
pmurias joined #perl6 |
10:05 |
|
meppl joined #perl6 |
10:06 |
mikehh |
holy ... rakudo spectest_smolder reports tests as 35,121 ok, 0 failed, 520 todo, 6,851 skipped and 0 unexpectedly succeeded |
10:07 |
|
abra joined #perl6 |
10:07 |
|
payload joined #perl6 |
10:07 |
|
synth joined #perl6 |
10:10 |
carlin |
almost 7000 skipped? |
10:11 |
|
pmurias_ joined #perl6 |
10:16 |
|
icwiener joined #perl6 |
10:16 |
pmurias |
perl6: my @array = [];@array[1] = 23;@array[500] = 4;say @array.elems; |
10:17 |
p6eval |
sprixel 28713: OUTPUT«Sprixel Error: /_infix__S_Equal_/ not yet implemented; apologies from the crew!» |
10:17 |
p6eval |
..elf 28713, pugs, rakudo 1b8355: OUTPUT«501» |
10:18 |
pmurias |
S32/Containers.pod mentions that in sparse types elems should return the actuall number of elems, why should the user know about an implementation default? |
10:19 |
moritz_ |
pmurias: I think "sparse types" are things like hashes |
10:20 |
pmurias |
Sparse array types |
10:22 |
moritz_ |
hm |
10:22 |
moritz_ |
my @a is SparseArray; ? |
10:23 |
pmurias |
not specced |
10:23 |
moritz_ |
aye |
10:23 |
pmurias |
what should it change? how elems works? how map works? |
10:23 |
moritz_ |
but it would only make sense in that context |
10:23 |
moritz_ |
that's an interesting question |
10:24 |
moritz_ |
I only know sparse vectors and matrices from linear algebra packages |
10:24 |
moritz_ |
if you map over one, it wouldn't make sense to iterate over all the missing items |
10:24 |
moritz_ |
so it would have to indicate which element is currently being processed |
10:25 |
moritz_ |
so maybe it'd just passin a pair of index => value to the map closure? |
10:27 |
pmurias |
you mean in SparseArray map would work differently (get an additional index)? |
10:27 |
moritz_ |
yes |
10:27 |
moritz_ |
but I think that's not something you worry about when implementing the classical Array type |
10:27 |
pmurias |
wouldn't it be best to just move SparseArray to CPAN and delete the mention? |
10:28 |
moritz_ |
+1 |
10:28 |
moritz_ |
so feel free ;-) |
10:29 |
moritz_ |
fglock++ btw |
10:32 |
pugs_svn |
r28714 | pmurias++ | [mildew-js] t/01-sanity/05-sub.t passes |
10:32 |
pugs_svn |
r28715 | pmurias++ | remove mention of sparse arrays from S32 |
10:33 |
pmurias |
bjj& |
10:36 |
moritz_ |
http://perlgeek.de/blog-en/misc/fun-and-no-fun-with-svg.html # for the SVG fans - not quite Perl 6 though :) |
10:44 |
spinclad |
rakudo: my @s is SparseArray; for @s.kv -> $k, $v { ... } |
10:44 |
p6eval |
rakudo 1b8355: OUTPUT«No applicable candidates found to dispatch to for 'trait_mod:is'in Main (src/gen_setting.pm:204)» |
10:45 |
|
envi^home joined #perl6 |
10:46 |
|
envi^home joined #perl6 |
10:47 |
spinclad |
i don't think map or for should work differently (for @s { ... } would iterate densely), as .kv should already be available to display sparseness. |
10:47 |
moritz_ |
that's a decision best left to the one who implements it as a module ;-) |
10:48 |
spinclad |
sure |
10:48 |
spinclad |
but i'd design it on those principles |
10:48 |
moritz_ |
well, .map could also do evil magic |
10:48 |
moritz_ |
like, assume the block is pure |
10:49 |
moritz_ |
and the result for a missing element |
10:53 |
spinclad |
... so @sparse.map would give another sparsearray. yeah, i could see that. |
10:54 |
spinclad |
(in which case i don't yet see why the block would have to know which element.) |
10:56 |
|
sundar joined #perl6 |
10:58 |
|
meteorjay joined #perl6 |
11:03 |
|
abra joined #perl6 |
11:04 |
|
FOAD_ joined #perl6 |
11:09 |
|
masak joined #perl6 |
11:10 |
masak |
best weekend salutations, #perl6! |
11:10 |
masak |
finally the work week is over, and the real coding begins! |
11:12 |
|
abra joined #perl6 |
11:26 |
|
ferodo joined #perl6 |
11:29 |
|
ferodo left #perl6 |
11:31 |
|
araujo joined #perl6 |
11:35 |
|
huf joined #perl6 |
11:38 |
|
abra joined #perl6 |
11:38 |
masak |
"Complexity is never eliminated, merely reduced or displaced" -- slide 124 of http://www.slideshare.net/cxpartners/secrets-of-simplicity -- sound familiar? :) |
11:39 |
|
abra joined #perl6 |
11:45 |
masak |
moritz_: (re SVG animations) I find http://www.codedread.com/yastgame.php to be quite an impressive proof-of-concept. seems much can be done today with SVG and judicious JavaSCript. |
11:51 |
|
NorwayGeek joined #perl6 |
11:53 |
jnthn |
masak: heh, sounds like the waterbed theory of... :-) |
11:53 |
masak |
indeed. |
11:53 |
|
NorwayGeek joined #perl6 |
11:56 |
|
NorwayGeek joined #perl6 |
11:56 |
|
NorwayGeek joined #perl6 |
11:56 |
* jnthn |
is probably caught up on sleep now |
11:58 |
|
ejs joined #perl6 |
11:58 |
|
NorwayGeek joined #perl6 |
11:59 |
masak |
jnthn: welcome back! it's so amazing to be part of Rakudo development right now -- even more so now that you're back and doing commits. :) |
12:00 |
sjohnson |
hey man |
12:00 |
|
NorwayGeek joined #perl6 |
12:00 |
jnthn |
masak: I enjoyed my trip, but it is nice to be back and hacking on stuff again. |
12:01 |
masak |
sjohnson: yo frood. |
12:02 |
moritz_ |
masak: \o/ cool site. But I was actually referring to SVG animations without JS |
12:02 |
moritz_ |
http://www.w3.org/TR/SVG/animate.html |
12:03 |
|
KyleHa joined #perl6 |
12:04 |
jnthn |
masak: It's exciting that at the same time both regex/parsing issues and signature binding issues are being worked on - two of the biggest tasks that need doing before Rakudo *. :-) |
12:05 |
* jnthn |
feels like hacking on more Rakudo stuff today |
12:05 |
masak |
moritz_: I know. but JS is a workaround. |
12:10 |
moritz_ |
just like in the days of Netscape and Mosaic ;-) |
12:11 |
masak |
except it's on different levels of sophistication. |
12:12 |
jnthn |
Yeah, now it's three or four browsers instead of 2 that you have to worry about. ;) |
12:12 |
jnthn |
Only two possibilities was so 1990s, man. |
12:13 |
moritz_ |
doing websites just for fun means that I can ignore those pesky not-quite-browsers which refuse to render according to standards |
12:17 |
cosimo |
moritz_: which ones? |
12:17 |
moritz_ |
IE\d for some values of \d |
12:19 |
jnthn |
I actually have some clients where they consider the cost of supporting IE6 higher than the revenue supporting it would bring in. |
12:19 |
* jnthn |
loves having a business case for not supporting IE6. |
12:19 |
jnthn |
On the other hand, there are others where systems are still used by many in the corporate world, many of whom are stuck with IE6, so it has to be supported. |
12:19 |
moritz_ |
some big sites (not sure which ones... digg? youtube?) are slowly dropping IE6 support |
12:20 |
jnthn |
*nod* |
12:20 |
jnthn |
I'm not surprised. They're businesses too. |
12:20 |
jnthn |
And need to make moneys. |
12:20 |
jnthn |
In general, it goes "don't do anything to purposefully break IE6, but don't worry about any bugs too much either" |
12:23 |
|
JimmyZ joined #perl6 |
12:27 |
moritz_ |
my homepage still has 0.5% access with IE 4 *gulp* |
12:28 |
moritz_ |
don't know how many of these referrers are forged, though |
12:30 |
|
NorwayGeek joined #perl6 |
12:31 |
jnthn |
4?! |
12:32 |
moritz_ |
4 |
12:32 |
pugs_svn |
r28716 | jimmy++ | [zh-cn/syn/S02-bits.pod] added a bit random translations. |
12:35 |
masak |
I'm seeing false positive "Redeclaration of variable $pub" errors in some moderately complex code I'm toying with. I haven't had time to isolate the cause, but I'm pretty sure it's a rakudobug. |
12:35 |
jnthn |
Oddness. |
12:35 |
jnthn |
But quite possibly. |
12:36 |
jnthn |
masak: Does std warn in the same way? |
12:36 |
jnthn |
If not, I expect we'll inherit a fix during switching more to that. |
12:36 |
moritz_ |
now you're starting with pubs too? |
12:36 |
masak |
moritz_: I did it to make you happy! |
12:36 |
masak |
didn't want to use $foo or something. |
12:36 |
moritz_ |
:-) |
12:36 |
jnthn |
$pub! \o/ |
12:37 |
JimmyZ |
spectest-progress.csv hadn't been updated for some days. |
12:37 |
masak |
jnthn: sure, but I have my Rakudo user hat on. I prefer to see this bug classified and reported in RT, regardless of its possible fate in the near future. |
12:37 |
masak |
JimmyZ: I think pmichaud has too much fun with his nqp-rx repo :) |
12:38 |
masak |
er, too much fun to care about administrivia, not too much fun in general. |
12:39 |
jnthn |
masak: Oh, I wasn't advocating not reporting it, just speculating on how it might get fixed. :-) |
12:39 |
JimmyZ |
masak: ;) |
12:40 |
masak |
jnthn: since it has no adverse effects, there's no rush. better to fix the postcircumfix:<{ }> parsin issue, for example. :) |
12:40 |
masak |
s/sin/sing/ |
12:41 |
jnthn |
We have a postcircumfix parsing issue? |
12:41 |
masak |
oh, yes. |
12:42 |
masak |
two, actually. but the second one is run-time, not parsing. |
12:43 |
masak |
the parsing issue causes Rakudo to be confused whenever it sees a line-ending closing block curly without a semicolon, as soon as someone declares a method postcircumfix:<{ }>. |
12:43 |
masak |
the run-time issue prevents direct use of .{} inside a postcircumfix:<{ }> method. ditto .[] and postcircumfix:<[ ]>. |
12:44 |
JimmyZ |
this issue? I think I had met it. |
12:45 |
masak |
the second one is workaroundable. I've been meaning to write that in the ticket. |
12:45 |
masak |
just do the inner hash or array access in another class. |
12:46 |
jnthn |
masak: oh, ouch |
12:46 |
jnthn |
I think I know how to fix the runtime one |
12:46 |
masak |
the first one is... highly... annoying. things that used to work suddenly stop working when a postcircumfix:<{ }> is introduced. |
12:46 |
jnthn |
The parsing one is, I'm afraid, rather more confusing... |
12:46 |
jnthn |
But then, I'm not the parsing whizz. |
12:46 |
* masak |
neither |
12:47 |
JimmyZ |
rakudo: class Alpha { has @!a = < beta gamma >; method postcircumfix:<[ ]>($key) { return @!a[$key]; }; }; my $a = Alpha.new; say $a[1]; |
12:47 |
p6eval |
rakudo 1b8355: OUTPUT«No such attribute '@!a'in Main (src/gen_setting.pm:204)» |
12:47 |
JimmyZ |
rakudo: class Alpha { has @!a = < beta gamma >; method postcircumfix:<{ }>($key) { return @!a[$key]; }; }; my $a = Alpha.new; say $a{1}; |
12:47 |
p6eval |
rakudo 1b8355: OUTPUT«gamma» |
12:48 |
masak |
aye, that's the one. |
12:48 |
masak |
accesses of the same type as the one the method is declaring don't work. |
12:48 |
JimmyZ |
the parser was confused. |
12:49 |
masak |
well, something was. :) |
12:50 |
masak |
the 'No such attribute @!a" comes from the fact that the method makes a _second_ call to itself, with the @!a array as invocant. Naturally, it has no @!a. |
12:51 |
jnthn |
oh, youch. |
12:51 |
jnthn |
And yes, I think I know how to fix that one. |
12:51 |
jnthn |
But I'm currently in the middle of giving signautre objects storage for default value closures and stubbing in storage of sub-signatures. |
12:52 |
masak |
jnthn++ |
12:52 |
masak |
no rush. |
12:52 |
JimmyZ |
jnthn++ again. |
12:52 |
jnthn |
After those are done, I think signature objects will have everything the binder could possibly want to know. |
12:53 |
masak |
JimmyZ: how's the translation work going? |
12:54 |
JimmyZ |
I had somebody else on the working team. Do I describe it rightly ? |
12:55 |
jnthn |
had or have? :-) |
12:55 |
moritz_ |
rakudo: say ~{ a=>3 b=>10 c=>4 d=>-7>}.sort: -*.value |
12:55 |
p6eval |
rakudo 1b8355: OUTPUT«Confused at line 2, near "b=>10 c=>4"in Main (src/gen_setting.pm:204)» |
12:55 |
masak |
JimmyZ: you reqcruited a co-worker? |
12:55 |
moritz_ |
rakudo: say ~{ a=>3 b=>10 c=>4 d=>-7>}.sort: *.value |
12:55 |
masak |
s/q// |
12:55 |
p6eval |
rakudo 1b8355: OUTPUT«Confused at line 2, near "b=>10 c=>4"in Main (src/gen_setting.pm:204)» |
12:55 |
JimmyZ |
masak: yep |
12:55 |
moritz_ |
rakudo: say ~{ a=>3 b=>10 c=>4 d=>-7}.sort: *.value |
12:55 |
p6eval |
rakudo 1b8355: OUTPUT«Confused at line 2, near "b=>10 c=>4"in Main (src/gen_setting.pm:204)» |
12:55 |
moritz_ |
rakudo: say ~{ a=>3, b=>10, c=>4, d=>-7}.sort: *.value |
12:55 |
masak |
JimmyZ: or should I say 翻译工作怎么样? :) |
12:55 |
jnthn |
std: say ~{ a=>3 b=>10 c=>4 d=>-7}.sort: *.value |
12:55 |
p6eval |
rakudo 1b8355: OUTPUT«d -7 a 3 c 4 b 10» |
12:55 |
p6eval |
std 28716: OUTPUT«[31m===[0mSORRY![31m===[0mTwo terms in a row at /tmp/2ehl3pCybl line 1:------> [32msay ~{ a=>3 [33m⏏[31mb=>10 c=>4 d=>-7}.sort: *.value[0m expecting any of: bracketed infix infix stopper standard stopper statement modifier loop terminatorFAILED 00:01 |
12:55 |
p6eval |
..110m» |
12:55 |
masak |
moritz_: commas. |
12:55 |
|
KyleHa joined #perl6 |
12:55 |
JimmyZ |
masak: good ;) |
12:55 |
moritz_ |
rakudo: say ~{ a=>3, b=>10, c=>4, d=>-7}.sort: -*.value |
12:55 |
p6eval |
rakudo 1b8355: OUTPUT«get_number() not implemented in class 'Sub'in Main (src/gen_setting.pm:204)» |
12:55 |
moritz_ |
masak: aye |
12:56 |
moritz_ |
rakudo: say *.value.perl |
12:56 |
JimmyZ |
masak: a better one. 翻译工作做的怎么样了。 |
12:56 |
p6eval |
rakudo 1b8355: OUTPUT«{ ... }» |
12:56 |
moritz_ |
rakudo: say *.value.WHAT |
12:56 |
p6eval |
rakudo 1b8355: OUTPUT«Block()» |
12:56 |
moritz_ |
that should be a WhateverCode |
12:56 |
moritz_ |
which explains why -*.value doesn't work |
12:56 |
masak |
JimmyZ: ah. thanks. |
12:56 |
masak |
JimmyZ: 了 because the work is ongoing? |
12:57 |
JimmyZ |
masak: yep |
12:57 |
masak |
\o/ |
13:00 |
jnthn |
(paradise lost)++ # nice sig hacking music |
13:01 |
masak |
today's spec test results are in: PASS. good work, people. |
13:02 |
|
abra_ joined #perl6 |
13:02 |
jnthn |
phew |
13:02 |
jnthn |
masak: Don't worry, I'll probably fail at linker usage and break the build on some platform today. :-/ |
13:02 |
jnthn |
Actually, maybe I'll do that in a branch. :-) |
13:03 |
moritz_ |
(easy branching)++ |
13:03 |
moritz_ |
git++ |
13:04 |
masak |
the reason I'm not complaining more about the lack of useful line numbers in Rakudo error messages, is that by now, I'm used to it. |
13:04 |
masak |
seems we had useful line numbers for a while, but not long enough for me to get used to that. :P |
13:05 |
jnthn |
So you get un-useful ones now? :-/ |
13:05 |
masak |
well, I get files that aren't mine and numbers that don't make sense. |
13:06 |
|
abra_ joined #perl6 |
13:06 |
jnthn |
ah, that |
13:06 |
moritz_ |
at gen_setting.pm:1192 or so |
13:06 |
|
JimmyZ joined #perl6 |
13:06 |
jnthn |
nod |
13:06 |
moritz_ |
and there's nothing interesting at that line either ;-) |
13:06 |
moritz_ |
just a closing curly bracket or so |
13:06 |
masak |
actually, I've been getting lower line numbers lately. 204 or so. |
13:07 |
* moritz_ |
wonders if they'll become negative eventually :-) |
13:08 |
colomon |
Did Rakudo stop returning line numbers for errors in ordinary code somewhere along the line as well? |
13:08 |
moritz_ |
rakudo: die 'foo' |
13:08 |
|
abra_ joined #perl6 |
13:08 |
p6eval |
rakudo 1b8355: OUTPUT«fooin Main (/tmp/TRISBPtRJn:0)» |
13:08 |
moritz_ |
wow, line 0 |
13:08 |
moritz_ |
*that* used to work. |
13:08 |
colomon |
Looking at my hacking last night, it seems like the error messages are much better, but lack line numbers. |
13:09 |
jnthn |
Ouch. |
13:09 |
* jnthn |
suspects some Parrot change. :-/ |
13:11 |
moritz_ |
typical for things we don't test. |
13:12 |
jnthn |
Yeahbut we do have some tests for annotations stuff in Parrot at least. |
13:12 |
moritz_ |
jnthn: how much work would it be to change format from (%s:%d) to (file %s, line %d)? |
13:12 |
jnthn |
Evidently, not good enough ones. |
13:12 |
|
NorwayGeek joined #perl6 |
13:12 |
jnthn |
moritz_: little, but motivation? |
13:12 |
moritz_ |
it currently looks like noise |
13:13 |
moritz_ |
and I notice that even in perl 5, many newbies ignore the line numbers, even if they contain valuable information |
13:13 |
KyleHa |
rakudo: say() |
13:13 |
p6eval |
rakudo 1b8355: OUTPUT«say requires an argument at line 2, near ""in Main (src/gen_setting.pm:2555)» |
13:13 |
moritz_ |
and not explicitly stating that it's a line number will only increase that |
13:13 |
JimmyZ |
rakudo: say 'foo' |
13:13 |
moritz_ |
KyleHa: parse errors still seem to have correct line numbers |
13:13 |
p6eval |
rakudo 1b8355: OUTPUT«foo» |
13:13 |
JimmyZ |
rakudo: exit 'foo' |
13:13 |
p6eval |
rakudo 1b8355: ( no output ) |
13:14 |
jnthn |
moritz_: Feel free to tweak it. |
13:14 |
jnthn |
moritz_: It's in perl6.pir, there's a sub I think for generating the output. |
13:14 |
jnthn |
Light PIR hacking required. :-) |
13:15 |
KyleHa |
Is 'say()' actually an error? |
13:15 |
|
rfordinal joined #perl6 |
13:15 |
|
NorwayGeek joined #perl6 |
13:15 |
jnthn |
KyleHa: aye |
13:15 |
KyleHa |
rakudo: say () |
13:15 |
jnthn |
std: say() |
13:16 |
p6eval |
rakudo 1b8355: OUTPUT«» |
13:16 |
p6eval |
std 28716: OUTPUT«ok 00:01 103m» |
13:16 |
jnthn |
but not one that std catches. |
13:16 |
KyleHa |
std: say () |
13:16 |
p6eval |
std 28716: OUTPUT«ok 00:01 106m» |
13:16 |
jnthn |
KyleHa: say() and say () are different things. |
13:16 |
KyleHa |
jnthn: Guess so. I'll adjust my tests... |
13:16 |
colomon |
rakudo: say; |
13:16 |
jnthn |
:-) |
13:16 |
p6eval |
rakudo 1b8355: OUTPUT«say requires an argument at line 2, near ";"in Main (src/gen_setting.pm:2538)» |
13:17 |
jnthn |
moritz_: Oh, I found the constraints introspection bug, btw |
13:17 |
moritz_ |
\o/ |
13:17 |
colomon |
Is there some good reason we shouldn't support say with no arguments? |
13:17 |
moritz_ |
colomon: perl 5 hackers who think it defaults to $_ |
13:17 |
jnthn |
moritz_: I'd typo'd the named parameter when calling the constructor. :-S |
13:17 |
colomon |
moritz_: ..... aye, that's a good reason. |
13:18 |
moritz_ |
colomon: I sometimes find that annoying, and want a 'no perl5_compat;' pragma ;-) |
13:18 |
JimmyZ |
I just want print "\n",can't I just use 'say'? |
13:18 |
moritz_ |
JimmyZ: that's what we've just discussed. |
13:19 |
colomon |
well sure, it seems like a horrible kludge to have this elegant say command that replaces print "\n" in every case except the simplest. |
13:19 |
JimmyZ |
rakudo: print "\n"; |
13:19 |
p6eval |
rakudo 1b8355: OUTPUT«» |
13:19 |
|
NorwayGeek joined #perl6 |
13:19 |
carlin |
rakudo: say ''; |
13:19 |
p6eval |
rakudo 1b8355: OUTPUT«» |
13:19 |
jnthn |
rakudo: sub nl() { print "\n" }; nl |
13:19 |
jnthn |
;-) |
13:19 |
p6eval |
rakudo 1b8355: OUTPUT«» |
13:20 |
pugs_svn |
r28717 | kyle++ | [t/spec] say() really is an error |
13:22 |
pugs_svn |
r28718 | kyle++ | [t/spec] much faster test of the same thing |
13:24 |
|
ruoso joined #perl6 |
13:28 |
jnthn |
masak: oh ouch, I found a snag in fixing that postcircumfix bug...it's not quite so easy after all :-/ |
13:28 |
moritz_ |
pmichaud had an analysis of that bug a few days ago |
13:29 |
masak |
jnthn: don't let yourself get distracted by my ranting. it's not urgent anyway. |
13:29 |
moritz_ |
http://irclog.perlgeek.de/perl6/2009-10-05#i_1570424 and onwards |
13:29 |
moritz_ |
masak: if you remeber the ticket number, maybe you could add that IRC log link to the ticket |
13:30 |
masak |
moritz_: good idea. I will. |
13:30 |
masak |
I'll also add my workaround. |
13:31 |
masak |
rakudo: my %h = a => "b"; my @a = {%h}; say @a.perl |
13:31 |
p6eval |
rakudo 1b8355: OUTPUT«[{ ... }]» |
13:31 |
masak |
by S04:1324, this should be a hash, not a closure. |
13:31 |
masak |
is this known/ticketed? |
13:31 |
jnthn |
masak: Yeah, I'm gonna leave it. |
13:32 |
jnthn |
masak: What I was going to do is a bit of a workaround anyway, though not a really awful one. |
13:32 |
moritz_ |
masak: it's tested at least |
13:32 |
jnthn |
But it tickles another issue, so needs a tad more thought. |
13:32 |
masak |
moritz_: oki. |
13:32 |
jnthn |
masak: That one should be a hash? ah. |
13:33 |
jnthn |
Just means tweaking the thingummy that decides. :) |
13:34 |
jnthn |
It'll be an issue somewhere in method circumfix($/, $key) { |
13:35 |
jnthn |
oh, I think I see what's wrong |
13:35 |
jnthn |
rakudo: my %h = a => "b"; my @a = {%h, a => 42}; say @a.perl |
13:35 |
p6eval |
rakudo 1b8355: OUTPUT«[{"a" => 42}]» |
13:35 |
jnthn |
*nod* |
13:35 |
jnthn |
And you're sure by the spec {%h} is meant to be a hash, yes? |
13:37 |
moritz_ |
yes |
13:37 |
moritz_ |
the spec has that as an example explicitly |
13:37 |
moritz_ |
$hash = { %stuff }; |
13:38 |
jnthn |
Try this patch |
13:38 |
jnthn |
http://gist.github.com/206842 |
13:40 |
jnthn |
Bwaha. So env.t has failed on my platform for a little while...probably some weird Parrot and Win32 issue. Anyway, I just glanced the error message. :-) |
13:41 |
jnthn |
t\spec\S02-magicals\env...................................ok 8/14Failed allocation of 1919968627 bytes |
13:41 |
jnthn |
Parrot VM: PANIC: Out of mem! |
13:44 |
|
synth joined #perl6 |
13:49 |
|
icwiener_ joined #perl6 |
13:49 |
moritz_ |
it tries to allocate 1.8G at once? :-) |
13:51 |
jnthn |
yeah! |
13:52 |
jnthn |
OK, when I came back from vacation, Rakudo + the version of Parrot we were using then took 1.06s to start and say hello world. Rakudo today with just about latest Parrot is down to 0.79 for me. |
13:52 |
moritz_ |
cool |
13:53 |
jnthn |
Which is still way too much, but a decided improvement. |
13:56 |
jnthn |
yay |
13:56 |
jnthn |
t\spec\S06-signature\introspection........................ok 5/39 skipped: various reasons, 2/39 unexpectedly succeeded |
13:56 |
jnthn |
TODO PASSED tests 33, 36 |
13:56 |
jnthn |
I'm guessing thow are the constraitns ones. |
14:02 |
|
icwiener-_- joined #perl6 |
14:14 |
carlin |
rakudo: my $i = 0; loop { $i++; if $i == 5 { break; } if $i < 10 { die ''; } }; say 'Foo'; |
14:14 |
p6eval |
rakudo 1b8355: OUTPUT«Diedin Main (/tmp/nqspaAZxaQ:2)» |
14:14 |
carlin |
rakudo: my $i = 0; loop { $i++; if $i == 5 { break; } if $i > 10 { die ''; } }; say 'Foo'; |
14:14 |
p6eval |
rakudo 1b8355: OUTPUT«Diedin Main (/tmp/EPevxgOixK:2)» |
14:15 |
carlin |
rakudo: say break.WHAT; |
14:15 |
p6eval |
rakudo 1b8355: OUTPUT«Null PMC access in find_method()in Main (src/gen_setting.pm:204)» |
14:16 |
|
Psyche^ joined #perl6 |
14:17 |
colomon |
carlin: isn't it "last" rather than break? |
14:18 |
carlin |
rakudo: my $i = 0; loop { $i++; if $i == 5 { last; } if $i > 10 { die ''; } }; say 'Foo'; |
14:18 |
p6eval |
rakudo 1b8355: OUTPUT«Foo» |
14:18 |
carlin |
Ah |
14:18 |
carlin |
I was trying to figure out what 'break' was. Seems to just print a newline. |
14:18 |
carlin |
rakudo: break |
14:18 |
p6eval |
rakudo 1b8355: OUTPUT«» |
14:20 |
|
tak11 joined #perl6 |
14:26 |
|
justatheory joined #perl6 |
14:29 |
dalek |
rakudo: bd7966f | jonathan++ | src/ (15 files): |
14:29 |
dalek |
rakudo: Start to store the default value as a closure inside the signature object. Also stub in space for sub-signatures - we don't support them just yet, but it'll be ready for when we do. Also fix a typo that caused constraints introspection to be broken. |
14:29 |
dalek |
rakudo: review: http://github.com/rakudo/rakudo/commit/bd7966f695b87d1ae9c192908045fbead1ee64f6 |
14:35 |
dalek |
rakudo: 4cdac8a | moritz++ | perl6.pir: |
14:35 |
dalek |
rakudo: make backtraces a bit less noisy |
14:35 |
dalek |
rakudo: Hopefully marking line numbers with the word "line" makes their purpose more |
14:35 |
dalek |
rakudo: obvious. |
14:35 |
dalek |
rakudo: review: http://github.com/rakudo/rakudo/commit/4cdac8a020c0e98b53ed5f4dcee019adb8a80c15 |
14:36 |
jnthn |
moritz++ |
14:37 |
jnthn |
Also for tests, which have made me fix up one other thingy. :-) |
14:37 |
pugs_svn |
r28719 | colomon++ | [spec/t] Start of test file to give a solid workout to the operator overloading facilities. |
14:41 |
jnthn |
moritz_: patch looks good to me |
14:43 |
pugs_svn |
r28720 | jnthn++ | [t/spec] A little unfudging of some now-passing tests. |
14:43 |
pugs_svn |
r28721 | jimmy++ | [zh-cn/syn/S12-objects.pod] added Chinese transcript for S12, edgar++ for translation. |
14:44 |
pugs_svn |
r28722 | jimmy++ | [zh-cn/syn] updated README for edgar++ |
14:46 |
dalek |
rakudo: 925fd06 | jonathan++ | src/ (2 files): |
14:46 |
dalek |
rakudo: Tweak to .constraints to pass another spectest. |
14:46 |
dalek |
rakudo: review: http://github.com/rakudo/rakudo/commit/925fd06b2cf044a604b7aafbc99469eb4d28f4ef |
14:47 |
|
synth joined #perl6 |
14:48 |
|
pmurias joined #perl6 |
14:53 |
|
TSa joined #perl6 |
14:53 |
pmurias |
ruoso: do you have any js experience? |
14:56 |
colomon |
jnthn: there is an excellent error message when there are multiple matching signatures, listing all the matches. |
14:56 |
colomon |
jnthn: is there any possibility of getting the same sort of message when you incorrectly call new? |
14:57 |
colomon |
right now you get something like "too many arguments passed (5) - 1 param expected" even though 4 arguments would have been fine... |
14:58 |
|
am0c joined #perl6 |
15:01 |
jnthn |
colomon: Yes. |
15:02 |
jnthn |
colomon: Once I get the binder re-working done, we'll have a *lot* more control over the error messages. |
15:07 |
pmurias |
perl6: say [].shift |
15:07 |
p6eval |
rakudo 925fd0: OUTPUT«Undefined value shifted from empty array» |
15:07 |
p6eval |
..sprixel 28722: OUTPUT«Sprixel Error: /_dotty__S_Dot_/ not yet implemented; apologies from the crew!» |
15:07 |
p6eval |
..elf 28722, pugs: OUTPUT«» |
15:10 |
pmurias |
we should spec what shifting an empty array does |
15:11 |
|
TopoMorto joined #perl6 |
15:11 |
jnthn |
pmurias: I suspect failure object (as Rakudo gives) |
15:12 |
pmurias |
rakudo: if ([].shift) {say |
15:12 |
p6eval |
rakudo 925fd0: OUTPUT«say requires an argument at line 2, near ""in Main (file src/gen_setting.pm, line 2540)» |
15:12 |
pmurias |
rakudo: if ([].shift) {say "a"} else {"b"} |
15:12 |
p6eval |
rakudo 925fd0: ( no output ) |
15:12 |
pmurias |
rakudo: if ([].shift) {say "a"} else {say "b"} |
15:12 |
p6eval |
rakudo 925fd0: OUTPUT«b» |
15:12 |
pmurias |
rakudo: [].shift |
15:12 |
p6eval |
rakudo 925fd0: ( no output ) |
15:13 |
pmurias |
jnthn: seems resonable, the spec should mention it though |
15:14 |
jnthn |
pmurias: Aye. |
15:14 |
jnthn |
Patches welcome. ;-) |
15:15 |
pmurias |
really? i'm thinking just commiting is the resonable thing here ;) |
15:16 |
jnthn |
:-P |
15:19 |
|
zloyrusskiy joined #perl6 |
15:23 |
pugs_svn |
r28723 | pmurias++ | [S32] Array.shift and Array.pop return a failure if the @array is empty |
15:29 |
jnthn |
I've just created a branch resig, which is holding the signature binding switch. At the moment all I've done is tweak the build process a bit so we build bind.dll (or whatever your platform's extension is). |
15:29 |
jnthn |
If anyone wants to test commit 42cbb57d621489be216d437d499aac8a996b33d5 and see if it builds on other platforms, and fix it if not, that's be great. |
15:30 |
jnthn |
And for the next days this is where I'll be committing stuff / progress. |
15:30 |
masak |
hm, src/gc/api.c:248: failed assertion 'PObj_is_PMC_TEST(obj)' |
15:30 |
masak |
that's bad, no? |
15:30 |
jnthn |
Yes. Where'd you hit that? |
15:31 |
masak |
in my awesome program. |
15:31 |
masak |
it sort of froze and then did that. |
15:31 |
masak |
I haven't tried to reproduce it yet. |
15:31 |
jnthn |
I did manage to get that one under the debugger recently but it was a tad heisenbug-ish and didn't happen not under the debugger. :-/ |
15:31 |
jnthn |
I fear there's a lurking GC-ish bug. |
15:32 |
masak |
oh, doesn't matter. :) it occurs after the test I'm working on anyway. :P |
15:32 |
jnthn |
Oh wow |
15:32 |
moritz_ |
jnthn: I spectestest your {%h}-is-a-hash patch, and it's all green (+1 passing TODO) - would you commit it? |
15:33 |
jnthn |
moritz_: Oh, I diff'd and then threw it away ;-) |
15:33 |
jnthn |
'cus I had a bunch of other bits going on |
15:33 |
jnthn |
Feel free to apply it yourself. |
15:33 |
moritz_ |
ok |
15:33 |
jnthn |
masak: Heh. Crash is in Parrot_gc_mark_PMC_alive_fun it seems. |
15:33 |
jnthn |
I don't consdier this very fun. ;-) |
15:34 |
masak |
heh. |
15:34 |
jnthn |
Hmm |
15:34 |
jnthn |
Parrot_gc_mark_PMC_alive(INTERP, ctx->current_sub); |
15:34 |
masak |
aye, that is number 2 in my stacktrace. |
15:34 |
jnthn |
youch |
15:35 |
jnthn |
That's quite a deep stacktrace too. |
15:35 |
masak |
only 31 steps here. |
15:35 |
masak |
but it went away now. |
15:35 |
masak |
probably never existed. |
15:35 |
masak |
moving right along. |
15:36 |
jnthn |
Sadly, it very much exists. :-( |
15:36 |
moritz_ |
cc: src/binder/bind.ar: No such file or directory |
15:36 |
* carlin |
got that too |
15:37 |
pugs_svn |
r28724 | kyle++ | [t/spec] [].shift and [].pop return Failure, per spec r28723 |
15:37 |
dalek |
rakudo: 3208e7b | jonathan++ | src/parser/actions.pm: |
15:37 |
dalek |
rakudo: {%h} constructs a Hash, not a closure |
15:37 |
dalek |
rakudo: review: http://github.com/rakudo/rakudo/commit/3208e7b7fe7f8034f662b0025b942d2214b8203b |
15:38 |
* KyleHa |
loves spectest_smolder |
15:39 |
KyleHa |
jdv79++ # smolder spectest reporting |
15:40 |
jnthn |
moritz_: Hmm. I wonder if I shoulda used $(A) instead of $(AR) ? |
15:40 |
moritz_ |
no idea... have to run now |
15:40 |
jnthn |
OK |
15:40 |
moritz_ |
will look into it later tonight, hopefully |
15:40 |
jnthn |
moritz_: OK, thanks. |
15:40 |
jnthn |
It's probably going to be some days until this branch gets to the point of being ready to merge. |
15:40 |
jnthn |
masak: Seems a context holds a junk Sub pointer. |
15:41 |
masak |
jnthn: ok. |
15:42 |
masak |
oh ouch, now I got it again, much earlier in the test suite. :( |
15:43 |
masak |
guess I'll just insert comments and meaningless print statements until it starts working again. |
15:43 |
masak |
nobody promised that Perl 6 coding would be glamorous when I signed up... :) |
15:47 |
jnthn |
masak: Under the debugger, I see it right away at startup. |
15:48 |
masak |
meanwhile, over here, adding new stuff sporadically helped. |
15:52 |
jnthn |
masak: Ah, some exploration later, I fear we may just have an "access to uninit'd memory" |
15:52 |
masak |
that sounds reassuringly non-magical. |
15:53 |
jnthn |
Trying a |
15:53 |
jnthn |
ctx->current_sub = PMCNULL; |
15:53 |
masak |
I was afraid it might be something on the order of "we've freed this thing, but we can't know whether we have or not due to the Halting Problem". |
15:53 |
jnthn |
Since it seems we were init'ing most things, but not that |
15:53 |
jnthn |
Granted it will *usually* get filled with something meaningful. |
15:54 |
diakopter |
http://www.perlcabal.org/syn/S16.html reports an error at the bottom; also Basics.pod refers to S16 by an older name |
15:55 |
diakopter |
also syn/index.html refers to S16 by even another name |
15:56 |
jnthn |
oh hey, the segfault went away |
15:56 |
* jnthn |
runs Parrot tests, then commits |
15:58 |
colomon |
jnthn: (re better error reporting) yay! |
16:02 |
diakopter |
anyone: which S16 is correct |
16:02 |
diakopter |
title |
16:04 |
TimToady |
agh, p{} must die, I think |
16:04 |
pmurias |
diakopter: the most correct S16 lives in the pugs repo |
16:04 |
jnthn |
masak: Fix committed to Parrot. |
16:04 |
jnthn |
masak: Bump to PARROT_REVISION coming. |
16:04 |
masak |
jnthn++ |
16:04 |
jnthn |
That was a happily easy gc segv to fix. |
16:05 |
pmurias |
TimToady: what's wrong with it? |
16:05 |
TimToady |
uses up a common letter, unlike q |
16:06 |
TimToady |
qp is okay |
16:06 |
Tene |
What is p{} ? |
16:06 |
pmurias |
path quoting |
16:07 |
Tene |
Ah. |
16:07 |
diakopter |
pmurias: yes, all three of those titles I mentioned live in the pugs repo |
16:07 |
* colomon |
now pondering a song with the lyric "p curly brace must die"... |
16:08 |
diakopter |
in syn/index.html it's called "IO / User / Group", S16 calls itself "IO / Name Services", and S32 Basic.pod refers to it as "IPC / IO / Signals" |
16:08 |
pmurias |
diakopter: the TITLE section in S16 seems to sugges IO / Name Services |
16:11 |
dalek |
rakudo: 27d9f14 | jonathan++ | build/PARROT_REVISION: |
16:11 |
dalek |
rakudo: Bump PARROT_REVISION to get a fix I just put in for a segfault. |
16:11 |
dalek |
rakudo: review: http://github.com/rakudo/rakudo/commit/27d9f14b0e0ffb9aa1898ea32dc27961e955c953 |
16:11 |
jnthn |
masak: ^^ |
16:11 |
masak |
thank you. |
16:12 |
jnthn |
Welcome. The fact that I was about to write a bunch of C-code and Parrot segfaulted during Rakudo startup under my debugger was kinda an extra incentive to fix that one. :-) |
16:13 |
|
rhr_ joined #perl6 |
16:14 |
masak |
(aligning goals)++ |
16:18 |
pugs_svn |
r28725 | colomon++ | [t/spec] Enough tests to roughly establish that is_approx works for Vectors. |
16:21 |
colomon |
hokey smokes, that was a lot of patching to Rakudo, considering I pulled yesterday... |
16:24 |
jnthn |
colomon: Myabe you pulled yesterday before I merged a branch. |
16:24 |
colomon |
I thought I pulled after, but I could have been wrong. |
16:25 |
jnthn |
Well, I've done some other little bits since the branch too. |
16:25 |
jnthn |
However, right now it's branch time again. :-) |
16:25 |
jnthn |
ooh...actually, right now is go to the shops to buy something for dinner before they close time... |
16:30 |
|
SmokeMachine joined #perl6 |
16:31 |
masak |
good idea. |
16:32 |
|
msmatsko joined #perl6 |
16:35 |
|
lucs joined #perl6 |
16:37 |
lucs |
rakudo: say "What is the evalbot's nick?" |
16:38 |
p6eval |
rakudo 27d9f1: OUTPUT«What is the evalbot's nick?» |
16:38 |
lucs |
Aha. |
16:38 |
lucs |
(Maybe the /topic should mention that.) |
16:39 |
masak |
sure, but why? |
16:39 |
lucs |
Because I don't use it often, I never remember it, and it pollutes the channel to have to do what I just did :) |
16:40 |
lucs |
(I prefer to /msg it) |
16:41 |
masak |
oh. now I understand your reason. |
16:41 |
dalek |
nqp-rx: a0788f8 | pmichaud++ | src/Regex/Cursor-builtins.pir: |
16:41 |
dalek |
nqp-rx: Add some builtin subrules to Cursor. |
16:41 |
dalek |
nqp-rx: review: http://github.com/perl6/nqp-rx/commit/a0788f8a7eaac5a14f3c63a231eb0a17da93b17d |
16:41 |
dalek |
nqp-rx: 86f5d68 | pmichaud++ | (8 files): |
16:41 |
dalek |
nqp-rx: Add lexical $�. |
16:41 |
dalek |
nqp-rx: Add subrule matching -- non-capturing and non-backtracking as yet. |
16:41 |
dalek |
nqp-rx: review: http://github.com/perl6/nqp-rx/commit/86f5d68869a4f607c8dcf7d4fb4191ee46d5ea6b |
16:43 |
masak |
whoz op? could someone add p6eval's nick to the topic? |
16:47 |
|
payload joined #perl6 |
16:51 |
|
nihiliad joined #perl6 |
16:51 |
|
pmurias joined #perl6 |
16:52 |
lucs |
So, suggested /topic: »ö« | http://perl6.org/ | nopaste: http://paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo: / pugs: / std: , or /msg p6eval perl6: ... | irclog: http://irc.pugscode.org/ | UTF-8 is our friend! |
17:01 |
|
gavv joined #perl6 |
17:03 |
* jnthn |
back from shops. |
17:04 |
|
Topic for #perl6is now »ö« | http://perl6.org/ | nopaste: http://paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo: / pugs: / std: , or /msg p6eval perl6: ... | irclog: http://irc.pugscode.org/ | UTF-8 is our friend! |
17:04 |
jnthn |
yaz op! |
17:04 |
lucs |
Thanks :) |
17:05 |
masak |
yayjnthnzop! |
17:06 |
masak |
food & |
17:10 |
pugs_svn |
r28726 | pmurias++ | [mildew-js] say FETCHes it's arguments, basic array support |
17:15 |
jnthn |
.oO( how many people are writing a Perl 6 => js compiler now? :-) ) |
17:16 |
pugs_svn |
r28727 | lwall++ | [S04,S06] |
17:16 |
pugs_svn |
r28727 | Placeholders may never be used in a hash composer. |
17:16 |
pugs_svn |
r28727 | Explain how this means map always works right even if it's map { $_ => 1 } |
17:16 |
pugs_svn |
r28727 | Placeholders @_ and %_ may be used standalone, not just with other placeholders. |
17:16 |
pugs_svn |
r28727 | Explain how this makes P5 subs fall out naturally, more or less |
17:16 |
pugs_svn |
r28727 | Clarify that $_ is a placeholder only in the absence of other placeholders. |
17:16 |
pugs_svn |
r28727 | Mention how if statements don't pass anything to implicit $_ blocks even if |
17:16 |
pugs_svn |
r28727 | they have an optional $_ in the signature. |
17:18 |
pmurias |
jnthn: fglock, diakopter and mberends, and me |
17:20 |
TimToady |
well, apparently I am too, insofar as STD is being used :) |
17:20 |
TimToady |
and viv |
17:21 |
pmurias |
you are writting 2 js compilers ;) |
17:21 |
pmurias |
s/js/to js/ |
17:21 |
* TimToady |
stands on a stump and pounds his chest |
17:21 |
pmurias |
as both mildew and sprixel use STD |
17:21 |
* TimToady |
wonders why his ribs hurt now |
17:23 |
jnthn |
hehe |
17:25 |
jnthn |
Heh. The day I patch the hash composer, the spec relating to it gets patched too. :-) |
17:25 |
Tene |
whirlpool, jnthn |
17:25 |
TimToady |
yes, well, I patched the spec because I was backlogging and didn't remember about { %stuff } |
17:25 |
jnthn |
Indeed. |
17:26 |
TimToady |
and noticed I hadn't hacked in the new no-placeholders policy that fixes map |
17:26 |
|
KyleHa joined #perl6 |
17:26 |
TimToady |
most of the changes are simplifications, and the only casualty I can see is the proviso about embedded @_ not seeing the outer @_ |
17:27 |
TimToady |
which seems like a small loss |
17:27 |
TimToady |
since we'll be encouraging people to translate to real signatures anyway |
17:27 |
jnthn |
Aye, it looks sane at first glance. |
17:28 |
|
gavv left #perl6 |
17:28 |
TimToady |
and most existing uses of @_ in P5 are not embedded in an inner block anyway |
17:28 |
KyleHa |
Most. |
17:28 |
KyleHa |
I bet there's one or two programmers out there who do it All The Time. |
17:29 |
Tene |
OMG DARKPAN |
17:29 |
TimToady |
and we're immune to the backwards compatibility argument that plagues p5l :) |
17:29 |
KyleHa |
I'm more than happy to irritate those one or two programmers. 8-) |
17:29 |
TimToady |
In fact, we *have* to break a few eggs to prove we're making an omelet. |
17:30 |
|
diakopter joined #perl6 |
17:34 |
pugs_svn |
r28728 | pmurias++ | [mildew-js] add true method to integers |
17:35 |
pmurias |
KyleHa: they'll just switch to using $^a,$^b...$^z ;) |
17:38 |
|
melba joined #perl6 |
17:43 |
TimToady |
Fortunately, being allergic to eggs doesn't make you allergic to egg metaphors. Or maybe unfortunately... |
17:44 |
pugs_svn |
r28729 | kyle++ | [t/spec] todo test passes now |
17:45 |
jnthn |
.oO( what an eggcellent thought ) |
17:45 |
TimToady |
Or maybe not maybe. |
17:46 |
|
felipe joined #perl6 |
17:47 |
pugs_svn |
r28730 | diakopter++ | [evalbot] remove sprixel from evalbot during its soul replacement therapy. |
17:48 |
|
p6eval joined #perl6 |
17:48 |
diakopter |
to clarify: during sprixel's soul replacement, not evalbot's soul replacement. |
17:50 |
* jnthn |
hopes the soul is being replaced with heavy metal, not hip-hop |
17:53 |
|
melba joined #perl6 |
17:54 |
|
lumi_ joined #perl6 |
17:55 |
diakopter |
gregorian chants ^ symphonic sci-fi soundtracks |
17:56 |
pmurias |
diakopter: what does the soul replacement therapy consit of |
17:56 |
jnthn |
diakopter: ooh, not bad |
18:01 |
diakopter |
pmurias: making the sprixel.setting generated by ... stuff |
18:02 |
* pmurias |
doesn't undestand |
18:03 |
|
mberends joined #perl6 |
18:03 |
|
Psyche^ joined #perl6 |
18:03 |
* mberends |
backlogs desperately hurriedly... what's this about sprixel's soul? |
18:10 |
TimToady |
well, everyone knows that a backend has no soul, unless maybe you're a dinosaur with a hindbrain |
18:11 |
mberends |
so maybe sprixel needed sole replacement instead? |
18:14 |
diakopter |
just.. now that the interpreter engine proved itself enough [in my mind at least] and I'm [mentally] comfortable with the way STD/viv is presenting the AST, I'm reworking how the interpreter engine does dispatch entirely... so basically stripping interp.js and builtins.js back down to essentially nothing. Then, we'll be building up the setting in Perl 6 (with jseval (aka Q:PIR {})) in place of most function bodies, until a proper dependency tree is deri |
18:14 |
diakopter |
Then, we'll be building up the setting in Perl 6 (with jseval (aka Q:PIR {})) in place of most function bodies, until a proper dependency tree is derived for the setting files, and then the routine bodies will be able to be replaced with Perl 6 bodies. |
18:14 |
diakopter |
sigh |
18:15 |
diakopter |
so at first, the only classes that need written in solely JS will be Routine, Signature, Parameter, and their dependencies. |
18:18 |
|
slavik joined #perl6 |
18:20 |
mberends |
diakopter: ok, that's an extension of what you wrote earlier. does that mean that most of the code in builtins.js is obsolete? |
18:21 |
diakopter |
yes, as well as in interp.js :) |
18:22 |
diakopter |
b/c almost all of those function bodies were keyed by names that are setting-dependent |
18:23 |
diakopter |
that whole dispatch scheme should be viewed only to support a proof-of-concept (where the concept is the interpreter engine) |
18:23 |
diakopter |
it'll be much more efficient to write all of that in Perl 6 in the setting... even as jseval '' embedded heredocs or whatever |
18:23 |
diakopter |
no 'hardcoding' |
18:24 |
mberends |
will testing sprixel have to be put on hold until this rewrite reaches a certain minimum functionality again? |
18:25 |
diakopter |
yes, tho the interfaces shouldn't change... I mean, Test.pm.js will change a lot I'm sure, but your harness/system shouldn't break |
18:26 |
mberends |
the harness now passes 427 tests here on the old interpreter :) |
18:26 |
diakopter |
oh :D well cool |
18:26 |
|
snearch joined #perl6 |
18:27 |
|
abra joined #perl6 |
18:28 |
TimToady |
diakopter: I'm much happier with the type structure of viv now with respect to --p5, thanks for the attitude adjustments :) |
18:29 |
|
lumi joined #perl6 |
18:34 |
|
tak11 joined #perl6 |
18:35 |
diakopter |
oh, another big change: now that STD/viv generates/attaches data structures representing the lexical pads (and implied signatures!) to each routine/block, block invocation will use the JS-converted editions of those data structures directly |
18:36 |
diakopter |
essentially I want to get the interpreter engine to the point where it merely handles control flow; all other "node type" dispatch will hopefully be done by in-Perl-6 dispatching |
18:40 |
diakopter |
hopefully the circularity saw can exist in several places at once |
18:41 |
diakopter |
while cutting other places |
18:41 |
mberends |
is any of it running yet? |
18:42 |
diakopter |
it tries, but I keep catching it and pressing delete |
18:42 |
diakopter |
:) |
18:44 |
mberends |
just don't let it crawl ;) |
18:45 |
|
ejs joined #perl6 |
18:46 |
diakopter |
well, while I'm at it, I might as well create a Continutation_State JS object that's a lot smarter about cloning itself |
18:47 |
diakopter |
instead of cloning the ast nodes themselves |
18:47 |
diakopter |
Continuation_State, I meant |
18:52 |
|
pmurias joined #perl6 |
18:53 |
diakopter |
that way, each ast node actually can keep some global state (incl whether (and how "much") that node has been 'compiled' or preprocessed) |
18:54 |
mberends |
that's interesting, a kind of JIT processing apparently |
18:54 |
diakopter |
so, each node type can do some initialization work that doesn't need to be repeated for every execution of its 'instance' nodes |
18:55 |
diakopter |
sorta; maybe better described as smart caching |
18:55 |
diakopter |
er, flexible caching |
18:56 |
mberends |
yep, some cacheing of metadata generated at runtime as opposed to parse time |
19:01 |
diakopter |
each cstate (continuation state) object represents an 'activation' of an ast node, and each ast node represents an occurrence (instance) of each node_type (the VAST type as it's received from viv) |
19:05 |
pugs_svn |
r28731 | lwall++ | [Cursor] sometimes accidentally propagated _ast out of <?before> and <?after> |
19:05 |
pugs_svn |
r28731 | [viv] get all the way back to being able to translate EXPR to Perl 5 correctly, yay! |
19:06 |
mberends |
lwall++ indeed |
19:11 |
mberends |
diakopter: then shouldn't node_type construct cstate instead of cloning itself? (different data structures) |
19:12 |
diakopter |
exactly |
19:13 |
pugs_svn |
r28732 | mberends++ | [sprixel] harness-fudging.pl can skip complete code blocks, spectest.data skip and todo directives are formatted like function calls |
19:16 |
pugs_svn |
r28733 | colomon++ | [t/spec] All the basic functions tested. |
19:16 |
colomon |
Ack, that looks like it needs more info to mean anything in this context. All the basic functions tested in my new operator overloading test. Time to get hyper... |
19:17 |
* jnthn |
hands colomon the energy drinks |
19:21 |
|
lumi joined #perl6 |
19:23 |
|
NorwayGeek joined #perl6 |
19:23 |
|
abra joined #perl6 |
19:26 |
colomon |
rakudo: say [&&] 1, 1, 1, 1, Bool::True; |
19:26 |
p6eval |
rakudo 27d9f1: OUTPUT«say requires an argument at line 2, near " [&&] 1, 1"in Main (file src/gen_setting.pm, line 2545)» |
19:26 |
colomon |
rakudo: say 1 && 1; |
19:26 |
p6eval |
rakudo 27d9f1: OUTPUT«1» |
19:27 |
colomon |
rakudo: say 1 && Bool::True; |
19:27 |
p6eval |
rakudo 27d9f1: OUTPUT«1» |
19:27 |
colomon |
rakudo: say [&&] (1, 1, 1, 1, Bool::True); |
19:27 |
p6eval |
rakudo 27d9f1: OUTPUT«say requires an argument at line 2, near " [&&] (1, "in Main (file src/gen_setting.pm, line 2545)» |
19:27 |
colomon |
rakudo: say all(1, 1, 1, 1, Bool::True); |
19:27 |
p6eval |
rakudo 27d9f1: OUTPUT«all(1, Bool::True)» |
19:29 |
quietfanatic |
Oh, by the way... |
19:29 |
quietfanatic |
rakudo: say() |
19:29 |
p6eval |
rakudo 27d9f1: OUTPUT«say requires an argument at line 2, near ""in Main (file src/gen_setting.pm, line 2562)» |
19:29 |
quietfanatic |
rakudo: &say() |
19:29 |
p6eval |
rakudo 27d9f1: OUTPUT«» |
19:29 |
quietfanatic |
^ that. |
19:29 |
colomon |
:O |
19:29 |
jnthn |
lol |
19:29 |
jnthn |
std: &say() |
19:29 |
jnthn |
std: &say.() |
19:29 |
p6eval |
std 28733: OUTPUT«ok 00:02 134m» |
19:29 |
p6eval |
std 28733: OUTPUT«ok 00:02 132m» |
19:29 |
jnthn |
std: say() |
19:29 |
p6eval |
std 28733: OUTPUT«ok 00:03 103m» |
19:29 |
jnthn |
oh, it doesn't check at all. fine. |
19:30 |
|
__ash__ joined #perl6 |
19:30 |
colomon |
BTW, just wrote this to implement the heart of is_approx_array: all((@got >>-<< @expected)>>.abs.map({$_ <= 0.00001})) |
19:31 |
colomon |
Can't decide if it is brilliant or unutterably scary. |
19:31 |
mberends |
it's neat :) |
19:31 |
quietfanatic |
Makes sense to me. |
19:31 |
jnthn |
Scarilly brilliant? |
19:33 |
colomon |
I haven't really internalized the >>.abs syntax yet. |
19:33 |
colomon |
Nor "all", for that matter. |
19:34 |
jnthn |
colomon: erm, yeah, ...you're constructing a junction, so >>. is just . |
19:34 |
jnthn |
oh wait |
19:34 |
jnthn |
the all is around all of it. |
19:34 |
colomon |
yes. |
19:34 |
jnthn |
Yes, it's right. :-) |
19:34 |
* jnthn |
is filling out the new binder :-) |
19:35 |
colomon |
Hmm... turns out my local "is_approx_array" doesn't work because Test.pm doesn't export proclaim (or something like that. |
19:35 |
colomon |
("local" here means in t/spec/S06-operator-overloading/workout.t) |
19:36 |
moritz_ |
ok() is pretty close to proclaim |
19:36 |
colomon |
Any wisdom on the best way to handle that? |
19:36 |
colomon |
but it will screw up the test skipping code, won't it? |
19:36 |
moritz_ |
you can add #?DOES 1 before your testing function |
19:36 |
moritz_ |
then fudge learns that it's a test function like is() |
19:37 |
colomon |
trying that now.... |
19:37 |
colomon |
yay! |
19:41 |
colomon |
looks like it skips, too. |
19:41 |
colomon |
moritz_++ |
19:44 |
|
abra joined #perl6 |
19:45 |
|
eternaleye_ joined #perl6 |
19:45 |
|
Chillance joined #perl6 |
19:48 |
|
arnsholt_ joined #perl6 |
19:49 |
|
TimToady1 joined #perl6 |
19:49 |
|
jrockway_ joined #perl6 |
19:49 |
|
shachaf_ joined #perl6 |
19:49 |
|
sunnavy_ joined #perl6 |
19:50 |
colomon |
yay! bug! |
19:50 |
colomon |
I think it's reported, but I don't think it has a test suite entry before this. |
19:56 |
pugs_svn |
r28734 | colomon++ | [t/spec] First wave of hyper tests. |
20:03 |
|
IRSeekBot joined #perl6 |
20:04 |
|
wormphlegm joined #perl6 |
20:14 |
colomon |
So, one of the weird thing about the hyper operator bugs is how some things fail when you use >> and some when you use ». |
20:15 |
jnthn |
Wow. |
20:15 |
jnthn |
And...ouch... |
20:17 |
mberends |
that kind of weirdness is similar to http://www.grymoire.com/Unix/CshTop10.txt |
20:17 |
jnthn |
mberends: Yeah, but here it's a bug. ;-) |
20:18 |
mberends |
jnthn: Yeah, but that means it gets fixed... eventually ;-) |
20:19 |
jnthn |
Eventually. ;-) |
20:19 |
pugs_svn |
r28735 | colomon++ | [t/spec] Test hyper on user-defined (rather than user-overloaded) operators. |
20:19 |
* jnthn |
just wrote the first, completely untested, cut of some code that should solve one of the oldest RT tickets we have. :-) |
20:20 |
mberends |
yay! |
20:20 |
colomon |
If you do svn up on the t/spec/S06-operator-overloading directory and look at the workout.t file, the skipped tests trigger the bugs I'm talking about. |
20:21 |
colomon |
Honestly, I'm surprised at how well the hyper operators are doing with my tests. I was under the impression they were even more fragile. |
20:22 |
jnthn |
colomon: I really like that we're doing more exhaustive testing of the various permutations. |
20:22 |
jnthn |
For operating overloading and hypers and the various other meta-operators. |
20:24 |
__ash__ |
does perl6 support/willsupport function composition? like if i did something like: &z= &f . &g; maybe? |
20:24 |
__ash__ |
so z = f(g(x)) |
20:25 |
colomon |
__ash__: you can always do it with closures. |
20:25 |
colomon |
something like |
20:26 |
colomon |
std: sub Comp(Code $a, Code $b) { return { $a($b($_)); }; }; |
20:26 |
p6eval |
std 28734: OUTPUT«ok 00:02 115m» |
20:26 |
colomon |
I've not tested that, but I think something along those lines ought to work. |
20:26 |
jnthn |
rakudo: sub infix:<comp>(&x, &y) { return -> $a { x(y($a)) } }; sub f($x) { 2 * $x }; sub g($x) { $x + 2 }; my $z = &f comp &g; $x(20) |
20:26 |
p6eval |
rakudo 27d9f1: OUTPUT«Symbol '$x' not predeclared in <anonymous> (/tmp/5KjFpmwii1:2)in Main (file <unknown>, line <unknown>)» |
20:27 |
jnthn |
rakudo: sub infix:<comp>(&x, &y) { return -> $a { x(y($a)) } }; sub f($x) { 2 * $x }; sub g($x) { $x + 2 }; my $z = &f comp &g; $z(20) |
20:27 |
p6eval |
rakudo 27d9f1: ( no output ) |
20:27 |
jnthn |
rakudo: sub infix:<comp>(&x, &y) { return -> $a { x(y($a)) } }; sub f($x) { 2 * $x }; sub g($x) { $x + 2 }; my $z = &f comp &g; say $z(20) |
20:27 |
p6eval |
rakudo 27d9f1: OUTPUT«44» |
20:27 |
colomon |
rakudo++ |
20:27 |
jnthn |
rakudo: sub infix:<comp>(&x, &y) { return -> $a { x(y($a)) } }; sub f($x) { 2 * $x }; sub g($x) { $x + 1 }; my $z = &f comp &g; say $z(20) |
20:27 |
p6eval |
rakudo 27d9f1: OUTPUT«42» |
20:27 |
jnthn |
\o/ |
20:27 |
__ash__ |
yeah, i figured you could do something like that, just define an operator |
20:27 |
jnthn |
I don't know that you can have '.' though |
20:28 |
jnthn |
rakudo: sub infix:<.>(&x, &y) { return -> $a { x(y($a)) } }; sub f($x) { 2 * $x }; sub g($x) { $x + 1 }; my $z = &f . &g; say $z(20) |
20:28 |
__ash__ |
well, haskell uses infix '.' thats all |
20:28 |
p6eval |
rakudo 27d9f1: OUTPUT«42» |
20:28 |
jnthn |
heh heh |
20:28 |
jnthn |
std: sub infix:<.>(&x, &y) { return -> $a { x(y($a)) } }; sub f($x) { 2 * $x }; sub g($x) { $x + 1 }; my $z = &f . &g; say $z(20) |
20:28 |
p6eval |
std 28734: OUTPUT«[31m===[0mSORRY![31m===[0mObsolete use of . to concatenate strings; in Perl 6 please use ~ instead at /tmp/2gotXXIWVi line 1:------> [32mx }; sub g($x) { $x + 1 }; my $z = &f . [33m⏏[31m&g; say $z(20)[0mFAILED 00:02 133m» |
20:28 |
jnthn |
Yeah, I thought that is what would happen. :-) |
20:29 |
jnthn |
Well... use Haskell; :-) |
20:30 |
colomon |
I've been toying with the notion of defining a class for math functions using closures like that. |
20:31 |
__ash__ |
i was asking about perl6, just wonder, its a toy feature of some functional programming languages and since i heard perl6's motto is all your paradigms all belong to us, i thought i'd ask |
20:31 |
__ash__ |
i only know a little haskell, its was just an example |
20:31 |
__ash__ |
how would you get it to handle more paramters? like if they took x and y, instead of just x |
20:31 |
__ash__ |
rakudo: sub infix:<.>(&x, &y) { return -> $a { x(y($a)) } }; sub f($x, y) { 2 * $x, 2 * $y }; sub g($x, y) { $x + 1, $y + 1 }; my $z = &f . &g; say $z(20, 20); |
20:31 |
p6eval |
rakudo 27d9f1: OUTPUT«Unable to parse multisig; couldn't find final ')' at line 2, near ", y) { 2 *"in Main (file <unknown>, line <unknown>)» |
20:32 |
__ash__ |
sub infix:<.>(&x, &y) { return { x(y($_)) } }; sub f($x, $y) { 2 * $x, 2 * $y }; sub g($x, $y) { $x + 1, $y + 1 }; my $z = &f . &g; say $z(20, 20) |
20:32 |
jnthn |
__ash__: Well, my answer really is, even if standard Perl 6 doesn't provide such an operator, it provides you a very easy way to write a library that looks pretty natural. |
20:32 |
|
araujo joined #perl6 |
20:32 |
__ash__ |
rakudo: sub infix:<.>(&x, &y) { return { x(y($_)) } }; sub f($x, $y) { 2 * $x, 2 * $y }; sub g($x, $y) { $x + 1, $y + 1 }; my $z = &f . &g; say $z(20, 20) |
20:32 |
p6eval |
rakudo 27d9f1: OUTPUT«too many arguments passed (2) - at most 1 param expectedin Main (file src/gen_setting.pm, line 206)» |
20:33 |
jnthn |
__ash__: Take the multiple parameters. |
20:33 |
jnthn |
return -> $a, $b { ... } |
20:34 |
jnthn |
Or *@params to take as many as you want, and you can flatten with |@params when passing, or similar. |
20:34 |
__ash__ |
sub infix:<.>(&x, &y) { return -> |@params { x(y(*@params)) } }; sub f($x, $y) { 2 * $x, 2 * $y }; sub g($x, $y) { $x + 1, $y + 1 }; my $z = &f . &g; say $z(20, 20) |
20:35 |
__ash__ |
rakudo: sub infix:<.>(&x, &y) { return -> |@params { x(y(*@params)) } }; sub f($x, $y) { 2 * $x, 2 * $y }; sub g($x, $y) { $x + 1, $y + 1 }; my $z = &f . &g; say $z(20, 20) |
20:35 |
p6eval |
rakudo 27d9f1: OUTPUT«Confused at line 2, near "-> |@param"in Main (file <unknown>, line <unknown>)» |
20:36 |
|
lumi joined #perl6 |
20:36 |
__ash__ |
I haven't done any of that parameter magic |
20:37 |
__ash__ |
how would you do that right? |
20:38 |
quietfanatic |
I think you have the * and | backwards. |
20:38 |
|
SmokeMachine joined #perl6 |
20:38 |
quietfanatic |
rakudo: sub infix:<.>(&x, &y) { return -> *@params { x(y(|@params)) } }; sub f($x, $y) { 2 * $x, 2 * $y }; sub g($x, $y) { $x + 1, $y + 1 }; my $z = &f . &g; say $z(20, 20) |
20:38 |
p6eval |
rakudo 27d9f1: OUTPUT«too few arguments passed (1) - 2 params expectedin Main (file src/gen_setting.pm, line 206)» |
20:38 |
quietfanatic |
Hmm. |
20:39 |
|
xenoterracide joined #perl6 |
20:39 |
jnthn |
quietfanatic: yes, you're right |
20:39 |
jnthn |
quietfanatic: I think just wants to be x(y(|@params), y(|@params)) |
20:39 |
jnthn |
For the two param case. |
20:40 |
__ash__ |
i wonder how to do it so it doesn't matter the number of paramters... |
20:40 |
quietfanatic |
I think it wants to be something like x(|@(y(|@params))) |
20:40 |
quietfanatic |
if the @() syntax works in rakudo |
20:41 |
quietfanatic |
rakudo: sub infix:<.>(&x, &y) { return -> *@params { x(|@(y(|@params))) } }; sub f($x, $y) { 2 * $x, 2 * $y }; sub g($x, $y) { $x + 1, $y + 1 }; my $z = &f . &g; say $z(20, 20) |
20:41 |
p6eval |
rakudo 27d9f1: OUTPUT«4242» |
20:41 |
__ash__ |
you can drop the @ after | |
20:41 |
quietfanatic |
rakudo: sub infix:<.>(&x, &y) { return -> *@params { x(|y(|@params)) } }; sub f($x, $y) { 2 * $x, 2 * $y }; sub g($x, $y) { $x + 1, $y + 1 }; my $z = &f . &g; say $z(20, 20) |
20:41 |
__ash__ |
rakudo: sub infix:<.>(&x, &y) { return -> *@params { x(|y(|@params)) } }; sub f($x, $y) { 2 * $x, 2 * $y }; sub g($x, $y) { $x + 1, $y + 1 }; my $z = &f . &g; say $z(20, 20) |
20:41 |
p6eval |
rakudo 27d9f1: OUTPUT«4242» |
20:41 |
p6eval |
rakudo 27d9f1: OUTPUT«4242» |
20:41 |
quietfanatic |
__ash__ :) |
20:42 |
jnthn |
And the world was filled with happiness. :-) |
20:44 |
|
mirage77 joined #perl6 |
20:46 |
|
mirage77 left #perl6 |
20:49 |
__ash__ |
how do you find the length of a string? |
20:49 |
|
mikehh_ joined #perl6 |
20:49 |
__ash__ |
rakudo: say "«".chars; |
20:50 |
p6eval |
rakudo 27d9f1: OUTPUT«1» |
20:50 |
__ash__ |
hmm |
20:50 |
__ash__ |
on my terminal that puts 2 |
20:50 |
__ash__ |
weird |
20:52 |
|
synth joined #perl6 |
20:52 |
Tene |
__ash__: in the repl or in a script? |
20:52 |
__ash__ |
okay, that works when you do it from a file, but doing it in a terminal returns 2, must be the encoding of the terminal or something |
20:52 |
Tene |
__ash__: there are issues with utf encoding in the repl |
20:53 |
__ash__ |
okay, got ya |
20:54 |
jnthn |
omgwtfgithelp! |
20:54 |
jnthn |
http://github.com/rakudo/rakudo/commits/resig shows no commits since the last time I pushed |
20:54 |
jnthn |
However, git push origin resig complains about non-fast-forward. |
20:55 |
jnthn |
How might this happen? |
20:57 |
Tene |
jnthn: you could have branched from an earlier commit. |
20:57 |
Tene |
jnthn: git fetch; git rebase origin; git push |
20:57 |
Tene |
try that. |
20:58 |
|
eternaleye joined #perl6 |
20:59 |
jnthn |
Tene: Ah, did a pull, resolved whatever it thought was the problem and it's let me push now. |
20:59 |
jnthn |
But thanks |
20:59 |
* jnthn |
still not quite sure what happened... |
20:59 |
Tene |
ah |
21:00 |
Tene |
spooky. |
21:00 |
jnthn |
Anyways, http://github.com/rakudo/rakudo/commits/resig has latest. |
21:00 |
jnthn |
Should still build fine for now. |
21:00 |
jnthn |
Will continue to fill it out and migrate us to this new binder in the next few days. :-) |
21:01 |
jnthn |
Just making it work first, but there'll be a bunch of chances for optimization later too. |
21:02 |
Tene |
jnthn: if you run gitk, you'll see what happened. |
21:03 |
Tene |
see how you have "re-work binder into a library of its own" in there twice, with different parents? |
21:04 |
jnthn |
yeah |
21:04 |
jnthn |
hmm |
21:04 |
Tene |
you must have rebased that commit on top of master, then pushed to the branch, or something. |
21:04 |
jnthn |
I'm still not sure how I managed that one. |
21:04 |
jnthn |
oh, I wonder if I pushed to the wrong place at some point. :-S |
21:04 |
Tene |
yeah, that could be it, maybe. |
21:04 |
|
rhr joined #perl6 |
21:05 |
jnthn |
Ah, but that patch hasn't ended up in master. Phew. :-) |
21:30 |
moritz_ |
jnthn: replacing .$(AR) with $(O) makes your branch build on linux |
21:31 |
moritz_ |
(tried in Makefile directly, not in build/Makefile.in) |
21:31 |
jnthn |
erm, with $(O) ?! |
21:31 |
jnthn |
oh, erm. |
21:31 |
jnthn |
Yes, I can see why that would work. |
21:31 |
jnthn |
Trouble is |
21:32 |
jnthn |
You've just linked two copies of the same code separately into two other dynamic libraries. |
21:32 |
moritz_ |
and bloated the binary that way |
21:32 |
jnthn |
Rather than building it once and linking against that one copy. |
21:32 |
jnthn |
Yeah |
21:33 |
jnthn |
I fear that the two libraries having the same exported symbol will cause...fun...too :-) |
21:33 |
jnthn |
oh, well, maybe not actually |
21:33 |
jnthn |
I guess it'll be OK. |
21:33 |
moritz_ |
with that build spectest seems to run fine so far |
21:33 |
jnthn |
Yeah |
21:33 |
jnthn |
I'm sorta pondering that building it as a separate library is a bad idea. |
21:33 |
moritz_ |
anyway, have to go to bed now, more investigation tomorrow |
21:34 |
|
eternaleye_ joined #perl6 |
21:34 |
jnthn |
I want to bundle it in with the dynpmcs really *but* the dynops need to be able to call it too... |
21:34 |
jnthn |
Anyway, there's a while to find a solution before this merges. Sleep well. :-) |
21:36 |
dalek |
nqp-rx: b0e696b | pmichaud++ | src/Regex/Cursor.pir: |
21:36 |
dalek |
nqp-rx: Remove some obsolete methods from Cursor. |
21:36 |
dalek |
nqp-rx: review: http://github.com/perl6/nqp-rx/commit/b0e696bf7dfded473872b13aade629fcb36b54c2 |
21:36 |
dalek |
nqp-rx: 5ecd319 | pmichaud++ | src/Regex/Cursor.pir: |
21:36 |
dalek |
nqp-rx: Partial change of match stack to a cursor stack, update bstack handling. |
21:36 |
dalek |
nqp-rx: review: http://github.com/perl6/nqp-rx/commit/5ecd31941c3d6483f4751108d1b51b67704ceed7 |
21:36 |
dalek |
nqp-rx: 7b01e97 | pmichaud++ | src/Regex/Cursor.pir: |
21:36 |
dalek |
nqp-rx: Manage cstack on mark_fail. |
21:36 |
dalek |
nqp-rx: review: http://github.com/perl6/nqp-rx/commit/7b01e976627a08108493df3f0f96d5fc3f30d4f6 |
21:42 |
|
lumi joined #perl6 |
21:45 |
|
Chillance joined #perl6 |
21:49 |
|
synth joined #perl6 |
21:50 |
|
synth joined #perl6 |
21:50 |
|
synth joined #perl6 |
21:56 |
|
Whiteknight joined #perl6 |
21:59 |
|
crythias joined #perl6 |
22:05 |
|
pmurias joined #perl6 |
22:26 |
|
FOAD_ joined #perl6 |
22:32 |
diakopter |
std: {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{say 33}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} |
22:32 |
p6eval |
std 28735: OUTPUT«Deep recursion on subroutine "LazyMap::lazymap" at Cursor.pm line 824.Deep recursion on subroutine "LazyMap::lazymap" at Cursor.pm line 824.Deep recursion on subroutine "LazyMap::lazymap" at Cursor.pm line 609.Deep recursion on anonymous subroutine at Cursor.pm line 677.Deep |
22:32 |
p6eval |
..re… |
22:33 |
diakopter |
rakudo: {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{say 33}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} |
22:33 |
p6eval |
rakudo 27d9f1: OUTPUT«maximum recursion depth exceededin Main (file src/gen_setting.pm, line 206)» |
22:33 |
jnthn |
lolfail |
22:33 |
KyleHa |
Lucky we're not writing lisp. |
22:34 |
diakopter |
jnthn: :) I thought you'd like that one |
22:35 |
jnthn |
diakopter: Parrot sets a default max rec depth to make debugging easier - we can clear that though to support deeply recursive code if we like. :-) |
22:35 |
jnthn |
otoh the depth is 1000 |
22:35 |
jnthn |
That isn't so many curlies to overall take us to that. :-) |
22:36 |
diakopter |
rakudo: {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{ |
22:36 |
p6eval |
rakudo 27d9f1: OUTPUT«maximum recursion depth exceededin Main (file src/gen_setting.pm, line 206)» |
22:36 |
jnthn |
:-) |
22:36 |
diakopter |
(parsing) |
22:36 |
|
crythias joined #perl6 |
22:36 |
|
Whiteknight joined #perl6 |
22:36 |
|
SmokeMachine joined #perl6 |
22:36 |
|
shachaf_ joined #perl6 |
22:36 |
|
slavik joined #perl6 |
22:36 |
|
lucs joined #perl6 |
22:36 |
|
ruoso joined #perl6 |
22:36 |
|
arthur-_ joined #perl6 |
22:36 |
|
sjohnson joined #perl6 |
22:36 |
|
colomon joined #perl6 |
22:36 |
|
pugs_svn joined #perl6 |
22:36 |
|
yahooooo joined #perl6 |
22:36 |
|
Grrrr joined #perl6 |
22:36 |
|
nsh joined #perl6 |
22:36 |
|
davidm123 joined #perl6 |
22:36 |
|
PacoLinux joined #perl6 |
22:36 |
|
cosimo joined #perl6 |
22:36 |
jnthn |
Yes, it's hitting it in parsing, for sure. |
22:37 |
diakopter |
(same with std) |
22:37 |
KyleHa |
rakudo: eval ('{' x 100) ~ 'say "oh hai"' ~ ('}' x 100) |
22:37 |
p6eval |
rakudo 27d9f1: OUTPUT«oh hai» |
22:37 |
jnthn |
huh, it works for eval?! |
22:38 |
KyleHa |
rakudo: eval ('{' x 1000) ~ 'say "oh hai"' ~ ('}' x 1000) |
22:38 |
p6eval |
rakudo 27d9f1: ( no output ) |
22:38 |
jnthn |
ah. :-) |
22:38 |
KyleHa |
rakudo: eval ('{' x 500) ~ 'say "oh hai"' ~ ('}' x 500) |
22:38 |
p6eval |
rakudo 27d9f1: ( no output ) |
22:38 |
|
eternaleye joined #perl6 |
22:38 |
KyleHa |
rakudo: eval ('{' x 250) ~ 'say "oh hai"' ~ ('}' x 250) |
22:38 |
p6eval |
rakudo 27d9f1: ( no output ) |
22:39 |
KyleHa |
rakudo: eval ('{' x 150) ~ 'say "oh hai"' ~ ('}' x 150) |
22:39 |
p6eval |
rakudo 27d9f1: ( no output ) |
22:39 |
jnthn |
rakudo: my $n = 100; $n++ while eval(('{' x $n) ~ ' 1 ' ~ ('}' x $n)); say $n; |
22:39 |
p6eval |
rakudo 27d9f1: TIMED_OUT |
22:39 |
KyleHa |
jnthn++ |
22:39 |
jnthn |
aww |
22:47 |
TimToady1 |
what you don't see there is that std actually succeeded in parsing it, since that was just a warning |
22:48 |
diakopter |
yep; with 'no warnings;' it's hunkily dorily |
22:50 |
diakopter |
rakudo: say ('.' x 200000000 ~~ /.+/).chars |
22:50 |
p6eval |
rakudo 27d9f1: OUTPUT«200000000» |
22:50 |
diakopter |
(impressive) |
22:51 |
KyleHa |
I'm looking at this ticket: http://rt.perl.org/rt3/Ticket/Display.html?id=65272 |
22:51 |
KyleHa |
It uses 'A.HOW.dispatch(.., ..)' That doesn't work anymore. |
22:54 |
KyleHa |
rakudo: class A { method x { say 'A' } }; class B is A { method x() { say 'B' } }; B.new.x; B.x; |
22:54 |
p6eval |
rakudo 27d9f1: OUTPUT«BB» |
22:54 |
|
eternaleye_ joined #perl6 |
22:54 |
jnthn |
I'm not even sure if the ticket is correct... |
22:54 |
KyleHa |
Yeah, that's what I was thinking. |
22:55 |
jnthn |
.dispatch is API I guess |
22:55 |
jnthn |
But you're giving it an invocant B to work on, so the metaclass is going to care about its methods, probably. |
22:56 |
jnthn |
Anyway, I suspect it dates back to the days before you could write $x.A::x |
22:59 |
KyleHa |
Closed: crusty. 8-) |
22:59 |
diakopter |
std: goto: last goto |
22:59 |
p6eval |
std 28735: OUTPUT«ok 00:01 106m» |
23:01 |
diakopter |
std: last last last last last last last |
23:01 |
p6eval |
std 28735: OUTPUT«ok 00:02 104m» |
23:02 |
KyleHa |
rakudo: say <<:a(1)>>.perl |
23:02 |
p6eval |
rakudo 27d9f1: OUTPUT«":a(1)"» |
23:03 |
diakopter |
std: last.last.last.last.last.last |
23:03 |
p6eval |
std 28735: OUTPUT«ok 00:01 103m» |
23:04 |
diakopter |
std: .goto.goto.goto.goto ** * |
23:04 |
p6eval |
std 28735: OUTPUT«ok 00:01 104m» |
23:04 |
* diakopter |
shrugs |
23:07 |
KyleHa |
This says <<:a(1)>> should interpolate a pair: http://rt.perl.org/rt3/Ticket/Display.html?id=65304 Is that right? |
23:09 |
quietfanatic |
rakudo: say (* == 3).WHAT |
23:09 |
p6eval |
rakudo 27d9f1: OUTPUT«!whatever_closure» |
23:09 |
quietfanatic |
rakudo: say (* ~~ 3).WHAT |
23:09 |
p6eval |
rakudo 27d9f1: OUTPUT«Bool()» |
23:10 |
quietfanatic |
Should * also produce a WhateverCode for ~~? |
23:11 |
* diakopter |
flips a coin |
23:12 |
KyleHa |
S02 says yes, <<:a(1)>> should cough up a Pair object. |
23:29 |
|
jrtayloriv joined #perl6 |
23:34 |
|
eternaleye joined #perl6 |
23:37 |
diakopter |
as dukeleto said yesterday, whoa nelly... this improved interpreter model gives a 50-100x speedup of arbitrary node evaluation |
23:45 |
pugs_svn |
r28736 | kyle++ | [t/spec] Mark test for RT #65304 |
23:46 |
pugs_svn |
r28737 | kyle++ | [t/spec] Test for RT #65322 |
23:48 |
quietfanatic |
Does anyone know how Perl namespaces map to Parrot namespaces? |
23:48 |
quietfanatic |
rakudo: $Place::thing = 4; Q:PIR {$P0 = get_hll_global ['Place'], '$thing'}; QPIR{say $P0} |
23:48 |
p6eval |
rakudo 27d9f1: OUTPUT«4» |
23:48 |
quietfanatic |
This gets the right thing |
23:48 |
quietfanatic |
but |
23:48 |
quietfanatic |
rakudo: $Some::Place::thing = 4; Q:PIR {$P0 = get_hll_global ['Some::Place'], '$thing'}; QPIR{say $P0} |
23:48 |
quietfanatic |
This does not. |
23:48 |
p6eval |
rakudo 27d9f1: OUTPUT«Null PMC in sayin Main (file src/gen_setting.pm, line 206)» |
23:51 |
quietfanatic |
rakudo: $Some::Place::thing = 4; Q:PIR {$P0 = get_hll_global ['Some';'Place'], '$thing'}; QPIR{say $P0} |
23:51 |
p6eval |
rakudo 27d9f1: OUTPUT«4» |
23:51 |
quietfanatic |
Okay, I figured it out. :) |
23:59 |
diakopter |
rakudo: say (QPIR{}).WHAT |
23:59 |
p6eval |
rakudo 27d9f1: OUTPUT«ResizablePMCArray: Can't shift from an empty array!in Main (file src/gen_setting.pm, line 206)» |
23:59 |
diakopter |
rakudo: say (QPIR{say 3}).WHAT |
23:59 |
p6eval |
rakudo 27d9f1: OUTPUT«The opcode 'descalarref_p' (descalarref<1>) was not found. Check the type and number of the argumentsin Main (file src/gen_setting.pm, line 206)» |