»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
00:02 ggherdov left
leont I'm not sure how to deal with me «Failed to find '_testing/source1' while trying to do '.d'» error 00:03
00:05 ggherdov joined 00:06 noganex joined 00:08 vendethiel- joined 00:11 btyler joined, moritz_ joined, yukko joined, cosimo_ joined 00:12 noganex_ left, moritz left, btyler_ left, vendethiel left, cosimo left, yukko_ left, renormalist left 00:13 nbrown__ joined 00:17 nbrown__ left 00:20 ab5tract left 00:34 telex left
dj_goku has anyone ever thought about writing tests for all the code found on rosetta code for perl6? 00:35
00:35 Ben_Goldberg joined, BenGoldberg left, Ben_Goldberg is now known as BenGoldberg 00:36 telex joined
flussence like github.com/perl6/roast/tree/master/rosettacode ? 00:37
there's not much to see there...
00:38 jerrycheung joined
dj_goku flussence: kind of, but all the pages. 00:38
00:43 dayangkun joined 00:47 nbrown__ joined 00:50 nbrown___ joined 00:52 nbrown__ left, yoleaux left
japhb Gah, I'm getting myself twisted in knots. How would you define a token that can be one or more characters, each of which can be any character except whitespace or "]"? 00:53
For some reason I keep getting the syntax a little wrong and causing barfage.
firefish5000 I would think <-[ \s \] ]>+ or <![ \s \] ]>+ 00:59
01:00 FROGGS_ joined
japhb THANK YOU. God, that was finicky. 01:00
firefish5000 Your welcome, im glad i was usefull! 01:01
By deleting the *.moarvm created by panda durring installs, will the modules be built on every run like... usual? 01:02
01:03 FROGGS left
firefish5000 on every perl6-m run, that is. 01:03
01:04 avuserow joined 01:05 nbrown___ left 01:10 avuserow left 01:16 tony-o left 01:18 bcode is now known as u 01:23 avuserow joined 01:26 u is now known as bcode 01:27 ab5tract joined 01:31 ab5tract left
grondilu looks at roast/rosettacode and thinks what should be done is role rosettacode { proto solve-task(|) {*}; method expected-output returns Str {...} } or somehting like that. 01:37
01:41 yeahnoob joined 01:45 pitterfumped joined, pitterfumped left 01:46 leont left 02:00 FROGGS__ joined 02:02 noganex_ joined 02:04 FROGGS_ left 02:05 noganex left
japhb .tell jnthn My current biggest concurrency pain is that errors that occur inside a Promise will show a backtrace starting at the .result call -- so you can't see where the actual problem occurred, only where it was *noticed*. 02:10
ENOYOLEAUX
(Above behavior seen on r-j, not tested on r-m yet) 02:11
02:19 chenryn joined 02:36 lastofthe left
dj_goku is there a hosted roaster website? 02:51
02:54 kaleem joined
grondilu m: (my @ = Mu) but role {} 02:57
camelia rakudo-moar cf69d8: OUTPUT«Unhandled exception: This type does not support elems␤ at src/gen/m-CORE.setting:8762 (/home/p6eval/rakudo-inst-2/languages/perl6/runtime/CORE.setting.moarvm:REIFY:34)␤ from src/gen/m-CORE.setting:9232 (/home/p6eval/rakudo-inst-2/languages/perl6/ru…»
02:57 jerrycheung left 02:59 raiph joined
grondilu n: (my @ = Mu) but role {} 03:02
camelia ( no output )
03:06 kurahaupo is now known as kurahaupo_ 03:13 yeahnoob left 03:18 yeahnoob joined, rindolf joined 03:22 yeahnoob left 03:25 yeahnoob joined 03:26 xfix left, jerrycheung joined 03:27 yeahnoob_ joined 03:28 xfix joined, xfix left, xfix joined 03:29 yeahnoob_ left, yeahnoob_ joined 03:30 yeahnoob left 03:36 jack_rabbit joined 03:43 xenoterracide left 03:44 xenoterracide joined
dalek kudo/nom: 70d08dd | (Rob Hoelz)++ | src/Perl6/Grammar.nqp:
Convert two more END-related things in POD parsing

It's finish now
03:46
kudo/nom: 6869029 | (Rob Hoelz)++ | src/Perl6/Grammar.nqp:
Fix paragraph and abbreviated comments

Except for table comments, that is
kudo/nom: a3228b9 | (Rob Hoelz)++ | src/Perl6/ (3 files):
Fix table POD
03:56 yeahnoob_ left 03:57 yeahnoob joined 04:04 jack_rabbit left 04:05 mberends joined, kaleem left
ingy m: 42.chars 04:05
camelia ( no output )
ingy m: say 42.chars
camelia rakudo-moar cf69d8: OUTPUT«2␤»
ingy that weirds me out
I guess its all in the name of perl strings are numbers are strings are… 04:06
ingy is porting a little coffeescript to p6 :) 04:07
04:16 Rudy__ joined, Rudy__ left 04:17 revdiablo left 04:18 revdiablo joined, BenGoldberg left, PlanetJelly joined
ingy m: "thingy" ~~ / (<[aeiou]> *) / 04:28
camelia ( no output )
ingy m: say "thingy" ~~ / (<[aeiou]> *) /
camelia rakudo-moar cf69d8: OUTPUT«「」␤ 0 => 「」␤␤»
ingy m: say "thingy" ~~ / (<[aeiou]> +) /
camelia rakudo-moar cf69d8: OUTPUT«「i」␤ 0 => 「i」␤␤»
ingy why??
geekosaur at a guess, it can match with count 0 at the start 04:32
04:32 bjz left 04:33 chenryn left 04:36 xenoterracide left 04:43 xenoterracide joined
ingy geekosaur: yeah, seems to be. thx 04:45
04:50 chenryn joined 04:55 raiph left
ingy geekosaur: github.com/ingydotnet/pig-latin-ac...er/lib/Pig 04:55
take a look at github.com/ingydotnet/pig-latin-ac.../Latin.pm6
and github.com/ingydotnet/pig-latin-ac...t/test.pl6
it works but it's just my n00b p6 code 04:56
04:57 xenoterracide left, MikeFair joined 04:59 MikeFair left 05:00 raiph joined
PlanetJelly Perl 6 is amazing! 05:02
05:02 PlanetJelly left 05:07 virtualsue joined 05:08 kaare_ joined 05:12 virtualsue left
grondilu m: role Foo { method WHICH { "Foo!" } }; (my %h{Foo}){1 but Foo}++; say %h.perl; # this works fine 05:16
camelia rakudo-moar a3228b: OUTPUT«Hash[Any,Foo].new(1 => 1)␤»
grondilu m: role Foo { method WHICH { "Foo!" } }; (my %h{Foo}){[1] but Foo}++; say %h.perl; # this doesn't
camelia rakudo-moar a3228b: OUTPUT«cannot stringify this␤ in method at_key at src/gen/m-CORE.setting:10031␤ in sub postcircumfix:<{ }> at src/gen/m-CORE.setting:2796␤ in sub postcircumfix:<{ }> at src/gen/m-CORE.setting:2831␤ in block <unit> at /tmp/i3Px_aFCNl:1␤␤»
grondilu realises that Foo.WHICH can not overload Int.WHICH anyway. 05:29
05:33 [Sno] joined 05:35 sivoais joined 05:42 anaeem1_ joined
dalek kudo/nom: e3d66c2 | TimToady++ | src/core/GatherIter.pm:
use non-relocatable values for gather sentinels

