»ö« 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.
kalkin- ugexe: even during the build and test phase? 00:00
ugexe someone elses build might generate perl modules during the build phase
kalkin- ugexe: so when you talked about concurrency you meant like actually doing builds of modules depending on each other concurrently? 00:01
ugexe kalkin-: yes, this is doable. zef did this for a long time even
kalkin- because this is what you talking about if module a waits for module b to generate some modules during b's build phase
ugexe you can probably think of other situations where that behavior would be wanted. its not specific to this point 00:02
kalkin- but then you need to provide a bus where all the distrubtions can send message through during any phase and other distributions can listen to them
so something like dbus 00:03
:D
ugexe right, thats sort of what im getting at
the average use would not need those things and should really be usable with just `perl6 -Ilib hooks/my_hook.pl6`, but we need to keep more sophisticated requirements in mind 00:05
kalkin- so you would need some way for hooks to listen on events in other hooks during same phase? or even all phases?
00:05 shayan_ left 00:06 pecastro joined
ugexe dunno, I never implemented this part 00:06
kalkin- also then you have to think about the event protocol. do you standardize some parts of it, like “class A is build“?
ugexe in short the hooks should be able to know whats happening in the current build environment its a part of
kalkin- don't we put to much logic in to distributions? 00:07
ugexe it doesnt belong in distribution
kalkin- well hooks are part of the distribution
we allow people to write very sophisticated stuff, I fear most will misuse it 00:08
(because of lack of understanding)
ugexe if you dont allow it you end up with terrible hacks being used everywhere
kalkin- But hooks are limited to just generate new files inside the distribution dir. They can't influence anything else, like i.e. change installation location 00:11
or can they?
ugexe hooks are a script, they can do anything
changing the installation location might be pushing it, but technically they could 00:12
kalkin- well yes but can this script force i.e installation of further stuff without you knowing it?
ugexe a perl6 script can do anything it has permissions for, so yes
kalkin- In such case we are in security territory
ugexe you cant prevent a hook thats `run <zef install Virus::Module>` 00:13
kalkin- In such case it's the same as curl github/foo |bash
ugexe because people also need to `run <make something>`
theres nothing stopping you from doing these things inside a perl module or test either though
kalkin- right 00:14
ugexe: it would be nice if you would readd simple hooks to zef 00:15
ugexe they need to be installable first 00:16
otherwise its breaks the preconception that you can get a distribution from some CUR and install it to another
00:17 eitan left
kalkin- ugexe: is zef missing that or something else? (rakudo) 00:18
or what do you mean by installable? (Besides copy)
ugexe CompUnit::Repository::Installation.install() does not look for files starting with `hooks/` 00:19
so they won't be installed
and fwiw installation does not actually do a file copy, it reads from a handle which could be a socket or something 00:20
(it cant be a literal socket but you can put a thin wrapper role around one to make it happen) 00:21
kalkin- Hmm I'm looking at CompUnit::Repository::Installation.install i think it's just a one liner 00:22
hmm may be oneliner + loop 00:23
ugexe github.com/rakudo/rakudo/blob/nom/...on.pm#L299 you would just copy this block but s/resources/hooks/ i believe. then you'd need to update Distribution::Path and module installers to include those files in the meta data they pass
github.com/rakudo/rakudo/blob/nom/...on.pm#L128 you'd copy this but s/bin/hooks/ to fix for Distribution::Path for instance 00:24
SmokeMachine ugexe: thanks! 00:25
kalkin- ugexe: thanks! 00:26
ugexe is just glad someone else is listening and making noise about these things 00:29
00:33 cdg_ left 00:34 lukaramu left, pierrot left 00:35 pierrot joined 00:39 bjz joined 01:06 AlexDaniel joined 01:07 aborazmeh joined, aborazmeh left, aborazmeh joined 01:20 espadrine left 01:23 aborazmeh left 01:24 labster joined 01:26 Tonik left 01:32 ChoHag left, ChoHag joined 01:34 Ben_Goldberg joined 01:35 BenGoldberg left, Ben_Goldberg is now known as BenGoldberg 01:49 gcole left 01:56 gcole joined 02:08 Gasher left 02:12 gcole left 02:13 gcole joined 02:19 araujo left 02:20 araujo joined, araujo left, araujo joined 02:28 hartenfels left 02:31 kalkin- left, kalkin-_ joined 02:53 araujo left 02:54 araujo joined 03:11 Ben_Goldberg joined, BenGoldberg left, Ben_Goldberg is now known as BenGoldberg 03:12 DarthGandalf joined 03:13 DarthGandalf left 03:19 BenGoldberg left, BenGoldberg joined 03:20 llfourn joined 03:21 llfourn left 03:26 Ben_Goldberg joined, BenGoldberg left, Ben_Goldberg is now known as BenGoldberg
[Coke] anyone able to install "JSON::Fast" with zef? 03:30
I'm getting github.com/timo/json_fast/issues/18
03:30 Ben_Goldberg joined, BenGoldberg left 03:31 Ben_Goldberg is now known as BenGoldberg 03:38 BenGoldberg left
[Coke] samcv: I can't run docs in sparse ATM: gist.github.com/coke/fa890bff5a219...17f2e20575 03:39
that's after doing an npm rebuild and a make init-highlights
03:40 BenGoldberg joined
[Coke] (trying to upgrade node from 7.2.1 to 7.4.0...) 03:41
samcv: same thing with upgraded node. 03:42
BenGoldberg Is there an equivilant of perlbrew for node?
[Coke] samcv: ugh. 'npm rebuild', but in the highlights directory. that fixed it. 03:44
dugword nvm 03:55
nvm is the perlbrew for node
[Coke] I thought nvm was more like cpanm. 04:09
04:10 pecastro left
[Coke] ok, now the htmlify --sparse is hanging on Writing programs document for Perl 6 ... 04:10
timotimo [Coke]: in case you missed it, ugexe just commented on your bug in json::fast 04:16
dugword npm == cpanm 04:19
nvm == perlbrew
04:20 labster left
dugword (n)ode (v)ersion (m)anager. lets you switch between different versions of node and installs them all in your local home dir 04:21
04:22 savasten joined 04:33 labster joined 04:34 BenGoldberg left 04:45 kyan left
garu waves 04:51
m: say 42
camelia rakudo-moar f6303d: OUTPUT«42␤»
04:52 savasten left
garu class Boom { method new($pos?, *%args) { %args = x => ($pos, %args); warn %args{q|x|}; return; } }; my %o = Boom.new(q|random|, :foo<bar>) 04:53
so... um... this ^^ hangs on by perl6 moar build (just updated with rakudobrew build moar) 04:54
I'm afraid of running it on camelia and hanging her here for everybody else, so I'll leave it as is 04:55
if anyone can help me debug it, it'd be awesome :D
one interesting bit: if I remove the bit that says "warn %args{q|x|}" it doesn't hang 04:57
ugexe m: lass Boom { method new($pos?, *%_) { my %args = x => ($pos, %_); warn %args{q|x|}; return; } }; my %o = Boom.new(q|random|, :foo<bar>)
camelia rakudo-moar f6303d: OUTPUT«5===SORRY!5===␤Undeclared name:␤ Boom used at line 1. Did you mean 'Bool'?␤Undeclared routine:␤ lass used at line 1. Did you mean 'last'?␤␤Other potential difficulties:␤ Useless declaration of a has-scoped method in mainline (did…»
garu hmm... so it does run
ugexe m: class Boom { method new($pos?, *%_) { my %args = x => ($pos, %_); warn %args{q|x|}; return; } }; my %o = Boom.new(q|random|, :foo<bar>)
camelia rakudo-moar f6303d: OUTPUT«random foo bar␤ in method new at <tmp> line 1␤Odd number of elements found where hash initializer expected:␤Only saw 1 element␤ in block <unit> at <tmp> line 1␤␤»
ugexe you dont think method(*%args) { %args = x -> (%args) } could be problematic? 04:58
m: my %x; %x<x> = %x; say %x 05:01
camelia rakudo-moar f6303d: OUTPUT«(\Hash_71399200 = {x => Hash_71399200})␤»
ugexe m: my %x; %x<x> = %x; warn %x
camelia rakudo-moar f6303d: OUTPUT«(timeout)» 05:02
garu a-ha!
thanks for reproducing it in a much smaller/cleaner fashion
ugexe: also, I'm sorry, I'm new to perl6 and it's 3am here :) Why should it be problematic? say %args had :foo<bar>, I expected %args = x => ('lala', %args) to turn %args into x => ('lala', :foo<bar>) 05:04
is it creating a reference to itself, instead?
ugexe yes 05:05
you could do `x => ('lala', |%args)`
garu ah... I keep forgetting about |
thanks! 05:06
m: my %x = foo => 42; %x<x> = ('lala', |%x); warn %x; 05:07
camelia rakudo-moar f6303d: OUTPUT«x lala foo 42foo 42␤ in block <unit> at <tmp> line 1␤»
ugexe you really just need to sink it, so |%args could also be `% = %args`, `eager %args`, etc
05:07 shayan_ joined
garu ugexe: looks like it works exactly as I wanted, thanks! I'll try to keep it in mind, maybe try to get the whole "flat" mnemonic down 05:08
ugexe: still... the timeout is a bug, right?
ugexe its not the flattening that "fixes" it. its sinking
I dunno if it is - but it could be 05:09
garu sinking.... can you elaborate? I think I get it but it looks like I'm missing something 05:10
or maybe just point me towards the docs?
hobbs hola garu 05:13
or olá. I just hola random peopl :) 05:14
05:16 gfldex left
garu hobbs: heya! long time no see :) 05:18
hobbs yeah 05:19
it's a nasty snowy day up here so I was just thinking that it should be OPW season right now
but sadly we don't have that anymore :)
05:29 skids joined 05:35 CIAvash joined 05:36 bjz left 05:47 Cabanossi left 05:49 Cabanossi joined 05:50 faraco joined 05:52 dugword left 05:59 khw left 06:11 CIAvash left 06:29 ggoebel joined
faraco hi guys, if I upload a perl6 to cpan, how to install it? Does cpan This::Module is enough to let it install under perl6 environment instead of perl5? 06:34
perl6 module*
06:36 floutenvy joined 06:46 bjz joined, floutenvy left 07:01 geekosaur left 07:02 geekosaur joined 07:09 araujo left 07:10 araujo joined, araujo left, araujo joined 07:11 rpburkholder left 07:13 mr-foobar left 07:14 mr-foobar joined 07:17 dugword joined
faraco hi 07:19
07:30 dugword left 07:31 floutenvy joined 07:33 astj joined 07:34 floutenvy left
faraco I don't understand about map function (basically in any language) 07:36
is it a functional routine?
because I'm not experienced with functional paradigm
when you should use map routine? 07:37
and when you should not?
07:39 faraco left 07:41 faraco joined 07:42 CIAvash joined 07:46 FROGGS joined 07:54 bwisti left, andrzejku joined 07:58 skids left
AlexDaniel faraco: basically, you need it if you have a list of values that you want to turn into another list of values :) 08:01
m: my @a = 5, 8, 40; say @a.map: { $_² }
camelia rakudo-moar f6303d: OUTPUT«(25 64 1600)␤»
CIAvash faraco: en.wikipedia.org/wiki/Map_(higher-..._function) 08:02
AlexDaniel my explanation is not very precise to be honest
faraco: and in fact, you don't really *need* it. You can always achieve the same result by other means 08:03
m: my @a = 5, 8, 40; say ($_² for @a)
camelia rakudo-moar f6303d: OUTPUT«(25 64 1600)␤»
AlexDaniel m: my @a = 5, 8, 40; say gather take $_² for @a 08:04
camelia rakudo-moar f6303d: OUTPUT«(25 64 1600)␤»
AlexDaniel hah…
m: my @a = 5, 8, 40; say @a»²
camelia rakudo-moar f6303d: OUTPUT«[25 64 1600]␤»
AlexDaniel m: my @a = 5, 8, 40; say @a X** 2 08:06
camelia rakudo-moar f6303d: OUTPUT«(25 64 1600)␤»
AlexDaniel m: my @a = 5, 8, 40; say @a »**» 2 08:07
camelia rakudo-moar f6303d: OUTPUT«[25 64 1600]␤»
andrzejku c++17 looks horrible 08:09
;d
AlexDaniel andrzejku: anything in particular? 08:10
andrzejku fold expressions? 08:11
AlexDaniel “Removal of trigraphs” hooray!
andrzejku std::clamp?:D 08:12
AlexDaniel andrewalker: come on, it does not look so bad 08:13
oops
andrzejku: ↑
08:26 faraco left 08:42 astj left 08:44 astj joined 08:48 rindolf joined
samcv [Coke], did you get it working? 08:49
08:49 sammers left 08:50 faraco joined 08:57 faraco left 09:03 sammers joined
TEttinger AlexDaniel: are trigraphs the octal char things that mess lots of char handling up? 09:04
09:06 wamba joined
AlexDaniel TEttinger: octal char things? No, it is a very “modern” feature that turns for example ??= → # just in case you have no # on your keyboard :) 09:07
TEttinger ouch 09:08
AlexDaniel TEttinger: en.wikipedia.org/wiki/Digraphs_and_trigraphs#C 09:09
imagine people at the time 09:10
TEttinger yeah
AlexDaniel “what? Your language has {} and \ and #, but I don't have these characters on my keyboard!”
ok-ok, fine! Here are some “texas” equivalents for you! 09:11
09:12 gfldex joined
AlexDaniel I hope people in ≈50 years will laugh at our texas ops just like we laugh at C trigraphs today 09:12
TEttinger ... except handled much worse than how perl6does it
can ??/ show up in perl 6 and be parsed as a newline?
like, inside a string?
AlexDaniel hmm what do you mean? 09:13
gfldex TEttinger: did you try to overload <ws> ? 09:22
TEttinger no, I just mean that trigraphs can do that in C++ before C++17 09:23
09:24 shayan_ left 09:27 domidumont joined
samcv i have never redefined whitespace for fun. can somebody point to me an article on how to do it 09:31
i have known you could be curious
09:31 domidumont left 09:32 domidumont joined 09:39 TEttinger left 09:43 xinming left 09:45 xinming joined 09:46 faraco joined
dalek ecs: 660070a | samcv++ | S15-unicode.pod:
S15-unicode, change .chars to .codes where this was actually intended

  `.chars` was used be all the examples output's specified the number of
