»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend!
Set by moritz on 22 December 2015.
samcv ok hopefully fixed the period one. on the docs. going to address the % ones 00:04
there's no point to have something /([ foo ])/ right? in capturing parens and in non-capture brackets for regex? 00:05
i see it somewhere and can probably just have the non-capturing ones removed 00:06
samcv ZofBot, thanks for that PR to fix IO::String btw 00:27
travis docs build failing cause of it. but you probably already know :) 00:28
Geth doc: 8472cde81c | (Zoffix Znet)++ | doc/Language/glossary.pod6
Document what "reify" means

  - Can't think of a good section to write this in, so writing it
   in glossary
  - Fixes #1265
01:52
raschipi #1265 01:52
Geth doc: 3bb170f8de | (Zoffix Znet)++ | doc/Language/5to6-perlfunc.pod6
Proc::Async.kill is *not* the alternative for Perl 5's kill

Fixes #1277
02:06
Geth doc: bcbef20ead | (Zoffix Znet)++ | doc/Language/traps.pod6
Document precompilation of constants as a trap

Fixes #1276
02:13
doc: 35a90d9feb | (Zoffix Znet)++ | doc/Type/Junction.pod6
Use correct heading level
02:15
Geth doc: 7628708384 | (Zoffix Znet)++ | doc/Type/Junction.pod6
Document Failure and Exceptions in Junctions

  - Fixes #1271
  - Closes RT#131118: rt.perl.org/Ticket/Display.html?id=131118
02:37
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=131118
travis-ci Doc build errored. Zoffix Znet 'Document Failure and Exceptions in Junctions 02:51
travis-ci.org/perl6/doc/builds/229352697 github.com/perl6/doc/compare/35a90...28708384bd
Geth doc: 51f37892d2 | (Zoffix Znet)++ | 2 files
Fix typos; MasterDuke++
02:54
Geth doc: d29b8b3475 | (Zoffix Znet)++ | doc/Type/WhateverCode.pod6
Use kebob-case in example
03:00
Geth doc: f9973e55fc | (Zoffix Znet)++ | doc/Type/WhateverCode.pod6
Rephrase
03:09
doc: fc1a679d58 | (Zoffix Znet)++ | doc/Type/WhateverCode.pod6
Include examples for type-constraining for Whatevercode

  - `WhateverCode` are already included in previous examples
  - Add example with `Callable` type contraint
  - Add example with `&` sigil to indicate `Callable` type constraint
  - Fixes #1279
03:10
travis-ci Doc build errored. Zoffix Znet 'Rephrase' 03:23
travis-ci.org/perl6/doc/builds/229356140 github.com/perl6/doc/compare/d29b8...973e55fcce
Geth doc: 96993c6142 | (Zoffix Znet)++ | 2 files
Fix make xtest
04:47
Geth doc: 0728c55159 | (Zoffix Znet)++ | doc/Type/Pair.pod6
Document Pair.ACCEPTS

Fixes #1235
05:24
Geth doc: f6472b6bba | (Zoffix Znet)++ | doc/Language/syntax.pod6
Bring prose about Array constructor up to date

Fixes #1229
05:34
travis-ci Doc build errored. Zoffix Znet 'Fix make xtest' 05:38
travis-ci.org/perl6/doc/builds/229367550 github.com/perl6/doc/compare/fc1a6...993c6142d7
Geth doc: 840d55fc4a | (Zoffix Znet)++ | doc/Language/testing.pod6
Remove stuff about Hash comparisons

Map/Hash stringification is not random. Other Associative's currently have a bug where it is, but is known and will be made non-random
05:44
doc: 0dc3f85dbb | (Zoffix Znet)++ | doc/Language/testing.pod6
Add note about `is-deeply` being busted accidentally on purpose

  github.com/rakudo/rakudo/commit/096bc17cd5
