Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2017-01-08

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:00 kalkin- ugexe: even during the build and test phase?
00:00 ugexe someone elses build might generate perl modules during the build phase
00:00 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
00:01 kalkin- because this is what you talking about if module a waits for module b to generate some modules during b's build phase
00:02 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
00:02 kalkin- so something like dbus
00:03 kalkin- :D
00:03 ugexe right, thats sort of what im getting at
00:05 ugexe 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:06 pecastro joined #perl6
00:06 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“?
00:06 ugexe in short the hooks should be able to know whats happening in the current build environment its a part of
00:07 kalkin- don't we put to much logic in to distributions?
00:07 ugexe it doesnt belong in distribution
00:07 kalkin- well hooks are part of the distribution
00:08 kalkin- we allow people to write very sophisticated stuff, I fear most will misuse it
00:08 kalkin- (because of lack of understanding)
00:08 ugexe if you dont allow it you end up with terrible hacks being used everywhere
00:11 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 kalkin- or can they?
00:11 ugexe hooks are a script, they can do anything
00:12 ugexe 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?
00:12 ugexe a perl6 script can do anything it has permissions for, so yes
00:12 kalkin- In such case we are in security territory
00:13 ugexe you cant prevent a hook thats `run <zef install Virus::Module>`
00:13 kalkin- In such case it's the same as curl http://github/foo |bash
00:13 ugexe because people also need to `run <make something>`
00:13 ugexe theres nothing stopping you from doing these things inside a perl module or test either though
00:14 kalkin- right
00:15 kalkin- ugexe: it would be nice if you would readd simple hooks to zef
00:16 ugexe they need to be installable first
00:16 ugexe otherwise its breaks the preconception that you can get a distribution from some CUR and install it to another
00:17 kalkin- ugexe: is zef missing that or something else? (rakudo)
00:18 kalkin- or what do you mean by installable? (Besides copy)
00:19 ugexe CompUnit::Repository::Installation.install() does not look for files starting with `hooks/`
00:19 ugexe so they won't be installed
00:20 ugexe and fwiw installation does not actually do a file copy, it reads from a handle which could be a socket or something
00:21 ugexe (it cant be a literal socket but you can put a thin wrapper role around one to make it happen)
00:22 kalkin- Hmm I'm looking at CompUnit::Repository::Installation.install i think it's just a one liner
00:23 kalkin- hmm may be oneliner + loop
00:23 ugexe https://github.com/rakudo/rakudo/blob/nom/src/core/CompUnit/Repository/Installation.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
00:24 ugexe https://github.com/rakudo/rakudo/blob/nom/src/core/Distribution.pm#L128 you'd copy this but s/bin/hooks/ to fix for Distribution::Path for instance
00:25 SmokeMachine ugexe: thanks!
00:26 kalkin- ugexe: thanks!
00:29 * ugexe is just glad someone else is listening and making noise about these things
00:34 pierrot joined #perl6
00:39 bjz joined #perl6
01:06 AlexDaniel joined #perl6
01:07 aborazmeh joined #perl6
01:07 aborazmeh joined #perl6
01:24 labster joined #perl6
01:32 ChoHag joined #perl6
01:34 Ben_Goldberg joined #perl6
01:56 gcole joined #perl6
02:13 gcole joined #perl6
02:20 araujo joined #perl6
02:20 araujo joined #perl6
02:31 kalkin-_ joined #perl6
02:54 araujo joined #perl6
03:11 Ben_Goldberg joined #perl6
03:12 DarthGandalf joined #perl6
03:19 BenGoldberg joined #perl6
03:19 llfourn joined #perl6
03:26 Ben_Goldberg joined #perl6
03:30 [Coke] anyone able to install "JSON::Fast" with zef?
03:30 [Coke] I'm getting https://github.com/timo/json_fast/issues/18
03:30 Ben_Goldberg joined #perl6
03:39 [Coke] samcv: I can't run docs in sparse ATM: https://gist.github.com/coke/fa890bff5a2196156a383a17f2e20575
03:39 [Coke] that's after doing an npm rebuild and a make init-highlights
03:40 BenGoldberg joined #perl6
03:40 [Coke] (trying to upgrade node from 7.2.1 to 7.4.0...)
03:42 [Coke] samcv: same thing with upgraded node.
03:42 BenGoldberg Is there an equivilant of perlbrew for node?
03:44 [Coke] samcv: ugh. 'npm rebuild', but in the highlights directory. that fixed it.
03:55 dugword nvm
03:55 dugword nvm is the perlbrew for node
04:09 [Coke] I thought nvm was more like cpanm.
04:10 [Coke] ok, now the htmlify --sparse is hanging on Writing programs document for Perl 6 ...
04:16 timotimo [Coke]: in case you missed it, ugexe just commented on your bug in json::fast
04:19 dugword npm == cpanm
04:19 dugword nvm == perlbrew
04:20 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:22 savasten joined #perl6
04:33 labster joined #perl6
04:51 * garu waves
04:51 garu m: say 42
04:51 camelia rakudo-moar f6303d: OUTPUT«42␤»
04:53 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:54 garu so... um... this ^^ hangs on by perl6 moar build (just updated with rakudobrew build moar)
04:55 garu I'm afraid of running it on camelia and hanging her here for everybody else, so I'll leave it as is
04:55 garu if anyone can help me debug it, it'd be awesome :D
04:56 garu 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>)
04:57 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…»
04:57 garu hmm... so it does run
04:57 ugexe m: class Boom { method new($pos?, *%_) { my %args = x => ($pos, %_); warn %args{q|x|}; return; } }; my %o = Boom.new(q|random|, :foo<bar>)
04:57 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␤␤»
04:58 ugexe you dont think method(*%args) { %args = x -> (%args) } could be problematic?
05:01 ugexe m: my %x; %x<x> = %x; say %x
05:01 camelia rakudo-moar f6303d: OUTPUT«(\Hash_71399200 = {x => Hash_71399200})␤»
05:01 ugexe m: my %x; %x<x> = %x; warn %x
05:02 camelia rakudo-moar f6303d: OUTPUT«(timeout)»
05:02 garu a-ha!
05:02 garu thanks for reproducing it in a much smaller/cleaner fashion
05:04 garu 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 garu is it creating a reference to itself, instead?
05:05 ugexe yes
05:05 ugexe you could do `x => ('lala', |%args)`
05:05 garu ah... I keep forgetting about |
05:05 garu thanks!
05:07 garu 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␤»
05:07 ugexe you really just need to sink it, so |%args could also be `% = %args`, `eager %args`, etc
05:07 shayan_ joined #perl6
05:08 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 garu ugexe: still... the timeout is a bug, right?
05:08 ugexe its not the flattening that "fixes" it. its sinking
05:09 ugexe I dunno if it is - but it could be
05:10 garu sinking.... can you elaborate? I think I get it but it looks like I'm missing something
05:10 garu or maybe just point me towards the docs?
05:13 hobbs hola garu
05:14 hobbs or olá. I just hola random peopl :)
05:18 garu hobbs: heya! long time no see :)
05:19 hobbs yeah
05:19 hobbs it's a nasty snowy day up here so I was just thinking that it should be OPW season right now
05:19 hobbs but sadly we don't have that anymore :)
05:29 skids joined #perl6
05:35 CIAvash joined #perl6
05:49 Cabanossi joined #perl6
05:50 faraco joined #perl6
06:29 ggoebel joined #perl6
06:34 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 faraco perl6 module*
06:36 floutenvy joined #perl6
06:46 bjz joined #perl6
07:02 geekosaur joined #perl6
07:10 araujo joined #perl6
07:10 araujo joined #perl6
07:14 mr-foobar joined #perl6
07:16 dugword joined #perl6
07:19 faraco hi
07:31 floutenvy joined #perl6
07:33 astj joined #perl6
07:36 faraco I don't understand about map function (basically in any language)
07:36 faraco is it a functional routine?
07:36 faraco because I'm not experienced with functional paradigm
07:37 faraco when you should use map routine?
07:37 faraco and when you should not?
07:41 faraco joined #perl6
07:42 CIAvash joined #perl6
07:46 FROGGS joined #perl6
07:54 andrzejku joined #perl6
08:01 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 AlexDaniel m: my @a = 5, 8, 40; say @a.map: { $_² }
08:01 camelia rakudo-moar f6303d: OUTPUT«(25 64 1600)␤»
08:01 CIAvash faraco: https://en.wikipedia.org/wiki/Map_(higher-order_function)
08:02 AlexDaniel my explanation is not very precise to be honest
08:03 AlexDaniel faraco: and in fact, you don't really *need* it. You can always achieve the same result by other means
08:03 AlexDaniel m: my @a = 5, 8, 40; say ($_² for @a)
08:03 camelia rakudo-moar f6303d: OUTPUT«(25 64 1600)␤»
08:04 AlexDaniel m: my @a = 5, 8, 40; say gather take $_² for @a
08:04 camelia rakudo-moar f6303d: OUTPUT«(25 64 1600)␤»
08:04 AlexDaniel hah…
08:04 AlexDaniel m: my @a = 5, 8, 40; say @a»²
08:04 camelia rakudo-moar f6303d: OUTPUT«[25 64 1600]␤»
08:06 AlexDaniel m: my @a = 5, 8, 40; say @a X** 2
08:06 camelia rakudo-moar f6303d: OUTPUT«(25 64 1600)␤»
08:07 AlexDaniel m: my @a = 5, 8, 40; say @a »**» 2
08:07 camelia rakudo-moar f6303d: OUTPUT«[25 64 1600]␤»
08:09 andrzejku c++17 looks horrible
08:09 andrzejku ;d
08:09 AlexDaniel andrzejku: anything in particular?
08:11 andrzejku fold expressions?
08:11 AlexDaniel “Removal of trigraphs” hooray!
08:12 andrzejku std::clamp?:D
08:13 AlexDaniel andrewalker: come on, it does not look so bad
08:13 AlexDaniel oops
08:13 AlexDaniel andrzejku: ↑
08:44 astj joined #perl6
08:48 rindolf joined #perl6
08:49 samcv [Coke], did you get it working?
08:50 faraco joined #perl6
08:57 faraco left #perl6
09:03 sammers joined #perl6
09:04 TEttinger AlexDaniel: are trigraphs the octal char things that mess lots of char handling up?
09:06 wamba joined #perl6
09:07 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:08 TEttinger ouch
09:09 AlexDaniel TEttinger: https://en.wikipedia.org/wiki/Digraphs_and_trigraphs#C
09:10 AlexDaniel imagine people at the time
09:10 TEttinger yeah
09:10 AlexDaniel “what? Your language has {} and \ and #, but I don't have these characters on my keyboard!”
09:11 AlexDaniel ok-ok, fine! Here are some “texas” equivalents for you!
09:11 gfldex joined #perl6
09:12 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
09:12 TEttinger can ??/ show up in perl 6 and be parsed as a newline?
09:12 TEttinger like, inside a string?
09:13 AlexDaniel hmm what do you mean?
09:22 gfldex TEttinger: did you try to overload <ws> ?
09:23 TEttinger no, I just mean that trigraphs can do that in C++ before C++17
09:27 domidumont joined #perl6
09:31 samcv i have never redefined whitespace for fun. can somebody point to me an article on how to do it
09:31 samcv i have known you could be curious
09:32 domidumont joined #perl6
09:45 xinming joined #perl6
09:46 faraco joined #perl6
09:47 dalek specs: 660070a | samcv++ | S15-unicode.pod:
09:47 dalek specs: S15-unicode, change .chars to .codes where this was actually intended
09:47 dalek specs:
09:47 dalek specs: `.chars` was used be all the examples output's specified the number of
09:47 dalek specs: codes. Use `.codes` in the example because of this
09:47 dalek specs: review: https://github.com/perl6/specs/commit/660070af5a
09:50 Tonik joined #perl6
09:59 faraco quit
09:59 faraco oops
09:59 samcv quit
09:59 samcv oops
09:59 DarthGandalf joined #perl6
10:01 DarthGandalf joined #perl6
10:01 geekosaur joined #perl6
10:02 DarthGandalf joined #perl6
10:04 RabidGravy joined #perl6
10:05 aries_liuxueyang joined #perl6
10:06 espadrine joined #perl6
10:10 samcv Unicodey.chars
10:10 samcv Unicodey.codes
10:10 samcv Both are synonymous. Counts the number of codepoints in a Unicodey type.
10:10 samcv i don't really like this
10:10 samcv 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 #perl6
10:17 bjz_ joined #perl6
10:18 DarthGandalf joined #perl6
10:37 wololoooo joined #perl6
10:39 wololoooo Hello guys,
10:39 wololoooo the syntax highlighting on perl6 docs are off in some cases
10:40 wololoooo example: https://docs.perl6.org/syntax/loop
10:40 wololoooo on the line with (loop ( my $i = 0; $i++ < 3;) { $i * 2 }).say;               #-> "(2 4 6)"
10:40 kalkin-_ wololoooo: plz open an issue (if there isn't one already) @ https://github.com/perl6/doc/issues
10:41 kalkin-_ wololoooo: BTW if you can fix it on your own, the #perl6 community will be happy to accept the patch
10:49 DarthGandalf joined #perl6
10:49 samcv wololoooo, if the highlighting is off please open here https://github.com/perl6/atom-language-perl6
10:49 samcv or just tell me. since i'm the lead dev on that
10:50 samcv wololoooo, ok i see the issue, but open a ticket here https://github.com/perl6/atom-language-perl6
10:51 wololoooo yeah the highlighting is off, the span has a string class which is incorrect
10:51 wololoooo will open a ticket there
10:51 samcv yep i see that
10:51 samcv thanks :)
10:53 ufobat joined #perl6
10:57 astj joined #perl6
11:05 zappa_ joined #perl6
11:14 bjz joined #perl6
11:45 wololoooo sub baa(@b is readonly) { @b= "b", "a", "a";}
11:45 wololoooo my @b = 1, 2, 3;
11:45 wololoooo baa(@b);
11:45 wololoooo say @b;
11:45 wololoooo The subroutine changes values in @b even though i made it read only, is this odd?
11:47 rpburkholder joined #perl6
12:01 gfldex wololoooo: the container is RO, not it's content
12:02 gfldex 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␤␤»
12:02 gfldex wololoooo: ^^^ use a readonly container to have a readonly container
12:04 gfldex this is ENODOC
12:06 lukaramu joined #perl6
12:07 rurban joined #perl6
12:10 dalek perl6-most-wanted: 61563bf | (Tom Browder)++ | most-wanted/modules.md:
12:10 dalek perl6-most-wanted: add WIP
12:10 dalek perl6-most-wanted: review: https://github.com/perl6/perl6-most-wanted/commit/61563bf2c9
12:18 gfldex the reason of that ENODOC is bad structure of the docs
12:21 RabidGravy yeah, I think there probably needs to be a whole page on this thing
12:22 RabidGravy ah there is a containers page
12:22 RabidGravy but probably needs more inward linkage
12:23 gfldex I don't agree. In fact I believe we got to many pages already.
12:23 loredana joined #perl6
12:23 gfldex I have to work 'til 23 o'clock today and should have the time to write a plan down.
12:25 dalek doc: efdae1d | kalkin++ | doc/Type/IO/Path.pod6:
12:25 dalek doc: Fix IO::Path::absolute return type to Str
12:25 dalek doc: review: https://github.com/perl6/doc/commit/efdae1d967
12:25 dalek doc: 0012741 | kalkin++ | doc/Type/IO/Path.pod6:
12:25 dalek doc: Fix IO::Path::relative return type to Str
12:25 synopsebot6 Link: http://doc.perl6.org/type/IO/Path
12:25 dalek doc: review: https://github.com/perl6/doc/commit/0012741cbc
12:25 dalek doc: 77aa498 | RabidGravy++ | doc/Type/IO/Path.pod6:
12:25 dalek doc: Merge pull request #1124 from kalkin/master
12:25 dalek doc:
12:25 dalek doc: Fix IO::Path::absolute return type to Str
12:25 dalek doc: review: https://github.com/perl6/doc/commit/77aa498ad2
12:25 synopsebot6 Link: http://doc.perl6.org/type/IO/Path
12:25 synopsebot6 Link: http://doc.perl6.org/type/IO/Path
12:26 RabidGravy right, time to go to the supermarket
12:28 AlexDaniel but what's the point of 「is readonly」 then in this case?
12:29 AlexDaniel if it is pointless but does not give a warning, then it is a bug
12:29 AlexDaniel sorta
12:29 gfldex it can't give a warning because `is readonly` is the default
12:31 dugword joined #perl6
12:31 jraglin joined #perl6
12:33 xinming joined #perl6
12:38 xinming joined #perl6
12:42 Stown joined #perl6
12:47 trnh joined #perl6
13:11 garu is there a bug report already for "my %x; %x<x> = %x; say %x"?
13:12 moritz I'm not sure there is a bug
13:12 garu m: my %x; %x<x> = %x; say %x
13:12 camelia rakudo-moar f6303d: OUTPUT«(\Hash_61613856 = {x => Hash_61613856})␤»
13:12 garu oh, works now
13:12 * garu is confused
13:13 garu m: my %x; %x<x> = %x; warn %x
13:13 moritz .Str will likely timeout
13:13 moritz but I'm not sure that's a bug either
13:13 camelia rakudo-moar f6303d: OUTPUT«(timeout)»
13:13 rindolf joined #perl6
13:13 moritz .gist and .perl have some liberties about how to format stuff
13:13 moritz .Str doesn't
13:14 tojo joined #perl6
13:18 garu moritz: but... not even a warning? I mean
13:20 garu "infinite loop detected" or "circular reference" or whatever... it should hint the developer about what's going on, shouldn't it?
13:21 moritz I'm against expecting magic from all kinds of functions that should be really simple in nature
13:22 jraglin joined #perl6
13:23 notviki And I thought the halting problem was unsolved...
13:24 garu sure, but the way it is the program just hangs, without any indication whatsoever of what is going on, where and why :'(
13:25 moritz garu: you don't get any warning either when you write loop (;;) { } or stuff like that
13:25 moritz at some point, programmers do have to think for themselves
13:26 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:27 notviki heh
13:27 notviki garu: but you created a circular structure first.
13:27 notviki What did you think would happen when you printed an infinitely repeating structure?
13:27 lucasb joined #perl6
13:27 moritz garu: more implicit ways to generate an infinite loop don't warn either
13:27 kurahaupo__ joined #perl6
13:29 moritz for 4, 6 ... * -> $target { last if $target == any( (2..$target).grep(&is-prime) + (2..$target).grep(&is-prime)) }
13:29 moritz will it terminate?
13:30 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
13:30 lizmat garu: consider yourself tormented   :-)
13:30 moritz garu: by making stuff slower
13:30 moritz and more complicated, and thus much more likely to be buggy
13:31 notviki garu: well volunteered! When you have the solution, let us know: https://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
13:31 garu notviki: you don't have to be sarcarstic about that, I'm just trying to help
13:31 garu :(
13:32 moritz garu: but they did
13:32 moritz garu: when you tried to print their contents while recursively descending, they also loop infinitely
13:32 moritz garu: and that's what the stringification with warn() does
13:32 moritz garu: if that's not what you want, then you shouldn't stringify it
13:33 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 rafsch joined #perl6
13:35 notviki And after how many iterations would you warn exactly? Maybe my object's .Str gives a different value after a million calls?
13:38 ocbtec joined #perl6
13:39 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 Stown joined #perl6
13:40 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!
13:40 moritz garu: but that's a tall order, which is why we try to push back against that expectation
13:40 garu that's ok
13:40 Gasher joined #perl6
13:40 garu I understand right now you're trying to make things much faster
13:41 garu and for one I really think you are doing an excelent job
13:41 garu in that particular case, it struck me that "say" worked but "warn" didn't
13:42 garu but you mentioned it's because of the implementation, is that correct?
13:42 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
13:42 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 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:45 moritz you could try
13:45 garu also, hi lizmat! sorry, didn't catch you there :D
13:46 rafsch Is garu going to try and discover a way to tell if a program will stop or continue forever?
13:47 notviki So we're changing the core behavior of .Str now?
13:47 moritz rafsch: no, just detect cyclic data structures
13:49 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:50 notviki For example lucasb above is already contemplating adding .gitseen into .Str.
13:50 * lucasb contemplates adding .gitseen into .Str
13:51 lucasb (just kidding)
13:51 * notviki leaves to hack on robots
13:53 lizmat lucasb: brrrr
13:54 lizmat garu: no problem
13:54 lizmat but there are some things in Perl 6 that we consider to be a problem of the user, at least for now
13:55 lizmat there are too many other things still that will bite newbies sooner
13:55 lizmat and sometimes we have to do things we don't like
13:56 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
13:56 notviki m: my %x; %x<x> = %x; %x.pairs.join
13:56 camelia rakudo-moar 362f67: OUTPUT«(timeout)»
13:57 notviki m: my %x; %x<x> = %x; eager %x.pairs
13:57 camelia rakudo-moar 362f67: ( no output )
13:57 cdg joined #perl6
13:57 notviki I guess it is in Str
13:57 notviki s: :42a, 'Str', \()
13:57 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␤␤
13:57 lizmat yup, join does a .Str
13:57 notviki s: "a" => 42, 'Str', \()
13:57 SourceBaby notviki, Sauce is at https://github.com/rakudo/rakudo/blob/f6303d7/src/core/Pair.pm#L50
13:58 lucasb my $p; $p = a => $p; $p.Str  # other spelling
14:00 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 ?␤»
14:01 lizmat m: my $p; $p = a => $p; say $p   # and gist ?
14:01 camelia rakudo-moar 362f67: OUTPUT«(\Pair_73795152 = a => Pair_73795152)␤»
14:01 notviki m: my $p; $p = a => $p; say $p.perl
14:02 camelia rakudo-moar 362f67: OUTPUT«(my \Pair_64104304 = :a(Pair_64104304))␤»
14:02 notviki m: my $p; $p = a => $p; say $p.perl.EVAL.perl
14:02 camelia rakudo-moar 362f67: OUTPUT«:a(Mu)␤»
14:02 kyan joined #perl6
14:03 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)
14:03 camelia rakudo-moar 362f67: OUTPUT«:a(Mu)␤»
14:03 notviki m: dd my $Pair_64104304 = :a($Pair_64104304)
14:03 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␤»
14:04 notviki lucasb: .perl.EVAL is meant to roundtrip
14:04 notviki m: my %p; %p = a => %p; say %p.perl
14:04 camelia rakudo-moar 362f67: OUTPUT«(my \Hash_67498832 = {:a(Hash_67498832)})␤»
14:04 notviki m: my %p; %p = a => %p; say %p.perl.EVAL.perl
14:04 camelia rakudo-moar 362f67: OUTPUT«{:a(Mu)}␤»
14:04 notviki :(
14:05 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)})␤»
14:05 lucasb @a.perl and %h.perl also suffer the same problem
14:06 faraco joined #perl6
14:06 faraco hi, why creating and using a custom operator is slow?
14:06 Actualeyes joined #perl6
14:06 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
14:06 moritz faraco: because it has to derive a new grammar
14:07 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:08 faraco so, what makes the its slow, because of the compilation? but in runtime, is actually same as calling other subroutines?
14:08 faraco by runtime, I meant using it from module
14:08 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
14:09 lucasb notviki: ok, agreed
14:09 lucasb maybe some output like... 'my %h = do { my %h; %h = :a(%h) }' ?
14:10 lucasb my $p = do { my $p; $p = :a($p) }
14:10 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 (https://github.com/zoffixznet/perl6-Color/blob/master/lib/Color/Operators.pm6) but I recall someone pointed out that due to precomp the slowage is no longer there.
14:11 notviki lucasb: that doesn't look circular to me :P
14:11 aborazmeh joined #perl6
14:11 aborazmeh joined #perl6
14:11 notviki m: my $p = do { my $p; $p = :a($p) }; $p.Str
14:11 notviki ah ok
14:11 camelia rakudo-moar 362f67: OUTPUT«MoarVM panic: Memory allocation failed; could not allocate 121088 bytes␤»
14:12 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
14:13 * notviki &
14:14 faraco notviki: I installed last day. I think, it's noticeable because of my lower amount of total RAM.
14:17 notviki faraco: but is it in a precompiled module?
14:18 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`.
14:18 notviki faraco: just stick them into Foo.pm6 and stick `is export` on them, like here: https://github.com/zoffixznet/perl6-Color/blob/master/lib/Color/Operators.pm6#L5
14:19 notviki faraco: and then run perl6 -I. -MFoo.pm6 blah.p6  (or stick    use lib <.>; use Foo;   in your script)
14:19 notviki And on first run, that'll precompile Foo.pm6 and next runs should be faster
14:19 faraco let me try that and see the result
14:23 faraco ls
14:23 faraco oops
14:24 Khisanth joined #perl6
14:25 faraco erm, what differs between unit module and unit package?
14:25 faraco is package for class?
14:26 notviki No, for class it's unit class
14:26 faraco so, either one is fine?
14:26 notviki No idea about module/package
14:26 notviki You don't need any of them really. Just stick your operators into the file with `is export` trait and they'll get exported.
14:26 moritz a package is a stub that can be be later turned into a class, module, grammar or role
14:27 faraco oh, okay. I'll try that.
14:35 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 faraco Fortunately, I notice that running the perl6 t.p6 twice and more, faster
14:35 faraco than running them with prefix in the same script.
14:36 faraco #!/usr/bin/env perl6
14:36 faraco multi prefix:<wix> (Str $arg) is export {"$arg, you are cool" }
14:36 faraco exit;
14:36 faraco is that right?
14:36 faraco and I try to use them with
14:36 faraco use lib <.>;
14:36 faraco use Foo;
14:36 faraco say wix 'Jim';
14:37 faraco the last 3 lines are blah.p6
14:39 faraco notviki: okay my bad. the exit in the module is the cause of that.
14:39 faraco I think it return $? instead of the string hardcoded in the module.
14:40 * notviki tries a test
14:40 notviki ... and it might've been a bad idea to do it with 100 custom operators :/
14:41 faraco oh, that gonna be *really* slow.
14:41 notviki First comp: real    1m20.189s
14:41 notviki Second run: real    0m1.471s
14:41 faraco is that using `time`?
14:41 notviki My hypothesis holds
14:41 notviki Yes, time
14:41 faraco let me check on mine
14:42 notviki This is the two files I used. Both in the same directory: https://gist.github.com/zoffixznet/9fde0b3bf53a7da21f1bcdaf14559905
14:42 notviki And I ran them with:   time perl6 script.p6
14:42 faraco erm, a quick question, which row to use for comparing the time?
14:42 faraco there is real, user and sys
14:43 notviki No idea. I usually go by "real"
14:43 faraco ah, okay. let me try
14:43 faraco time perl6 t.p6
14:43 faraco oops
14:43 faraco first run, 0m1.659s
14:44 faraco second run, 0m1.593s
14:44 faraco well, a little bit faster, I guess, but with more than one, is gonna be painful to load.
14:45 notviki Just on compilation :)
14:46 faraco yeah
14:46 faraco well, there always room for rakudo to improve
14:47 faraco last question, is rakudo finally declared as official compiler?
14:47 faraco because, google won't help. Traffic to the language is pretty low, (because of perl is dead doctrine)
14:47 notviki faraco: no, and it never will be.
14:48 faraco what...erm. never?
14:48 faraco why? internal issues?
14:48 kalkin-_ m: class A { has $.foo = "asd" }; class B { has $.bar = $!foo ~ " foo"}; say B.new.bar;
14:48 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␤ …»
14:48 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.
14:48 kalkin-_ how do i access attributes of the parents class?
14:49 faraco notviki, thanks for all help.
14:49 notviki No problem
14:49 notviki kalkin-_: $.foo
14:49 kalkin-_ m: class A { has $.foo = "asd" }; class B { has $.bar = $.foo ~ " foo"}; say B.new.bar;
14:49 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 ~ "…»
14:50 notviki kalkin-_: missing `is A` on B
14:50 notviki m: class A { has $.foo = "asd" }; class B is A { has $.bar = $!foo ~ " foo"}; say B.new.bar;
14:50 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␤ …»
14:50 notviki m: class A { has $.foo = "asd" }; class B is A { has $.bar = $.foo ~ " foo"}; say B.new.bar;
14:50 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 ~ "…»
14:51 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 #perl6
14:51 dugword joined #perl6
14:51 kalkin-_ ahh `self` it is
14:51 kalkin-_ notviki: thanks
14:51 notviki m: class A { has $.foo = "asd" }; class B is A { method bar {$.foo ~ " foo"}}; say B.new.bar;
14:51 camelia rakudo-moar 905242: OUTPUT«asd foo␤»
14:55 jebes joined #perl6
14:55 newbie1 joined #perl6
14:56 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`
14:56 jebes notviki: aaah. thanks
14:56 jebes Shame i still don't grok OOP even after 7 years of programming :(
14:57 jebes 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
14:57 camelia rakudo-moar 905242: OUTPUT«(Any)␤72␤»
14:57 notviki :o
14:58 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␤»
14:58 notviki I guess constructors don't init those....
14:58 faraco whoa, meta operator seems like lisp like operator
14:59 faraco [*] 4, 3 == (* 4 3)
15:04 iH2O joined #perl6
15:07 drrho joined #perl6
15:07 rafsch jebes: See if this does it for you: https://lwn.net/Articles/444910/
15:14 jebes rafsch: I understand how OOP is implemented and why its useful, I just can't apply it properly, prefering more functional abstractions
15:15 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 :^)
15:16 rafsch Which is what the kernel is doing.
15:16 jebes I suppose.
15:17 rafsch "Just pass me a function" is easy to say, but OOP makes it easier to have pluggable modules.
15:17 rafsch It's about interfaces to "pass functions".
15:18 Actualeyes left #perl6
15:18 rafsch When all the code is in your own control, interfaces don't matter much.
15:18 iH2O left #perl6
15:18 jebes True.
15:19 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.
15:20 rafsch In OOP parlance, this is called a "is-a" relationship.
15:20 rafsch Most languages have syntactic sugar to make that easier.
15:20 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 jebes i'd much prefer a <> b <> c to a.app(b.app(c))
15:21 rurban1 joined #perl6
15:21 jebes So i guess what i'm saying is: multi methods are p good
15:22 gcole joined #perl6
15:22 rafsch Oh, I'm not in any way an OOP purist. Some things are better to do using OOP and others not.
15:23 jebes rafsch: Yeah, I would agree. Sometimes it makes sense, other times it doesn't.
15:23 jebes Its a heavy-weight solution imo.
15:24 bwisti joined #perl6
15:28 zakharyas joined #perl6
15:30 rafsch It is as heavywheight as you make it to be. Just don't force it where it doesn't belong.
15:30 pierrot joined #perl6
15:32 rurban joined #perl6
15:34 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:35 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
15:36 RabidGravy faraco, as long as it installs and isn't breaking any laws, sure
15:37 RabidGravy 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)
15:39 RabidGravy the more the merrier :)
15:39 faraco I read that, the repo is temporary. So what is the future solution to this? CPAN?
15:39 notviki yeah
15:41 faraco okay, I also read that you can upload perl 6 modules to CPAN right now (with special requirements)
15:41 faraco but how about the installation?
15:41 faraco cpan perl6::blah::blah will install them under perl 6 environment?
15:42 rafsch zef --cpan
15:42 faraco ah, now it makes sense. Thanks everyone for helping!
15:46 El_Che is zef --cpan a thing? wow
15:47 RabidGravy ugexe++ never realised that
15:47 RabidGravy okay that's the way to be going
15:48 RabidGravy I'm going to stick an issue on the DBIish regarding moving it into its own organisation
15:50 rafsch I'm lobbying to make --cpan the default on zef.
15:50 notviki :/
15:50 notviki So we get outdated modules?
15:51 mr_ron joined #perl6
15:51 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
15:52 notviki Except they aren't stable. The releases are automated from whatever commit just happened to be there during the release run
15:52 El_Che (go get)
15:53 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␤␤»
15:57 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 pierrot joined #perl6
15:58 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>/␤»
15:58 notviki m: my token t {<[2]>}; say "2" ~~ /<t>/
15:59 camelia rakudo-moar 905242: OUTPUT«「2」␤ t => 「2」␤»
15:59 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>/
15:59 camelia rakudo-moar 905242: OUTPUT«12␤14␤「2」␤ t => 「2」␤»
15:59 RabidGravy In principle I agree with the above, however I have 55 (maybe 61) modules and now tool to prepare a CPAN distribution
16:00 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
16:00 notviki RabidGravy: isn't ranguard uploading them all with a script?
16:00 RabidGravy and there are inactive authors and so forth
16:00 notviki Hence my comment about outdatedness
16:01 notviki 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
16:01 faraco in perl 6 regex, if I use :P5, do I basically can use 100% perl 5 regex grammar?
16:01 notviki faraco: nope, lots of things don't work
16:01 faraco notviki: aww
16:02 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.
16:03 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 ;)
16:03 kalkin-_ is S22 just obsolete?
16:03 faraco idomatic*
16:04 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 notviki In the last coverage report I seen all the CUR stuff was essentially unspecced (in roast)
16:05 RabidGravy kalkin-_, the distribution name can be *anything* however best practice would be that it is the name of the main module
16:05 RabidGravy which is why Test::META warns if it has a hyphen in it
16:06 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
16:08 RabidGravy CPAN does a lookup from the distributed package name to the module name and vice versa, but we don't do that yet
16:09 kalkin-_ k
16:09 kalkin-_ thanks
16:09 RabidGravy which is I still get hate mail from rule fixated packagers and sysadmins that the package name of Term::ReadKey is TermReadKey
16:09 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
16:10 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?
16:11 kalkin-_ 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?
16:12 kalkin-_ Wouldn't it be better to decouple Distribution::Name and MainModule::Name?
16:12 kalkin-_ may be via a field in META6,json setting the main-module?
16:13 kalkin-_ 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
16:13 notviki Tokens are meant to be for grammars
16:13 notviki m: my token t ($x) { <[2]> {say $x} }; say "2" ~~ /<t: 42>/
16:13 camelia rakudo-moar 905242: OUTPUT«42␤「2」␤ t => 「2」␤»
16:13 notviki hm
16:13 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
16:16 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 mr_ron notviki: thanks
16:16 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
16:17 kalkin-_ actually zef handles both
16:18 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
16:19 kalkin-_ 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:21 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)
16:21 kalkin-_ s/the/they
16:22 rafsch They're already implemented.
16:22 kalkin-_ rafsch: is there something out there besides panda & zef?
16:22 iH2O joined #perl6
16:22 rafsch apt, dnf, pacman
16:23 rafsch msi
16:23 iH2O dnf install pacman
16:23 kalkin-_ rafsch: I don't see how this should be solved by perl6
16:24 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.
16:24 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
16:25 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:26 ggoebel joined #perl6
16:27 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 #perl6
16:29 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 kalkin-_ of course you can't install both in parallel
16:30 kalkin-_ 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....
16:31 kalkin-_ If i can't use/install different versions/implementations of same package then your package manager is broken
16:31 kalkin-_ s/package/unit/g
16:32 kalkin-_ (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
16:32 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.
16:32 iH2O how can i choose which rakudo version to install on fedora? it seems the only choice is 'dnf install rakudo-star.x86_64'
16:32 RabidGravy kalkin-_, rather than use language like "your package manager is broken" maybe it's actually provide a working improvement?
16:33 RabidGravy iH20 I think it's on 2016.11 at the moment, I just use rakudobrew
16:33 iH2O wow
16:33 kalkin-_ RabidGravy: I don't care about perl6 packages beeing shipped with dnf/apt/WHATEVER
16:33 iH2O i've already installed it
16:33 iH2O by hand
16:34 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
16:35 rafsch Perl 6 is still Perl, if you guys abandon the strenghts Perl5 has, might as well give up.
16:36 kalkin-_ rafsch: what kind of strength do you mean in this case?
16:36 rafsch Support for old code.
16:37 girafe joined #perl6
16:37 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:39 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:40 kalkin-_ rafsch: also there is currently no legacy code, that needed to be migrated to some other schema
16:41 kalkin-_ 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:42 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 #perl6
16:46 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:47 rafsch "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:49 RabidGravy For discussion https://github.com/perl6/DBIish/issues/84
16:52 faraco guys, when installing module from perl6 repo that has executable script in bin
16:53 faraco why the PATH to those scripts are not in system PATH?
16:53 faraco it only seems, in $HOME/.rakudobrew/bin
16:53 faraco ~/.rakudobrew/moar-nom/install/share/perl6/site/bin$
16:53 faraco seems left out
16:54 moritz we can't seem to install to /bin usually :/
16:54 notviki faraco: you need to run `rakudobrew rehash`
16:54 moritz have you read rakudobrew's README?
16:55 faraco no, I don't. I think it's something wrong with my installation.
16:55 faraco well
16:55 faraco nevermind then
16:55 notviki heh
16:55 RabidGravy rakudobrew does something with the things in bin that may not be what you want
16:56 stmuk "it's shims all the way downn"
16:56 RabidGravy yeah
16:56 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 #perl6
16:58 rafsch SmokeMachine: That's what macros are  for.
17:00 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
17:01 RabidGravy SmokeMachine, function traits are do-able
17:01 RabidGravy I've got examples all over the place
17:01 rafsch SmokeMachine: Macros can be traits, like "is parsed".
17:03 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 RabidGravy so you can do basically what you want
17:09 * rafsch predicts that when macros are released people will want to reimplement most of the language with them just for the bragging points.
17:14 SmokeMachine Another question: what is it for the Slang class?
17:15 RabidGravy and most of the time they will be using  macros which would be better done using other language features
17:15 Actualeyes joined #perl6
17:15 RabidGravy SmokeMachine, which Slang class?
17:15 RabidGravy I actually meant to bring this up before
17:15 RabidGravy m: slang Foo { }
17:15 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␤»
17:16 notviki src/core/Slang.pm
17:16 RabidGravy the parser understands slang, but just leaves the whole thing in the lurch
17:17 SmokeMachine RabidGravy: https://github.com/rakudo/rakudo/blob/beec02a6fa69e3ac290b4dd24c07d87a9f248b13/src/core/Slang.pm
17:18 RabidGravy well that appears to do precisely jack
17:18 rafsch NIY
17:18 rafsch ?
17:18 RabidGravy if someone had some intent for it, it should be documented somehow
17:19 SmokeMachine m: say Slang.new
17:19 camelia rakudo-moar 905242: OUTPUT«Slang.new(:grammar(Any), :actions(Any))␤»
17:19 ugexe there are 3 slangs inthe ecosystem
17:20 RabidGravy yah but even if you populate the attributes it doesn't do anything as far as I can tell
17:21 Actualeyes left #perl6
17:21 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 "
17:22 RabidGravy if you want to implement a slang *right now* look in the ecosystem for current implementations
17:22 SmokeMachine RabidGravy: yes, I did...
17:22 RabidGravy right
17:24 ugexe kalkin-_: Distribution name is not tied to a main module name, why do you think it is?
17:24 ugexe you can create a Distribution Foo::Bar that has no Foo/Bar.pm6
17:25 ugexe 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
17:25 RabidGravy or something like that
17:26 RabidGravy 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:27 RabidGravy 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
17:28 RabidGravy can you?
17:28 ugexe yes
17:28 RabidGravy github link or it didn't happen
17:29 domidumont joined #perl6
17:29 ugexe github link to what exactly?
17:30 ugexe [zef|panda] install URI::Escape
17:31 ugexe installs URI
17:34 rafsch Distros have a plan to package all of CPAN automatically, the package name then would be something like liburi-perl6?
17:35 ugexe packagers have way bigger problems than what you guys are goign on about
17:35 ugexe how do you handle module names (or even *versions*) with unicode in them?
17:36 khw joined #perl6
17:36 ugexe apt-get install lib[poop-emoji]-perl6
17:37 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 rafsch That's debian's policy.
17:38 ugexe thats my point
17:38 rafsch "lib[poop-emoji]-perl6" is not valid even.
17:38 ugexe thats my point
17:38 faraco guys
17:38 faraco I got this error
17:38 faraco http://pastebin.com/XFTF3eu9
17:38 faraco while running test
17:39 faraco on META.info
17:39 rafsch ugexe: I'm complementing what you said.
17:39 faraco what is wrong with my META.info?
17:39 faraco I use Module::Minter
17:40 ugexe first, try to fit all of that into 1 sentence because its hard to follow on 10 different lines in here
17:40 ugexe secondly your META.info in that gist cannot be the entire thing
17:41 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
17:42 faraco there is }
17:42 ugexe read the part after that
17:42 faraco nothing else. that is the last thing
17:43 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 }
17:45 faraco oh, my bad for misunderstood. yeah, now the error is more detailed after removing the comma
17:47 ugexe you probably should s{lib//}{lib/} as well
17:47 ugexe if Module::Minter generated that then its wrong
17:48 wololoooo joined #perl6
17:49 faraco okay fixed it. Module::Minter, generate "author" instead of "authors" made the test return error.
17:50 faraco also it doesn't have the "perl" :
17:50 faraco well, it's not updated, so my bad.
17:50 faraco the Module::Minter*
17:52 rafsch joined #perl6
17:59 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 kalkin-_ "name" : "JSON::Fast"
18:02 ugexe "usually"
18:04 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 #perl6
18:05 notviki So, who's up for a bit of spam to see the new bot? :)
18:05 mr_ron left #perl6
18:05 notviki Here's how it'll show pushes with 3 or fewer commits:
18:05 Guest84397 geth-test/moew-branch: 8b986f1ec7 | (Zoffix Znet)++ | README.md
18:05 Guest84397 geth-test/moew-branch: meow1-0.381293480954163
18:05 Guest84397 geth-test/moew-branch:
18:05 Guest84397 geth-test/moew-branch: meow3
18:05 Guest84397 geth-test/moew-branch: review: https://github.com/zoffixznet/geth-test/commit/8b986f1ec7
18:05 notviki And here's how 3-10 commits would look like:
18:06 Guest84397 geth-test/moew-branch: 4 commits pushed by zoffixznet++
18:06 Guest84397 geth-test/moew-branch: d912ccd06d | meow1-0.140965042395657…
18:06 Guest84397 geth-test/moew-branch: 493da58f84 | meow1-0.202295796495799…
18:06 Guest84397 geth-test/moew-branch: 2c63e287d8 | meow1-0.922152836952615…
18:06 Guest84397 geth-test/moew-branch: fdf25e060a | meow1-0.657854601894333…
18:06 Guest84397 geth-test/moew-branch: review: https://github.com/zoffixznet/geth-test/compare/d912ccd06d...fdf25e060a
18:06 notviki And here's how 10+ commits would look like:
18:06 curt_ joined #perl6
18:06 Guest84397 geth-test/moew-branch: 15 commits pushed by zoffixznet++
18:06 Guest84397 geth-test/moew-branch: review: https://github.com/zoffixznet/geth-test/compare/fc9d2fe5a8...a1079ba845
18:06 notviki \o/
18:06 notviki And too-long commit messages are abridged, so review link would still be present.
18:06 samcv foo foo foo
18:07 samcv cool
18:07 notviki I'll also make it notify when a new PR is created
18:08 samcv cool
18:08 samcv meow
18:11 ugexe kalkin-_: right, I would agree
18:13 shayan_ joined #perl6
18:14 notviki and it's only 120 lines of code :o
18:21 * notviki shakes head
18:22 notviki The TAP spec folks are somewhat tone deaf https://github.com/TestAnything/testanything.github.io/pull/36#issuecomment-271167987
18:22 notviki Users shouldn't need to be educated on the specifics of TAP :/
18:26 SmokeMachine RabidGravy: but is there specified a slang keyword?
18:26 SmokeMachine Or you mean a module?
18:26 SmokeMachine RabidGravy: but is there specified a slang keyword?
18:28 notviki m: use Test; ok 1, "foo\nbar\nber";
18:28 camelia rakudo-moar 905242: OUTPUT«ok 1 - foo␤bar␤ber␤»
18:28 notviki :(
18:29 andrzejku joined #perl6
18:29 notviki m: use Test; ok 1, "foo\nok\nnok";
18:29 camelia rakudo-moar 905242: OUTPUT«ok 1 - foo␤ok␤nok␤»
18:30 notviki so that'd blow the harness up :/
18:30 AlexDaniel joined #perl6
18:34 AlexDaniel a lot of new names here. Nice to see
18:36 labster joined #perl6
18:37 AlexDaniel notviki: githubbabble? Nice. :D
18:39 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:44 raschipi joined #perl6
18:44 SmokeMachine Where's the slang keyword spec?
18:46 TEttinger joined #perl6
18:49 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:50 notviki SmokeMachine: I don't think it's specced yet
18:50 notviki AlexDaniel: dalek replacement
18:50 AlexDaniel good good
18:50 SmokeMachine notviki: :(
18:50 mst notviki: er. you turned ENFORCE on.
18:51 mst notviki: /msg nickserv help set enforce
18:51 notviki mst: yeah, I don't know how to turn it off
18:51 mst notviki: ... 'set enforce off' !
18:51 notviki Thanks :)
18:51 mst my superpower: reading the documentation
18:51 notviki :D
18:52 mst seriously though if you're ever confused by services, start off with '/msg thingserv help' and go from there
18:52 mst 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
18:53 notviki Well, I see what I was doing wrong the first time I tried. I did /nickserv RELEASE
18:53 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
18:53 notviki :)
18:54 * AlexDaniel hoped that thingserv is a thing
18:55 mst heh
18:55 espadrine joined #perl6
18:57 Abeer joined #perl6
19:01 dalek ecosystem: 1e900cf | faraco++ | META.list:
19:01 dalek ecosystem: Update META.list
19:01 dalek ecosystem: review: https://github.com/perl6/ecosystem/commit/1e900cfd5c
19:01 dalek ecosystem: ad82afa | (Zoffix Znet)++ | META.list:
19:01 dalek ecosystem: Merge pull request #282 from faraco/patch-1
19:01 dalek ecosystem:
19:01 dalek ecosystem: Update META.list
19:01 dalek ecosystem: review: https://github.com/perl6/ecosystem/commit/ad82afa0f9
19:02 notviki .oO( where do people get the idea it should be named META.list instead of META6.json.... )
19:02 SmokeMachine RabidGravy: https://github.com/FROGGS/p6-Slangy/blob/master/lib/Slangy.pm
19:03 domidumont joined #perl6
19:07 hartenfels joined #perl6
19:11 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:12 notviki cool
19:12 ranguard RabidGravy: https://cpan.metacpan.org/authors/id/P/PS/PSIXDISTS/Perl6/
19:13 ranguard your stuff will the in there
19:13 notviki huggable: cpan
19:13 huggable notviki, nothing found
19:14 notviki huggable: cpan :is: Perl 6 dists on CPAN: https://cpan.metacpan.org/authors/id/P/PS/PSIXDISTS/Perl6/
19:14 huggable notviki, Added cpan as Perl 6 dists on CPAN: https://cpan.metacpan.org/authors/id/P/PS/PSIXDISTS/Perl6/
19:15 ranguard notviki: this should only be temporary.. until authors upload themselves
19:16 ranguard RabidGravy: I understood modules.perl6.org to be built from https://raw.githubusercontent.com/perl6/ecosystem/master/META.list
19:16 notviki ranguard: makes sense
19:16 ranguard ^^ anyone know different?
19:16 notviki ranguard: That's accurate
19:17 RabidGravy but there is an intermediate step
19:18 notviki No, modules.perl6.org uses that file, as far as I recall.
19:19 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
19:20 notviki ranguard: yes, could be. For example if the META url is a 404 or has a JSON error in it.
19:20 notviki buggable: eco
19:20 buggable notviki, Out of 767 Ecosystem dists, 124 have warnings and 4 have errors. See https://modules.perl6.org/update.log for details
19:20 ranguard notviki: https://github.com/perl6/ecosystem/issues/255 is the context of why I'm asking
19:20 ranguard notviki: cool, so is there an output somewhere of the 'good' modules?
19:21 notviki huh 4 406s :S
19:21 * ranguard doesn't want to impliment the validation
19:21 ranguard see my comments today at the end of #255
19:22 ranguard 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?
19:23 ranguard well, for a start one without the 4 that have errors
19:24 ranguard do the ones with warnings make it to the site?
19:24 * ranguard guesses they do
19:25 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:26 notviki 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
19:27 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:28 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.
19:28 ranguard if something it's valid _now_ then it can't be installed, so isn't really any use to anyone?
19:28 ranguard notviki: https://github.com/perl6modules/perl6-module-uploader/blob/master/upload_tracker.json :)
19:29 * ranguard is perl6modues :)
19:29 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?
19:30 notviki 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
19:30 ranguard so they arn't 'valid'
19:31 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
19:31 notviki But 1 minute later everything goes to normal....
19:31 rumble joined #perl6
19:31 RabidGravy I'd be quite happy to do normal pause uploads
19:31 ranguard RabidGravy++ # far the best solution
19:32 ranguard notviki: so then when I next run my code I'll get the 'valid' list
19:33 ranguard notviki: this is about centralising the validation rather than expecting it to directly effect the output on modules.perl.org
19:33 faraco joined #perl6
19:33 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
19:33 faraco moritz: thanks for the invitation! I appreciate that!
19:34 grumblebee joined #perl6
19:34 mst right
19:34 mst at some point we need to replace the duct tape and baling wire that is the "ecosystem" with a real solution
19:35 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 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:45 stmuk modules.perl6.org doesn't correctly display the multiple "Foo" modules
19:48 RabidGravy I guess it would be fairly time consuming to discover which of those 182 already have a PAUSE id
19:49 RabidGravy unless someone fancies a "small data mining project"
19:49 bjz joined #perl6
19:51 domidumont joined #perl6
19:52 wamba joined #perl6
19:53 notviki Well, looks like I have a completed Geth prototype ready for the switch...
19:56 stmuk notviki: I'm wondering whether modules.perl6.org should use the zef JSON feed rather than the panda one
19:57 stmuk 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
19:58 notviki It uses the META.list :/
19:58 notviki I don't know why people don't believe me :\
19:58 notviki https://github.com/perl6/modules.perl6.org/blob/master/bin/build-project-list.pl#L18-L19
19:59 stmuk https://raw.githubusercontent.com/FROGGS/p6-Foo-v1.0.0/master/META.info
19:59 stmuk https://raw.githubusercontent.com/FROGGS/p6-Foo-v1.2.0/master/META.info
20:01 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
20:01 RabidGravy which is utter cock
20:02 moritz panda uses http://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.
20:04 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
20:04 notviki No, the site simply doesn't list multiple versions of the same module (why would it)
20:05 ugexe because of :auth
20:05 notviki :auth is the same
20:05 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
20:07 stmuk I wish there was one Golden Source of Truth which was JSON and not hosted on github
20:07 notviki It already does: http://modules.perl6.org/.json
20:07 RabidGravy yes
20:08 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 notviki (travis, Issues, stargazers, etc)
20:08 ugexe fwiw tony-o is working on an api as well
20:08 notviki last updated time
20:08 ugexe curl -H "Content-Type: application/json" -X POST -d '{"module":"zef", "version":"*"}' http://modules.zef.pm/api/module-search && echo ''
20:08 ugexe {"data":[{"auth":"github:ugexe","commit":"d3cd8180b1d69aad599770c7f818fac82b7ec5c6","short-name":"zef","ver":"*"}],"success":1}
20:09 RabidGravy AAAAAAAAAAAAAAAAAAAAARGH
20:09 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
20:10 notviki buggable: eco IRC::Client
20:10 buggable notviki, Found 4 results: IRC::Client, IRC::Client::Plugin::HNY, IRC::Client::Plugin::Factoid, IRC::Client::Plugin::UserPoints. See http://modules.perl6.org/#q=IRC%3A%3AClient
20:10 notviki ^ that uses modules.perl6.org API
20:11 stmuk buggable: eco Foo
20:11 buggable stmuk, Found 5 results: Slang::Tuxic, Slang::Piersing, Foo, Acme::DSON, WebService::FootballData. See http://modules.perl6.org/#q=Foo
20:11 RabidGravy ugexe, I agree but in the meanwhile there are all sorts of interim solutions being floated and implemented
20:12 stmuk we have de facto different ecosystems anyway now
20:12 Geth joined #perl6
20:13 Geth joined #perl6
20:13 melezhik joined #perl6
20:13 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
20:13 stmuk the perl6 requirements are so different
20:14 domidumont joined #perl6
20:14 FROGGS stmuk: CPAN can be used...
20:15 FROGGS stmuk: I wrote an indexer that recognizes Perl 6 dists and updates several json files that a client can use for lookups
20:16 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
20:16 notviki awwww
20:16 * notviki kicks Geth
20:17 FROGGS ugexe: probably...
20:17 Geth joined #perl6
20:17 ugexe FROGGS: thats what I was using to index CPAN, but they don't get added anymore :(
20:18 FROGGS uhh, why that?
20:19 RabidGravy cause it got broken
20:19 ugexe http://www.cpan.org/authors/id/P/PS/PSIXDISTS/Perl6/
20:19 ugexe there are .meta files for some dists/versions but not newer ones
20:20 xinming joined #perl6
20:20 Geth joined #perl6
20:20 RabidGravy I think it's ad-hoc right now
20:20 * geekosaur checks if there's a reaper in channel
20:21 * notviki makes reaper noises
20:21 notviki hmmm... HTTP::Server::Tiny seems to be refusing to start on my server :/
20:21 DrForr Long as it's not a reaver.
20:22 moritz notviki: port already occupied?
20:23 RabidGravy I think we fixed that one the other day
20:23 * garu hugs notviki
20:24 Geth joined #perl6
20:24 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 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:25 * notviki does too many drugs to even remember that conversation
20:25 FROGGS it is still there: https://github.com/andk/pause/blob/master/lib/PAUSE/dist.pm#L1160
20:25 garu notviki: hahahahhaha
20:25 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 :/
20:26 FROGGS RabidGravy: do you know any details *how* it got broken?
20:26 RabidGravy no
20:26 notviki oh lol, I think I know what it is.
20:26 Gasher joined #perl6
20:27 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
20:27 notviki committable6: 4034f71 class { submethod TWEAK { say "hi" } }
20:27 notviki committable6: 4034f71 class { submethod TWEAK { say "hi" } }.new
20:27 committable6 notviki, ¦«4034f71»:
20:27 committable6 notviki, ¦«4034f71»:
20:27 notviki Yup. My perl6 is too old on the server.
20:27 garu notviki: I'll shut up now :)
20:30 xinming joined #perl6
20:34 SmokeMachine Hi garu ! Good to see you!!!
20:34 SmokeMachine Is there any plan to zef implement something like this? http://mojolicious.org/perldoc/Mojolicious/Command/cpanify
20:35 * garu hugs SmokeMachine
20:36 moritz SmokeMachine: why would this be something in zef?
20:36 RabidGravy SmokeMachine, what does that even do?
20:36 moritz and not, say, a separate project?
20:38 stmuk does mojo have an email client yet?
20:38 RabidGravy probably
20:38 RabidGravy :)
20:38 moritz is it self-aware? :-)
20:39 RabidGravy it'll go full circle and become a text editor
20:40 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? :)
20:40 RabidGravy SmokeMachine, small and focussed is best, feel free to make it :)
20:42 ribasushi joined #perl6
20:48 leego joined #perl6
20:49 leego joined #perl6
20:55 travis-ci joined #perl6
20:55 travis-ci Doc build failed. Zoffix Znet 'Merge pull request #1118 from JJ/master
20:55 travis-ci https://travis-ci.org/perl6/doc/builds/190061868 https://github.com/perl6/doc/compare/77aa498ad2de...f44ef7570537
20:55 travis-ci left #perl6
20:57 Geth joined #perl6
20:57 Geth geth-test/moew-branch: 0ff5eef324 | (Zoffix Znet)++ | README.md
20:57 Geth geth-test/moew-branch: meow1-0.969506444542017
20:57 Geth geth-test/moew-branch:
20:57 Geth geth-test/moew-branch: meow3
20:57 Geth geth-test/moew-branch: review: https://github.com/zoffixznet/geth-test/commit/0ff5eef324
20:57 Geth geth-test/moew-branch: 121a07fe99 | (Zoffix Znet)++ | README.md
20:57 Geth geth-test/moew-branch: meow1-0.403638012294927
20:57 Geth geth-test/moew-branch:
20:57 Geth geth-test/moew-branch: meow3
20:57 Geth geth-test/moew-branch: review: https://github.com/zoffixznet/geth-test/commit/121a07fe99
20:57 notviki k
20:57 RabidGravy groovetastic
20:58 Geth doc: 5694e78445 | (Zoffix Znet)++ | README.md
20:58 Geth doc: Replace tabs with spaces
20:58 Geth doc:
20:58 Geth doc: Fixes travis build
20:58 Geth doc: review: https://github.com/perl6/doc/commit/5694e78445
20:58 notviki \o/
21:04 AlexDaniel .tell dalek We like dogfood. Change the webhook to http://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.
21:04 AlexDaniel oops
21:04 AlexDaniel .tell dalek #perl6 I mean
21:04 yoleaux AlexDaniel: I'll pass your message to dalek.
21:05 AlexDaniel notviki: you can save one line of the output by not printing an empty line after the title
21:05 AlexDaniel just add « » around the first line or something
21:09 jraglin joined #perl6
21:13 ocbtec joined #perl6
21:15 thisiswhoIam joined #perl6
21:17 notviki AlexDaniel: what channels does it announce the whateverables in?
21:17 AlexDaniel notviki: this one
21:17 notviki Ah
21:21 thisiswhoIam Anybody familiar with how to install perl6 using rakudobrew?
21:21 thisiswhoIam I'm getting an error when running "rakudobrew install panda"
21:21 thisiswhoIam error: pathspec 'nom' did not match any file(s) known to git.
21:21 thisiswhoIam Then later...
21:21 thisiswhoIam # Looks like you planned 16 tests, but ran 14
21:21 thisiswhoIam t/02-shell-command.t ..
21:21 thisiswhoIam Dubious, test returned 255 (wstat 65280, 0xff00)
21:21 thisiswhoIam Failed 2/16 subtests
21:21 notviki well.. now I want to play some Mass Effect :P
21:21 thisiswhoIam Am I missing a path variable? I already added the .rakudobrew/bin directory.
21:21 notviki thisiswhoIam: why do you need rakudobrew?
21:22 notviki thisiswhoIam: it's not for regular users. Use Rakudo Star distro instead: http://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.
21:24 RabidGravy If you weren't aware https://www.bleepingcomputer.com/news/security/mongodb-apocalypse-is-here-as-ransom-attacks-hit-10-000-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."
21:25 notviki It's a scary thought there were so many of them
21:25 geekosaur sounds about par
21:25 lizmat .oO( web scale )
21:25 notviki lizmat++
21:25 RabidGravy thisiswhoIam, the first message is expected, can't help with the test failure without the actual results
21:26 AlexDaniel “Environmental Variables“ wtf?
21:27 notviki ? what
21:27 thisiswhoIam RabidGravy: I didn't want to paste the whole message in here: see
21:27 thisiswhoIam https://unix.stackexchange.com/questions/335841/error-installing-perl6-using-rakudobrew-panda-library-installation-fails
21:28 AlexDaniel notviki: um, like… I'm not a native speaker right, but https://en.wikipedia.org/wiki/Environment_variable
21:29 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
21:30 geekosaur (that is, git is expecting a reference to a file in the repo)
21:30 RabidGravy it does that every time
21:30 RabidGravy 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.
21:31 thisiswhoIam I'm trying zef right now.
21:31 RabidGravy but isn't a problem
21:31 geekosaur as to the Shell::Command test... what platform is this on?
21:31 RabidGravy the issue seems to be withe Shell::Command
21:32 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)
21:32 thisiswhoIam I'm on linux
21:32 gcole joined #perl6
21:33 notviki uuuhh.. that article ends on such a weird note...
21:33 bjz joined #perl6
21:33 notviki thisiswhoIam: yes, it's a package installer as well and a better one at that
21:34 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
21:34 geekosaur it's doing which('perl6')
21:35 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 #perl6
21:36 thisiswhoIam My path is:
21:36 thisiswhoIam 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
21:36 notviki looks fine to me
21:36 Ven joined #perl6
21:37 geekosaur did you 'export' it?
21:37 thisiswhoIam I just added it my .bashrc and reloaded konsole
21:38 dugword joined #perl6
21:39 travis-ci joined #perl6
21:39 travis-ci Doc build passed. Zoffix Znet 'Replace tabs with spaces
21:39 travis-ci https://travis-ci.org/perl6/doc/builds/190069811 https://github.com/perl6/doc/compare/f44ef7570537...5694e7844504
21:39 travis-ci left #perl6
21:39 thisiswhoIam which perl6
21:39 thisiswhoIam /home/rob/.rakudobrew/bin/perl6
21:42 RabidGravy weird
21:46 bjz joined #perl6
21:54 Geth doc: ea7e7c2e14 | (Naoum Hankache)++ | doc/HomePage.pod6
21:54 Geth doc: update hyperlink
21:54 Geth doc:
21:54 Geth doc: replace  https://perl6.org/documentation/ by https://perl6.org/resources/
21:54 Geth doc: review: https://github.com/perl6/doc/commit/ea7e7c2e14
21:54 Geth doc: ea8f5420de | (Zoffix Znet)++ | doc/HomePage.pod6
21:54 Geth doc: Merge pull request #1110 from hankache/patch-1
21:54 Geth doc:
21:54 Geth doc: update hyperlink
21:54 Geth doc: review: https://github.com/perl6/doc/commit/ea8f5420de
21:55 Ven joined #perl6
21:59 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 :) https://github.com/zoffixznet/geth/blob/master/lib/Geth/Plugin/GitHub.pm6#L79  (the "\n\n" => "\n")
22:01 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:02 diakopter I mean, it did that mostly for the karma thingie
22:02 diakopter but I have no idea whether there's even still a karma bot
22:02 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 joined #perl6
22:04 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 :)
22:04 notviki (which is also missing in Pull Requests hooks :(
22:04 diakopter did you see my following messages
22:04 diakopter it was for karma, but I dunno if anyone cares
22:04 diakopter I mean, presumably most people would prefer at least their github username instead of long name
22:05 diakopter notviki: ^
22:05 thisiswhoIam One question about boilerplate in my scripts. I usually use something like:
22:05 thisiswhoIam use feature ':5.18';
22:05 thisiswhoIam use warnings;
22:05 thisiswhoIam use diagnostics;
22:05 thisiswhoIam use utf8;
22:05 thisiswhoIam binmode STDOUT, ":utf8";
22:05 thisiswhoIam in my perl scripts. How much of that do I need in perl6? What about use strict?
22:05 AlexDaniel thisiswhoIam: none
22:06 thisiswhoIam perfect - thank you.
22:07 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: https://6guts.wordpress.com/2016/02/09/a-few-words-on-perl-6-versioning-and-compatibility/
22:08 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 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 AlexDaniel especially given that perl 6 files tend to have distinct extensions, usually
22:09 AlexDaniel and also there's a shebang line…
22:10 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
22:10 AlexDaniel um… huh?
22:11 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
22:12 AlexDaniel 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
22:13 notviki thisiswhoIam: no, there's no compatibility. You can use Inline::Perl5 to use Perl 5's modules tho
22:13 notviki buggable: eco Inline::Perl5
22:13 buggable notviki, Inline::Perl5 'Use Perl 5 code in a Perl 6 program': https://github.com/niner/Inline-Perl5
22:15 thisiswhoIam1 joined #perl6
22:16 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
22:16 AlexDaniel thisiswhoIam1: https://github.com/perl6/doc/issues/778
22:16 timotimo and test files are just .t same as in perl5
22:16 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
22:17 * AlexDaniel reopens the issue…
22:17 RabidGravy I don't use extensions on scripts for the most part
22:18 b2gills m: say "use '{ <<pl p6 pl6 ''>>.pick }' for the extension"
22:18 camelia rakudo-moar fbbe44: OUTPUT«use '' for the extension␤»
22:18 b2gills m: say "use '{ <<pl p6 pl6 ''>>.pick }' for the extension"
22:18 camelia rakudo-moar fbbe44: OUTPUT«use 'p6' for the extension␤»
22:19 AlexDaniel but yes, that's a good point. Chances are you don't need an extension for the script at all
22:21 RabidGravy it's a shame the modules need extensions really
22:22 RabidGravy infact only the File CUR does
22:22 labster joined #perl6
22:22 RabidGravy the Installed doesn't need them
22:27 BenGoldberg joined #perl6
22:33 newbie1 joined #perl6
22:34 newbie1 joined #perl6
22:35 thisiswhoIam joined #perl6
22:35 geekosaur joined #perl6
22:36 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:37 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 AlexDaniel thisiswhoIam: so thanks for bringing it up
22:46 thisiswhoIam joined #perl6
22:47 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:50 thisiswhoIam left #perl6
22:50 Ben_Goldberg joined #perl6
23:02 b2gills When my DSL modem was getting flaky ( and eventually died ) all I had to do was replace the two capacitors.
23:08 Ben_Goldberg joined #perl6
23:08 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»
23:08 BenGoldberg m: sub foo { new Slip }; print 1, 2, foo, 3;
23:08 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;␤»
23:08 BenGoldberg m: sub foo { slip }; print 1, 2, foo, 3;
23:08 camelia rakudo-moar fbbe44: OUTPUT«123»
23:12 Geth doc: a433137046 | (Wenzel P. P. Peppmeyer)++ | doc/Language/containers.pod6
23:12 Geth doc: show recursive data structures and name the consequence (garu++)
23:12 Geth doc: review: https://github.com/perl6/doc/commit/a433137046
23:13 gfldex did Dr Who finnaly succeed?
23:18 skids joined #perl6
23:21 diakopter notviki: next you could do camelia...?
23:22 diakopter I mean, just the irc portion, not the rebuild scripts yet
23:24 notviki What's wrong with camelia?
23:28 AlexDaniel m: say 42
23:28 camelia rakudo-moar fbbe44: OUTPUT«42␤»
23:28 AlexDaniel diakopter: in fact, what's wrong with evalable?
23:28 AlexDaniel e: say 42
23:28 evalable6 AlexDaniel, rakudo-moar fbbe446: OUTPUT«42»
23:29 AlexDaniel it cannot run stuff on r-j yet, but I'll get to it soon
23:31 diakopter AlexDaniel: oh, I didn't know about it
23:31 diakopter notviki: well it's in p5 still, I thought
23:31 AlexDaniel but you did know about committable, right?
23:32 diakopter no
23:32 AlexDaniel … what about bisectable? :)
23:32 diakopter I recall reading about that one
23:32 AlexDaniel like, where have you been all that time ;)
23:32 diakopter out and about
23:32 AlexDaniel c: 2015.12,HEAD say rand
23:32 committable6 AlexDaniel, ¦«2015.12»: 0.883002107015713␤¦«HEAD»: 0.594236550908316
23:32 AlexDaniel c: 2014.01,HEAD say rand
23:32 committable6 AlexDaniel, ¦«2014.01»: 0.406725␤¦«HEAD»: 0.316305477499301
23:32 diakopter that's neat
23:33 diakopter are those written in p6
23:33 AlexDaniel yes
23:33 AlexDaniel all 6 *able6 bots are written in p6 :)
23:33 diakopter notviki: I was only suggesting camelia because it was written in p5, last I checked
23:33 pecastro joined #perl6
23:33 diakopter notviki: same reason I suggested dalek
23:33 khw joined #perl6
23:35 notviki diakopter: is p5 going away any time soon? :)
23:36 AlexDaniel no, but dogfood
23:36 notviki I wrote Geth because dalek is a buggy POS and kept choking on my commit messages
23:36 notviki Rewriting a working piece of software just for the sake of language change is dumb.
23:38 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
23:39 AlexDaniel I reported several bugs just because of whateverables
23:39 diakopter notviki: including the kill with timeouts
23:39 diakopter notviki: and memory limits
23:39 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 #perl6
23:41 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 #perl6

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo