»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend!
Set by moritz on 22 December 2015.
00:02 dataf3l left, pierre__ left, dataf3l joined 00:05 dataf3l left, dataf3l joined 00:07 dataf3l left 00:08 dataf3l joined 00:11 dataf3l left, dataf3l joined 00:14 dataf3l left, dataf3l joined 00:16 dataf3l left 00:17 dataf3l joined 00:19 dataf3l left 00:20 dataf3l joined 00:23 dataf3l left, dataf3l joined 00:25 dataf3l left 00:26 dataf3l joined, cdg left 00:28 xfix left, dataf3l left 00:29 dataf3l joined 00:32 dataf3l left, dataf3l joined 00:34 cdg joined, small-wolf joined 00:36 dataf3l left 00:37 dataf3l joined 00:38 cdg left 00:40 dataf3l left, mawkish_ left, mawkish_ joined 00:41 dataf3l joined, Gasher joined 00:43 dataf3l left 00:44 dataf3l joined 00:47 dataf3l left 00:48 dataf3l joined 00:50 dataf3l left 00:51 dataf3l joined 00:52 mawkish_ left 00:55 mawkish_ joined, dataf3l left 00:56 dataf3l joined 00:58 rburkholder joined 01:00 dataf3l left 01:01 dataf3l joined 01:02 wamba left 01:03 pierre_ joined 01:06 dataf3l left 01:07 dataf3l joined 01:08 pierre_ left 01:11 dataf3l left 01:12 mawkish_ left, dataf3l joined 01:14 dataf3l left 01:15 mawkish_ joined, dataf3l joined 01:18 dataf3l left 01:19 dataf3l joined, mawkish_ left 01:21 dataf3l left 01:22 aborazmeh joined, aborazmeh left, aborazmeh joined, dataf3l joined, mawkish_ joined 01:24 Gasher left, dataf3l left 01:26 dataf3l joined, cibs left 01:28 cibs joined, dataf3l left 01:29 BenGoldberg joined, espadrine left, dataf3l joined 01:32 dataf3l left, dataf3l joined 01:35 dataf3l left, cdg joined, dugword left 01:36 BenGoldberg left, dataf3l joined 01:38 BenGoldberg joined, dataf3l left 01:39 cdg left, dataf3l joined 01:41 dataf3l left 01:42 dataf3l joined 01:44 dataf3l left 01:45 Ben_Goldberg joined, BenGoldberg left, Ben_Goldberg is now known as BenGoldberg, dataf3l joined 01:47 dataf3l left 01:48 dataf3l joined
notviki realizes 2002 In Flame's song "Cloud Connected" all of a sudden is not a nonsensical phrase in 2016 :P 01:48
In Flames
www.youtube.com/watch?v=CAXtDPKkOlA 01:49
01:50 dataf3l left 01:51 kalkin joined
kalkin hi 01:52
01:52 dataf3l joined
lucs How can I here avoid the if/else and have the foo() invocation not repeated?: if $some-condition { foo(:$a, :$b, :$c) } else foo(:$a, :$b, :$c, :$d) } 01:52
kalkin I just notice there is no way in zef to install a specific verson of a module, even if the git managed source code is properly tagged 01:53
lucs (got my brackets wrong there, but there it is) 01:54
01:54 djbkd joined
kalkin I would love to somehow match version managment tags to actual module versions, but there is no way besides adding aditional logic to zef 01:54
(or writing a script which checksout the module with proper tag and then cd $DIR && zef install .) 01:55
lucs I'd like something like foo(:$a, :$b, :$c, 「nothing here if $some-condition, else pass the :$D arg」)
01:57 beatdown left
kalkin May be the module itself can provide the information about different versions in META6.json? 01:57
but I don't think it's a nice solution 01:58
this would make META6.json administration annoying, but it could also be automated with mi6 release or something 01:59
02:02 dataf3l left
geekosaur thought zef was being updated with version support at some point 02:02
(supposedly prior to it replacing panda) 02:03
02:03 dataf3l joined
kalkin geekosaur: but how should this versioning logic work? 02:05
02:05 dataf3l left
mspo feels like a very possible enhancement 02:05
ugexe: ?
kalkin I would patch it in if I would know how perl6 modules should map different versions to version control tags
02:06 dataf3l joined
mspo `zef install "CSV::Parser:auth<tony-o>:ver<0.1.2>"` 02:06
from github.com/ugexe/zef
kalkin mspo: yes but it currently just checks if such a distribution is known, but it doesn't check CSV:Parser git for version tag x.y.
AFAIK zef just gathers it's data from HEAD of each repository containing a META file 02:07
which is kind of suboptimal
mspo how about this version? `zef install github:tony-o:CSV--Parser:0.1.2`
kalkin also people don't have the habbit of versioning their dependencies 02:08
mspo indeed
kalkin git ls-remote -t git://github.com/tony-o/perl6-csv-parser.git returns nothing 02:09
02:09 dataf3l left
kalkin this means zef has no idea how to fetch any other version besides the one in HEAD/META.json version field 02:10
02:11 dataf3l joined
kalkin i think it would be nice if some QA standarts would be defined for modules.perl6.org, i.e: version your dependencies, tag your versions 02:11
02:12 kyan left 02:14 cyphase left
AlexDaniel samcv: are there any unknown issues on that page? docs.perl6.org/routine/$EQUALS_SIG...QUALS_SIGN 02:15
02:15 telex left
AlexDaniel samcv: highlighting I mean 02:16
samcv uhm the highlighting is LTA
oh yeah
was gonna say it seems fine lol
other than the hl
AlexDaniel “proto sub” is wrong and “=:=” is wrong
samcv ah yeah i have a ticket open for proto sub
AlexDaniel what about =:= ?
samcv i will fix the =:= right now though
AlexDaniel ok, thank you very much! 02:17
mspo =:= ? I had to check which channel I was in :)
samcv if i work on protosub it's likely that i could break like multi sub
so less than trivial cause. uh how perl6 allows different things. tho i could duplicate it. but don't realy want to do that
mspo =:= and =/= are erlang-ese
TimToady in our case, =:= is what you get after a := 02:18
samcv m: say " ".uniprop('Line_Break') 02:19
camelia rakudo-moar 9fc616: OUTPUT«SP␤»
02:19 cyphase joined
samcv m: say 0x200D.uniprop('Line_Break' 02:19
camelia rakudo-moar 9fc616: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unable to parse expression in argument list; couldn't find final ')' ␤at <tmp>:1␤------> 3say 0x200D.uniprop('Line_Break'7⏏5<EOL>␤»
samcv m: say 0x200D.uniprop('Line_Break') 02:20
camelia rakudo-moar 9fc616: OUTPUT«BK␤»
samcv TimToady, what is your thoughts on having the cmp operation compare alphabetically using proper unicode collation order. so diacritics are not misordered
cause atm Z is less than a
TimToady I just said over in #moarvm :)
samcv oh 02:21
didn't see
02:24 dataf3l left, aindilis joined, dataf3l joined 02:26 dataf3l left
notviki lucs: you ninja-in ( the "|(:)" looks like a ninja sideways) the named arg: foo :$a, :$b, :$c, |(:$d if $d); 02:26
02:27 dataf3l joined
notviki lucs: the :$d if $d ends empty if the :$d is false and if it's true the |() slips into the args for the routine 02:27
s:2nd/':$d'/\$d/ 02:28
02:29 newbie1 left 02:30 telex joined 02:31 kalkin left
SmokeMachine lucs: terrible, but that's what I got: 02:32
m: multi foo(:$a!,:$b!,:$c! --> "without d") {}; multi foo(:$a!,:$b!,:$c!,:$d! --> "with d") {}; my $a=1; my$b=2; my$c=3; my$d; say foo |%(<a b c d> Z=> ($a,$b,$c,$d).grep: *.defined)
camelia rakudo-moar 9fc616: OUTPUT«without d␤»
02:34 mawkish_ left
notviki :/ 02:34
02:34 mawkish_ joined
SmokeMachine notviki: great! 02:35
lucs notviki: Ah, just what I needed. Thanks!
02:35 cdg joined
lucs SmokeMachine: Um, a bit complicated compared to notviki's solution, but thanks anyways :) 02:36
notviki m: my$c=3; dd $c
camelia rakudo-moar 9fc616: OUTPUT«Int $c = 3␤»
02:36 shayan_ joined
shayan_ Why isn’t macperl.com available? 02:36
notviki surprised that even parses
shayan_: it's a secret. Check back in a year for the great reveal of the secret.
SmokeMachine lucs: yes! notviki's much better!
shayan_ @notviki: why can’t you provide the appropriate answer? I am trying to download perl for mac. I’m reading my first programming book, based in perl 02:37
notviki huggable: hug shayan_ 02:38
huggable hugs shayan_
shayan_ Similarly, Mac users can get a copy of MacPerl from the Internet by going to www.macperl.om and following the directions for downloading MacPerl. 02:39
notviki uhuh
02:40 cdg left
notviki shayan_: so what's dsnextgen.com then? 02:40
02:40 cyphase left 02:41 labster left
shayan_ @notviki: your poor mother’s existence. 02:41
@notviki: rot in hell, mother fucker. 02:42
02:42 shayan_ left
notviki Have a nice day! 02:42
02:43 djbkd left
notviki Obviously no one click that URL 02:43
Some fucking malware infested crap.
mspo which url? 02:45
notviki both
02:45 cyphase joined
notviki Heh, he's apparently a 30-minute driving distance away from me. 02:45
I'd email the ISP if I weren't so lazy.... 02:46
02:46 ilbot3 left
mspo looks like it's a parked domain 02:47
notviki .tell moritz may be worth scrubbing this URL and the dsnextgen one below from logs; has an inframe leading to an infested site irclog.perlgeek.de/perl6/2016-12-30#i_13822500
yoleaux notviki: I'll pass your message to moritz.
02:47 ilbot3 joined 02:48 mawkish_ left, cyphase left 02:49 cyphase joined, cyphase left, xtreak joined, cyphase joined, cyphase left 02:50 cyphase joined 02:53 dataf3l left, dataf3l joined 02:56 dataf3l left, dataf3l joined 02:58 labster joined, dataf3l left 02:59 dataf3l joined 03:01 dataf3l left 03:02 dataf3l joined, cyphase left 03:04 mawkish_ joined 03:06 dataf3l left 03:07 dataf3l joined, cyphase joined 03:08 Ben_Goldberg joined, BenGoldberg left, Ben_Goldberg is now known as BenGoldberg 03:09 BenGoldberg left, dataf3l left 03:10 BenGoldberg joined 03:11 dataf3l joined 03:13 dataf3l left
Xliff Hmmm... camelia seems slow. 03:14
m: (2+2).say
BenGoldberg pokes camelia. 03:15
camelia rakudo-moar 9fc616: OUTPUT«4␤»
BenGoldberg wonders what butterflies eat, so he can try bribing her. 03:16
Xliff Over a minute?
m: (2+2).say
camelia rakudo-moar 9fc616: OUTPUT«4␤»
Xliff Better!
Xliff pets camelia
BenGoldberg m: 'alive'.say
camelia rakudo-moar 9fc616: OUTPUT«alive␤»
Xliff m: 42.WHAT.say
camelia rakudo-moar 9fc616: OUTPUT«(Int)␤»
Xliff m: 42.WHY.say
camelia rakudo-moar 9fc616: OUTPUT«(Any)␤»
BenGoldberg m: 42.5.HOW.say 03:17
camelia rakudo-moar 9fc616: OUTPUT«Perl6::Metamodel::ClassHOW.new␤»
BenGoldberg m: 42.5.WHERE.say
camelia rakudo-moar 9fc616: OUTPUT«140623898977248␤»
BenGoldberg m: 42.5.WHERE.say
camelia rakudo-moar 9fc616: OUTPUT«140157770388448␤» 03:18
AlexDaniel eval: 2+2 .say 03:19
evalable6 AlexDaniel, rakudo-moar 9fc616f: OUTPUT«WARNINGS for /tmp/5e91x6ZuyH:␤Useless use of "+" in expression "2+2 ." in sink context (line 1)␤2»
AlexDaniel evalable seems fast!
even though it unpacks an archive every run 03:20
03:20 aborazmeh left
AlexDaniel yea, there's some room for speeding things up. Contributions welcome! 03:20
03:24 Vynce joined 03:27 rburkholder left
BenGoldberg m: # testing ␤'success'.say; 03:28
camelia rakudo-moar 9fc616: OUTPUT«success␤»
BenGoldberg m: say <<WHEE;␤This thing all things devours,␤Birds, beasts, trees, and flowers.␤WHEE␤ 03:30
camelia rakudo-moar 9fc616: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unable to parse expression in shell-quote words; couldn't find final '>>' ␤at <tmp>:5␤------> 3<BOL>7⏏5<EOL>␤ expecting any of:␤ argument list␤ shell-quote words␤ te…»
BenGoldberg m: say q:to/WHEE/;␤This thing all things devours,␤Birds, beasts, trees, and flowers.␤WHEE␤ 03:31
camelia rakudo-moar 9fc616: OUTPUT«This thing all things devours,␤Birds, beasts, trees, and flowers.␤␤»
03:32 cyphase left
BenGoldberg grins. 03:32
03:37 cyphase joined 03:42 bisectable6 joined, ChanServ sets mode: +v bisectable6 03:45 shayan_ joined 03:48 noganex joined, lichtkind__ joined 03:51 noganex_ left, lichtkind_ left 03:55 Vynce left 04:05 pierre_ joined 04:10 pierre_ left 04:30 AlexDaniel left 04:31 regnarg left 04:45 xtreak left 04:47 mawkish_ left, mawkish_ joined, xtreak joined 04:51 mawkish_ left 04:52 mawkish_ joined 04:55 tojo joined 05:09 pyrimidi_ joined, pyrimidine left 05:11 Cabanossi left 05:12 Cabanossi joined 05:20 shayan_ left 05:21 Actualeyes1 joined, Actualeyes left 05:27 mawkish_ left, dugword joined, itcharlie_linux left 05:30 giraffe joined, giraffe is now known as Guest57693
webstrand Is there any way to parse the output of Proc or Proc::Async without waiting for the process to exit? 05:38
05:39 tojo left
webstrand I have a process which is producing formatted output, and I'd like to parse it with a grammar incrementally 05:40
MasterDuke webstrand: you should be able to .tap() the stdout of the proc 05:51
05:54 regnarg joined 05:58 Imme joined 05:59 regnarg left
Imme Join 05:59
06:01 BenGoldberg left 06:07 pierre_ joined 06:08 regnarg joined 06:09 bwisti left 06:10 khw left 06:13 pierre_ left 06:16 bjz joined 06:22 Imme left 06:23 petrutrimbitas joined 06:24 wamba joined 06:26 bjz left 06:33 petrutrimbitas left 06:44 bjz joined 06:48 xtreak left 06:51 xtreak joined, darutoko joined
Woodi hi today :) 06:54
06:57 RabidGravy joined 06:59 telex left
Woodi from backlog:"isn't there an infinitely large family of taylor approximations of functions? it's not so simple" - err... Aleph-0 is for house wifes now ? or mafia, they are rational ppls, needs to count their stuff ;) # <small>warning: backlog rigged<small> :) 06:59
07:00 telex joined 07:06 rburkholder joined
Woodi about functional programming: I think in SICP was chapter about implementing algebra with functions. and replacing assigments with functions :) but it still is academic topic. simple becouse CPUs use registers, assigments, etc :) so, if CPUs will have function calls as cheap as operation on register then we can stop using languages with assignments for performance critical applications 07:07
07:10 thayne joined
Woodi also, if that quantum computers will start to be more popular we will have our free lunch back ! ;) - industry will stop caring about concurency stuff, functional and lazy languages, etc. all that nice thing possibly will be put back on the shelves or even archived somewhere :) but maybe few things from functional world is already assimilated into industry... 07:12
07:22 Tonik joined 07:25 regnarg left 07:33 labster left, pyrimidi_ left, pyrimidine joined 07:34 wamba left 07:35 Tonik left 07:37 dugword left 07:39 Actualeyes1 left 07:53 Actualeyes joined, xtreak left 07:55 xtreak joined
Woodi oo, btw. last months I notice in news used numbers, eg. govs numbers like budget expenses. looks all what we needs in common cases is int64 - govs spends "only" bilions :) 07:55
08:12 regnarg joined 08:16 ths joined
ths Hello, Has anyone managed to get perl6 on raspberry pi using rakudobrew 08:20
08:22 grondilu joined
grondilu is there a quick way to see installed modules without using panda or zef? 08:23
for instance I want to parse a JSON string but I don't know which parser is installed (there are so many on modules.perl6.org)
RabidGravy I have a snippet somwhere, 'ang on 08:25
gist.github.com/jonathanstowe/7028...79d2896fdc 08:29
however that needs, an, er, JSON parser
08:30 wamba joined 08:38 labster joined 08:42 Cabanossi left 08:44 Cabanossi joined
stmuk I'm getting perm errors from the irclog site 08:46
oh fixed now :) 08:47
08:47 xtreak left, xtreak joined 08:49 xtreak left 08:58 pierre_ joined 09:04 domidumont joined 09:06 FROGGS joined
RabidGravy grondilu, fixed to use the approved mechanism gist.github.com/jonathanstowe/7028...79d2896fdc 09:06
09:10 domidumont left, some joined 09:11 domidumont joined 09:12 xfix joined
samcv nice just implemented my bidi bracket matching code ^_^ 09:13
09:22 xtreak joined 09:24 ths left 09:27 regnarg left 09:28 rindolf joined
grondilu m: say <foo bar>.kv 09:32
camelia rakudo-moar acec1e: OUTPUT«(0 foo 1 bar)␤»
grondilu m: say <foo bar>.vk
camelia rakudo-moar acec1e: OUTPUT«No such method 'vk' for invocant of type 'List'␤ in block <unit> at <tmp> line 1␤␤»
grondilu kind of LTA, IMHO 09:33
09:37 dugword joined 09:39 pierre_ left 09:42 dugword left
RabidGravy what that there isn't a vk method on lists? 09:43
m: say ( <foo bar> but role :: { method vk() { self.kv.map( -> $k, $v { $v, $k }) } }).vk 09:49
camelia rakudo-moar acec1e: OUTPUT«((foo 0) (bar 1))␤»
RabidGravy there, fixed it for you :)
actually it should be flatmap to be the same as kv, but hey 09:53
09:59 some left, ced_ left 10:12 bjz_ joined 10:13 bjz left 10:23 iH2O joined 10:29 iH2O left 10:31 wamba left 10:35 woolfy joined 10:40 skids left 10:45 woolfy left 10:49 xtreak left 10:50 xtreak joined
dalek osystem: 1c1af99 | (JJ Merelo)++ | META.list:
Add Math::Constants to ecosystem
osystem: 4a73a7a | (Zoffix Znet)++ | META.list:
Merge pull request #276 from JJ/master