Presuming that Any.new.WHICH has a more stable address than [] does. Anyway, passes the same tests, so appears to be no worse.
05:44
05:52 domidumont joined 05:56 gfldex joined 05:58 yeahnoob left 05:59 yeahnoob joined 06:00 virtualsue joined 06:05 darutoko joined 06:13 gfldex left 06:19 yeahnoob left 06:24 tardisx left, virtualsue left
lizmat leont: .d return a Failure object if the path does not exist, True if it exists and it is a directory, and False if it exists and not a directory 06:24
06:25 tardisx joined, mr-foobar joined
lizmat the easiest way to check for failure of to check for definedness or boolean context 06:26
s/of/is
06:30 kurahaupo_ left, davido_ joined
davido_ Why is ~ used for concatenation? 06:30
nwc10 davido_: Can't use . (from Perl 5) because . is used for method calls. 06:31
grondilu m: my %h{Parcel}; %h{().Parcel}++
camelia rakudo-moar a3228b: OUTPUT«No such method 'succ' for invocant of type 'Parcel'␤ in sub postfix:<++> at src/gen/m-CORE.setting:1943␤ in block <unit> at /tmp/Lf2G3TlE7k:1␤␤»
nwc10 davido_: as to why ~ rather than something else, I'm not sure if there is an obvious something else
06:32 kaleem joined
nwc10 and for a few years early in the spec it was _ not ~ 06:32
and that was messier
06:32 yeahnoob joined
ingy but why not ' . ' 06:32
?
06:32 virtualsue joined
nwc10 _ was a pain because significant whitespace was needed 06:32
ingy 'foo . bar' is error
TimToady because it's better this way :)
nwc10 also, I suspect that TimToady prefers golfers to Guido 06:33
or his inner self does
TimToady but mainly because ~ looks like a piece of string
ingy TimToady: can you do a quick review of github.com/ingydotnet/pig-latin-ac.../Latin.pm6 06:34
for me and davido_
TimToady you should use .words instead of .split, esp since I just made it 6 times faster 06:35
ingy I'll see if my old p6 supports it 06:36
TimToady also join(' ') can just be .Str, or prefix ~
there's that string again...
ingy but also since the point is mostly ports between 10 langs, not sure I want it
TimToady it's terribly imperative, from an FP point of view :) 06:37
ingy cool
also is there a better way to github.com/ingydotnet/pig-latin-ac...est.pl6#L1 ? 06:38
TimToady also, stylewise, if you use .map: you don't need the ); at the end
ingy .map seemed to require (
TimToady see the colon there
06:38 mr-fooba_ joined
ingy are you saying I can have ( and not )? 06:38
Timbus .map does, .map: doesnt 06:39
ingy k
TimToady doesn't use lib 'lib' work?
ingy that's nice
no
well not here
let me get a --version
TimToady well, you'd have to ask lismat++
*z
ingy forgive this: This is Rakudo Perl 6, version 2011.07 built on parrot 3.6.0 0 06:40
Timbus omg
TimToady um...
06:40 FROGGS__ is now known as FROGGS
nwc10 it's a package from a distro? 06:40
ingy what's the cool way to install a new p6 quick
Timbus take that to a museum
TimToady rakudobrew maybe
FROGGS morning
sergot hi o/ 06:41
TimToady or just clone the github repo
06:41 mr-foobar left
Timbus git clone rakudo; perl Configure.pl --gen-moar; make install 06:42
FROGGS firefish5000: a normal perl6-m run does not create .moarvm files... only when you set --target=mbc and --output=path/to/file.pm.moarvm
ingy Timbus: ☺ 06:45
building 4014-08 ★ 06:46
06:46 dayangkun left
Timbus let us know how it runs after 2000 years of improvement :P 06:47
FROGGS I'd like to know what backend is in use in 2k years :o)
Timbus 2-bit computer compatibility layer 06:48
ingy :P
Timbus base 2* computer
ingy Timbus: does `make install` install next to the `perl` that did the Configure.PL? 06:49
.pl
ingy hopes so
TimToady no, merely installs in install/bin
Timbus it installs into a local folder
06:50 yeahnoob left
TimToady you can make a symlink to that if you like 06:50
Timbus i made a symlink to it in one of my /bin folders
.. there is an echo in here,
ingy that's so ghetto :\
06:51 dayangkun joined
TimToady we've had a lot of trouble with people running old versions :P 06:51
Timbus self contained programs are non-ghetto in linux, these days
ingy I remember working to solve this with you guys like 4000 years ago
moritz_ ingy: you can configure a --prefix 06:52
ingy moritz_: it should default to next to the perl used (imho) 06:53
moritz_ ingy: nope; many folks don't have the permessions to do that
ingy: and since you need "make install" to use perl6 from outside the build directory, defaulting to somewhere you can write to is essential 06:54
06:54 virtualsue left
ingy you could certainly check the writability, and say 'please use --prefix' 06:55
like cpanm would do
or about anything else
I'll gripe about this another time 06:56
too late now
TimToady or maybe too early :) 06:57
ingy $ /home/ingy/bin/perl6 07:00
/home/ingy/bin/perl6: 2: exec: /home/ingy/rakudo-star-2014.08/install/bin/moar: not found
I used: perl Configure.pl --backend=moar --gen-moar; make install 07:01
07:02 zakharyas joined
ingy grr. the install dir is non-relocatable? 07:03
FROGGS yes 07:04
ingy working now. 07:05
ingy tries in vain to harness the pain 07:06
but it melts away :[
07:06 yeahnoob joined
FROGGS I just extend my PATH to /home/froggs/dev/rakudo/install/bin... 07:07
so that I can rename the rakudo dir in case I test a star release 07:08
I don't favor symlinks from /usr/local/bin/ for that reason
but I often have different versions of rakudo on my box, and others might stick longer to the same compiler version, or at list stick to only one version at a time 07:09
would be nice if a bunch of packagers would join our midst :/ 07:10
grondilu m: my %h{Parcel}; %h{().Parcel} += pi; say %h.keys;
camelia rakudo-moar e3d66c: OUTPUT«Nil␤»
grondilu m: my %h{Parcel}; %h{().Parcel} += pi; say %h.values;
camelia rakudo-moar e3d66c: OUTPUT«Nil␤»
grondilu ^can't I use an empty parcel as key? 07:11
m: (my %h{Parcel}){().Parcel} = pi; say %h.values;
camelia rakudo-moar e3d66c: OUTPUT«Nil␤»
FROGGS I thought only strings are supported atm as keys... 07:12
grondilu it's quite recent
FROGGS m: (my %h{Parcel}){(42,)} = pi; 07:13
camelia rakudo-moar e3d66c: OUTPUT«cannot stringify this␤ in method at_key at src/gen/m-CORE.setting:10031␤ in sub postcircumfix:<{ }> at src/gen/m-CORE.setting:2796␤ in sub postcircumfix:<{ }> at src/gen/m-CORE.setting:2836␤ in block <unit> at /tmp/bcTw0V8Ida:1␤␤»
grondilu m: say (my %h{Parcel}){$(42,)} = pi; # you need to itemize 07:14
camelia rakudo-moar e3d66c: OUTPUT«3.14159265358979␤»
grondilu hum 07:15
that gave me this idea:
m: say (my %h{Parcel}){$(Nil,)} = pi;
camelia rakudo-moar e3d66c: OUTPUT«3.14159265358979␤»
grondilu m: (my %h{Parcel}){$(Nil,)} = pi; say %h.values
camelia rakudo-moar e3d66c: OUTPUT«3.14159265358979␤»
grondilu FROGGS++ :) 07:16
FROGGS ahh :o)
m: my %h{Parcel}; %h{().Parcel.item} += pi; say %h.keys 07:17
camelia rakudo-moar e3d66c: OUTPUT«␤»
FROGGS m: my %h{Parcel}; %h{().Parcel.item} += pi; say %h.values
camelia rakudo-moar e3d66c: OUTPUT«3.14159265358979␤»
FROGGS okay
07:18 jerrycheung left 07:19 DarthGandalf left 07:22 DarthGandalf joined
grondilu that's actually better since $(Nil,) is actually not empty 07:23
m: say .elems for $(Nil,), ().Parcel.item
camelia rakudo-moar e3d66c: OUTPUT«1␤0␤»
07:24 yoleaux joined, ChanServ sets mode: +v yoleaux 07:32 virtualsue joined
ingy TimToady: have a look at github.com/ingydotnet/pig-latin-ac...Latin.cafe for comparison. The only thing I like better about Perl6 over CafeScript is that Perl6 actually exists :) 07:32
the idea is to see if we can gen all the langs from .cafe 07:33
ingy heads to bed before #perl6 shoots him full of holes…
07:35 davido_ left
moritz_ has a chronical dislike for languages that don't have explicit variable declarations 07:36
Timbus the exact same thing written in the exact same way in two not-exact-same languages 07:37
ingy Timbus: I don't grok the implicit statement I suspect you were making 07:40
Timbus ingy, all you are comparing is syntax, not really expressiveness or structure. i cant see 'the difference' in the languages here 07:44
FROGGS yeahnoob: have you seen that TimToady++ was able to make .comb (what .words uses) about sic times faster? this will make your original code faster, though I guess it won't be faster than the grammar version 07:45
Timbus i thought he just made .words faster by not using .comb 07:46
FROGGS ohh
07:46 domidumont left
FROGGS Timbus: yes of course, you are right 07:46
yeahnoob oh? I will try it. Just replace ".words" with ".comb" ?
U should know im a 100% newbie
Timbus no, use .words 07:47
FROGGS .words is faster now
07:47 bjz joined
yeahnoob ohaha 07:47
FROGGS so you would have to installed the latest rakudo compiler...
but you are using rakudo star, correct?
yeahnoob rakudo-star yes 07:48
ingy Timbus: I'm not making any syntax comparisons. That's not the point of the repo. The point is porting a program (that uses common OO idioms) around to different common OO languages to see what information would be needed to generate all of them.
yeahnoob for a noob, it's hard to use the newest rakudo on github's head version
07:49 SamuraiJack joined
FROGGS yeahnoob: yeah, that I'd say you stick to the grammar version :o) 07:49
ingy & 07:50
yeahnoob IS the grammar syntax more lower level than .words in Perl 6? 07:51
07:51 domidumont joined
FROGGS yeahnoob: it is just a different approach 07:52
yeahnoob Ola
FROGGS grammars are so powerful, clean and nice to write that I cannot call them low level
but it fits the task better
yeahnoob FROGGS: I see that now.:) 07:53
FROGGS because in the other approach you fetched lines... and that is pretty expensive because we read a chunk, search for the newline character(s), then read another chunk or split what we have and remember the remaining chars for the next line to concat them... 07:54
pretty expensive operation... 07:55
07:56 bjz left, bjz joined 08:00 grondilu left 08:01 bjz left 08:02 grondilu joined 08:04 kurahaupo joined 08:05 moritz_ is now known as moritz, colomon left 08:06 domidumont left
lizmat commute to Swiss Perl Workshop& 08:06
yoleaux 3 Sep 2014 23:01Z <japhb> lizmat: I saw your benchmark in the comments for the List.ACCEPTS optimization. Care for a perl6-bench commit bit? :-)
08:06 colomon joined
lizmat .tell japhb I'll take a bit :-) 08:06
yoleaux lizmat: I'll pass your message to japhb.
08:07 lizmat left, domidumont joined
moritz ... in a bit 08:08
multi method grep(Mu $test) is rw { 08:09
self.map({ $_ if $_ ~~ $test });
}
LHF: check if this can be optimized to self.map({ $_ if $test.ACCEPTS($_) })
and benchmark if it makes any difference
08:10 fhelmberger joined, raiph left
moritz same with grep-index, first etc. 08:10
08:11 colomon left
moritz in fact, it'd seem to me that all instances of ~~ in src/core/Any could be replaced either with .ACCEPTS or with nqp::istype() 08:11
yeahnoob FROGGS: I think what you said about the grammar should be added into the "Using Perl6" book.
08:11 colomon joined
FROGGS yeahnoob: would you mind taking care of that? 08:12
yeahnoob But English is not my native language. I'm in China, only Chinese very well...so... 08:14
moritz as far as I am concerned, "Using Perl 6" is dead, and new doc efforts should go to doc.perl6.org
though I won't stop anybody from contributing anywhere
yeahnoob FROGGS: my english = "chinese-style english" everywhere; 08:15
nine yeahnoob: documentation in non-native English is better than no documentation. It's much easier to improve existing documentation than to write new. 08:17
08:20 ab5tract joined 08:24 jimmyz joined
jimmyz yeahnoob: 您好 :P 08:24
yeahnoob: 北京 杭州? 08:25
yeahnoob jimmyz: Let's change #perl6 to chinese channel. :) 我在成都。您好:)
jimmyz
moritz if you bring in 1 billion perl 6 hackers, by all means :-) 08:26
(or even a million would do for a start :-)
jimmyz 这里有几个中国人
08:27
08:27 ab5tract left
yeahnoob Chinese people love QQ all the time, but not IRC channel. 08:31
xiaomiao which is good ;)
nine yeahnoob: everybody loves "some crappy, proprietary, centralized messaging service" all the time, but not IRC channel... 08:32
xiaomiao nine: that crappy proprietary thing supports UTF-8 cleanly and has a mobile phone client 08:33
FROGGS my irc clients do utf8 properly, and I've also got a phone client 08:34
nine xiaomiao: both true for IRC AFAICT. At least I could see (not read) your UTF-8 characters and there's plenty of mobile clients.
xiaomiao nine: well, IRC servers are encoding-agnostic, and IRC clients ... hrm ...
moritz IRC clients do whatever they please 08:35
xiaomiao yes, so the results are mostly undefined 08:38
moritz though detecting well-formed UTF-8 is pretty easy 08:40
so many clients get that right
as do the logs: irclog.perlgeek.de/perl6/2014-09-04#i_9295629
jimmyz 你们离题了。。。 08:41
xiaomiao moritz: hmm, looking at e.g Thunderbird suggests that UTF* is a highly complex experimental thing that no one can implement completely 08:42
08:44 dakkar joined
jimmyz 不是关于 Perl 6 的主题争论,不应该在这里吧 :) 08:46
08:50 jimmyz left
nwc10 wonders how much Chinese jnthn has managed to pick up 08:58
08:59 chenryn left
FROGGS nwc10: depends on the size of the car I'd say 09:00
09:01 virtualsue left 09:02 chenryn joined, donaldh joined 09:06 petercommand left 09:14 Ven joined, kurahaupo left
Ven o, #perl6 09:16
nwc10 FROGGS++ 09:22
09:36 yeahnoob left 09:37 domidumont left
dalek osystem: 95b8739 | grondilu++ | META.list:
Adding Clifford

