»ö« 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 lizmat: Same, though for me it probably has something to do with my sleep schedule having shifted to begin around 5AM every day :/ 00:01
lizmat is displaced -6h from her usual TZ 00:02
Mouq That might do it :)
xenoterracide back at poking getting this working github.com/xenoterracide/rakudo/co...nnotations 00:32
lizmat Mouq: it has nothing to do with .push (or unshift): it has to do with Parcel generation: 00:39
r: my $c=42; my $a = $($c,1); $c=43; my $b = $($c,2); .perl.say for $a, $b
camelia rakudo-{parrot,jvm,moar} 8812ca: OUTPUT«$(43, 1)␤$(43, 2)␤»
lizmat r: my $c=42; my $a = $(+$c,1); $c=43; my $b = $(+$c,2); .perl.say for $a, $b 00:40
camelia rakudo-{parrot,jvm,moar} 8812ca: OUTPUT«$(42, 1)␤$(43, 2)␤»
lizmat r: my $c=42; my $a = $($c,1); $c=43; my $b = $(+$c,2); .perl.say for $a, $b
camelia rakudo-{parrot,jvm,moar} 8812ca: OUTPUT«$(43, 1)␤$(43, 2)␤»
lizmat r: my $c=42; my $a = $(+$c,1); $c=43; my $b = $($c,2); .perl.say for $a, $b
camelia rakudo-{parrot,jvm,moar} 8812ca: OUTPUT«$(42, 1)␤$(43, 2)␤»
lizmat ah, timotimo and Mouq already established that :-) 00:42
timotimo for my use case i kinda wish for a zip-latest combinator that doesn't require each supply to have pushed something once 00:46
i *could* merge an initiator supply into both combined supplies, but that seems like a terrible hack
Mouq std: &("sigilicious")
camelia std 0f2049c: OUTPUT«ok 00:01 127m␤»
Mouq wonders what Code context would mean... 00:47
dalek c: 97c9057 | Mouq++ | lib/Language/variables.pod:
Fix twigils table