Add Math::Constants to ecosystem
11:04 thayne left 11:06 xtreak left
grondilu m: say qq{""} 11:12
camelia rakudo-moar acec1e: OUTPUT«""␤»
grondilu m: say qq{"{"foo!"}"}
camelia rakudo-moar acec1e: OUTPUT«"{"foo!"}"␤»
11:12 rburkholder left
grondilu ^this surprised me 11:12
grondilu was expecting C<"foo!">
notviki Sorry, we've not implemented clayvorance yet. 11:14
It's interesting that you expected it to view first set of quotes and second set of brackets as delimiters, but not the second set of quotes too? 11:15
Aj 11:16
grondilu to me inside a qq construct, double quotes should lose any special meaning and thus should not prevent curlies to interpolate
11:17 wamba joined
notviki grondilu: it's likely due to this bug: rt.perl.org/Ticket/Display.html?id=130205 11:17
m: say qq|"{"foo!"}"| 11:18
camelia rakudo-moar acec1e: OUTPUT«"foo!"␤»
11:18 kalkin joined, kalkin is now known as kalkin-
moritz this looks correct to me 11:19
yoleaux 02:47Z <notviki> moritz: may be worth scrubbing this URL and the dsnextgen one below from logs; has an inframe leading to an infested site irclog.perlgeek.de/perl6/2016-12-30#i_13822500
notviki moritz: why is it correct?
and which "this" 11:20
grondilu m: say qq{{"{"foo!"}"}}
camelia rakudo-moar acec1e: OUTPUT«"foo!"␤»
notviki grondilu: seems some interaction when the delimiter is reused inside
grondilu yeah
moritz notviki: qq|"{"foo!"}"| is parsed as a string "..." which contains a closure, which returns foo! 11:21
notviki moritz: ah, that sure.
m: say qq{"{"foo!"}"}
camelia rakudo-moar acec1e: OUTPUT«"{"foo!"}"␤»
notviki this isn't
moritz right 11:22
notviki grondilu: sorry for lashing out on you. I'm just really pissed right now :(
11:22 kalkin- left, kalkin- joined
grondilu no worries, I've spent most of my times in much harsher internet places lately. 11:22
11:23 rashc joined 11:25 small-wolf left 11:30 labster left 11:31 rburkholder joined, lukaramu joined 11:32 kalkin- left 11:47 TEttinger left 11:50 wamba left 11:56 darutoko left, darutoko- joined 11:59 darutoko joined 12:01 darutoko- left 12:04 bjz_ left 12:05 bjz joined 12:18 FROGGS left, FROGGS joined 12:23 FROGGS left 12:24 dalek joined, ChanServ sets mode: +v dalek 12:31 ths joined 12:35 rightfold joined
rightfold Does Perl 6 have Perl 5's goto? 12:36
For proper tail calls.
12:37 dalek left 12:38 dalek joined, ChanServ sets mode: +v dalek
notviki rightfold, not yet 12:40
rightfold ok
notviki Well, we ain't got a goto at all, whether it's planned to work like Perl 5's I've no idea
lizmat we've been able to get by so far 12:41
rightfold well it doesn't matter if it's called goto
notviki sure
rightfold as long as it does a proper tail call :P
notviki :)
lizmat also, goto in perl 5 is not really a tail call either
afaik it's really messing with the stack reporting really
notviki oh 12:42
12:42 FROGGS joined
lizmat from what I remember (and this is now close to 5 years ago), doing a call at the end of a sub is cheaper gotoing 12:42
RabidGravy I think the only place in P5 I have used "goto &sub" is in an AUTOLOAD 12:45
12:58 Rawriful joined 12:59 kaare_ left
rashc The docs don't say what's in $*PROGRAM-NAME when the interpreter is reading from $*IN. It only talks about -e. 13:03
notviki rashc: feel free to correct them: github.com/perl6/doc/ 13:06
it's in doc/Language/Variables.pod6
13:07 Rawriful_ joined
RabidGravy it is "interactive" BTW 13:07
13:07 lucasb joined 13:08 Axord left
RabidGravy though it would be cooler if it realised what was happening and had "stdin" or something (and suppressed the "To exit type 'exit' or '^D'") 13:09
13:09 Rawriful left 13:10 darutoko left
lucasb perl6 - <<< 'say $*PROGRAM-NAME' #=> "-" 13:10
this REPL behaviour needs to be fixed 13:11
before starting the REPL, check that stdin is an tty 13:12
notviki Well volunteered!
lucasb I think pmurias added code for this
samcv spectest done. and pass. time for bed :)
13:13 FROGGS left
notviki lucasb: I don't see any indication that that invokation starts the REPL 13:13
Or is that what you mean by fixing?
samcv night @all
notviki night
samcv o/
rashc night
RabidGravy [jonathan@coriolanus squirrel]$ echo 'say $*PROGRAM-NAME' | perl6
To exit type 'exit' or '^D'
lucasb perl6 <<< 'say $*ERR: $*PROGRAM-NAME' 1>/dev/null #=> 'interactive' :)
rashc It hink that, because of the REPl, the filename will have to be '-' for P6 to know it's supposed to read from $*IN 13:15
13:15 ChoHag left
rashc Checking it's a TTY isn't enough. 13:16
stmuk and make it all work on Windows too!
notviki Hilarious: en.wikipedia.org/wiki/USS_Yorktown...ip_testbed
US battlecruiser dead in the water due to div-by-zero error 13:17
13:17 pierre_ joined, pierre_ left, pierre_ joined
rashc Reuiring the '-' avoids a conflict where one might want to use the REPL to process data from $*IN. Just being a TTY doesn't mean it's a program and not data. 13:21
13:23 petrutrimbitas joined
ggoebel perl 6 made it onto a list of hottest up and coming programming languages for 2017... opensource.com/article/16/12/yearb...rends-2016 13:24
rashc Oh, now I understood, it has to check if $*In is a TTY to launch the REPL, not the other way around. 13:25
notviki ggoebel: neat 13:26
kinda puts the pressure on tho.... 13:27
How come we use === Inf in the setting in many places? 13:33
Is it for performance or is the goal to not blow up Failures/div-by-zeros? 13:34
ggoebel I suppose. As a regular long time lurker... it makes me uncomfortable with my level of involvement. I need to do a little self-introspection, change some habits, and deal with some time management and organization issues so I lurk less and contribute more.
13:34 timo joined, timo is now known as Guest29939 13:36 Guest29939 is now known as timotimo 13:44 wamba joined 13:51 nebuchadnezzar left 13:52 nebuchadnezzar joined 13:54 Rawriful_ left 13:58 ths left 14:04 khw joined
tbrowder notviki: i see in the article a few jabs at MS, too 14:07
notviki Not surprising. Multiple sclerosis is a serious condition.... 14:14
tbrowder i've been browsing our sites and don't see any mention of the books we know are in print or in prep, did i miss something?
14:16 rashc left, Axord joined, rasch joined, rasch is now known as raschp 14:19 raschip joined, Khisanth left 14:21 raschp left 14:24 FROGGS joined 14:32 bjz left, Khisanth joined, bjz_ joined 14:41 nebuchadnezzar left 14:42 pierre_ left 14:49 nebuchadnezzar joined 14:59 kalkin- joined
ugexe kalkin-: zef can install specific versions of modules. your actual problem is the ecosystem is not used in a way that allows versioning 15:09
kalkin-: tbrowder has actually used the ecosystem with versioned distributions
kalkin-: see: github.com/perl6/ecosystem/commit/...93fa1aa4b4 Just note zef is entirely able to handle versions, but its still up to the ecosystem to handle what is visible 15:10
15:11 bwisti joined
raschip CPAN support can't come soon enough. 15:11
ugexe CPAN support already exists 15:12
raschip But have to start sending their modules to PAUSE, then. 15:13
ugexe kalkin-: also zef doesn't just check the HEAD of a repository because it doesn't only handle git repositories. realistically people should not be linking to their git repo as their source-url
15:14 kalkin- left 15:15 cdg joined
raschip It's time to leave this kludge behind. 15:16
ugexe if you use --metacpan (when the p6 version is up - it goes down sometimes) or --cpan (which doesn't have many distributions yet) there is no git involved
raschip Should be the deafult and fallback to git. 15:17
ugexe or if you want to use the current ecosystem you put your .tar.gz links as your source-url and link *each version* of your meta file to the ecosystem META.list (by commit id)
raschip Does version support works when using CPAN?
15:17 finanalyst joined, finanalyst left
ugexe version support works for everything 15:18
notviki raschip: the was (and maybe still is) a script running that automatically pushes new versions in our ecosystem to CPAN
huggable: cpan
huggable notviki, nothing found
ugexe the reason it doesnt default to CPAN is because that would be wasted time for almost all queries since it doesn't have a full listing
raschip i.e. CPAN is still broken for perl6 modules. 15:19
ugexe the main thing with CPAN is working out how to handle the `auth` field
raschip Can't wait for it to get fixed.
ugexe perl6 -Ilib bin/zef --/metacpan --/p6c --cpan search CSV 15:20
===> Found 2 results
1 |Zef::ContentStorage::Ecosystems<cpan>|Text::CSV:ver('0.002'):auth('github:Tux')
2 |Zef::ContentStorage::Ecosystems<cpan>|CSV::Parser:ver('0.1.2'):auth('auth:tony-o')
notviki raschip: what's broken exactly?
raschip it doesn't have a full listing 15:21
ugexe it may never have a full listing
notviki ranguard and mst are leading that effort. May wanna talk to them
ugexe the idea of perl6 recommendation engines is that they should work together
other than that it has to be determined how to map an existing `auth` from a p6 ecosystem module to whatever is copied to CPAN 15:23
because you can't just change the auth from say :auth<me@foo.com> to :auth<me:cpan> as this changes the identity of the module, and the identity is meant to be immutable
and CPAN isn't built for sharing namespaces (which the above is meant to allow) 15:25
raschip This should be fixed.
ugexe i'm sure they will welcome any help :)
raschip The maaping from module name to module should be one to one, not one to many, pulling a random module from there. 15:26
15:26 jantore left
ugexe it IS one to one unless you are fuzzy about what you want 15:26
Foo::Bar is exactly the same as Foo::ver<*>
raschip "fuzzy" as in specifing the name of the module?
ugexe Foo::Bar:auth<xyz> is not the same as Foo::Bar:auth<abc> 15:27
but either one would fulfill a request for just "Foo::Bar"
15:27 jantore joined
ugexe if you are explicit you will get the one you explicitly requested 15:27
raschip Should work the same as traditional package managers, tbh. 15:28
ugexe we're solving problems that traditional package managers have ignored
look at the dbix::class namespace drama
raschip You're shifting the burden to the user, I tough it should be the other way around. 15:30
15:30 AlexDaniel joined
ugexe the burden of choosing explicit versions to avoid dependency hell is up to the user, but they are welcome to ignore it like the majority currently do 15:31
15:31 domidumont left
ugexe i.e. everyone does `use Foo::Bar;` but if they were writing production code it should be `use Foo::Bar:ver<...>` (and realistically :auth<whatever>) 15:31
how else are you supposed to do `{ use Foo::Bar:ver<1>; } { use Foo::Bar:ver<2> }`? 15:32
AlexDaniel morning \o/ 15:34
notviki \o
AlexDaniel looks at the clock… 17:34…
ugexe raschip: right now if you install Foo::Bar:ver<1> and then Foo::Bar:ver<2> and then `use Foo::Bar;`, what do you think will happen? 15:35
notviki It'd use :ver<2>
ugexe I think it will use whatever is installed first 15:36
notviki :S
That's awful.
I'd expect it to use latest and greatest. Same as omiting `use v6.whatever` would.
15:37 hankache joined
ugexe well technically it resolves to :ver<*> which is literally "whatever" version 15:37
notviki And it kinda makes sense, considering it's perfectly reasonable run the installer and get a fresher version without ensuring you uninstall everything first.
ugexe so whatever it encounters first
notviki would argue that's a bug
ugexe i brought this up in perl6-toolchain though with the same expectation
notviki forgot we even had a #perl6-toolchain 15:38
ugexe: and what was the outcome when you brought it up
ugexe originally they wanted to leave those decisions up to policy and out of rakudo, but i argued it doesn't make sense that different versions would get used based on the order of CUR used (such as with -Ilib)
let me find the discussion...
hankache hello #perl6
notviki \o 15:39
raschip That is most certainly a bug, it completely breaks user expectations. 15:40
ugexe irclog.perlgeek.de/perl6-toolchain...i_13727142 (also goes into the next day)
and its because when it caches what is loaded it does like %!loaded{$module.short-name} instead of %!loaded{$module.short-name, $module.ver, $module.auth} 15:41
15:42 Axord left
ugexe another point was that the *first* choice should always be in the current distribution if it exists 15:42
15:42 pierre_ joined
ugexe if you already have Foo::Bar installed, and are working on a local copy that does `use Foo::Bar;` it should imply using the copy from the local distribution not from CURI 15:43
raschip ugexe: "the *first* choice should always be in the current distribution if it exists". Why?
ugexe well how else do you know if changes you've made are taking affect? 15:44
raschip If I have a distribution with some version and install a new minor version of the module, I would expect the code to start using that. Anything else is a bug.
15:45 zakharyas joined
raschip It has to use new installed versions to facilitate security updates. 15:45
ugexe im talking about if you have Foo::Bar installed, then decide to `git clone github/foo-bar` and `perl6 -Ilib whatever`
raschip Modules should be forced to do it, in fact.
Use the newest version unless told otherwise. Anything else is a security bug. 15:46
ugexe there are other not-yet-implemented strategies for that (emulates, supercedes, superceded-by, etc) 15:47
raschip Debian forbids more than one version of something to ensure this, in fact.
15:47 pierre_ left
raschip Should follow user expectations. This isn't even about Perl6 programmers, but sysadmins giving support and users. 15:48
If they need to be aware things work differently in Perl6, they aren't going to like it.
ugexe well we certainly *are* supported multiple versions
thats not something that will go away
raschip Sure, supporting multiple versions isn't a problem.
ugexe Consider two installed distributions Foo:ver<1> and Foo:ver<2>, both of which provide Foo::Bar and `use Foo::Bar` inside Foo.pm - if I `use Foo:ver<1>` it would be expected that `use Foo::Bar` inside of Foo.pm (for v1) loads Foo::Bar from the same distribution and not from a possibly newer or older distribution 15:49
raschip But things should use the newest compatible version, otherwise users and sysadmins will have serious problems.
It wouldn't. If a version isn't especified, it should be the newer version. 15:50
RabidGravy it would be
ugexe then it breaks when the newer version isn't compatible with the older
RabidGravy I'm with ugexe here
raschip The behavior you suggest would be completely unexpected.
It has to follow Semver, sure. 15:51
I'm talking about minor upgrades.
RabidGravy I think you aren't getting the idea of "Distribution"
raschip It's like a package from CPAn, isn't it?
ugexe how will users have such expectations when it seems like multiple versions is not a common thing 15:52
raschip Say, there's a Foo:ver<1.1> and a Foo:ver<1.2>, I would expect the second to be loaded if someone asks for Foo::*. 15:53
ugexe thats not what im talking about though
RabidGravy right and it will do that
notviki ugexe: what happens if I have Foo installed and run zef install Foo (given a newer version has been released since previous installation)?
ugexe: I'd end up with two versions of Foo, no?
raschip The user expectation is that just installing Foo:ver<1.2> will solve a problem present on Foo:ver<1.1> 15:54
RabidGravy yes
ugexe notviki: if you explicitly declare the version it will install it (or if you use zef upgrade ...)
notviki And if you say leaving off the :ver<> will give me the first installed, then I'd end up with unupgraded module...
ugexe: and if I don't?
ugexe otherwise if you just do `zef instll Foo::Bar` it will tell you Foo::Bar:ver<*> is already installed
notviki :S
raschip That should upgrade it. 15:55
notviki Seems very uintutive
Especially if you compare with things like `cpanm` and `cpan` that upgrade if there's a new version available.
ugexe right, but its also not very intuitive for the meaning of :ver<*> to switch
hence zef upgrade
raschip Yep, prepare for angry bug reports, there will be a lot of angry sysadmins looking for you. 15:56
ugexe there will always be lots of angry sysadmins looking for you
notviki ugexe: and what syntax to "install latest"?
for ver