codes. Use `.codes` in the example because of this
09:47
09:50 Tonik joined 09:58 geekosaur left
faraco quit 09:59
oops
09:59 faraco left
samcv quit 09:59
oops
09:59 DarthGandalf joined, DarthGandalf left, astj left 10:01 DarthGandalf joined, DarthGandalf left, geekosaur joined 10:02 DarthGandalf joined, DarthGandalf left 10:04 RabidGravy joined 10:05 aries_liuxueyang joined 10:06 espadrine joined
samcv Unicodey.chars 10:10
Unicodey.codes
Both are synonymous. Counts the number of codepoints in a Unicodey type.
i don't really like this
rakudo doesn't have Unicodey.chars anyway. but i don't think they should be synonymous it's confusing with Str.chars which does graphemes
10:16 DarthGandalf joined, DarthGandalf left 10:17 bjz_ joined, bjz left 10:18 DarthGandalf joined, DarthGandalf left 10:37 wololoooo joined
wololoooo Hello guys, 10:39
the syntax highlighting on perl6 docs are off in some cases
example: docs.perl6.org/syntax/loop 10:40
on the line with (loop ( my $i = 0; $i++ < 3;) { $i * 2 }).say; #-> "(2 4 6)"
kalkin-_ wololoooo: plz open an issue (if there isn't one already) @ github.com/perl6/doc/issues 10:41
wololoooo: BTW if you can fix it on your own, the #perl6 community will be happy to accept the patch
10:49 DarthGandalf joined
samcv wololoooo, if the highlighting is off please open here github.com/perl6/atom-language-perl6 10:49
or just tell me. since i'm the lead dev on that
wololoooo, ok i see the issue, but open a ticket here github.com/perl6/atom-language-perl6 10:50
wololoooo yeah the highlighting is off, the span has a string class which is incorrect 10:51
will open a ticket there
samcv yep i see that
thanks :)
10:53 ufobat joined 10:57 astj joined 11:05 zappa_ joined, zappa_ left 11:13 bjz_ left 11:14 bjz joined 11:24 labster left
wololoooo sub baa(@b is readonly) { @b= "b", "a", "a";} 11:45
my @b = 1, 2, 3;
baa(@b);
say @b;
The subroutine changes values in @b even though i made it read only, is this odd?
11:47 rpburkholder joined
gfldex wololoooo: the container is RO, not it's content 12:01
m: sub s(Seq $a){ $a[1] = 42 }; s([].Seq) 12:02
camelia rakudo-moar f6303d: OUTPUT«Cannot modify an immutable Nil␤ in sub s at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
gfldex wololoooo: ^^^ use a readonly container to have a readonly container
this is ENODOC 12:05
12:06 lukaramu joined, jraglin left 12:07 rurban joined 12:08 andrzejku left
dalek rl6-most-wanted: 61563bf | (Tom Browder)++ | most-wanted/modules.md:
add WIP
12:10
12:14 ufobat left
gfldex the reason of that ENODOC is bad structure of the docs 12:18
RabidGravy yeah, I think there probably needs to be a whole page on this thing 12:21
ah there is a containers page 12:22
but probably needs more inward linkage
gfldex I don't agree. In fact I believe we got to many pages already. 12:23
12:23 loredana joined
gfldex I have to work 'til 23 o'clock today and should have the time to write a plan down. 12:23
dalek c: efdae1d | kalkin++ | doc/Type/IO/Path.pod6:
Fix IO::Path::absolute return type to Str
12:25
c: 0012741 | kalkin++ | doc/Type/IO/Path.pod6:
Fix IO::Path::relative return type to Str
synopsebot6 Link: doc.perl6.org/type/IO/Path
c: 77aa498 | RabidGravy++ | doc/Type/IO/Path.pod6:
Merge pull request #1124 from kalkin/master