05:47
Geth doc: 5c7901084e | (Samantha McVey)++ | lib/Pod/Htmlify.pm6
Fix names page names with % in them and html text encoding at end
06:11
samcv think all pages with symbols should be fixed after that last commit. though we can probably clean it up a bit more 06:14
Voldenet Can I somehow force the routine in a role that returns promise to be "non-blocking"? 12:13
I've encountered the problem that the routine can just block the thread for 20 seconds without returning any promise at all
while it's still a design issue from the consumer's side, it'd be nice to capture it 12:14
eater Voldenet: can you give a code example? 12:25
Voldenet erm, sure 12:26
Voldenet hm, I keep wondering if perl6 has Promise.from-completed or something, I remember using it somewhere 12:37
m: sub promise-done(Any:D $v){ my $p = Promise.new; $p.keep($v); return $p; }; role Async { method get() returns Promise:D { ... }}; class BlockSync does Async { method get() { sleep(10); promise-done(1) }}; my Async $x = BlockSync.new(); my $promise = $x.get(); say "non-blocking"; await $promise 12:38
camelia non-blocking
Voldenet as you can test... it just "waits 10 seconds", which is not that good 12:39
timotimo m: say 10.Promise
camelia No such method 'Promise' for invocant of type 'Int'
in block <unit> at <tmp> line 1
timotimo we totally should have somethign for that, ye
Voldenet the question about non-blockability awaits, while I've never seen this problem really resolved in any language that offers await, I'd still want to get my hands on 12:40
maybe something like "if promise is not returned within 1 second then fork..." 12:41
except with libuv forking might not be the bestest idea
timotimo why don't you just make a start block?
we totally have threads and thread pools 12:42
Voldenet Well, I'm the consumer of the role
not a producer of an implementation ;)
timotimo also, if you "use v6.d.PREVIEW" you can await things without blocking a thread
eater await without blocking?? 12:43
it will only block when the variable is accessed then?
Voldenet Well, "await $promise" line should block
"impl.get()" shouldn't
but i'm starting to think that always using start is not that bad idea 12:44
timotimo it blocks, but it doesn't block a thread
Voldenet (also, is there a version of non-blocking sleep?) 12:46
Promise.in?
timotimo await Promise.in(...) 12:47
or, of course, Promise.in(...).then({ }) 12:48
timotimo AFK
Geth perl6-examples: 59af292b14 | (Trey Harris)++ | doc/example-template.pl
Add Emacs vars to vim vars in template
13:47
pmurias hi 14:06
Voldenet hello 14:07
I wonder if nqp has atomic increment operation built in
Voldenet something like nqp::atomic_increment 14:08
lucs What is the "implicit CATCH block" mentioned in the .../language/exceptions doc? 14:09
Voldenet probably CATCH { } 14:10
m: try { die("dead") } 14:11
camelia ( no output )
pmurias Voldenet: I don't think so, the preincrement op is syntax sugar on all the NQP backends
Voldenet m: try { CATCH { .say } die("dead") } 14:13
camelia 5===SORRY!5=== Error while compiling <tmp>
Strange text after block (missing semicolon or comma?)
at <tmp>:1
------> 3try { CATCH { .say }7⏏5 die("dead") }
Voldenet m: try { CATCH { .say }; die("dead") }
camelia dead
in block <unit> at <tmp> line 1

dead
in block <unit> at <tmp> line 1

