»ö« 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.
00:01 Ben_Goldberg joined, kurahaupo left, BenGoldberg left, Ben_Goldberg is now known as BenGoldberg
BenGoldberg s: &trait_mod:<handles>, :(Attribute:D, $thunk); 00:03
SourceBaby BenGoldberg, Ehhh... I'm too scared to run that code.
yoleaux 01:31 EST <sammers> BenGoldberg: thanks, I will take a look into %CALLER
BenGoldberg s: &trait_mod:<handles>, :(Attribute:D, $thunk)
SourceBaby BenGoldberg, Something's wrong: ␤ERR: Cannot resolve caller sourcery(Sub, Signature); none of these signatures match:␤ ($thing, Str:D $method, Capture $c)␤ ($thing, Str:D $method)␤ (&code)␤ (&code, Capture $c)␤ in block <unit> at -e line 6␤␤
BenGoldberg s: &trait_mod:<handles>, (Attribute, Any) 00:04
SourceBaby BenGoldberg, Something's wrong: ␤ERR: Cannot resolve caller sourcery(Sub, List); none of these signatures match:␤ ($thing, Str:D $method, Capture $c)␤ ($thing, Str:D $method)␤ (&code)␤ (&code, Capture $c)␤ in block <unit> at -e line 6␤␤
BenGoldberg s: &trait_mod:<handles>, \(Attribute, Any)
SourceBaby BenGoldberg, Something's wrong: ␤ERR: Could not find candidate that can do \(Attribute, Any)␤ in sub sourcery at /home/zoffix/services/lib/CoreHackers-Sourcery/lib/CoreHackers/Sourcery.pm6 (CoreHackers::Sourcery) line 37␤ in block <unit> at -e line 6␤␤
BenGoldberg s: &trait_mod:<handles>, \(Attribute, Pair)
SourceBaby BenGoldberg, Something's wrong: ␤ERR: Could not find candidate that can do \(Attribute, Pair)␤ in sub sourcery at /home/zoffix/services/lib/CoreHackers-Sourcery/lib/CoreHackers/Sourcery.pm6 (CoreHackers::Sourcery) line 37␤ in block <unit> at -e line 6␤␤
00:05 simcop2387 joined, araraloren joined
Geth doc: e75855c412 | (Will "Coke" Coleda)++ | doc/Type/Signature.pod6
remove trailing whitespace
00:05
doc: d70c7eb92e | (Will "Coke" Coleda)++ | doc/Language/operators.pod6
fix typos
doc: e63d2e1662 | (Will "Coke" Coleda)++ | doc/Type/Signature.pod6
Avoid duped sub names

pass compilation test
00:06 mcmillhj joined
BenGoldberg s: &trait_mod:<handles>, \(Attribute.new, sub { ... }) 00:09
SourceBaby BenGoldberg, Ehhh... I'm too scared to run that code.
BenGoldberg s: &trait_mod:<handles>, \(Attribute.new, &foo)
SourceBaby BenGoldberg, Something's wrong: ␤ERR: ===SORRY!=== Error while compiling -e␤Undeclared routine:␤ foo used at line 6␤␤
BenGoldberg s: &trait_mod:<handles>, \(Attribute.new, &say)
SourceBaby BenGoldberg, Something's wrong: ␤ERR: Required named parameter 'name' not passed␤ in block <unit> at -e line 6␤␤
00:11 rurban left 00:14 mcmillhj left 00:15 pmurias left
IOninja s: &trait_mod:<handles> 00:16
SourceBaby IOninja, Sauce is at github.com/rakudo/rakudo/blob/11ee...ts.pm#L359
00:18 espadrine left, pyrimidine joined 00:21 cyphase left
BenGoldberg m: class A { method foo() { "A" } }; class B { has A $.a handles * }; say B.new(a => A.new).^methods; 00:22
camelia (a)
BenGoldberg was being too specific, wasn't he ;)
00:22 evalable6 joined, ChanServ sets mode: +v evalable6, cdg left 00:23 pyrimidine left 00:24 dct joined 00:25 cyphase joined 00:26 mcmillhj joined
Geth doc: bd7a64a207 | (Tom Browder)++ | doc/Type/Str.pod6
correct spelling
00:26
BenGoldberg m: class A { method foo() { "A" } }; class B { has A $.a handles * }; say B.new(a => A.new).^find_method("foo"); 00:30
camelia -> $self, |c is raw { #`(Block|75700104) ... }
00:31 mcmillhj left
Geth whateverable: bbede988f6 | (Aleks-Daniel Jakimenko-Aleksejev)++ | 13 files
Lots of refactoring and other code mangling

This commit introduces some functional changes and some minor code style tweaks.
Issues resolved: #32 #34 #48 #49 #50 #67 #70 #88 #95 #102 #103 #105
... (28 more lines)
00:38
00:42 zengargoyle left
elaADnlxie wonders how many emails were sent by github 00:43
00:43 mcmillhj joined 00:44 bjz joined 00:49 kurahaupo joined, risou is now known as risou_awy 00:50 mcmillhj left
IOninja :O 00:53
* :o
Well, I know how many I got... 0
elaADnlxie 153 people didn't unwatch the repo yet, so… 00:54
m: say 12 × 153 × 2
camelia 3672
IOninja elaADnlxie++ 00:55
I could use some of that hacking juice you're sipping on tonight :) 00:56
Yeah, but I never receive any email from GitHub...
Is receiving it the default?
elaADnlxie I think so
00:56 dct left
elaADnlxie when you press the watch button 00:56
though when you create a new repo in perl6 org, all members are subscribed automatically 00:57
00:58 bjz left
elaADnlxie IOninja: well, most of these changes were done during my rides in a bus (usually in a standing position, because people will only start to care about me when I get old…), not tonight :) 01:00
IOninja Standing position?... 01:09
Now I'm unsure whether to be more or less impressed...
01:10 andrzejku left, mcmillhj joined
elaADnlxie yea, I push the laptop with my palms against the lower part of my belly 01:11
this way I can type with both hands and still hold the laptop
IOninja 0.o
elaADnlxie oh yeah, skills you learn because using the public transport for ≈40 minute (one way) rides every day :) 01:12
IOninja I travel the same amount, but even were I sitting it'd be uncomfortable to type because the laptop would be sliding down my lap... 01:14
I can't even picture what typing while standing on a bus looks like :D 01:15
01:15 mcmillhj left
elaADnlxie I'll try to get a picture one day 01:15
IOninja :) 01:17
llfourn m: my @a; @a[@a.elems] := "foo" # any better way to bind the last elem of array? 01:18
camelia ( no output )
llfourn or rather bind to the index after the last element
elaADnlxie .last ? 01:19
.tail?
ah…
yea, that's not writable 01:20
*-1 is not going to work also…
llfourn yep :\
IOninja How come you need to bind? 01:21
llfourn I want to have an array of pointers to scalar variables essentially 01:22
IOninja m: my @a; @a[+@a] := "foo"; say @a
camelia [foo]
IOninja m: my @a; .[+$_] := "foo" with @a; say @a
camelia [foo]
llfourn mm +@a 01:23
Maybe I can do what I want another way. Just checking to see if there was some way of raw pushing containers. 01:24
01:26 mcmillhj joined
IOninja llfourn: does it have to be an Array (as opposed to, say, a List)? 01:28
m: my $a = "meow"; my $b = "foo"; my @a := $a, $b; @a[0] = 42; @a[1] = "foooooos"; dd [ $a, $b ] 01:29
camelia [42, "foooooos"]
llfourn yes, this is a mutable array of variable containers :P
IOninja ok :)
01:31 mcmillhj left
IOninja m: my $a = "meow"; my $b = "foo"; sub infix:<♥> (\a, +b) is assoc('list') { a[+a] := $_ for b }; my @a; @a♥$a♥$b; @a[0] = 42; @a[1] = "foooooos"; dd [ $a, $b ] 01:31
camelia [42, "foooooos"]
IOninja hehe :)
Love solves everything! 01:32
llfourn nice <3 01:34
01:38 kurahaupo left
elaADnlxie IOninja: no. Proof: github.com/Love 01:42
BenGoldberg Clearly, love needs love. 01:43
IOninja elaADnlxie++ hah
BenGoldberg Not to mention, love cannot solve the halting problem.
BenGoldberg thinks that's because love is eternal, and as a result, the halting problem is outside of it's problem domain. 01:45
01:47 mcmillhj joined
elaADnlxie excuses, excuses… 01:47
01:52 mcmillhj left 01:55 pyrimidine joined 01:57 lukaramu_ left 02:18 kalkin- left 02:19 kalkin- joined
BenGoldberg m: my $foo = 32; dd callframe(0) 02:19
camelia CallFrame.new(annotations => {:file("<tmp>"), :line("1")}, my => {"!UNIT_MARKER" => !UNIT_MARKER, "\$!" => Nil, "\$/" => Nil, "\$=finish" => Mu, "\$=pod" => [], "\$?PACKAGE" => GLOBAL, "\$_" => Any, "\$foo" => 32, "\$¢" => Nil, "::?PACKAGE" => GLOBAL, :…
BenGoldberg m: my \foo = 32; dd callframe(0) 02:20
camelia CallFrame.new(annotations => {:file("<tmp>"), :line("1")}, my => {"!UNIT_MARKER" => !UNIT_MARKER, "\$!" => Nil, "\$/" => Nil, "\$=finish" => Mu, "\$=pod" => [], "\$?PACKAGE" => GLOBAL, "\$_" => Any, "\$¢" => Nil, "::?PACKAGE" => GLOBAL, :EXPORT(EXPORT),…
BenGoldberg m: my $foo = 32; dd callframe(0).my
camelia {"!UNIT_MARKER" => !UNIT_MARKER, "\$!" => Nil, "\$/" => Nil, "\$=finish" => Mu, "\$=pod" => [], "\$?PACKAGE" => GLOBAL, "\$_" => Any, "\$foo" => 32, "\$¢" => Nil, "::?PACKAGE" => GLOBAL, :EXPORT(EXPORT), :GLOBALish(GLOBAL)}
BenGoldberg m: my \foo = 32; dd callframe(0).my
camelia {"!UNIT_MARKER" => !UNIT_MARKER, "\$!" => Nil, "\$/" => Nil, "\$=finish" => Mu, "\$=pod" => [], "\$?PACKAGE" => GLOBAL, "\$_" => Any, "\$¢" => Nil, "::?PACKAGE" => GLOBAL, :EXPORT(EXPORT), :GLOBALish(GLOBAL), :foo(Mu)}
BenGoldberg I kinda sort understand why, in the \foo example, it shows up in the hash as :foo(Mu) ... but it's a bit annoying in a way, too. 02:22
BenGoldberg wonders why there is a class named '!UNIT_MARKER'. Is it named that purely to make it hard to fiddle with? 02:25
MasterDuke it's some sort of magic, but gets the name '!CORE_MARKER' if compiling rakudo 02:29
BenGoldberg m: my \foo = 32; say callframe(0).my.grep: /foo/ 02:37
camelia (foo => 32)
BenGoldberg wonders where the Mu went.
02:41 mcsnolte left
BenGoldberg Does anyone know if there's any difference between calling .^methods on a class object vs an instance of the same? 02:48
Str.^methods vs "foo".^methods?
02:50 benchable6 left, unicodable6 left, evalable6 left, statisfiable6 left, committable6 left, bisectable6 left
elaADnlxie m: say ("foo" but role { method pewpew {} }).^methods 02:51
camelia (pewpew subst word-by-word tc perl comb ends-with ACCEPTS samespace wordcase indent Numeric index trim-trailing trans codes ord Str split pred ords lc fc NFC indices chars Stringy trim-leading NFD rindex samemark trim NFKC WHY gist starts-with tclc subst…
elaADnlxie BenGoldberg: do you count this as an instance of the same? ;)
BenGoldberg No, because:
m: say ("foo" but role { method pewpew {} }).WHAT 02:52
camelia (Str+{<anon|30686304>})
BenGoldberg m: say ("foo" but role { method pewpew {} }).WHAT === Str
camelia False
elaADnlxie m: say ("foo" but role { method pewpew {} }).WHAT ~~ Str 02:53
camelia True
llfourn m: my $i = 2; $_ = " foo"; s/^\s ** $i//; .say # any way to quantify with a var? 02:55
camelia 5===SORRY!5=== Error while compiling <tmp>
Quantifier quantifies nothing
at <tmp>:1
------> 3my $i = 2; $_ = " foo"; s/^\s **7⏏5 $i//; .say # any way to quantify with a
elaADnlxie m: my $i = 2; $_ = " foo"; s/^\s ** {$i}//; .say
camelia foo
llfourn thx nice one 02:56
02:57 cdg joined 03:10 risou_awy is now known as risou 03:15 astj joined 03:18 noganex_ joined 03:20 astj left 03:21 noganex left 03:33 pyrimidi_ joined, pyrimidine left 03:34 Todd joined
Todd need help with zef 03:34
yoleaux 2 Mar 2017 09:33Z <IOninja> Todd: Inline::Perl5 is a Perl 6 module; you install it with `zef install Inline::Perl5` not cpan; it doesn't create "inline" files on your filesystem but installs precompiled units in CUR, so check it's installed with `perl6 -MInline::Perl5`, not grepping your system for files
03:35 jeffythedragonsl joined
Todd cd Inline-Perl5 03:35
zef install .
... Can't locate ExtUtils/Embed.pm in @INC
What next?
dj_goku Todd: why not just do: zef install Inline::Perl5 ? 03:36
03:36 evalable6 joined, unicodable6 joined, committable6 joined, ChanServ sets mode: +v evalable6, ChanServ sets mode: +v unicodable6, ChanServ sets mode: +v committable6, bisectable6 joined, ChanServ sets mode: +v bisectable6, benchable6 joined, ChanServ sets mode: +v benchable6, statisfiable6 joined, ChanServ sets mode: +v statisfiable6
Todd Too many errors 03:37
What I did was: git clone github.com/niner/Inline-Perl5.git
dj_goku really I just installed it fine.
Todd hen I cd's into the directory
dj_goku what version of perl6 are you on?
perl6 -v 03:38
Todd # rpm -qa rak\*
rakudo-star-0.0.2016.11-1.fc25.x86_64
# perl6 --version
This is Rakudo version 2016.11 built on MoarVM version 2016.11 implementing Perl 6.c.
dj_goku have you tried upgrading?
Todd: I would recommend: github.com/tadzik/rakudobrew 03:39
Todd dnf upgrade rakudo-star and there is a new one! Installing right now
# rpm -qa rak\* 03:40
rakudo-star-0.0.2017.01-1.fc25.x86_64
03:40 wamba joined
Todd I am re-zef'ing 03:40
Can't locate ExtUtils/Embed.pm in @INC 03:41
no symptom change. Rats. What now?
MasterDuke do you have that Perl 5 module installed?
Todd no. installing right now 03:42
MasterDuke doesn't redhat break up perl5 into two packages? core one that's almost entirely useless and another one you need to get a functional perl 5? 03:43
03:43 jeffythedragonsl left
Todd rezeffing 03:43
===> Testing [FAIL]: LibraryMake:ver('1.0.0'):auth('github:retupmoca') Aborting due to test failure: LibraryMake:ver('1.0.0'):auth('github:retupmoca') (use --force to override) 03:44
Should I use --force?
uh oh. I have to leave for 30 minutes to handle a family matter. I will leave channel open. Thank yo all for hte help so far. Little by little! 03:46
03:48 jeffythedragonsl joined
jeffythedragonsl Hey 03:49
dj_goku MasterDuke: no idea, but this is one reason why I use perlbrew to also install perl5 so I don't have to depend on the system perl.
03:49 risou is now known as risou_awy
jeffythedragonsl So I saw the grant to work on IO... and was wondering how hard it is to get one 03:49
03:51 jeffythedragonsl left 03:52 jeffythedragonsl joined
MasterDuke dj_goku: i don't use perl5 much on my home machine, so i've been fine just using whatever arch provides 03:52
dj_goku ahh, I haven't needed to in awhile either, but really like I can use perl/rakudo(brew) to install in my home directory 03:53
MasterDuke jeffythedragonsl: samcv has a grant proposal she's going to make this month, her and IOninja are the two most recent people to apply for Perl 6 stuff i believe 03:54
jeffythedragonsl I mean who do they give grants to 03:55
How do they decide what needs to be done 03:56
MasterDuke that i don't know. but i think lizmat is on the grant board. and [Coke] is also involved somehow. i guess ask them? 03:57
jeffythedragonsl I don't think I have the time or knowledge to be any big help, other than writing new scripts in p6 03:58
But that is all very interesting 04:00
MasterDuke i can't speak to time, but i don't think you don't need all that much knowledge to start contributing 04:04
elaADnlxie don't they have some problem with the lack of money right now? 04:06
anyway, here's a WAT 04:07
m: my regex meh($t) { xy }; say 'xy' ~~ /^ <meh(42)> $/
camelia 「xy」
meh => 「xy」
elaADnlxie m: my regex meh($t) { xy }; say 'ab' ~~ /^ <meh(42)> $/
camelia Nil
04:07 jeffythedragonsl left
elaADnlxie m: my regex meh($t) { .. }; say 'xy' ~~ /^ <meh(42)> $/ 04:07
camelia 「xy」
meh => 「xy」
elaADnlxie m: my regex meh($t) { .. }; say 'xyz' ~~ /^ <meh(42)> $/
camelia Too few positionals passed; expected 2 arguments but got 1
in regex meh at <tmp> line 1
in block <unit> at <tmp> line 1
elaADnlxie WAT? 04:08
MasterDuke elaADnlxie: it depends on having a parameter in the signature 04:09
m: my regex meh() { .. }; say 'xyz' ~~ /^ <meh()> $/
camelia Nil
elaADnlxie I'll rakudobug this before I go to bed, I guess… but I find this hard to explain 04:10
04:12 bjz joined
Todd I am back. I am trying --force to see what happens 04:23
perl6 -MInline::Perl5 04:25
gave me somethign weird
You may want to `zef install Readline` or `zef install Linenoise` or use rlwrap for a line editor
elaADnlxie OK, RT #130910 04:26
night
04:26 sammers left 04:27 ZzZombo left 04:30 ZzZombo joined, ZzZombo left, ZzZombo joined
dj_goku Todd: did you look at rakudobrew by chance? 04:30
Todd would someone throw a "perl -e -MInline::Perl5 'do something in perl 5'" for me to test if --force worked?
04:33 elaADnlxie left
dj_goku Todd: I would recommend using rakudobrew vs your os package manager: github.com/tadzik/rakudobrew 04:33
Todd I am looking at rakudo.org/how-to-get-rakudo/#Insta...Rakudobrew 04:34
that the best place?
dj_goku did you not see the link I posted?
github.com/tadzik/rakudobrew
Todd yes I missed that. What will rakudobrew do for me? 04:35
dj_goku Todd: hopefully circumvent all the problems you are currently having. 04:36
:D
Todd by?
dj_goku no using your os package manager? or OSes perl? 04:37
not using*
Todd on other packages where I have had to do that, such as Wine-Staging, it wa a total pain in the *** to hunt down and find all the OS's packages. The "rom-e" missing some things and leaves others in tact. So yo wind up with fractons of one versinos conflicting with the new version you install manually (make install", especially since the manual method always uses different paths (/opt vs /usr/bin vs /usr/share/bin) that it can be a bit of 04:40
So, unless force to, I have to stick with the OS's package manager (dnf). 04:41
dj_goku Todd: rakudobrew is self-contained to ~/.rakudobrew you delete that directory and you no longer have rakudobrew
Todd Oh I made a lot of typos in that, i hope everyone can still understand it
dj_goku I have no experience with redhat so either you try rakudobrew and I can help or you are on your own and hopefully someone else here can help you. 04:42
Todd I think I still don't understand how it works 04:44
04:44 bjz left
dj_goku Todd: you clone rakudobrew repo, you export the PATH, run the command rakudobrew init, then you run rakudobrew build moar to install moarvm then you run, rakudobrew build-zef, then you'll run zef install Inline::Perl6 04:46
just follow the installation instructions on the rakudobrew page
Todd: after all that you have perl6 moarvm and you can start playing with perl6 instead of trying to figure out your operating system. 04:48
Todd implementing suggestin right now
It is running. I thing INline ihas already been installed. "perl6 -c" is no longer throwing errors on it 04:50
rakudobrew build moar
Configuration FAIL. 04:51
# rakudobrew build-zef rakudobrew: No version set.
dj_goku can you post the log to a pastebin?
Todd how do I do that? 04:54
dj_goku pastebin.com
04:57 Cabanoss- joined
Todd I just ran the test from github.com/niner/Inline-Perl5 04:57
dj_goku so did you get rakudobrew installed? 04:58
Todd And although it could not conenct to the database, it did show that the Inline module was working. So for now, I am happy.
05:00 Cabanossi left, Cabanoss- is now known as Cabanossi 05:02 Ben_Goldberg joined, BenGoldberg left, Ben_Goldberg is now known as BenGoldberg 05:04 agentzh left 05:08 eroux joined, cdg left, BenGoldberg left
Todd use Inline::Perl5; 05:09
use Term::ANSIColor:from<Perl5>;
print ( Term::ANSIColor::RED ~ "Red\n" ); 05:10
Could not find symbol '&RED'
How do I use the Constant from Perl5 here?
05:12 eroux left 05:13 khw left 05:15 cdg joined 05:17 cdg left
samcv well there is a Terminal::ANSIColor plugin native perl 6 05:20
not sure about constants
Todd Acutally, I was looking for a demonstration for my keepers file of how to use inline 05:21
samcv ah 05:22
Todd This worked: 05:24
use Inline::Perl5; my $i = Inline::Perl5.new; print ( $i.call( 'Term::ANSIColor::RED' ) ~ "Red\n" ~ $i.call( 'Term::ANSIColor::RESET' ) );
05:24 pyrimidi_ left 05:25 pyrimidine joined
Todd Still not understanding why 05:28
use Term::ANSIColor:from<Perl5>;
05:28 agentzh joined
Todd doesn't work 05:28
signing out for the night, I hope. Thank you all for the help! 05:34
05:34 Todd left 05:44 jsoo joined 05:46 jsoo left
ZzZombo m: use Inline::Perl5;use Term::ANSIColor:from<Perl5>;say Term::ANSIColor::RED ~ 'NYA'; 05:58
camelia 5===SORRY!5=== Error while compiling /home/camelia/site#sources/FC133D3E7EC3B0CBE238C296893894C9AB745A05 (Inline::Perl5)
An exception occurred while evaluating a constant
at /home/camelia/site#sources/FC133D3E7EC3B0CBE238C296893894C9AB745A05 (Inl…
ZzZombo m: use Inline::Perl5;use Term::ANSIColor:from<Perl5>;say Term::ANSIColor::RED,'NYA'; 05:59
camelia 5===SORRY!5=== Error while compiling /home/camelia/site#sources/FC133D3E7EC3B0CBE238C296893894C9AB745A05 (Inline::Perl5)
An exception occurred while evaluating a constant
at /home/camelia/site#sources/FC133D3E7EC3B0CBE238C296893894C9AB745A05 (Inl…
06:00 rurban joined, rurban left 06:05 bjz_ joined
TimToady probably needs Term::ANSIColor::Red() up there 06:06
06:15 astj joined 06:19 astj left 06:25 geekosaur left 06:26 geekosaur joined
moritz good morning 06:29
sjn good *, moritz & #perl6 :) 06:30
masak morning 06:42
it's time to name another type of joke. naming suggestions welcome.
I will provide two examples of the type of joke:
"Never let your sense of morals prevent you from doing what’s right." -- Isaac Asimov
"Never let school get in the way of getting a good education." -- (who?) 06:43
feels like the latter would be Mark Twain or Ambrose Bierce 06:46
wow, Rob Pike got the question on a /. AMA 'Given the nature of current operating systems and applications, do you think the idea of "one tool doing one job well" has been abandoned?' 06:49
and he replied 'Those days are dead and gone and the eulogy was delivered by Perl.' 06:50
jeek Those days are dead and gone and the eulogy was delivered by Perl. 06:55
Rob Pike (2004) in interview at slashdot.com, Oct 18 2004
masak yep
haven't thought of it that way, that Perl killed off the "one tool for one job" idea
I wonder if Emacs could be said to have done the same thing? 06:56
07:06 mcmillhj joined 07:11 mcmillhj left
samcv morning/night/etc everyone 07:16
07:17 darutoko joined
Woodi_ hallo #perl6 :) 07:19
07:20 rurban joined
samcv hi Woodi_ 07:20
07:22 mcmillhj joined
Woodi_ re one tool - one job and Perl: there is some truth in this but also such simplicity is irreplecable. just rality work that way, we sometimes need small hammer and sometimes pnumatic press 07:23
that's why multituls didn't replaced specialized tools :)
TimToady well, Perl was intended to be more like a machine shop anyway 07:25
Woodi_ *multitools. but having such device all the time on you is great time saver :) also almoust any answer can work in 80% of cases... just in ~5% you create mortal enemy for yourself :)
07:27 cibs left
Woodi_ btw. we live in Unix parts replacement times :) systemd, C under attack... 07:29
Perl6 ? ;)
07:29 mcmillhj left, cibs joined 07:31 CIAvash joined
nine moritz: not yet 07:37
07:38 robertle joined
Woodi_ masak: "never good jokes" ? ;) problem is that morals can be ill-formed or what's-right be disinformed... 07:39
nine moritz: though experience with Perl 5's Inline::Python shows that it'd be relatively simple to add. The differences on the C side are quite limited. 07:43
TimToady masak: maybe something like 'territory map' jokes, where the funny comes "the territory is not the territory, because you forgot that your territory is just a map' 07:44
07:45 LeCamarade left 07:46 LeCamarade joined 07:49 rindolf joined, llfourn left 07:50 RabidGravy joined
TimToady so they're re-map-mapping or map-remapping jokes, if you want a self-referential meta definition :) 07:51
or maybe just 'remapping' jokes for short
both in the sense of re-installing the map to the territory, and also in the sense of changing the denotations to the connotations of the words involved 07:53
sjn masak: maybe "system vs. reality" jokes?
TimToady *changing the mapping of the
sjn or plan vs. reality, if one thinks of the military
TimToady that's kind of what I was getting at, with the addition that the system has to be moved from being perceived as accurate to faulty 07:55
sjn yep. :)
TimToady and part of the funniness comes from doing the redefinition retroactively 07:56
sjn thinks about that joke where a military vessel harshly orders a lighthouse to move away from it's course :) 07:57
TimToady so they're really in the category of garden path sentences
or, to use a self-descriptive phrase, they're garden pathological. :) 07:58
08:04 mcmillhj joined 08:09 mcmillhj left
RabidGravy boo! 08:13
08:16 dha joined 08:17 rurban left
RabidGravy there isn't any way to parameterise a class definition like "class Foo[something] { ... }" is there? 08:22
the grammar seems to suggest not 08:23
there's no particular technical reason why I want to do it, it's more an aesthetic thing 08:26
Woodi_ RabidGravy: what "something" caould be ? a type ?
*could 08:27
RabidGravy a type (or types in my actual case,) but anything that you can have with a parameterised role for example 08:28
08:30 llfourn joined 08:34 titsuki left 08:35 risou_awy is now known as risou
Woodi_ m: use MONKEY-SEE-NO-EVAL; sub c(Str $s) { my $t = 'class Foo { has TMPL $!f }';$t ~~ s/TMPL/$s/; say $t; return EVAL $t }; c("Int"); 08:40
camelia class Foo { has Int $!f }
08:41 mcmillhj joined
RabidGravy :-\ 08:44
08:44 bjz joined 08:45 bjz_ left, cibs left 08:46 mcmillhj left, jiang joined 08:47 cibs joined
Woodi_ RabidGravy: I bet slang doing what you want will be doing such evals :) 08:48
08:52 risou is now known as risou_awy 08:56 Todd joined
Todd Hi All, question on Inline::Perl5's "run" feature. how do I get my Perl 6 variable inside of a "run"? 08:57
RabidGravy you know that the TODO list is going out of control when you look at your browser tabs, wonder why you have some open, and remember the code you started implementing something
Todd #!/usr/bin/perl6 08:58
use Inline::Perl5;
my $p6str = "string from Perl 6";
my $perl5 = Inline::Perl5.new();
$perl5.run(' print $p6str . "\n\n"; ');
$p6str prit out empty 08:59
RabidGravy well yes
the simplest way would be to interpolate
Todd What does that mean? 09:00
RabidGravy $perl5.run(qq{ print $p6str . "\n\n";}');
Todd here is the example I was looking at: gist.github.com/araraloren/b33529c...236d9b6c7c
I will try the qq{}
RabidGravy (other alternative quoting mechanisms are available) 09:01
Todd Number found where operator expected at (eval 7) line 1, near "Perl 6" (Do you need to predeclare Perl?)
qq{} did not work. 09:02
RabidGravy yes it did
you just need more double quotes 09:03
that is a perl 5 error
09:04 cyphase left
Todd where? 09:04
RabidGravy $perl5.run(qq{ print "$p6str \n\n";}')
Todd $perl5.run(qq{ print $p6str . "\n\n"; });
araraloren '' not support interpolate
RabidGravy yes
the value of $p6str needs to be quoted 09:05
Todd $perl5.run(qq{ print "$p6str\n\n"; });
araraloren m: my $p6str = "123"; "print $p6str \n\n".say
camelia print 123

Todd worked. I get it. It thinks $p6str is a function if I don't 09:06
araraloren m: my $p6str = "123"; 'print $p6str \n\n'.say; qq{print "$p6str\n\n"}.say
camelia print $p6str \n\n
print "123

"
09:06 FROGGS joined
Todd thank you!!! 09:07
araraloren maybe you should refer this, learnxinyminutes.com/docs/perl6/ 09:08
Todd I have that one. Thank you! 09:09
09:09 cyphase joined, cyphase left 09:10 cyphase joined
Todd Got another Inline::Perl5 question 09:12
#!/usr/bin/perl6
use Inline::Perl5; use Term::ANSIColor:from<Perl5>; 09:13
my $Red = Term::ANSIColor.RED; my $Reset = Term::ANSIColor.RESET;
print ( $Red ~ "--Red--" ~ $Reset ~ "\n\n" );
09:13 dha left 09:14 dha joined
Todd the print out is indeed red, but it prints out the words "Term::ANSIColor" as well as accepting the color command. Same thing on reset too 09:14
Term::ANSIColor--Red--Term::ANSIColor 09:16
it is red up to and including the second set of -- 09:17
09:18 integral_ is now known as integral, dha left
Todd that learn in minutes is sweet! 09:25
09:25 n1ce left 09:26 n1ce joined 09:29 pyrimidine left 09:30 pyrimidine joined 09:34 CIAvash left 09:36 risou_awy is now known as risou 09:41 bjz left
RabidGravy Todd, for reference there is actually a Perl 6 Term::ANSIColor (and a Terminal::ANSIColor - what's all that about?) 09:44
09:44 Actualeyes joined
RabidGravy has another go at making a binding to poll(2) work 09:47
Todd Oh I do know and use it a lot. What I am doing is creating a sample program showing several different ways of doing Inline::perl5 for my internal use. The idea is to be able to reference it when I forget how to use it
RabidGravy right
Todd I was basically looking for things I knew where Perl 5 only 09:48
09:49 bjz joined
Todd This is all leading up to me writing a sub to collect up two log fiels, place them into a tar ball, then attach them to an eMail with Perl 5's eMail::Simple 09:50
No such critter exist for Perl6 yet
I will probably hammer away using Inline::Perl5's "run" module with qq{} 09:51
timotimo but why?
Todd And, believe me, I'd rather be done with Perl 5 for good. the @_ metod of pasing variables to subs drives me nuts. I is like a high level language suddenly decided to inject some assembly code. I am writing in a High level language for a reason! 09:52
09:53 risou is now known as risou_awy
timotimo but still, why use "run"? 09:57
09:58 jiang left
Todd because I can code the whole thing in p5 inside the run. Take a look over at gist.github.com/araraloren/b33529c...236d9b6c7c 09:58
RabidGravy there is an Email::Simple for Perl 6 09:59
Todd lines 86 to 156
RabidGravy it may need some love but it definitely exists
Todd It doesn't take attachments at this time . Sniffle! 10:00
And I am not up to MIME::Base64
RabidGravy well it's open source and everything, I'm sure it can be fixed to do that
10:01 araraloren left
Todd I am no wher near capable of doing that, so i have to rely on the kindness of other fars better than I 10:01
and Inline::Perl5 Sniffle!
10:02 araraloren joined 10:09 parv joined
Todd Got to call it a night. Thank you all for the help! 10:09
10:10 Actualeyes left
RabidGravy anyone got a clue as to why gist.github.com/jonathanstowe/98ea...738bd79577 segfaults? Total mystery to me, everything seems to be the right size 10:10
10:10 wamba left
Todd I posted the last question over on the mailing list if anyone figures out the answer 10:10
10:10 Todd left
timotimo what actually happens when we have "is rw" on a CArray parameter? 10:11
RabidGravy dunno, but that doesn't actually make any difference 10:12
timotimo OK
RabidGravy the poll call writes into the structs in the array
so in theory it should set revents 10:13
but it seems to mangle the array
timotimo it's crashing while it's trying to get an int value out of a CStruct
RabidGravy yes 10:14
timotimo need a less optimized moar 10:15
10:15 mawkish_ joined
RabidGravy the array element is defined (and is a PollFD) after the call but it broken 10:15
timotimo wait 10:16
what does poll expect the array to look like?
RabidGravy oh yes 10:17
it's a flat array isn't it, not an array of pointers
boo
timotimo NativeCall doesn't have flat arrays yet
not without doing magic with nativecast 10:18
RabidGravy yeah, this is me being stupid and reading the C signature wrong
didn't sortiz do something around this? 10:21
10:21 llfourn left
timotimo we have a module, yeah 10:22
RabidGravy github.com/salortiz/NativeHelpers-...Struct.pm6 ? 10:24
timotimo i think that's the one 10:25
10:31 Actualeyes joined 10:35 cyphase left 10:36 cyphase joined 10:37 llfourn joined, risou_awy is now known as risou
RabidGravy wahay! 10:38
IT LIVES!
10:42 obfusk left, obfusk joined
RabidGravy there gist.github.com/jonathanstowe/98ea...738bd79577 10:44
timotimo mhm
sjn \o 10:48
quick question: how does one introspect slangs? (e.g. the quoting sub-language, to find out which characters can be used to quote stuff)? 10:49
timotimo there's no unified API for that purpose, i don't think? 10:51
llfourn the only thing you could do is ask it what methods it has in it
sjn Well, TimToady's example used $?LANG.grammar.^methods
but that was for methods in general
llfourn (where's this example?) 10:52
sjn something similar for quoting constructs would be brillint
llfourn: ah, I asked this question here a few days ago
llfourn oh ok. I thought there might be some blog post on what's happening in slangs.
IOninja .tell Todd what sort of perl5 you got installed? ExtUtils::Embed was part of it since 5.003007, so it's very strange it can't find it. FWIW, I never had problems with perlbrewed one `\curl -L install.perlbrew.pl | bash; echo 'source ~/perl5/perlbrew/etc/bashrc' >> ~/.bashrc; perlbrew install perl-stable -Duseshrplib -Dusemultiplicity; perlbrew switch perl-stable; perlbrew install-cpanm` 10:53
yoleaux IOninja: I'll pass your message to Todd.
10:53 geekosaur left 10:54 risou is now known as risou_awy 10:55 geekosaur joined
sjn m: $/.Str.say when /^ < pre in post circum> fix ":sym" <( .* / for $?LANG.grammar.^methods».name 10:55
camelia <lambda>
<STATEMENT_LIST( )>
<( )>
<[ ]>
<ang>
«<< >>»
<« »>
<{ }>
<i>
<++>
<-->
<++>
<-->
<ⁿ>
«->»
<**>
<+>
<~~>
<~>
<->
<−>
<??>
<?>
<!>
<|>
<+^>
<~^>
<?^>
<^^>
<^>
<*>
<×>
</>…
sjn llfourn: ^
IOninja .tell dj_goku by default rakudobrew uses whatever random dev commit happened to be HEAD and has several quirks (such as having to run rehash to after install of binaries). Recommending it over properly tested and prepared releases to anyone who walks by is probably not a good idea. 10:56
yoleaux IOninja: I'll pass your message to dj_goku.
llfourn sjn: heh nice
10:57 domidumont joined
IOninja .tell jeffythedragonsl RE how hard is it to get a grant: the process involves community feedback and committee voting, with two major questions: (1) is the work needs doing; and (2) can this person do it well. They don't charge you for applying, so you can always try, but IMO your chances of succeeding dramatically increase if you can point at a pile of commits you've already contributed, to show what your 11:00
yoleaux IOninja: I'll pass your message to jeffythedragonsl.
11:00 Sound joined
IOninja work looks like. 11:00
11:00 ZzZombo_ joined, ZzZombo is now known as Guest38938 11:01 ZzZombo_ left, ZzZombo_ joined, ZzZombo_ is now known as ZzZombo, laouji joined
IOninja .tell jeffythedragonsl work looks like. 11:01
yoleaux IOninja: I'll pass your message to jeffythedragonsl.
11:01 Guest38938 left, araraloren left 11:03 ZzZombo_ joined, ZzZombo is now known as Guest15702, domidumont left, ZzZombo_ left, ZzZombo_ joined, ZzZombo_ is now known as ZzZombo
IOninja I came up with "Recommended Practices" tidbit while sleeping, if anyone's keeping track of them: always use sigils with your constants 11:03
11:04 domidumont joined
IOninja Because there's an abiguity between constants and sub calls that don't use parens and constants win. 11:04
m: sub foo { say "hi" }; foo
camelia hi
IOninja ^ normal working code;
m: constant foo = 'lulz fail'; sub foo { say "hi" }; foo
camelia WARNINGS for <tmp>:
Useless use of constant value foo in sink context (line 1)
11:04 pmurias joined
IOninja ^ some sigiless constant that made way into your code 11:04
And broke it
m: constant $foo = 'lulz fail'; sub foo { say $foo }; foo 11:05
camelia lulz fail
IOninja All's well
11:05 pyrimidine left
llfourn Agreed. Keep 'em comin'. 11:06
11:06 Guest15702 left
RabidGravy yeah, at the very least don't export sigil-less constants :) 11:07
IOninja Not good enough, unless you also `my` them. 11:09
echo 'constant foo = "luls fail"' > Foo.pm6; perl6 -I. -MFoo -e 'sub foo { say "hi" }; foo'
Conflict ^
llfourn yeah I noticed that the other day 11:10
IOninja Well, I guess you can also avoid it by using a `module` or `class`... so yeah.
llfourn constants go into GLOBAL?
m: constant $foo = "bar"; say GLOBAL::.keys 11:11
camelia ($foo)
llfourn :\ I'd rather that weren't the case.
IOninja No, constants are just `our` by default and since there's no package to put them in in that file, the package they use is GLOBAL
It's not as scary as it looks at the first sight :)
RabidGravy m: class Foo { constant foo = "hshs"; }; say foo 11:12
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared routine:
foo used at line 1
IOninja Right.
llfourn m: unit module Foo; constant foo = "bar"; note GLOBAL::.keys
camelia (Foo)
llfourn another reason to use 'module' 11:13
11:17 bjz left
IOninja m: my \foo = 'lulz fail'; sub foo { say "hi" }; foo 11:20
camelia WARNINGS for <tmp>:
Useless use of foo symbol in sink context (line 1)
IOninja Well, I guess it's a useless tidbit, 'cause we also got these things -_-
And the lesson would be to use parentheses with subs, but I won't accept it... 11:21
DEATH TO PARENS!
11:21 ZzZombo_ joined, ZzZombo is now known as Guest93075, ZzZombo_ is now known as ZzZombo, ZzZombo left, ZzZombo joined
RabidGravy dunno, some places a sub invocation with no arguments is clearer to me with parens 11:24
IOninja Heathen! 11:25
11:25 Guest93075 left
RabidGravy :-p 11:26
right now to turn this poll() malarkey into something that returns a supply that emits whenever the handle is ready 11:27
AND THEN MY PLANS FOR WORLD DOMINATION WILL BE COMPLETE
jnthn RabidGravy: That sounds oddly like something I was doing this week :) 11:29
RabidGravy do tell, maybe I don't have to write this after all :)
jnthn Still a WIP but github.com/jnthn/p6-ssh-libssh 11:30
11:30 Actualeyes left
jnthn I run the event loop on a single thread, and then stick a Promise/Supply API in front of it that hides all the evil away :) 11:31
11:32 labster left
RabidGravy I *think* my use is somewhat simpler, that is turning a pg-notifies into a Supply 11:35
timotimo mhhh postgres
jnthn I don't know the pg API well enough to speculate...but hopefully :-)
The libssh binding hasn't been too bad so far 11:36
I'd kinda like to add the server parts in
Primarily so I can have self-enclosed tests. 11:37
timotimo suddenly a ssh server that can be used from perl6
RabidGravy github.com/jonathanstowe/DBIishX-P...GNotify.pm - but I was having a senior moment with poll the other day
jnthn timotimo: Yeah, I'm not quite sure what the applications of an SSH server written in Perl 6 would be :P
A client, OTOH, is rather useful :) 11:38
timotimo maybe it's easier than building a server on top of openssl :)
RabidGravy in the past I've used SSH as an IPC transport, having a server cuts out a whole layer of process 11:39
timotimo yeah, though the more processes you have the more fine-grained your failures can be
jnthn RabidGravy: Hmm, interesting. So it might be worthwhile :)
timotimo whether that is a good or bad thing is up to you of course 11:40
jnthn (Beyond for the testing angle)
11:41 TEttinger left
llfourn m: my @a= 1..3; @a.map: { note $++ }; @a.map: { { note $++; } } # extra curlies clears state variables? 11:42
camelia 0
1
2
0
0
0
RabidGravy (somewhere I've got some utterly crack-induced code which did remote method calls by sending Storable blobs over ssh)
11:43 Actualeyes joined
IOninja llfourn: something like that. Basically if it weren't like that, then things like, say, sub foo { for ^10 { say $++ } }; would keep incrementing even between calls to &foo 11:45
sjn o/ jnthn
jnthn: maybe you can help? I'm trying to find out if it's possible to extract which quoting constructs are legal, through introspection :) 11:46
IOninja m: for ^5 { say $++; for ^3 { say "[" ~ $++ ~ "]" } } 11:47
camelia 0
[0]
[1]
[2]
1
[0]
[1]
[2]
2
[0]
[1]
[2]
3
[0]
[1]
[2]
4
[0]
[1]
[2]
sjn just looked at the git blame list, and see that TimToady is the right person to ask
IOninja sjn: I'd say no. 11:48
llfourn IOninja: Thanks :)
IOninja sjn: just looking at a small subset of single and double quotes, they're all kinda hard-coded: github.com/rakudo/rakudo/blob/nom/...3674-L3682
sjn yeah, I'm looking at the same spot 11:49
RabidGravy Lawks a mercy : gist.github.com/jonathanstowe/06f5...f56a62c75a - I don't know what I was on at the time
IOninja And all the adverbial quoters are done by mixing in roles 11:50
sjn isn't it possible to get the actual code/match/regex/whatever from the token itself?
IOninja tries to find it in src/Perl6
It's here and surrounding areas: github.com/rakudo/rakudo/blob/nom/....nqp#L5023 11:51
During parsing adverbs are read and then it assembles role combination that can parse the quoting construct. 11:52
timotimo sjn: you can grab the code object, sure, but it's opaque
11:52 drrho_ left
IOninja m: say q ⁣look mah, no quoters!⁣ 11:54
camelia look mah, no quoters!
IOninja giggles
timotimo what character is that? 11:56
IOninja Character? There is no character!: )
timotimo u: ⁣
unicodable6 timotimo, U+2063 INVISIBLE SEPARATOR [Cf] (⁣)
timotimo m)
IOninja aww
timotimo what fun 11:57
"I’m very excited to announce that today I’m open-sourcing a tool I’ve been working on for several months at Google. It’s called Bloaty McBloatface, and it lets you explore what’s taking up space in your .o, .a, .so, and executable binary files." 12:02
12:03 pyrimidine joined
RabidGravy :) 12:03
ZZ 12:05
timotimo please press ctrl-c to exit vim.
RabidGravy :) 12:08
12:09 parv left
RabidGravy jnthn, on a completely un-related note what was your envisioned end state for Net::Stomp::Server? A fully functional server or a toolkit from which one could be made? 12:10
12:11 laouji left 12:12 domidumont left
jnthn RabidGravy: More the latter; something that gives you a supply of incoming connections, requests, etc. and lets you specify supplies of notifications which can be sent 12:12
RabidGravy: Basically, enough that you can write a really simple in-memory message queue in terms of it without much effort
RabidGravy okay, pretty much what I thought then :) 12:13
12:13 laouji joined, sena_kun joined
RabidGravy may have a poke at it later as I have been thinking about the messaging thing recently 12:14
while I consider whether I can be arsed making the IBM MQ binding (which is more work than I anticipated :)
jnthn sjn: fwiw, there's plans to regularize the open/close quotes aspect to be Unicode property based: design.perl6.org/v6d.html#Formal_R...2FBrackets 12:15
RabidGravy unless of course someone has an implementation of CStructs with shaped array members down the back of the sofa
12:19 zakharyas joined
jnthn Not me, I'm afraid 12:20
12:20 AJ_ joined
jnthn missed CStructs with callbacks in this week... 12:20
AJ_ hello 12:21
jnthn wanders off for luch
lunch, even :)
12:22 wamba joined
sjn jnthn: ah, cool! 12:23
timotimo interesting. bloaty attributes the majority of our memory taken to a compunit "None". perhaps that's 3rdparty stuff that might not have been compiled -g?
sjn but with "plans", I really shouldn't hold my breath then. :-|
12:24 lep-delete left
timotimo interesting, it also outputs one line with "[None]" after each .c that comes from 3rdparty 12:24
[None] is at 78.6% VM size, and 89.9% file size 12:25
then comes [Other] which is 11% VM, 5.2% file
and then interp.c which is 2.9% vm, 1.4% file
IOninja AJ_: \o 12:26
AJ_ \o 12:27
12:27 lep-delete joined 12:32 ZzZombo_ joined, ZzZombo left 12:36 cdg joined 12:38 risou_awy is now known as risou, vendethiel joined
IOninja spots a bug in perl6.fail :( 12:39
Security bug :( 12:40
12:40 lucasb joined 12:42 zakharyas left
IOninja or maybe with RT's API :/ 12:43
timotimo uh oh
lucasb if the problem is in RT, then it's even more serious :) 12:44
IOninja I guess I should hunt down right now :) 12:45
12:45 Actualeyes left 12:46 lukaramu joined 12:49 titsuki joined
MasterDuke timotimo: i would have guessed that the unicode db would be a decent % 12:50
12:50 perlawhirl joined
perlawhirl hi perlers 12:51
how are we all? 12:52
IOninja reat
12:52 AJ_ left
sjn rekt? 12:52
:) 12:53
perlawhirl: ALL IS WELL
:D
perlawhirl so I wrote a few blog posts... i don't blog. I think about it, but I don't. but i started playing with matplotlib via perl6 and inline::python
the process has been interesting enough for me to write something down... appreciate thoughts
www.0racle.info/articles/matplotlib_in_p6_intro
sena_kun I've found a duplicate bug in RT, should I report it here? 12:54
12:54 risou is now known as risou_awy
MasterDuke perlawhirl: "fist few diagrams" 12:55
perlawhirl FIST!
ty... fixed 12:56
lucasb sena_kun: which ones? 12:57
sjn Is there a way to to list all Unicode characters that have certain properties? 12:58
sena_kun lucasb, rt.perl.org/Public/Bug/Display.htm...et-history and rt.perl.org/Public/Bug/Display.htm...et-history seems to report the same cases.
though the old one should be expanded with info about "0x" numbers to be complete 12:59
MasterDuke perlawhirl: "headed of to"
u: help
unicodable6 MasterDuke, Just type any unicode character or part of a character name. Alternatively, you can also provide a code snippet. # See wiki for more examples: github.com/perl6/whateverable/wiki/Unicodable
MasterDuke sjn: ^^^
lucasb sena_kun: yes, duplicates. some RT admin should merge them 13:00
interesting that chr() with large numbers changed behavior a few times
IOninja merged
MasterDuke u: { .uniprop eq 'Nd' }
13:00 Actualeyes joined
sena_kun IOninja++ 13:00
perlawhirl MasterDuke: Thanks 13:01
unicodable6 MasterDuke, U+0030 DIGIT ZERO [Nd] (0)
MasterDuke, U+0031 DIGIT ONE [Nd] (1)
MasterDuke, 580 characters in total: gist.github.com/dde3de180647b39976...504618e379
MasterDuke sjn: ^^^
perlawhirl: "sink my teeth in", i would say "into", but that may be a US vs AU thing 13:02
13:03 pyrimidine left
perlawhirl MasterDuke: No that's a sleep vs lack-of-sleep thing :D 13:04
MasterDuke: truth be told, I've already written parts 3 and 4, but clearly need to proof read them a bit more. 13:05
thanks again for your grammarly assistance 13:06
13:15 laouji left 13:16 laouji joined
MasterDuke perlawhirl: welcome. i was interested, having played around with matplotlib, Perl 5's Chart::Gnuplot, and then Perl 6's SVG::Plot for the *ables. but that little experimentation being the complete extent of my charting/plotting experience 13:16
13:18 pyrimidine joined
moritz SVG::Plot is really basic 13:19
13:20 laouji left 13:23 BenGoldberg joined 13:28 laouji joined
RabidGravy riginal exception: 13:30
Tried to read() on a socket from outside its originating thread
which is kinda special as there ain't no socket in sight
IOninja Found the bug. It was in perl6.fail's RT module that stored the UserAgent in an attribute and re-used it for all requests and by default it keeps the cookies. So if someone logged in, that UA got the RT login cookie set. Now, even if another user specified bogus password, the RT end point use for credentials validation (which isn't a proper page; just "view ticket #1" sort of page) notices the cookie and 13:32
clears the user as already logged in under whatever user logged in last.
Man.
Good thing this wasn't a nuclear plant -_-
13:33 lukaramu_ joined
IOninja Not that logged in users can do anything more than mark tickets and commits as reviewed for release ATM :) 13:36
13:37 lukaramu left
moritz ... then somebody would have been able to mark tickets and commits reviewed for a nuclear power plant :-) 13:38
13:42 laouji left
BenGoldberg I've got a question about NativeCall: 13:55
13:56 pyrimidine left, pyrimidine joined
BenGoldberg There's a C API function which wants to take a callback function, it's proto is something like void registercb(int (*usercb)(char **important, void *userdata), void *userdata); 13:57
When usercb is called, important will be a NULL terminated array of strings.
13:58 ZzZombo joined, ZzZombo left, ZzZombo joined 13:59 domidumont joined
BenGoldberg Should I expect sub registercb( &callback (Str @important, Pointer), Pointer ) is native(...) {}; to "just work" ? 13:59
13:59 ZzZombo_ left
BenGoldberg (Pretend I had the appropriate --> int32 in there) 14:01
14:01 pyrimidine left
BenGoldberg I'm looking through the docs, and I'm confused ;) 14:01
14:05 ZzZombo_ joined, ZzZombo_ left, ZzZombo_ joined, ZzZombo is now known as Guest25223, ZzZombo_ is now known as ZzZombo 14:06 Guest25223 left
BenGoldberg thinks that NativeCall's docs should be split into *at least* two pages... 14:06
14:06 pyrimidine joined 14:10 pyrimidine left 14:13 cibs left 14:15 eroux joined, cibs joined
BenGoldberg Also, after I call the C API's unregistercb(), how do I tell NativeCall that the C library is done with the &callback, so that perl might eventually GC it? 14:15
RabidGravy BenGoldberg, you'd need to make that CArray[Str] $important 14:16
BenGoldberg Ok, that I can do.
RabidGravy it is managed by Perl 6 it will be GCd when it would normally be 14:18
14:20 llfourn left
RabidGravy the opposite thing is what you have to worry about, that is that it doesn't get GCd before the C library is done with it 14:21
14:22 DrForr left, DrForr joined 14:31 llfourn joined 14:38 pyrimidine joined 14:39 risou_awy is now known as risou 14:42 pyrimidine left 14:53 BenGoldberg left, llfourn left 14:54 labster joined 14:56 risou is now known as risou_awy 14:57 mawkish_ left, mawkish_ joined 14:59 bwisti joined 15:01 mawkish_ left, mawkish_ joined 15:06 skids joined
Geth perl6.org: c452dec5f8 | Cale++ | source/community/index.html
add link to most wanted and bug tracker blog post