Geometric Algebra module. Works fine locally on a recent MoarVM, and is actually quite fast when compared to version 0.2.3, so I add this version 0.3.0
09:38
grondilu ^ so I added this. I didn't want to add previous versions because it was slow and buggy. But this one seems to work fine.
09:39 woshty joined
Ven .tell hoelzro github.com/grondilu/clifford/blob/...tor.pm6#L5 :( 09:45
yoleaux Ven: I'll pass your message to hoelzro.
Ven grondilu++
09:46 denis_boyun joined 09:49 domidumont joined 09:51 virtualsue joined
timotimo o/ 09:55
FROGGS "good morning" timotimo :P 09:57
timotimo :\
could be better
FROGGS grondilu++ 09:58
tadzik why the quotes, it is before noon :)
FROGGS hehe
timotimo thank you tadzik :)
FROGGS timotimo: just turn it into a good day instead :o)
timotimo will try my best
FROGGS "Do. Or do not. There is no try." - a Jedi 10:00
Ven "stop smoking pot" - said jedi's teacher 10:01
10:02 spider-mario joined
timotimo linux is "no matter what you do, you can always find a Hard Way to do it" 10:02
timo is "let's do it the hard way! it'll be more elegant!"
Ven "Ohhh. Great philosopher. Pseudo-philosophical discussions does not make one great." 10:03
- yoda
10:03 spider-mario left
FROGGS timotimo: I usually do the very easy way and maybe improve it later :o) 10:03
10:05 spider-mario joined
timotimo there is no "later" in this case :) 10:16
10:22 Ven left
colomon NativeCall does not seem to have fixed itself. 10:23
FROGGS no
timotimo that would have been nice ... 10:24
10:27 domidumont left
grondilu
.oO( subset Tuple of Parcel where { not [or] @$_ »~~» Scalar } )
10:34
m: subset Tuple of Parcel where { not [or] @$_ »~~» Scalar }; say $_ ~~ Tuple for $(1, 3), $(^10), $(my @ = 4, 5)
camelia rakudo-moar e3d66c: OUTPUT«True␤False␤False␤»
grondilu m: subset Tuple of Parcel where { not [or] @$_ »~~» Scalar }; say $_ ~~ Tuple for $(1, 3), $(^10,), $(my @ = 4, 5) 10:35
camelia rakudo-moar e3d66c: OUTPUT«True␤True␤False␤»
grondilu m: subset Tuple of Parcel where { not [or] @$_ »~~» Scalar }; say $_ ~~ Tuple for $(1, 3), $(^10,), $(my @ = 4, 5), $(my $ = 43, 42)
camelia rakudo-moar e3d66c: OUTPUT«True␤True␤False␤True␤»
grondilu my $p = $(my $ = 1, 5); say $p.WHICH; say $p »~~» Scalar 10:37
m: my $p = $(my $ = 1, 5); say $p.WHICH; say $p »~~» Scalar
camelia rakudo-moar e3d66c: OUTPUT«Parcel|(Scalar|67314928)(Int|5)␤False False␤»
grondilu m: my $p = $(my $ = 1, 5); say $p.WHICH; say $p[0] ~~ Scalar
camelia rakudo-moar e3d66c: OUTPUT«Parcel|(Scalar|65143832)(Int|5)␤False␤»
grondilu ^ seems wrong 10:38
moritz m: my $p = $(my $ = 1, 5); say $p.WHICH; say $p[0].VAR ~~ Scalar 10:39
camelia rakudo-moar e3d66c: OUTPUT«Parcel|(Scalar|82195512)(Int|5)␤True␤»
grondilu m: my $p = $(my $ = 1, 5); say $p.WHICH; say $p[0].WHICH
camelia rakudo-moar e3d66c: OUTPUT«Parcel|(Scalar|58115080)(Int|5)␤Int|1␤»
10:44 leont joined 10:46 telex left
grondilu m: say (my $ = 1).WHICH 10:48
camelia rakudo-moar e3d66c: OUTPUT«Int|1␤»
10:48 telex joined
FROGGS m: class X::Foo is Exception { method message { "bar" } }; say X::Foo.new # is it meant to fail like that? 10:48
camelia rakudo-moar e3d66c: OUTPUT«bar␤␤Error while creating backtrace: Op 'backtrace' needs an exception object␤ in method new at src/gen/m-CORE.setting:11652␤ in method backtrace at src/gen/m-CORE.setting:11803␤ in code at src/gen/m-CORE.setting:11813␤ in method gist at s…»
10:55 anaeem1_ left
leont What is the way to do private methods? «my method» no longer seems to work as I expected to… (it worked a year ago when I last touched this code) 10:58
masak leont: method !foo 10:59
leont: and then $obj!foo
grondilu S12:235
synopsebot Link: perlcabal.org/syn/S12.html#line_235
leont That's why I tried, but I'm getting an "attribute not not declared" exception 11:00
masak m: class C { method !foo { say "OH HAI" }; method bar { self!foo } }; C.new.bar 11:01
camelia rakudo-moar e3d66c: OUTPUT«OH HAI␤»
masak works for me :)
leont Ah, yes that works for me
masak suggest doing it that way, then ;)
11:01 chenryn left
leont It seems the $.method syntax doesn't extend to $!method, which is what I had expected 11:02
masak it doesn't.
in fact, those are two namespaces, so you can have `$!attr` and `method !attr` at the same time.
m: class C { has $!foo = "wow!"; method !foo { say "lol!" }; method bar { say $!foo; self!foo } }; C.new.bar 11:07
camelia rakudo-moar e3d66c: OUTPUT«wow!␤lol!␤»
carlin was someone investigating the NativeCall test failure? It's caused a lot of fallout in the smoketests by the looks of things 11:10
11:10 mberends left 11:13 anaeem1_ joined
FROGGS carlin: I was 11:19
it is due to the Parcel patches
11:32 chenryn joined 11:33 pmurias joined, SamuraiJack left
pmurias masak: re choosing the editor to integrate things the grammar creation support into, the hard part won't be choosing the editor that has the avalible hooks, but choosing one that all the various Perl 6 programmers are fine with using 11:35
11:35 Woodi left
masak pmurias: (a) there is no such editor, (b) I don't see why that has to be a criterion. :) 11:36
11:37 domidumont joined 11:38 chenryn left
timotimo my desktop boots again! 11:39
11:40 chenryn joined
colomon doesn't put his books on the desktop 11:46
*boots
sigh. nothing like ruining a terrible joke with a typo
11:46 Gruber joined 11:47 nebuchad` joined 11:48 gtodd1 joined 11:49 bjz joined 11:50 erdic_ joined, exodist_ joined
timotimo :) 11:50
11:51 daxim left, erdic left, gtodd left, ivanshmakov left, Grrrr left, Khisanth left, nebuchadnezzar left, bcode left, Exodist left, bcode joined, bcode left, bcode joined, erdic_ is now known as erdic, khisanth_ joined, bcode left, daxim joined 11:54 bcode joined
FROGGS *g* 11:54
hoelzro Ven: wow, that's a bad one 11:55
yoleaux 09:45Z <Ven> hoelzro: github.com/grondilu/clifford/blob/...tor.pm6#L5 :(
hoelzro morning #perl6
11:56 chenryn left
moritz panda bootstrap is broken here, with latest rakudo + nqp + moar 11:56
perlpunks.de/paste/show/5408539f.531a.82 11:57
I'd guess the parcel flattening change has caused some dependency calculation thingy to fail
or.. something 11:58
wait, it actually compiled it correctly
ah no, my panda is too old. Never mind
all is well. 11:59
timotimo phew.
japhb: do you think www.flotcharts.org/ could be an interesting alternative to jqplot? 12:12
PerlJam Good morning all 12:14
timotimo .tell japhb www.flotcharts.org/ seems to be a quite nice plotting library for javascript and it seems to be in more active development than jqplot 12:16
yoleaux timotimo: I'll pass your message to japhb.
12:22 amkrankr1leuen left 12:26 Rotwang joined 12:29 amkrankruleuen joined, amkrankruleuen left, amkrankruleuen joined
moritz am I correct in assuming that CArray doesn't know its own length? 12:36
12:36 xenoterracide joined
moritz m: sub a(*@a) { say @a.perl }; say a 1..5 12:37
camelia rakudo-moar e3d66c: OUTPUT«Array.new(1, 2, 3, 4, 5)␤True␤»
PerlJam I got the impression from the one line description in ops.markdown that nqp::replace() would modify its first arg (the string), but reality seems to differ. Is there an op that will modify a string in-place? 12:44
moritz I'm pretty sure there isn't 12:45
because parrot at least has immutable strings
12:46 xenoterracide left
dalek p: aa79786 | duff++ | docs/ops.markdown:
Improve description of nqp::replace
12:50
volaj: f923faf | moritz++ | lib/NativeCall.pm6:
fix nativecast test failures

since the built-in slicing does not like our CArray, provider our own (potentially slicing) multi postcircumfix:<[ ]>.
No idea if this is the right fix. Maybe TimToady++ has a better idea.
12:51
moritz eeks 12:53
sergot moritz++
moritz I made other tests fail :(
# expected: 23.45
# got: 23.45
[Coke] O_o 12:54
sergot o0
moritz why, thank you very much
[Coke] PerlJam++ nqp docs!
sergot moritz: cant we do this somehow in the .t file? 12:55
moritz sergot: do what?
sergot override [] postcircumfixes
moritz sergot: that doesn't fix it in other user's code
12:56 anaeem1_ left
sergot umm, right, shame on me 12:56
moritz oh, I see what the problem is
23.45 is actually a one-element parcel containing that number 12:57
and that numifies to 1
but stringifies to 23.45
m: say Range ~~ Positional 12:59
camelia rakudo-moar e3d66c: OUTPUT«True␤»
moritz m: say Range ~~ Iterable
camelia rakudo-moar e3d66c: OUTPUT«True␤»
12:59 kurahaupo joined, dwarring left
dalek volaj: 62c5f9d | moritz++ | lib/NativeCall.pm6:
Fix tests

turns out that we must not return a Parcel for a single-element slice/array access
13:01
13:02 SamuraiJack joined
PerlJam moritz: Why *mustn't* we return a Parcel for a single-element slice? That seems like the right thing to me. 13:03
colomon PerlJam: I'm guessing because it adds overhead for by far the most common case? 13:06
[Coke] just saw many methods doing that dance in Str yesterday. if multiple return values, something listy, but a single value? return the item only 13:07
er, that's a slightly different dance, looking at the patch
PerlJam Still ... both dances feel wantarray-ish to me and that feels wrong. 13:08
FROGGS moritz++ # it took me hours and I was searching in a complete different direction :o( 13:09
13:09 lastofthe joined
colomon moritz++ 13:09
FROGGS is happy 13:10
13:11 Rotwang left 13:13 SamuraiJack_ joined
leont Hmmmm, IO::Pipe isn't implemented yet? That's a bummer 13:14
13:14 PhilH left, philh_ joined 13:17 eiro left
leont And shouldn't there be a list form of shell? 13:17
(or would that be called differently 13:18
)
colomon leont: taking a list of command line arguments?
leont Yes
Because quoting correctly is a PITA, and you're likely to do it wrong
colomon makes sense to me
moritz m: say (42, ) + 1 # for PerlJam
camelia rakudo-moar e3d66c: OUTPUT«2␤»
colomon launches another smoke run now that NativeCall is fixed
moritz PerlJam: that's why we have to return the element, not the parcel
leont: the list form is called run(), and it doesn't do shell meta stuff 13:19
FROGGS leont: and we have open( :p ) instead of IO::Pipe 13:21
timotimo we do not only have open :p, we also have asynchronous subprocess spawning and communication 13:22
Juerd :p is cute. 13:23
Can we get :þ for something? :) 13:24
13:24 SamuraiJack_ left 13:25 kaare_ left
PerlJam Juerd: bi-directional pipe? :) 13:25
FROGGS leont: all primitives should be there, so it is just a matter of writing some Perl 6 glue code to implement IO::Pipe fwiw
leont Ah, I see
Juerd PerlJam: I like it!
PerlJam: Just like -> and <->
The ascii variant could be bp, which is like þ taken apart, and could stand for "bidirectional pipe" 13:26
PerlJam moritz: perhaps the diag output of is_approx should be amended to include the difference and tolerance? I don't know if that would have helped to figure out what was going on or not. 13:27
13:27 kaleem left
leont Is :p open documented? 13:27
Ah, yes it is, sort of
13:28 SamuraiJack_ joined
leont Should probably be listed in the open synopsis, I had read over it initially 13:28
FROGGS leont: there is a consensus to not think of pipes as files, so ... I dunno
it is more like run/shell 13:29
leont Fair enough, I suspect IO::Pipe will be a more sensible interface in the end anyway 13:30
moritz PerlJam: maybe 13:31
13:31 ivanshmakov joined
PerlJam My brain is still objecting to (42,) not being equal to 42. Perhaps it's because we go out of our way to make my $item = 42; say $item[0][0][0]; # output 42 13:34
leont And what about multiplexing asynchronous IO?
PerlJam leont: Did you see jnthn's YAPC::EU talk? www.jnthn.net/papers/2014-yapceu-async.pdf 13:35
colomon PerlJam: equal in what sense? 13:39
moritz heh, I just found that in python, two terms in a row are reported as "SyntaxError: invalid syntax" 13:40
we (can) do better than that! 13:41
13:42 FROGGS[mobile] joined, ribasushi left
leont PerlJam: I don't remember much IO in there, mostly threads, but I can imagine that approach being more useful in perl6, will reread 13:42
tadzik btw, the yapc-announced matrix.org is up :)
flussence yay \o/ 13:43
leont Ah, Proc::Async is what I want :-)
13:46 ribasushi joined
PerlJam colomon: I dunno. My brain isn't firing on all cylinders about this particular :) 13:47
Or, maybe it's just misfiring into thinking that single item parcels should just evaluate to that item in and item context. 13:48
s/and/an/
13:51 Woodi joined 13:56 mr-fooba_ left
colomon Ah, yes, smoke test much better after moritz++'s patch: host07.perl6.com:8080/report 13:59
14:00 sqirrel joined
PerlJam colomon++ that's neat! I didn't know anyone had setup a module smoker yet. 14:00
14:01 raiph joined
carlin colomon: what OS are the tests run on? 14:01
colomon carlin: linux
carlin: a mildly obsolete version of ubuntu, I think. ;) 14:02
carlin colomon: would you be able to install libsodium-devel? Crypt::Reop needs it to be built/tested 14:03
leont How do I look up Proc::Async's docs? 14:04
colomon carlin: apt-get libsodium-devel ?
*install 14:05
hmmm, my system doesn't know what libsodium-devel is
tadzik leont: if they aren't on doc.perl6.org, there probably aren't any
14:06 fhelmberger_ joined
carlin colomon: ah well, thanks for trying 14:06
PerlJam leont: read the source?
tadzik yeah, apparently that's the way :/
or read jnthn's slides
carlin I'm not sure ubuntu has a package for it now that I'm searching and nothingi s coming up
colomon carlin: is it just this? github.com/jedisct1/libsodium
carlin colomon: yeah that's it 14:07
colomon carlin: any obvious reason I can't just git clone and go?
14:07 mattp_ joined, domidumont left
leont It seems I can't find the source either, does it exist outside of jnthn's computer? 14:08
14:08 chenryn joined
PerlJam leont: As I recently found out, it's bundled with Rakudo. :) 14:08
14:08 domidumont joined
PerlJam leont: src/core/Proc/Async.pm 14:09
leont «Could not find Proc::Async», on a rakudo built yesterday :-s
14:10 moritz_ joined
leont I have no idea what I'm doing wrong here 14:10
14:10 grondilu_ joined, anaeem1 joined
carlin colomon: it should just work 14:10
colomon: do ./autogen.sh, then ./configure and sudo make install should do it 14:11
colomon carlin: I grabbed the 0.7.0 source, which has ./configure already. make-ing now
14:12 raiph left
colomon carlin: okay, I just successfully installed Crypt::Reop on the same machine that does the smoke tests, so unless there's something wonky going on, it should work in the smoke tests tomorrow. 14:12
carlin colomon++ thanks 14:13
colomon carlin: what does Crypt::Reop do, anyway? :)
carlin It's nice to confirm my code works on a machine that isn't mine :)
leont Ah, it seems I can't use them, but it is already preloaded
That's confusing 14:14
14:14 anaeem1 left
FROGGS[mobile] n: say Proc::Async 14:14
camelia niecza v24-109-g48a8de3: OUTPUT«Unhandled exception: Unable to resolve method postcircumfix:<( )> in type Any␤ at /tmp/dkKgyYkRRQ line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4595 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4596 (module…»
14:14 moritz left, moritz_ is now known as moritz
PerlJam leont: agreed. 14:14
FROGGS[mobile] m: say Proc::Async
camelia rakudo-moar e3d66c: OUTPUT«(Proc::Async)␤»
FROGGS[mobile] leont: it is there
carlin colomon: reop is a PGP-esque thing, and Crypt::Reop is a NativeCall interface to it
colomon: so encryption to put it simply
FROGGS[mobile] don't 'use' it
tadzik m: Proc::Async.^methods.sort.say
camelia rakudo-moar e3d66c: OUTPUT«Code object coerced to string (please use .gist or .perl to do that) in any p6sort at src/vm/moar/Perl6/Ops.nqp:346␤␤Code object coerced to string (please use .gist or .perl to do that) in any p6sort at src/vm/moar/Perl6/Ops.nqp:346␤␤Code object …»
tadzik interesting 14:15
colomon carlin: I got encryption from the "Crypt" bit. ;)
moritz : Proc::Async.^methods.mpa(*.Str).sort.say
m: Proc::Async.^methods.mpa(*.Str).sort.say
camelia rakudo-moar e3d66c: OUTPUT«No such method 'mpa' for invocant of type 'Parcel'␤ in block <unit> at /tmp/Vyfid44tW2:1␤␤»
PerlJam heh
moritz m: Proc::Async.^methods.map(*.Str).sort.say
camelia rakudo-moar e3d66c: OUTPUT«Code object coerced to string (please use .gist or .perl to do that) in block <unit> at /tmp/uxalAPnqIF:1␤␤Code object coerced to string (please use .gist or .perl to do that) in block <unit> at /tmp/uxalAPnqIF:1␤␤Code object coerced to string (p…»
moritz m: Proc::Async.^methods.map(*.gist).sort.say
camelia rakudo-moar e3d66c: OUTPUT«<anon> <anon> <anon> close_stdin kill print say start stderr_bytes stderr_chars stdout_bytes stdout_chars write␤»
carlin colomon: more info about reop if you're interested; www.tedunangst.com/flak/post/reop 14:16
FROGGS[mobile] leont: it is Part of core like Int or IO::Path
14:17 sqirrel left, fhelmberger left, grondilu left, FROGGS left, Psyche^ left, mattp__ left, muraiki left, go|dfish left, _sri left, silug left, ingy left, \00 left, anaeem1 joined
FROGGS[mobile] that's why we have a>20k lines setting 14:17
colomon carlin: "Internet told me they were safe." ha! 14:19
14:19 nebuchad` is now known as nebuchadnezzar
leont FROGGS[mobile]: I figured that out by now, but a better error on «use Core::Module» would be very helpful for newbies 14:20
PerlJam m: use JSON::Pretty; # this should be a no-op since it's core IMHO
camelia rakudo-moar e3d66c: OUTPUT«===SORRY!===␤Could not find JSON::Pretty in any of: /home/p6eval/rakudo-inst-2/languages/perl6/lib, /home/p6eval/rakudo-inst-2/languages/perl6␤»
FROGGS[mobile] leont: true
will do that
14:21 FROGGS joined, muraiki joined, ingy joined 14:22 _sri joined, sqirrel joined, \00 joined 14:23 go|dfish joined
jnthn evening, #perl6 14:24
14:24 Psyche^ joined
masak aloha, #perl6 :) 14:25
PerlJam greetings!
moritz PerlJam: it should say "Did you mean: Darling::Pretty"
colomon \o 14:29
14:29 SamuraiJack_ left
PerlJam m: class Proc::Async { #`( oops! ) }; 14:30
camelia ( no output )
PerlJam That we can do that without getting a symbol redeclaration error is weird. 14:31
14:31 SamuraiJack_ joined
jnthn PerlJam: It's not one because the setting is an outer lexical scope, and if you declare someting in a nested lexical scope that's never an error. 14:31
14:32 anaeem1 left 14:33 fhelmberger joined, grondilu joined, SAA3K0R joined, SAA04J2 joined, silug joined, fhelmberger left, grondilu left
pmurias how will we specify if EVAL should use FROGGS v5 mode or the real perl5? 14:36
PerlJam I just worry a little that the more names we have as part of the setting, the more likely our users are to use one for their own purposes and accidentally confuse themselves.
moritz PerlJam: we just have to use different names
sorry, meant pmurias
14:40 gtodd1 is now known as gtodd
timotimo ohay jnthn 14:41
pmurias and the language implementations have to be preloaded with use? 14:42
moritz presumably 14:44
leont Is there a way to make an attribute required? 14:46
PerlJam leont: has $.thingy = !!! 'thingy is required';
jnthn die is probably better 14:47
As stub code executed is a weird error for that...
If you're writing a BUILD method, then the attributive binding with a required param is another way 14:48
*submethod
PerlJam jnthn: that's why I put the message.
PerlJam really wishes a bare !!! were smart enough to grab the name of the attribute and say "$attr-name is required" 14:49
14:50 treehug88 joined
jnthn Well, nothing preventing writing a module supplying an is required trait. 14:51
May even be one already on modules.perl6.org 14:52
14:53 SamuraiJack_ left 14:54 eiro_ joined
eiro_ hello everyone 14:55
timotimo good day to you, eiro! 14:56
masak usually does '$.thingy = REQUIRED '$.thingy', with REQUIRED defined as a sub that dies
but I expect this kind of thing would eventually get soaked up as a macro that obviated repeating the name
jnthn A trait could grab the name and avoid duping it, though... 14:57
moritz and include the class name in the error message
hoelzro ahoy #perl6
firefish5000 Hmm, I'v done somthing to my code that causes .perl to hang. 14:59
tadzik hello eiro_!
firefish5000 wonders if overriding gist is part of the reason
pmurias wouldn't it make sense to change the language passed to the EVAL to a proper lexical thing?
hoelzro firefish5000: what'd you do?
moritz pmurias: you mean, an object? 15:00
pmurias: then you could just say $obj.EVAL(...) in the first place :-)
firefish5000 I would have to upload my code, since I cannot reproduce it any other way... one moment 15:01
moritz firefish5000: that's pretty easy to do with self-referential structures 15:02
m: my @a = (1, 2, 3); push @a, $@a; say @a.perl
camelia rakudo-moar e3d66c: OUTPUT«(timeout)»
pmurias moritz: EVAL(...) is not a regular subroutine it can read non dynamic lexical from the caller 15:03
firefish5000 googles self-referential structure
moritz firefish5000: "circular" might be the more common term
@a contains a reference to @a
=> infinite loop 15:04
firefish5000 would $!var print but $!var.perl hang in such case?
moritz depends on what's in $!var (how it stringifies, mostly)
but that's possible, yes 15:05
m: class A { has $.thing is rw }; my $x = A.new(); $x.thing = $x; say $x; say $x.perl;
camelia rakudo-moar e3d66c: OUTPUT«(timeout)»
moritz m: class A { has $.thing is rw }; my $x = A.new(); $x.thing = $x; print $x; say $x.perl;
camelia rakudo-moar e3d66c: OUTPUT«(timeout)A<139737578349296>»
moritz that prints fine, but doesn't .perl 15:06
15:07 mr-foobar joined
firefish5000 hmm... I have a create method which I use to call new with positional parameters. that may have done it.. 15:09
moritz that's not the point
but it might be easier if you did show your code :-)
15:09 denis_boyun left
firefish5000 fixes up his code. 15:10
15:10 raiph joined 15:14 rindolf left 15:15 lizmat joined
PerlJam firefish5000: just make sure you don't accidentlly fix the problem out of existence. (It's okay to do it *purposefully* however ;) 15:15
firefish5000 lol, i'll try not to.. Anyone know how to make __DATA__ sections? =begin DATA? 15:16
PerlJam firefish5000: =begin data I dunno if the all-caps version is equivalent 15:18
leont What's the difference between act and tap on a supply?
PerlJam come to think of it, I don't know if even =begin data itself is implemented 15:19
timotimo leont: "act" will ensure that the code you supply will only be run by a single thread
whereas "tap" will run whenever it gets to
so "act" will give you "actor semantics"
firefish5000 Alright, ill make it a normal variable at the top then. (cannot get $=data or the like to work) 15:20
philh_ Hello all, I have a Q about currying that I've posted on SO, to avoid flooding you here: stackoverflow.com/questions/2566910...tever-star 15:21
timotimo firefish5000: i used the pod variables stuff once before, i shall find an example for you 15:22
firefish5000 timotimo: Thanks!
timotimo m: say $=pod.perl;␤=mydata␤ Hello there!␤␤ 15:23
camelia rakudo-moar e3d66c: OUTPUT«Array.new(Pod::Block::Named.new(name => "mydata", config => ().hash, contents => Array.new(Pod::Block::Para.new(config => ().hash, contents => Array.new("Hello there!")))))␤»
timotimo m: say $=mydata.perl;␤=mydata␤ Hello there!␤␤
camelia rakudo-moar e3d66c: OUTPUT«===SORRY!=== Error while compiling /tmp/ZyOZQUkuh8␤Variable '$=mydata' is not declared␤at /tmp/ZyOZQUkuh8:1␤------> say $=mydata.perl⏏;␤ expecting any of:␤ method arguments␤»
timotimo m: say $=pod<mydata>.perl;␤=mydata␤ Hello there!␤␤
camelia rakudo-moar e3d66c: OUTPUT«Failure.new(exception => X::AdHoc.new(payload => "postcircumfix:<\{ }> not defined for type Array"))␤»
timotimo m: say $=pod[0].perl;␤=mydata␤ Hello there!␤␤
camelia rakudo-moar e3d66c: OUTPUT«Pod::Block::Named.new(name => "mydata", config => ().hash, contents => Array.new(Pod::Block::Para.new(config => ().hash, contents => Array.new("Hello there!"))))␤»
timotimo m: say $=pod[0].Str;␤=mydata␤ Hello there!␤␤
camelia rakudo-moar e3d66c: OUTPUT«Pod::Block::Named<139642023070976>␤»
timotimo m: say $=pod[0].contents.Str;␤=mydata␤ Hello there!␤␤
camelia rakudo-moar e3d66c: OUTPUT«Pod::Block::Para<139964838261784>␤»
timotimo m: say $=pod[0].contents[0].contents.Str;␤=mydata␤ Hello there!␤␤ 15:24
camelia rakudo-moar e3d66c: OUTPUT«Hello there!␤»
timotimo well, quite frankly that's not very awesome.
$=mydata is supposed to work per spec, afaik ... maybe hoelzro can look into that, he's been working on documentation stuff a lot recently
15:24 sqirrel left 15:25 zakharyas left, domidumont left
hoelzro hmm, I'm not familiar with $=mydata 15:25
15:26 kaare_ joined
PerlJam wonders what the scoping is on $=data 15:28
moritz pod-scoped! 15:29
FROGGS jnthn: how do I get a list of all known symbols?
masak *all* of them!?
:P
15:30 Salai is now known as akaseki
masak m: say "There are currently {(^1e15).roll} known symbols." 15:30
camelia rakudo-moar e3d66c: OUTPUT«(timeout)»
masak heh.
15:30 akaseki is now known as Salai
japhb botsnack 15:30
yoleaux 08:06Z <lizmat> japhb: I'll take a bit :-)
12:16Z <timotimo> japhb: www.flotcharts.org/ seems to be a quite nice plotting library for javascript and it seems to be in more active development than jqplot
jnthn FROGGS: Um...all in what context? 15:31
masak m: say "There are currently {(1..1_000_000_000_000_000).roll} known symbols."
camelia rakudo-moar e3d66c: OUTPUT«There are currently 956832594083256 known symbols.␤»
hoelzro oh, I see
FROGGS jnthn: in list context :P
hoelzro it's a foo
japhb wonders what lizmat was referring to ...
diakopter .botsnack 15:32
yoleaux :D
jnthn japhb: iirc from the backlog scanning, perl6-bench
moritz yes, perl6-bench commit bit
japhb Oh, yes, gotcha.
firefish5000 Alright, CronParser uploaded Here pastebin.com/kGVDFqTs# . 15:33
japhb .ask lizmat Are you lizmat on GitHub as well?
yoleaux japhb: I'll pass your message to lizmat.
PerlJam CronParser?!? cool! 15:34
PerlJam gets a little excited when old and new technologies come together ;) 15:35
japhb timotimo: I have no objection to Flot, as long as the license is compatible, the performance and features are sufficient ... and someone else does the work to convert over to it (preferably in a branch). Right now I have no need to replace jqplot, but I have noted requests in the past. 15:36
firefish5000 timotimo:I ended up using a heredoc, but i'll try using podvars? (cant think of a name for them) in my projects
FROGGS jnthn: I want to display a message in ModuleLoader.nqp in case someone tries to load e.g. Proc::Async
jnthn m: say CORE::.keys 15:37
camelia rakudo-moar e3d66c: OUTPUT«%DEPRECATIONS @UNITS &zip %pvalcodecache %propcodecache $?TABSTOP $UINT64_UPPER $sprintfHandlerInitialized $default &samewith &lastcall &nextsame &callsame &nextwith &callwith &proceed &succeed &redo &next &last &take &take-rw &return &return-rw &RETURN-PA…»
firefish5000 PerlJam: don't get too excited, I havn't a clue what I am doing.
lizmat messages, please
yoleaux 15:33Z <japhb> lizmat: Are you lizmat on GitHub as well?
lizmat yes
japhb lizmat: You now have a commit bit. Have the appropriate amount of fun. :-)
lizmat thank you, japhb :-) 15:38
japhb \o/ More contributors!
15:39 woolfy joined
leont Where could «cannot stringify this\n in submethod BUILD» come from? I'm not doing any stringy things in there, that line is the submethod declaration 15:39
dalek kudo/nom: 4a2aac5 | TimToady++ | src/core/GatherIter.pm:
just use Mu.new, good enough for =:= identity
15:40
PerlJam leont: I usually see that when I try to output an arrayish thing in NQP
japhb OOC, timotimo, aside from having "gone stable", why do you want to switch away from jqplot? (I originally chose it because I had a good friend that had used it for something else, so I had someone to bug with questions if I had trouble.)
15:40 kaleem joined
lizmat is enjoying the view in Hafelfingen 15:41
leont PerlJam: seems changing :@args to :$args fixed it, but not a very intuitive error 15:42
15:42 itz_ joined
PerlJam leont: maybe you wanted to use join(" ", @args) on output if you really wanted @args 15:43
firefish5000 the spot with the problems is on line 187 in class Cron method NextCmd. (realizing I didn't comment my code very well) 15:44
leont I don't want to output it at all!
15:44 itz left
PerlJam oh, then something else may have been trying to output it for some reason 15:44
leont I'm opening a Proc::Async, that may be involved
timotimo japhb: actually ... i'm not 100% sure. there's the thing where when the annotation on the side that explains what color means which implementation becomes so big that there's only a centimeter or two left for the graphs 15:46
hoelzro someone was on the channel last night and gave me an idea about docs on core classes/methods 15:47
what if there were an optional --docs switch to Configure.pl that would build and attach docs to core objects?
that way, build time shouldn't be impacted, but we could ship star releases with the --docs switch on, so users can use .WHY to explore
PerlJam firefish5000: I don't immediately see that your structure is self-referential or any thing, but I may have just missed it. 15:48
hoelzro is that something others on this channel would find useful? if so, I can start working on that
lizmat leont: fwiw, Proc::Async isn't even specced at this moment
japhb timotimo: So essentially that it handles the key for really dense graphs badly? We can solve that one in jqplot just by changing the legend gravity when it goes over a certain threshold of compiler count.
timotimo OK :)
lizmat jnthn: maybe I should spec it? or you may want to spec it ?
PerlJam read "ship star releases" as "starship releases" for some reason
japhb Wishful thinking? 15:49
hoelzro PerlJam: that makes me that that we should start calling Star release managers captains =)
lizmat
.oO( Rakudo <=> )
PerlJam hoelzro: what does that mean "attach docs to core objects"? 15:50
15:50 rindolf joined
FROGGS m: say 42.WHY 15:50
camelia rakudo-moar e3d66c: OUTPUT«(Any)␤»
FROGGS ohh ó.ò
hoelzro PerlJam: it would mean that ~Str.WHY eq 'Built-in class for strings. Objects of type Str are immutable.
' 15:51
I could write a script (well, I've actually already written most of it =/) to generate the docs from doc.perl6.org
PerlJam hoelzro: sure, but where would that come from? How would that be different that without the --docs option?
lizmat m: "Life, the Universe, and Everything".WHY.say # for FROGGS
camelia rakudo-moar e3d66c: OUTPUT«42␤»
jnthn lizmat: Where "it" is?
FROGGS lizmat++ 15:52
PerlJam hoelzro: isn't the main problem that the source isn't annotated with the appropriate text to populate WHY?
hoelzro PerlJam: well, the plan is that I would generate a core_docs.pm that would be put into CORE.setting
lizmat jnthn: the Proc::Async spec
hoelzro PerlJam: well, there was a discussion about annotating the source of the core objects a while back
PerlJam hoelzro: oh, so you would "manually" build the WHY for all of the stuff in src/core?
hoelzro some feel it may slow down the parse
and we'd have to move and sync the docs with doc.perl6.org 15:53
PerlJam: yes
using a dirty trick >:)
firefish5000 PerlJam: My Cron::TimeA class doesn't hang which is the only thing I thought may have been self-referential.
PerlJam hoelzro: I think I get it now. Yes, that would be awesome.
15:53 jerrycheung joined, jerrycheung left, FROGGS[mobile] left
lizmat ++hoelzro 15:54
jnthn lizmat: Ah, feel free 15:55
lizmat: It's still all kinda new. 15:56
lizmat and people are already dying to use it ! :-)
there are no spectest for it either yet, are there ? 15:57
hoelzro good to see others approve 15:58
15:58 fhelmberger_ left
hoelzro the tricky part will be creating a ./perl6-docless-m that I can run my script with to generate core_docs.pm =/ 15:59
15:59 denis_boyun joined
PerlJam hoelzro: It would be really nice to have in the REPL. Just like in python's REPL you can do "help(int)" 16:00
timotimo hehehe.
hoelzro that's exactly WHY I want to do this =)
PerlJam Though "~Int.WHY" seems a little weird to type to get documentation. Maybe we need a convience method on Mu or Any or something so that Int.docs would work 16:01
and maybe it could also be Int.docs('HTML') too 16:02
hoelzro PerlJam: well, we could provide a help() sub
jnthn lizmat: No. I only had time to get a first version of it working ahead of YAPC, and now things are a little busy.... Feel free to pick it up. :)
leont jnthn: how do I use the stdout supply from Proc::Async? It's not clear to me at all. 16:03
jnthn leont: .tap or .act it, as with any Supply 16:04
leont: It's throw chars (or bytes) at you whenever some arrive
*It'll
TimToady stdout?
jnthn TimToady: You're tapping the stdout of the process you spawned. 16:05
TimToady ah, okay
16:05 Akagi201 left 16:06 SamuraiJack left
leont I thought I did that, turns out I made a small mistake in my code :-s 16:06
TimToady looks at his coffee and wonders why it's not working yet...
jnthn Constructing $*VM and $*DISTRO is some work. I've got them, and some others, constructed on first use.
Unfortunately, loads of first uses for both are in setting up @*INC and friends.
lizmat yes, that's why I didn't bother making them lazy 16:07
jnthn Wrong conclusion.
lizmat ah?
jnthn We can't afford this. 16:08
I just profiled lazifying them. 16:09
TimToady our normal module lookup should be independent of vm or distro, so it should only kick in for dev situations, and should probably be factored out somehow from startup in any case
jnthn 50% of the cost of loading the setting is now attributable to setting up @*INC
TimToady "it" being INC semantics
jnthn uh, that's not quite true
50% of the stuff called from the setting mainline is now in there 16:10
30% of overall load time
lizmat I'm not following anymore 16:11
jnthn lizmat: I don't have a concrete suggesiton yet really, and need to sleep soon. 16:12
lizmat several things are needed: maybe DISTRO can be factored out
but $*VM is needed
TimToady or can be moved up to setting compile time, not user startup time
lizmat *?VM ? I'm all for it! 16:13
jnthn lizmat: But by demanding $*DISTRO and $*VM and the other work that it does, the code in the block that sets up @*INC and friends accounts for 30% of our startup
TimToady or can be put into a disk cache of some sort
lizmat $?VM rather
16:13 rindolf left
lizmat last time I tried that, it dies badly at deserializing 16:13
leont It's working :-) (at least the parts I've written already) \o/
TimToady the common case is that $*VM will be nearly identical to $?VM
16:14 philh_ left
TimToady maybe we need to track what is really dynamic better 16:14
lizmat yes... 16:15
and BTW, whatever happened to "first get it working, then get it working fast"?
S11 is still not implemented
TimToady we're at the comma :P
lizmat *not* as far as S11 and S22 are concerned :-( 16:16
TimToady the comma is unequally distributed :)
lizmat and I'm getting pretty frustrated at being blocked on that :-(
TimToady what's blocking you?
lizmat the whole spaghetti mess that is module loading at the moment 16:17
16:17 Salai left
jnthn lizmat: While that applies in general, here we have a situation where it's impacting everything else... 16:17
lizmat to get sane semantics and extensibility, I think this needs to be done mostly in Perl 6 space 16:18
dalek kudo/nom: c1090b2 | jonathan++ | src/core/ (4 files):
Lazily construct more hefty objects at startup.