Fix IO::Path::absolute return type to Str
synopsebot6 Link: doc.perl6.org/type/IO/Path
12:25 loredana left
RabidGravy right, time to go to the supermarket 12:26
AlexDaniel but what's the point of 「is readonly」 then in this case? 12:28
if it is pointless but does not give a warning, then it is a bug 12:29
sorta
gfldex it can't give a warning because `is readonly` is the default
12:31 dugword joined 12:32 jraglin joined, xinming left 12:33 xinming joined 12:35 dugword left 12:37 xinming left 12:38 xinming joined 12:42 Stown joined 12:47 trnh joined 12:52 trnh left 13:07 rindolf left
garu is there a bug report already for "my %x; %x<x> = %x; say %x"? 13:11
moritz I'm not sure there is a bug 13:12
garu m: my %x; %x<x> = %x; say %x
camelia rakudo-moar f6303d: OUTPUT«(\Hash_61613856 = {x => Hash_61613856})␤»
garu oh, works now
garu is confused 13:13
m: my %x; %x<x> = %x; warn %x
moritz .Str will likely timeout
but I'm not sure that's a bug either
camelia rakudo-moar f6303d: OUTPUT«(timeout)»
13:13 rindolf joined
moritz .gist and .perl have some liberties about how to format stuff 13:13
.Str doesn't
13:14 tojo joined 13:15 tojo left
garu moritz: but... not even a warning? I mean 13:18
"infinite loop detected" or "circular reference" or whatever... it should hint the developer about what's going on, shouldn't it? 13:20
moritz I'm against expecting magic from all kinds of functions that should be really simple in nature 13:21
13:22 jraglin left, jraglin joined
notviki And I thought the halting problem was unsolved... 13:23
garu sure, but the way it is the program just hangs, without any indication whatsoever of what is going on, where and why :'( 13:24
moritz garu: you don't get any warning either when you write loop (;;) { } or stuff like that 13:25
at some point, programmers do have to think for themselves
garu I understand you're trying to make a point, but don't you think "loop (;;) { }" is a much more explicit infinite loop than "warn %x"? 13:26
notviki heh 13:27
garu: but you created a circular structure first.
What did you think would happen when you printed an infinitely repeating structure?
13:27 lucasb joined
moritz garu: more implicit ways to generate an infinite loop don't warn either 13:27
13:27 kurahaupo__ joined, bjz left
moritz for 4, 6 ... * -> $target { last if $target == any( (2..$target).grep(&is-prime) + (2..$target).grep(&is-prime)) } 13:29
will it terminate?
garu what about "Torment the implementors on behalf of the users"? 13:30
moritz garu: the problem is, if we add that detection, we torment the users too
lizmat garu: consider yourself tormented :-)
moritz garu: by making stuff slower
and more complicated, and thus much more likely to be buggy
notviki garu: well volunteered! When you have the solution, let us know: en.wikipedia.org/wiki/Halting_problem 13:31
garu maybe it's just me still with a perl5 way of thinking... because circular references in perl5 did not behave that way... or maybe they just broke in different ways
notviki: you don't have to be sarcarstic about that, I'm just trying to help
:(
moritz garu: but they did 13:32
garu: when you tried to print their contents while recursively descending, they also loop infinitely
garu: and that's what the stringification with warn() does
garu: if that's not what you want, then you shouldn't stringify it
notviki garu: I don't see the help. You've made an infinite loop and are complaining that we haven't solved the halting problem for you and you want us to implement all sorts of heuristics with the excuse that you have the right to torment us based on some slogan you heard. 13:33
13:33 rafsch joined
notviki And after how many iterations would you warn exactly? Maybe my object's .Str gives a different value after a million calls? 13:35
13:39 ocbtec joined
garu notviki: why are you being so agressive? I'm just talking about how I expected a (broken) code that generates an infinite loop to warn the user. This is me trying to help. If you don't see the value in giving feedback, then yeah, you won't see the help :( 13:39
13:39 Stown left 13:40 Stown joined
moritz garu: if you find a way to make it behave in a more sensible way without making stringification much slower, that would be very much appreciated 13:40
garu moritz: thank you!
moritz garu: but that's a tall order, which is why we try to push back against that expectation
garu that's ok
13:40 Gasher joined
garu I understand right now you're trying to make things much faster 13:40
and for one I really think you are doing an excelent job 13:41
in that particular case, it struck me that "say" worked but "warn" didn't
but you mentioned it's because of the implementation, is that correct? 13:42
13:42 AlexDaniel left
lucasb both .gist and .perl already have this protection against cyclic data structures, no? 13:42
moritz lucasb: they have; but they are typically used more for debugging, so performance isn't as critical
lucasb can someone benchmark the difference between .gist/.perl and .Str? I guess the proctection won't incur in much performance penalty, no? 13:43
moritz lucasb: youc an, yes
13:44 Stown left
garu in perl5 there is a "deep recursion" warning. it is super hard to implement something similar without a big performance penalty in perl6? 13:44
moritz you could try 13:45
garu also, hi lizmat! sorry, didn't catch you there :D
rafsch Is garu going to try and discover a way to tell if a program will stop or continue forever? 13:46
notviki So we're changing the core behavior of .Str now? 13:47
moritz rafsch: no, just detect cyclic data structures
notviki garu: I'm aggressive because literally every day someone comes here and starts complaining about some edge case. They don't want to do any work. They just whine. And worst of all, at the end someone goes and does implement the suggestion without first carefully weighing in the impact in the rest of the language. 13:49
For example lucasb above is already contemplating adding .gitseen into .Str. 13:50
lucasb contemplates adding .gitseen into .Str
(just kidding) 13:51
notviki leaves to hack on robots
lizmat lucasb: brrrr 13:53
garu: no problem 13:54
but there are some things in Perl 6 that we consider to be a problem of the user, at least for now
there are too many other things still that will bite newbies sooner 13:55
and sometimes we have to do things we don't like
notviki The hang in my %x; %x<x> = %x; warn %x isn't in Str; it's in .pairs.join 13:56
lizmat like just now I needed to make .grep( {...} ) about 1.4x slower
notviki m: my %x; %x<x> = %x; %x.pairs.join
camelia rakudo-moar 362f67: OUTPUT«(timeout)»
notviki m: my %x; %x<x> = %x; eager %x.pairs 13:57
camelia ( no output )
13:57 cdg joined
notviki I guess it is in Str 13:57
s: :42a, 'Str', \()
SourceBaby notviki, Something's wrong: ␤ERR: Cannot resolve caller sourcery(Str, Capture, :a(Int)); 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␤␤
lizmat yup, join does a .Str
notviki s: "a" => 42, 'Str', \()
SourceBaby notviki, Sauce is at github.com/rakudo/rakudo/blob/f630...air.pm#L50
lucasb my $p; $p = a => $p; $p.Str # other spelling 13:58
lizmat m: mt $p; $p = a => $p; say $p # and gist ? 14:00
camelia rakudo-moar 362f67: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Variable '$p' is not declared␤at <tmp>:1␤------> 3mt 7⏏5$p; $p = a => $p; say $p # and gist ?␤»
lizmat m: my $p; $p = a => $p; say $p # and gist ? 14:01
camelia rakudo-moar 362f67: OUTPUT«(\Pair_73795152 = a => Pair_73795152)␤»
notviki m: my $p; $p = a => $p; say $p.perl 14:02
camelia rakudo-moar 362f67: OUTPUT«(my \Pair_64104304 = :a(Pair_64104304))␤»
notviki m: my $p; $p = a => $p; say $p.perl.EVAL.perl
camelia rakudo-moar 362f67: OUTPUT«:a(Mu)␤»
14:02 kyan joined
lucasb right, .perl emits invalid output, but at least it shows the cyclic nature of the pair object 14:03
notviki m: dd my \Pair_64104304 = :a(Pair_64104304)
camelia rakudo-moar 362f67: OUTPUT«:a(Mu)␤»
notviki m: dd my $Pair_64104304 = :a($Pair_64104304)
camelia rakudo-moar 362f67: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Cannot use variable $Pair_64104304 in declaration to initialize itself␤at <tmp>:1␤------> 3dd my $Pair_64104304 = :a($7⏏5Pair_64104304)␤ expecting any of:␤ term␤»
notviki lucasb: .perl.EVAL is meant to roundtrip 14:04
m: my %p; %p = a => %p; say %p.perl
camelia rakudo-moar 362f67: OUTPUT«(my \Hash_67498832 = {:a(Hash_67498832)})␤»
notviki m: my %p; %p = a => %p; say %p.perl.EVAL.perl
camelia rakudo-moar 362f67: OUTPUT«{:a(Mu)}␤»
notviki :(
m: dd my %Hash_67498832 = {;:a(%Hash_67498832)}() 14:05
camelia rakudo-moar 362f67: OUTPUT«Hash %Hash_67498832 = (my \Hash_62542480 = {:a(Hash_62542480)})␤»
lucasb @a.perl and %h.perl also suffer the same problem 14:06
14:06 faraco joined
faraco hi, why creating and using a custom operator is slow? 14:06
14:06 Actualeyes joined
lizmat because you're installing a new grammar 14:06
lucasb but I don't know if it would be reasonable for .perl to output 2 statments, one to declare and other to assign
moritz faraco: because it has to derive a new grammar
notviki faraco: it should be slow only creating it. Because we need to recalculate the grammar. But, stick it into a module so it gets precompiled and the slowdown won't be noticable 14:07
faraco so, what makes the its slow, because of the compilation? but in runtime, is actually same as calling other subroutines? 14:08
by runtime, I meant using it from module
notviki lucasb: I don't see a problem with that. The goal of .perl is to provide a structure that can be EVALed to get the original back. If the only way to get that for circular structures is to output to statements, so be it
lucasb notviki: ok, agreed 14:09
maybe some output like... 'my %h = do { my %h; %h = :a(%h) }' ? 14:10
my $p = do { my $p; $p = :a($p) }
notviki faraco: try it out and see and use one of the latest compilers. A year ago, the slowage was so bad I moved my 16 operators to a separate module (github.com/zoffixznet/perl6-Color/...ators.pm6) but I recall someone pointed out that due to precomp the slowage is no longer there.
lucasb: that doesn't look circular to me :P 14:11
14:11 aborazmeh joined, aborazmeh left, aborazmeh joined
notviki m: my $p = do { my $p; $p = :a($p) }; $p.Str 14:11
ah ok
camelia rakudo-moar 362f67: OUTPUT«MoarVM panic: Memory allocation failed; could not allocate 121088 bytes␤»
lucasb oh, it didn't timeout'ed 14:12
notviki But it's prolly circular over the wrong thing, innit? It's circular with the closed over $p, not itself
notviki & 14:13
faraco notviki: I installed last day. I think, it's noticeable because of my lower amount of total RAM. 14:14
notviki faraco: but is it in a precompiled module? 14:17
14:17 aborazmeh left
notviki It'll still be slow on first run after you make changes to that module, because it'll be re-compiled, but further runs should be faster 14:18
faraco I just wrote them in a script. I don't know to actually compile a module. just `perl 6 blah.p6`.
notviki faraco: just stick them into Foo.pm6 and stick `is export` on them, like here: github.com/zoffixznet/perl6-Color/...ors.pm6#L5
faraco: and then run perl6 -I. -MFoo.pm6 blah.p6 (or stick use lib <.>; use Foo; in your script) 14:19
And on first run, that'll precompile Foo.pm6 and next runs should be faster
faraco let me try that and see the result
ls 14:23
oops
14:24 Khisanth joined 14:25 astj left
faraco erm, what differs between unit module and unit package? 14:25
is package for class?
notviki No, for class it's unit class 14:26
faraco so, either one is fine?
notviki No idea about module/package
You don't need any of them really. Just stick your operators into the file with `is export` trait and they'll get exported.
moritz a package is a stub that can be be later turned into a class, module, grammar or role
faraco oh, okay. I'll try that. 14:27
14:33 drrho left
faraco notviki: I'm actually don't really understand how to export the prefix, and using them. Running perl6 blah.p6 (after created the Foo.pm6) shows nothing. 14:35
Fortunately, I notice that running the perl6 t.p6 twice and more, faster
than running them with prefix in the same script.
#!/usr/bin/env perl6 14:36
multi prefix:<wix> (Str $arg) is export {"$arg, you are cool" }
exit;
is that right?
and I try to use them with
use lib <.>;
use Foo;
say wix 'Jim';
the last 3 lines are blah.p6 14:37
notviki: okay my bad. the exit in the module is the cause of that. 14:39
I think it return $? instead of the string hardcoded in the module.
notviki tries a test 14:40
... and it might've been a bad idea to do it with 100 custom operators :/
faraco oh, that gonna be *really* slow. 14:41
notviki First comp: real 1m20.189s
Second run: real 0m1.471s
faraco is that using `time`?
notviki My hypothesis holds
Yes, time
faraco let me check on mine
notviki This is the two files I used. Both in the same directory: gist.github.com/zoffixznet/9fde0b3...af14559905 14:42
And I ran them with: time perl6 script.p6
faraco erm, a quick question, which row to use for comparing the time?
there is real, user and sys
notviki No idea. I usually go by "real" 14:43
faraco ah, okay. let me try
time perl6 t.p6
oops
first run, 0m1.659s
second run, 0m1.593s 14:44
well, a little bit faster, I guess, but with more than one, is gonna be painful to load.
notviki Just on compilation :) 14:45
14:46 lucasb left
faraco yeah 14:46
well, there always room for rakudo to improve
last question, is rakudo finally declared as official compiler? 14:47
because, google won't help. Traffic to the language is pretty low, (because of perl is dead doctrine)
notviki faraco: no, and it never will be.
faraco what...erm. never? 14:48
why? internal issues?
kalkin-_ m: class A { has $.foo = "asd" }; class B { has $.bar = $!foo ~ " foo"}; say B.new.bar;
camelia rakudo-moar 905242: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Attribute $!foo not declared in class B␤at <tmp>:1␤------> 3}; class B { has $.bar = $!foo ~ " foo"}7⏏5; say B.new.bar;␤ expecting any of:␤ horizontal whitespace␤ postfix␤ …»
notviki faraco: no, by design. There isn't any "official" compilers. Any compiler that passes the Perl 6 Specification test suit is a perl6 compiler.
kalkin-_ how do i access attributes of the parents class?
14:49 gcole left
faraco notviki, thanks for all help. 14:49
notviki No problem
kalkin-_: $.foo
kalkin-_ m: class A { has $.foo = "asd" }; class B { has $.bar = $.foo ~ " foo"}; say B.new.bar;
camelia rakudo-moar 905242: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Virtual method call $.foo may not be used on partially constructed object (maybe you mean $!foo for direct attribute access here?)␤at <tmp>:1␤------> 3o = "asd" }; class B { has $.bar = $.foo7⏏5 ~ "…»
notviki kalkin-_: missing `is A` on B 14:50
m: class A { has $.foo = "asd" }; class B is A { has $.bar = $!foo ~ " foo"}; say B.new.bar;
camelia rakudo-moar 905242: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Attribute $!foo not declared in class B␤at <tmp>:1␤------> 3ass B is A { has $.bar = $!foo ~ " foo"}7⏏5; say B.new.bar;␤ expecting any of:␤ horizontal whitespace␤ postfix␤ …»
notviki m: class A { has $.foo = "asd" }; class B is A { has $.bar = $.foo ~ " foo"}; say B.new.bar;
camelia rakudo-moar 905242: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Virtual method call $.foo may not be used on partially constructed object (maybe you mean $!foo for direct attribute access here?)␤at <tmp>:1␤------> 3asd" }; class B is A { has $.bar = $.foo7⏏5 ~ "…»
notviki m: class A { has $.foo = "asd" }; class B is A { has $.bar = self.foo ~ " foo"}; say B.new.bar; 14:51
camelia rakudo-moar 905242: OUTPUT«asd foo␤»
14:51 dugword joined, dugword left, dugword joined
kalkin-_ ahh `self` it is 14:51
notviki: thanks
notviki m: class A { has $.foo = "asd" }; class B is A { method bar {$.foo ~ " foo"}}; say B.new.bar;
camelia rakudo-moar 905242: OUTPUT«asd foo␤»
14:55 jebes joined, newbie1 joined
jebes is there an equivalent to class variables in perl6? Right now i'm wrapping the code in a module with the variables i need access to. 14:56
notviki jebes: use `my` instead of `has`
jebes notviki: aaah. thanks
Shame i still don't grok OOP even after 7 years of programming :(
i've been poisoned by haskell and fp wizardy 14:57
notviki m: class Foo { my $.bar }; my $o1 = Foo.new: :42bar; my $o2 = Foo.new; say $o2.bar; $o2.bar = 72; say $o1.bar
camelia rakudo-moar 905242: OUTPUT«(Any)␤72␤»
notviki :o
14:57 cdg left
notviki m: class Foo { my $.bar }; my $o1 = Foo.new: :42bar; say $o1.bar; my $o2 = Foo.new; say $o2.bar; $o2.bar = 72; say $o1.bar 14:58
camelia rakudo-moar 905242: OUTPUT«(Any)␤(Any)␤72␤»
notviki I guess constructors don't init those....
faraco whoa, meta operator seems like lisp like operator
[*] 4, 3 == (* 4 3) 14:59
15:04 iH2O joined 15:07 drrho joined
rafsch jebes: See if this does it for you: lwn.net/Articles/444910/ 15:07
jebes rafsch: I understand how OOP is implemented and why its useful, I just can't apply it properly, prefering more functional abstractions 15:14
rafsch How would you implement the VFS? 15:15
jebes I think its just a load of boilerplate without much pay off. Just pass me a function :^)
rafsch Which is what the kernel is doing. 15:16
jebes I suppose.
rafsch "Just pass me a function" is easy to say, but OOP makes it easier to have pluggable modules. 15:17
It's about interfaces to "pass functions".
15:18 Actualeyes left
rafsch When all the code is in your own control, interfaces don't matter much. 15:18
15:18 iH2O left
jebes True. 15:18
rafsch The VFS has a reference object that has the interface it expects. Anyone implementing a file-system has to implement at least the bits VFS relies on. 15:19
jebes I guess, more or less, what I struggle with isn't so much OOP, as it is the limit of its abstraction.
rafsch In OOP parlance, this is called a "is-a" relationship. 15:20
Most languages have syntactic sugar to make that easier.
jebes How would you go about implementing monoids in oop? I suppose a role in perl6 would do it. But the syntax always ends up funky. 15:21
i'd much prefer a <> b <> c to a.app(b.app(c))
15:22 rurban1 joined
jebes So i guess what i'm saying is: multi methods are p good 15:22
15:22 gcole joined
rafsch Oh, I'm not in any way an OOP purist. Some things are better to do using OOP and others not. 15:22
jebes rafsch: Yeah, I would agree. Sometimes it makes sense, other times it doesn't. 15:23
Its a heavy-weight solution imo.
15:23 domidumont left 15:24 bwisti joined 15:25 rurban left 15:28 zakharyas joined 15:29 pierrot left
rafsch It is as heavywheight as you make it to be. Just don't force it where it doesn't belong. 15:30
15:30 pierrot joined 15:32 rurban joined, rurban left
RabidGravy I had a thought earlier regarding DBIish, would it be an idea to move it into a separate organization from perl6 (say perl6 database or something,) ? 15:34
15:35 rurban1 left
faraco is it okay to PR a working module, but maybe not useful like Acme::Bleach to Perl 6 repo? 15:35
RabidGravy the advantage of doing this as I see it is that it can provide a separate incubator for new DBDish drivers and means that people can be given commit rights who may have no interest in the rest of the stuff
faraco, as long as it installs and isn't breaking any laws, sure 15:36
so make the PR, as long as it looks sane then it'll get merged 15:37
faraco RabidGravy: thanks for the information. Now I can *happily* practicing through making modules (and PR them too)
RabidGravy the more the merrier :) 15:39
faraco I read that, the repo is temporary. So what is the future solution to this? CPAN?
notviki yeah
faraco okay, I also read that you can upload perl 6 modules to CPAN right now (with special requirements) 15:41
but how about the installation?
cpan perl6::blah::blah will install them under perl 6 environment?
rafsch zef --cpan 15:42
faraco ah, now it makes sense. Thanks everyone for helping!
El_Che is zef --cpan a thing? wow 15:47
RabidGravy ugexe++ never realised that
okay that's the way to be going
I'm going to stick an issue on the DBIish regarding moving it into its own organisation 15:48
rafsch I'm lobbying to make --cpan the default on zef. 15:50
notviki :/
So we get outdated modules?
15:51 mr_ron joined
rafsch The other way around will still be readily available. Users don't use the word "outdated", they prefer to call them "stable". 15:52
El_Che go is working hard to fix their broken-get-the-latest-version-from-github-libs
notviki Except they aren't stable. The releases are automated from whatever commit just happened to be there during the release run
El_Che (go get)
15:53 pierrot left
mr_ron m: grammar g {our $bleh is export = 12; sub blah is export { 14 }; token t is export {<[2]>}}; import g; say $bleh; say blah(); say "2" ~~ /<t>/ # any way to export rules/tokens? 15:53
camelia rakudo-moar 905242: OUTPUT«12␤14␤Type check failed in binding to <anon>; expected g but got Cursor (Cursor.new)␤ in regex t at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
rafsch "get-the-latest-version-from-github-libs". Yep, this is not a good thing for users. If CPAN doesn't do it, we need something that does. 15:57
15:57 pierrot joined
notviki m: my token t {<[2]>}}; say "2" ~~ /<t>/ 15:58
camelia rakudo-moar 905242: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unexpected closing bracket␤at <tmp>:1␤------> 3my token t {<[2]>}7⏏5}; say "2" ~~ /<t>/␤»
notviki m: my token t {<[2]>}; say "2" ~~ /<t>/ 15:59
camelia rakudo-moar 905242: OUTPUT«「2」␤ t => 「2」␤»
notviki m: grammar g {our $bleh is export = 12; sub blah is export { 14 }; token t(Any:) is export {<[2]>}}; import g; say $bleh; say blah(); say "2" ~~ /<t>/
camelia rakudo-moar 905242: OUTPUT«12␤14␤「2」␤ t => 「2」␤»
RabidGravy In principle I agree with the above, however I have 55 (maybe 61) modules and now tool to prepare a CPAN distribution
El_Che rafsch: I was really exited about go's announcement that the core people realize they need to fix it 16:00
RabidGravy so making --cpan the default will mean none of my modules are available
notviki RabidGravy: isn't ranguard uploading them all with a script?
RabidGravy and there are inactive authors and so forth
notviki Hence my comment about outdatedness
Last year, I recall seeing the entire ecosystem on CPAN with versions 0.000000 or somethign so if authors decide to start uploading to CPAN they can 16:01
El_Che I agree that "right-away" is not an option
faraco in perl 6 regex, if I use :P5, do I basically can use 100% perl 5 regex grammar?
notviki faraco: nope, lots of things don't work
faraco notviki: aww
RabidGravy *but* most things will tell you that have done something P5ish that don't work and suggest a way to fix it 16:02
rafsch faraco: if you have a complicated P5 regex, you should be excited to do it the other way around, translating it.
kalkin-_ from yesterdays discussion about META6 & Distributions I took away that Distributions should be called App-Foo while modules App::Foo. But I see that S22 provides an example for name saying it should match the main module 16:03
faraco well, idiom perl 6 then ;)
kalkin-_ is S22 just obsolete?
faraco idomatic*
notviki kalkin-_: speculations are historical documents, but with S22 as I know it it's pretty much accurate. We haven't really locked all of this stuff down yet. 16:04
In the last coverage report I seen all the CUR stuff was essentially unspecced (in roast)
RabidGravy kalkin-_, the distribution name can be *anything* however best practice would be that it is the name of the main module 16:05
which is why Test::META warns if it has a hyphen in it
rafsch Is it the same distinction between a package and the binaries that come in it? 16:06
RabidGravy after all most people are going to do "zef install <some module>" and expect it to work
CPAN does a lookup from the distributed package name to the module name and vice versa, but we don't do that yet 16:08
16:08 ggoebel left
kalkin-_ k 16:09
thanks
RabidGravy which is I still get hate mail from rule fixated packagers and sysadmins that the package name of Term::ReadKey is TermReadKey
notviki mr_ron: ^ not sure if you saw it above. Basically automatic invocant is the grammar, I guess, so to make that work you need to specify something less specific
mr_ron notviki: I did see it and was looking to answer ... 1 min ... 16:10
kalkin-_ What if i have a distribution which provides some other implementation of App::Foo. Would i then use the :ver and :author adverbs to distinguish them?
And what if I ship with a distribution which ships two different versions of same api (so versioning compunits instead of the whole Distribution)? 16:11
mr_ron notviki: that works for people who understand (I would claim somewhat obscure) explicit invocant parameters. Is there room for improvement / an easier, simpler way for how that export declaration worked? rakudobug?
kalkin-_ Wouldn't it be better to decouple Distribution::Name and MainModule::Name? 16:12
may be via a field in META6,json setting the main-module?
hmm, but this would clash with having two differently versioned main modules in same distribution 16:13
notviki mr_ron: as I recall it, what you can use in bare regexes is very limited. So I'd call that method a hack, rather than part of normal API, TBH
Tokens are meant to be for grammars
m: my token t ($x) { <[2]> {say $x} }; say "2" ~~ /<t: 42>/
camelia rakudo-moar 905242: OUTPUT«42␤「2」␤ t => 「2」␤»
notviki hm
kalkin-_ I think I don't understand why Distribution.name should be coupled to the main module name? (Besides convenience for user search) 16:14
notviki mr_ron: I guess it wouldn't hurt to rakudo bug it and see what someone who knows this stuff things of it
mr_ron notviki: will ponder rules/tonkens meant for grammars a bit before emailing bug report. Makes sense but may be other cases. 16:16
notviki: thanks
rafsch "Besides convenience for user search". Users won't search for it in any other way. If it doesn't match, they will never find it. 16:17
kalkin-_ rafsch: user will use some tool for search be it modules.perl6 or zef
actually zef handles both
rafsch See how people really hated debian for distributing node as nodejs and docker as docker.io. 16:18
kalkin-_ rafsch: that is part of the reason why we should distinguish between distributions and provided CompUnit names
so if I do use Foo:ver<3> I don't need to care which distribution zef ends up installing to satisfy this dependency 16:19
rafsch Well, it's nice if zef does it, but it's not the only distribution method people will use. 16:21
kalkin-_ well when people implement their distribution methods the would read S22 (I hope)
s/the/they
rafsch They're already implemented. 16:22
kalkin-_ rafsch: is there something out there besides panda & zef?
16:22 iH2O joined
rafsch apt, dnf, pacman 16:22
msi 16:23
iH2O dnf install pacman
kalkin-_ rafsch: I don't see how this should be solved by perl6
samcv so is the plan to eventually useq CPAN proper, or to like have a cpan6 type thing? 16:24
rafsch We don't have to solve it, we just have to follow their expectations that the distribution will have the name people expect.
kalkin-_ if you deploy perl6 as part of your os, you would also implement some kind of plugin to your package manager which can resolve stuff Perl6 needs to be first class citizen. If not there is always user installable package managers
rafsch There was some talk about doing it, but what would be done is automatic packaging of modules. Which means which name it has is even more important. 16:25
16:26 ggoebel joined
kalkin-_ ugexe: are you reading this? 16:27
iH2O i tried to install rakudo one month ago on fedora using dnf and that worked fine...except it installed 2016.07
16:28 pmurias joined
kalkin-_ rafsch: apropos the distribution will have a name people expect. Fedora shipped/ships with 2 pycrypto implemetations and AFAIK there is a 3-rd one in pip, and they all slightly differ from each other 16:29
of course you can't install both in parallel
This is a problem as well on the yum/dnf side as on the programming language side. Perl6 solved the programming language part, you can specify same version different implementations. 16:30
notviki RabidGravy: ssh -o TCPKeepAlive=no -nNTR 8888:localhost:8888 zoffix@server still didn't do it... Or at least it didn't survive overnight....
kalkin-_ If i can't use/install different versions/implementations of same package then your package manager is broken 16:31
s/package/unit/g
(because package in perl6 world is Distribution) 16:32
pmurias rafsch: people hated debian for distributing node.js as nodejs because they broke node.js
rafsch kalkin-_: package managers do support installing multiple versions of a package on a technological level. It's the policies of the distributions that forbid it.
iH2O how can i choose which rakudo version to install on fedora? it seems the only choice is 'dnf install rakudo-star.x86_64'
RabidGravy kalkin-_, rather than use language like "your package manager is broken" maybe it's actually provide a working improvement?
iH20 I think it's on 2016.11 at the moment, I just use rakudobrew 16:33
iH2O wow
kalkin-_ RabidGravy: I don't care about perl6 packages beeing shipped with dnf/apt/WHATEVER
iH2O i've already installed it
by hand
rafsch They don't allow multiple versions because they take an implicit obligation to give support. And they don't want to support more versions than they have to. 16:34
RabidGravy yep
rafsch Perl 6 is still Perl, if you guys abandon the strenghts Perl5 has, might as well give up. 16:35
kalkin-_ rafsch: what kind of strength do you mean in this case? 16:36
rafsch Support for old code.
16:37 girafe joined
kalkin-_ rafsch: btw couldn't you have support for old code by just replacing :: with - on rpm generation? The specific version and implementation and may be even multiple of it are still up to the maintainer 16:38
rafsch Well, backporting patches, providing fixes for problems that went away instead of recommending people upgrade, keeping support for old feature-sets, etc. 16:39
kalkin-_ :ver adverb could be probably encoded in the version field of the dnf/apt version manager, how to match :auth would be version manager specific if they even provide multiple versions
16:39 aries_liuxueyang left
kalkin-_ rafsch: also there is currently no legacy code, that needed to be migrated to some other schema 16:40
If there're distributions packaged via rpm, the maintainer of them still has to check the distribution name string, because currently both are used in the wild 16:41
pmurias are we really planning to make the :auth work as the the user chooses his variant of the package mechanism? 16:42
kalkin-_ but may be I'm just bikeshading
16:43 iH2O left 16:44 dudz left
rafsch kalkin-_: I'm not asking for anything right now, what you guys are doing is fine. It's just something to keep in mind. 16:46
"the maintainer of them still has to check the distribution name string, because currently both are used in the wild". Yes, it would be nice if this could be automated, that's all. 16:47
RabidGravy For discussion github.com/perl6/DBIish/issues/84 16:49
faraco guys, when installing module from perl6 repo that has executable script in bin 16:53
why the PATH to those scripts are not in system PATH?
it only seems, in $HOME/.rakudobrew/bin
~/.rakudobrew/moar-nom/install/share/perl6/site/bin$
seems left out 16:54
moritz we can't seem to install to /bin usually :/
notviki faraco: you need to run `rakudobrew rehash`
moritz have you read rakudobrew's README?
faraco no, I don't. I think it's something wrong with my installation. 16:55
well
nevermind then
notviki heh
RabidGravy rakudobrew does something with the things in bin that may not be what you want
stmuk "it's shims all the way downn" 16:56
RabidGravy yeah
faraco ah 16:57
SmokeMachine masak: I was reading your blog and wandering: do you think is it possible to have something like it? sub my-if($expresion, &block) is using-xblock-and-breaking-ttiar {...}; my-if 1 == 1 { say "ok" }
16:58 andrzejku joined
rafsch SmokeMachine: That's what macros are for. 16:58
SmokeMachine rafsch: yes, but I was thinking on function traits... 17:00
RabidGravy three features of Perl 6 I was quite excited about and haven't actually used at all are user defined terms, macros and partial application
SmokeMachine, function traits are do-able 17:01
I've got examples all over the place
rafsch SmokeMachine: Macros can be traits, like "is parsed". 17:02
RabidGravy the thing to bear in mind is that with a trait you have control of the thing that the trait is on at a <hand wave> early stage in compilation 17:03
so you can do basically what you want
17:06 pmurias left
rafsch predicts that when macros are released people will want to reimplement most of the language with them just for the bragging points. 17:09
SmokeMachine Another question: what is it for the Slang class? 17:14
RabidGravy and most of the time they will be using macros which would be better done using other language features 17:15
17:15 Actualeyes joined
RabidGravy SmokeMachine, which Slang class? 17:15
I actually meant to bring this up before
m: slang Foo { }
camelia rakudo-moar 905242: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Cannot resolve meta-object for slang␤at <tmp>:1␤------> 3slang Foo7⏏5 { }␤ expecting any of:␤ generic role␤»
notviki src/core/Slang.pm 17:16
RabidGravy the parser understands slang, but just leaves the whole thing in the lurch
SmokeMachine RabidGravy: github.com/rakudo/rakudo/blob/beec...e/Slang.pm 17:17
RabidGravy well that appears to do precisely jack 17:18
rafsch NIY
?
RabidGravy if someone had some intent for it, it should be documented somehow
SmokeMachine m: say Slang.new 17:19
camelia rakudo-moar 905242: OUTPUT«Slang.new(:grammar(Any), :actions(Any))␤»
ugexe there are 3 slangs inthe ecosystem
RabidGravy yah but even if you populate the attributes it doesn't do anything as far as I can tell 17:20
17:21 Actualeyes left
SmokeMachine I was hoping that the slang class would mixin the grammar and the action for me... 17:21
rafsch The commit message says: "Initial stab at getting $~Vars to work "
RabidGravy if you want to implement a slang *right now* look in the ecosystem for current implementations 17:22
SmokeMachine RabidGravy: yes, I did...
RabidGravy right 17:23
ugexe kalkin-_: Distribution name is not tied to a main module name, why do you think it is? 17:24
you can create a Distribution Foo::Bar that has no Foo/Bar.pm6
if you mean why do people use '::' in their distribution name thats a different question 17:25
RabidGravy I'm not sure it would be that difficult to make "slang Foo { }" work, just give it a HOW type that does all the magic that people do in the EXPORT currently in its compose
or something like that
ugexe, the question is what is the expectation of some users is that they give a module name to the installer and it installs that 17:26
CPAN does a lookup so you can supply either a package name or some module name within the package but we can't do that right now 17:27
ugexe yes you can
RabidGravy can you? 17:28
ugexe yes
RabidGravy github link or it didn't happen
17:29 domidumont joined
ugexe github link to what exactly? 17:29
[zef|panda] install URI::Escape 17:31
installs URI
rafsch Distros have a plan to package all of CPAN automatically, the package name then would be something like liburi-perl6? 17:34
ugexe packagers have way bigger problems than what you guys are goign on about 17:35
how do you handle module names (or even *versions*) with unicode in them?
17:36 khw joined
ugexe apt-get install lib[poop-emoji]-perl6 17:36
rafsch "Package names must consist only of lower case letters (a-z), digits (0-9), plus (+) and minus (-) signs, and periods (.). They must be at least two characters long and must start with an alphanumeric character. " 17:37
That's debian's policy.
ugexe thats my point 17:38
rafsch "lib[poop-emoji]-perl6" is not valid even.
ugexe thats my point
faraco guys
I got this error
pastebin.com/XFTF3eu9
while running test 17:39
on META.info
rafsch ugexe: I'm complementing what you said.
faraco what is wrong with my META.info?
I use Module::Minter
ugexe first, try to fit all of that into 1 sentence because its hard to follow on 10 different lines in here 17:40
secondly your META.info in that gist cannot be the entire thing
faraco ah my bad, forgot to copy the last character, } 17:41
ugexe there is no closing }, and if thats all you are missing then your JSON is still not valid because provides { }, should not have a comma after it if its the last thing
faraco there is } 17:42
ugexe read the part after that
faraco nothing else. that is the last thing
17:43 zakharyas left
ugexe can you summarize what i just told you to check? 17:43
mst faraco: you (a) have a comma that shouldn't be there (b) are missing a }
faraco oh, my bad for misunderstood. yeah, now the error is more detailed after removing the comma 17:45
17:46 wololoooo left
ugexe you probably should s{lib//}{lib/} as well 17:47
if Module::Minter generated that then its wrong
17:48 wololoooo joined, rafsch left
faraco okay fixed it. Module::Minter, generate "author" instead of "authors" made the test return error. 17:50
also it doesn't have the "perl" :
well, it's not updated, so my bad.
the Module::Minter*
17:52 rafsch joined 17:58 gcole left
kalkin-_ ugexe: S22 The name identifying this distribution. This is usually the name of the main module that this distribution provides. An example of this would be: 17:59
"name" : "JSON::Fast"
ugexe "usually" 18:02
kalkin-_ ugexe: right so every one does it, while I thought it may be better to say: usually your main module with hyphens. so people get used to the destinction between distribution and a module 18:04
ugexe zef has "name" : "zef" but provides "lib/Zef.pm6" (not lib/zef.pm6). Another step further is Net::HTTP has no lib/Net/HTTP.pm6 - if you install this and `use Net::HTTP;` you do get a LTA error
18:05 Geth joined
notviki So, who's up for a bit of spam to see the new bot? :) 18:05
18:05 mr_ron left, Geth is now known as Guest84397
notviki Here's how it'll show pushes with 3 or fewer commits: 18:05
Guest84397 th-test/moew-branch: 8b986f1ec7 | (Zoffix Znet)++ | README.md
meow1-0.381293480954163

meow3
notviki And here's how 3-10 commits would look like:
Guest84397 th-test/moew-branch: 4 commits pushed by zoffixznet++ 18:06
notviki And here's how 10+ commits would look like:
18:06 curt_ joined
Guest84397 th-test/moew-branch: 15 commits pushed by zoffixznet++
review: github.com/zoffixznet/geth-test/co...a1079ba845
18:06
notviki \o/
And too-long commit messages are abridged, so review link would still be present.
samcv foo foo foo 18:07
cool
notviki I'll also make it notify when a new PR is created
18:07 Guest84397 left
samcv cool 18:08
meow
ugexe kalkin-_: right, I would agree 18:11
18:11 espadrine left 18:12 domidumont left 18:13 shayan_ joined
notviki and it's only 120 lines of code :o 18:14
18:19 andrzejku left 18:21 faraco left
notviki shakes head 18:21
The TAP spec folks are somewhat tone deaf github.com/TestAnything/testanythi...-271167987 18:22
Users shouldn't need to be educated on the specifics of TAP :/
SmokeMachine RabidGravy: but is there specified a slang keyword? 18:26
Or you mean a module?
RabidGravy: but is there specified a slang keyword?
notviki m: use Test; ok 1, "foo\nbar\nber"; 18:28
camelia rakudo-moar 905242: OUTPUT«ok 1 - foo␤bar␤ber␤»
notviki :(
18:29 andrzejku joined
notviki m: use Test; ok 1, "foo\nok\nnok"; 18:29
camelia rakudo-moar 905242: OUTPUT«ok 1 - foo␤ok␤nok␤»
notviki so that'd blow the harness up :/ 18:30
18:30 AlexDaniel joined
AlexDaniel a lot of new names here. Nice to see 18:34
18:34 rafsch left 18:36 labster joined
AlexDaniel notviki: githubbabble? Nice. :D 18:37
18:38 shayan_ left
mst notviki: 'geth' appears to already be a user on freenode, and also you're using a new hostmask so the +v isn't working 18:39
18:44 raschipi joined
SmokeMachine Where's the slang keyword spec? 18:44
18:46 TEttinger joined 18:49 raschipi left
notviki mst: it's my user. It's just not using a password and I've no idea how to make nickserv NOT kick it off it 18:49
SmokeMachine: I don't think it's specced yet 18:50
AlexDaniel: dalek replacement
AlexDaniel good good
SmokeMachine notviki: :(
mst notviki: er. you turned ENFORCE on.
notviki: /msg nickserv help set enforce 18:51
notviki mst: yeah, I don't know how to turn it off
mst notviki: ... 'set enforce off' !
notviki Thanks :)
mst my superpower: reading the documentation
notviki :D 18:52
mst seriously though if you're ever confused by services, start off with '/msg thingserv help' and go from there
if you're still confused, just ask me, I'm your group contact to staff so everything is my fault anyway 18:53
notviki :D
Well, I see what I was doing wrong the first time I tried. I did /nickserv RELEASE
mst if you're still confused and either I'm not around or you don't feel like dealing with the inevitable sarcasm, ask #freenode and they'll give you six different answers of which at least two will probably work
notviki :)
AlexDaniel hoped that thingserv is a thing 18:54
mst heh 18:55
18:55 espadrine joined 18:56 labster left 18:57 Abeer joined 18:58 wololoooo left
dalek osystem: 1e900cf | faraco++ | META.list:
Update META.list
19:01
osystem: ad82afa | (Zoffix Znet)++ | META.list:
Merge pull request #282 from faraco/patch-1

Update META.list
notviki
.oO( where do people get the idea it should be named META.list instead of META6.json.... )
19:02
SmokeMachine RabidGravy: github.com/FROGGS/p6-Slangy/blob/m.../Slangy.pm
19:03 domidumont joined 19:04 dugword left 19:05 Abeer left 19:07 hartenfels joined 19:09 domidumont left
ranguard notviki: mostly yes I am, no clue how it will fit into p6 ecosystem, but no one was backing up the repos as far as I was aware 19:11
notviki cool 19:12
ranguard RabidGravy: cpan.metacpan.org/authors/id/P/PS/...STS/Perl6/ 19:13
your stuff will the in there
notviki huggable: cpan
huggable notviki, nothing found
notviki huggable: cpan :is: Perl 6 dists on CPAN: cpan.metacpan.org/authors/id/P/PS/...STS/Perl6/ 19:14
huggable notviki, Added cpan as Perl 6 dists on CPAN: cpan.metacpan.org/authors/id/P/PS/...STS/Perl6/
ranguard notviki: this should only be temporary.. until authors upload themselves 19:15
RabidGravy: I understood modules.perl6.org to be built from raw.githubusercontent.com/perl6/ec.../META.list 19:16
notviki ranguard: makes sense
ranguard ^^ anyone know different?
notviki ranguard: That's accurate
RabidGravy but there is an intermediate step 19:17
notviki No, modules.perl6.org uses that file, as far as I recall. 19:18
ranguard notviki: does it process the list in anyway (e.g. could osmething be in the list but not on the website) ? 19:19
RabidGravy but it doesn't just read the file and generate the page on every request
notviki ranguard: yes, could be. For example if the META url is a 404 or has a JSON error in it. 19:20
buggable: eco
buggable notviki, Out of 767 Ecosystem dists, 124 have warnings and 4 have errors. See modules.perl6.org/update.log for details
ranguard notviki: github.com/perl6/ecosystem/issues/255 is the context of why I'm asking
notviki: cool, so is there an output somewhere of the 'good' modules?
notviki huh 4 406s :S 19:21
ranguard doesn't want to impliment the validation
see my comments today at the end of #255
notviki: by output I mean a 'good list' - rather than having to parse a logfile 19:22
notviki ranguard: and by good you mean what?
ranguard well, for a start one without the 4 that have errors 19:23
do the ones with warnings make it to the site? 19:24
ranguard guesses they do
notviki ranguard: yeah, even ones with errors may still be listed if the error wasn't there when the module was first added to the site. The site keeps previous result for those, as GitHub connectivity errors are common. 19:25
ranguard: I'd say no, we don't have the list of good modules and can't have it, for the simple reason that we don't keep the code. For example, consider this scenario: I add a "good" module, it gets added to the list and a minute later I push a commit that breaks the entire META file. The list would still have it listed as good even though it's no longer true. 19:26
ranguard I'm only after good _now_, rather than some historical point
notviki So validating by fetching the code and checking it and only then packing that same code (without re-fetching) can you guarantee the module is "good" 19:27
ranguard the use of such a 'good now 'list is that others (like me) don't have to impliment the validation each time 19:28
notviki Well, I guess you could have the SHA commit as a reference point.
ranguard if something it's valid _now_ then it can't be installed, so isn't really any use to anyone?
notviki: github.com/perl6modules/perl6-modu...acker.json :) 19:29
ranguard is perl6modues :)
notviki The "valid now" is vague tho. If the script building that list catching github at downtime and fails to fetch 600 modules are those now "bad" or what?
s/catching/catches/; 19:30
ranguard if GH is down, they can't be fetched, if they can't be fetched they can't be installed
so they arn't 'valid'
notviki :S 19:31
RabidGravy I actually think the current PAUSE model that the author takes responsibility for the goodness at the time of upload
notviki But 1 minute later everything goes to normal....
19:31 rumble joined
RabidGravy I'd be quite happy to do normal pause uploads 19:31
ranguard RabidGravy++ # far the best solution
notviki: so then when I next run my code I'll get the 'valid' list 19:32
notviki: this is about centralising the validation rather than expecting it to directly effect the output on modules.perl.org 19:33
19:33 faraco joined
RabidGravy I actually think the better effort would be to make it easier for Perl 6 authors to do this 19:33
ranguard and it's all (hopefully) a stopgap until P6 authors use PAUSE or something
faraco moritz: thanks for the invitation! I appreciate that!
19:34 grumblebee joined
mst right 19:34
at some point we need to replace the duct tape and baling wire that is the "ecosystem" with a real solution
19:34 rumble left, grumblebee is now known as grumble
mst but, y'know, better to have something obviously temporary and terrible while we get it right than something that pretends to be a solution 19:35
ranguard RabidGravy: cool, my point on #255 was I'm not going to keep reporting the issues - but therefor people shouldn't rely on my duct tape working 100% :)
19:35 faraco left
RabidGravy well right now there are "only" 182 authors, it would be easier to turn this round now than in a year 19:36
ranguard ++
19:42 jraglin left
stmuk modules.perl6.org doesn't correctly display the multiple "Foo" modules 19:45
19:47 CIAvash left
RabidGravy I guess it would be fairly time consuming to discover which of those 182 already have a PAUSE id 19:48
unless someone fancies a "small data mining project" 19:49
19:49 bjz joined 19:50 wamba left 19:51 domidumont joined 19:52 wamba joined
notviki Well, looks like I have a completed Geth prototype ready for the switch... 19:53
stmuk notviki: I'm wondering whether modules.perl6.org should use the zef JSON feed rather than the panda one 19:56
I'll like to think they contain exactly the same information but I bet they don't 19:57
notviki it doesn't use panda feed
It uses the META.list :/ 19:58
I don't know why people don't believe me :\
github.com/perl6/modules.perl6.org...pl#L18-L19
stmuk raw.githubusercontent.com/FROGGS/p.../META.info 19:59
raw.githubusercontent.com/FROGGS/p.../META.info
ugexe there is also a third one 20:01
stmuk notviki: ah so essentially the source META.list is processed in three different ways by zef, panda and modules.perl6.org
RabidGravy which is utter cock
moritz panda uses ecosystem-api.p6c.org/ which is what I'd expect module installers to use 20:02
notviki As far as I know, panda doesn't do anything with it.
ugexe all 3 foo modules are in the ecosystem projects.json - something on the web site is probably just using "name" as a hash key instead of the full identity 20:04
RabidGravy moritz, that's fine and dandy but if it's generated by different code to the modules.perl.org and so forth it's all hopeless
notviki No, the site simply doesn't list multiple versions of the same module (why would it)
ugexe because of :auth 20:05
notviki :auth is the same
moritz RabidGravy: if modules.perl6.org can't work with the ecosystem API, I'm fine with it generating a JSON blob that's a superset with what the ecosystem API currently generates
stmuk I wish there was one Golden Source of Truth which was JSON and not hosted on github 20:07
notviki It already does: modules.perl6.org/.json
RabidGravy yes
notviki And as far as I can see the eco API JSON just contains META file guts and nothing that modules.perl6.org needs 20:08
(travis, Issues, stargazers, etc)
ugexe fwiw tony-o is working on an api as well
notviki last updated time
ugexe curl -H "Content-Type: application/json" -X POST -d '{"module":"zef", "version":"*"}' modules.zef.pm/api/module-search && echo ''
{"data":[{"auth":"github:ugexe","commit":"d3cd8180b1d69aad599770c7f818fac82b7ec5c6","short-name":"zef","ver":"*"}],"success":1}
RabidGravy AAAAAAAAAAAAAAAAAAAAARGH 20:09
20:09 domidumont left
ugexe there is going to be multiple ecosystems, there is not going to be a single ecosystem and there doesnt have to be 20:09
notviki buggable: eco IRC:Client 20:10
buggable notviki, Nothing found
notviki buggable: eco IRC::Client
buggable notviki, Found 4 results: IRC::Client, IRC::Client::Plugin::HNY, IRC::Client::Plugin::Factoid, IRC::Client::Plugin::UserPoints. See modules.perl6.org/#q=IRC%3A%3AClient
notviki ^ that uses modules.perl6.org API
20:10 Gasher left
stmuk buggable: eco Foo 20:11
buggable stmuk, Found 5 results: Slang::Tuxic, Slang::Piersing, Foo, Acme::DSON, WebService::FootballData. See modules.perl6.org/#q=Foo
RabidGravy ugexe, I agree but in the meanwhile there are all sorts of interim solutions being floated and implemented
stmuk we have de facto different ecosystems anyway now 20:12
20:12 Geth joined, ChanServ sets mode: +v Geth 20:13 Geth left, Geth joined, ChanServ sets mode: +v Geth, melezhik joined
ugexe so do most perl 5 projects I've worked on - darkpans 20:13
stmuk anyway I wish we could just use CPAN as a dumb file store .. I can't see any integration with PAUSE ids etc. could work
the perl6 requirements are so different
20:14 domidumont joined
FROGGS stmuk: CPAN can be used... 20:14
stmuk: I wrote an indexer that recognizes Perl 6 dists and updates several json files that a client can use for lookups 20:15
ugexe was that those dist-name.meta files? 20:16
FROGGS the only problem I ran into was that there was no Archive::Tar and GZip module at that time
notviki awwww
notviki kicks Geth
20:17 Geth left
FROGGS ugexe: probably... 20:17
20:17 Geth joined, ChanServ sets mode: +v Geth
ugexe FROGGS: thats what I was using to index CPAN, but they don't get added anymore :( 20:17
20:17 Geth left
FROGGS uhh, why that? 20:18
20:19 xinming left
RabidGravy cause it got broken 20:19
ugexe www.cpan.org/authors/id/P/PS/PSIXDISTS/Perl6/
there are .meta files for some dists/versions but not newer ones
20:20 xinming joined, Geth joined, ChanServ sets mode: +v Geth
RabidGravy I think it's ad-hoc right now 20:20
geekosaur checks if there's a reaper in channel
20:21 Geth left
notviki makes reaper noises 20:21
hmmm... HTTP::Server::Tiny seems to be refusing to start on my server :/
DrForr Long as it's not a reaver.
moritz notviki: port already occupied? 20:22
RabidGravy I think we fixed that one the other day 20:23
garu hugs notviki
20:24 Geth joined, ChanServ sets mode: +v Geth
garu notviki: I'm really sorry about that. And I'm sorry you felt it was one of those "this sux kthxbye" rants, it's really not :) 20:24
20:24 jebes left
garu notviki: I'm truly enjoying learning perl 6 and I have nothing but the utmost respect about all the work you put on making it better every day 20:24
notviki does too many drugs to even remember that conversation 20:25
FROGGS it is still there: github.com/andk/pause/blob/master/...t.pm#L1160
garu notviki: hahahahhaha
notviki moritz: doesn't seem so. If I start an HTTP::Server::Tiny by running its synopsis code it works, but not from inside my robot :/
FROGGS RabidGravy: do you know any details *how* it got broken? 20:26
RabidGravy no
20:26 Geth left
notviki oh lol, I think I know what it is. 20:26
20:26 Gasher joined 20:27 melezhik left
garu notviki: I was just trying to give back by pointing out a place where (as a newbie) I thought I should have gotten a warning message but didn't. I don't think it sucks because it behave like that, nor do I expect it fixed asap. Nor was I trying to solve the halting problem :) 20:27
RabidGravy it was just surmise, there are too many people who maybe not taling to each other working in this space
notviki committable6: 4034f71 class { submethod TWEAK { say "hi" } }
committable6: 4034f71 class { submethod TWEAK { say "hi" } }.new
committable6 notviki, ¦«4034f71»:
notviki Yup. My perl6 is too old on the server.
garu notviki: I'll shut up now :)
20:29 xinming left 20:30 xinming joined
SmokeMachine Hi garu ! Good to see you!!! 20:34
Is there any plan to zef implement something like this? mojolicious.org/perldoc/Mojolicious...nd/cpanify
20:35 domidumont left
garu hugs SmokeMachine 20:35
moritz SmokeMachine: why would this be something in zef? 20:36
RabidGravy SmokeMachine, what does that even do?
moritz and not, say, a separate project? 20:37
stmuk does mojo have an email client yet? 20:38
RabidGravy probably
:)
moritz is it self-aware? :-)
RabidGravy it'll go full circle and become a text editor 20:39
SmokeMachine I thought it would be great to have something that sends code to cpan and that would make sense to be zef... 20:40
AlexDaniel an operating system you mean? :)
RabidGravy SmokeMachine, small and focussed is best, feel free to make it :)
20:42 ribasushi joined 20:44 ocbtec left 20:47 leego left 20:48 leego joined, leego left 20:49 TEttinger left, leego joined 20:53 bjz left 20:55 travis-ci joined
travis-ci Doc build failed. Zoffix Znet 'Merge pull request #1118 from JJ/master 20:55
travis-ci.org/perl6/doc/builds/190061868 github.com/perl6/doc/compare/77aa4...4ef7570537
20:55 travis-ci left 20:57 Geth joined, ChanServ sets mode: +v Geth
Geth th-test/moew-branch: 0ff5eef324 | (Zoffix Znet)++ | README.md
meow1-0.969506444542017