Also beef up the "write about your experience section"
15:09
15:14 cale2 joined, skids left 15:15 mawkish_ left
sjn MasterDuke: ah. 15:16
oops
#fail
15:19 nowan_ left 15:21 nowan joined
RabidGravy so I can't get the poll to work in a useful way in the general case but it works like a charm for the pg notifications 15:22
15:41 IndexMe joined
RabidGravy DBIishX::PGNotify is such an ugly name though 15:43
15:43 laouji joined
IOninja
.oO( Pg::Notify )
15:44
RabidGravy yeah, true, it only *uses* DBIish rather than extending it 15:47
Geth doc: hankache++ created pull request #1232:
Add Pod tutorial
15:48
15:48 laouji left 15:49 llfourn joined 15:50 hankache joined
hankache hello #perl6 15:51
What do you think of github.com/perl6/doc/pull/1232
I distilled S26 15:53
15:53 lichtkind__ left 15:54 llfourn left
hankache Merge it if you like it. 15:54
ciao 15:55
15:55 hankache left 15:56 Actualeyes left 15:58 elaADnlxie joined 16:03 zakharyas joined, laouji joined
Geth doc: febff7c355 | Cale++ | doc/Type/Pod/Block.pod6
Fix links for subclasses table
16:08
16:12 IndexMe left
sena_kun cale2, I'm not agree with ^. The original issue is github.com/perl6/doc/issues/759 and should be fixed from the root. 16:12
cale2 sena_kun: oh shoot... did I break the table then? 16:13
I actually thought, before I pushed that, maybe we should just get rid of that table? The type graph is helpful enough. The table is sort of redundant 16:14
sena_kun cale2, I don't think(it is already broken), but I'd rather revert it if you're okay with it. If you want proper links in tables, Pod::To::Html is ready for some love, I think.
IOninja fwiw those perl6.party articles about tickets are a bit out of date. These days perl6.fail is much more useful than the web app they're talking about. 16:15
cale2 sena_kun: can you revert it? I don't know how
timotimo .tell BenGoldberg currently callbacks passed to C always leak until the process ends, because we have no way of figuring out what C-land does with it. it wants to have some kind of API for sure at some point. just ... how?
yoleaux timotimo: I'll pass your message to BenGoldberg.
IOninja Clone the repo. Type "git revert febff7c355" git push
Clone the repo. Type "git revert febff7c355", then git push 16:16
sena_kun cale2, I'll do it.
And I think that the table is still useful.
cale2 IOninja: Your blog posts are helpful for onboarding people still. Unless it's so out of date that it's no longer relevant. perl6.fail/ Looks great 16:17
sena_kun: thank you
Geth doc: 5ba57ef4df | Altai-man++ | doc/Type/Pod/Block.pod6
Revert "Fix links for subclasses table"