Both $*DISTRO and $*VM end up getting used during initialization; this will need some further attention. For $*KERNEL and $*PERL we get the benefit right off.
16:18 [Sno] left
TimToady I suspect some of this will straighten out as we find ways of simplifying standard module importation 16:18
firefish5000 I Noticed that it's the grammar that .perl is hanging on. Here is a version with only my grammar pastebin.com/GjHrrcav (a lot less clutter now)
jnthn lizmat: I'm not saying that something has to change Right Now
TimToady it's those darn devs that keep wanting to do weird stuff...
lizmat I'm one of those darn devs... 16:19
PerlJam yeah ... like use CPAN *and* Perl 6 *at the same time* ;)
lizmat it's just that reality is outweirding me
16:20 akaseki joined
jnthn lizmat: Just that this kind of impact can't really stand 16:20
TimToady we'll figure something out
jnthn Aye
16:21 xinming_ is now known as xinming
TimToady a lot of packages put these sorts of decisions into their installer, for instance 16:21
jnthn The thing with module loading is that while it's fine if the very low level of it is in NQP, current ModuleLoader ends up trying to own the "figure out what to load" as well as the lower-level pieces.
16:21 rindolf joined
lizmat the other day I profiled t/spec/S02-types/WHICH.t 16:21
and shuddered at the sight of how much was spent in reifying and gimmeing 16:22
TimToady well, that's the list refactor
jnthn lizmat: Inclusive, or exclusive? But yes.
TimToady which I'm working on, feebly
16:22 davido_ joined
jnthn has seen profiles where the exclusive time in reify is rather worryingly high... 16:22
lizmat so this startup optimizing right now, really feels very premature to me 16:23
jnthn lizmat: Sorry, but it's high, high time to deal with our startup time. It affects spectest time, ability to use Perl 6 for quick scripting things, initial user perception... 16:24
PerlJam jnhtn++
colomon +1 16:25
TimToady well, we need to figure it out without tearing each other's heads off, is my suggestion :)
jnthn If htat's what I'm doing, I should probably go to bed.
'ngiht
TimToady night
PerlJam sleep well jnthn
16:25 akaseki left
lizmat gnight jnthn 16:26
16:26 akaseki joined
firefish5000 Ohh, mayby .perl is working on it, just taking a long time? (at least it works with just the grammar, from my last paste) 16:26
lizmat TimToady, jnthn: also the brokenness of "use lib" is worrying me 16:28
use lib is the *only* module atm of which its effects are *not* lexically scoped 16:29
and this is all due, afaics, to the fact that I cannot export a dynamic @*INC to the CALLER:: context at compile time 16:30
pmurias I need to install NativeCall separately from rakudo?
lizmat CALLER:: in this case: the lexpad of the code doing "use" 16:31
16:31 rindolf left
FROGGS pmurias: yes 16:31
pmurias: but it is part of star
pmurias Inline-Perl5 is developed against start or rakudo HEAD? 16:32
FROGGS pmurias: that shouldnt matter
because there are no VM patches that aid Inline::Perl5 yet 16:33
TimToady the name of that namespace is really supposed to be COMPILING, not CALLING
er, CALLER
but yea, we need to establish some kind of lexical hints mechanism 16:34
we can't just rely on tweaking dynamics in the parser
especially since some of these hints have to persist to passes after the parser
FROGGS ohh! %^H ?
lizmat I would call this a 6.0 blocker
anyways, off for some socializing in Olten... & 16:35
FROGGS more fore the impl than for the spec?
k, see ya :o)
leont lizmat: have fun!
FROGGS lizmat / jnthn: I am also in favor that ModuleLoader.nqp is only in charge for loading bytecode by absolute filename after the setting has been loaded 16:36
TimToady more like copying some of the compiler's $*FOO into $?FOO space; we probably don't need a %?HINTS if the ? mechanism itself will server
16:39 domidumont joined
TimToady first step is to figure out what the module loader really needs to know, and how much of that is truly dynamic, and how much is coming in through VM and DISTRO merely because it's been convenient up till now, but that can either be determined more statically, or at install time, or via system call that bypasses those vars 16:40
nine pmurias: i'm developing on HEAD, but should not matter yet 16:41
TimToady p5 completely ignores its config vars on startup, basically
16:41 denis_boyun left
FROGGS TimToady: the module loader just needs to know the file extensions (.jar, .moarvm, .pir) 16:42
TimToady so the question is what currently prevents p6 from taking the same approach?
FROGGS that's all me thinks
16:42 denis_boyun joined, telex left
TimToady so maybe those should be nqp instructions to the VM 16:43
or some known function to call
FROGGS nqp::loadbytecode(%chosen<load>); <-- we already pass the ab solute file name down to the VM 16:44
16:44 telex joined
TimToady so leave off the extension and let the VM add it? 16:44
that's one appraoch, not suggesting it's the right approach 16:45
16:45 chenryn left
TimToady is thinking more of introspection of the VM and OS 16:45
another approach is to break up the loading of $*VM and $*DISTRO to only penalize you for the parts you load 16:46
or figure out what we need to load, and put them into different variables that don't pull in everything 16:47
there's lots of ways to fix this, I suspect
16:47 firefish5000 left
TimToady but we all tend to fall into the XY trap from time to time 16:48
16:48 firefish5000 joined
FROGGS we don't need $*VM and $*DISTRO at all when loading a module, since the fileexts are hard coded due to our fudge blocks 16:48
but setting up @*INC involves fetching paths from the VM, so we build $*VM first
16:49 denis_boyun left
FROGGS and $*DISTRO might be needed for the PATHSEP to handle PERl6LIB 16:49
16:50 kaleem left, denis_boyun_ joined 16:52 virtualsue left
timotimo hrm. 16:52
we could conceivably put th estuff into hll symbol namespace?
and nqp::gethllsym and such
16:56 denis_boyun_ left 16:58 pmurias left 16:59 kaleem joined 17:00 akaseki is now known as Salai, dakkar left
dalek kudo-star-daily: 239bcdd | coke++ | log/ (14 files):
today (automated commit)
17:03
rl6-roast-data: 1af5629 | coke++ | / (4 files):
today (automated commit)
17:03 jack_rabbit joined
FROGGS hmmmm, my CPANda explodes because of al label in a method, but I can't find it O.o 17:04
[Coke] .seen carlin
yoleaux I saw carlin 14:16Z in #perl6: <carlin> colomon: more info about reop if you're interested; www.tedunangst.com/flak/post/reop
[Coke] carlin: your recent change to S32-temporal/local.t has resulted in many failing tests on the daily runner. 17:05
17:05 zakharyas joined
timotimo aye 17:06
on my system, too
leont This doesn't DWIM, can someone tell my what I should do: while $!partial_input ~~ s/ $<line>=(\N+) \n// { 17:08
timotimo you want to cut the beginning of the string off every time? 17:10
PerlJam leont: at a guess, probably use the method form of s///. while $!partial_input.=subst( /$<line>=(\N+) \n/, '') { ... } 17:11
17:11 dayangkun left
FROGGS m: my $i; LOOP: while $i++ < 10 { } 17:11
camelia ( no output )
FROGGS m: my $i; LOOP: while $i++ < 10 { say $i; next LOOP } 17:12
camelia rakudo-moar 4a2aac: OUTPUT«1␤2␤3␤4␤5␤6␤7␤8␤9␤10␤»
FROGGS m: my $i; LOOP: while $i++ < 10 { say $i; last LOOP }
camelia rakudo-moar 4a2aac: OUTPUT«1␤»
FROGGS m: my $i; LOOP: while $i++ < 10 { say $i; last LOOP }; say LOOP
camelia rakudo-moar 4a2aac: OUTPUT«1␤Label<LOOP>(at /tmp/QfjsfhoZNk:1, 'my $i; LOOP: while $⏏LOOP: while $i++ < 10 { ')␤»
FROGGS eww
leont PerlJam: that seems to have helped :-)
17:18 spider-mario left 17:19 jack_rabbit left
itz_ is S30 intended just to doc perl modules which ship with rakudo itself and not anything else? 17:19
[Coke] arglebargle. I suspect it's a DST issue.
17:21 gfldex joined 17:22 spider-mario joined
[Coke] e.g: 17:22
# expected: '1998-12-31T18:59:60-0500' 17:23
# got: '1998-12-31T19:59:60-0400'
dalek c: 0e775e7 | (Steve Mynott)++ | lib/HomePage.pod:
langauge typo corrected
17:26
leont jnthn: how do I drain the input supply on termination of the process in Proc::Async?
[Coke] timotimo: ... looks like we just need to change the expected results from a -05 based tz to the declared -04 timezone. would you agree? 17:27
17:27 kaleem left
[Coke] ... no, more things have -05 than just the failures. 17:28
leont $proc.start().then(-> { something with the input supply })? 17:30
dalek ast: 67373d0 | coke++ | S32-temporal/local.t:
Fudge recently-unskipped tests.
17:32
hoelzro itz_ brings up an interesting point: why are S32-* and perl6/doc distinct things? 17:37
[Coke] timotimo: I fudged it.
timotimo i have no clue about timezones :) 17:41
i chose .o
i chose to.
17:42 davido_ left 17:45 sorear left
PerlJam sorear was online?!? 17:47
dalek ecs: fb6b129 | (Steve Mynott)++ | S (2 files):
the the -> the
17:48
leont $foo.=subst() doesn't allow me to check for success/failure :-s, that is unfortunate 17:49
timotimo you can put a { $success = 1 } inside your regex %) 17:50
FROGGS PerlJam: his avatar is often here :o)
17:50 sorear joined
FROGGS m: "abc".subst(/b/, ''); say so $/ 17:51
camelia rakudo-moar c1090b: OUTPUT«True␤»
FROGGS m: "abc".subst(/b/, ''); say so $/; "abc".subst(/d/, ''); say so $/;
camelia rakudo-moar c1090b: OUTPUT«True␤False␤»
FROGGS leont: ^^
TimToady he wants to use .= 17:52
does it work for that? 17:53
(and I thought we turned off the $/ binding for .subst once upon a time...)
PerlJam m: my $s = "abc"; $s.=subst(/b/, ''); say so $/; $s.=subst(/d/, ''); say so $/; 17:54
camelia rakudo-moar c1090b: OUTPUT«True␤False␤»
17:55 sqirrel joined
TimToady m: my $s = "abc"; $s.=subst(/(b)/, { $0 ~ $0 }).say 17:56
camelia rakudo-moar c1090b: OUTPUT«abbc␤»
TimToady m: my $s = "abc"; $s.=subst(/(b)/, "$0$0").say
camelia rakudo-moar c1090b: OUTPUT«ac␤»
TimToady I guess that's right
PerlJam If a tad confusing :) 17:57
(at least it took me a second to go from "huh?" to "oh.")
leont jnthn: still haven't figured out how to drain stdout_chars, do you have any gist of you using it? 17:58
dalek c: 88a0434 | Kamil++ | bin/p6doc:
p6doc shall not ignore files that have only declarative comments
c: 19725c6 | (Steve Mynott)++ | bin/p6doc:
Merge pull request #25 from teodozjan/master

  p6doc not ignore files that have only declarative comments