Actually thrown at:
in block <unit> at <tmp> line 1
Voldenet m: try { CATCH { .throw }; die("dead") }
camelia dead
in block at <tmp> line 1
in block <unit> at <tmp> line 1
Voldenet m: try { CATCH { when X::AdHoc { say "caught die $_"; } }; die("dead") } 14:14
camelia caught die dead
lucs Oh, so basically, the implicit CATCH block, catches the exception, but does nothing whatsoever with it.
pmurias Voldenet: the js backend is single threaded so everything is atomic there
;)
lucs s/block,/block/
Voldenet m: class E is Exception { method message() { "Fail" } } try { CATCH { when X::AdHoc { say "caught die $_"; } }; E.new.throw }
camelia 5===SORRY!5=== Error while compiling <tmp>
Strange text after block (missing semicolon or comma?)
at <tmp>:1
------> 3xception { method message() { "Fail" } }7⏏5 try { CATCH { when X::AdHoc { say "caug
expecting any of:
in…
Voldenet m: class E is Exception { method message() { "Fail" } }; try { CATCH { when X::AdHoc { say "caught die $_"; } }; E.new.throw } 14:15
camelia Fail
in block <unit> at <tmp> line 1
Voldenet pmurias: that's very useful 14:16
lucs Voldenet: Thanks for the examples.
Geth doc: 341cdd3083 | (Samantha McVey)++ | lib/Pod/Htmlify.pm6
Try and fix bug in previous commit
14:23
TreyHarris What's the corect way to alias additional names to a method? 14:24
TreyHarris All the cases of "alias" in the docs aren't actually aliases; they refer to cases where two names point at a third, underlying, undocumented thing, or where a method by the "alias" is simply returning an attribute by another name that's also public 14:30
TreyHarris (like DateTime.timezone's 'alias' .offset, which just is C<method offset() { $!timezone }> 14:31
eater calling Log::Any functions in several threads messes up :'), you'll get mixed messages (hehe) 14:38
TreyHarris I tried C<method φ (--> Numeric) is rw handles 'θ' {>, that compiled but didn't define a .θ 14:44
TreyHarris I also tried C<::?CLASS.^method_table<θ> = ::?CLASS.^method_table<φ>;>, but that dies compiling: 'Cannot modify an immutable Method' 14:46
TreyHarris C<our \θ := ::?CLASS.^method_table<φ>;> fails with "expecting any of: new term to be defined" 14:49
TreyHarris All three of C<Point::{'θ'} := Point::{'&φ'}; Point::{'θ'} := &::('&φ'); &::{'θ'} := &::('&φ');> compile and create a class method, but that method then fails "No such method 'θ' for invocant of type 'Num'" 15:08
jnthn Point:: is the Point package; putting stuff into that won't have any influence over method calls 15:11
Adding a method needs a .^add_method($name, &method) call
(Done at BEGIN time if you do it in a module that should be pre-compilable) 15:12
TreyHarris Hmm, okay. C<BEGIN { .^add_method('θ', &::('&φ')); };> gives a compile-time: Code ref '' does not exist in serialization context 15:15
TreyHarris C<BEGIN { .^add_method('θ', ::?CLASS.^method_table<φ>) };> gets me back to the "No such method" 15:18
rather, "No such method 'θ' for invocant of type 'Num'"
TreyHarris oddly: $x.^can('θ') # (<anon> φ) 15:23
haxmeister I love named parameters.. whoever came up with that for perl6... excellent idea, at first it seemed silly but now I can't do it any other way..lol 15:27
TreyHarris ( C<$x.φ> works just fine, btw, and $x.WHAT is Point, and $x ~~ Num is False) 15:28
haxmeister: what named parameters are you talking about?
haxmeister in sub defs 15:29
my-sub( :mynamed)
it's all in the little things.. 15:30
TreyHarris haxmeister: you mean like 'sub foo(Bool :$bar)' in particular, where foo(:bar) alone is sufficient? Or also foo(:val<3>), etc.?
haxmeister yes 15:31
raschipi foo(:3val)
haxmeister absolutely beautiful idea.. I find that I often use the same name locally in some subs as the argument that I'm sending anyway.. this actually makes sense of that
TreyHarris Unless I'm mistaken, that's TimToady (Larry Wall)'s refactoring of the already-extant perl 5 hash-passing which allowed calls like foo(val => 3)
Since in Perl 6, '=>' is an infix Pair constructor and hashes are constructed from lists of Pairs, it followed 15:32
haxmeister foo(:val(32)) works too
jnthn TreyHarris: You'd need ::?CLASS.^add_method
raschipi But in Perl6, it isn't just a cast from a list of pairs into a hash. 15:33
TreyHarris :key<value> is another pair constructor, as is :key(expr).
haxmeister or foo :v(32)
raschipi There's also :numkey
haxmeister it's a simple thing.. but I just really love that about perl6 15:34
TreyHarris so "who came up with the idea" is either TimToady, or the entire community, I think. The second Apocalypse itself had :2nd be equivalent to 'nd => 2', so the idea was in Perl 6 from the start; I'd have to look at the Apocalypse again to see if it was actually used for named parameters from the beginning. (I think it was. But reading the Apocalypses is useful to get the idea of the design, even though much has 15:35
been superceded, though it's definitely written for the Perl 5 expert.)
haxmeister well I haven't done anything with perl5 in 8yrs or so.. save for some little 10 line scripts 15:36
so learning perl6 has been a new experience just like learning lisp after C 15:37
but I'm in love with it already.. I just wish there were more tuts geared toward people learning perl from the ground up instead of from the perspect of a perl5 programmer 15:38
I'm spending a lot of time finding information I want that is also geared toward the "no intimate perl6 knowledge" crowd 15:40
raschipi The tutorials up to this point were geared towards finding new developers for Perl6. 15:41
TreyHarris jnthn: gah, once I got that I got a redefinition error. turns out "method φ (--> Numeric) is rw handles 'θ' {" was creating a theta method after all, just not one that was useful, and I forgot to remove it, so who knows which if any of the above might have also worked. But that particular one (C<BEGIN { ::?CLASS.^add_method('θ', ::?CLASS.^method_table<φ>) };>) gave me the compile-time error of "Package 15:42
'Point' already has a method 'θ' (did you mean to declare a multi-method?)␤at :"
(and yes, it really ends there, "at :" with no line number or block reference)
MasterDuke_ TreyHarris: that error is LTA, could you rakudobug it? 15:44
TreyHarris haxmeister: the docs.perl.org has several "5to6..." docs that may be worth a skim just because they might help help you with those assumptions even if you don't know the Perl 5 people are talking about. But when you find such cases, could you raise them to our attention? We want the docs to be accessible to people with no particularl language experience. (Though I don't think we're targeting brand-new 15:46
programmers or non-OO programmers.)
MasterDuke_: sure.
MasterDuke_: should I rakudobrew head first, or is 6.c okay?
MasterDuke_ i don't know of any recent commits that would change anything there, but at least put the output of perl6 --version in the bug report 15:47
TreyHarris MasterDuke_: (And this is a good time to ask since I've seen it but never seen it defined or in a context that defined it for me: what's "LTA"?) 15:48
MasterDuke_ Less Than Awesome
TreyHarris Ahh... I was using "let's talk again", which was slightly sensible but not very :-) 15:48
Geth doc: 1c5621434d | (Samantha McVey)++ | 2 files
Rename escape-filename to replace-badchars-with-goodnames
15:49
MasterDuke_ we want really good error messages, not just some unhelpful notification that something, somewhere, somehow, somewhy went wrong
TreyHarris jnthn, MasterDuke_: that said, shouldn't my 'handles' sub trait work? I see looking at source why it doesn't. (I might even be able to make it work though I'm a bit hesitant to touch it since my understanding of this is clearly at the cargo-cult stage.) 15:51
s/sub trait/method trait/
raschipi "escape-filename" sounds like a PHP function name. 15:56
TreyHarris oh, I see S12 defines it to work that way. "method select_tail handles <wag hang> {...}" is the example. And that makes sense, 'handles' means "chain another method call onto the end", not "replace the method call". so "has $!paw handles <hand>" is incorrect, but "has Hand $!paw handles <shake>" is correct 15:59
I thought there was a trait for "this attribute is also known by this other name"
eater m: start { say "hello" } 16:00
camelia ( no output )
eater is that supposed to happen? :')
MasterDuke_ TreyHarris: lizmat created an `aka` trait at one point, maybe she put it into the ecosystem?
geekosaur eater, I think yes, the script exits before the start can run 16:02
the main thread si pretty much always special in that if it exits, all other threads are killed
raschipi m: start { say "hello" }; sleep 2;
camelia hello
MasterDuke_ m: await start { say "hello" } 16:03
camelia hello
TreyHarris MasterDuke_: not that I see by looking for '\baka\b' in ALL-MODULES. Three modules at least have defined a generalized aliasing metamethod, but not implemented as traits. 16:04
(so, runtime) 16:05
eater \baka 16:06
geekosaur: :') cool
MasterDuke_ TreyHarris: this is where it was removed from rakudo, you might be able to re-purpose github.com/rakudo/rakudo/commit/33...e6af6fc5af 16:07
TreyHarris MasterDuke_: thanks. My husband has me for some chores now, but I'll minimize my example and submit a bug in < 24h. Email [email@hidden.address] title '[BUG] ...', right, or is there an actual rakudobug program I don't have installed? 16:24
MasterDuke_ TreyHarris: that's pretty much it 16:27
huggable: rakudobug
huggable MasterDuke_, Report bugs by emailing to [email@hidden.address]
eater how can I reliable empty a channel at the end of the runtime? 16:29
Geth doc: 3a264bc6fd | (Samantha McVey)++ | lib/Pod/Htmlify.pm6
Add '^' to badchars for url's so those pages work again
17:01
doc: a9d617aad3 | (Samantha McVey)++ | html/.htaccess
Add updated .htaccess entries for rewriting
TimToady TreyHarris: see perl6.org/archive/rfc/84.html and perl6.org/archive/rfc/128.html for the origins of pairs and named args 17:58
(both by TheDamian)
TreyHarris Huh, interesting... I wasn't sure if rt.perl.org would handle my text/alternative email with a Markdown HTML and a test part. It did (rt.perl.org/Public/Bug/Display.html?id=131262) but while it monospaced the blocks, it didn't monospace the "at :." in "Note the message completes with at :.", even though I typed it as "with `at : `.".
moritz eater: first you close it, so that no new elements can come in
TreyHarris TimToady: thanks
moritz eater: and then you consume elements until you're done 17:59
TreyHarris TimToady: do you know what controversy there was about the C<aka> trait? The commit message removing it said it was being removed because of the "lack of consensus"
eater moritz: hmm I think the problem I'm really hitting is that stdout closes or the thread is killed before I can write everything 18:00
TimToady TreyHarris: don't recall exactly, but it seems to me that 'aka' is kinda backwards from what you want 18:02
generally the name you're declaring should come up front, and the details of how it's defined come after
TreyHarris Well, for context, in order to better-document using a read-write Proxy as a class attribute accessor, I was implementing a 2D Point as a Complex so it could be referenced in either Cartesian or polar notation, and this means there are a number of methods that can be re-used under two names, most significanty φ and θ both can refer to the polar angular component. 18:03
So I could choose one (φ to match the ISO standard) as the one with the implementation, and then write C<method θ (--> Numeric) is rw { return-rw .φ; }>, but avoiding the nested method call seemed desirable. 18:06
TimToady the inline should get rid of that rapidly, if you're worried about performance 18:06
*inliner
TreyHarris TimToady: no, more that that's a lot of text to just say φ and θ both are names for the same thing 18:07
(especially since there are several other cases like that in a full implementation of Point2D, not that I'd include them in the Proxy doc, but I might in the examples) 18:08
TimToady sure, but if two names are supposed to be roughly the same importance, using a trait seems like a really asymmetrical way to do that
I guess that's my main aesthetic gripe about it
TreyHarris TimToady: really? C<method φ aka θ ...> seems to me the way that most clearly states "i could've used either name here, reversing them wouldn't change behavior at all" 18:09
a method calling another method makes it seem like the one with logic is the "primary" name while the one that just returns the other is a "secondary" name 18:10
TimToady troo 18:10
TimToady but if we're gonna do something like this, I'd still druther it be a disjunctional name of some sort rather than a trait, and then we get the benifit of it anywhere you can declare a name 18:12
MasterDuke_ TreyHarris: that asymmetry could be addressed by something like: sub foo_and_bar_implementor() {}; sub foo() { foo_and_bar_implementor() }; sub bar() { foo_and_bar_implementor() } 18:14
but i'm not seriously suggesting that's good
TimToady MasterDuke_: I wasn't gonna point that out :)
MasterDuke_ TimToady: heh, i guess you have more restraint than i 18:15
TimToady something like "method <φ θ> (@args) {...}" appeals to me more than a trait
TreyHarris TimToady: I agree. A compile-time junction? method φ & θ () { ... } and/or method φ | θ () { ... } ? The and-junction resulting in both names being available, the or-junction resulting in whichever name used being the only name allowed? ;-) 18:16
TimToady esp since traits tend to come after the args, which could be long
TreyHarris I like the listy syntax, yes
TimToady well, I worry that & or | would be ambiguous in some situations, though maybe not
TreyHarris (And was joking about the junctions) 18:17
TimToady we do already have syntax, kinda, such that "method any:<φ θ>" or some such can already be parsed, though for now I believe it's rejected as a non-categorical 18:18
m: method any:<φ θ> {...} 18:19
camelia Potential difficulties:
Useless declaration of a has-scoped method in mainline (did you mean 'my method any:<φ θ>'?)
at <tmp>:1
------> 3method7⏏5 any:<φ θ> {...}
TimToady m: my method any:<φ θ> {...} 18:19
camelia ( no output )
TimToady I guess it doesn't mind it
m: my method :<φ θ> {...}
camelia 5===SORRY!5=== Error while compiling <tmp>
Missing block
at <tmp>:1
------> 3my method7⏏5 :<φ θ> {...}
TimToady m: say :<foo>.WHAT 18:20
camelia (Str)
TimToady m: say :<foo bar>.WHAT
camelia (List)
TreyHarris Okay, so how does one go about such a proposal now? The RFC process has been gone a long time, right? So what, an email to p6-language? Just commit to perl6/specs and see if someone reverts me? (j/k ;-) 18:21
MasterDuke_ you can create an RT ticket with [RFC]
AlexDaniel which is weird… but that's how it's done usually 18:22
TreyHarris Ah-hah. 18:23
TimToady m: my method names:<φ θ> {...}
camelia ( no output )
MasterDuke_ m: .name.say for class :: { method any:<a b>($c) { say $c } }.new.^methods 18:24
camelia any:<a b>
TimToady doesn't do anything special with it currently 18:25
TreyHarris m: class Foo { method names:<a b> { say "hi" } }; say Foo.names:<a b>
camelia WARNINGS for <tmp>:
Useless use of constant value a b in sink context (lines 1, 1)
hi
True
TimToady but the chance that anyone has used that name already is vanishingly small
ajr_ I succeeded in installing Rak* 2017.01 on the Raspberry Pi, but I'm having trouble with 2017.04 18:27
TreyHarris TimToady: and the argument for "method names:<φ θ>" over "method <φ θ>" is less chance of grammar ambiguity? 18:28
ajr_ Steve Mynott has given me some hints, but I'm finding them ambiguous
MasterDuke_ ajr_: i think there's a known problem with a new default MoarVM compile option (made non-default on HEAD). have you tried adding '--no-telemeh' to the MoarVM Configure.pl call? 18:29
timotimo (i should have immediately protested when someone decided to put that into star)
TimToady TreyHarris: suppose you want to write it as method names:[@some-compile-time-list] for some reason
timotimo (i was under the assumption i'd have a month to shake problems out)
TimToady though I suppose there's «@some-compile-time-list[]» as a counter argument 18:30
stmuk_ the reason it was put in star was because moarvm was totally broken under a large number of platforms
TimToady in any case, the main difficulty is not syntax, but semantics 18:31
one has to install a loop in the action routines for the declaration
stmuk_ at least with --no-telemeh a fix is possible
ajr_ timotimo /MaterDuke - thanks, that's what Steve said, but I'm not clear what the sequence of commands should be. Previously, there was a single config 18:32
MasterDuke_ ajr_: are you using rakudobrew? 18:33
timotimo you can just put --moar-option=--no-telemeh in rakudo's Configure.pl
bbl
ajr_ MD - no, the downloaded *
TimToady TreyHarris: I'll also note that it's formally ambiguous with enum Foo <a b c>;
or at least with the anonymous form of that
stmuk_ timotimo: I think thats the configure for nqp not rakudo there 18:34
MasterDuke_ stmuk_: you can do that with Rakudo's Configure.pl
ajr_: a binary, or are you building the source? 18:35
stmuk_ which isn't the R* configure.pl
TreyHarris TimToady: yep, I just noticed that grepping about the perl6 tree
MasterDuke_ stmuk_: ah, didn't realize that
stmuk_ R* uses bundled tarballs and not git 18:36
ajr_ MD - I downloaded the tarball from the site, untarred it, cd'd into rakudo-star-2017.04 and ran perl Configure.pl --backend=moar --gen-moar 18:40
MasterDuke_ stmuk_: couldn't you build MoarVM yourself from the tarball with the --no-telemeh option, and then Configure.pl --backend=moar --gen-nqp (not --gen-moar)? 18:41
ajr_ The equivalent sequence worked for 2017.01, but this time a compiler error occurred in a module
ajr_ (The source code of that module does not appear to have changed between versions) 18:42
stmuk_ MasterDuke_: I had to config MoarVM with --no-telemeh make install and then built nqp (which finds moar) and then R* 18:45
so three Configure, make install steps
MasterDuke_: hmmm the --gen-nqp step may work I'll try it thanks 18:46
MasterDuke_ ajr_: ^^^ looks like it should be possible
stmuk_ yes a two step possible should be saner
ajr_ From the 2017.04 directory, what should the sequence of commands be? (Or is there somewhere I can find this?) 18:48
I think it's worth getting this into a published set of coherent instructions, because I can't be the only Pi owner interested in P6 18:53
stmuk_ ajr_: give me a few mins
ajr_ stmuk, sure, I'm not in a rush 18:54
BTW, is stmuk Steve Mynott? 18:58
stmuk_ yes 18:59
at least this isn't ARM Windows on a PI :) 19:00
ajr_ (I wouldn't do that to anybody :-)* ) To save IRC bandwidth, mail the sequence to Parrot Raiser? 19:02
stmuk_ ajr_: gist.github.com/stmuk/84b49fc92cba...f6c4ce9bfe 19:22
whoami hello! 19:29
ajr_ ping? 19:31
raschipi hi 19:33
who hi 19:34
who anybody here? 19:38
ajr_ Yes, though it's been quiet for a while
pmurias anyone planning to go to (YAPC::EU/The Perl Conference) this year? 19:39
who Why does not the community combine the features of Perl 6 with Perl 5 and make a unique language? Why take two different paths? It's kind of confusing, not a Perl 5 and Perl 6? 19:41
I do not speak English very well so sorry 19:42
geekosaur perl 5 is adopting stuff from perl 6 already, although some of it just doesn't apply 19:43
(since perl 5 doesn't really have types)
pmurias a combined Perl 5/6 wouldn't be able to run the existing Perl 5 code 19:44
who Then would it be safer to learn perl 6? 19:45
geekosaur right, perl 6 is actually a different language even though it maintains many of the core *ideas* of perl. so there is no real upgrade path; things have to be rewritten and in many cases redesigned
pmurias who: I assume it's much easier to get a Perl 5 job if that's what you are concerned about 19:47
who estou a aprender Perl 19:50
sorry 19:51
portuguese...
ajr_ who: Perl 6 was intended (among other ideas) to fix the misfeatures of 5, which could not be done without breaking backwards compatibility
who I'm learning Perl and 19:52
I would like to know how I can help the community?
raschipi saiu... 19:59
ajr_ who: I don't know what the status of the documentation in Portugese is, but translation might be one way to help 20:34
raschipi ajr_: He's gone. 20:37
ajr_ Oh, right, I didn't notice. 20:38
raschipi ajr_: does your client support tab completion for usernames? 20:46
TreyHarris Gah, my memory's like a sieve sometimes... what's the quick way to create an object whose .new takes any named args you give it and sticks it into so-named attributes without needing explicit has? I thought that was my $x = Any.new(a => 1, b => 2), but it isn't.... 20:49
raschipi TreyHarris: a hash doesn't cut it? 21:02
TreyHarris Am I really just imagining that thing existed? Not a hash, but something where 'my $x = ??.new(:a(1), :b<foo>); $x.a.say; $x.b.say;' works? 21:03
TreyHarris raschipi: no, because I'm just trying to quickly ducktype a mock 21:03
I need it in a scalar variable and I need $x.methodname to return the thing I stored
TreyHarris I mean, I can write it in five or six lines using a hash and a fallback, but I really thought I'd seen people quickly construct struct-like objects this way on camelia just by doing a .new on an existing type 21:07
MasterDuke_ TreyHarris: you can give a regex to quotable6 to search the irc logs 21:08
jnthn TreyHarris: If you don't mind a dependency, Test::Mock may be useful to you 21:09
TreyHarris MasterDuke_: I know, I have several ways to search the logs, but I have no idea how to write a pattern that finds that. 'new' followed by :something followed by .something? That'll turn up a huge number of things that aren't what I thought I've seen.
m: use Test::Mock 21:10
camelia ===SORRY!===
Could not find Test::Mock at line 1 in:
/home/camelia/.perl6
/home/camelia/rakudo-m-inst-2/share/perl6/site
/home/camelia/rakudo-m-inst-2/share/perl6/vendor
/home/camelia/rakudo-m-inst-2/share/perl6
CompUnit::…
TreyHarris jnthn: I really thought I'd seen people do it on camelia.
AlexDaniel star: use Test::Mock
camelia ( no output )
jnthn If you wish to roll your own thing, then method FORWARD is probably useful
oops
method FALLBACK
TreyHarris jnthn: yes, it's easy. I just though it already existed. 21:11
jnthn Ah, right, you already mentioned fallback :) 21:12
jnthn only half reading
But no, there's not something build in that does that
raschipi m: my $capture = \( x => 5, y => 20, z => [1, 2] ); my $x = Local::Class.new(|$capture); say $x; say $x.y;
camelia Could not find symbol '&Class'
in block <unit> at <tmp> line 1

Actually thrown at:
in block <unit> at <tmp> line 1
jnthn *built in
grr, my typing is awful
github.com/jnthn/test-mock is the module I referred to, anyways 21:13
raschipi m: classLocal::Class {}; my $capture = \( x => 5, y => 20, z => [1, 2] ); my $x = Local::Class.new(|$capture); say $x; say $x.y; 21:14
camelia Could not find symbol '&Class'
in block <unit> at <tmp> line 1

Actually thrown at:
in block <unit> at <tmp> line 1
sammers m: my $x = class { has $.a = 1; has $.b = 'foo' }.new; $x.a.say; $x.b.say;
camelia 1
foo
TreyHarris jnthn: yep. In this case I want to test my classes, each of which solve a system of equations relating the variables--which are attributes--if a sufficient number of variables have ben set (and throws a tantrum if you pass too many values that lead to no solutions). It would be useful for testing to create a list of objects with solved sets of values, and then I can automatically test each permutation. 21:17
having "my @solutions = Solution.new(:x<1>, :y<2>, :a(i), :b(pi)), Solution.new(:x(0), :y(0), :a(0), :b(i * pi))...." and just looping through it 21:18
jnthn OK; in that case a suspect a class with FALLBACK is the easiest thing, or something like sammers showed 21:19
TreyHarris nods 21:20
jnthn (Test::Mock relies on the methods already existing in the object to be mocked, so is not useful in this case) 21:21
jnthn bbiab 21:22
TreyHarris mixing in Associative and passing a list of captures would probably be just as easy. 21:25
araujo hello :) 22:28
b2gills m: say 'hi' 22:31
camelia hi
raschipi oi araujo 22:44
huggable: hug araujo 22:46
huggable hugs araujo
haxmeister can someone link me to info regarding IO from files with a delimiter? 22:53
raschipi "delimiter"? 22:55
haxmeister like comma seperated files.. or any given delimiter besides comma 22:56
csv
timotimo just set .nl-in
haxmeister ah
where can I find that info though?
raschipi just use .split
docs.perl6.org/routine/split 22:57
timotimo better to use Text::CSV
raschipi That also works.
timotimo csv is at least 10x more complex than you thinw 22:58
thinw
darn it
haxmeister it's not csv 22:59
but it has a pattern that I can pick out with the write tools.. thanks for the help guys
raschipi I know how complicated it is. But split does a good aproximation. 23:00