This reverts commit febff7c355fa9f7c824a03d513881894adc88cd4.
This is not a valid solution.
See github.com/perl6/doc/issues/759 as an original issue and irclog.perlgeek.de/perl6/2017-03-04#i_14205280 as conversation about reverting
16:19
sena_kun done. cale2, sorry for the inconvenience. 16:20
16:21 pyrimidine joined, laouji left
cale2 How should I go about creating new pages in docs? 16:21
Nothing special is needed? Just create a Declarator.pod6 file in the types/Pod/Block/ folder? 16:22
sena_kun cale2, you can just create *.pod6 file in appropriate directory, I guess.
cale2, yes.
cale2, wait a minute...
16:22 ufobat joined
sena_kun cale2, github.com/perl6/doc/blob/master/C...ting-types - :) 16:22
cale2, don't forget about "Testing examples" section of this document too. 16:24
cale2 ok
ah. homebrew is broken on my macbook, so most of my contributions are not exactly kosher lol 16:25
16:25 pyrimidine left
cale2 I program perl6 using small samples in glot.io haha 16:25
16:26 agentzh left
timotimo for simpler things camelia and many of the *ables will also take a link to a github gist 16:27
16:27 agentzh joined
cale2 IOninja: what is the relationship between perl6.fail/ and github issues? Is perl6.fail/ for test coverage AND compiler bugs? 16:27
timotimo the coverage on perl6.fail is just there because "why buy another domain name?" 16:28
cale2 so rakudo uses that domain instead of using github issues. But the ROAST uses github issues
timotimo no, rakudo uses rt.perl.org, it's just that perl6.fail is a nicer interface to rt than rt is 16:29
cale2 timotimo: that's what I meant. So if someone wants to contribute to rakudo, they wouldn't first look at github issues, they would look at perl6.fail/ 16:30
timotimo sounds about right
cale2 But if someone wants to contribute to test coverage, they should be directed to github and NOT perl6.fail/
timotimo not necessarily
perl6.fail/t/TESTNEEDED - there is this 16:31
IOninja cale2: what gihub issues? what test coverage?
timotimo: coverage is on perl6.WTF because why not buy another domain :)
cale2: perl6.fail shows all open tickets on RT. That's it 16:32
timotimo oh!
btw, jnthn made a very good suggestion on how to make the line numbers more sensible
16:33 pyrimidine joined
cale2 That's a lot of zeros. Is that right? 16:33
timotimo nah, it's broken
cale2 I'm asking about this stuff because I updated the community page with links to help ramp people up, but I think I linked the wrong thing. github.com/perl6/perl6.org/commit/...bea8836588 16:34
linked a blog post that may be out of date 16:35
16:37 labster left 16:38 pyrimidine left
timotimo gotta be AFK for a bit 16:39
16:40 risou_awy is now known as risou, bwisti left 16:43 agentzh left 16:47 agentzh joined 16:49 Botocide joined
Botocide localhost:3000/7̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈̈􏿽xCC 16:49
IOninja hmmm
16:49 Botocide left, ChanServ sets mode: +o mst
mst ah, it fixed itself 16:49
16:49 mst sets mode: -o mst
IOninja mst: that was me :) 16:49
m: my $x = "7" ~ "\x[308]" x 2000
camelia Too many codepoints (2001) in grapheme
in block <unit> at <tmp> line 1
mst oh, right, I assumed spammer rather than fuckup ;)
IOninja ^ I noticed this is now the case 16:50
So I wanted to see if our Perl 6 bots would crap out if they see too many combiners. But I guess telnet doesn't send stuff right
16:50 llfourn joined
IOninja m: try my $x = "7" ~ "\x[308]" x 2000 16:51
camelia ( no output )
ufobat .seen zostay
yoleaux I saw zostay 11 Dec 2016 18:10Z in #perl6: <zostay> No. Hard to find time and when I do I keep running into obscure async bugs
IOninja So basically, we should decode all outsider data in a `try` block.
hm
elaADnlxie hm 16:52
ufobat did zostay actually create a ticket for his async bugs? i think he was struggeling with the tests here: github.com/zostay/HTTP-Request-Supply
16:53 bwisti joined 16:54 zakharyas left, khw joined 16:55 llfourn left
zostay I've haven't done much Perl 6 lately. Too busy with other things recently. 16:55
yoleaux 19 Feb 2017 12:15Z <ufobat> zostay: what is the status of your HTTP-Request-Supply? i'd really love to have it on modules.perl6.org so we can have a async http p6w server
ufobat i see :) hope you find some time soon :) 16:56
unfortunatelly i cant help with the asnyc stuff, i have no clue about that kind of black magic :D 16:57
zostay The async bugs or just lack of understandable diagnostic messages was pretty discouraging and I haven't really tried to get back to it
16:58 drrho joined
zostay I don't know how much that's improved in the last few months, but from what I read in p6w seems like it should be at least a bit better 16:58
ufobat but your tests in the http:.request::supply are still failing, the are in wrong order, i assume?
16:59 risou is now known as risou_awy 17:05 bwisti left 17:06 BenGoldberg joined 17:07 Ben_Goldberg joined 17:08 BenGoldberg left, Ben_Goldberg is now known as BenGoldberg, cale2 left
Geth ecosystem: 7ojo++ created pull request #302:
Add Git::Simple to ecosystem
17:10
17:10 agentzh left 17:11 ZzZombo left 17:12 agentzh joined 17:13 tojo joined 17:15 tojo left
Geth ecosystem: cc81439bdf | (Jarkko Haapalainen)++ | META.list
Add Git::Simple to ecosystem