TimToady m: my @s = "abc", "bcd", "bb""; @s».=subst(/(b)/, { $0 ~ $0 }); say @s 17:59
camelia rakudo-moar c1090b: OUTPUT«===SORRY!=== Error while compiling /tmp/D2aqKpGav1␤Two terms in a row␤at /tmp/D2aqKpGav1:1␤------> my @s = "abc", "bcd", "bb"⏏"; @s».=subst(/(b)/, { $0 ~ $0 }); say @␤ expecting any of:␤ postfix…»
TimToady m: my @s = "abc", "bcd", "bb"; @s».=subst(/(b)/, { $0 ~ $0 }); say @s
camelia rakudo-moar c1090b: OUTPUT«ac cd b␤»
TimToady m: my @s = "abc", "bcd", "bb"; @s».=subst(/(b)/, -> $/ { $0 ~ $0 }); say @s 18:00
camelia rakudo-moar c1090b: OUTPUT«abbc bbcd bbb␤»
TimToady it's not entirely clear that we should support implicit $/ binding in the method forms 18:01
PerlJam That p6doc patch isn't quite right. #| and #= don't have to appear at the beginning of a line.
TimToady though it does allow the "so $/" there
itz_ PerlJam: oh yeah 18:03
whats the best fix? just to remove the ( )? 18:04
PerlJam I dunno. I'd probably do / ^'='/ || / '#|' | '#=' / 18:06
FROGGS TimToady: I made it bind to $/, but perhaps because of a misunderstanding of the spec 18:08
TimToady well, it's been argued both ways 18:09
FROGGS question for me is: what is the most important rule here? a) methods shall not have side effects or b) every regex binds to $/ 18:10
18:10 PZt joined
FROGGS nowadays I tend to think a) 18:10
PerlJam still thinks b) 18:11
But that might be some residual p5think
itz_ PerlJam: is that really any different to /^'=' | '#|' | '#='/ 18:12
PerlJam itz_: nah, probably not. I'm just unsure on the precedence of ^ vs. |
18:13 zakharyas left
itz_ m: print 1 if "a#=" ~~ m/^'=' | '#|' | '#='/ 18:16
camelia rakudo-moar c1090b: OUTPUT«1»
itz_ you had me worried there :)
dalek c: 2b4bfef | (Steve Mynott)++ | bin/p6doc:
<PerlJam> That p6doc patch isn't quite right. #| and #= don't have to appear at the beginning
18:18
18:24 [Sno] joined
dalek volaj/cglobal: 7df6815 | (Tobias Leich)++ | lib/NativeCall.pm6:
expose C globals like native subs
18:33
18:34 raiph left
dalek p/cglobal: 1f05ba9 | (Tobias Leich)++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
add op nativecallglobal on moar only atm
18:35
18:36 raiph joined 18:37 BizarreCake joined
dalek volaj/cglobal: f923faf | moritz++ | lib/NativeCall.pm6:
fix nativecast test failures

