»ö« 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.
Mouq I don't understand github.com/perl6/nqp/issues/194 but I'm hoping if I paste the link here more people will see it 04:45
dalek ast: 6db87b2 | usev6++ | S32-exceptions/misc.t:
Cleanup description of passing test for RT #122645
07:01
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122645
dalek kudo/parrot-icu-required: 2b6cb52 | moritz++ | / (2 files):
Make ICU a hard requirement for parrot

Perl 6 is inherently a Unicode-aware language, and parrot without ICU is not. We seem to have trouble maintaining tests that do not depend on Unicode features, which tells us that not having Unicode is not acceptable.
07:31
FROGGS nice :o) 07:32
moritz note that this is in a branch, to be merged after this months release
FROGGS moritz: now I wonder how that will work out on windows...
moritz FROGGS: well, folks need ICU. Or use MoarVM 07:33
FROGGS yes, I think it is possible to have ICU on windows, but it was hard to set up IIRC
lizmat FROGGS moritz /o 07:34
moritz \o lizmat 07:35
sergot hi o/ 07:36
FROGGS hi lizmat, sergot :o) 07:47
hopefully I'll have a properly working internet connection again by this evening... then I'll have the chance to care about a few things again 07:48
moritz itz: the first link on pl6net.org (to timotimo++'s post) is a 404 07:58
lizmat moritz: pl6net.org ?? 08:04
pl6anet.org :-) 08:05
moritz lizmat: yes, sorry
lizmat itz: some RSS feed mangling issue ?
p6weekly.wordpress.com/2014/10/20/2...0%AF6-ide/ is the correct link
moritz btw, timotimo++ for the post 08:07
dalek ast: 7050e78 | usev6++ | S04-phasers/end.t:
Add test for RT #122355
08:12
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122355
dalek ast: ee544c6 | (Elizabeth Mattijsen)++ | S02-types/baghash.t:
Unfudge 2 passing TODO's for JVM
08:22
kudo/nom: 3687508 | (Elizabeth Mattijsen)++ | src/core/Baggy.pm:
Fix breakage on JVM in the most awful way

