»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend! Set by sorear on 4 February 2011. |
|||
00:03
drbean left
00:07
Patterner left
00:08
Psyche^ joined,
Psyche^ is now known as Patterner
00:09
drbean joined
00:31
fsergot left
00:32
sftp left,
sftp joined
00:38
mj41 left
00:40
drbean left
00:41
alvis joined
00:47
drbean joined
|
|||
[Coke] | perl6: say NaN ~~ NaN | 00:47 | |
p6eval | rakudo a8c513: OUTPUT«Bool::True» | ||
..pugs b927740: OUTPUT«1» | |||
..niecza v13-20-g4d836ba: OUTPUT«Bool::False» | |||
colomon | I reckon that's a niecza bug, but I didn't try to sort it out today. :) | 00:48 | |
[Coke] | I'll open a ticket. | 00:49 | |
colomon | and sense all the other tests were testing against 'NaN' | 00:50 | |
... | |||
*since | |||
sigh | |||
00:53
fridim_ left
01:00
PacoAir_ joined
01:01
PacoAir left,
PacoAir_ is now known as PacoAir
|
|||
[Coke] | sorear: ping | 01:01 | |
dalek | ast: f6f95b3 | coke++ | S32-num/roots.t: niecza fudge |
01:03 | |
colomon | oh, drat! | 01:04 | |
I made the chance and never pushed it. | 01:05 | ||
ok(@l[0] ~~ 'NaN', 'roots(NaN,1) returns NaN'); | |||
that way it matches the other tests | |||
[Coke] | Feel free to straighten it out. | 01:07 | |
(but please update #97 if you do.) | |||
sorear | [Coke]: pong | 01:10 | |
01:12
Trashlord joined
|
|||
[Coke] | sorear: t/spec/S12-attributes/instance.t has some passing TODOs, but one regression. Wanted to ping you before fudging it. | 01:14 | |
sorear | which one is the regression? | 01:15 | |
dalek | ast: 961581e | (Solomon Foster)++ | S32-num/roots.t: Changed test to match others and then removed the Niecza fudging. |
01:16 | |
[Coke] | Failed test: 115 | ||
TODO passed: 111-112 | |||
not ok 115 - Type enforced (hash, push) | 01:17 | ||
sorear | ah | ||
go ahead and refudge | |||
Hash.push didn't exist up to today, so it automatically failed | 01:18 | ||
[Coke] | danke. | 01:20 | |
01:20
benabik left,
benabik joined
01:22
daemon left
01:28
wolfman2000 joined
01:29
daemon joined
|
|||
dalek | ast: 0e33d81 | coke++ | S12-attributes/instance.t: niecza fudge |
01:34 | |
01:35
MayDaniel left
01:39
alc joined
01:40
thou_ left
01:42
thou left
01:55
drbean left
02:01
drbean joined
02:05
PacoAir left
02:09
PacoAir joined
02:10
cooper joined
02:11
icwiener joined
02:13
drbean left
02:15
thou joined
|
|||
kshannon | Gah! S08 is so old and wrong it's confusing :( | 02:19 | |
02:19
drbean joined
02:20
odoacre joined
|
|||
dalek | ast: f26848e | (Solomon Foster)++ | S02-types/type.t: Fudge for niecza. |
02:23 | |
02:24
Trashlord left
|
|||
dalek | ecza: d43d35a | (Solomon Foster)++ | t/spectest.data: Turn on S02-types/type.t. |
02:24 | |
colomon | perl6: split("", "forty-two").join(',') | 02:32 | |
p6eval | pugs b927740, rakudo a8c513, niecza v13-20-g4d836ba: ( no output ) | ||
colomon | perl6: say split("", "forty-two").join(',') | ||
p6eval | pugs b927740, rakudo a8c513: OUTPUT«f,o,r,t,y,-,t,w,o» | ||
..niecza v13-20-g4d836ba: OUTPUT«,f,o,r,t,y,-,t,w,o,» | |||
colomon | sorear: ping? | ||
02:33
PacoAir left
|
|||
colomon | sorear: never mind. I see it's a special case that needs to be added | 02:38 | |
02:43
PacoAir joined,
PacoAir left
02:59
icwiener_ joined
03:01
dayangkun joined
03:02
Guest79645 left
03:03
icwiener left
|
|||
colomon | perl6: say split('this $a is $a a $a test', '$a').perl | 03:03 | |
p6eval | niecza v13-20-g4d836ba: OUTPUT«["$a"].list» | ||
..rakudo a8c513: OUTPUT«("\$a",).list» | |||
..pugs b927740: OUTPUT«("\$a",)» | |||
colomon | ? | 03:04 | |
perl6: say 'this $a is $a a $a test'.split('$a').perl | |||
p6eval | rakudo a8c513: OUTPUT«("this ", " is ", " a ", " test").list» | ||
..niecza v13-20-g4d836ba: OUTPUT«["this ", " is ", " a ", " test"].list» | |||
..pugs b927740: OUTPUT«("this ", " is ", " a ", " test")» | |||
03:04
Lilpid joined,
kensanata left
|
|||
colomon | perl6: say 'this . is . a . test'.split('.').perl | 03:05 | |
p6eval | rakudo a8c513: OUTPUT«("this ", " is ", " a ", " test").list» | ||
..niecza v13-20-g4d836ba: OUTPUT«["this ", " is ", " a ", " test"].list» | |||
..pugs b927740: OUTPUT«("this ", " is ", " a ", " test")» | |||
sorear | colomon: last time we talked about split "" here the consensus was that niecza was right and people who want the Perl5 behavior should use comb instead | 03:28 | |
colomon | really? | ||
spectests certainly have not been updated to reflect that. | |||
hmmm... but the spec seems to favor you | 03:29 | ||
sorear | irclog.perlgeek.de/perl6/2011-12-25#i_4879648 | 03:30 | |
colomon | okay, I've undone my changes | 03:33 | |
and I'm pondering fixing the spectest | |||
03:37
Psyche^ joined
|
|||
colomon | but I'm pondering going to bed even more. | 03:38 | |
colomon could not get Father Ted to play on netflix. :( | |||
'night | |||
03:40
Patterner left,
Psyche^ is now known as Patterner
04:00
tokuhirom joined
04:29
thou left
04:30
achromic left
04:32
achromic joined
04:38
drbean left
|
|||
flussence | ha! APL's "eval" operator *isn't* in unicode :D | 04:40 | |
(unfortunately, now I've learned more APL than I'd like to) | 04:41 | ||
(if anyone's wondering, I was trying to transcribe an image for someone and failed) | 04:42 | ||
04:45
drbean joined
|
|||
abercrombie | Is there gonna be a rakudo star in this month (Dec)? | 04:49 | |
04:52
lutok left
04:53
dayangkun left
|
|||
geekosaur | execute isn't U+234E? | 05:03 | |
sorear | abercrombie: I've heard rumors of a Dec star, but tbh it's looking doubtful given the date | 05:07 | |
if it hasn't already happened | |||
05:07
bluescreen10 left
05:13
icwiener_ left
05:14
thou joined,
unobe joined
05:16
unobe left
|
|||
kshannon | geekosaur, flussence: yes U+234E is definitely APL execute | 05:16 | |
geekosaur | (it has been a looong time since I did anything with apl...) | 05:17 | |
05:17
unobe joined
05:22
icwiener joined
|
|||
thou | b: say 'hello, everyone' | 05:22 | |
p6eval | b 1b7dd1: OUTPUT«hello, everyone» | ||
05:26
molaf joined
|
|||
sorear | hello, thou | 05:26 | |
05:26
kshannon left
05:27
kshannon joined
05:28
thou_ joined
|
|||
sorear | hello, thou_ | 05:30 | |
thou | hi, sorear! | 05:31 | |
kshannon | .u ⍎ | ||
phenny | U+234E APL FUNCTIONAL SYMBOL DOWN TACK JOT (⍎) | ||
kshannon | my IRC environment is now setup properly for unicods :) | 05:32 | |
05:33
Chillance left
|
|||
flussence | kshannon++ # I missed that one, doesn't help that my character map mixes and matches a dozen different fonts in that unicode block :) | 05:34 | |
thou | hi, anyone here happen to know if perl6 highlighting for github is in the works by anyone? | 05:37 | |
flussence | that'd be up to github I guess, since it's proprietary | 05:38 | |
thou | i don't know much about it, looks like github is using pygments for highlighting | ||
right; just seems that it's a popular platform in the p6 community, would be nice to have, i might be able to whip something up | 05:39 | ||
sorear | perl 6 is not really syntax-highlightable | 05:44 | |
because the lexing process is so tightly integrated with the parser ... | |||
vim is basially incapable of figuring out where regexes and strings end | 05:45 | ||
not like Perl 5 where the multi-pass design makes it possible to find the end of a regex without fully parsing it | |||
there's a syntax highlighter in the STD repo, but you're never going to get the github folks to touch it because 1. it's SLOW 2. it's not based on a lexer | 05:46 | ||
thou | i was thinking of doing as well as vim. but maybe that's not helpful. | ||
sorear | tbh I think perl.vim works better on P6 than perl6.vim | 05:47 | |
talk to Alias if you want to know just how screwed we are on tool support | 05:48 | ||
thou | hrm | ||
maybe i'd rather stay ignorant :-) | |||
i saw some mention of Padre giving up | 05:49 | ||
05:49
Patterner left
|
|||
thou | or that's how i interpreted the comment | 05:49 | |
sorear | Padre is one of Alias' projects | ||
05:52
unobe left
05:56
kaare_ joined
06:01
drbean left
06:08
drbean joined
|
|||
dalek | ast: 681af07 | moritz++ | S32-num/roots.t: remove version control conflict marker |
06:15 | |
06:16
Psyche^ joined,
Psyche^ is now known as Patterner
06:17
icwiener left
|
|||
dalek | ast: c980908 | moritz++ | S (2 files): rakudo unfudges, kshannon++ |
06:19 | |
ecza: 4420544 | moritz++ | t/spectest.data: run S32-hash/push.t it now passes, thanks to Hash.perl sorting the keys. sorear++ |
06:24 | ||
06:25
Patterner left
|
|||
dalek | kudo/nom: 8a147ae | (Kris Shannon)++ | lib/Test.pm: More Test.pm cleanups |
06:25 | |
kudo/nom: 39aa07e | (Kris Shannon)++ | lib/Test.pm: fix diag() with newlines |
|||
sorear | o/ moritz | 06:39 | |
perl6: class A {}; class B is A {}; class C is B {}; multi foo(A $, A $) { "AA" }; multi foo(A $, B $) { "AB" }; multi foo(A $, C $) { "AC" }; multi foo(B $, A $) { "BA" }; multi foo (C $, A $) { "CA" }; say foo(C,B) | 06:53 | ||
p6eval | rakudo a8c513, niecza v13-20-g4d836ba: OUTPUT«CA» | ||
..pugs b927740: OUTPUT«***  Unexpected "A" expecting "|", ":", "*", parameter name or ")" at /tmp/dmSEFGGeF1 line 1, column 57» | |||
sorear | perl6: class A {}; class B is A {}; class C is B {}; multi foo(A $, A $) { "AA" }; multi foo(A $, B $) { "AB" }; multi foo(A $, C $) { "AC" }; multi foo(B $, A $) { "BA" }; multi foo (C $, A $) { "CA" }; say foo(C,C) | 06:54 | |
p6eval | rakudo a8c513: OUTPUT«Ambiguous dispatch to multi 'foo'. Ambiguous candidates had signatures::(A, C):(C, A) in block <anon> at /tmp/jJheYAEg7K:1 in <anon> at /tmp/jJheYAEg7K:1» | ||
..niecza v13-20-g4d836ba: OUTPUT«Unhandled exception: Ambiguous dispatch for &foo at <unknown> line 0 (&foo @ 0)  at /tmp/zUFozUuzKi line 1 (mainline @ 4)  at /home/p6eval/niecza/lib/CORE.setting line 2615 (ANON @ 2)  at /home/p6eval/niecza/lib/CORE.setting line 2616 (module-CORE … | |||
..pugs b927740: OUTPUT«***  Unexpected "A" expecting "|", ":", "*", parameter name or ")" at /tmp/CdaQFgvua0 line 1, column 57» | |||
kshannon | perl6: proto sub foo(Bool $); multi sub foo(True) { say "Yes" }; multi sub foo(False) { say "No" }; foo(True); foo(False); | 06:56 | |
p6eval | pugs b927740: OUTPUT«***  Unexpected "Bool" expecting "|", ":", "*", parameter name or ")" at /tmp/ThYqFvOS6n line 1, column 15» | ||
..niecza v13-20-g4d836ba: OUTPUT«===SORRY!===Malformed block at /tmp/ZgWB6YOxZP line 1:------> proto sub foo(Bool $)⏏; multi sub foo(True) { say "Yes" }; mulParse failed» | |||
..rakudo a8c513: OUTPUT«===SORRY!===Missing block at line 1, near "; multi su"» | |||
kshannon | perl6: proto sub foo(Bool $) { * }; multi sub foo(True) { say "Yes" }; multi sub foo(False) { say "No" }; foo(True); foo(False); | ||
p6eval | rakudo a8c513: OUTPUT«No applicable candidates found to dispatch to for 'foo'. Available candidates are::(Bool):(Bool) in block <anon> at /tmp/FCIYFcguM7:1 in <anon> at /tmp/FCIYFcguM7:1» | 06:57 | |
..pugs b927740: OUTPUT«***  Unexpected "Bool" expecting "|", ":", "*", parameter name or ")" at /tmp/NokRluAQ8G line 1, column 15» | |||
..niecza v13-20-g4d836ba: OUTPUT«Unhandled exception: Unable to resolve method ast in class Any at /home/p6eval/niecza/src/NieczaActions.pm6 line 2122 (NieczaActions.parameter @ 2)  at /home/p6eval/niecza/src/STD.pm6 line 2931 (P6.parameter @ 234)  at /home/p6eval/niecza/src/STD.pm6… | |||
06:57
Psyche^ joined,
Psyche^ is now known as Patterner
|
|||
moritz | I'd kinda expected that to work in rakudo | 06:57 | |
kshannon | The problem is that it's smart matching... | 06:58 | |
Or at least that's part of it. | |||
I was expecting rakudo to give "Yes\nYes\n"; | 06:59 | ||
moritz | hrm | ||
kshannon | I don't think that should be the answer though... | ||
moritz | one could spec eqv or === comparison for the where-block | 07:02 | |
kshannon | as long as you left the special case for an actual block | 07:04 | |
moritz | erm, I meant for *constructing* the where-block from the literal | 07:05 | |
sure, you can't eqv-compare an invocable block, you have to invoke it | |||
kshannon | perl6: proto sub foo(Bool $) { * }; multi sub foo(Bool where ?*) { say "Yes" }; multi sub foo(Bool where !*) { say "No" }; foo(True); foo(False); | ||
p6eval | rakudo 39aa07: OUTPUT«===SORRY!===Cannot do non-typename cases of type_constraint yet at line 1, near ") { say \"Y"» | ||
..pugs b927740: OUTPUT«***  Unexpected "Bool" expecting "|", ":", "*", parameter name or ")" at /tmp/4WNMRReQx4 line 1, column 15» | |||
..niecza v13-20-g4d836ba: OUTPUT«===SORRY!===Multiple prefix constraints not yet supported at /tmp/7Ol0zrIkIJ line 1:------> ol $) { * }; multi sub foo(Bool where ?*⏏) { say "Yes" }; multi sub foo(Bool wherUnhandled exception: Unable to resolve me… | |||
moritz | rakudo: multi sub foo(Bool $ where ?*) { 'y' }; multi sub foo(Bool $ where !*) { 'n' }; say foo(True), foo(False) | 07:06 | |
p6eval | rakudo 39aa07: OUTPUT«yn» | ||
kshannon | Ah! That explains it. | ||
07:06
HarryS left
|
|||
moritz | you need the variable name there (or $) | 07:07 | |
07:07
sudokode left
07:10
sudokode joined,
HarryS joined
|
|||
moritz | lambda-the-ultimate.org/node/3680 | 07:12 | |
07:28
packetknife left
07:38
lutok joined
07:39
drbean left
07:42
proller joined
07:44
drbean joined
|
|||
kshannon | moritz: I agree with your comment about the .index vs regex, but you put it on (and closed) the wrong pull request | 07:47 | |
moritz | kshannon: oh, sorry about that | ||
kshannon: I'm about to test and merge the second one too | 07:49 | ||
kshannon: when you're on the topic of containers, there's something else that needs attention | |||
(if you're looking for other topics to hack on, that is) | 07:50 | ||
nom: say (gather { take [1, 2]; take [4, 5] }).perl | |||
p6eval | nom 39aa07: OUTPUT«(1, 2, 4, 5).list» | ||
moritz | &take over-eagerly flattens | ||
and src/core/control.pm has a comment that it should be using nqp::p6recont_ro, but that leads to a test regression where a test loops infinitely | 07:52 | ||
that needs some attention and debugging | |||
kshannon | I've already taken a quick look at that one (but I got lost in a maze of twisty passages) | 07:54 | |
07:55
sivoais left
|
|||
kshannon | I'll give it another go in a bit. | 07:55 | |
07:55
sivoais joined
08:07
packetknife joined
|
|||
dalek | kudo/nom: 2b6f86b | (Kris Shannon)++ | src/binder/container.c: Only decontainerize concrete containers. It doesn't make much sense to try and decontainerize a container class object as it's not really a container yet. The Proxy class object in particular is very hard to interrogate (e.g. for --target=past dumping) |
08:08 | |
moritz | kshannon: ok, both pull requests are closed now, and I've moved the comment to the right one. Thank you very much! | 08:09 | |
08:09
packetknife left
|
|||
sorear | You can move comments/ | 08:13 | |
moritz | sorear: you can edit comments | 08:14 | |
which is good enough | |||
guest_ | I am wondering for software engineers and programmers what their favorite IDE for developing their applications is? Mine is eclipse you can do everything in it from asm to perl , python , java , c/c++ ...etc | 08:18 | |
and also curious what IDE you guys/girls use at work for developing | 08:19 | ||
sorear | every IDE I've tried has been more harm than help. | ||
I don't use one. | |||
guest_ | what about at work | ||
nothing like visual studios , code:blocks , eclipse ,...? | 08:20 | ||
dalek | ecza: ed7ed59 | sorear++ | test3.pl: Test for a currently broken MMD case |
08:23 | |
ecza: 8f6bb3b | sorear++ | / (4 files): Switch type-based multis to use the new dispatcher |
|||
kshannon | guest_: vim is my IDE | 08:31 | |
guest_ | ok , curious what you use on the job for development? Also I am assuming your many programming language of choose to code in is perl? Yes /no? | 08:44 | |
thou | nom: my Stringy $s; say ($s ?? "Loves me some" !! "No"), " stringies."; | 08:47 | |
p6eval | nom 2b6f86: OUTPUT«get_bool() not implemented in class 'Stringy' in block <anon> at /tmp/46D4_LdQQ6:1 in <anon> at /tmp/46D4_LdQQ6:1» | ||
thou | perl6: my Stringy $s; say ($s ?? "Loves me some" !! "No"), " stringies."; | ||
p6eval | pugs b927740: OUTPUT«No stringies.» | ||
..rakudo 2b6f86: OUTPUT«get_bool() not implemented in class 'Stringy' in block <anon> at /tmp/8qeCm2KDGw:1 in <anon> at /tmp/8qeCm2KDGw:1» | |||
..niecza v13-20-g4d836ba: OUTPUT«===SORRY!===In my declaration, typename 'Stringy' must be predeclared (or marked as declarative with :: prefix) at /tmp/rzDGXj9Ams line 1:------> my Stringy⏏ $s; say ($s ?? "Loves me some" !! "No")Malformed my at /… | |||
thou | b: my Stringy $s; say ($s ?? "Loves me some" !! "No"), " stringies."; | 08:48 | |
p6eval | b 1b7dd1: OUTPUT«No stringies.» | ||
sorear | thou: why are you expecting a type object to ever evalutate to True? | 08:52 | |
kshannon | nom: my Stringy $s = '...'; say ($s ?? "Loves me some" !! "No"), " stringies."; | 08:53 | |
p6eval | nom 2b6f86: OUTPUT«Loves me some stringies.» | ||
08:55
thou_ left
|
|||
thou | sorear, i'm not | 08:56 | |
but i don't want it to bail out with "get_bool() not implemented" | |||
i ran into this trying to get WWW::App to work, running the sample from the README | 08:57 | ||
github.com/supernovus/perl6-www-ap...EADME#L116 | |||
dalek | ecza: 700121d | sorear++ | lib/ (3 files): Cache candidate ordering information between multisub calls |
09:01 | |
thou | it calls method get (Stringy :$default, Bool :$multiple, *@keys) {...}, which returns $default, which if undefined returns Stringy(), which should eval to False in a boolean context i think | ||
09:06
drbean left
|
|||
moritz | guest_: (g)vim is both my editor and IDE | 09:07 | |
09:11
drbean joined
|
|||
dalek | ecza: c6854ec | sorear++ | / (2 files): Implement multi foo(A, B) syntax |
09:14 | |
kshannon | moritz: Another pull request :) | 09:15 | |
I got fed up with MMD dispatch errors listing candidates which all looked the same, so I spent some time elaborating Parameter.perl | |||
09:16
kaare_ left,
kaare__ joined
09:19
kaare__ left,
kaare__ joined
09:20
kaare__ is now known as kaare_
09:23
kaare_ left,
kaare_ joined
09:28
drbean left
09:35
drbean joined
09:41
kaare__ joined,
kaare_ left
09:44
sayu joined,
cedric joined
|
|||
cedric | hello #perl6! | 09:45 | |
sorear | hello cedric! | ||
cedric | o/ sorear | ||
std: my $¥ = 2 | 09:47 | ||
p6eval | std dc62e1d: OUTPUT«===SORRY!===Confused at /tmp/libNFFmSLh line 1:------> my $⏏¥ = 2 expecting any of: POST bracketed infix constraint infix or meta-infix postfix postfix_prefix_meta_operator shape definition | ||
..statement modifier loop t… | |||
cedric | std: my $£ = 2 | ||
p6eval | std dc62e1d: OUTPUT«===SORRY!===Confused at /tmp/xiZptUzvvP line 1:------> my $⏏£ = 2 expecting any of: POST bracketed infix constraint infix or meta-infix postfix postfix_prefix_meta_operator shape definition | ||
..statement modifier loop t… | |||
sorear | Category: Sc | ||
09:48
alc left
|
|||
cedric | not allowed as variable name? | 09:48 | |
sorear | nope, only \w characters | ||
09:48
sayu left
|
|||
sorear | not symbols | 09:48 | |
09:48
replore_ joined
|
|||
cedric | ¢ isn't in Sc? | 09:48 | |
09:49
sayu joined
|
|||
sorear | $¢ is a syntactic special case, like $/ | 09:49 | |
cedric | sorear: thanks, it makes sens to me now. | 09:50 | |
*sense | |||
sorear | "cents" would have been better :D | ||
cedric | :D | ||
09:51
kaare__ is now known as kaare_
|
|||
sorear | TimToady has speculated in the past about allowing arbitrary variable names with a sufficiently unambiguous definition | 09:52 | |
note, for instance, that you can do this | |||
niecza: sub term:<$¥> { 2 }; say $¥ | |||
p6eval | niecza v13-25-g700121d: OUTPUT«2» | ||
09:52
proller left
|
|||
sorear | but that's not really a _variable_ | 09:52 | |
dalek | ecza: 0d05837 | sorear++ | / (3 files): Add parsing support for :_ :U :D :T |
09:54 | |
09:56
proller joined
|
|||
cedric is dreaming of a Xamarin-like company for Niecza/Perl6… | 09:57 | ||
dalek | ecza: 6fdfdad | sorear++ | / (2 files): Implement :D :U :T :_ (fixes #82) |
10:04 | |
10:07
thou left
|
|||
dalek | ecza: f9968eb | sorear++ | lib/CORE.setting: Account for NaN in Numeric.ACCEPTS (fixes #97) |
10:07 | |
sorear -> sleep | 10:10 | ||
10:16
cedric left
10:20
replore_ left
|
|||
moritz | evalbot rebuild niecza | 10:30 | |
p6eval | OK (started asynchronously) | ||
10:32
mj41 joined
|
|||
moritz | I've published my blog post, and submitted to news.ycombinator.com/item?id=3410637 and www.reddit.com/r/programming/commen...ospection/ -- upvotes welcome :-) | 10:32 | |
10:34
odoacre left,
replore_ joined
10:56
proller left
10:58
tokuhirom left
|
|||
masak | morning, #perl6 | 10:58 | |
10:58
tokuhirom joined
|
|||
kshannon | moritz: With simply changing the p6decont to p6recont_ro all the spectests are passing (with some TODO's passing) until the integration ones. | 10:59 | |
gist.github.com/1543671 | |||
That has some of the failing tests from t/spec/integration/99problems-01-to-10 | 11:00 | ||
pick1 and group1 are versions which work under the patched rakudo (pick1 also works under an unpatched rakudo) | |||
pick2 and group2 are the originals | 11:01 | ||
Can you take a look and see if you think the tests are correct, or if they're doing it wrong. | 11:02 | ||
o/ masak | |||
moritz | b: gist.github.com/1543671 | 11:03 | |
p6eval | b 1b7dd1: OUTPUT«[["a", "a", "a", "a"], ["b"], ["c", "c"], ["a", "a"], ["d"], ["e", "e", "e", "e"]][["a", "a", "a", "a"], ["b"], ["c", "c"], ["a", "a"], ["d"], ["e", "e", "e", "e"]](["a", "a", "a", "a"], ["b"], ["c", "c"], ["a", "a"], ["d"], ["e", "e", "e", "e"])(["a", "a", "a", "a"]… | ||
11:03
tokuhirom left
|
|||
moritz | kshannon: I can take a look, but I'll need quite some time to dig into it I fear | 11:03 | |
it could very well be that the tests rely on old raudo or pugs bugs | 11:04 | ||
kshannon | I'm just getting confused about eagerness/laziness. | ||
moritz | in most cases it shouldn't matter at all, because the test comparison consumes all the lists in the end | 11:05 | |
kshannon | That is essentially the only difference I made to them. | ||
moritz | pack2 contains @list = ();, pack1 doesn't | 11:06 | |
kshannon | pack1 has the my @list inside the while block instead. | ||
moritz | ah right | ||
that's much saner | 11:07 | ||
kshannon | and group1 just has a .eager on the internal gather, otherwise that code is never executed. | ||
(On my patched rakudo that is) | 11:08 | ||
which is why it loops forever | |||
moritz | that makes sense | 11:09 | |
I guess that conforms to the spec | |||
so feel free to push the modifications to roast | 11:10 | ||
I also want to change the tests a bit, because they use string comparsion for nested lists, which doesn't make sense | |||
dalek | ast: e469777 | moritz++ | integration/99problems-01-to-10.t: compare sensitive to array nesting level |
11:16 | |
moritz | kshannon: so yes, your changes to the tests are correct | 11:18 | |
kshannon | i.e. the old tests were wrong? | 11:22 | |
moritz | yes | 11:23 | |
11:28
whiteknight joined,
whiteknight is now known as Guest1122
11:32
Trashlord joined
|
|||
kshannon | perl6: my @list = 1, 2, 3; my @anon := [@list]; @list = (); say @anon.perl; | 11:37 | |
p6eval | niecza v13-29-gf9968eb: OUTPUT«[1, 2, 3].list» | ||
..pugs b927740: OUTPUT«[[1, 2, 3],]» | |||
..rakudo 2b6f86: OUTPUT«Array.new()» | |||
kshannon | perl6: my @list = 1, 2, 3; my @anon := [@list]; @anon.eager; @list = (); say @anon.perl; | ||
p6eval | niecza v13-29-gf9968eb: OUTPUT«[1, 2, 3].list» | ||
..pugs b927740: OUTPUT«[[1, 2, 3],]» | |||
..rakudo 2b6f86: OUTPUT«Array.new(1, 2, 3)» | |||
kshannon | b: my @list = 1, 2, 3; my @anon := [@list]; @list = (); say @anon.perl; | 11:38 | |
p6eval | b 1b7dd1: OUTPUT«[1, 2, 3]» | ||
kshannon | b: my @list = 1, 2, 3; my @anon := [@list]; @anon.eager; @list = (); say @anon.perl; | ||
p6eval | b 1b7dd1: OUTPUT«[1, 2, 3]» | ||
kshannon | The only reference I can find in the specs to circumfix:<[ ]> is S03:4484 which pretty clearly says the result is Array not list. | 11:43 | |
So I think niecza is wrong here. | 11:44 | ||
moritz | only if .list actually returns a List :-) | ||
kshannon | good point. | 11:46 | |
perl6: my @list = 1, 2, 3; my @anon := [@list]; @list = (); say @anon.WHAT; | |||
p6eval | pugs b927740: OUTPUT«Array::Const» | ||
..rakudo 2b6f86, niecza v13-29-gf9968eb: OUTPUT«Array()» | |||
kshannon | b: my @list = 1, 2, 3; my @anon := [@list]; @list = (); say @anon.WHAT; | ||
p6eval | b 1b7dd1: OUTPUT«Array()» | ||
kshannon | perl6: my @list = 1, 2, 3; my @anon := [@list]; @anon[1]; @list = (); say @anon.perl; | 11:52 | |
p6eval | niecza v13-29-gf9968eb: OUTPUT«[1, 2, 3].list» | ||
..pugs b927740: OUTPUT«[[1, 2, 3],]» | |||
..rakudo 2b6f86: OUTPUT«elements() not implemented in class 'Mu' in method REIFY at src/gen/CORE.setting:4833 in method REIFY at src/gen/CORE.setting:5036 in method reify at src/gen/CORE.setting:4257 in method reify at src/gen/CORE.setting:4257 in method reify at src/gen/CORE.se… | |||
kshannon | Say What??? | 11:53 | |
tadzik | rakudo: say .?WHAT | 11:55 | |
p6eval | rakudo 2b6f86: OUTPUT«===SORRY!===Cannot use .? on a non-identifier method call at line 1, near ""» | ||
tadzik | meh | ||
eiro | hello | 11:58 | |
is there some kind of "exhaust" command in perl6 ? | |||
my $line = $f.get; | 11:59 | ||
moritz | what would that do? | ||
11:59
fsergot joined
|
|||
eiro | my @lines = exhausts $f.get | 11:59 | |
fsergot | hi o/ | ||
eiro | something like this | ||
kkk | |||
moritz | eiro: my @lines = $f.liens; | ||
eiro | oops sory | ||
moritz | erm, lines | ||
eiro | moritz, sure but what i would like to have is a generic function to achieve this | 12:00 | |
(as it is a current pb to exhaust an iterator in an array | |||
moritz | eiro: I'm of two minds. My first opinion is "nice, and easy to do", and the second is "it would be much more perlish to expose the iterator as a lazy list int he first place" | 12:01 | |
sub exhaust($iter) { while $iter.get -> $x { $x } } # or so | 12:02 | ||
eiro | perhaps using the | operator ? | 12:03 | |
@lines = |$f.get ? | |||
time to eat. cya | |||
masak | hi fsergot | 12:05 | |
moritz | (), { $iter.get } ...^ !*.defined | 12:08 | |
geekosaur doesn't recall exactly, there was a unary = operator for that originally that got de-specced? | |||
colomon | geekosaur: yes | 12:09 | |
moritz | it was never specced to the generality that eiro++ wants, and it was never specced in a way that could have actually worked | 12:10 | |
12:12
sayu left
12:16
fridim_ joined,
bluescreen10 joined
|
|||
masak | in a way, it's comforting to see the discussion having moved on from "Perl 6 doesn't exist" to "Perl 6 isn't ready yet": news.ycombinator.com/item?id=3410637 | 12:17 | |
eiro | re | 12:18 | |
moritz, what the hell is that ? :) | |||
...^ ? | |||
12:19
kaare_ left,
kaare__ joined
|
|||
masak | eiro: seems to be a way to iterate $iter using the sequence operator. | 12:19 | |
eiro | infinite use of the iterator while the result isn't defined ( !*.defined ) | ||
:) | |||
masak | no, until the result isn't defined. | ||
eiro | (), is a part of the expression ? | ||
masak | for loops use "while" semantics, sequence ops use "until" semantics. | ||
eiro | masak, yep! my fault ? | 12:20 | |
masak | eiro: yes, that's just initializing the sequence with nothing. | ||
eiro | :) | ||
ok :) | |||
masak | eiro: need to syntactically fill that spot somehow. | ||
12:23
cognominal_ joined
12:25
fridim_ left
|
|||
eiro | just played with the moritz answer: perl6 don't need an exhaust command :) | 12:25 | |
is this lazy ? | 12:26 | ||
12:26
cognominal___ left
|
|||
masak | aye. | 12:26 | |
eiro | \o/ | ||
masak, so why do i waste time with perlude ???? | 12:27 | ||
masak | eiro: you tell me :P | ||
eiro | (i guess you don't know why ... i'm just a prick!) | ||
12:27
MayDaniel joined
|
|||
masak | in all seriousness, though, I think perlude looks interesting. | 12:27 | |
it's cool to see how far Perl 5 can be taken. | 12:28 | ||
eiro | well ... it is cool when you're stuck to perl5 ... but frankly: i would like to use perl6 | ||
that's a point | 12:29 | ||
dalek | ast: 252783d | (Solomon Foster)++ | S32-scalar/defined.t: Fudge for niecza. |
||
12:30
nanobyte joined
|
|||
masak | eiro: luckily, there are several very talented people in here who work every day to bring you more of Perl 6. | 12:30 | |
I'm more in awe of them than I can adequately express. | |||
eiro | masak, i know that ... i really would like to push perl6 in my new job | 12:31 | |
pastebin.com/AdcjUHnz | |||
i still don't understand the new map syntax | 12:32 | ||
colomon | you need braces around the .say | ||
lines('/etc/passwd')[0..4].map: { .say } | 12:33 | ||
eiro | oh! parentheses | ||
colomon | though I prefer lines('/etc/passwd')[0..4].map({ .say }) | ||
tadzik | or nothing at all: $a.map: *.say :) | ||
eiro | no .. doesn't work neither :( | ||
tadzik, !!! | 12:34 | ||
12:34
cognominal_ left
|
|||
tadzik | doesn't it? | 12:34 | |
also, define "doesn't work" | |||
eiro | argh! also failed | ||
moritz | you need to use lines(open('/etc/passwd')) or so | 12:35 | |
12:35
cognominal joined
|
|||
moritz | lines() just returns the lines of a string by default | 12:35 | |
nom: say "a\nb\nc\n".lines.perl | |||
p6eval | nom 2b6f86: OUTPUT«("a", "b", "c").list» | ||
eiro | moritz, no: see my lines implementation: it opens the file | 12:36 | |
.say for lines('/etc/passwd')[0..4]; | 12:38 | ||
(lines('/etc/passwd')[0..4]).map: *.say; | |||
(lines('/etc/passwd')[0..4]).map: ({.say}); | |||
(lines('/etc/passwd')[0..4]).map: {.say}; | |||
only the first line works | |||
(last rakudo star release) | 12:39 | ||
nom: open('/etc/passwd').lines.map: *.say | 12:40 | ||
p6eval | nom 2b6f86: OUTPUT«open is disallowed in safe mode in sub restricted at src/SAFE.setting:2 in sub open at src/SAFE.setting:5 in block <anon> at /tmp/0bC_1JL2dA:1 in <anon> at /tmp/0bC_1JL2dA:1» | ||
eiro | nom: .say for lines('/etc/passwd')[0..4]; | ||
(lines('/etc/passwd')[0..4]).map: *.say; | |||
(lines('/etc/passwd')[0..4]).map: ({.say}); | |||
p6eval | nom 2b6f86: OUTPUT«/etc/passwd» | ||
eiro | nom: thanks anyway | ||
p6eval | nom 2b6f86: OUTPUT«===SORRY!===CHECK FAILED:Undefined routine '&anyway' called (line 1)Undefined routine '&thanks' called (line 1)» | ||
colomon | eiro -- that likely means it's your lines implementation that's the problem, not map | ||
eiro | colomon, how to reach this conclusion ? | 12:41 | |
colomon, it's not mine: moritz's fault ;) | |||
12:42
flussence joined
|
|||
eiro | colomon, btw: i don't know how to fix things now | 12:42 | |
colomon | try say lines('/etc/passwd')[0..4].perl | ||
eiro | it's a list! | 12:43 | |
("root:x:0:0:root:/root:/bin/bash", "bin:x:1:1:bin:/bin:/bin/false", .... | 12:44 | ||
colomon | okay, I take it back -- it is map which is the problem! | ||
particularly, the problem is that map is lazy | |||
eager lines('/etc/passwd')[0..4].map({ .say }); # this works | 12:45 | ||
eiro | this is sooo tricky! | 12:46 | |
colomon | for lines('/etc/passwd')[0..4] { .say } # should work fine | 12:47 | |
Timbus | are you.. using map for its side effect??? | ||
colomon | Timbus: yes, that's why laziness was an issue | ||
eiro | Timbus, not at all | ||
Timbus | im calling the functional police | 12:48 | |
eiro | just: the for loop is so '60 | ||
Timbus | they arrive in reverse, sometimes before and sometimes after i call them | ||
eiro | \o/ | 12:49 | |
Timbus | depending on implementation | ||
eiro | Timbus++ | ||
12:50
tokuhirom joined
|
|||
masak | I think .map should be eager in that situation, due to being in sink context. | 12:52 | |
but Rakudo doesn't always do that right yet. | |||
eiro | ok ... bug ? | 12:53 | |
colomon | woah, perl 6 in 2011 #1 on hacker news! | ||
masak | Timbus is right, but only on a shallow syntactical level. &map and for are synonymous in Perl 6. | ||
colomon | but not yet in rakudo | 12:54 | |
Timbus | i think you should always only call map for its return tho, regardless. | 12:55 | |
colomon | and I for one agree pretty strongly with Timbus's instinct: use map when you're being functional, use for when you're being imperative. | ||
the language may not require it, but it will make your code clearer | 12:56 | ||
Timbus | if yuo want crazy side effecty stuff in your sinks, why not have a .for method | ||
masak | Timbus: I agree about map and lack of side effects. it's mostly a pragmatics thing. | 13:00 | |
Timbus | yey, im right | 13:07 | |
also it is new years here, right now | |||
i can tell from the explosions | |||
so, happy new year i guess? | |||
13:07
rindolf joined
|
|||
rindolf | Hi all. | 13:07 | |
colomon | happy new year! | 13:08 | |
rindolf | barzilay.org/misc/scribble-reader.pdf - I've mentioned this link before and it seems very complicated and idiosyncratic. | ||
Timbus | new years and im on irc :L | ||
rindolf | colomon: happy new year. | ||
Timbus | thanks colomon :> | ||
dalek | ecza: 824084a | (Solomon Foster)++ | t/spectest.data: Turn on S32-scalar/defined.t. |
13:14 | |
masak | Timbus: wait, where are you? .jp? | 13:15 | |
Timbus | au | 13:16 | |
learned my perl from damien conway :3 | |||
rindolf | Timbus: it's "Damian" - not "Damien" | 13:18 | |
Timbus: Damien is his evil twin. | |||
Timbus | yeah i knew that after i typed it | ||
rindolf | Timbus: ah. | 13:19 | |
masak | oh wow, a TheDamian disciple! o.O | 13:21 | |
Timbus | ha. yeah i got hooked on perl at monash university, even though it was just an elective class. | 13:22 | |
easiest high distinction i ever managed. left the exam over an hour early. not because im any good at the whole education thing, perl was just that good :3 | 13:23 | ||
kshannon | rindolf: I think it's very well thought out and a great idea... | 13:24 | |
as long as you accept the implied belief that SEXPR's are the one true way. | |||
rindolf | kshannon: you do? | 13:25 | |
kshannon: Eli claims that it's not SEXPR-specific. | |||
kshannon: anyway, I've started reading the syntax description by example, and didn't make a lot of progress, and I'm already close to giving up. | 13:26 | ||
He claims it's "simple" at the introduction. | |||
Maybe it's Simple like SOAP. | |||
13:27
Trashlord left
|
|||
rindolf | The indentation handling stuff there is weird. | 13:27 | |
dalek | ast: c63cd09 | (Solomon Foster)++ | S02-literals/misc-interpolation.t: Fudge for niecza. |
13:28 | |
ecza: 9625e2f | (Solomon Foster)++ | t/spectest.data: Turn on S02-literals/misc-interpolation.t. |
|||
13:43
Trashlord joined
13:44
muthu joined
|
|||
masak | I like the discussion in the reddit thread. | 13:48 | |
but this is a comment I don't know how to answer: news.ycombinator.com/item?id=3410852 | |||
13:49
muthu left
|
|||
masak | the kind of stability the commenter wants is perhaps Perl 6 implementation's weakest point, or at least Rakudo's. | 13:49 | |
maybe it's simply that the time hasn't been ripe for making any demands on feature stability. there's been too much flux to root out first. | 13:50 | ||
the worst part (for me) in the master->ng and b->nom transitions have been the silent, unnanounced regressions that are almost inevitable when making a wholesale switch of that kind. | 13:51 | ||
maybe the time for those is now coming to an end... but it's hard to tell. | |||
13:52
PacoAir joined
|
|||
moritz | unnanounced? | 13:52 | |
masak | hm, that should be "alpha->ng", I guess. | ||
moritz | yes, we've learned from that | 13:53 | |
masak | moritz: well, the bigger transitions have been announced, of course. but no-one said "don't use <->, because we're not implementing it in ng" | ||
I know this isn't done with malice; but it does make it harder to keep the app space stable, just like the commenter writes. | 13:54 | ||
I remember mberends reacting in Oslo 2009 to the fact that the policy for handling regressions was to fudge them with TODO markers. | 13:55 | ||
that's not a TODO, that's a regression! | 13:56 | ||
but I realize that taking regressions super-seriously is an attitude that has to be phased in, as Perl 6 and its implementations reach maturity. | 13:58 | ||
alpha: my @a = 1..3; for @a <-> $e { $e++ }; say @a.perl | |||
p6eval | alpha : OUTPUT«[2, 3, 4]» | ||
masak | b: my @a = 1..3; for @a <-> $e { $e++ }; say @a.perl | 13:59 | |
p6eval | b 1b7dd1: OUTPUT«===SORRY!===Missing block at line 22, near "; say @a.p"» | ||
masak | nom: my @a = 1..3; for @a <-> $e { $e++ }; say @a.perl | ||
p6eval | nom 2b6f86: OUTPUT«===SORRY!===Missing block at line 1, near "; say @a.p"» | ||
13:59
cedric joined
|
|||
cedric | Bonne année #perl6! | 13:59 | |
masak | pugs: my @a = 1..3; for @a <-> $e { $e++ }; say @a.perl | ||
p6eval | pugs b927740: OUTPUT«***  Unexpected ">" at /tmp/y9lV7ykWkf line 1, column 24» | ||
masak | niecza: my @a = 1..3; for @a <-> $e { $e++ }; say @a.perl | ||
p6eval | niecza v13-29-gf9968eb: OUTPUT«[2, 3, 4].list» | ||
masak | cedric: bonne année! | ||
cedric | I see something really strange in Parrot: the function utf8_iter_skip() is called *many* times with the *same* parameters | 14:01 | |
I added this trace to this function: fprintf(stderr, "0x%016lx %u\n", djb2((unsigned char *)str->strstart), (unsigned)i->charpos); | 14:02 | ||
where djb2() is a hash function for C strings | |||
then: perl6 S03-operators/basic-types.t 2>utf8_iter_skip.log | |||
"wc -l utf8_iter_skip.log" reports 87535 whereas "sort -u utf8_iter_skip.log | wc -l" reports 7524 only | 14:03 | ||
that means Rakudo/Parrot iters several times over the same C string… I'm wrong? | 14:04 | ||
masak | probably not. question is, why are you surprised? :) | 14:05 | |
aww, reddit commenter deleted his comment :/ | 14:07 | ||
s/reddit/HN/ | |||
14:10
rindolf left
|
|||
cedric | masak: I'm surprised because of the factor (10x) moreover this function is the top contributor regarding CPU time consumption. | 14:11 | |
masak | oh! | ||
I missed the 10x part. :/ | |||
cedric++ # finding this | 14:12 | ||
cedric is comparing utf8_iter_skip()'s backtraces | 14:20 | ||
kshannon | Is there any low level dump I can do in a running rakudo program to show the internals of a list without affecting it's current reification (i.e. no eagerness applied anywhere) | 14:27 | |
14:27
hundskatt left
|
|||
kshannon | rindolf: It could be applied to a non-SEXPR language, but most of the cleverness becomes a little useless... | 14:30 | |
14:30
cedric left
|
|||
kshannon | There are some good design principles he mentions that are worthwhile emulating. The balanced start/stop markers and allowing generic markers so that the normal ones become just literal text, but we've already got that here :) | 14:32 | |
tadzik | kshannon: I think __DUMP doesn't reify and all | ||
kshannon | Method '__DUMP' not found for invocant of class 'Array' | 14:34 | |
How do I call it? | |||
14:35
cooper left
|
|||
kshannon | I'm trying to track down the bug that causes this: | 14:36 | |
my @list = 1, 2, 3; my @anon := [@list]; @anon[1]; @list = (); say @anon.perl; | |||
nom: my @list = 1, 2, 3; my @anon := [@list]; @anon[1]; @list = (); say @anon.perl; | |||
p6eval | nom 2b6f86: OUTPUT«elements() not implemented in class 'Mu' in method REIFY at src/gen/CORE.setting:4833 in method REIFY at src/gen/CORE.setting:5036 in method reify at src/gen/CORE.setting:4257 in method reify at src/gen/CORE.setting:4257 in method reify at src/gen/CORE.setti… | ||
masak | huh. | 14:44 | |
tadzik | oh, it's just DUMP | 14:50 | |
nom: my @a = 1..5; say @a.DUMP | |||
p6eval | nom 2b6f86: OUTPUT«Array<2521208963817262333>(:items(Mu), :nextiter(ListIter<2521208963804634618>(:reified(▶Mu), :rest(RPA<2521208963804634604>(Array<2521208963804627698>(:items(RPA<2521208963804692200>(▶1, ▶2, ▶3, ▶4, ▶5)), :nextiter(▶Mu)))), :list(Array<2521208963817262333>))))»… | ||
14:52
sayu joined
|
|||
kshannon | I was pretty close to reimplementing that with a bit of Q:PIR... | 14:58 | |
My output syntax was even pretty close :) | 14:59 | ||
15:02
RobiX joined
15:04
replore_ left
15:06
rindolf joined
15:11
replore joined
15:12
RobiX left
15:16
replore left,
hundskatt joined
15:28
thou joined
15:32
replore joined
15:37
replore left
15:42
mj41 left
|
|||
eiro | ba | 15:43 | |
back | |||
masak, for and map aren't the same thing for me: for is a way to break chainability | 15:44 | ||
(or i have something to learn about perl6 for | |||
masak | eiro: for is *literally* syntactic sugar for &map in Perl 6. | ||
eiro | masak, for isn't a syntaxic suggar, it's a syntaxic conceptual error :) | 15:45 | |
masak | things like 'next', 'redo' and 'last' work in &map just as they do in a for loop. | ||
eiro | but i understand what you mean | ||
masak | eiro: I'm not talking about how things are according to philosophical mumbo-jumbo; I'm talking about how they are according to the spec. | ||
eiro | i get that | 15:46 | |
masak | by which I mean, you may opine that it's a syntactic conceptual error all you want; it *is* syntactic sugar, in the sense that the former is mechanically replaced by the latter behind the scenes. | 15:51 | |
colomon | (in theory) | 15:52 | |
masak | sure, conceptually. | ||
cheating is allowed as long as it's never discovered. :) | |||
colomon | no, I meant in current practice. ;) | 15:53 | |
masak | Rakudo does such a transformation, AFAIK. | 15:54 | |
colomon | nom: sub forever { gather loop { take 1 }; }; for forever -> $a { say $a } | 15:56 | |
p6eval | nom 2b6f86: OUTPUT«===SORRY!===Missing block at line 1, near ""» | ||
colomon | nom: sub forever { gather loop { take 1; }; }; for forever -> $a { say $a } | ||
p6eval | nom 2b6f86: OUTPUT«===SORRY!===Missing block at line 1, near ""» | ||
colomon | nom: sub forever() { gather { loop { take 1; }; }; }; for forever -> $a { say $a } | ||
p6eval | nom 2b6f86: OUTPUT«===SORRY!===Missing block at line 1, near ""» | ||
colomon | nom: sub forever() { gather { loop { take 1; }; }; }; for forever -> $a { say $a; } | ||
p6eval | nom 2b6f86: OUTPUT«===SORRY!===Missing block at line 1, near ""» | ||
colomon | :\ | ||
masak | colomon: need '()' after 'forever' | 15:58 | |
colomon | nom: sub forever() { gather { loop { take 1; }; }; }; for forever() -> $a { say $a; } | ||
p6eval | nom 2b6f86: OUTPUT«===SORRY!===Unable to parse blockoid, couldn't find final '}' at line 2» | ||
colomon | nom: sub forever() { gather { loop { take 1; }; }; }; for forever() -> $a { say $a; }; | ||
p6eval | nom 2b6f86: OUTPUT«===SORRY!===Unable to parse blockoid, couldn't find final '}' at line 2» | ||
colomon | dang it, it works fine locally | ||
masak | you have a strange character in 'say' | ||
colomon | nom: sub forever() { gather { loop { take 1; }; }; }; for forever() -> $a { say $a; }; | ||
there we go | |||
masak | success. | ||
p6eval | nom 2b6f86: OUTPUT«(timeout)» | ||
colomon | nom: sub forever() { gather { loop { take 1; }; }; }; forever().map( -> $a { say $a; })[^10]; | 15:59 | |
p6eval | nom 2b6f86: OUTPUT«1111111111» | ||
masak | nom: .say for gather loop { take 1 } | ||
p6eval | nom 2b6f86: OUTPUT«(timeout)» | ||
colomon | I guess that's not absolute proof that the implementations are different internally (modulo eagerness) but it seems suggestive | 16:00 | |
masak | shorter way of writing it :) | ||
16:05
Mowah left
16:07
mdxi joined
|
|||
fsergot | How can I check when the end of the program is? e.g. i want to do something at the end of the program but write this at the start. | 16:07 | |
tadzik | END {}? | 16:10 | |
nom: END { say 'end' }; say "not end" | |||
16:10
Mowah joined
|
|||
p6eval | nom 2b6f86: OUTPUT«not endend» | 16:10 | |
masak | END++ | 16:11 | |
fsergot: now tell us what problem it is you're trying to solve :) | |||
tadzik | hmm | ||
colomon | niecza: END { say 'end' }; say "not end" | ||
tadzik | that could serve as a poor man's DESTROY, maybe | ||
p6eval | niecza v13-29-gf9968eb: OUTPUT«not end» | ||
colomon | doh! | ||
fsergot | masak, this is what i want! thanks masak++ | ||
tadzik++ | 16:12 | ||
colomon++ | |||
thanks :) | |||
tadzik | class A { method new { END { say "freeing resources"; }; self.bless(*); } }; A.new; A.new; A.new; say "wololo"; | ||
nom: class A { method new { END { say "freeing resources"; }; self.bless(*); } }; A.new; A.new; A.new; say "wololo"; | |||
p6eval | nom 2b6f86: OUTPUT«wololofreeing resources» | ||
fsergot | theres no problem, i'm just playing p6 :) | ||
tadzik | meh | ||
masak | fsergot: so you just became curious if thereäs a mechanism to defer code execution to the end? :) | 16:13 | |
fsergot | yes | ||
masak | fsergot: you belong here :) | 16:16 | |
fsergot | thanks :) | ||
colomon | perl6: sub foo(:$x) { say $x; }; foo(:x) | 16:21 | |
p6eval | rakudo 2b6f86, niecza v13-29-gf9968eb: OUTPUT«Bool::True» | ||
..pugs b927740: OUTPUT«1» | |||
16:29
thou left
16:30
mj41 joined
|
|||
colomon | moritz: ping? | 16:36 | |
16:41
nanobyte left
|
|||
tadzik | a challenge appears: www.reddit.com/r/programming/commen...?context=3 | 16:44 | |
16:46
Trashlord left
|
|||
masak | I *think* this is a faithful translation: | 16:50 | |
nom: sub sieve(@xs) { my $x = pop @xs.list; sieve grep { $_ %% $x }, @xs }; .say for sieve 2..* | |||
p6eval | nom 2b6f86: OUTPUT«No applicable candidates found to dispatch to for 'Real'. Available candidates are::(Mu $v, Mu %_) in method Real at src/gen/CORE.setting:656 in sub infix:<%%> at src/gen/CORE.setting:2192 in block <anon> at /tmp/TqSoTCAC2v:1 in method ACCEPTS at src/gen/COR… | ||
masak | nom: sub sieve(@xs) { my $x = pop @xs; sieve grep { $_ %% $x }, @xs }; .say for sieve 2..* | ||
p6eval | nom 2b6f86: OUTPUT«Method 'pop' not found for invocant of class 'Range' in sub pop at src/gen/CORE.setting:4901 in sub sieve at /tmp/rh_Z1h6mwT:1 in block <anon> at /tmp/rh_Z1h6mwT:1 in <anon> at /tmp/rh_Z1h6mwT:1» | ||
masak | nom: sub sieve(@xs) { my $x = pop @xs; sieve grep { $_ %% $x }, @xs }; .say for sieve [2..*] | ||
p6eval | nom 2b6f86: OUTPUT«No applicable candidates found to dispatch to for 'Real'. Available candidates are::(Mu $v, Mu %_) in method Real at src/gen/CORE.setting:656 in sub infix:<%%> at src/gen/CORE.setting:2192 in block <anon> at /tmp/L8W86nB_AJ:1 in method ACCEPTS at src/gen/COR… | ||
masak | niecza: sub sieve(@xs) { my $x = pop @xs; sieve grep { $_ %% $x }, @xs }; .say for sieve 2..* | ||
p6eval | niecza v13-29-gf9968eb: OUTPUT«Unhandled exception: Unable to resolve method pop in class Range at <unknown> line 0 (ExitRunloop @ 0)  at /tmp/a4Xmcmugiz line 0 (sieve @ 0)  at /tmp/a4Xmcmugiz line 1 (mainline @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 2615 (ANON @ 2)  … | ||
masak | can't pop a Range. too bad. :) | 16:51 | |
niecza: sub sieve(@xs) { my $x = pop @xs; sieve grep { $_ %% $x }, @xs }; .say for sieve (2..100).list | |||
p6eval | niecza v13-29-gf9968eb: OUTPUT«(timeout)» | ||
masak | oh, I forgot... | ||
colomon | should fiddle:x("a"):y("b")() be a legal function call? | ||
masak | niecza: sub sieve(@xs) { my $x = pop @xs; $x, sieve grep { $_ %% $x }, @xs }; .say for sieve (2..100).list | ||
p6eval | niecza v13-29-gf9968eb: OUTPUT«(timeout)» | 16:52 | |
masak | hrm :) | ||
colomon is doing a complete overhaul on S03-operators/adverbial-modifiers.t | |||
masak | niecza: sub sieve(@x [$x, *@xs]) { $x, sieve grep { $_ %% $x }, @xs }; .say for sieve (2..100).list | 16:53 | |
p6eval | niecza v13-29-gf9968eb: OUTPUT«===SORRY!===Action method post_constraint not yet implemented at /tmp/neBOxW9RMH line 1:------> sub sieve(@x [$x, *@xs]⏏) { $x, sieve grep { $_ %% $x }, @xs }; Unhandled exception: Unable to resolve method sorry in… | ||
masak | nom: sub sieve(@x [$x, *@xs]) { $x, sieve grep { $_ %% $x }, @xs }; .say for sieve (2..100).list | ||
p6eval | nom 2b6f86: OUTPUT«Not enough positional parameters passed; got 0 but expected at least 1 in sub-signature of parameter @x in sub sieve at /tmp/W_sJEbJ_B0:1 in sub sieve at /tmp/W_sJEbJ_B0:1 in sub sieve at /tmp/W_sJEbJ_B0:1 in sub sieve at /tmp/W_sJEbJ_B0:1 in sub sieve at /t… | ||
masak gives up | 16:54 | ||
colomon | niecza: sub fiddle(:$x,:$y){$x~$y}; fiddle:x("a"):y("b")(); | 16:55 | |
p6eval | niecza v13-29-gf9968eb: OUTPUT«===SORRY!===Undeclared routine: 'fiddle:x("a"):y("b")' used at line 1Potential difficulties: &fiddle is declared but not used at /tmp/VUmLps23jm line 1:------> sub fiddle⏏(:$x,:$y){$x~$y}; fiddle:x("a"):y("b")()… | ||
colomon | std: sub fiddle(:$x,:$y){$x~$y}; fiddle:x("a"):y("b")(); | ||
p6eval | std dc62e1d: OUTPUT«===SORRY!===Undeclared routine: 'fiddle:x("a"):y("b")' used at line 1Check failedFAILED 00:01 125m» | ||
colomon | okay, I'm taking that as a no | 16:56 | |
16:57
replore joined,
replore left
|
|||
kshannon | nom: multi sub sieve(@x []) { () }; multi sub sieve(@x [$x, *@xs]) { $x, sieve grep { $_ %% $x }, @xs }; .say for sieve (2..600).list | 16:58 | |
p6eval | nom 2b6f86: OUTPUT«248163264128256512» | ||
kshannon | Was that supposed to be the sieve of eratosthenes | 16:59 | |
nom: multi sub sieve(@x []) { () }; multi sub sieve(@x [$x, *@xs]) { $x, sieve grep { $_ !%% $x }, @xs }; .say for sieve (2..600).list | 17:00 | ||
p6eval | nom 2b6f86: OUTPUT«2357111317192329313741434753596167717379838997101103107109113127131137139149151157163167173179181191193197199211223227229233239241251257263269271277281283293307311313317331337347349353359367xE2x90 | ||
kshannon | There you go... | ||
masak | kshannon++ | ||
tadzik | goo.gl/H8LHT | 17:01 | |
masak | nom: multi sub sieve(@x []) { () }; multi sub sieve(@x [$x, *@xs]) { $x, sieve grep { $_ !%% $x }, @xs }; .say for sieve (2..*).list | ||
p6eval | nom 2b6f86: ( no output ) | ||
masak | aww :) | 17:02 | |
tadzik | replied on reddit, kshannon++ | 17:03 | |
masak | nom: multi sieve([]) {}; multi sieve(@x [$x, *@xs]) { $x, sieve @xs.grep: { $_ % $x } }; .say for sieve (2..600).list | ||
p6eval | nom 2b6f86: OUTPUT«2357111317192329313741434753596167717379838997101103107109113127131137139149151157163167173179181191193197199211223227229233239241251257263269271277281283293307311313317331337347349353359367xE2x90 | ||
masak | nom: multi sieve([]) {}; multi sieve(@x [$x, *@xs]) { $x, sieve @xs.grep: * % $x }; .say for sieve (2..600).list | ||
p6eval | nom 2b6f86: OUTPUT«2357111317192329313741434753596167717379838997101103107109113127131137139149151157163167173179181191193197199211223227229233239241251257263269271277281283293307311313317331337347349353359367xE2x90 | ||
masak | nice combination of a number of Perl 6 features there. :) | 17:04 | |
17:04
PacoAir left
|
|||
masak | looking forward to it working on 2..* -- that seems to be the only thing Haskell has over Rakudo at this point :) | 17:04 | |
kshannon | Ummm, how about a lot less crashes :) | 17:05 | |
masak | kshannon: be gald you weren't around three years ago :> | ||
kshannon | *lol* | ||
tadzik | :D | ||
kshannon | I was, but I didn't stick around... | 17:06 | |
17:06
PacoAir joined
|
|||
masak | tadzik: you *will* get comments on that magical number 600 unles syou pre-empt them yourself... | 17:07 | |
s/unles syou/unless you/ | |||
tadzik | let the interest appear :) | 17:08 | |
kshannon | Is there any design docs on how the rakudo List/ListIter/MapIter internals are *SUPPOSED* to work. | ||
tadzik | on the sad part, they probably won't run the code anyway | ||
kshannon | git blame mainly points the finger at pmichaud | 17:09 | |
17:09
tokuhirom left
17:10
tokuhirom joined
17:14
tokuhirom left
|
|||
masak | kshannon: pmichaud meant to update S07 before he suddenly got very little online time... | 17:15 | |
17:16
am0c joined
17:19
replore joined,
replore left
17:22
Trashlord joined
|
|||
colomon | std: sub fiddle(:$x,:$y){$x~$y}; fiddle :x("a")(:y("b")); | 17:30 | |
p6eval | std dc62e1d: OUTPUT«ok 00:01 125m» | ||
colomon | niecza: sub fiddle(:$x,:$y){$x~$y}; fiddle :x("a")(:y("b")); | 17:31 | |
p6eval | niecza v13-29-gf9968eb: OUTPUT«Unhandled exception: Unable to resolve method postcircumfix:<( )> in class Pair at /tmp/iGn1eOMX1z line 1 (mainline @ 1)  at /home/p6eval/niecza/lib/CORE.setting line 2615 (ANON @ 2)  at /home/p6eval/niecza/lib/CORE.setting line 2616 (module-CORE @ 6… | ||
sorear | good * #perl6 | 17:34 | |
colomon | o/ | ||
tadzik | o/ | ||
17:36
awoodland joined
|
|||
masak | o/ | 17:36 | |
17:40
SHODAN joined
|
|||
fsergot | o/ | 17:40 | |
17:40
replore joined,
replore left
|
|||
TimToady | moritz: your second spec paragraph overstates the case; see S06:1012 | 17:43 | |
phenny | TimToady: 30 Dec 09:22Z <frettled> tell TimToady The presentation paper for the exploit against PHP, Java etc. provides the information necessary for performing a successful test against a hash implementation :) (And a merry time-of-year to you) events.ccc.de/congress/2011/Fahrpla...tforms.pdf | ||
17:44
JimmyZ joined
|
|||
fsergot | tadzik how it goes with Bailador? :) | 17:45 | |
17:48
drbean left
|
|||
kshannon | re S07: Iterators and Laziness - "The programmer must not rely on circular side effects ..." | 17:51 | |
That's fine, but rakudo shouldn't die if you fiddle in the middle as it were. | |||
masak | nod | 17:52 | |
17:52
snearch joined
17:53
drbean joined
|
|||
kshannon | nom: my @list = 1, 2, 3; my @anon := [@list]; say @anon[1]; @list = (); say @anon.perl | 17:53 | |
p6eval | nom 2b6f86: OUTPUT«2elements() not implemented in class 'Mu' in method REIFY at src/gen/CORE.setting:4833 in method REIFY at src/gen/CORE.setting:5036 in method reify at src/gen/CORE.setting:4257 in method reify at src/gen/CORE.setting:4257 in method reify at src/gen/CORE.set… | ||
ruoso kinda lost in how to understand why my sudoku solver keeps segfaulting... gist.github.com/1538015 (now with the initial sudoku game inlined, no input required)... | 17:54 | ||
kshannon | I've traced that down to the @anon !nextiter still pointing to the @list which has been cleared, but holding onto the '3' as the rest... | 17:55 | |
I think something else needs doing during Array.STORE | |||
ruoso: It's a memory leak in Rakudo. | 17:56 | ||
I can run it for a long time if I add lots of swap... | |||
I just didn't have the patience to run it long enough to get an answer :) | 17:57 | ||
masak | ruoso: a good guess is that it's the array-indexing on junctions that's causing the segfault. try rewriting it without those. | ||
kshannon | As far as I can tell, the leak isn't is your perl code. | ||
I don't get segfaults, just 'Killed' due to out of memory. | 17:58 | ||
ruoso trying to run without calling the "cleanup-impossible-values" part | 17:59 | ||
hmm... maximum recursion depth exceeded | |||
kshannon | I can even watch the 'free -m' and 'top' and see it chew it all up until there's none left... | ||
ruoso lunch & | 18:00 | ||
18:01
GlitchMr joined,
replore joined,
replore left
18:06
drbean left
18:12
drbean joined
|
|||
TimToady | moritz: also, splitting the ** quantiifer into ** and %/%% might be worth a mention | 18:15 | |
masak | +1 | 18:17 | |
18:22
replore joined
18:23
replore left
|
|||
TimToady | new functions/operators: val, gcm, lcd, categorize | 18:25 | |
val is perhaps the most important of those | |||
masak | we should have &permutations and &combinations in CORE, too -- just so we don't have to reinvent them each time in RC solutions :P | 18:29 | |
alternatively, a "closure" operator (in the sense of "transitive closure") | |||
I suppose building such an operator would be easier if we had object hashes... | 18:30 | ||
sorear | Should END ever be called in module compilation mode? | ||
masak | sorear: no...? | 18:31 | |
sorear: it doesn't in Perl 5. | |||
sorear: and S04 says "at run time, ALAP" | |||
sorear | masak: I mean like if there's a BEGIN exit 0 in a module, do the modules' ENDs get called? | 18:32 | |
I guess END should only be called if compilation finishes successfully? | |||
so that there is a "run time" | |||
masak tests with Perl 5 | |||
$ perl -E 'BEGIN { exit 0 } END { say "OH HAI" }' | 18:33 | ||
prints nothing. | |||
18:35
JimmyZ left
|
|||
sorear | other way around :D | 18:35 | |
in that example, the END is never even parsed. | |||
masak | $ perl -E 'END { say "OH HAI" } BEGIN { exit 0 }' | ||
OH HAI | |||
sorear notes that BEGIN { say "hi" }; syntax error elicits a hi | |||
masak | guess there's your answer, then. | ||
sorear | things are fundamentally different in niecza because niecza supports caching of precompiled modules | 18:36 | |
18:36
thou joined
|
|||
sorear | so the CHECK and INIT times can, in principle, be separated by a lot | 18:36 | |
I'm setting it up now so that ENDs are called whenever the context they exist in is unloaded or exits | 18:37 | ||
which I think best fits the spirit of "as late as possible" | |||
kshannon | rouso: pastebin.com/MkM1c0MM\ | 18:38 | |
It ran to completion but it needed a little over 15Gb of Virtual memory | 18:39 | ||
18:40
cognominal left
|
|||
dalek | ecza: f166585 | sorear++ | lib/Kernel.cs: Implement END running END blocks are run whenever the container is unloaded, or at process exit. This means you may see END blocks running during module precompilation; I call this a feature (suppose you're using temp files in BEGIN-time code). |
18:41 | |
18:43
pothos_ joined,
Lothar left,
PZt left
18:44
replore joined,
replore left,
cxreg left,
fhelmberger left,
ashleydev left,
kthakore left,
Exodist left,
mattp_ left
18:45
sivoais left,
pothos left,
TimToady left,
athomason left,
pothos_ is now known as pothos,
am0c left,
sorear left,
Exodist joined,
TimToady joined
18:46
mattp_ joined,
cxreg joined,
Mowah left,
sorear joined,
kthakore joined,
ashleydev joined,
Lothar joined,
proller joined,
sivoais joined,
athomason joined
18:47
fhelmberger joined,
Mowah joined
18:48
am0c joined
18:50
drbean left
18:51
cognominal joined
18:54
fsergot left
18:57
drbean joined
18:59
mj41 left,
awoodland left
19:00
am0c left,
awoodland joined
|
|||
kshannon | perl6: proto sub foo(Bool $) { * }; multi sub foo(True) { say "Yes" }; multi sub foo(False) { say "No" }; foo(True); foo(False); | 19:01 | |
p6eval | pugs b927740: OUTPUT«***  Unexpected "Bool" expecting "|", ":", "*", parameter name or ")" at /tmp/8K4QncKUec line 1, column 15» | ||
..rakudo 2b6f86: OUTPUT«No applicable candidates found to dispatch to for 'foo'. Available candidates are::(Bool):(Bool) in block <anon> at /tmp/f64aT3txWh:1 in <anon> at /tmp/f64aT3txWh:1» | |||
..niecza v13-29-gf9968eb: OUTPUT«===SORRY!===Lexical True is not a package at /tmp/bd48KTwb3_ line 1:------> ub foo(Bool $) { * }; multi sub foo(True⏏) { say "Yes" }; multi sub foo(False) { Lexical False is not a package at /tmp/bd48KTwb3_ line 1:… | |||
19:03
alvis left
|
|||
kshannon | TimToady: Does it make sense to you that the True in 'multi sub foo(True) { ... }' should really mean 'Bool where { $_ === True }' rather than 'Bool where True' | 19:03 | |
19:04
Khisanth left
19:05
replore joined
|
|||
TimToady | well, True is an enum, which functions both as a constant and as a subset type with one value, so it comes out to the same thing really | 19:07 | |
19:08
Lothar left,
ingy left,
ingy joined,
kcwu left,
kcwu joined
|
|||
TimToady | note that True is defined, so should not be matching as a type object | 19:09 | |
19:09
replore left
|
|||
TimToady | oh, wait, I see what's going on there | 19:10 | |
smartmatching treats Boolean values specially | 19:11 | ||
where True always succeeds, and where False always fails | |||
kshannon | exactly | 19:12 | |
TimToady | nom: say True === True | 19:13 | |
p6eval | nom 2b6f86: OUTPUT«Bool::True» | ||
TimToady | nom: my Bool $x = True; say $x === True | ||
p6eval | nom 2b6f86: OUTPUT«Bool::True» | ||
masak | nom: sub foo(True) { say "OH HAI" }; foo(False) | ||
p6eval | nom 2b6f86: OUTPUT«Nominal type check failed for parameter ''; expected Bool but got Bool instead in sub foo at /tmp/8CGkpZfxJg:1 in block <anon> at /tmp/8CGkpZfxJg:1 in <anon> at /tmp/8CGkpZfxJg:1» | ||
masak | o.O | ||
masak submits rakudobug | |||
kshannon | Although I'm wondering for the more general case as well. Where the literal value is not smart matched against but compared either === or eqv. | 19:14 | |
TimToady | well, for a subset type with multiple values, === won't work | ||
kshannon | But that's still a type. | 19:15 | |
Or is there some more hand wavy stuff I haven't internalized which says there's no real difference between types and values... | 19:16 | ||
TimToady | well, they're definitely different to :D/:U | ||
kshannon | Hmmm, alright I can accept that. | 19:17 | |
TimToady | in fact, subset types are how we express "Just" types in p6 | ||
perl6: subset JustInt of Int where Any:D; my $JustInt $x = Int; | 19:19 | ||
p6eval | rakudo 2b6f86: OUTPUT«===SORRY!===Confused at line 1, near "my $JustIn"» | ||
..pugs b927740: OUTPUT«***  Unexpected "$x" expecting "?", "!", trait, "=", infix assignment or operator at /tmp/kCQ4T2GWhj line 1, column 48» | |||
..niecza v13-32-gf166585: OUTPUT«===SORRY!===Two terms in a row at /tmp/34ZtLw2lUF line 1:------> JustInt of Int where Any:D; my $JustInt ⏏$x = Int;Parse failed» | |||
19:19
Khisanth joined,
proller left
|
|||
TimToady | perl6: subset JustInt of Int where Any:D; my JustInt $x = Int; | 19:19 | |
p6eval | pugs b927740: ( no output ) | ||
..rakudo 2b6f86: OUTPUT«===SORRY!===CHECK FAILED:Undefined routine '&Any:D' called (line 1)» | |||
..niecza v13-32-gf166585: OUTPUT«Potential difficulties: $x is declared but not used at /tmp/q85oQrwYlC line 1:------> JustInt of Int where Any:D; my JustInt ⏏$x = Int;» | |||
TimToady | heh, widespread disbelief :) | 19:20 | |
kshannon | hehe | ||
TimToady | perl6: say Any:D.WHAT | 19:21 | |
p6eval | pugs b927740: OUTPUT«*** No such subroutine: "&D" at /tmp/bhDHqoba8q line 1, column 9 - line 2, column 1» | ||
..rakudo 2b6f86: OUTPUT«===SORRY!===CHECK FAILED:Undefined routine '&Any:D' called (line 1)» | |||
..niecza v13-32-gf166585: OUTPUT«Any()» | |||
masak | niecza: sub foo(True) { say "OH HAI" }; foo(False) | ||
p6eval | niecza v13-32-gf166585: OUTPUT«===SORRY!===Lexical True is not a package at /tmp/dLBxrbd0HD line 1:------> sub foo(True⏏) { say "OH HAI" }; foo(False)Unhandled exception: Check failed at /home/p6eval/niecza/boot/lib/CORE.setting line 919 (die… | ||
masak | niecza: sub foo(1) { say "OH HAI" }; foo(1) | ||
p6eval | niecza v13-32-gf166585: OUTPUT«Use of uninitialized value in string context at /home/p6eval/niecza/boot/lib/CORE.setting line 806 (warn @ 2)  at /home/p6eval/niecza/boot/lib/CORE.setting line 170 (Mu.Str @ 9)  at <unknown> line 0 (ExitRunloop @ 0)  at /home/p6eval/niecza/src/nie… | ||
kshannon | Is a subset type still possibly :T | 19:22 | |
or is :T gone already... :) | 19:23 | ||
TimToady | may not be necessary if we continue to move Failure out of Any | ||
19:23
rindolf left
|
|||
TimToady | Failure seems to be turning into a conceptual type that is allowed to violate return types | 19:24 | |
that is, although it is not a bottom type, it can function as one for returning values that aren't valid | 19:25 | ||
19:25
awoodland left
|
|||
TimToady | it is likely that Inf and NaN may turn into conceptual types as well, in order to emulate those concepts for representations that do not support them directly, as Num does under IEEE | 19:26 | |
19:26
replore joined,
replore left
|
|||
dalek | ast: 868ae08 | (Solomon Foster)++ | S03-operators/adverbial-modifiers.t: Complete overhaul -- make tests one liners, regroup somewhat, and eliminate tests which are illegal according to std. |
19:27 | |
ecza: a211fbc | (Solomon Foster)++ | t/spectest.data: Turn on S03-operators/adverbial-modifiers.t. |
19:32 | ||
colomon | niecza: END { say 'end' }; say "not end" | ||
p6eval | niecza v13-32-gf166585: OUTPUT«not endend» | ||
colomon | sorear++ | ||
kshannon | phenny: tell rouso that I made a small change to the sudoku cleanup-impossible-values ( gist.github.com/1544907 ) but it still needed 15GB to run to completion even if it completed in about half the output lines. | 19:35 | |
phenny | kshannon: I'll pass that on when rouso is around. | ||
19:35
thou_ joined,
Moukeddar joined
19:36
Lothar joined
19:38
awoodland joined
|
|||
ruoso | finally... I've catch the segfault on the debug | 19:47 | |
19:48
replore joined
|
|||
ruoso | gist.github.com/1545127 | 19:48 | |
19:48
replore left
|
|||
kshannon | I wonder what's different between your setup and mine. | 19:49 | |
colomon | sorear: t/spec/S06-multi/type-based.t .. Unhandled exception: Unable to resolve method ast in class Any # internal p6 grammar actions error? no .ast in the .t file... | 19:50 | |
ruoso | kshannon: I'm not sure your change makes any difference | ||
because it simply will run one extra time if there is a solve, but in the second solve there won't be anything new | 19:52 | ||
kshannon | Without it it sometimes chooses to put two of the same number in a row or column or grid | 19:53 | |
19:53
packetknife joined
|
|||
kshannon | I don't think it will ever get to a solution with that, but I did see it going down a long (i.e. about 5 levels and about 40 chooses) blind alley. | 19:55 | |
19:55
fsergot joined
|
|||
ruoso | hmm... I guess you're right... solving something down the path may solve something in the beggining of the array... | 19:57 | |
sorear | colomon: yes, internal error. (Look at the stack trace) | 19:58 | |
dalek | ast: 6c5c1dd | (Solomon Foster)++ | S03-operators/autoincrement.t: Fudge for niecza. |
20:00 | |
ecza: 44e2a2a | (Solomon Foster)++ | t/spectest.data: Turn on S03-operators/autoincrement.t. |
20:01 | ||
20:02
cognominal left,
cognominal joined
|
|||
kshannon | phenny: tell kshannon he spelt ruoso's nick wrong... | 20:03 | |
phenny | You can tell yourself that. | ||
ruoso | heh... | 20:04 | |
kshannon: but... did the solver ended in your setup? | 20:06 | ||
kshannon | I'm tempted to change my nick just so phenny can deliver the mis-addreesed message. Where I live physically might be a pigsty, but I like my virtual spaces clean... | ||
yes. both with and wihtout my patch - as long as I provided a little over 15Gb of virtual memory for it to use. | 20:08 | ||
20:09
replore joined,
replore left
|
|||
kshannon | Before I added the extra swap space it would run until all virtual memory was used up and then be killed by the OS. | 20:11 | |
20:11
kshannon is now known as rouso
|
|||
rouso | hello phenny | 20:11 | |
phenny | Hey rouso! | ||
rouso: 07 May 19:24Z <BrowserUk> tell rouso please no with the cooroutines! They are cooperative. One uncooperative collaborator and everything hangs. The do not scale; cannot make use of multiple cores; require endless tuning for every small change. The are a dead technology--if you experienced Windows3 you know what I mean. | |||
rouso: 07 May 19:29Z <BrowserUk> tell rouso Same thing for green threads. Don't expect implementations to write their own in-process schedulers and do anything like a good job in the first 5 tries. With at least 6-18 months between iterations. They also do not scale across multiple cores/processors. (I can buy a 48 cores system from AMD for $16,000 today). 64 cores next year. Beyond? | 20:12 | ||
rouso: 07 May 19:31Z <BrowserUk> tell rouso Same thing for green threads. Don't expect implementations to write their own in-process schedulers and do anything like a good job in the first 5 tries. With at least 6-18 months between iterations. They also do not scale across multiple cores/processors. (I can buy a 48 cores system from AMD for $16,000 today). 64 cores next year. Beyond? | |||
rouso: 19:35Z <kshannon> tell rouso that I made a small change to the sudoku cleanup-impossible-values ( gist.github.com/1544907 ) but it still needed 15GB to run to completion even if it completed in about half the output lines. | |||
20:12
rouso is now known as kshannon
|
|||
kshannon | I see I'm not the only one who's misspelt it... | 20:12 | |
sorear | o/ | 20:13 | |
kshannon | \o | ||
masak | hello phenny | 20:15 | |
phenny | Hey masak! | ||
masak | \o/ | ||
colomon | nom: 'theXbigXbang'.split(/X/, -1) | ||
p6eval | nom 2b6f86: ( no output ) | 20:16 | |
colomon | nom: 'theXbigXbang'.split(/X/, -1).perl.sat | ||
p6eval | nom 2b6f86: OUTPUT«Method 'sat' not found for invocant of class 'Str' in block <anon> at /tmp/91Ay09UWmj:1 in <anon> at /tmp/91Ay09UWmj:1» | ||
ruoso | hah... may 07? | ||
colomon | nom: 'theXbigXbang'.split(/X/, -1).perl.say | ||
p6eval | nom 2b6f86: OUTPUT«().list» | ||
colomon | niecza: 'theXbigXbang'.split(/X/, -1).perl.say | 20:18 | |
p6eval | niecza v13-32-gf166585: OUTPUT«["theXbigXbang"].list» | ||
colomon | ah, right | ||
20:23
guest_ left
|
|||
sorear | ruoso: May 7th... of which year? | 20:25 | |
obviously written before the 48 core MacBooks were released | 20:26 | ||
20:30
replore joined,
replore left
20:35
bluescreen10 left
20:36
Moukeddar left
20:43
drbean left
20:46
GlitchMr is now known as PolakMr
20:48
bluescreen10 joined
20:49
drbean joined
20:51
replore joined
20:52
replore left
20:56
cooper joined,
cooper left,
cooper joined
|
|||
masak .oO( but 47 cores go unused because I mostly use it to check my mail ) | 21:02 | ||
21:05
drbean left
21:11
drbean joined
21:13
replore joined,
replore left
21:19
thou left
21:20
mikemol left
21:22
Lilpid left
|
|||
colomon | woah, lots of fails in the niecza spectest! | 21:25 | |
21:26
snearch left
|
|||
sorear | wah? | 21:28 | |
21:28
PZt joined
|
|||
sorear | what'd I just break? | 21:28 | |
probably sig parsing | |||
colomon: what's a failing file? | 21:29 | ||
21:30
Trashlord left
|
|||
colomon | pick.t | 21:30 | |
Unhandled exception: No candidates for dispatch to pick; candidates are: | 21:31 | ||
with no list following | |||
sorear | ick | ||
colomon | looks like that's happening on the first .pick | ||
I notice it's a multi method. | |||
sorear | right. | 21:33 | |
21:34
replore joined,
replore left
|
|||
sorear | I think I see the problem. | 21:36 | |
I wish git wouldn't change the modtime on every single file across a pull | 21:38 | ||
it really confuses vim | |||
dalek | ecza: 412ed92 | sorear++ | lib/Kernel.cs: Ignore optional parameters when computing min arity in new-MMD, colomon++ |
21:39 | |
sorear | 5.pick works now | ||
21:43
moritz left,
moritz joined
21:44
mikemol joined
21:46
fsergot left
21:52
REPLeffect left
21:54
fsergot joined
21:55
fsergot left,
replore joined
21:56
replore left
22:05
drbean left
22:08
x3nU joined
|
|||
colomon | sorear++ | 22:11 | |
22:12
drbean joined
22:13
PolakMr is now known as GlitchMr
22:17
PacoAir left
22:22
mj41 joined
22:45
bluescreen10 left
22:46
GlitchMr left
22:52
Trashlord joined
|
|||
masak | I feel like my living room is the eye of a storm of tons of pyrotechnics. | 22:54 | |
22:55
sayu left
|
|||
flussence | free rave lighting! | 22:56 | |
masak | glad I didn't go to bed and try to sleep ;) | 22:57 | |
22:57
drbean left
|
|||
masak | I think Samoa moved one day ahead just to get all these fireworks over with and move on with their lives. | 22:58 | |
oh well, | |||
happy new year, people o/ | |||
flussence | every end of year manages to completely ruin my sleep cycle. I've been doing 4pm-7am days for a week and I'll have to fix it soon :( | 22:59 | |
masak | here's to a prosperous 2012 for Perl 6! | ||
masak raises glass | |||
kshannon | *clink* | ||
flussence | o/ | ||
masak | man, you weren't kidding about that rave lighting. | 23:00 | |
23:02
drbean joined
23:03
Chillance joined
|
|||
Woodi | happy and aver better year for all :) | 23:03 | |
masak | \o/ | 23:05 | |
wanna see who finds the year's first rakudobug? :D | |||
sorear | o/ masak | 23:06 | |
masak | \o | ||
sorear is still on new year's eave :D | |||
23:06
x3nU left
|
|||
sorear | if it gets too bright I'll board up my windows or something. | 23:06 | |
masak .oO( "I ain't been droppin' no eaves!" ) | |||
23:07
x3nU joined
|
|||
masak | sorear: I was a bit surprised that Niecza doesn't do ':(5)' -> ':(Int where { $_ ~~ 5 })' yet. | 23:07 | |
'course, it's just sugar, possible to live without... | 23:09 | ||
23:13
bkolera joined
|
|||
kshannon | nom: sub fireworks($len) { eval '"' ~ (32 xx 32, 10017..10059).roll($len).map({ .fmt("\\x[%x]") }).join ~ '"'; }; say fireworks(70); | 23:16 | |
p6eval | nom 2b6f86: OUTPUT« ❉✵✾✿✽ ✶ ✸✷ ❋❋ ✴ ✭✢ ✾ ❆✾ ✥ ✥✸ ❈ ✫✶✩✿❊ ✪ ✢❁✴✼❆ ✳❄✸✼✣ ❇❇ ❅✺ ✹✮❄❇❆» | ||
kshannon | Of course, it really needs some color... | 23:17 | |
sorear | masak: niecza doesn't do :() or "where" either :p | ||
kshannon | nom: sub fireworks($len) { (32 xx 32, 10017..10059).roll($len).map(&chr).join }; say fireworks(70); | 23:20 | |
p6eval | nom 2b6f86: OUTPUT«✱ ❃✬ ✤✬ ✫ ✮❅ ✤✷❅ ✵✩❄ ❀ ✵✵ ❆ ❆ ❇✷✪✦ ✿ ✿ ✱✨✼✹ ❃❊✻ ✤ ✼✴ ✺ » | ||
masak | kshannon: pretty :) | 23:23 | |
nom: say (.chr for (32 xx 32, 10017..10059).roll(70)).join | 23:25 | ||
p6eval | nom 2b6f86: OUTPUT«✸✭✯✺ ❁ ✼✰ ❅ ✴ ✹✰✯❊❈✮ ✾ ✧ ❋ ✣ ✱✢ ❆ ✼ ✼ ✡✭❉❆ ✲✴❇✫ ✯ ✧❄❃✣ ✱ » | ||
colomon | happy new years! | ||
masak | \o/ | 23:26 | |
colomon | sorear: your last patch fixed .pick, but S02-names/pseudo.t is still failing. | 23:28 | |
colomon is packing up some whistles and nom and heading down to the new year's concert / potluck. | |||
sorear | colomon: will investigate | 23:29 | |
ahahahaha | 23:30 | ||
it's the :D patch ... $CORE::_ is being interpreted as a modified $CORE: | |||
masak | ;) | ||
23:32
integral joined
23:33
drbean left
|
|||
dalek | ecza: 6406010 | sorear++ | src/niecza: $CORE::_ is not an :_-modified name |
23:34 | |
masak | 'night, #perl6 | 23:38 | |
23:39
drbean joined
23:42
replore joined,
x3nU left
23:43
x3nU joined
23:47
replore left,
Mowah left
|
|||
Timbus | nom: print 3.chr ~ (1..14).pick ~ .chr for (32 xx 32, 10017..10059).roll(70) | 23:48 | |
p6eval | nom 2b6f86: OUTPUT«14❈9 3 11❃3✻4✵4❊11 11 14 6❀3 11✳10✲13 9 8 10❅11 5 10✦4✹12✻12 8 13 8❃11✹2 4✾6✽2✸8 9✷10❃10 5✪5✺12❉10 7✭10❂12✮12 12❇2✳10 14 3 8✿8✽1✿7✭9 3 8✩7✽11❆1✢9 4 10✶2❃14❄5 3✦2✫12 13 5✥»… | ||
Timbus | hoho | 23:49 | |
first try | |||
slightly prettier | 23:50 | ||
nom: print 3.chr ~ (2..13).pick ~ .chr for (32 xx 32, 10017..10059).roll(70) | |||
p6eval | nom 2b6f86: OUTPUT«6 4 4❂8 13❋2 11 4✴12 12✯3 3❇8❅4 11✶6❃11✶5 2 3 2✻12 10❁8 7✩11✮9✿11✻9❊11❃5 9 8 8 2 6❇5❈6 11 13✶11❂13✨7✫11 8 12❊13 4✽12❄7✲10✽2✬6❅3 5❃8 13 8 7 8✶6 6✯13❄11 6❊6✪4 2❊9 11 »… | ||
Timbus | NOW FOR THE SOUND EFFECTS *looks up the 'bell character' ascii code* | 23:51 |