The "=" messed up the pod parser
00:48
c: 17e8eaf | Mouq++ | lib/Language/variables.pod:
Some adjustments and additions to variables.pod
lizmat timotimo: perhaps that should be the default behaviour 00:49
with a named parameter to only return complete ? 00:51
colomon aha! 00:59
the power of turning it off and back on again 01:00
lizmat haha 01:06
colomon it logged into #perl6 automatically and quickly. 01:08
hoelzro I think I found a bug: gist.github.com/hoelzro/4a904953f9d8de749185 01:20
xenoterracide :/ 01:23
Mouq hoelzro: Smartmatch doesn't curry with * 01:26
hoelzro: Use .grep({$_ ~~ TestRole}) or just .grep(TestRole) instead 01:27
hoelzro: It's a definite WAT though
Mouq m: say *.isa(Str) 01:28
camelia rakudo-moar 8812ca: OUTPUT«WhateverCode.new()␤»
Mouq m: say * ~~ Str
camelia rakudo-moar 8812ca: OUTPUT«False␤»
Mouq And that'll never match anything, since Anything ~~ False is False
Mouq m: say * ~~ False # Why does this warn 01:29
camelia rakudo-moar 8812ca: OUTPUT«Potential difficulties:␤ Smartmatch against False always fails; if you mean to test the topic for truthiness, use :!so or *.not or !* instead␤ at /tmp/uQh51csgZ7:1␤ ------> say * ~~⏏ False # Why does this warn␤Whatever…»
Mouq m: say * ~~ (False) # But this doesn't? 01:30
camelia rakudo-moar 8812ca: OUTPUT«False␤»
hoelzro oh, it doesn't? 01:33
ok, that's kinda good, then =)
good that it's not a bug, I mean
xenoterracide what's := 01:44
not documented in operators
xenoterracide I'm thinking it's just assignment 01:44
Mouq xenoterracide: Binding 01:47
xenoterracide what's the difference between that and assignment? 01:48
Mouq xenoterracide: It's assignment, but less magical. It binds the variable directly to whatever's on the other side, rather than putting it in a container
xenoterracide: doc.perl6.org/language/containers#Binding
Mouq will add it to operators.pod 01:49
benabik $x = $y puts the value in $y into $x. $x := $y makes $x and $y the same thing. 01:51
lizmat m: my $a = 42; my $b := $a; say $b
camelia rakudo-moar 8812ca: OUTPUT«42␤»
lizmat m: my $a = 42; my $b := $a; say $b; $b = 43; say $a
camelia rakudo-moar 8812ca: OUTPUT«42␤43␤»
benabik lizmat++
Mouq benabik: :D can I steal your explaination and use it in operators.pod? 01:54
benabik Mouq: Sure. It's not the best explination, but it's succinct. 01:55
xenoterracide Mouq: thanks, hmm immutable pointer... just trying to figure out what to compare this to in my brain 01:56
BenGoldberg The := operator of perl6 is a bit like using the Devel::LexAlias module of perl5. 01:57
But more type-safe, of course.
xenoterracide heh, I've never used that either
BenGoldberg Or putting it another way, $x := $y of perl6 is similar to *x = \$y of perl5, except that it works with any type of $x, not just lexical variables. 01:59
lizmat BenGoldberg: don't you mean Data::Alias ?
dalek c: 9604d40 | Mouq++ | lib/Language/operators.pod:
Add := and ::=. xenoterracide++ benabik++ lizmat++
02:10
c: 34e002e | Mouq++ | / (2 files):
Some adjustments and additions to "Using Objects"
Mouq (Feel free to add to my definitions) 02:11
dalek c: 4f55f66 | Mouq++ | lib/Language/operators.pod:
Fix formatto
02:13
c: bcf69ec | Mouq++ | htmlify.p6:
If a link has no letters, it's probably a routine
02:21
btyler hi all. the first example in 'classtut' (with the task dependencies) is broken at the moment. I've found the handful of tweaks needed to get it working again, but I don't have a great 'idiomatic perl6' sense. would appreciate feedback/suggestions: github.com/kanatohodets/doc/commit...d975675afb 02:25
Mouq++'s work on the docs lately got me looking at the issue list for them, this one seemed like LHF 02:26
benabik I'm somewhat curious why you had to make the attributes public. 02:31
btyler me too. from the baby perl perspective, it just "didn't work" with private ones. I'll put it back in that state to grab the errors 02:33
for the callback, I got 'Cannot invoke this object (REPR: Uninstantiable, cs = 0)' on the line where it gets called 02:34
flipping it public fixed that
well, public + accessor method
I suppose I should try r-j 02:35
hm, indeed, r-m specific bug
Mouq :/ Weird... also btyler++ :D 02:38
btyler wrong again. cannot invoke this object on r-j as well. not sure what the deal there is
Mouq btyler: Try "has &!callback = {;}" 02:52
m: *() 02:53
camelia rakudo-moar 8812ca: OUTPUT«Cannot find method 'postcircumfix:<( )>'␤ in block at /tmp/D_xqqqpapO:1␤␤»
xenoterracide $obj, :$local, :$excl, :$all what does the : by you? does that mean you can pass those in any order so long as you specify with some fat arrow named variant? 02:54
s/by/buy
Mouq xenoterracide: Yup
We should have an Adverbs language doc 02:55
xenoterracide been reading s02
Mouq perlcabal.org/syn/S02.html#Adverbial_Pair_forms 02:57
But in signatures you can't use the fat arrow form
Timbus m: my $foo = 'bar'; say (:$foo)
camelia rakudo-moar 8812ca: OUTPUT«"foo" => "bar"␤»
Mouq m: sub add-two (num => $num) { $num + 2 }; add-two num => 4 02:58
camelia rakudo-moar 8812ca: OUTPUT«===SORRY!=== Error while compiling /tmp/m3c0RsRypF␤Preceding context expects a term, but found infix > instead␤at /tmp/m3c0RsRypF:1␤------> sub add-two (num =>⏏ $num) { $num + 2 }; add-two num => 4␤»
Mouq m: sub add-two (:$num) { $num + 2 }; say add-two num => 4
camelia rakudo-moar 8812ca: OUTPUT«6␤»
Mouq m: sub add-two (:$num) { $num + 2 }; say add-two :num(4)
camelia rakudo-moar 8812ca: OUTPUT«6␤»
Mouq m: sub add-two (:$num) { $num + 2 }; say add-two :4num
camelia rakudo-moar 8812ca: OUTPUT«6␤»
Mouq Ok, that last one is kind of abuse 02:59
Timbus its a scary one to look at
Mouq m: my &x; &x() 03:00
camelia rakudo-moar 8812ca: OUTPUT«Cannot invoke this object (REPR: Uninstantiable, cs = 0)␤ in block at /tmp/DcGDGMLcsU:1␤␤»
xenoterracide any feature powerful enough will be abused
benabik s/powerful enough //
xenoterracide heh
zengargoyle ... sufficiently powerful feature ... indistinguishible from magic ... 03:08
benabik use DWIM; doit();
dalek c: ced282d | Mouq++ | lib/Language/objects.pod:
More fiddling with objects.pod
03:40
btyler ok, pretty sure the basic issue is that you can't use auto-bind private attributes through adverbs in bless 03:53
so &!callback and @!dependencies were empty and defaulting to the type object that they were initialized as 03:54
that's something you can do with BUILD in the signature, but that gives up the slurpy 'dependencies' and the nice little tree structure for creating the task objects 03:55
btyler Mouq, benabik ^ 03:56
Timbus submethod BUILD(:&!callback, :@!dependencies){ } 04:07
makes it all work
btyler except for the positional params, right?
Timbus i only ran the example
btyler hum, objects.pod said that you can't have positional arguments to BUILD, which is what the example is 04:08
oh, you mean keeping the new
Timbus you keep the new
you just let build set the private attributes
btyler right 04:09
Timbus you dont need any code inside build. its uh, magical
btyler right, saw that in objects.pod
ok, yeah, that seems nicest
Timbus i find it easier to just make attributes public, i guess. 04:17
Mouq (BUILD isn't that magical) 04:21
Mouq m: class Foo { has $.bar; class baz (:$!baz) {} }; my Foo $foo .= new; $foo.baz :bar(42); say $foo 04:22
camelia rakudo-moar 8812ca: OUTPUT«===SORRY!=== Error while compiling /tmp/vddfCTymPZ␤Unable to parse class definition␤at /tmp/vddfCTymPZ:1␤------> class Foo { has $.bar; class baz ⏏(:$!baz) {} }; my Foo $foo .= new; $foo.␤ expecting any of:…»
Mouq m: class Foo { has $.bar; method baz (:$!baz) {} }; my Foo $foo .= new; $foo.baz :bar(42); say $foo 04:23
camelia rakudo-moar 8812ca: OUTPUT«===SORRY!=== Error while compiling /tmp/ibXB5MxR3e␤Attribute $!baz not declared in class Foo␤at /tmp/ibXB5MxR3e:1␤------> oo { has $.bar; method baz (:$!baz) {} }⏏; my Foo $foo .= new; $foo.baz :bar(42);␤ e…»
Mouq Blah, sorry
m: class Foo { has $.bar; method baz (:$!bar) {} }; my Foo $foo .= new; $foo.baz :bar(42); say $foo
camelia rakudo-moar 8812ca: OUTPUT«Foo.new(bar => 42)␤»
btyler right, I just added some doc to classtut about the BUILD param-attribute binding trick 04:25
is there a way to link to a subheading of another piece of doc?
Mouq L<...>?
L</path/to/doc#subheading> 04:26
I wish there was a better way, but that's the best you can do for now
btyler ok 04:27
path relative to the originating doc, or relative to the doc repo root?
Timbus i know its not BUILD being magical here. i just feel it would have been more sensible to be more simple. has $!var can init; .. or something. ¯\(°_o)/¯ 04:32
Mouq btyler: Do it relative to root 04:33
btyler Mouq: great, thanks 04:34
Mouq btyler: Stuff gets copied between documents, and its easy for a link to point to the wrong place if its relative
btyler ok. I saw |/ syntax, so I did this: L<objects|/lib/Language/objects#Object Construction>
seem reasonable?
Mouq L<objects|/language/objects#Object Construction> 04:35
btyler roger
Mouq btyler++
btyler Mouq: github.com/perl6/doc/pull/19 04:39
btyler I think I actually have a commit bit there, but last time was just some spelling correction, I'd rather have a set of eyes on doc for things that I'm no expert in 04:39
dalek c: 4356451 | Mouq++ | lib/Language/objects.pod:
More tweeks, and role application example
04:43
c: e115f9f | (Ben Tyler)++ | lib/Language/classtut.pod:
Small tweaks to un-bitrot classtut's first example.

Some of these tweaks may change the message that the example is sending, so this commit is mostly to show a changeset to the fine people of #perl6 for feedback.
04:44
c: d99e1cf | (Ben Tyler)++ | lib/Language/classtut.pod:
Improve classtut example again

  * Bring back private attributes (BUILD submethod needed to bind them properly).
  * Add some doc explaining the BUILD usage in the example.
c: c4ba4e6 | (Alexander Moquin)++ | lib/Language/classtut.pod:
Merge pull request #19 from kanatohodets/master

Fix up classtut example
Mouq I like it :)
btyler woo! thanks for the review
Mouq I'll have it sync'd up in ~8 min 04:45
Oh, wait, jk
Sync'd :) 04:46
btyler awesome 04:48
dalek c: 917136d | Mouq++ | lib/Language/ (2 files):
Move Quoting Constructs to its own document
05:13
dalek c: e311356 | Mouq++ | lib/Language/operators.pod:
Reference Term#Pair in infix => definition
05:20
Mouq discovers `ack --bar` 05:29
PerlJam Mouq: it's a relatively new addition I think. (at least I don't remember it in the 1.xx versions) 05:38
Mouq PerlJam: Maybe once they decided to add it, they realized it was worthy of a major version change and upped to Ack 2 05:44
PerlJam no, petdance made ack 2 for much nobler reasons. But I can see how a version bump would be a natural place to include the --bar option. 05:46
Mouq petdance++ in any case
dalek c: f2b0a68 | Mouq++ | lib/Type/Str.pod:
Update Str a bit
06:58
c: 7920acd | Mouq++ | lib/Language/terms.pod:
Add Whatever to terms.pod
masak good morning, #perl6 06:59
FROGGS o/ 07:02
FROGGS who volunteers to port Archive::Tar? 07:04
FROGGS anybody? 07:05
FROGGS mumbles
FROGGS .tell lizmat this is the state of panda+CPAN: gist.github.com/FROGGS/197b7747f3594079712a - now I am going to port Archive::Tar 07:08
yoleaux FROGGS: I'll pass your message to lizmat.
sergot morning o/ 07:28
FROGGS morning
atroxaper_ Common operation section in S07 is empty. Is there something like q{ [1, 2, 3].last == 3 } ?
morning! 07:29
m: my @d = <1 2 3>; say @d.last;
camelia rakudo-moar 8812ca: OUTPUT«No such method 'last' for invocant of type 'Array'␤ in block at /tmp/RoWpUwjxVA:1␤␤»
moritz m: my @d = 1, 2, 3; say @d[*-1] 07:30
camelia rakudo-moar 8812ca: OUTPUT«3␤»
atroxaper_ Oh... I didn't thought about *. I tried just '-1' ;)
moritz: thatnks!
FROGGS but is should warn with a nice message.. 07:31
moritz m: my @d; @d[-1]
camelia rakudo-moar 8812ca: OUTPUT«Unhandled exception: Cannot use negative index -1 on Array␤ at src/gen/m-CORE.setting:11395 (/home/p6eval/rakudo-inst-2/languages/perl6/runtime/CORE.setting.moarvm:throw:117)␤ from src/gen/m-CORE.setting:12845 (/home/p6eval/rakudo-inst-2/languages/…»
FROGGS m: my @a = ^10; say @a[-1]
camelia rakudo-moar 8812ca: OUTPUT«===SORRY!===␤Cannot use negative index -1 on Array␤»
FROGGS :/
p: my @a = ^10; say @a[-1] 07:32
camelia rakudo-parrot 8812ca: OUTPUT«Cannot use negative index -1 on Array␤ in method gist at gen/parrot/CORE.setting:12776␤ in method gist at gen/parrot/CORE.setting:1038␤ in sub say at gen/parrot/CORE.setting:13704␤ in sub say at gen/parrot/CORE.setting:13691␤ in block at …»
atroxaper_ moritz: Yes. I think about empty Array...
moritz atroxaper_: @d && @d[*-1]
atroxaper_ moritz: Right!
FROGGS fixing... 07:33
atroxaper_ FROGGS++
FROGGS std: my @a = ^10; say @a[-1] 07:34
camelia std 0f2049c: OUTPUT«===SORRY!===␤Unsupported use of [-1] subscript to access from end of array; in Perl 6 please use [*-1] at /tmp/rZBrx32vqz line 1:␤------> my @a = ^10; say @a[-1]⏏<EOL>␤Parse failed␤FAILED 00:01 126m␤»
FROGGS m: my @a = ^10; say (try @a[-1]).WHAT # also wants to be typed I guess... 07:36
camelia rakudo-moar 8812ca: OUTPUT«(Failure)␤»
moritz m: my @a = ^10; say @a[-1].payload 07:37
camelia rakudo-moar 8812ca: OUTPUT«===SORRY!===␤Cannot use negative index -1 on Array␤»
moritz m: my @a = ^10; say @a[-1].exception
camelia rakudo-moar 8812ca: OUTPUT«Cannot use negative index -1 on Array␤ in block at src/gen/m-CORE.setting:12851␤ in sub postcircumfix:<[ ]> at src/gen/m-CORE.setting:2459␤ in block at /tmp/p8fliazcy2:1␤␤»
moritz m: my @a = ^10; say @a[-1].exception.^name
camelia rakudo-moar 8812ca: OUTPUT«X::AdHoc␤»
Fabian____ Hi there. Has anyone used the DBIish module to connect to an SQLite database? 07:45
FROGGS isnt sqlite even in one of its tests? 07:45
Fabian____ I'm not sure. I am looking for an example of how to get a connection to a SQLite db. 07:46
FROGGS Fabian____: github.com/perl6/DBIish/blob/maste...e-common.t 07:47
and github.com/perl6/DBIish/blob/maste...common.pl6
perhaps we could post an example to github.com/perl6/DBIish/wiki ? 07:50
Fabian____ Thank you. I think that will help me.
An example in the wiki would be nice. 07:51
moritz Fabian____: I'd put such things in the README... do you want to contribute one? 07:52
Fabian____ Sure. 07:53
dalek ast: 130b447 | (Tobias Leich)++ | S (2 files):
Revert "fudge failing tests, only for release purposes"

Release was done, problems need to be fixed now. This reverts commit f7b42fbbe918589dfbed9d938f80276c9b7c6132.
Fabian____ Do i just add an example to the readme and send it to you? 07:56
FROGGS fork the repo, modify and send a pull request... or moritz gives you a commit bit 07:57
Fabian____ ok. 07:58
moritz Fabian____: what's your github ID?
Fabian____ The id is the user name? That is fbou. 08:00
moritz Fabian____: ok, you can push to DBIish now 08:10
(and a bunch of other repos)
Fabian____ Thanks.
dalek osystem: f942537 | softmoth++ | META.list:
Add Template::Mustache to META.list
08:24
thou ^ That's me, I'm open to any feedback on it. In particular, I'd like to know if I can reduce backtracking and make the grammar cleaner. 08:27
But at the moment I need to quit and go to bed!
dalek kudo/nom: ec743ce | (Tobias Leich)++ | src/core/ (4 files):
throw a X::Subscript::FromEnd for @foo[-1]
thou o/ good night, #perl6
donaldh o/ perl6 09:22
yakudzo o/ 09:24
FROGGS o/ 09:26
atroxaper o/ 09:30
donaldh blogged: donaldh.github.io/blog/2014/06/20/e...n-eclipse/ 09:46
moritz donaldh++ 09:49
moritz tweets it
FROGGS donaldh++ 09:53
atroxaper donaldh++ 10:13
donaldh: I have tried do something like that for IntellijIDEA
donaldh It should be possible to create a simple jar / OSGi bundle that can reference an existing rakudo installation. That should be useable anyhwere 10:19
The perl6-eclipse-plugin relies on Eclipse-BundleShape: dir so that I can embed the installation and still resolve files off the filesystem 10:21
I think it is possible for an OSGi bundle to unpack into a 'bundle repository' directory but I have not tried.
we could also repack all of the module jars into a single perl6.jar so that they can be easily classloaded. 10:22
many possibilities
dalek nda: 4073c98 | (Kamil Kułaga)++ | t/builder.t:
typo in test
10:38
nda: f184335 | (Tobias Leich)++ | t/builder.t:
Merge pull request #86 from teodozjan/patch-1

typo in test messaage
timotimo lizmat: i was told that wouldn't be a zip if it behaved like that by default 11:02
newbie_Perl6 something incosistent with the specs 11:48
p: Cool.HOW
camelia ( no output )
newbie_Perl6 Cool.HOW.HOW 11:49
p: Cool.HOW.HOW
camelia ( no output )
newbie_Perl6 p: Cool.HOW.HOW.HOW
camelia ( no output )
newbie_Perl6 why no output in camelia? 11:50
p: '1,2,3' ~~ m / <digit>+% ',' / 11:52
camelia ( no output )
newbie_Perl6 p: '1,2,3' ~~ m / <digit>+%% ',' / 11:53
camelia ( no output )
newbie_Perl6 p: '1,2,3,' ~~ m / <digit>+% ',' / 11:56
camelia ( no output )
FROGGS newbie_Perl6: you have to 'say' it
newbie_Perl6 AHA~
FROGGS m: say Cool.HOW
camelia rakudo-moar ec743c: OUTPUT«Perl6::Metamodel::ClassHOW.new()␤»
FROGGS m: say Cool.HOW.HOW
camelia rakudo-moar ec743c: OUTPUT«No such method 'gist' for invocant of type 'NQPClassHOW'␤ in sub say at src/gen/m-CORE.setting:13761␤ in block at /tmp/0mFlgSYc7u:1␤␤» 11:57
FROGGS ahh 11:57
psch hi #perl6
FROGGS hi psch
m: say '1,2,3,' ~~ m / <digit>+% ',' /
camelia rakudo-moar ec743c: OUTPUT«「1,2,3」␤ digit => 「1」␤ digit => 「2」␤ digit => 「3」␤␤»
psch i've decided i'm not being useful by poking at all those low-level vm-specific things
newbie_Perl6 thank you FROGGs
FROGGS newbie_Perl6: you're welcome 11:58
psch NativeCall works if i supply specific native types afaict, so i'll just skip the tests for installing it with panda
FROGGS psch: the are a lot of high level things waiting too :o)
yes, that one is tricky
(even when it doesn't look like on the first glance)
psch FROGGS: yes, i have no idea how to figure out where Moar gets the nativesize for the P6int repr, no matter if it's explicit or not 12:00
i think that would be the place to start
FROGGS yes, and that is also the place where I failed last time
newbie_Perl6 m: say Str.^attributes 12:01
camelia rakudo-moar ec743c: OUTPUT«No such method 'gist' for invocant of type 'BOOTSTRAPATTR'␤ in method gist at src/gen/m-CORE.setting:7178␤ in sub say at src/gen/m-CORE.setting:13755␤ in block at /tmp/bPm3aET6Tw:1␤␤»
FROGGS p: say Str.^attributes
camelia rakudo-parrot ec743c: OUTPUT«No such method 'gist' for invocant of type 'BOOTSTRAPATTR'␤ in method gist at gen/parrot/CORE.setting:7125␤ in method gist at gen/parrot/CORE.setting:1038␤ in sub say at gen/parrot/CORE.setting:13714␤ in sub say at gen/parrot/CORE.setting:137…»
FROGGS m: say Str.^attributes>>.Str 12:02
camelia rakudo-moar ec743c: OUTPUT«No such method 'Str' for invocant of type 'BOOTSTRAPATTR'␤ in method dispatch:<hyper> at src/gen/m-CORE.setting:1244␤ in block at /tmp/6zbqYcenqt:1␤␤»
FROGGS hmpf
moritz m: say ~<<Str.^attributes
camelia rakudo-moar ec743c: OUTPUT«No such method 'item' for invocant of type 'BOOTSTRAPATTR'␤ in method message at src/gen/m-CORE.setting:12543␤ in sub deepmap at src/gen/m-CORE.setting:17547␤ in sub METAOP_HYPER_PREFIX at src/gen/m-CORE.setting:17493␤ in block at /tmp/mbo2Gsl…»
moritz wtf
newbie_Perl6 m: say Cool.HOW.HOW.HOW 12:05
camelia rakudo-moar ec743c: OUTPUT«No such method 'gist' for invocant of type 'KnowHOW'␤ in sub say at src/gen/m-CORE.setting:13761␤ in block at /tmp/WF_tGsI0AE:1␤␤»
newbie_Perl6 Can anyone fix it? 12:07
moritz I'm sure somebody can, yes
newbie_Perl6 that's great. it's too hard for me. 12:08
timotimo well, a KnowHOW is a very low-level thing that's only needed for bootstrapping, and if you're trying to introspect that deep, you're doing stuff you maybe shouldn't be doing 12:10
colomon donaldh++ indeed!
newbie_Perl6 it's inconsistent with the specs 12:11
moritz aye; it shouldn't leak out 12:12
newbie_Perl6 donaldh++ , i like the idea of the single perl6.jar 12:13
newbie_Perl6 yes moritz, that's the very point i want to say. 12:14
betterworld say I've built a parser using Perl 6 grammars. How do I get the line number of a parse error? 12:17
dalek kudo-star-daily: d29735b | coke++ | log/ (14 files):
today (automated commit)
12:27
dalek ast: a3db7d2 | (Pepe Schwarz)++ | S06-signature/introspection.t:
Test narrower for RT #69492
12:30
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=69492
psch m: sub foo(:$) { }; say &foo.signature.params[0].name # related to the ticket above 12:39
camelia rakudo-moar ec743c: OUTPUT«Failed to write to filehandle: NULL string given␤ in method print at src/gen/m-CORE.setting:14014␤ in sub say at src/gen/m-CORE.setting:13750␤ in block at /tmp/WZeahPqi3B:1␤␤»
psch segfaults in the Moar repl
checking for definedness of $!variable_name in Parameter.name is enough here? or should the Parameter get a Str for $!variable_name even if it's empty? 12:40
[Coke] ... did someone really unfudge failing tests in roast so they fail again? that seems wrong. 12:47
Instead, there should be a ticket, and the test should stay fudged.
(this was a post-release unfudge) 12:48
psch oh, for consistency an anon named should have a Str bound to its $!variable_name and that string should just contain the sigil 12:53
m: sub foo(:$bar) { }; &foo.signature.params[0].name.say
camelia rakudo-moar ec743c: OUTPUT«$bar␤»
psch so for foo(:$) { } it should print '$'
moritz aye 12:54
psch is horribly reliant on rubber-ducking it seems.
colomon I'm getting really weird results trying to run my smoke tests on rakudo-parrot. This time around: 13:03
==> Installing JSON::Tiny
Segmentation fault (core dumped)
hoelzro is this a bug? gist.github.com/hoelzro/2a6de4f56618754c6de2 14:23
timotimo it could very well be that the method you find there is not, in fact, a multi method, but the proto method that's automatically generated 14:31
[Coke] m: class Foo { multi method test(Str $) { } multi method test(Str $) { } }
camelia rakudo-moar ec743c: OUTPUT«===SORRY!=== Error while compiling /tmp/35qYQOEK_q␤Two terms in a row␤at /tmp/35qYQOEK_q:1␤------> lass Foo { multi method test(Str $) { } ⏏multi method test(Str $) { } }␤ expecting any of:␤ statem…»
[Coke] m: class Foo { multi method test(Str $) { } ; multi method test(Str $) { } }
camelia ( no output )
timotimo should that work?
hoelzro it makes sense that a proto is automatically generated, but shouldn't that proto.multi be true?
[Coke] shouldn't that be a compile time error with the duplicated sig? 14:32
timotimo could very well be
hoelzro consults source 14:32
FROGGS there are no compile time errors about multiple sigs atm 14:35
FROGGS std: multi a { }; multi a { } 14:36
camelia std 0f2049c: OUTPUT«ok 00:01 123m␤»
psch m: sub foo(:($)!) { say "ok" }; say baz :<1>; say baz :''<1> # ...how?
camelia rakudo-moar ec743c: OUTPUT«===SORRY!=== Error while compiling /tmp/jaxTpGjri_␤Two terms in a row␤at /tmp/jaxTpGjri_:1␤------> )!) { say "ok" }; say baz :<1>; say baz ⏏:''<1> # ...how?␤ expecting any of:␤ argument list␤ …»
psch both calls (obviously?) complain about "Required named parameter '' not passed" 14:36
i can't find anything specced about required anon nameds 14:37
psch (the first actually only complains, the seconds doesnt parse..) 14:37
FROGGS m: say (:<1>)
camelia rakudo-moar ec743c: OUTPUT«1␤»
FROGGS m: say (:<1>).perl
camelia rakudo-moar ec743c: OUTPUT«"1"␤» 14:37
FROGGS m: say (:''<1>).perl
camelia rakudo-moar ec743c: OUTPUT«===SORRY!=== Error while compiling /tmp/dxW986CDuH␤Bogus statement␤at /tmp/dxW986CDuH:1␤------> say (⏏:''<1>).perl␤ expecting any of:␤ semicolon list␤ prefix or term␤ prefix or me…»
psch m: sub foo(:($)!) { say "ok" }; baz (:<1>) 14:37
camelia rakudo-moar ec743c: OUTPUT«===SORRY!=== Error while compiling /tmp/MBmpg1swaZ␤Undeclared routine:␤ baz used at line 1. Did you mean 'bag'?␤␤»
FROGGS m: say (:''(<1>)).perl
camelia rakudo-moar ec743c: OUTPUT«===SORRY!=== Error while compiling /tmp/v1LovvjlM9␤Bogus statement␤at /tmp/v1LovvjlM9:1␤------> say (⏏:''(<1>)).perl␤ expecting any of:␤ semicolon list␤ prefix or term␤ prefix or …»
psch m: sub foo(:($)!) { say "ok" }; foo (:<1>)
camelia rakudo-moar ec743c: OUTPUT«Required named parameter '' not passed␤ in sub foo at /tmp/x6BEGwzGPG:1␤ in block at /tmp/x6BEGwzGPG:1␤␤» 14:38
psch FROGGS: ^^
i'm not seeing it
FROGGS :<1> is not "" => 1, that is the problem 14:38
psch yes, but "" => 1 isn't :($)
Timbus an unfortunate consequence of having a lot of working features
psch or rather, a Parameter :($) doesn't accept "" => 1 14:39
FROGGS but what is :($) ? 14:39
psch an anon named.. :)
FROGGS O.o
psch see RT #69492 14:40
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=69492
FROGGS m: sub foo(:($)!) { say "ok" }; foo('' => 1)
camelia rakudo-moar ec743c: OUTPUT«Required named parameter '' not passed␤ in sub foo at /tmp/oi4YFNAtSO:1␤ in block at /tmp/oi4YFNAtSO:1␤␤»
Timbus in video game development, when you waggle controls or do something very crazy to cause a strange bug, its called a 'psychotic user behavior' bug 14:40
so this is a.. 'psychotic API designer' bug?
psch seeing as spectest says anon named are supposed to be tested, which i infer means theyre allowed and have to be specifically implemented... 14:41
Timbus anon named... 14:42
psch Timbus: yes, psychotic design doesn't sound wrong
psch i guess being able to look at the signature and say "ok, there's anon named, upstream is crazy" is a worthy feature in its own right 14:43
Timbus if you want to make a function that takes a param no one can possibly pass. more power to you. imo. 14:44
[Coke] writing univokable code is not a good thing. 14:45
[Coke] *uninvokable 14:45
Timbus if i wrote it? its probably a good thing
dalek rl6-roast-data: 3dd21e7 | coke++ | / (5 files):
today (automated commit)
Timbus :p
[Coke] LHF: niecza has a bunch of 'todo passed' tests now. 14:46
psch m: sub foo(:($)!) { say "ok" }; my %h = '' => 1; foo |%h # this used to work according to the ticket 14:50
camelia rakudo-moar ec743c: OUTPUT«Not enough positional parameters passed; got 0 but expected 1 in sub-signature␤ in sub foo at /tmp/FwmyaWufKp:1␤ in block at /tmp/FwmyaWufKp:1␤␤»
hoelzro 'multi foo' is always shorthand for 'multi sub foo', right? even within a class/role decl? 14:51
psch n: sub foo(:($)!) { say "ok" }; my %h = '' => 1; foo |%h # niecza++ for sanity
camelia niecza v24-109-g48a8de3: OUTPUT«===SORRY!===␤␤Abbreviated named parameter must have a name at /tmp/UgB0PstNMA line 1:␤------> sub foo(:($)⏏!) { say "ok" }; my %h = '' => 1; foo |%␤␤Unhandled exception: Check failed␤␤ at /home/p6e…»
timotimo i fail at promises :S 14:52
FROGGS hoelzro: yes 14:52
timotimo: what's up?
std: sub foo(:($)!) { say "ok" } 14:53
camelia std 0f2049c: OUTPUT«ok 00:01 127m␤»
psch FROGGS: so the actual bug in rakudo here is that foo(:($)!) somehow build a positional and calling with %h = '' => 1; foo |%h is what should work 14:55
sergot std: 0
camelia std 0f2049c: OUTPUT«ok 00:00 121m␤»
psch that might actually be related to anon nameds not getting a $!variable_name i think 14:56
because create_signature_object in Actions only builds a parameter when it has a variable_name
timotimo m: multi sub collatz(1) { 1 }; multi sub collatz($n) { $n %% 2 ?? collatz($n / 2) !! collatz($n * 3 + 1) }; say await (^10).map: { start { collatz($_) } }
camelia rakudo-moar ec743c: OUTPUT«(signal )»
timotimo oops?
m: multi sub collatz(1) { 1 }; multi sub collatz($n) { $n %% 2 ?? collatz($n / 2) !! collatz($n * 3 + 1) }; say (^10).map: { collatz($_)} 14:57
camelia rakudo-moar ec743c: OUTPUT«(timeout)»
timotimo m: multi sub collatz(1) { 1 }; multi sub collatz($n) { $n %% 2 ?? collatz($n / 2) !! collatz($n * 3 + 1) }; say (^4).map: { collatz($_)}
camelia rakudo-moar ec743c: OUTPUT«(timeout)»
timotimo why.
m: multi sub collatz(1) { 1 }; multi sub collatz($n) { say $n; $n %% 2 ?? collatz($n / 2) !! collatz($n * 3 + 1) }; collatz(10); 14:58
camelia rakudo-moar ec743c: OUTPUT«(timeout)10␤5␤16␤8␤4␤2␤1␤4␤2␤1␤4␤2␤1␤4␤2␤1␤4␤2␤1␤4␤2␤1␤4␤2␤1␤4␤2␤1␤4␤2␤1␤4␤2␤1␤4␤2␤1␤4␤2␤1␤4␤2␤1␤4␤2␤1␤4␤2␤1␤4␤2␤1␤4␤2␤1␤4␤2␤1␤4␤2␤1␤4…»
timotimo why doesn't that end at 1?
because of rat? 14:59
m: multi sub collatz(1) { 1 }; multi sub collatz($n) { say $n; $n %% 2 ?? collatz($n div 2) !! collatz($n * 3 + 1) }; collatz(10);
camelia rakudo-moar ec743c: OUTPUT«10␤5␤16␤8␤4␤2␤»
timotimo ah, of course 14:59
timotimo i'm confused still 15:01
timotimo Internal error: invalid thread ID in GC work pass - grrrrrr 15:09
FROGGS kill it! kill it with fire! 15:15
psch m: sub foo(:$, :$) { } # kinda sane i guess? 15:18
camelia rakudo-moar ec743c: OUTPUT«===SORRY!=== Error while compiling /tmp/HxtazFBsp1␤Name used for more than one named parameter␤at /tmp/HxtazFBsp1:1␤------> ub foo(:$, :$) { } # kinda sane i guess?⏏<EOL>␤ expecting any of:␤ state…»
timotimo why do things go wrong when i try to do stuff ... 15:29
this is just my luck
timotimo m: $_ = "hello how are you today?"; s[\w+] = *.uc; say $_ 15:30
camelia rakudo-moar ec743c: OUTPUT« how are you today?␤»
timotimo m: $_ = "hello how are you today?"; s:g[\w+] = *.uc; say $_ 15:31
camelia rakudo-moar ec743c: OUTPUT« ?␤»
timotimo how do i do this again?
m: $_ = "hello how are you today?"; s:g[\w+] = { .uc }; say $_
camelia rakudo-moar ec743c: OUTPUT« ?␤»
timotimo oh, it seems like i want $() instead of $_ 15:32
m: $_ = "hello how are you today?"; s:g[\w+] = { $().uc }; say $_
camelia rakudo-moar ec743c: OUTPUT« ?␤»
timotimo m: $_ = "hello how are you today?"; s:g[\w+] = $().uc; say $_
camelia rakudo-moar ec743c: OUTPUT«HELLO HOW ARE YOU TODAY?␤»
timotimo with -p -e that doesn't seem to work at all 15:34
i get Nil for $/ and "" for $()
hoelzro oh, another thing! 15:37
last night I tried any('foo', 6) ~~ Str, which returns False
hoelzro I'm guessing that's similar to why * ~~ Something doesn't work? 15:37
timotimo ~~ known stuff about junctions 15:39
timotimo it won't autothread in this context 15:40
lizmat good *, #perl6! 15:49
yoleaux 07:08Z <FROGGS> lizmat: this is the state of panda+CPAN: gist.github.com/FROGGS/197b7747f3594079712a - now I am going to port Archive::Tar
lizmat timotimo: wrt zip-latest, that was before I realized your use case
lizmat perhaps it would be more transparant, if you could supply the initial state when you create the tap 15:50
if you don't, then it would wait until there's a value from each constituent
if you do, then the condition for passing on values, has been met and everything still works according to spec :-) 15:51
something like :initial(Any,Any,Any) 15:52
if you're zipping 3 supplies
timotimo i'm annoyed that i have to for lines() -> $_ is copy to make s etc work 15:53
Mouq FROGGS: Not sure how far you've gotten on Archive::Tar, but I did start it the *tiniest* bit in March: github.com/Mouq/Archive-Tar 15:55
So you can use that
afk& 15:56
timotimo looking for cute little tasks i could show off with one-linerson the commandline 15:59
with -e, -n and -p
hoelzro ahoy lizmat 16:07
cognominal timotimo, "strict" mode is still on by default on Perl 6 for lack of non stricture? Oneliners are not so cute with you need to define every single variable 16:08
timotimo that's no biggie 16:08
you can just define them at the earliest convenient point
hoelzro timotimo: if I understand your tweet correctly, are you asking if anyone's interested in the slides for your talk? 16:20
gtodd masak: ++ your talk YAPC::NA:2013 on grammars ... excellent
"regex me once or twice, shame on you ... regex 1000 times shame on me " heh 16:21
timotimo no 16:23
if anybody wants to attend at all :P
dalek rlito/gh-pages: 596c947 | (Flavio S. Glock)++ | index.html:
Perlito5 - web - add mailing list
16:32
timotimo damnit, tried to build a simple markov chain walker and it only spews completely random fallback chains 16:58
lizmat :-( 17:00
dalek kudo/nom: 04b2b13 | (Elizabeth Mattijsen)++ | src/core/CompUnitRepo/Locally.pm:
Make .WHICH also work on type objects
17:02
timotimo the source material is far from perfect 17:04
dalek kudo/nom: 49ba989 | (Elizabeth Mattijsen)++ | t/spectest.data:
Add first tests for S22
17:10
FROGGS Mouq: nice! I have not started yet, but will now 17:16
FROGGS Mouq: is that a direct P5->P6 translation? doesnt seem so 17:19
dalek ecs: 11a7087 | (Elizabeth Mattijsen)++ | S22-package-format.pod:
Tweaks to parse-spec specification
17:21
ecs: 2fd8ca0 | (Elizabeth Mattijsen)++ | S17-concurrency.pod:
Spec Supply.zip-latest(:initial(42,63)) named
dalek ast: d03dc25 | (Elizabeth Mattijsen)++ | S17-supply/zip (2 files):
It's called zip-latest, not zip_latest :)
17:30
ast: 1780cf5 | (Elizabeth Mattijsen)++ | S22-package-format/parse-spec.t:
Small opt
cognominal nqp-m: my $_ := "a" ~~ /a/; say(nqp::what($/)) 17:31
camelia nqp-moarvm: OUTPUT«(signal )»
dalek kudo/nom: f873410 | (Elizabeth Mattijsen)++ | t/spectest.data:
It's zip-latest, not zip_latest :-)
17:32
atroxaper I just updated all Rakudos and my panda started saing my 17:38
Missing or wrong version of dependency 'src/gen/m-CORE.setting'
saing me*
FROGGS atroxaper: run: perl6 rebootstrap.pl in the panda dir 17:39
psch hrm, digging after the anon named stuff gets me down into moar again 17:41
apparently $!variable_name is used for lexical lookup
atroxaper Oh... Works! Thank you. I decided to start using debuger :)
psch so neither Parameter.name for anon nameds nor the deref hash assignment seem in reach for me 17:42
where "assignment" here means "passing argument into a sub"
i'll just update the ticket i guess
dalek ast: 43a7620 | (Elizabeth Mattijsen)++ | S17-supply/zip-latest.t:
Add tests for zip-latest(:initial)
17:46
kudo/nom: d370d01 | (Elizabeth Mattijsen)++ | src/core/Supply.pm:
Implement Supply.zip-latest(:initial)
lizmat timotimo: ^^^ 17:48
psch m: sub foo(:bar($bar)!) { }; sub baz(:($)!) { }; &foo.signature.say; &bar.signature.say # this doesn't seem right either 17:49
camelia rakudo-moar 04b2b1: OUTPUT«===SORRY!=== Error while compiling /tmp/FJUiT6laGo␤Undeclared routine:␤ &bar used at line 1. Did you mean '&bag', '&baz'?␤␤»
psch m: sub foo(:bar($bar)!) { }; sub baz(:($)!) { }; &foo.signature.say; &baz.signature.say # this doesn't seem right either
camelia rakudo-moar 04b2b1: OUTPUT«:(Any :bar($bar)!)␤:(Any :($)! (Any))␤»
timotimo the bitrot has found the reactive samples' golf helper
psch what's the second any in the second signature?
lizmat cognominal: segfault confirmed here, so it seems a bug 17:51
timotimo have to rebuild the whole shebang. parrot, nqp-j, nqp-p, nqp-m, rakudo-m, rakudo-p, rakudo-j
thou timotimo: By the way, I spent a lot of time on .subst problems, too. Basically, $/ doesn't work properly in subst closures yet.
lizmat timotimo, thou: rakudobug it?
timotimo thou: ah, that thing!
i remember now ... :(
cognominal nqp: my $_ := "a" ~~ /a/; say(nqp::what($/)) 17:52
camelia nqp-jvm: OUTPUT«(signal )#␤# There is insufficient memory for the Java Runtime Environment to continue.␤# pthread_getattr_np␤# An error report file with more information is saved as:␤# »
..nqp-moarvm: OUTPUT«(signal )»
..nqp-parrot: OUTPUT«Can only use get_what on a SixModelObject␤current instr.: '' pc 129 ((file unknown):69) (/tmp/tmpfile:1)␤»
timotimo lizmat: thanks for :initial
speccing List.rotor would be an LHF for anybody; can cargocult the explanation of Supply.rotor 17:53
and if somebody wants to make the golf helper from jnthn/perl6-reactive-samples work with current gtk-simple, that would be nice. 17:56
FROGGS m: $> 18:20
camelia rakudo-moar 04b2b1: OUTPUT«===SORRY!=== Error while compiling /tmp/4LZnhPWAtl␤Unsupported use of $> variable; in Perl 6 please use $*EUID␤at /tmp/4LZnhPWAtl:1␤------> <BOL>⏏$>␤ expecting any of:␤ statement list␤ pre…»
FROGGS m: say $*EUID 18:21
camelia rakudo-moar 04b2b1: OUTPUT«===SORRY!===␤Dynamic variable $*EUID not found␤»
FROGGS ó.ò
Mouq FROGGS: I don't remember -- I think a lot of it is direct P5 -> P6 and I wanted to try and make it idiomatic, but school happened
Mouq is going to a lake o/ 18:22
FROGGS I just trying to make it work... making it idiomatic might be easier when you have working code :o)
have fun! 18:23
FROGGS m: say { * +& 0o777 } 18:30
camelia rakudo-moar 04b2b1: OUTPUT«-> ($_? is parcel) { #`(Block|140632954503816) ... }␤»
FROGGS m: say { * +& 0o777 }(0o666)
camelia rakudo-moar 04b2b1: OUTPUT«WhateverCode.new()␤»
FROGGS m: say { $^a +& 0o777 }(0o666)
camelia rakudo-moar 04b2b1: OUTPUT«438␤»
FROGGS m: say umask 18:31
camelia rakudo-moar 04b2b1: OUTPUT«===SORRY!=== Error while compiling /tmp/MikfJV62JP␤Undeclared routine:␤ umask used at line 1␤␤»
BenGoldberg Wouldn't umask be a method (of IO, or whatever), not a subroutine? 18:32
Err, a method of $*PROCESS 18:33
lizmat $*PROCESS ?? 18:35
you mean $*DISTRO?
BenGoldberg Hmm...
Well, a method of one of those $*somethings, rather than being a globally available subroutine. 18:36
lizmat feels more like a class / instance method on IO to me
FROGGS I was just hoping for a hint actually :o)
BenGoldberg m: say length 18:37
camelia rakudo-moar d370d0: OUTPUT«===SORRY!=== Error while compiling /tmp/AO5VjOdDjU␤Undeclared routine:␤ length used at line 1. Did you mean 'elems', 'chars', 'graphs', 'codes'?␤␤»
lizmat S32/IO:1479 says method
k1lldash9 hola 18:46
FROGGS hi k1lldash9
dalek kudo/nom: 847bd58 | (Elizabeth Mattijsen)++ | src/core/IO.pm:
Naive implementation of IO.umask
19:04
FROGGS O.o 19:05
lizmat $ 6 'say IO.umask.fmt("%04o")'
0022
purely informational at this point 19:06
FROGGS lizmat++
lizmat not sure how this works on Win
FROGGS nor do I 19:07
psch timotimo: what are you seeing broken with the golf-helper? the only thing wonky here seems to be the initial size and resizing when user input reaches the edge of the input field
the former GTK::Simple allows to change, the latter not really afaict 19:08
maybe that just means my GTK::Simple isn't the 19:12
+new one
although i did only install it about half an hour ago or so via panda 19:16
lizmat sightseeing and dinner and drinks and whatever& 19:17
atroxaper Is Rakudo with MoarVM stable? I think I found some strange behavior. 19:21
FROGGS atroxaper: it is almost stable 19:22
atroxaper All my tests pass ok on Parrot. On MoarVM 1 didn't pass. If I remove one 'say "--"' then Moar works well.
FROGGS that is weird though
atroxaper Yes. 19:23
FROGGS would be interesting to see valgrinds output of that...
atroxaper What? 19:24
FROGGS ohh, valgrind is a tool to check if some C code read uninitialized memory... and MoarVM is written in 19:25
C
atroxaper: can you paste the code?
atroxaper Actually... yes. If you have a few minutes for check... github.com/atroxaper/PodMaster 19:26
[Coke] is so happy his vacation is about to start. :P 19:27
atroxaper I can tell you what works strange.
FROGGS do tell
[Coke]: :D
nwc10 [Coke]: will we see more of you? Or are you *really* having a vacation?
[Coke] I will have at least a batteries worth of time in the car to hack on things remotely. probably won't see me more in the channel. 19:29
nwc10 (other people driving)++ 19:30
[Coke] needs to get away from $DAYJOB, though.
dalek osystem: 5b58fc3 | (Kamil Kułaga)++ | META.list:
added PerlStore
20:05
hoelzro is there an easier way to get a Routine object other than Class.^method_table<method_name>? 20:25
moritz hoelzro: Class.^can('name')[0] 20:26
hoelzro ah, right!
thanks moritz
Mouq is back 21:05
FROGGS: I realized why I stopped working on Archive::Tar: I was trying to figure out some way to do unpacking in a better way that using unpack :P 21:07
FROGGS: How goes it?
FROGGS ahh :o)
well, it does not explode, but does not yet do anything
Archive::Tar::Constant exports all its stuff though
Mouq That's a good start :) 21:08
smls Mouq: Can you have a look at my pull request for perl6/doc ? 21:13
Mouq smls: Looks good -- though the <hr>s on the index page end up being very big. Is this intentional? 21:18
I like the changes overall, makes it look more professional than what I hacked together :) 21:19
Mouq smls_: irclog.perlgeek.de/perl6/2014-06-20#i_8907097 21:21
smls_ Yeah, I may have possibly over-done the circle sizes for the hr's. You can tweak them using the background-size attribute. 21:22
Mouq I just wanted to check
dalek c: e55a481 | smls++ | / (2 files):
Style tweaks for front-page content
21:23
c: 7e70dd6 | smls++ | html/css/style.css:
Polish the menu item spacing and separator style
c: 96e373d | smls++ | / (3 files):
Make footer stick to bottom of page
Mouq smls++
c: 467b878 | (Alexander Moquin)++ | / (4 files):
Merge pull request #20 from smls/master