By conditionally reverting to the map {} wrapper approach of before. YUCK!
08:23
kjs_ timotimo++ #p6weekly.wordpress.com/ 08:26
Ven o/, #perl6 09:11
FROGGS hi Ven
rurban Released parrot 6.9.0 (supported) without the coro returncc label regressions. Next month 09:42
Ven rurban++ 09:45
mathw I was going to give a Perl 6 talk to Nottingham.pm this week. I've had to postpone it, but I thought you'd all enjoy the announcement: "It seems our Perl 6 talk will not be ready before Christmas" 10:05
Ven :P 10:07
dalek ast: f2f0ea1 | usev6++ | S05-grammar/parse_and_parsefile.t:
Add test for RT #116597
10:09
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=116597
dalek ast: 20b3ee2 | usev6++ | S14-roles/basic.t:
Unfudge test for RT #114380 for rakudo.jvm
10:26
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=114380
dalek ast: bab9270 | usev6++ | S06-macros/quasi-blocks.t:
Add test for RT #115500, unfudge passing tests for rakudo.jvm
11:16
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=115500
brrt \o jnthn 11:44
jnthn o/ 11:47
yoleaux 20 Oct 2014 21:55Z <lizmat> jnthn: suggestions about take failing on jvm? gist.github.com/lizmat/ab00347d5cc44a23c65b
20 Oct 2014 21:56Z <lizmat> jnthn: code is from src/core/Baggy.pm
20 Oct 2014 22:03Z <lizmat> jnthn: the gist with the sub/private method codegen issue: gist.github.com/lizmat/16382a07084c5bb33d19
jnthn m: role R { method !m { say 'ok' } }; class C does R { method x() { self!m } }; C.x 11:50
camelia rakudo-moar 3975e1: OUTPUT«(timeout)»
jnthn pos... 11:51
Hm, but that works locally. So it's not so simple as "private method in role"
jnthn m: role R { method !m { say 'ok' }; method x() { self!m } }; class C does R { }; C.x 11:51
camelia rakudo-moar 3975e1: OUTPUT«(timeout)» 11:51
moritz jnthn: note that camelia produces random timeouts 11:52
jnthn moritz: Yes :(
Anyway, both of those work locally, so it must be a little more involved.
lizmat jnthn: I think parameter passing is involved 11:53
jnthn: also, the private method is only referred to in the role, not outside of it 11:54
m: Role R { method !m(@a) { say "ok: @a[]" }; method x() { self!m(<a b c>) } }; class C does R { }; C.x # huh ? 11:56
camelia rakudo-moar 3975e1: OUTPUT«(timeout)»
lizmat locally: $ 6 'Role R { method !m(@a) { say "ok: @a[]" }; method x() { self!m(<a b c>) } }; class C does R { }; C.x' 11:57
Useless declaration of a has-scoped method in mainline (did you mean 'my method m'?)
===SORRY!=== Error while compiling -e
Private method call to m must be fully qualified with the package containing the method
jnthn Ah. Interesting.
Wait, s/Role/role/? 11:58
lizmat oops
works fine with s/R/r :-( 11:59
Ven m: lass A {}; say A.new 12:00
camelia rakudo-moar 3975e1: OUTPUT«(timeout)»
Ven eh.
lizmat m: my %h; role R { method !m(@a) { say "ok: @a[]" }; method x() { self!m(%h.values) } }; class C does R { }; C.x
No such method 'item' for invocant of type '$?CLASS'
in method message at src/gen/m-CORE.setting:13317
in method m at -e:1
in method x at -e:1
in block <unit> at -e:1
camelia rakudo-moar 3975e1: OUTPUT«(timeout)»
Ven "lass A{}" gives (locally) "undeclared name A" which is really weird
lizmat jnthn: it appears to be related to the type of parameter you pass 12:01
in my code, it is the .values of a hash
jnthn lizmat: Weird. 12:04
dalek ast: 7896054 | usev6++ | S03-operators/bit.t:
Add test for RT #121810
12:05
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=121810
lizmat it's trying to throw an X::TypeCheck::Binding error
leont Is there a good place for Perl6 module toolchain discussions? I think panda's bugtracker is the only place I've seen so far. 12:06
lizmat most discussions happen here (and thus in the backlog) 12:07
jnthn lizmat: Odd...I don't immediately have an idea about why
lizmat the $?CLASS seems weird: like it's trying to take the name instead of the vakue ?
*value ?
jnthn Well, that would indicate it's confusing a type variable with its instantiation 12:08
leont irc seems a bit ephemeral, I guess I should get myself a bouncer for freenode too 12:12
lizmat irclog.perlgeek.de/perl6/today is your friend 12:14
jnthn dinner & 12:21
lizmat commute to NRPM& 12:24
dalek rlito: 2547cec | (Shlomi Fish)++ | TODO-perlito5:
Remove trailing space.
12:41
Tekk_ really stupid question since this is my first module. What would be an appropriate name for a module which is specifically pure perl? Relative to one that just binds up to a C library 13:34
PerlJam Tekk_: why should the implementation details affect the name? 13:35
BinGOs ::ButPurePerl ?
Tekk_ PerlJam: because the one that wraps the C library already has the nice name :P 13:36
tadzik Tekk_: what module is that?
PerlJam Tekk_: So?
Tekk_ I wasn't sure if there was some convention for that
tadzik: MPD
moritz Tekk_: in the perl 5 community, they often append ::PP
tadzik Tekk_: feel free to just hijack the name MPD
Tekk_ moritz: thanks
moritz JSON::PP, Text::CSV::PP etc.
tadzik Tekk_: I think that module is mine :P
Tekk_: I can rename mine to MPD::libmpd
moritz yes, tadzik is right. 13:37
Tekk_ tadzik: oh, it is :)
moritz and the current MPD isn't terribly active
(last patch: 2012)
tadzik to put it mildly :)
moritz April 2012, to be more precise
Tekk_ yeah, that's why I was working on mine. I figure it's a decent next step after playing around yesterday
PerlJam Tekk_++
Tekk_ MPD::PP works
moritz Tekk_: go with MPD. For sombody who doesn't know what that is, that's already obscure enough 13:40
PerlJam Tekk_: or you could spell out the name (and keep an MPD alias for the lazy) 13:41
tadzik Tekk_: I'll rename mine to MPD::libmpd, consider MPD namespace yours :)
Tekk_ tadzik: sure
PerlJam: I'm not sure about that. If you're writing an mpd client you probably already know what mpd is, given that it's the binary name :)
PerlJam maybe. Or maybe I don't know what it is but I want to write a Perl program that acts as a music player daemon ... but wait, maybe there's already one out there. 13:43
Would I search for MPD or something else? :) 13:44
Tekk_ PerlJam: it's not for acting as a music player daemon, it's for interfacing with the existing one. I do kinda see your point though
does anyone have a link to socket documentation? I can never find anything on docs.perl6.org 13:45
PerlJam suddeenly wonders if the META.json spec includes keywords.
moritz Tekk_: there is none yet :(
Tekk_ moritz: that would be why I have such a hard time finding it then :)
documentation as a whole seems pretty lacking, unfortunately 13:46
moritz Tekk_: perlcabal.org/syn/S32/IO.html
the specific is your best bet, at the moment
unless you want to read the source code 13:47
Tekk_ I was trying to look in the http client lib but couldn't find it. the spec should help at least
PerlJam notes that IO::Socket is in the "Here Be Dragons" section :)
Tekk_ but apparently now I need to go get a chair massage, so I'll bbl
moritz Tekk_: github.com/supernovus/perl6-http-client/ 13:49
PerlJam Is github having problems or is it just me? (github URLs seem to take a long time to load) 13:51
Ah ... apparently it's just me. I just read an email from our network people that there's a problem at our ISP 13:53
Tekk_ hmm...rakudo on moarvm doesn't seem to have io::socket for me.. 13:54
moritz Tekk_: you don't need to 'use' it 13:56
Tekk_: it's all built-in
Tekk_ oh 13:57
you can tell how much I've used perl 5 and 6 :P
moritz Tekk_: and you can tell you're not the first one to fall into that particular trap :-) 13:58
[Coke] Is anyone other than me using t/spec/test_summary ? 14:03
moritz [Coke]: iirc pmichaud++ used it 14:05
bartolin [Coke]: I am, but only for my clone of your perl6-roast-data.
moritz though it's been a while :-)
[Coke] ok. I am pondering 1) making it work with -j and 2) rewriting it in perl6. 14:06
bartolin for me, that's absolutely no problem 14:07
[Coke] the thought being that if someone needs to run it on their new implementation, they can use an installed rakudo-m or something.
moritz [Coke]: at that point you should consider doing it as a frontend for leont++'s TAP::Parser module
[Coke] moritz: excellent point.
TAP::Parser isn't in the ecosystem. 14:09
leont It is, as TAP::Harness 14:09
moritz sorry, forgot the exact name, and guessed wrong 14:10
[Coke] we need a better ecosystem search! ;)
that could go in the meta info and be searchable.
TimToady good new world morning 14:17
colomon o/
flussence
.oO( «use $some-builtin-object» seems like LHF for a better error message )
14:18
arnsholt o/ 14:43
Ven \o arnsholt 14:44
ibo2perl6 o/ 14:51
FROGGS hi ibo2perl6 14:52
ibo2perl6 I'm trying to install GTK::Simple with panda. In the tests I get a "Cannot locate native library 'libgtk-3.so'" though I do have the lib 14:53
Ven hehehe 14:54
ibo2perl6 how can I look into the source of an downloaded module? does panda store it somewhere? 14:55
PerlJam Doesn't panda have a --look option or something to drop you in a directory with a copy of the source just like CPAN clients? 15:02
If not, that sounds like it would be a nice feature :) 15:03
ibo2perl6 PerlJam: Yes, that would be very nice. It seems to just delete everything if the tests don't pass. 15:06
Ven you can use --no-test to .. not test it :)
ibo2perl6 Ven: that was --notests. Yes, then I could install it. But if I try to run the examples I still get the errors: Cannot locate native library 'libgtk-3.so' 15:10
Ven ibo2perl6: right. once youv'e figured that one out, you tell me. I've already spent ~6hours trying to fix it, and with timotimo right next to me 15:11
ibo2perl6 Ven: So I guess I am missing something.
Ven I am on osx, if that helps
ibo2perl6 I am debian jessie amd64 15:12
Ven: thats why you were laughing?
Ven ibo2perl6: because I feel your pain
TimToady maybe this is one of those batteries that would be better tested if it were included 15:14
colomon m: say -5.5 < 1e-10 15:37
camelia rakudo-moar 3975e1: OUTPUT«(timeout)»
colomon :\
Tekk_ are you actually stuck doing read/write on sockets rather than being able to print and slurp? 15:58
Tekk_ write is fine, but read seems a touch annoying.. 16:01
jnthn m: say IO::Socket::INET.^methods 16:03
I'm sure there's a string interface too...
camelia rakudo-moar 3975e1: OUTPUT«(timeout)»
jnthn Looks like send/recv.
lizmat I guess I will have to spec IO::Socket the as well :-( 16:04
Tekk_ lizmat: yeah, i'm looking in the spec and not seeing anything but, that's why I asked 16:05
lizmat working on S16/S32:IO was quite exhausting...
don't expect anything there for this release
b2gills m: my enum Phonetic (:Alpha<A>, <Bravo>, <Charlie Delta Echo>, :Zulu<Z>, <Alpha-Alpha>); say Phonetic.^enum_values; 16:06
camelia rakudo-moar 3975e1: OUTPUT«(timeout)»
b2gills I think that bug is at github.com/rakudo/rakudo/blob/nom/....nqp#L3342 16:17
b2gills It takes the <Charlie Delta Echo> as a single item, instead of 3 items. 16:18
timotimo oh my ... compile-time flattening ... 16:29
lizmat timotimo: or lack of it ? 16:30
timotimo lack of it in this case 16:31
i was just about to muse "i wonder if enum is early enough in the setting so that Positional would be missing" when i noticed, that this is actions. *then* i noticed, that there's probably enums *in* the setting itself
moritz enums are too late for Bool (because Bool is bootstrapped) 16:35
so Bool isn't a proper enum in rakudo
timotimo oh 16:36
dalek rl6-roast-data: 10264d0 | coke++ | / (5 files):
today (automated commit)
16:42
[Coke] ^^ parrot is down to 3 failures. moar & moar-jit both exploded. 16:44
jvm at 12 failures.
colomon …. exploded with 100% passes? 16:46
and isn't moar jit by default now?
[Coke] yes, I'm specifically testing it without because not everyone has jit. 16:47
colomon: not sure what you're looking at: that commit message says that rakudo.moar-jit failed 175 tests, and rakudo.moar failed 112.
lizmat the delete-adverb fail looks a lot like some of the core setting failures I get after some changes 16:48
[Coke] I could rename thm to -jit and -nojit if that would help.
lizmat of course, when run by itself, there is no issue?
[Coke] and also because, like today, they fail differently.
colomon [Coke]: looking at the percentage. So moar has more fails but also more passes than jvm? 16:49
lizmat [Coke]: fwiw, locally: All tests successful.
Files=931, Tests=34002, 171 wallclock secs ( 9.23 usr 3.17 sys + 1014.88 cusr 155.92 csys = 1183.20 CPU)
colomon percentage column, I mean
timotimo colomon: moar has more features enabled 16:50
[Coke] from the readme:
Note - the percentage column shows the percentage of the implementations against each other for that day's run - so the highest number of passes is always 100%, and the others are in relation to that number. So, 100% doesn't mean "passes every spectest".
timotimo we didn't port all of the async stuff to jvm yet and the jvm doesn't have our improved unicode database
Mouq m: my enum Phonetic «:Alpha<A> Bravo Charlie Delta Echo :Zulu<Z> Alpha-Alpha»; say Phonetic.^enum_values; 17:06
camelia rakudo-moar 368750: OUTPUT«"Alpha" => "A", "Alpha-Alpha" => "AA", "Bravo Charlie Delta Echo" => "B", "Zulu" => "Z"␤»
dalek kudo/nom: 6797fde | (Elizabeth Mattijsen)++ | src/core/Complex.pm:
Add MMD candidate for Complex.round
17:32
lizmat m: [].rotate # seems LTA error message 17:34
Type check failed for return value; expected 'Int' but got 'Failure'
camelia rakudo-moar 368750: OUTPUT«(timeout)» 17:35
moritz rt.perl.org/Public/Bug/Display.html?id=123016
is this really a bug?
I'd tend to say "no", but I'd like to hear other opinions too 17:36
vendethiel moritz: well, if I override our equivalent of toString, I certainly expect it to get called 17:37
PerlJam moritz: why do you think it's not a bug? 17:38
moritz PerlJam: because there's no spec, for one 17:40
PerlJam That is an *excellent* answer. :)
moritz I can see his point too 17:41
currently, the .gist fallback does some magic woodoo
it's not just the magic woodoo he expects
moritz tries a different magic gist, and re-spectests 17:42
but if it doesn't call .perl on its elements, it shouldn't look like .perl either 17:44
PerlJam moritz: After thinking about it a bit, I guess I lean towards agreeing with you that it is not a bug. 17:56
smls Does Pair guarantee that the value is wrapped in an rw container? Like Array/Hash does? 17:57
timotimo ISTR discussion and a change regarding that vry thing 18:00
PerlJam S02:1710 18:01
synopsebot Link: perlcabal.org/syn/S02.html#line_1710
timotimo i think there was a change regarding pairs and Hash.pairs allowing you to modify the hah 18:02
hash
hm, maybe that was for changing the key, not the value?
i wish i'd remember
smls thanks 18:03
lizmat FWIW, I think the key of a Pair is supposed to be immutable 18:12
(it is, afaik)
$ 6 '(a=>42).key = "b"' 18:13
Cannot modify an immutable Str
timotimo right, the key must be immutable 18:20
TimToady that hash keys must be immutable does not necessarily imply that pair keys must be 18:21
timotimo if you want to use Pair as a generic tuple, right 18:23
brrt \o 18:24
masak: do you know if the slides / video from your 'goto statement considered awesome' are anywhere?
timotimo wants them, too 18:25
bartolin m: my (Str $a) = 1; 18:28
smls I actually didn't see *any* P6 related videos from YAPC:EU get published :( 18:29
camelia rakudo-moar 368750: OUTPUT«(timeout)»
timotimo smls: yes, see the yapc::na website for info on that
er
yapc eu of course
NB: talks from the main room Vitosha will take a little longer, as they had a much more complicated setup. We'll post here and on twitter as soon as they're ready!
bartolin $ perl6 my (Str $a) = 1; say $a; 18:30
1
timotimo yup
bartolin Is that type check NYI?
timotimo er 18:31
timotimo that seems to be a signature bind instead of the regular assignment 18:31
curious.
bartolin It is parsed as a signature and
s/and//
timotimo yeah, without the ( ) it works 18:32
bartolin yes, S02 even says that it is parsed as a signature. but the type check should be done, shouldn't it?
bartolin nods
timotimo yes
timo@schmetterling ~ [1]> perl6 -e 'my (Str $a) := \(1)' 18:33
Type check failed in binding $a; expected 'Str' but got 'Int'
colomon has finished using the 2001 iMac for $work for now, and is back to trying to build rakudo-m on it. 18:36
PerlJam "2001 iMac"? like pre-OSX? 18:38
bartolin so list assignment is supposed to be handled differently in 'my ($a) = 1' vs. 'my $a; ($a) = 1'? 18:39
(the first one is a handled as a signature, the second one as list assignment) 18:40
[Coke] they had os x in 2001! 18:42
(barely)
dalek kudo/nom: 4699b5a | moritz++ | lib/Test.pm:
[Test] avoid "Code object coerced to string"-warnings
18:47
moritz m: say (a => 42).gist
camelia rakudo-moar 368750: OUTPUT«(timeout)»
bartolin I still wonder what's the deeper sense to parse ($a) in 'my ($a)' a signature. according to STD the following is valid syntax -- but why? 18:57
$ viv -c -e 'my (Str $a where 1 --> Match) = 3;' syntax OK
dalek kudo/recursive-gist: 10eb3fa | moritz++ | src/core/ (2 files):
Mu.gist: call .gist on attributes, not .perl