since the built-in slicing does not like our CArray, provider our own (potentially slicing) multi postcircumfix:<[ ]>.
No idea if this is the right fix. Maybe TimToady++ has a better idea.
18:41
volaj/cglobal: 62c5f9d | moritz++ | lib/NativeCall.pm6:
Fix tests

turns out that we must not return a Parcel for a single-element slice/array access
volaj/cglobal: d26adfb | (Tobias Leich)++ | lib/NativeCall.pm6:
Merge branch 'master' of github.com/jnthn/zavolaj into cglobal
raiph m: (* + *).WHAT.say; (* min *).WHAT.say; # is this a known bug? 18:42
camelia rakudo-moar c1090b: OUTPUT«(WhateverCode)␤(Whatever)␤»
TimToady m: say (my $ = 1,).WHICH # <-- grondilu
camelia rakudo-moar c1090b: OUTPUT«Parcel|(Scalar|56631976)␤»
TimToady it isn't a Parcel without the comma, so derefs the $ 18:43
moritz raiph: not sure it's a bug; there are explicit exceptions for several operators to not autocurry 18:48
TimToady looks kinda buggy to me 18:50
min is not one of those exceptions, that I know of
grondilu_ TimToady: ok, noted
18:51 grondilu_ is now known as grondilu, grondilu left, grondilu joined 18:57 guru joined, guru is now known as ajr_ 18:58 mberends joined 19:00 sqirrel left 19:01 davido_ joined
leont Progress! I have part of an async TAP harness written down :-) 19:02
FROGGS Function X::Panda needs parens to avoid gobbling block 19:03
at /home/froggs/dev/nqp/install/languages/perl6/site/bin/panda:64
------> CATCH { when X::Panda { say $_.message }⏏ }
jnthn: I think I found a precomp bug :o(
jnthn: it seems that the symbol X::Panda is not defined when panda is precompiled 19:04
leont++
:o)
nwc10 how do I translate this program to Perl 6 using threads:
perl -e 'use threads; threads->new(sub {print "Hello world\n"})->join() for 1..9'
I'm specifically wanting to benchmark threads. Not the nice high level things. 19:05
the Internet is not coming up with answers that work for me
flussence Thread.start(...).finish should work 19:06
vendethiel- nwc10: await do for ^10 { start { say "Hello World" } }
m: await do for ^10 { start { say "Hello World" } }
camelia rakudo-moar c1090b: OUTPUT«Hello World␤Hello World␤Hello World␤Hello World␤Hello World␤Hello World␤Hello World␤Hello World␤Hello World␤Hello World␤»
19:07 Ven joined
nwc10 um, technically ^10 is 0..9 not 1..9 isn't it? 19:08
I can fix the perl 5 to line up with that
Ven m: say @(^10) 19:09
camelia rakudo-moar c1090b: OUTPUT«0 1 2 3 4 5 6 7 8 9␤»
Ven nwc10: ^10 is 0..^10
perl6++ :)
[Coke] Yes, that's twhat he just said.
Ven oh, I misread :D 19:10
grondilu ^$n is on top of the P6 idioms I miss in P5
Ven well then, 1..9 or 1..^10, right.
19:10 zakharyas joined
nwc10 oh, actually I don't need it :-) 19:11
dumbbench -- env ~/Sandpit/5182i/bin/perl5.* -MMoose -Mthreads -e 'threads->new(sub {print "Hello world\n"})->join() '
cmd: Rounded run time per iteration: 3.115e-01 +/- 2.5e-03 (0.8%)
dumbbench -- env ./perl6-m -e 'await do { start { say "Hello World" } }'
cmd: Rounded run time per iteration: 3.108e-01 +/- 3.3e-03 (1.1%)
so, at *one* thread, rakudo beats ithreads once Perl 5 has loaded Moose 19:12
also, seemingly gratuitous use of env is because for some reason dumbbench doesn't work if I just tried to run perl-6 directly
I have not yet used strace to figure out why
(it's really slow. It doesn't make snse) 19:13
anyway, rakudo concurrency already just for the win
times for 5.20.1-RC1 are about the same as 5.18.2
19:16 raiph left 19:22 darutoko left 19:24 domidumont left 19:35 brrt joined
brrt \o 19:36
yoleaux 3 Sep 2014 00:05Z <timotimo> brrt: i wonder why i didn't get any inlines at all in the previous instance i tried it, but now i do see inlines show up in the jitlog. maybe it only shows inlines if it has deopt points nearby?
brrt timotimo: i rely on 'inline' annotations in the spesh graph. if the spesh graph doesn't have them, then i don't know anything about them, either
19:38 dwarring joined
TimToady obviously we need a single point of control to decide whether an item can serve as its own "parcel", and it should be roughly the dual of .[0] on non-positionals 19:46
19:46 slavik left
TimToady but noms first & 19:46
19:51 itz joined 19:54 itz_ left 19:59 slavik joined
timotimo o/ brrt 20:00
brrt \o timotimo
how's stuff been :-)
.... omg, segv in emacs
....
20:03 BizarreCake left
timotimo i've nommed things today :3 20:04
but that's not a big difference to other days
i suppose things are fine :)
brrt :-) 20:08
brrt is rather tired actually, has been very busy week so far :-)
low priority off-topic question, but can anybody here guess why photosynthesis can split water molecules into protons and oxygen by the power of a few photons, and 'regular' light cannot split water? 20:09
i.e. if the energy of light is sufficient to split water, why is water stable under normal conditions?
(i ask because i'm not in agreement on how common-sense the answer is) 20:10
timotimo that's what a "catalyst" is for :)
20:10 pippo joined
pippo o/ #perl6 20:10
colomon \o
brrt that's basically a good answer.. there is another, simpler one :-) 20:11
(although i don't deny that the catalytic function is essential) 20:12
pippo question. May I use a grammar prior to its definition? I want to put the grammar's code definition at the bottom of my perl script?
timotimo what does a modern person use to build html things?
PerlJam pippo: predeclare it and I bet you can
pippo PerlJam: how ? 20:13
brrt timotimo: markdown if that person can get away with it
PerlJam pippo: grammar Foo;
pippo PerlJam: trying… 20:14
PerlJam: nope :-( No such method 'TOP' for invocant of type 'Foo' 20:15
timotimo brrt: no, i do need html
brrt anyway, the simpler reason is that water is mostly transparent :-)
no way to capture the energy of a photon if you're just letting them through
timotimo ah, duh :)
PerlJam: no, grammar Foo; is not a predeclaration 20:16
pippo: you want grammar Foo { ... };
20:16 kaare_ left
pippo PerlJam: Yesssssssssssssssssss!!! TY! 20:17
20:17 breinbaas joined
pippo timotimo: Yesssssssssssssssssss!!! TY! 20:17
PerlJam heh.
timotimo++
pippo :-))
TimToady another answer is that it takes the energy of several photons to split one molecule 20:18
yet another answer is that a photon can indeed split water if it's energetic enough to make the water look opaque :) 20:19
brrt yeah :-) 20:20
and a last would be that /if/ oceanic water would be split by light, it would quickly react to water again 20:21
because where would the oxygen+protons go?
(in photosynthesis they are carefully kept apart)
TimToady well, assuming there wasn't enough energy to transmute something
20:21 krunen joined
brrt typically there isn't :-) 20:22
TimToady thankfully :)
brrt timotimo: i'm still not clear on what exactly you want
TimToady you're living in the O-zone
well, not that UV has enough energy either 20:23
brrt hmm... as i understand it it doesn't take all that much energy to split water as long as you have a good catalyst and a thermodynamic driver 20:25
TimToady takes "cosmic rays" to get ¹⁴C
most of them ain't photons though 20:26
brrt what is a cosmic ray, in general? 20:27
20:27 zakharyas left
gfldex a proton 20:28
a very very fast proton
brrt didn't know that 20:29
gfldex brrt: here you can even learn where they come from: www.youtube.com/watch?v=aTBvPxQIFts 20:30
brrt awesome :-) 20:31
do we have a markdown parser in p6 yet? 20:32
20:35 Ven left
tadzik yes 20:35
sergot++ and masak++ did that 20:36
brrt ooh nice 20:38
btyler nativecall bindings to discount would probably be pretty easy too 20:40
I might do that
20:43 dolmen joined 20:47 Ven joined 20:54 kurahaupo_ joined, Salai left 20:55 kurahaupo left 20:57 akaseki joined 21:00 akaseki is now known as Salai, kurahaupo_ left 21:02 brrt left 21:10 gfldex left
dalek p: 21215cb | (David Warring [email@hidden.address] | examples/rubyish/rubyish.nqp:
Construct positional before named arguments.

Work around for nqp#179. rubyish tests now all passing on MoarVM.
21:11
21:12 _thou left
vendethiel- dwarring++ 21:13
timotimo oh cool
21:13 Ven left
timotimo time to write more tests :) 21:13
vendethiel- 'break it!
dalek kudo/nom: 72f0e37 | duff++ | src/core/Str.pm:
A more efficient Str.samecase
21:15
dwarring heh
timotimo .seen tony-o 21:16
yoleaux I saw tony-o 29 Aug 2014 17:02Z in #perl6: <tony-o> lol
timotimo not too long ago, yay
.tell tony-o i'm going to play around with your HTTP::Server::Async for a bit :) 21:17
yoleaux timotimo: I'll pass your message to tony-o.
21:19 SamuraiJack joined
dwarring nqp jvm is missing HasAttrStore, so rubyish not working too well there yet 21:19
(repr *HashAttrStore)
needed for classes 21:20
[Coke] PerlJam: how much more efficient is that samecase? 21:23
PerlJam "lots" :) 21:25
In my testing I samecased a string with 1000 characters and patterns of 100 and 1000 characters. The original samecase took (on average) .6 and .9 seconds respecitively. The new one takes something like 0.002 and 0.011 seconds. 21:27
also, with the original I was only patient enough to wait for it to try 10 runs because they took so long, but with the new one I can stand 1000 runs easily. :) 21:29
timotimo .tell tony-o it seems like your documentation and implementation disagree on the handling of the responsestack; your documentation says the sub should return True or False to influence further processing on the request, but the implementation seems to ignore the return value
yoleaux timotimo: I'll pass your message to tony-o.
21:30 SamuraiJack left 21:33 DarthGandalf left 21:37 DarthGandalf joined 21:39 lastofthe left 21:41 itz_ joined 21:44 itz left 21:46 itz joined 21:48 itz_ left 21:56 itz_ joined 21:59 itz left
firefish5000 Is there a way to lock variables when using threads? (i believe NYI the last time I tried) 22:09
timotimo we do have locks
but using some pattern/primitive that doesn't require locks is usually a better way to go
firefish5000 Thats good to here. But I'll try making my old code work without it. Thanks! 22:11
grondilu std: class Foo {}; multi infix:<**>(Foo $, -1) { "1/Foo" };
camelia std 53b3ca6: OUTPUT«===SORRY!===␤Malformed parameter at /tmp/aAWj3M1V5B line 1:␤------> class Foo {}; multi infix:<**>(Foo $, ⏏-1) { "1/Foo" };␤ expecting any of:␤ name␤ parameter␤ signature␤Parse failed␤FAILED 00:01 127m␤»
grondilu std: class Foo {}; multi infix:<**>(Foo $, $ where -1) { "1/Foo" }; 22:12
camelia std 53b3ca6: OUTPUT«ok 00:01 128m␤»
grondilu m: class Foo {}; multi infix:<**>(Foo $, $ where -1) { "1/Foo" }; say Foo **-1
camelia rakudo-moar c1090b: OUTPUT«1/Foo␤»
grondilu is surprised he can't use -1 as a litteral parameter in a multi 22:13
std: class Foo {}; multi infix:<+>(Foo $, -1) { "-1+Foo" };
camelia std 53b3ca6: OUTPUT«===SORRY!===␤Malformed parameter at /tmp/zWf0UbS8O9 line 1:␤------> class Foo {}; multi infix:<+>(Foo $, ⏏-1) { "-1+Foo" };␤ expecting any of:␤ name␤ parameter␤ signature␤Parse failed␤FAILED 00:01 127m␤»
PerlJam grondilu: you can always use $ where -1 in the mean time 22:18
(but, yeah, it seems buggy that a literal -1 doesn't work)
grondilu I'll use $ where -1 as a workaround indeed 22:19
PerlJam std: sub foo (-1) { } 22:24
camelia std 53b3ca6: OUTPUT«===SORRY!===␤Malformed parameter at /tmp/0mpOzuHfu6 line 1:␤------> sub foo (⏏-1) { }␤ expecting any of:␤ name␤ parameter␤ routine_def␤ signature␤Parse failed␤FAILED 00:01 122m␤»
PerlJam std: sub foo (-Inf) { } 22:25
camelia std 53b3ca6: OUTPUT«===SORRY!===␤Malformed parameter at /tmp/j8drqPjEyW line 1:␤------> sub foo (⏏-Inf) { }␤ expecting any of:␤ name␤ parameter␤ routine_def␤ signature␤Parse failed␤FAILED 00:01 122m␤»
PerlJam r: sub foo (-1) { }
camelia rakudo-jvm c1090b: OUTPUT«Unhandled exception: java.lang.RuntimeException: Missing or wrong version of dependency 'src/Perl6/Grammar.nqp'␤ in (gen/jvm/main.nqp)␤␤»
..rakudo-{parrot,moar} c1090b: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Malformed parameter␤at /tmp/tmpfile:1␤------> sub foo (⏏-1) { }␤ expecting any of:␤ statement list␤ prefix or term␤ prefix…»
PerlJam r: sub foo (-Inf) { }
camelia ( no output )
..rakudo-jvm c1090b: OUTPUT«Unhandled exception: java.lang.RuntimeException: Missing or wrong version of dependency 'src/Perl6/Grammar.nqp'␤ in (gen/jvm/main.nqp)␤␤»
22:31 kurahaupo joined
pippo night #perl6 22:36
22:36 pippo left 22:39 dirtyob joined, treehug88 left
leont Is there a conventient way to pass %( $/ ) except with Strings instead of match objects? Now converting by hand, feels like more code than it should. 22:40
PerlJam leont: I don't think so. But, I too wish for something like that. 22:42
leont Best I can currently come up with is «| %( $/.kv.map( -> $key, $value { $key => $value.Str } ))» 22:46
22:49 lastofthe joined
PerlJam I'd just use $^k and $^v myself, but that looks about like what I came up with last time I thought about it. 22:49
I think I might have done ~$^v instead of calling .Str, but whatever 22:50
leont Right, I forgot about implicit named args :-) 22:51
lizmat they're positionals... not named args 22:52
leont I just realized that after I said it
leont hasn't felt like such a noob in years :-p
lizmat «| %( $/.kv.map( { $^k => ~$^v } ))»
TimToady |%($/kv.map(* => *)) maybe 22:53
er, with a ~
leont Shiny 22:54
TimToady there are also ways of captureing only strings using [] instead of (), sometimes
22:54 dirtyob left
lizmat
.oO( maybe a .spairs method, which would automagically stringify values
22:55
) 22:56
22:56 valiantfirkin joined
leont Yeah, I suspect this would be common enough to warrant a method 22:56
22:57 _thou joined
lizmat anyways... need to get up rather early again... so good night #perl6! 22:58
firefish5000 Vim runs awfly slow when editing perl6 code. Anyone know any workarounds?
23:01 valiantfirkin left 23:02 burpcopper joined
TimToady write smaller modules? 23:02
23:02 _thou left
leont I'm observing the same, I suspect the perl6 mode is at fault 23:04
grondilu firefish5000: I recently decided to put # vim: syntax=off on the bottom of long modules
23:04 xragnar left
grondilu though Ideally there should be a perl6-light.vim 23:04
TimToady I've never had much trouble, except that sometimes it takes a while for the highlighting to reach where I am, but that doesn't stop me from editing 23:05
grondilu TimToady: you're using vim-perl?
TimToady there may well be some inefficiencies in the current code that could be addressed
no, just "big" vim
grondilu hat do you mean? 23:06
grondilu thought he had the biggest vim ever
firefish5000 grondilu, I'll try syntax off (though Ill probably just deal with it most of the time) 23:07
TimToady some linuxes ship with a minimal vim that doesn't do very much, I just mean bigger than that
but not with -perl
for some reason never got into vim-perl
maybe because I knew I'd rewrite the whole thing if I did :) 23:08
grondilu removes his .vim/syntax/perl6.vim linked to vim-perl's syntax file. He then realizes his install of Vim apparently comes with a shipped perl6 syntax file 23:09
23:11 burpcopper left
grondilu well it seems that my syntax file is /usr/share/vim/vim74/syntax/perl6 and it's from vim-perl anyway 23:12
firefish5000 The syntax brace matching is buggy and with just a few hundred lines it's slow... Mayby I should try making a 'big-vim' and see if that solves the problem. (jk)
23:14 xragnar joined
grondilu hum I was looking at the different versions of vim on my distrib and that made me learn about github.com/scrooloose/syntastic Could be nice to have this work with perl6 23:18
23:19 ajr_ left
firefish5000 wonders if he should enable the 'perl' use flag on his vim instilation.. 23:19
grondilu unless you do a lot of Vim scripting it's probably not much useful. 23:20
firefish5000 Rreally? that's too bad.. 23:22
leont is observing 100 CPU usage when doing anything interesting with Promises :-/ 23:29
23:30 spider-mario left
tadzik :| that doesn't sound right 23:33
firefish5000 Any plans for panda to have a upgrade/rebuild (backend?)/reinstall option? (I currently search my history for 'panda install' after rakudo/moarvm upgrades) 23:34
tadzik firefish5000: I think you're looking for rebootstrarp 23:35
23:35 xenoterracide joined
tadzik firefish5000: rakudobrew does that for you automatically after every rakudo update 23:35
firefish5000 does rakudo brew handle the upgrades or could it work with a system installation? 23:39
23:39 chenryn joined
tadzik it does everything, doesn't touch the system installation 23:40
keeps everything in $HOME
firefish5000 Alright, I'll give it a try. Thanks tadzik! 23:41
tadzik you're welcome :)
firefish5000: recommended reading: feather.perl6.nl/~tjs/talks/plpw14/rakudobrew/#/
firefish5000 Thanks! One last question, can it sync with git versions of rakudo/nqp/moarvm? (if so I'll remove my system installation) 23:47
23:49 davido_ left 23:50 zapho53 joined, Rotwang joined
tadzik firefish5000: it does use git, yes 23:51
I'm not sure what do you mean by "sync with git versions"
23:51 Rotwang left
firefish5000 latest git head, not just rakudo star. It looks lake it should since it does use git. 23:52
zapho53 Where can I find up to date documentation for Perl 6? Perl Foundation site lists a book on github which hasn't been updated for 2 years but I imagine a lot may have changed since then. 23:54
tadzik firefish5000: you can specify any git tag or whatever goes into 'git checkout' 23:58
firefish5000: by default it's HEAD 23:59
firefish5000 That will work! Thanks Again!