meow3
20:57
th-test/moew-branch: 121a07fe99 | (Zoffix Znet)++ | README.md
meow1-0.403638012294927

meow3
notviki k
RabidGravy groovetastic
Geth c: 5694e78445 | (Zoffix Znet)++ | README.md
Replace tabs with spaces

Fixes travis build
20:58
notviki \o/
AlexDaniel .tell dalek We like dogfood. Change the webhook to geth.perl6.party/?chan=#perl6-dev (or #moarvm for moarvm), Content-type: application/json and "Send me everything." 21:04
yoleaux AlexDaniel: I'll pass your message to dalek.
AlexDaniel oops
.tell dalek #perl6 I mean
yoleaux AlexDaniel: I'll pass your message to dalek.
AlexDaniel notviki: you can save one line of the output by not printing an empty line after the title 21:05
just add « » around the first line or something
21:05 Gasher left 21:07 FROGGS left 21:09 jraglin joined 21:13 avuserow left, ocbtec joined 21:15 thisiswhoIam joined
notviki AlexDaniel: what channels does it announce the whateverables in? 21:17
AlexDaniel notviki: this one
notviki Ah
thisiswhoIam Anybody familiar with how to install perl6 using rakudobrew? 21:21
I'm getting an error when running "rakudobrew install panda"
error: pathspec 'nom' did not match any file(s) known to git.
Then later...
# Looks like you planned 16 tests, but ran 14
t/02-shell-command.t ..
Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 2/16 subtests
notviki well.. now I want to play some Mass Effect :P
thisiswhoIam Am I missing a path variable? I already added the .rakudobrew/bin directory.
notviki thisiswhoIam: why do you need rakudobrew?
thisiswhoIam: it's not for regular users. Use Rakudo Star distro instead: rakudo.org/downloads/star/ 21:22
thisiswhoIam OK, I'll take a look: I was just wanting to try out perl6, and didn't see a recent package for my distro.
RabidGravy If you weren't aware www.bleepingcomputer.com/news/secu...0-servers/ 21:24
notviki "The attacks don't target all MongoDB databases, but only those left accessible via the Internet and without a password on the administrator account."
It's a scary thought there were so many of them 21:25
geekosaur sounds about par
lizmat
.oO( web scale )
notviki lizmat++
RabidGravy thisiswhoIam, the first message is expected, can't help with the test failure without the actual results
AlexDaniel “Environmental Variables“ wtf? 21:26
notviki ? what 21:27
thisiswhoIam RabidGravy: I didn't want to paste the whole message in here: see
unix.stackexchange.com/questions/3...tion-fails
AlexDaniel notviki: um, like… I'm not a native speaker right, but en.wikipedia.org/wiki/Environment_variable 21:28
notviki thisiswhoIam: you could try zef instead of panda 21:29
geekosaur tjhat's not referring to $PATH, it's a git pathspec --- which is slightly confusing as it's being given a branch
(that is, git is expecting a reference to a file in the repo) 21:30
RabidGravy it does that every time
I think it tries to find a branch of panda that matches that of rakudo 21:31
thisiswhoIam I was wondering if that was actually an issue.
I'm trying zef right now.
RabidGravy but isn't a problem
geekosaur as to the Shell::Command test... what platform is this on?
RabidGravy the issue seems to be withe Shell::Command
thisiswhoIam Zef built fine: is it an equivalent to panda? 21:32
geekosaur (obviously something unixlike but I am wondering if it's looking for a traditional unix thing on OS X or something)
thisiswhoIam I'm on linux
21:32 gcole joined
notviki uuuhh.. that article ends on such a weird note... 21:33
21:33 bjz joined
notviki thisiswhoIam: yes, it's a package installer as well and a better one at that 21:33
geekosaur oh, hm, you do have a $PATH issue 21:34
notviki thisiswhoIam: also, you don't need Task::Star. Just install modules you actually need
geekosaur it's doing which('perl6')
21:34 Tonik left
thisiswhoIam Oops, I already started that once zef finished: I used zef install Task::Star and it's running 21:35
notviki rakudobrew's readme does have instructions for updating yuor path....
21:35 Gasher joined
thisiswhoIam My path is: 21:36
PATH=/home/rob/perl5/bin:/usr/local/bin:/usr/bin:/bin:/usr/games:/usr/lib64/java/bin:/usr/lib64/java/jre/bin:/usr/lib64/kde4/libexec:/usr/lib64/qt/bin:/home/rob/.rakudobrew/bin
notviki looks fine to me
21:36 Ven joined
geekosaur did you 'export' it? 21:37
thisiswhoIam I just added it my .bashrc and reloaded konsole
21:38 dugword joined 21:39 travis-ci joined
travis-ci Doc build passed. Zoffix Znet 'Replace tabs with spaces 21:39
travis-ci.org/perl6/doc/builds/190069811 github.com/perl6/doc/compare/f44ef...94e7844504
21:39 travis-ci left
thisiswhoIam which perl6 21:39
/home/rob/.rakudobrew/bin/perl6
21:40 bjz left
RabidGravy weird 21:42
21:46 bjz joined 21:51 bjz left, Ven left
Geth c: ea7e7c2e14 | (Naoum Hankache)++ | doc/HomePage.pod6
update hyperlink

replace perl6.org/documentation/ by perl6.org/resources/
21:54
c: ea8f5420de | (Zoffix Znet)++ | doc/HomePage.pod6
Merge pull request #1110 from hankache/patch-1

update hyperlink
21:55 Ven joined
notviki AlexDaniel: not sure about the empty line. It kinda separates title from body, especially in other channels with colours off. Though I'd accept a PR removing it :) github.com/zoffixznet/geth/blob/ma...ub.pm6#L79 (the "\n\n" => "\n") 21:59
diakopter notviki: did you add the feature where it translates the committer name to an irc name based on AUTHORS and other fallback heuristics 22:01
I mean, it did that mostly for the karma thingie 22:02
but I have no idea whether there's even still a karma bot
thisiswhoIam Thanks guys: it looks like I've got a working installation to play with for now. I'll have to figure out how to make a package and install it permanently later. "Hello, world!" works.
22:03 Geth left, Geth joined, ChanServ sets mode: +v Geth
notviki diakopter: no, it just uses the name GitHub reports as name 22:04
AlexDaniel notviki: what I meant is 「‘«’ ~ Δ(:style<bold>, $c.title) ~ ‘»’;」 and “\n” instead of “\n\n”, yes. It's way easier for you to test it if you're interested than for me to go through the whole process of trying to get the bot working :)
notviki (which is also missing in Pull Requests hooks :(
diakopter did you see my following messages
it was for karma, but I dunno if anyone cares
I mean, presumably most people would prefer at least their github username instead of long name
notviki: ^ 22:05
thisiswhoIam One question about boilerplate in my scripts. I usually use something like:
use feature ':5.18';
use warnings;
use diagnostics;
use utf8;
binmode STDOUT, ":utf8";
in my perl scripts. How much of that do I need in perl6? What about use strict?
AlexDaniel thisiswhoIam: none
thisiswhoIam perfect - thank you. 22:06
b2gills thisiswhoIam: I always add 「use v6.c;」 to the top of files, just so that it will fail if someone tries to use it on a compiler from before the official release. 22:07
hobbs Except that you can put a subversion in your "use v6" statement for the sake of back and forward compatibility: 6guts.wordpress.com/2016/02/09/a-f...atibility/
notviki thisiswhoIam: if you're used to Perl 5, there's one you may find handy: use v6; as accidentally running a script with perl 5's interpreter can sometimes produce really weird errors 22:08
RabidGravy yeah it gets me every time, hence alaways the use v6
22:09 curt_ left
AlexDaniel as for 「use v6;」, I don't use it. It's not my problem if your try to run the script with python, ruby or perl5… 22:09
especially given that perl 6 files tend to have distinct extensions, usually
and also there's a shebang line…
b2gills If you have perl6 in the shebang line perl will happily run it with perl6 provided you have a new enough version of perl 22:10
RabidGravy so much opinion
AlexDaniel um… huh?
thisiswhoIam That's a good idea. I do have lots of perl hanging around so I can see it being a good idea. Will perl6 run perl5 code? 22:11
AlexDaniel no
mostly… :) 22:12
notviki diakopter: I like the name instead of uzername. I think I can have a special file and people specify what they want to be called as
thisiswhoIam: no, there's no compatibility. You can use Inline::Perl5 to use Perl 5's modules tho 22:13
buggable: eco Inline::Perl5
buggable notviki, Inline::Perl5 'Use Perl 5 code in a Perl 6 program': github.com/niner/Inline-Perl5
22:13 andrzejku left 22:15 thisiswhoIam1 joined, thisiswhoIam left
thisiswhoIam1 AlexDaniel: what is the recommended extensions for perl6 scripts? I see .p6 and .pl6 in the tutorials. 22:16
timotimo i always call scripts .p6, and modules .pm6
AlexDaniel thisiswhoIam1: github.com/perl6/doc/issues/778
timotimo and test files are just .t same as in perl5
RabidGravy Well you can write a Perl 6 program that is also a Perl 5 program but it's unlikely to be useful or idiomatic in either
AlexDaniel reopens the issue… 22:17
RabidGravy I don't use extensions on scripts for the most part
b2gills m: say "use '{ <<pl p6 pl6 ''>>.pick }' for the extension" 22:18
camelia rakudo-moar fbbe44: OUTPUT«use '' for the extension␤»
b2gills m: say "use '{ <<pl p6 pl6 ''>>.pick }' for the extension"
camelia rakudo-moar fbbe44: OUTPUT«use 'p6' for the extension␤»
22:19 Ven left
AlexDaniel but yes, that's a good point. Chances are you don't need an extension for the script at all 22:19
22:20 ocbtec left
RabidGravy it's a shame the modules need extensions really 22:21
infact only the File CUR does 22:22
22:22 labster joined
RabidGravy the Installed doesn't need them 22:22
22:27 wamba left, BenGoldberg joined 22:29 thisiswhoIam1 left 22:33 newbie1 left, newbie1 joined, RabidGravy left, newbie1 left 22:34 newbie1 joined, geekosaur left 22:35 thisiswhoIam joined, geekosaur joined
thisiswhoIam Yeah, for scripts I'm writing I'll usually use an extension, but for scripts I use (or publish) as programs I take them off. Looks like the shebang works fine. I didn't mean to reopen any debates! 22:36
AlexDaniel thisiswhoIam: it's not a debate, it's an issue we have in our docs. Your question should've been answered by the docs properly 22:37
thisiswhoIam: so thanks for bringing it up
22:40 thisiswhoIam left 22:46 thisiswhoIam joined
thisiswhoIam I certainly have a lot to read now. My Internet has been flaky for the past few days (I think it's my modem dying), so I'll depart to avoid the disconnect message pollution. Thanks again all! 22:47
22:47 Wanderer68 left 22:50 thisiswhoIam left, Ben_Goldberg joined, BenGoldberg left, Ben_Goldberg is now known as BenGoldberg
b2gills When my DSL modem was getting flaky ( and eventually died ) all I had to do was replace the two capacitors. 23:02
23:08 Ben_Goldberg joined, BenGoldberg left, Ben_Goldberg is now known as BenGoldberg
BenGoldberg m: sub foo { Slip }; print 1, 2, foo, 3; 23:08
camelia rakudo-moar fbbe44: OUTPUT«Use of uninitialized value of type Slip in string context.␤Methods .^name, .perl, .gist, or .say can be used to stringify it to something meaningful.␤ in block <unit> at <tmp> line 1␤123»
BenGoldberg m: sub foo { new Slip }; print 1, 2, foo, 3;
camelia rakudo-moar fbbe44: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unsupported use of C++ constructor syntax; in Perl 6 please use method call syntax␤at <tmp>:1␤------> 3sub foo { new Slip 7⏏5}; print 1, 2, foo, 3;␤»
BenGoldberg m: sub foo { slip }; print 1, 2, foo, 3;
camelia rakudo-moar fbbe44: OUTPUT«123»
Geth c: a433137046 | (Wenzel P. P. Peppmeyer)++ | doc/Language/containers.pod6
show recursive data structures and name the consequence (garu++)
23:12
gfldex did Dr Who finnaly succeed? 23:13
23:18 skids joined
diakopter notviki: next you could do camelia...? 23:21
I mean, just the irc portion, not the rebuild scripts yet 23:22
23:23 khw left 23:24 Gasher left
notviki What's wrong with camelia? 23:25
23:27 lukaramu left
AlexDaniel m: say 42 23:28
camelia rakudo-moar fbbe44: OUTPUT«42␤»
AlexDaniel diakopter: in fact, what's wrong with evalable?
e: say 42
evalable6 AlexDaniel, rakudo-moar fbbe446: OUTPUT«42»
AlexDaniel it cannot run stuff on r-j yet, but I'll get to it soon 23:29
diakopter AlexDaniel: oh, I didn't know about it 23:31
notviki: well it's in p5 still, I thought
AlexDaniel but you did know about committable, right?
diakopter no 23:32
AlexDaniel … what about bisectable? :)
diakopter I recall reading about that one
AlexDaniel like, where have you been all that time ;)
diakopter out and about
AlexDaniel c: 2015.12,HEAD say rand
committable6 AlexDaniel, ¦«2015.12»: 0.883002107015713␤¦«HEAD»: 0.594236550908316
AlexDaniel c: 2014.01,HEAD say rand
committable6 AlexDaniel, ¦«2014.01»: 0.406725␤¦«HEAD»: 0.316305477499301
diakopter that's neat
are those written in p6 23:33
AlexDaniel yes
all 6 *able6 bots are written in p6 :)
diakopter notviki: I was only suggesting camelia because it was written in p5, last I checked
23:33 pecastro joined
diakopter notviki: same reason I suggested dalek 23:33
23:33 khw joined
notviki diakopter: is p5 going away any time soon? :) 23:35
AlexDaniel no, but dogfood 23:36
notviki I wrote Geth because dalek is a buggy POS and kept choking on my commit messages
Rewriting a working piece of software just for the sake of language change is dumb. 23:37
AlexDaniel actually, in this case, it is a good idea for many reasons 23:38
diakopter well, there's another reason - I'm not entirely sure p6 can handle all the child process/stream machinations camelia does
AlexDaniel I reported several bugs just because of whateverables 23:39
diakopter notviki: including the kill with timeouts
notviki: and memory limits
AlexDaniel and it is good to have something on this channel that people can easily contribute to, without them having to learn a different language
23:40 geraud joined
notviki diakopter: heh, that sounds like a reason NOT to do it :P 23:41
diakopter well it would be a good motivation for whoever to fix it so it could
23:43 nv2r joined 23:44 nv2r left 23:53 kurahaupo__ left 23:59 rindolf left