Closes RT #123016
19:00
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123016
FROGGS hmmm, stage parse for perl6-p does now take 86s instead of 34s on my box... does somebody know what is going on? 19:02
timotimo o_O
moritz FROGGS: huh? parrot was ever that fast?
FROGGS err 19:03
perl6-m, sorry
PerlJam moritz: self."$name"().gist encapsulates a little of why I was starting to agree with you that it's not a bug :-)
lizmat std: my @a; @a[2:] 19:06
camelia std 14ad63b: OUTPUT«(timeout)» 19:06
moritz FROGGS: fwiw I just had stage parse in 35s 19:08
lizmat Stage parse : 29.013 # a little longer than usual, but could be noise 19:12
dalek kudo/recursive-gist: 2662e7c | moritz++ | src/core/Range.pm:
Special-case Range.gist
19:13
FROGGS okay, that it must be my box 19:19
brrt fwiw, for me it is only a flappy test that breaks fo the spectest 19:23
moritz t/spec/S17-procasync/print.rakudo.moar and S17-lowlevel/lock.t occasionally flap 19:24
moritz perl 5.21.5 has a new feature: for \my %hash (@AoH) { ... } 19:33
moritz as part of a general feature that allows assigning to references 19:34
\$a = \$b;
I wanted to write "poor man's binding", but it's actually "5 man's binding" :-) 19:35
timotimo :)
mauke my $ref = \@xs; \@$ref = ['what']; 19:36
PerlJam moritz: and still no mop and just barely some experimental signatures. 19:38
mauke but some very nice Function::Parameters :-)
moritz ... which requires you to write 'fun' instead of 'sub' :( 19:40
mauke no, that's just the default
because it's more fun!
use Function::Parameters { sub => "function_strict" }; # overrides sub keyword
timotimo why don't we have a fun keyword in perl6?? 19:43
moritz timotimo: because we don't need the keyword to be have fun :-) 19:44
timotimo mhhh 19:47
Tekk_ moritz: :) 19:48
timotimo: I'd rather have a language that submits to my will than one that has fun at my expense 19:49
Tekk_ wishes that IRC supported bolding so that he could make that joke more clear
PerlJam Tekk_: nah, it was fine :) 19:49
mauke "Lisp takes defun out of programming"
Tekk_ mauke: luckily that doesn't apply to scheme :D 19:51
timotimo but you can make things bold!
Tekk_ although I like the look for perl 6 better than scheme, in my experiments over the last 24 hours
timotimo: yes, but I'm too lazy to figure out how to do it in erc
timotimo heh.
mauke *bold* _underline_ /italics/
Tekk_ mauke: yeah, but that would've been a bit too loud I think 19:55
*sub*mit
see?
breaks it up too much
mauke submit 19:56
Tekk_ mhm 19:57
vendethiel 8booold 19:58
timotimo vendetroll!
lizmat brrt moritz : I guess we need to skip the flappy async tests for the release :-( 20:15
brrt would like to research those a bit more
lizmat brrt++ :-) 20:16
you have less than 1 day before release :-)
brrt well, i didn't actually say i could do that today :-P
but i'd think we should them by now
lizmat too bad :-( :-)
brrt it would be so awesome if we could say 'concurrency? oh that Just Works (tm)' 20:17
lizmat oh, it just works. Just don't stress it :-)
brrt also, timotimo++ has given me some more JIT ops work :-)
timotimo you're glad i'm giving you work? :P 20:18
brrt oh yes
tangible targets and stuff
timotimo but it's simple grunt-work, isn't it? :)
ah, fair enough :)
brrt some, some not, and anyway i think assembly is fun, especially after a day of django or java 20:19
Tekk_ brrt: some of the most fun I've ever had was the hours after my friend said that you can't write web applications in assembly :) 20:27
was in the hours*
brrt i say
although i've never tried to do exactly that, by the way
Tekk_ very fun 20:28
it wasn't anything particularly complicated, just a cheaty quine over cgi
brrt and i can imagine that writing a bunch of string processing routines might not be so much fun
ah i see
well that should be doable
Tekk_ mhm
64 lines
not linking against any libraries, just using syscalls 20:29
the fiddliest bit was writing strlen so that I could be lazy with write :)
colomon there are days after $work where I think that anything at all that made visible progress would be fun.
brrt strlen can be done really efficiently in x86 iirc
Tekk_ if you bothered to use the vector stuff yeah
brrt something like repz inc %rax or so
no there's a automagic repeating thingy in x86 20:30
Tekk_ ah, cool
brrt repnz rather. i haven't used it really but it is pretty cool
Tekk_ I basically stuck with purely what you could run on an 80386 because I can't be bothered to look up ops :P
brrt i have this magic tool for looking up ops called gcc ;-) 20:31
Tekk_ :)
masak ahoy, #perl6 20:37
Tekk_: I know someone who did exactly that -- wrote a web thing in assembly 20:38
moritz \o masak
PerlJam masak: was his name masak? :)
masak PerlJam: incidentally, no
Tekk_ masak: I'd do it again with a bigger project 20:40
I'd probably at least link against libc though
masak brrt: I didn't get as far as putting the slides to "Go To Considered Awesome" online. I totally should.
Tekk_ masak: that it is
masak brrt: I believe the video is online, though I don't know exactly where.
brrt hmm
maybe youtube?
Tekk_ brrt: www.youtube.com/watch?v=NwztaQgv3-Y I think not 20:41
(that was the first result on a search for the talk)
brrt no, indeed, not youtube
masak I was on a plane today. I wrote Perl 6 code. it had dynamically constructed code in it. I was happy. 20:45
brrt dynamically constructed code? macro's? 20:50
PerlJam
.oO( "Perl 6 code constructed on a plane! Programmer Happy! Plane didn't crash!" )
20:52
brrt did the perl6 code crash? 20:53
Tekk_ brrt: it always does at first :P 20:54
dalek kudo/nom: 5054419 | (Elizabeth Mattijsen)++ | src/core/List.pm:
Make List.rotate not die on empty lists

