»ö« 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 |