Some style polishing
Mouq smls_: Do you have a commit bit? 21:24
smls_ no
Mouq Not that I can add you anyway :/
moritz: ^^ 21:25
(I don't know who has this power) 21:26
EmilPer hello 21:33
FROGGS hi EmilPer 21:34
EmilPer new to perl6
what is the difference between time and time() ?
time() fails, time without () does not and works like in perl5 21:35
FROGGS the latter is a subroutine call, the former could be a term (or a sub call)
and time is defined as a term
EmilPer yes, saw it being called "term" ... what is a "term" ? a reserved word, build-in function ?
FROGGS a term (like in human languages) is a word 21:36
so, 'time' acts like a function, but cannot take arguments for example 21:37
EmilPer ok
FROGGS we could have made it a sub though
EmilPer thank you 21:38
FROGGS you're welcome
Mouq m: sub term:<later> { Date.today + 15 }; say later 21:48
camelia rakudo-moar 847bd5: OUTPUT«2014-07-05␤»
Mouq m: sub term:<later> { Date.today + 15 }; say later()
camelia rakudo-moar 847bd5: OUTPUT«===SORRY!=== Error while compiling /tmp/WAopnBJpKR␤Undeclared routine:␤ later used at line 1. Did you mean 'eager'?␤␤»
Mouq 'later' should probably be included in that error message for complete awesomeness :)
thou smls_ or Mouq: Not sure you worked on it, but I notice on doc.perl6.org that many types show up only on the All page, but not in any of the sub-pages. E.g., Bag, Backtrace. Not sure if that's known and/or intentional. 21:49
Mouq thou: Backtrace does show up in Exceptions, fwiw, but I'm not sure why Bag isn't showing up in Composite... 21:54
Mouq thou: In any case, where it shows up is specified in type-graph.txt 21:56
dalek c: 49955d8 | Mouq++ | htmlify.p6:
Make sure all type definitions get a category, if they have one

  thou++