And just return itself if there's nothing to do
20:56
masak brrt: no, just closures generated by varying input. 21:00
'night, #perl6
dwarring panda PR to add the 'look' command - github.com/tadzik/panda/pull/107
brrt 'night
masak
dwarring discussed earlier by ibo2perl6++ PerlJam++ irclog.perlgeek.de/perl6/2014-10-21#i_9543182
dwarring I've just done a straight port of the cpanminus implementation github.com/miyagawa/cpanminus/blob...t.pm#L1274 21:01
pretty straight-forward 21:02
dalek nda: 704557a | (David Warring [email@hidden.address] | / (2 files):
adding 'look' command - fetch, then invoke shell in temporary directory
21:03
nda: 1ff9959 | lizmat++ | / (2 files):
Merge pull request #107 from dwarring/master

adding 'look' command - fetch, then invoke shell in temporary directory
dwarring cheers :) 21:04
timotimo dwarring: nice!
dwarring easy win
timotimo dwarring++
brrt 'night 21:06
lizmat blogs.perl.org/users/perleone/2014/...-of-2.html "Besides that, the whole conference had a definite Perl 6 vibe, and left me with a really good feeling." :-) 21:13
dalek kudo/nom: 8102da0 | (Elizabeth Mattijsen)++ | src/core/Parcel.pm:
Make Parcel.rotate not die on empty Parcels

And make it not do anything when it doesn't need to do anything
21:31
Tekk_ is there any particular reason that print will call .Str on a class but not say? 21:52
rather than just returning whatever the constructor was
timotimo yeah, say is for human-friendly (or rather: developer-friendly) output, while print is more "low level" 21:56
Tekk_ timotimo: that's rather counterintuitive then in my mind 21:57
what method am I supposed to fill in to make say say the right thing?
my particular case was when I spent quite a while scratching my head over why say instance; wasn't returning the nice pretty printing that I put in Str :P 21:58
before trying print
timotimo say $foobar.Str
Tekk_ yeah
timotimo oh, you want say $foobar.perl in that case
Tekk_ o
no
not pretty printing the code, but showing what the data is in a nice way
lizmat .tell jntn regarding the private method in role, seems we have #120919 for that already, added my failing code to the ticket 21:59
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=120919
yoleaux lizmat: I'll pass your message to jntn.
Tekk_ I'm just wondering why the "developer friendly" option is whatever the constructor was, while the "low level" one will output in the format that you can tell it to in the class
lizmat decommute from NRPM&
timotimo the "whatever the constructor was" is just the default .perl your class would derive from Mu 22:00
what are you testing this on, ooc?
Tekk_ testing it locall with rakudo on moar 22:01
Tekk_ okay, so Str is for print, perl is for Say 22:01
timotimo i mean: what classes are you trying it on 22:02
Tekk_ oh 22:03
my own
timotimo in that case, you won't have any sensible .Str implementation
there's .Str, which is the to-string-coercer 22:04
Tekk_ mhm
timotimo and .gist, to give a human-friendly output that may elide some stuff
Tekk_ I was just confused about what I should be filling in
timotimo and .perl, which is supposed to give something as close to eval-able as possible
Tekk_ ah
so why doesn't say use .gist rather than .perl?
timotimo the default .gist will just call .perl 22:05
so it probably *is* using .gist, but you didn't implement a .gist so it falls back to .perl instead
Tekk_ ah 22:06
thanks timotimo :)
timotimo yk :)
er
yw
frew How solid are the optional static type checking features? 23:16
frew has gradual typing lust
timotimo we're missing bits and pieces; what exactly are you interested in? 23:17
vendethiel has been posting some examples of "dependent type"-like things you can do with roles
frew mostly coderef arity checking
thats what I feel pain from the most 23:18
timotimo he's quite interested in strong type system stuff, so he's testing and fiddling with that aspect a lot
frew so foo takes a sub that takes 2 args and returns 1 scalar
ok
timotimo if you have a lexical sub or multi sub or a private method or multi method call, you'll get compile-time errors if you have the wrong arity or types
sadly, the server camelia runs on is busted somehow, when you try to evaluate code on the channel, you'll get "(timeout)" 99 times out of 100 23:19
frew is uh, my $f = sub (...) { ... } a lexical sub?
I installed rakudo from git already :)
timotimo "my" is lexically scoped, but you can re-assign $f later; you shouldn't get compile-time errors from that 23:20
m: sub takes_three($a, $b, $c) { }; takes_three(1, 2);
camelia rakudo-moar 368750: OUTPUT«===SORRY!=== Error while compiling /tmp/Hg_2yiZgby␤Calling 'takes_three' will never work with argument types (Int, Int)␤ Expected: :(Any $a, Any $b, Any $c)␤at /tmp/Hg_2yiZgby:1␤------> sub takes_three($a, $b, $c) { }; [3…»
frew right..
but like
what if I want the re-assignable thing to only be assignable 3-arg subs?
timotimo ah 23:21
you can have a type signature for "callable that takes three arguments"
let me see if i can find the specs for you
that stuff is at least partially implemented, if not fully
frew yeah I'd appreciate that 23:25
timotimo i'm not finding it :\
frew I couldn't find it in the specs I was looking through
heh
nbd
I can wait
I ahve lots of things to do anywya
timotimo OK :)
there's people who've spend much more time reading specs than me 23:26
frew right
if someone in here comes back and can answer I won't leave the channel
timotimo if signature-restrictions for &variables is something you're depending on for something, you'll likely get someone interested in helping you
the hardest part is sometimes getting motivated ... and sometimes finding something interested that is actually NYI
there's something else that definitely works 23:29
if you define a proto sub in your lexical scope, you can use that to restrict all signatures of lexical subs in that scope
timotimo i *think* something like { my Callable[Any, Any] $foobar } should work, but neither a sub nor a pointy block seem to be doing that role 23:43
even though they probably should
colomon could this be done with a where clause? kind of hacky, but.... 23:51
timotimo yes, definitely 23:52
colomon sub wants-three-arg-function(&f where &f.args == 3) { … } # that's probably not quite right, though
timotimo i'd prefer *.args == 3 over &f.args == 3 23:53
colomon is .args the right thing to say?
colomon is trying to find example code in the spec with methods callable on Callable 23:54
timotimo probably .signature
.signature.arity and .signature.count are of interest 23:55
depending on whether or not you want to count optional args
colomon that would be it, then
timotimo++
actually, looks like you can leave off the .signature? 23:58
timotimo well, we clearly want something better than that; we want the Callable role to work and we want to know tho right syntax for giving a & variable or & argument a signature restriction
colomon m: sub wants-three-arg-function(&f where &f.arity == 3) { &f(1, 2, 3); }; sub x($a, $b, $c) { say "$a * $b == $c"; }; wants-three-arg-function(x); wants-three-arg-function(wants-three-arg-function); 23:59