»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_log/perl6 | UTF-8 is our friend! 🦋
Set by Zoffix on 25 July 2018.
00:13 Doc_Holliwood left 00:17 lucasb left 00:21 aborazmeh joined, aborazmeh left, aborazmeh joined
discord6 <RaycatWhoDat> I have returned 00:50
<RaycatWhoDat> Enlightened, even 00:51
01:06 MilkmanDan left 01:08 MilkmanDan joined 01:16 john_parr_ joined 01:23 wildtrees left 01:24 aborazmeh left 01:30 molaf left 01:42 molaf joined
discord6 <Rogue> nice 01:54
02:10 Cabanossi left 02:12 Cabanossi joined 02:14 melezhik joined
melezhik Hi! If it possible to test Perl6 applications using appveyor/windows? 02:15
02:17 dogbert11 left 02:18 squashable6 left 02:20 squashable6 joined, ChanServ sets mode: +v squashable6 02:21 melezhik left 02:44 cpan-p6 left 02:45 cpan-p6 joined, cpan-p6 left, cpan-p6 joined 02:48 Doc_Holliwood joined 03:10 p9s joined
p9s rc 03:11
Elronnd rd
p9s Elronnd: :) 03:17
03:25 molaf left 03:27 vike left 03:47 p9s left 03:57 SCHAPiE left 04:01 sno left 04:07 SCHAPiE joined 04:25 Cabanossi left 04:42 Cabanossi joined 04:53 dustinm` left 04:55 isBEKaml joined 05:01 dustinm`_ joined 05:04 b2gills left 05:05 b2gills joined 05:09 Doc_Holliwood left 05:29 robertle left, squashable6 left 05:30 isBEKaml left 05:33 squashable6 joined 05:42 k0Le joined 05:43 k0Le left, k0Le joined 05:44 k0Le left, wamba joined 05:45 k0Le joined, jmerelo joined 06:01 domidumont joined
El_Che Kaiepi: you can join the channel and leave without any side effects 06:16
El_Che ducks
06:17 reach_satori_ left 06:21 domidumont left 06:33 vike joined 06:34 jmerelo left 06:43 domidumont joined 06:53 reach_satori joined 07:00 k0Le left 07:01 ravenousmoose left 07:02 ravenousmoose joined 07:03 sena_kun joined 07:05 ravenousmoose left, k0Le joined 07:14 caasih left 07:15 caasih joined 07:21 k0Le left 07:23 eythian left 07:27 kent\n left 07:29 kent\n joined 07:35 agentzh left 07:39 holyghost joined 07:41 k0Le joined 07:42 dakkar joined 07:47 eythian joined, eythian left, eythian joined 07:49 mtsd joined 07:53 wamba left
holyghost I am learning some statitstical analysis, good for Support Vector Machines and Neural Net code. It has special properties for example for kernel rotation, weight adaption and custom work out of this 07:54
It's not always easy, but I seem to manage 07:55
I need to cross-read, maybe to get a new adaptive system 07:56
Which is probably out of the question 07:57
08:00 __jrjsmrtn__ joined, _jrjsmrtn left 08:08 xinming_ joined 08:11 xinming left 08:14 cpan-p6 left 08:15 cpan-p6 joined, cpan-p6 left, cpan-p6 joined 08:18 awwaiid left 08:31 wamba joined 08:41 mtsd left, eveith left 08:42 Technaton joined, guifa left, guifa joined 08:43 eythian left, Doc_Holliwood joined 08:44 eythian joined, eythian left, eythian joined, jjatria left 08:45 jjatria joined 08:46 Ulti joined
lizmat weekly: github.com/perl6/problem-solving/p...-292128787 08:48
notable6 lizmat, Noted! (weekly)
08:53 dakkar left 08:54 dakkar joined 09:04 tyil is now known as tyil[m], tyil[m] is now known as tyil
sena_kun a sincere question: do we really have to have different extensions for scripts and modules? as in, there are some fundamental things we can't achieve without it? 09:15
jnthn sena_kun: You can find dozens of comments worth of discusson on that for your reading displeasure in a (now-closed) issue in the problem-solving repo. 09:17
github.com/perl6/problem-solving/issues/101 09:18
sena_kun jnthn, I have a sad cat face enough for today, so wanted to avoid reading anything like that, that's why I tried to ask in a "technical" manner rather than "Hey folks I want you to argue and cry some more". 09:20
Doc_Holliwood i'm for `rpl`. RakuProgramListing ;-) 09:22
sena_kun the question is answered 09:24
El_Che I don't think everyone is convinced one way or another, but being it a minor decision in the context of the renaming it's not worth the bikeshedding. 09:26
(from both sides of the discussion)
so I take it as a positive result 09:27
09:37 Cabanossi left
lizmat sena_kun: it can be important on non-unixy systems 09:38
that can only dispatch to the right executor based on extension 09:39
El_Che "it can" being the important part of course, as other lang do fine without it. But there were valid point to keep the separate extensions, so fair enough. 09:40
09:42 zakharyas joined
Altreus Always seemed to me, from a unix perspective, that the file extension was to tell other people what the file contains, or is for 09:43
So it makes perfect sense to tell other people that this one is for execution and these ones are libraries for inclusions 09:44
09:46 Black_Ribbon left
lizmat OT: prorogation unlawful 09:47
SmokeMachine vrurg: Red#400 is getting cool! :) 09:49
09:50 Cabanossi joined 09:51 aborazmeh joined, aborazmeh left, aborazmeh joined 09:54 Kaiepi left 09:55 Kaiepi joined
El_Che like someone pointed out (lizmat?), on UNIX extension are not needed for what's run. For development is something else 09:56
10:03 pat_js joined
jnthn lizmat: Wow, unanimously decided too. 10:04
10:04 Kaiepi left
lizmat jnthn: yes, indeed 10:05
10:05 Kaiepi joined 10:08 JulianF joined 10:11 Kaiepi left 10:13 Kaiepi joined, Altai-man_ joined, Kaiepi left, Kaiepi joined 10:14 sena_kun left 10:15 Kaiepi left 10:16 Kaiepi joined 10:17 Kaiepi left 10:19 k0Le left 10:34 k0Le joined 10:58 scimon joined 11:05 k0Le left, k0Le joined 11:06 k0Le left 11:10 reach_satori left 11:11 reach_satori joined 11:21 reach_satori_ joined, k0Le joined 11:23 reach_satori left 11:24 wamba left 11:26 Guest93 joined 11:29 lealnie joined 11:30 k0Le left 11:32 k0Le joined 11:37 k0Le left 11:47 lealnie left 11:48 wamba joined
guifa jnthn: I finally narrowed down the launch bug on the Mac. It seems it was the Comma.vmoptions file. If it’s present on startup, Comma self-exits 11:52
11:54 k0Le joined 12:13 aborazmeh left 12:17 mowcat joined
jnthn guifa: Hmm...that's odd 12:20
guifa: That said, the next release we ship for Mac will have a DMG and it will bundle a JRE, and that should give us much better control over exactly what it's being run on.
The .vmoptions file just provide options to the VM, so I guess it's not enjoying some option in there 12:21
12:22 reach_satori_ left 12:23 gabiruh left 12:24 gabiruh joined, k0Le left 12:25 k0Le joined 12:49 lucasb joined 12:58 SyrupThinker joined 13:00 k0Le left, k0Le joined 13:04 Doc_Holliwood left 13:07 pmurias joined 13:12 reach_satori_ joined
pmurias timotimo, masak: maybe :INTERNAL or :INTERIOR? 13:15
timotimo interior sounds odd to me 13:17
13:18 k0Le left
pmurias yes it does :( 13:18
timotimo but INTERNAL could be all right
pmurias internal is keyword used for access control in C#
vrurg .tell samcv regarding the list of modules – here it is: gist.github.com/vrurg/010754a66f4b...5bd6988ae3 Thanks for looking into this! 13:19
tellable6 vrurg, I'll pass your message to samcv
pmurias timotimo: I'll go for :INTERNAL with all caps it looks like something weird you need to look up 13:22
timotimo yeah, allcaps are good for that 13:23
13:35 k0Le joined 13:37 Cabanossi left 13:41 vike left 13:42 molaf joined 13:43 Cabanossi joined 13:53 vike joined 13:54 isBEKaml joined 13:56 zakharyas left
tbrowder hi all 14:01
guifa jnthn: great. I’m always happy to help track down / test Mac bugs as best as I can. I’m really enjoying Comma 14:02
14:03 kiwi_60 joined
tbrowder i've not been paying much attention to travis builds for some time, but isn't there now a much faster .travis.yml setup for stable releases of p6 rather than rebuilding p6 anew each time? 14:04
kiwi_60 hi, how's perl6's reflection story? I can't find anything of substance on the web. is everything accessible, like in Ruby? 14:05
14:06 isBEKaml left
pmurias kiwi_60: you mean like getting all the methods of a given object? 14:07
timotimo there is a lot of reflection
kiwi_60 pmurias: yeah, stuff like that
guifa kiwi_69: you’ll want to look at the HOW or Higher Order Workings. Most of those methods are short-handed with ^
$foo.^methods for instance
timotimo attributes and methods of objects, parameters in a signature, candidates for a multi sub or method
all symbols in a scope 14:08
kiwi_60 oh, that's neat
can I change them at runtime?
timotimo there is support for monkeypatching, but until moarvm gets weak references, you'll have to recompose all derived classes for added methods to show up
however 14:09
you can always mix in a mixin into individual instances, or create mixed-in classes derived from an original class
kiwi_60 nice! thanks :D
timotimo doc.perl6.org/language/rb-nutshell - have you seen this?
kiwi_60 timotimo: only skimmed through it. gonna read it :) 14:10
timotimo doc.perl6.org/language/mop - here's stuff about working with the HOW, but it doesn't really explain how to look up methods in an object etc 14:11
kiwi_60 "Like Ruby, in Perl 6, everything is an object" - is that true? somewhere else in the docs it says everything is an object, except native types
timotimo native types will turn into objects when you try to treat them like ones; basically autoboxing 14:12
there is overhead to that, of course 14:13
kiwi_60 of course :)
timotimo m: my int $foo = 99; say $foo.log10 14:14
camelia 1.9956351945975497
timotimo m: my int $foo = 99; say $foo.WHAT
camelia (Int)
timotimo ^- calling .WHAT will give you the type it aubotoxes to
m: my int $foo = 99; say $foo.VAR.of
camelia No such method 'of' for invocant of type 'Int'
in block <unit> at <tmp> line 1
timotimo hm
kiwi_60 m: my int $foo = 99; say $foo.VAR 14:16
camelia 99
guifa timotimo: You get a difference with:
kiwi_60 makes sense :D
guifa my int $foo = 99; say $foo.VAR.WHAT; my Int $bar say $bar.VAR.WHAT
err
m: my int $foo = 99; say $foo.VAR.WHAT; my Int $bar = 99; say $bar.VAR.WHAT
camelia (IntLexRef)
(Scalar)
timotimo ah yes 14:17
kiwi_60 IntLexRef?
timotimo yeah, a reference to a lexical variable that is native-integer-typed 14:18
kiwi_60 oh. I thought it'd say something like "int 64"
guifa Interesting, I can’t figure out how to tell what type of native it is. But I wouldn’t worry tooo much about that. 14:21
Generally the idea is to just use Int (or Rat, etc). If you use natives, you run the risk of overflows, precision errors, etc., that the non-natives don’t have
(but maybe we should either have a way or if we do, mention it on the native types page)
kiwi_60 yeah, I think I'd use natives only for C FFI or stuff like that?
timotimo or for faster code 14:22
arrays with native types are compact, that's very useful
Grinnz i was gonna say. performance is the primary reason native types are used anywhere still
Altreus Yep, can't wait to run perl6 on my Psion
Grinnz math is hard
guifa Actually, here we go: 14:23
“This is due to the fact that Natives don't know their types because they're just values, without any meta-data. In multi-dispatch, you can have a native candidate, but you cannot differentiate different sizes of the same native type. That is, you can have an Int and int candidates, but there would be an ambiguity between, for instance int, atomicint or int64 candidates.”
kiwi_60 oh my 14:24
14:24 Sgeo_ joined
kiwi_60 I wouldn't know where it could overflow :D 14:24
guifa Well, presumably you wrote the code so :-) 14:25
timotimo after being passed into the function, it'll be whatever size you put in your function signature
guifa You have to opt in to natives, so I suppose the logic is you’re already saying “I understand the risks” as soon as you use them. 14:26
timotimo though if you get a reference, i.e. "is rw", then you'll get the semantics of what you assign into
m: my int8 $foo = 99; sub change-it(int16 $a is rw) { $a = 0x6543 }; say $foo.base(16); change-it($foo); say $foo.base(16)
camelia 63
43
timotimo m: my int64 $foo = 99; sub change-it(int16 $a is rw) { $a = 0x6543 }; say $foo.base(16); change-it($foo); say $foo.base(16) 14:27
camelia 63
6543
kiwi_60 that's fair 14:28
14:28 Sgeo left
guifa (the opt-in to assume the risks is something you’ll see a fair bit. For example, to add methods to a class, you can use augment, but because that could cause all sorts of issues, you have to opt-in with use MONKEY-TYPING; Ditto for the dangers of EVAL which are opt-in. Even nicer for anything with a ‘use’ is you can opt-in at a per-block level so as to not poison the rest of your code) 14:34
kiwi_60 is it possible to forbid using monkey typing and eval? perhaps as a compiler flag? 14:36
s/as/with
timotimo not yet
kiwi_60 :) 14:37
pmurias kiwi_60: to use monkey typing or eval with anything other then a literal you need to explicitly enable a special pragma 14:41
kiwi_60 pmurias: yes, but what if someone wanted to disable these pragmas project-wide
not saying it's a feature perl6 absolutely needs 14:42
just wondering :)
pmurias this seems like something a code standard enforcing tool should do
Altai-man_ kiwi_60, if you want it very much, you can setup your CI to fail a build if `grep use MONKEY` finds anything. :) 14:43
kiwi_60 yeah, I just thought about it :D
timotimo not sure if that's actually enough 14:45
surely there's some way to get around the string actually showing up literally
guifa It wouldn’t enforce it in modules, but you wouldn’t want to enforce it in modules. They may rely on that behavior.
timotimo: probably could do a compile to AST and read that
kiwi_60 will the monkey emojis work? 14:46
timotimo compiling to AST can already execute code :)
there can be a slang that makes monkey emoji work for "use MONKEY"
kiwi_60 🙈 - non-greppable
by the way, I just read Damian Conway's post about for..else ( blogs.perl.org/users/damian_conway/...ratch.html ) and writing a slang seems really hard 14:49
timotimo it's not for the faint of heart
kiwi_60 like, you have to know NQP and how the internals work.. is there an easier way?
timotimo not currently, but you could write a module that makes writing slangs easier ;)
kiwi_60 I see
guifa I haven’t done much with NQP but it’s not too bad 14:50
The trick is you have to have a really good understanding of the syntax and how Perl 6 gets processed to be able to write one. The fact that new features in other languages have increasingly crazy looking syntax shows how hard it can be to tack on new syntax without breaking stuff. 14:51
timotimo m: my @l = <foo bar baz quux>; for @l { UNDO { say "undone" }; LEAVE
camelia 5===SORRY!5=== Error while compiling <tmp>
Whitespace required after keyword 'LEAVE'
at <tmp>:1
------> 3>; for @l { UNDO { say "undone" }; LEAVE7⏏5<EOL>
timotimo oops 14:52
m: my @l = <foo bar baz quux>; for @l { UNDO { say "undone" }; LEAVE { say "left" }; if $_ eq "blurb" { say "success"; last }; say "."; }
camelia .
left
undone
.
left
undone
.
left
undone
.
left
undone
timotimo m: my @l = <foo bar baz blurb quux>; for @l { UNDO { say "undone" }; LEAVE { say "left" }; if $_ eq "blurb" { say "success"; last }; say "."; }
camelia .
left
undone
.
left
undone
.
left
undone
success
left
undone
timotimo hmm.
14:53 pmurias left
kiwi_60 guifa: yeah, and Perl6's syntax looks really hard to parse 14:53
timotimo it is somewhat challenging
kiwi_60 it's easy to write in it, but if I had to parse it..
D:
guifa would love an example, though, of making a “use stupid-simple-language” in a block that then parses the block as if it were contained in EVAL $code, :lang<stupid-simple-language>; but has access to the variables in scope. 14:54
14:54 pmurias joined
timotimo have you seen Slang::SQL? 14:55
i believe it gives you access to variables in scope
guifa timotimo: hmmm lemme take a look
cpan-p6 New module released to CPAN! IRC::Client::Plugin::NickServ (0.2.0) by 03TYIL 15:01
15:02 kiwi_60 left
guifa hmm. I might need to play around with that. I’d want to basically prevent P6 code entirely, I’m not sure how much I could remove, um, all of P6’s grammar for that block but I guess if I capture first everything up to the end of the block, then I could just process that separately rather than trying to insert all of the grammar into P6’s 15:02
15:05 dogbert11 joined 15:10 pmurias left 15:14 k0Le left, k0Le joined 15:17 pat_js left, ufobat__ joined
cpan-p6 New module released to CPAN! IRC::Client::Plugin::NickServ (0.2.1) by 03TYIL 15:17
tyil this one actually ought to work 15:20
15:21 ufobat_ left
guifa re native types, actually… is there any reason to use str instead of Str? Looking at the source, doesn’t seem like you can even get a speed advantage with them. 15:23
jnthn guifa: If you have an array of `str` you can save a `Str` wrapper object for everyone one of them, which an add up 15:26
*can
guifa So mainly memory load? I might need to do that then for the CLDR since I have a crapload of small strings 15:30
jnthn Yes, that sounds like the kind of place it'd be worth it 15:31
15:33 k0Le left 15:37 domidumont left 15:45 Doc_Holliwood joined 15:51 thowe joined 15:56 MasterDuke joined, isBEKaml joined 15:58 daxim left 16:01 domidumont joined, domidumont left
Elronnd what is str? Straight up array of char without any unicode stuff? 16:07
16:11 jmerelo joined 16:12 aborazmeh joined, aborazmeh left, aborazmeh joined 16:17 scimon left
timotimo no, it's still an NFG string 16:19
just without an objecty object around it; no methods, no mixins, etc
16:22 isBEKaml left 16:24 thowe left
sjn 7 på hackeriet \o/ 16:24
16:32 domidumont joined
moritz sjn: god kweld og hilse alle sammen :D 16:34
16:38 Cabanossi left
sjn moritz: ah, #wrong channel :) 16:38
dammit ETOOMANYINTERISTENGCHANNELSTOLURKIN
16:39 molaf left, dakkar left 16:42 MilkmanDan left 16:44 Cabanossi joined 16:48 MilkmanDan joined 16:51 k0Le joined 16:52 domidumont left
kybr m: for 'the quick brown fox did something naughty'.comb.Bag.sort({.value, .key}) {say '|' x .value, .key; }; 16:53
camelia |a
|b
|c
|f
|k
|m
|q
|r
|s
|w
|x
|y
||d
||e
||g
||u
|||h
|||i
|||n
|||o
|||t
||||||
kybr i just learned the way you do sortby in perl6. i like it a lot 16:54
16:59 Kaiepi joined 17:06 natrys joined, wildtrees joined 17:16 aborazmeh left, domidumont joined 17:20 k0Le left 17:21 domidumont left 17:25 daxim joined 17:29 molaf joined
AlexDaniel kybr: does it work? 17:30
hm, it probably does 17:31
I was worried for a sec on how the values will be compared for sorting
kybr yes. it seems to
Bag's values are Int, yes? 17:32
Kaiepi is calling !dump on $!value (which is of type Hidden) in this code supposed to be calling !dump on Password instead or am i misunderstanding how the trusts keyword works? fpaste.scsys.co.uk/586096?tx=on 17:34
this isn't real code ftr, it's an example in an so answer 17:35
timotimo yeah i think that should work 17:36
m: fpaste.scsys.co.uk/586096?tx=on
camelia 5===SORRY!5=== Error while compiling <tmp>
Confused
at <tmp>:1
------> 3http:7⏏5//fpaste.scsys.co.uk/586096?tx=on
expecting any of:
colon pair
timotimo c: HEAD fpaste.scsys.co.uk/586096?tx=on
committable6 timotimo, Successfully fetched the code from the provided URL
timotimo, gist.github.com/44db66d6f08ca7d31a...c44c803812
timotimo Type check failed in binding to parameter '<anon>'; expected Password but got Hidden (Hidden.new) 17:37
yeah, that kind of seems to use self!dump for that. odd.
Kaiepi: can you try $!value."!dump"() please? 17:42
Kaiepi timotimo, i get "No such method '!dump' for invocant of type 'Hidden'. Did you mean '!dump'?" when i do that 17:43
timotimo ha
that's funny
uzl[m] m: class A { method foo { say "Method foo was called" }}; A.new.foo; 17:45
camelia Method foo was called
uzl[m] * m: class A { method foo { say "Method foo was called in class {::?CLASS.^name}" }}; A.new.foo; 17:46
m: class A { method foo { say "Method foo was called in class {::?CLASS.^name}" }}; A.new.foo; 17:47
camelia Method foo was called in class A
uzl[m] How do I get a method's name inside said method?
timotimo m: sub testsub { say &?ROUTINE.name } 17:48
camelia ( no output )
timotimo m: sub testsub { say &?ROUTINE.name }; testsub
camelia testsub
uzl[m] Thanks! 17:49
17:51 vrurg left 18:05 chloekek joined
Kaiepi timotimo, wouldn't $!value."!dump"() look for a public method named !dump? shouldn't it be $!value!"dump"()? 18:07
18:12 MilkmanDan left 18:14 MilkmanDan joined 18:22 MilkmanDan left 18:23 MilkmanDan joined
lizmat weekly: perl6.online/2019/09/24/on-renaming-perl-6/ 18:27
notable6 lizmat, Noted! (weekly)
18:27 smi1er joined 18:29 sauvin left
jmerelo lizmat: yeah, well... 18:52
18:55 sno joined 18:59 jmerelo left
timotimo i wasn't aware of .!"..."() syntax 19:01
19:07 zakharyas joined 19:18 wamba left 19:36 pmurias joined 19:39 vrurg joined 19:42 zakharyas left 19:44 zakharyas joined
Elronnd rename is happening ;-; 19:59
lizmat Elronnd: so far, only voting on renaming is happening, and TimToady can still call it off completely 20:00
Elronnd lizmat: yah, but reaction seems to be positive 20:01
lizmat not always: perl6.online/2019/09/24/on-renaming-perl-6/ 20:02
20:10 chloekek left 20:14 pmurias left 20:18 zakharyas left 20:23 wamba joined 20:32 zakharyas joined 20:46 wamba left, leont joined 20:47 wamba joined
AlexDaniel Elronnd: also, not so fast github.com/perl6/problem-solving/p...-292696717 20:50
Grinnz AlexDaniel: just as a point of order, github misidentifying .t files was a major issue previously (and continues, since there's no foolproof heuristic, it just assumes perl5 more now) 20:52
not that i think .t is bad, just that it's more than editors that spurned .t6 20:53
s/spurned/propelled/
AlexDaniel Grinnz: does it look at the shebang or not? 20:54
Grinnz many .t files do not have a shebang, as it's not needed for prove
and, i don't remember
leont Honestly, perl6/raku should stop using prove. The correct invocation keeps getting more complicated.
AlexDaniel there's a regexy heuristic, but I also don't remember if it checks the shebang… 20:55
leont There is a prove6, it does the right thing
timotimo should we stick with TAP?
Grinnz .t has a bit of a (huge) disconnect between theory and reality
leont TAP sucks, so does everything else
Grinnz theory: .t represents any tap stream test file, how to execute it is indicated by shebang
AlexDaniel and then it just assumes perl5 20:56
timotimo not outputting to stdout/stderr would give the benefit that code that outputs stuff can't confuse the parser
Grinnz reality: .t is only used by perl and recently perl6, how to execute it is by running perl which may decide to re-exec itself based on shebang
yes, the use of the shebang is not prove but perl itself
leont Actually, what prove does is more complicated than that. There are two layers of interpreting the shebang
Grinnz right, there's some other stuff with the options? 20:57
leont metacpan.org/source/LEONT/Test-Har...erl.pm#L81
tony-o the discussion about extensions is getting out of control 20:58
Grinnz ah, so it does its own thing now first
leont If the shebang matches that regex, it's always interpreted by perl, otherwise it's executed as a script
AlexDaniel that fucking stupid regex
leont If perl5 runs it, it also interprets the shebang, by somewhat different rules, to decide if it should interpret the file or hand it over to whatever the shebang points at 20:59
20:59 Black_Ribbon joined
leont But, if you just use prove6, you don't have to worry about any of this. And whatever happens with the extension, it will support that out of the box. 21:00
It also means not depending on another language for testing 21:01
AlexDaniel leont: so with prove6, can I have some bash test files and stuff?
leont Out of the box it always does perl6 currently
There's a -e option if you want to be explicit though, much like prove5's -e option 21:02
And in theory it could do something smarter, that just hasn't been invented yet
AlexDaniel tony-o: is it? I've actually seen some productive discussion in a separate ticket, then it was interrupted prematurely with meaningless voting, and then we claimed “ok it's done!” and went with something random
21:03 zakharyas left
tony-o some meaningful in a sea of bike sheds 21:05
leont Quite frankly, test extension isn't the first thing we need to change, and hence something that is much easier to change our mind on later than, say, module extension 21:06
tony-o also, yes, some core developers have expressed exhaustion the topic of renaming and now it's being held up because .rk is shorter than .raku and .rkm is shorter than .rakumod 21:07
timotimo i'm okay with .raku, but .rakumod i'm not so fond of
Grinnz as someone who is eager for the process to complete for different reasons, I can only agree that the extensions have not been thought through sufficiently - there was not consensus among core devs in that ticket 21:08
tony-o if it needs core developer consensus than it's not helpful to open that discussion up to every jim and sally because it adds noise and bike shedding 21:09
both file extension issues contain a lot of not meaningful discussion 21:10
Grinnz it also added ideas, I think it can be useful, it just wasn't solved
tony-o a lot more than meaningful discussion
that's only useful to a point, having a million ideas isn't much better than having 100 - at some point you only need one and finding the perfect solution is the enemy of good enough in most cases 21:11
Grinnz that's a decision for vested parties to make
21:12 Doc_Holliwood left
tony-o rediscussing why the scripts shouldn't have the same as the modules, for instance, isn't worth discussing a fifth time 21:12
AlexDaniel Grinnz: oh, I now see that you brought up the test extension question very early
I didn't really comprehend your comment
not that it was hard, but… yeah… that happens 21:13
tony-o that is a decision better made than left to bike shedding Grinnz
timotimo has there been any discussion on whether we need script vs module extensions in the first place?
lots of languages get by without
AlexDaniel timotimo: yes, TL;DR yes
timotimo OK
tony-o the gist was we probably could get by without but the effort would be better spent on more pressing issues 21:14
21:14 cpan-p6 left
AlexDaniel timotimo: at least ugexe feels strongly about this 21:14
21:14 cpan-p6 joined, cpan-p6 left, cpan-p6 joined
timotimo that's fine by me 21:14
AlexDaniel timotimo: something about having same filenames in both lib and bin, if I'm not mistaken? 21:15
Grinnz tony-o: right, and I think it's clear not everyone thinks that decision has been made yet
tony-o Grinnz: right, i'm wearing pants 21:16
having the same module and script ext makes module loading preference ambiguous 21:17
Grinnz same module/script was decided against already, that much is clear
tony-o clear to whom? 21:18
Grinnz to me, having read the issues?
AlexDaniel timotimo: starting from here or so: github.com/perl6/problem-solving/i...-530013421
Grinnz ugexe is the only person who expressed a strong opinion on it that it would influence their vote, and it was negative
nobody has disagreed since
tony-o i also expressed a strong opinion against it 21:19
that doesn't mean the decision has been made because the decision on file extensions is still running
AlexDaniel yeah now can we now have someone strongly disagree with some test extension xD
I mean, that'd make the search space smaller 21:20
tony-o AlexDaniel: lol
Grinnz tony-o: my meaning was: the consensus for how to move forward on that topic is clear, similarly to how nobody is debating to use the name Raku anymore
(except random people who still keep showing up with suggestions for some reason) 21:21
tony-o is it helpful when people pop in to say they think the name should be `digdug` because they have fond memories of atari?
21:22 squashable6 left
AlexDaniel I do agree that we shouldn't be touching p6↔pm6 distinction, it's an extra change that we don't really need right now 21:22
but with .t it's a bit less clear, people are already using .t6
tony-o my point is if you want core dev consensus then have the discussion amongst core devs, the same ideas are being repeated by people that aren't in the position to make a decision
AlexDaniel and some tools already support it…
tony-o and it's adding noise and a lot of unnecessary discussion 21:23
Grinnz tony-o: i agree, there needs to be a core dev discussion - i was also just saying the outside discussion was useful to inform that
or to be ignored, as is prerogative
AlexDaniel we can start a new locked ticket 21:24
21:24 squashable6 joined
tony-o AlexDaniel: that would be a+ 21:24
leont TBH, I'm not sure test extension really is a core dev discussion. It's just that there isn't really an organized toolchain (the way there is for p5) to make that sort of decision instead.
21:25 Sgeo__ joined
AlexDaniel leont: and how would it work for them if they had to make this decision? 21:25
tony-o leont: i'm testing something similar right now
Grinnz AlexDaniel: kind of a tough question to answer, as the p5 toolchain is not designed for decisions other than "how to not break everything" 21:27
21:27 vrurg left
leont But we do get together physically once per year and discuss things in depth face-to-face 21:28
Grinnz yeah, if any decision was to made that would be how
21:28 Sgeo_ left
tony-o and a lot of things to move the toolchain forward (and not just don't break anything) have come from it 21:28
i wonder how yath handles #! 21:30
Grinnz i was just thinking that...
leont I would be surprised if it does. It's full of nasty hacks to speed things up.
21:30 krychu joined
tony-o wonder where chad sits, i can axe him 21:30
leont Exodist ^
tony-o and i'm on site this week
Exodist huh? 21:32
tony-o how does yath handle #! ?
Exodist looks at scrollback
Grinnz prove checks the shebang to determine whether to run a test with $^X or the shebang
what does yath do
Exodist give me a sec, in the middle of a yath refactor right now, gonan pull up the code in question and be sure I give you complete answers :-) 21:33
first it checks the file for a few things, including parsing the shbang line: metacpan.org/release/Test2-Harness...le.pm#L173 Which helps the runner decide hwo to run it here: metacpan.org/release/Test2-Harness...ner.pm#L72 21:35
then...
Geth_ ¦ problem-solving: AlexDaniel assigned to jnthn Issue New Raku file extensions github.com/perl6/problem-solving/issues/108
tony-o AlexDaniel++
Exodist For non perl things there is a runner that uses the shbang line to run them. For binary files there is a seperate tool. For perl files with special perl flags it will use whatever runner is able to emulate the flag, if the flag cannto be emulated then an IPC based runner will spawn a new perl witht he proper flags 21:36
so the answer is that yath reads the #!, and can make any number of decisions from there.
tony-o it looks like it might have the same issue as prove 21:37
metacpan.org/release/Test2-Harness...le.pm#L275
Exodist For instance if someone asked to preload a bunch of stuff they want to use the forking runner if possible, so flags which are easily emulated will still us that, but if you have something like taint as a flag you are forced to spawn a new perl with that flag
oh, so yeah, that would treat perl6 the same as perl, which is probably not what should happen 21:38
I am doing a huge refactor, practically a rewrite right now. I will make a point to make it perl6 safe when I do 21:39
Grinnz Exodist: make sure it matches perl6\b if you do, to avoid the perl64 trap that core had solving this same issue
Exodist what is perl64?
Grinnz people have installed perl to a directory or executable named perl64 to indicate a 64-bit perl
thus, that breaks 21:40
Exodist *headdesk*
tony-o, as for where I sit, I sit at my house in Oregon, I am fulltime remote.
tony-o i was having a brainfart, our team is here this week and i was thinking everyone was
Exodist haha, nope, that is in november :-) 21:41
tony-o should be fun
Grinnz Exodist: bit of a windows 9 issue ;)
tony-o as much fun as you can have the appropriate number of hands
have with* ugh
Exodist which windows is 9? 21:42
leont As for extensions, I don't really care what they turn out to be, as long as $test-extension ne $module-extension
If a new extension is picked I'll implement it by adding one word to prove6
Grinnz the windows they didn't name 9 because people looked for "Windows 9*" in user agent strings
Exodist ah, right
21:43 Doc_Holliwood joined
tony-o not sure it matters if the name is changed 21:43
the shbang parser, i mean
leont Yeah, that could solve that problem
Exodist except that someone will inevitably have a perl6 alias to it till the end of time
xkcd.com/1172/ 21:44
tony-o hah
Exodist think about it, it is faster ti alias perl6 than it is to change all your shbang lines 21:45
Grinnz fortunately, i think it's still reasonable to say "stop using that so your tests are recognized correctly" in this case
at least, in a year or two
21:46 Sgeo_ joined
Grinnz (and when using a perl5 tool to begin with) 21:47
21:49 Sgeo__ left 21:54 Altai-man_ left 22:00 wamba left 22:12 natrys left 22:25 natrys joined 22:26 natrys left 22:31 Sgeo__ joined 22:32 krychu left 22:34 Sgeo_ left 22:42 cwilson left 22:43 cwilson joined, dogbert11 left 22:44 ccamel joined 22:47 camelCaser left 22:54 leont left
tbrowder ping: anyone know of an example .travis.yml file for testing modules without compiling p6 from scratch every time? i think there is a docker file available to do that but i need a cookbook approach. 22:56
tony-o tbrowder: you can use a rakudo-nightly for that 22:58
i also have one that pulls from a repo .. one second
tbrowder tony-o: thanks 22:59
tony-o i haven't updated the travis repo since april 18, give me a few minutes 23:00
this is the repo method github.com/tony-o/perl6-travis-bin
err, sorry wrong one 23:02
github.com/tony-o/perl6-db/blob/ma...travis.yml 23:04
tbrowder: ^ 23:05
rakudo nightly can be had from cloud.docker.com/u/tonyodell/repos...do-nightly 23:06
Grinnz AlexDaniel: if i can make a suggestion: only you, tony-o, and jnthn have expressed any significant opinion on the extensions (out of the people listed to approve #89 - ugexe only objected to the combined script/module). i think the way to a consensus is for those people to put forward a proposal as a starting point and find what nobody objects to 23:07
vrurg isn't on the list technically, but his proposals are already there 23:08
tbrowder tony-o: hm, so i have 23:09
to merge the two .travis.ymls some
gdonald tony-o: does that prevent building a new rakudo from scratch every time? 23:10
tony-o which two do you have? you only need the perl6-db travis yaml to get right into testing
tbrowder how? i know Documentable uses a docker file but
Grinnz ah, and nine did express an opinion on the .t.* idea at least :)
tony-o you can change latest to a specific version if you'd like to test against a release, or something similar
tbrowder oops, fingers not cooperating...
i don't see how the perl6-db one solves the problem. is it the env var ALL_testing 23:12
TESTING entry that triggers the "right thing to do"? 23:13
tony-o ah. that doesn't prevent a build each time. i have a repo somewhere that has prebuilt bins 23:14
i'm actually curious now if you can test using the docker nightly of rakudo 23:15
tbrowder i think jmerelo has one being used with Documentable but i'm not sure about using it without sime more info 23:16
no rush but i think we need to list that info somewhere so everyone can shorten testing. travis folks may even appreciate thT 23:18
that from the p6 community! think of all the co2 saved! 23:19
tony-o i have one for circle-ci on the rakudo nightly, putting together an example for travis rn (while i wait for other crap to build)
tbrowder: any suggestion on where to put that info? i'll write something on deathbyperl6 but, other suggestions are welcome 23:22
guifa The weekly challenge is certainly generating quite a bit of interest on SE.
23:38 squashable6 left, squashable6 joined
tbrowder hm, how about putting an entry in github.com/rakudo/rakudo/CONTRIBUTING.md for now. from it i'll add a reference in the docs where we talk about developing modules for the ecosystem 23:41
23:42 epony left
tbrowder it's fuzzy territory for purists who say such things as .travis.yml aren't really p6, but they are not internals for rakudo, either, so where should they go? i believe, when we get the docs v2 going, there should be a new section for such things. 23:45
maybe call it something better than: Contributing Raku modules for public use 23:47
tony-o tbrowder: i think i have something for you 23:48
tbrowder: it's getting closer, you can use this if you have no dependencies though github.com/tony-o/travis-p6n/blob/...travis.yml 23:52
that build is here on travis: travis-ci.org/tony-o/travis-p6n/bu.../589213953 23:53