22:02
vendethiel so, now, reading the advent - yet again - I have a question ... 22:08
I know this will fail :
wat. 22:09
p6: role Foo { method bar { ... } }; class B does Foo {}; 1;
camelia rakudo-{parrot,jvm,moar} 847bd5: OUTPUT«===SORRY!===␤Method 'bar' must be implemented by B because it is required by a role␤»
..niecza v24-109-g48a8de3: OUTPUT«===SORRY!===␤␤Method 'bar' must be implemented by 'B' because it is required by role 'Foo[curried][...]' at /tmp/tmpfile line 1:␤------> ethod bar { ... } }; class B does Foo {}⏏; 1;␤␤Unhandled exceptio…»
vendethiel okay, my 2014.03.01 is that bad I guess. 22:10
Well, yeah, that's expected to fail, but I thought about a construct for this kind of thing
when you want B to be abstract, really, without specifying every method it inherits somehow so
p6: role Foo { method bar { ... } }; class B does Foo { ... }; 1;
camelia rakudo-{parrot,jvm,moar} 847bd5: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤The following packages were stubbed but not defined:␤ B␤at /tmp/tmpfile:1␤------> { ... } }; class B does Foo { ... }; 1;⏏<EOL>␤ expecting …»
..niecza v24-109-g48a8de3: OUTPUT«===SORRY!===␤␤Package was stubbed but not defined at /tmp/tmpfile line 1:␤------> role Foo { method bar { ... } }; class⏏ B does Foo { ... }; 1;␤␤Unhandled exception: Check failed␤␤ at /home/p6eval…»
vendethiel Could that be an option ? 22:11
or is that reserved for the current behavior
Mouq vendethiel: Then B should B a role 22:12
vendethiel: Also, the 1 at the end is superstitious in P6, AFAIK
vendethiel but sometimes it doesn't make sense semantically for it to be a role
Mouq: no, not quite supersitious 22:13
m: role Foo { method bar { ... } }
camelia rakudo-moar 847bd5: OUTPUT«Unhandled exception: Method 'bar' must be implemented by Foo because it is required by a role␤ at <unknown>:1 (/home/p6eval/rakudo-inst-2/languages/nqp/lib/Perl6/Metamodel.moarvm:compose_method_table:4294967295)␤ from src/gen/m-Metamodel.nqp:2318 (…»
vendethiel m: role Foo { method bar { ... } }; 1
camelia ( no output )
Mouq Wut?
vendethiel it tries to instantiate it
Mouq Huh
BenGoldberg m: say role Foo { method bar { ... } } 22:26
camelia rakudo-moar 847bd5: OUTPUT«Method 'bar' must be implemented by Foo because it is required by a role␤ in any compose_method_table at src/gen/m-Metamodel.nqp:2308␤ in any apply at src/gen/m-Metamodel.nqp:2318␤ in any compose at src/gen/m-Metamodel.nqp:2463␤ in any make_pun…»
BenGoldberg m: say role Foo { }
camelia rakudo-moar 847bd5: OUTPUT«(Foo)␤»
BenGoldberg m: (role Foo { }).WHAT.say 22:27
camelia rakudo-moar 847bd5: OUTPUT«(Foo)␤»
BenGoldberg m: (role { }).WHAT.say
camelia rakudo-moar 847bd5: OUTPUT«(<anon>)␤»
timotimo my talk ... happened 22:30
vendethiel timotimo++ 22:33
(same story for me. "stuff happened" :P)
dalek c: 61332e9 | Mouq++ | type-graph.txt:
Give everything defined in type-graph a category
22:38
c: 6bdd5a3 | Mouq++ | / (5 files):
Make sure all types are listed in type-graph.txt
tadzik timotimo: how was it? :) 22:43
Mouq m: role Foo { method bar { ... } }; class B does Foo { method bar { ... } }; 1 22:53
camelia ( no output )
Mouq vendethiel: ^^^
vendethiel Mouq: which is exactly what I'm trying to avoid :)
Mouq vendethiel: Ah, ok :) 22:54
vendethiel Mouq: that's all fine when you have only one method, but if you want a class that's an aggregate of roles, it's started to get dizzying
Mouq vendethiel: Haha, I bet
dalek ast/hoelzro/fix-multi: 34c6600 | (Rob Hoelz)++ | S12-methods/multi.t:
Test that Routine.multi returns true for multi dispatch routines
22:56
BenGoldberg m: multi sub collatz(1) { 1 }; multi sub collatz(Int $n where (* %% 2)) { say "$n even"; collatz($n div 2) }; multi sub collatz(Int $n) { say "$n odd"; collatz($n * 3 + 1) }; collatz(10); 23:00
camelia rakudo-moar 847bd5: OUTPUT«10 even␤5 odd␤16 even␤8 even␤4 even␤2 even␤»
Mouq m: multi sub collatz(1) { 1 }; multi sub collatz(Int $n where (* %% 2)) { say "$n even"; collatz($n div 2) }; multi sub collatz(Int $n) { say "$n odd"; collatz($n * 3 + 1) }; collatz(2 but role {method Str {"I can't"}}); 23:08
camelia rakudo-moar 847bd5: OUTPUT«I can't even␤»
vendethiel It's interesting to see how perl has started going out of trend (from google trends) since 2008 23:09
but it was much, much, much more searched back in 2004.
vendethiel oh, but it's cheating a lot. Ruby's first results are pokemon and ruby tuesday. 23:10
python's most searched term is "monty python", by a very long shot 23:11
while for perl, it's only the language itself.
Oh, Now I get a much, much different answer. Perl actually had more searches everytime 'til 2012, and it's a close tie these days. 23:12
Who said perl was dead ? I'm surprised (or impressed) 23:13
BenGoldberg If you don't have a distinctive name, it's hard to use web searches as a metric. 23:14
If you wanted compare, say, types of coffee, and you looked to see how often Java was searched for, there's no way to distiniguish the coffee from the programming language :) 23:15
vendethiel BenGoldberg: I found a way to just look for the programming lang in google trends :) 23:26
BenGoldberg Oh? 23:27
I suppose if you include the word "programming" 23:28
xenoterracide I want a runtime configuration for reversing a stack trace
vendethiel no, click on it > "programming language"
xenoterracide because I always see the bottom first and half to find the top
vendethiel BenGoldberg: www.google.com/trends/explore#q=%2F...amp;cmpt=q 23:29
xenoterracide have*
timotimo tadzik: not a huge success, also not very good 23:55
people laughed when i said our jit can already do hello world and fibonacci 23:59