See github.com/7ojo/perl6-git-simple
17:17
ecosystem: c5d3757d1e | Altai-man++ | META.list
Merge pull request #302 from 7ojo/patch-1

Add Git::Simple to ecosystem
zostay Order is the basic problem of async 17:19
IOninja heh, so the ton of combiners didn't knock down the bots, but apparently killed the bidirectional copy/paste between my VM and host OS :S 17:22
timotimo wat :) 17:23
IOninja Yeah, can't copy-paste anything anymore. 17:24
.tell SmokeMachine FWIW, when you're adding fixups to PRs, you can do `git commit --amend` to add them and then `git push -f` to force-push them (force-pushing to your fork or separate branch is OK, but never do it to master). This way history stays clean when the PR gets merged. 17:28
yoleaux IOninja: I'll pass your message to SmokeMachine.
IOninja I guess that's my fault for not choosing the 'Squash' option when merging -_- 17:29
17:31 Sound left
SmokeMachine IOninja: ok, I'm sorry 17:48
yoleaux 17:28Z <IOninja> SmokeMachine: FWIW, when you're adding fixups to PRs, you can do `git commit --amend` to add them and then `git push -f` to force-push them (force-pushing to your fork or separate branch is OK, but never do it to master). This way history stays clean when the PR gets merged.
17:49 pyrimidine joined, lucasb left, llfourn joined
b2gills .tell Todd the latest version of Perl 5 has subroutine signatures similar to that of Perl 6 17:51
yoleaux b2gills: I'll pass your message to Todd.
17:51 laouji joined
geekosaur iirc they are on rhel, "latest version of Perl 5" is problematic 17:52
uh, actually centos7
anyway, ancient everything
except rh keeps pissing off its enterprise customers by insisting on hotpatching systemd to close-to-latest 17:53
17:53 pyrimidine left 17:54 llfourn left
geekosaur (not sure how many enterprise customers they even have left; there's been a veritable flood of them switching to SuSE) 17:54
17:55 risou_awy is now known as risou 17:56 laouji left
b2gills m: #`( perlawhirl ) my @a = 1..10; say @a»² 17:59
camelia [1 4 9 16 25 36 49 64 81 100]
stmuk lose your data with btrfs on suse or suffer systemd :) 18:00
mst geekosaur: the rule for RHELL has been "build your own perl" since 5.8.x 18:01
geekosaur: basically since the point where they deployed a patch to work around a bug in Class::DBI that made DBIx::Class 30x slower 18:02
IOninja m: say {$++²} … 100
camelia (0 1 4 9 16 25 36 49 64 81 100)
mst (took me two years and getting a pumpking to yell at them to get that fixed)
geekosaur mst, yes, I know, but Todd_ has been fairly insistent on only using stuff from the package manager :/ 18:03
mst sucks to be him then, I guess
18:04 titsuki left
mst I should build rpms or something 18:04
BenGoldberg m: sub foo(--> int) {3}; say foo.WHAT; 18:05
yoleaux 11:15 EST <timotimo> BenGoldberg: currently callbacks passed to C always leak until the process ends, because we have no way of figuring out what C-land does with it. it wants to have some kind of API for sure at some point. just ... how?
camelia (Int)
geekosaur 's answer is to bail from rhel/centos like everyone else; if you have a trainwreck in progress like rh does, the answer is not to replace the caboose with another engine and keep plowing forward... 18:07
18:07 pyrimidine joined 18:08 pyrimidine left
b2gills m: sub foo(--> int) {3}; multi bar (Int --> 'class'){}; multi bar (int --> 'native'){}; say bar foo 18:08
camelia class
b2gills m: sub foo(--> int) {3}; multi bar (Int --> 'class'){}; multi bar (int --> 'native'){}; say bar my int $ = 3 18:09
camelia native
b2gills m: sub foo(--> int) {3}; multi bar (Int --> 'class'){}; multi bar (int --> 'native'){}; say bar my int $ = foo
camelia native
18:11 risou is now known as risou_awy
BenGoldberg timotimo, The obvious solution is to advise users to declare callback arguments as Pointer, and provide a subroutine: native_wrap_cb( Callable , Signature ), whose return object has .Pointer and .dispose. 18:12
IOninja PSA: If you implement a feature, document it. Or least open an Issue on docs repo. No point in implementing stuff if users don't know about it.
18:18 nebuchadnezzar left 18:26 agentzh left
BenGoldberg Another possibility would be to add something like 'sub quicksort(...) is native(...) is callback-disposing;' which would tell NativeCall that as soon as the top-level native subroutine (quicksort in this example) returns, then any callbacks passed to it will no longer be used in C-land. 18:30
IOninja Wonder what the fastest way to count the number of times a particular char occurs. 18:35
elaADnlxie NeuralAnomaly: status
NeuralAnomaly elaADnlxie, [✘] Next release will be in 1 week and 6 days. Since last release, there are 29 new still-open tickets (1 unreviewed and 0 blockers) and 1 unreviewed commits. See perl6.fail/release/stats for details
18:40 elaADnlxie left
IOninja m: for ^1000_000 { $ = +'foo.bar.ber.bez'.comb: '.' }; say now - INIT now 18:42
camelia 12.08750489
IOninja m: use nqp; sub count($s) { my int $c = 0; my int $pos = 0; nqp::while(nqp::isge_i(0, ($c = nqp::index($s, '.', $pos))), ($c = nqp::add_i($c, 1))); $c }; for ^1000_000 { $ = count 'foo.bar.ber.bez' }; say now - INIT now
camelia 0.7614110
18:42 espadrine joined
IOninja m: say 12.08750/0.7614110 18:42
camelia 15.8751318
18:43 naxieAlDle joined
IOninja m: use nqp; sub count($s) { my int $c = 0; my int $pos = -1; nqp::while(nqp::isge_i(($pos = nqp::index($s, '.', ($pos = nqp::add_i($pos,1)))), 0), ($c = nqp::add_i($c, 1))); $c }; for ^1000_000 { $ = count 'foo.bar.ber.bez' }; say now - INIT now 18:46
camelia 0.98162135
18:50 llfourn joined 18:55 llfourn left 19:08 khw left 19:12 darutoko left, khw joined 19:22 ifim joined
timotimo BenGoldberg: but that's so much more work 19:29
19:30 domidumont left
timotimo BenGoldberg: in perl6 you can always just put your pointy blocks directly into the arg list 19:30
now you'd have to put it in together with a declaration :(
BenGoldberg Well, if you had an 'is callback-disposing' solution, you could still put point blocks directly into the arg list. 19:31
You only need a declaration for situations when you are doing library_func_register_cb(sub {...}), and (only god knows how much later) library_func_register_uncb() 19:33
Err, unregister_cb
. o O (Sorry, we're all out of uncallbacks.) 19:34
19:35 wamba left
geekosaur I would be tempted to do the opposite 19:36
is foreign-persist(sub)
BenGoldberg I'm presently writing a perl6 plugin for hexchat, and one *super* commonly used thing is going to be $hook = Hook.command("custom_command_name", sub {...}), where the user can, if they want, do $hook.unhook, which removes that custom command.
geekosaur or for that matter pointers that aren't part of the result type 19:37
naxieAlDle goddamn emacs, stop eating my cpu
19:37 naxieAlDle left
geekosaur emacs had a transporter accident too? 19:38
BenGoldberg It's probably gc-ing. 19:39
19:39 naxieAlDle joined
naxieAlDle well, it happened after I tried using perl6-mode with Grammar.nqp 19:40
BenGoldberg Maybe you need an nqp mode?
Several of the other script language plugins (perl5, python) provide a way to unload and reload individual scripts. I'd be unhappy if unloading a perl6 script merely undid the hooks, but left everything loaded in the interpreter. 19:41
IOninja Can a couple of people give me an example of a file extension? 19:47
19:47 agentzh joined
IOninja Just extension 19:47
BenGoldberg .exe, .txt, .jpg, .jpeg, ....
IOninja And someone else? 19:48
(second person :))
BenGoldberg Maybe 'sub blah(....) is native is persistant-callbacks(&manager(&free_er)' ... without the persistant-callbacks, the native callbacks are freed immediately. With it, the &manager function is called every time NativeCall makes a callback, and it receives a closure (&free_er) which, when called, tells nativecall to free up the C side of things.
19:49 laouji joined
IOninja naxieAlDle: yo, give me some examples of file extensions. Just extensions, no filenames. 19:49
naxieAlDle IOninja: .sv .hpp .docx .pm6 19:50
IOninja Thanks :)
naxieAlDle IOninja: how many do you need? :)
IOninja That's all. Wanted to see whether people naturally include the leading dot when talking just about extension :)
19:52 llfourn joined
BenGoldberg That's not a fair manner of doing a survey. 19:52
He might have added the dot just because I included it.
IOninja Hehehe
It's not. But it's good enough ;) 19:53
BenGoldberg You should have asked people to /msg you instead of saying it on the channel.
IOninja meh
BenGoldberg Try asking over on #perl 19:54
naxieAlDle oh
BenGoldberg: actually, I haven't even seen it
timotimo BenGoldberg: if there's an "unregister" function, you'll need to have stored the exact code object in some variable anyway
otherwise you'll run into trouble
naxieAlDle but my brain could've picked it up automatically, that's true
19:55 andrzejku joined
geekosaur IOninja, most of us do (because an extension doesn't *always* have a dot; a few things use _ or others) 19:55
it's fairly rare but happens just often enough that we include the leader 19:56
19:56 risou_awy is now known as risou
BenGoldberg timotimo, C language users of the api get back a hexchat_hook_t* from any of the various hexchat_hook_<foo> functions; calling hexchat_unhook(thehookpointer) unregisters the callback. 19:57
geekosaur also there's a de facto convention that "jpg" without the leader means the type/format, not the extension
timotimo OK, but on the perl6 side i don't think we have a way to say "the callback related to this pointer needs to be cleared"
IOninja geekosaur: what's this about using `_` for extensions? 19:58
19:59 llfourn left, khw left
geekosaur like I said, it's very rare, but you will occasionally encounter it. like using _d to indicate a directory of additional files for a config (instead of the .d convention that came from solaris; _d was more of an AT&T thing there) 19:59
IOninja Ah 20:00
geekosaur I've also seen _s but I can't recall what it deoted 20:01
*denoted
BenGoldberg I seem to recall some editor (was it emacs) making a back up of a file with a ~ attached to it's name. 20:04
naxieAlDle and also #files# for unsaved stuff, yes 20:05
20:06 cpage_ left 20:09 savasten joined
naxieAlDle hm, this test doesn't achieve anything, right? github.com/perl6/roast/blob/master...infix.t#L6 20:11
IOninja mhm, better use something weirder for the operator... 20:12
20:13 risou is now known as risou_awy
naxieAlDle ok I'll change it 20:13
BenGoldberg There's already a unicode operator in that test, © 20:17
20:17 Damianz joined
naxieAlDle pft, no, not going to change it 20:29
there's already a test for ©, and there are some tests for actual operator overloading
so this particular one is useless I guess…
20:30 TEttinger joined 20:31 labster joined, zakharyas joined 20:32 bjz joined
lizmat . 20:32
BenGoldberg m: dd [gather take 5]; 20:33
camelia [5]
BenGoldberg wonders if that will always produce an array, and never get super clever and make something lazy.
naxieAlDle m: dd [lazy gather take 5]; 20:34
camelia (5, Any, Any, Any, Any, Any, Any, Any, Any, Any... lazy list)
lizmat BenGoldberg: it's similar to 1 element slices: you always get a List there as well 20:35
naxieAlDle ok I changed my mind :P
lizmat m: my @a = ^10; dd @a[4]; dd @a[(4,)]
camelia Int @a = 4
(4,)
sjn reads Zef source code 20:37
20:37 savasten left
sjn It's quite pleasant :) 20:37
20:39 jm_ joined
BenGoldberg m: enum Foo (qw,zero one,); say Foo.pick(*) 20:40
camelia (one zero)
BenGoldberg m: enum Foo (qw,zero one,); say Foo.enum
camelia No such method 'enum' for invocant of type 'Foo'
in block <unit> at <tmp> line 1
BenGoldberg m: enum Foo (qw,zero one,); say Foo.enums
camelia Map.new((:one(1),:zero(0)))
BenGoldberg m: enum Foo (qw,zero one,); say Foo::zero
camelia zero
BenGoldberg m: enum Foo (qw,zero one,); say Foo::("zero") 20:41
camelia 5===SORRY!5=== Error while compiling <tmp>
Combination of indirect name lookup and call not supported
at <tmp>:1
------> 3m Foo (qw,zero one,); say Foo::("zero")7⏏5<EOL>
expecting any of:
argument list
naxieAlDle BenGoldberg: what are you trying to do? :)
BenGoldberg I'd like the same list as .pick(*) is giving, but without it randomizing the oder.
s/oder/order/
I suppose I could sort them .... 20:42
naxieAlDle no-no, there was a thing, mmm
m: enum Foo (qw,zero one,); say Foo.^enum_value_list 20:43
camelia (zero one)
BenGoldberg naxieAlDle++ 20:44
naxieAlDle BenGoldberg: do note that this is not specced
but that's what Enums use internally for .pick 20:45
BenGoldberg I see, it's over in meta-class-land, for some silly reason... 20:46
naxieAlDle BenGoldberg: I guess it would make sense to add a method that will expose this thing 20:48
that's not the first time I see somebody asking for this, and I needed it myself
20:49 jm_ left
BenGoldberg irclog.perlgeek.de/perl6/2016-05-20#i_12518778 for example ;) 20:49
20:50 irobotnot joined
irobotnot p6: say 3; 20:51
camelia 3
naxieAlDle m: say ‘hello world!’
camelia hello world!
20:52 synopsebot6 joined, ChanServ sets mode: +v synopsebot6
irobotnot p6: [1..100].hyper.map({ $_ +1 }).list.say; 20:52
camelia (2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 …
IOninja m: say ⅓
camelia 0.333333
BenGoldberg m: enum Foo (qw,zero one,); say ::("Foo").::;
camelia ===SORRY!===
MVMArray: Can't pop from an empty array
IOninja known issue
SmokeMachine what's the easiest way do "require A::B::*"? I mean: if is there A::B::C, A::B::D and A::B::E, I'd like to require all 3... how could I do that? 20:53
irobotnot p6: [1..100].race.map({ $_ +1 }).list.say;
camelia (2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 …
IOninja SmokeMachine: for dir("A/B") { require .&Str } # I'm guessing...
irobotnot: FWIW, you can also /msg camelia to eval in private
irobotnot IOninja: thx 20:54
IOninja irobotnot: also, default batch size for race/hyper is 64... you may wanna use something smaller
with :batch(20) for example
SmokeMachine IOninja: but if A::B::Z, by example, was installed by another dist, it won't be found, right?
BenGoldberg m: enum Foo (qw,zero one,); dd ::("Foo")::zero
camelia Foo::zero 20:55
BenGoldberg m: enum Foo (qw,zero one,); dd ::("Foo")::.keys
camelia ()
IOninja m: sleep 1 for ^4 .race: :batch; say now - INIT now
BenGoldberg m: enum Foo (qw,zero one,); dd ::Foo::.keys
camelia 1.00515620
("one", "zero").Seq
20:55 llfourn joined
IOninja SmokeMachine: errr, just .Str not .&Str 20:55
irobotnot IOninja: cool. I was copy-pasting from a sample 20:56
IOninja SmokeMachine: and don't know
SmokeMachine IOninja: Im trying to do some kind of "plugin system"...
IOninja irobotnot: there's a lightning talk on .race and other things, if you're interested: perl6.party/post/Perl-6-What-Progr...re-Is-Like
SmokeMachine: oh, yeah, what I said won't work for installed stuff. Never mind :) 20:57
irobotnot IOninja: thx. will check it out. just started with p6
SmokeMachine any other suggestion?
IOninja SmokeMachine: dig in github.com/rakudo/rakudo/tree/nom/...e/CompUnit trying to find a method for it (I... *think*... it was added). Or ask nine / ugexe about it 20:58
You probaly want to query what's installed and grep for things that have prefix whatever.
SmokeMachine thanks! 20:59
21:00 llfourn left 21:01 buggable left, buggable joined, ChanServ sets mode: +v buggable 21:03 bbkr_ joined 21:04 cdg_ joined, Gruber joined
naxieAlDle oh… 21:04
m: say True ⁇ True ?? 5 !! 10 ‼ 42 21:05
camelia 5
IOninja oh⁇
naxieAlDle m: say True ⁇ False ?? 5 !! 10 ‼ 42
camelia 10
IOninja hahahaha
naxieAlDle m: say True ⁇ 42 ‼ False ?? 5 !! 10
camelia 42
naxieAlDle m: say False ⁇ 42 ‼ False ?? 5 !! 10
camelia 10
naxieAlDle m: say False ⁇ 42 ‼ True ?? 5 !! 10 21:06
camelia 5
naxieAlDle IOninja: coincidence? I don't think so :P
IOninja naxieAlDle: coincidence with what?
My using ⁇ It was. I'd type it faster if I didn't reboot my VM today and xmodmap were running 21:07
21:07 Kaffe_ joined
naxieAlDle I'm impressed :) 21:07
it would take me 3 seconds just to read the thing :P
IOninja What thing?
naxieAlDle my message 21:08
IOninja Which message?
21:08 simcop2387_ joined
IOninja doesn't get it 21:08
But... I laughed because for a second I thought you were showing a case where using, say, `!!` instead of `‼` in a mix of ??⁇!!‼ produced different results. 21:09
naxieAlDle ah no, I just realized there are no tests for it
IOninja There are 21:10
naxieAlDle but it should work as expected
IOninja Well, there are tests for ⁇‼ I mean
naxieAlDle github.com/perl6/roast/issues/248
not a big deal anyway 21:11
IOninja I'll write those just for fun right now
21:13 cdg left, rindolf left, simcop2387 left, Kaffe left, Possum left, kyan left, Grrrr left, bbkr left, dj_goku left, jkva_ left, Hotkeys left, eater left, samcv left, simcop2387_ is now known as simcop2387, simcop2387 left, simcop2387 joined 21:14 nowan_ joined, drrho left, ufobat left, cibs left, eroux left, cyphase left, kalkin- left, SCHAAP137 left, culb left, ChoHag left
IOninja Actually, never mind. I need to do other things... 21:14
21:16 nightfrog joined
naxieAlDle IOninja: like work on IO stuff? :P 21:17
21:17 zakharyas left, nowan left, cdg_ left
naxieAlDle
.oO( what “stuff”? )
21:17
21:17 cdg joined 21:18 ufobat joined, drrho joined, cibs joined, cyphase joined, kalkin- joined, ChoHag joined
IOninja naxieAlDle: yeah 21:19
Though I did find a minor bug:
m: say 0 ⁇ 1 ?? 2 ⁇ 3 ?? 4 !! 5 ‼ 6 !! 7 !! 8
camelia 5===SORRY!5=== Error while compiling <tmp>
Your !! was gobbled by the expression in the middle; please parenthesize
at <tmp>:1
------> 3say 0 ⁇ 1 ?? 2 ⁇ 3 ?? 4 !! 5 ‼ 6 !! 77⏏5 !! 8
expecting any of:
infix
IOninja It wasn't !! that was gobbled, but ‼
And well, not really gobbled either.... 21:20
I just used !! instead of ‼
See all this unicode stuff causes problems. Now it's spreading to other exceptions and makes their content somewhat nonsensical, even though in the past it made sense. 21:21
naxieAlDle OK OK I'll focus on finding bugs in texas operators :PPP
IOninja :)
21:22 SCHAAP137 joined 21:26 cog_ joined, avuserow left
Geth ecosystem: acaa154111 | (Jonathan Stowe)++ | META.list
Add Pg::Notify

  github.com/jonathanstowe/Pg-Notify
21:28
RabidGravy there, once I got poll(0 working twas a snap :) 21:30
21:33 nebuchadnezzar joined, andrzejku left
SmokeMachine Yes, I didn't write tests mixing ⁇‼ and ??!!... :( 21:33
naxieAlDle s: {}, 'gist' 21:35
SourceBaby naxieAlDle, Ehhh... I'm too scared to run that code.
SmokeMachine IOninja: so, was that a bug?
naxieAlDle s: &abs, 'gist'
SourceBaby naxieAlDle, Sauce is at github.com/rakudo/rakudo/blob/b597...Mu.pm#L510
naxieAlDle s: &infix:<+>, 'gist'
SourceBaby naxieAlDle, Sauce is at github.com/rakudo/rakudo/blob/b597...Mu.pm#L510
IOninja s: Supplier.new.Supply, 'tap' 21:36
SourceBaby IOninja, Sauce is at github.com/rakudo/rakudo/blob/b597...ply.pm#L77
IOninja FWIW, I see no `on-closing` taken by that routine, so perhaps the docs ( docs.perl6.org/type/Tap ) are wrong. That's rt.perl.org/Ticket/Display.html?id=130920
SmokeMachine: what was a bug?
SmokeMachine m: say 0 ⁇ 1 ?? 2 ⁇ 3 ?? 4 !! 5 ‼ 6 !! 7 !! 8 # IOninja, this 21:37
camelia 5===SORRY!5=== Error while compiling <tmp>
Your !! was gobbled by the expression in the middle; please parenthesize
at <tmp>:1
------> 3say 0 ⁇ 1 ?? 2 ⁇ 3 ?? 4 !! 5 ‼ 6 !! 77⏏5 !! 8 # IOninja, this
expecting any of:
IOninja Yes, the error is incorrect.
And this is exactly why I'm anti-adding-Uncode stuff. It's hard to forsee these distant effects. 21:38
And then you add all these conditionals all over the codebase to handle something that'll be used by minority of users.
naxieAlDle is already using it
21:42 PerlJam joined
ugexe If you want to use CUR for a plugin system then write a CUR that subclasses CURI and loads all modules it can find when its initiated 21:42
But it would be easier to not do that and just use CUR.installed() to find what you want 21:43
IOninja It doesn't have a list of all the installed modules?
ugexe github.com/rakudo/rakudo/blob/nom/...on.pm#L572 21:44
IOninja Ah
m: CompUnit::Repository::Installation.installed.say
camelia Cannot look up attributes in a CompUnit::Repository::Installation type object
in block <unit> at <tmp> line 1
IOninja m: CompUnit::Repository::Installation.new.installed.say
21:44 avuserow joined
camelia Parameter '$prefix' requires an instance of type Str, but a type object was passed. Did you forget a .new?
in block <unit> at <tmp> line 1
21:44
ugexe need a specific instance
IOninja m: $*REPO.installed.say 21:45
ugexe m: say $*REPO.repo-chain[0].installed
camelia Nil
ugexe m: say $*REPO.repo-chain.map(*.?installed)
camelia (Nil (CompUnit::Repository::Installation::InstalledDistribution.new(prefix => "/home/camelia/rakudo-m-inst-2/share/perl6/site".IO(:SPEC(IO::Spec::Unix),:CWD("/home/camelia")))) () (CompUnit::Repository::Installation::InstalledDistribution.new(prefix => "…
RabidGravy which suggests to me that something should be required earlier 21:46
ugexe such a plugin system would limit you to CURI, so no -Iwhatever
this is why zef just does not use a custom plugin CUR and just does regular old dynamic load 21:47
i have a module (not in ecosystem) called CUR::Lib which is just like CURI but without the sha1 file names which would help solve this though 21:48
but precompile doesn't work with it unless its built with the rest of rakudo source
IOninja m: say $*REPO.repo-chain.map(*.?installed).grep({$_ !=== Nil}).flat».meta».<name> 21:50
camelia (Inline::Perl5 CORE)
21:56 llfourn joined 21:57 risou_awy is now known as risou
RabidGravy the tricky bit for pluggable things is that we don't store interesting enough metadata about the modules 21:57
21:58 rindolf joined
ugexe you have all metadata available through CompUnit.distribution.meta 22:00
so you just have to get to that
again just for CURI 22:01
RabidGravy yes that's the stuff that isn't interesting enough
22:02 llfourn left, Possum joined, kyan joined, samcv joined, eater joined, Hotkeys joined, jkva_ joined, dj_goku joined 22:04 bjz left
RabidGravy infact as far as I can tell it doesn't even store everything in the META file 22:04
which I guess could be fixed 22:05
I'm thinking of something like the values in the "provides" being either the Str path or an object with a "path" and optional keys, like an array[str] "implements" that could be used by pluggable loaders 22:12
BenGoldberg s: &callframe
SourceBaby BenGoldberg, Sauce is at github.com/rakudo/rakudo/blob/b597...ame.pm#L51
22:13 ugjka is now known as ugjka22222222222, ugjka22222222222 is now known as ugjka 22:14 risou is now known as risou_awy
RabidGravy ugexe, with zef can one influence what repo does the installing? 22:16
say I had a plogin system that needed the addional data, could I use a CUR that actually stored that? 22:17
ugexe you can get the path of everything as well 22:21
CompUnit.distribution.content("lib/My/Module.pm").path 22:22
introspec .meta<provides><My::Module> for the lib/MyModule.pm
RabidGravy right, but it still doesn't tell me whether some module implements some interface that I am interested in for a plugin 22:23
so some additional metadata is required, which isn't cyrrently stored 22:24
ugexe i imagine you would technically use the `emulates` field of meta6.json for that
RabidGravy so I guess the answer in no
but I don't think that is stored
ugexe everything is stored i believe 22:25
RabidGravy Hmm
22:26 FROGGS left
ugexe --install-to will use whatever repo it points at to call .install(...) on. So if its CompUnit::Repository::Installable it should be compatible 22:27
your CUR would be identified with a short id, so it would be like --install-to=plugins#my/plugins
RabidGravy Ooh it does indeed store everything 22:32
sorry I was under the impression it didn't 22:33
something weird going on with the files (it seems to have all the files in the CURI) but hey 22:35
22:39 perlawhirl left, Voldenet left
BenGoldberg m: sub foo(-->Int) {return "0"}; say foo; 22:43
camelia Type check failed for return value; expected Int but got Str ("0")
in sub foo at <tmp> line 1
in block <unit> at <tmp> line 1
BenGoldberg m: sub foo(-->Int) {return "0"};
camelia ( no output )
22:44 Voldenet joined, Voldenet left, Voldenet joined
BenGoldberg Any chance that, some time in the future, return types will be checked at compile time? 22:44
geekosaur I think stuff like that is ... not yet planned but intended? 22:45
BenGoldberg Ok. 22:46
22:48 dct joined
BenGoldberg m: enum Nums (qw,zero one two,); sub foo(-->Int) { two }; say foo; 22:48
camelia two
naxieAlDle yes
I mean, the last snippet looks fine 22:49
geekosaur there's a lot of type inference and optimization that could be done but isn't currently being considered or worked on; we're still fixing the basics as it is
naxieAlDle though I wonder… what if it is a non-int Enum?
BenGoldberg m: enum Nums (qw,zero one two,); my int $maybe = two; say $maybe;
camelia 2
naxieAlDle BenGoldberg: maybe you'll also like this one 22:50
m: sub foo(-->Int) { True }; say foo;
camelia True
BenGoldberg m: enum StrEnum (map { $_ => $_ }, qw,apples oranges bananananas,); say apples
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared routine:
apples used at line 1
geekosaur m: say so True ~~ Int
camelia True
BenGoldberg m: enum StrEnum (map { $_ => $_ }, qw,apples oranges bananananas,); 22:51
camelia ( no output )
BenGoldberg m: enum StrEnum (map { $_ => $_ }, qw,apples oranges bananananas,); say StrEnum.pick(*)
camelia (oranges oranges apples apples bananananas bananananas)
BenGoldberg m: enum StrEnum (map { $_ => $_ }, qw,apples oranges bananananas,); dd StrEnum.pick(*)
camelia (StrEnum::apples apples, StrEnum::oranges oranges, StrEnum::bananananas bananananas).Seq
BenGoldberg wft?
geekosaur pairs stringify with a separating tab
BenGoldberg m: enum StrEnum (map { $_ => $_ }, qw,apples oranges bananananas,); dd StrEnum.pick ~~ Int 22:52
camelia Bool::True
BenGoldberg naxieAlDle, Looks like there can not exist any non-int enum. 22:53
naxieAlDle m: enum E (A => 4.2, B => 6.9); say E.enums
camelia Map.new((:A(4.2),:B(6.9)))
BenGoldberg m: say Bool ~~ Int; # this is why you can return True from a sub declared to return Int. 22:54
camelia True
22:54 bjz joined
BenGoldberg m: enum E (A => 4.2, B => 6.9); sub foo(-->Int) { A }; 22:54
camelia ( no output )
BenGoldberg m: enum E (A => 4.2, B => 6.9); sub foo(-->Int) { A }; foo();
camelia Type check failed for return value; expected Int but got E (E::A)
in sub foo at <tmp> line 1
in block <unit> at <tmp> line 1
BenGoldberg Huh.
naxieAlDle ok, it DWIMs
BenGoldberg So num enums are allowed, but not strs. 22:55
naxieAlDle m: enum E (A => ‘why’, B => ‘not’); say A; say B
camelia why
not
BenGoldberg Why was my map not working?
m: enum F (apple => 'apple', banana => 'banana', berrie => 'berry'); say apple 22:56
camelia apple
naxieAlDle m: enum F (apple => 'blapple', banana => 'banana', berrie => 'berry'); say apple
camelia blapple
BenGoldberg oh..kay. Why was my map not dwimming, then? 22:57
22:58 llfourn joined 23:02 naxieAlDle left 23:03 llfourn left 23:05 sena_kun left 23:07 bjz left 23:09 rindolf left 23:25 RabidGravy left, bjz joined 23:34 laouji left 23:46 llfourn joined 23:53 titsuki joined 23:58 risou_awy is now known as risou