Perl 6 language and compiler development | Logs at colabti.org/irclogger/irclogger_log/perl6-dev | For toolchain/installation stuff see #perl6-toolchain | For MoarVM see #moarvm
Set by Zoffix on 27 July 2018.
00:04 leont left
ugexe If you set the flag you just break lots of stuff in other hard to fix ways. 00:09
There is no good answer I’m aware of
both options suck rather
Other languages I believe make a .bat and a .com or some shit because that somehow changes the processing or something? It’s been so long I forget 00:10
I remember looking at electron and Julia for guidance in these areas 00:12
MasterDuke patrickb: btw, i think the relocatable merge doesn't play nice with appveyor 00:13
ci.appveyor.com/project/rakudo/rak...36xw6oy6ub 00:14
patrickb ugexe: I've been looking at this problem for quite some hours now. 00:15
b2gills Programs on Windows are able to get the text given on the commandline directly and parse it however it sees fit. That is what cmd.exe apparently does.
patrickb MasterDuke: That's what I'm working on right now. (Though a little side tracked, I have to admit)
ugexe: I think I don't like the libuv API in that spot. Too much magic for my taste... 00:18
MasterDuke ah, cool
patrickb reboots 00:23
00:24 patrickz joined
patrickz This is my write up of the bug hunt so far: gist.github.com/patzim/73d4e9c7f0c...1c82aa1354 00:26
00:27 patrickb left
patrickz ugexe: I'm trying to make this bit of code work with spaces in path: github.com/rakudo/rakudo/blob/mast...y.pm6#L264 00:30
All easy, unless when on windows and during the build, where the perl6 executable happens to be a bat file. 00:31
I'd appreciate any pointers on what's the best way forward... 00:33
The only idea I have is porting the "shell" option of node.js with all its magic over to perl6. But that'd require making changes to the spawnprocasync OP. And that's no simple endeavor. 00:46
00:50 leont joined
Geth rakudo: patzim++ created pull request #2795:
Fix gdb and lldb runners.
01:10
ugexe if you've only spent hours on this specific problem so far, consider yourself lucky 01:12
i spent a few days working on builds with spaces before i got bored
patrickz ugexe: I have moarvm and nqp working 01:14
rakudo succeeds with the build and fails in the make install phase when it starts to precompile stufff 01:15
ugexe maybe there is something /s can help with
patrickz ugexe: have you had a look at the gist I posted above? 01:16
ugexe If command starts with a quote, the first and last quote chars in command
will be removed, whether /s is specified or not.
/S Strip " quote characters from command.
well i guess that would need to strip \ not " 01:17
patrickz True. I've looked at an strace of node.js and perl6 respectively and it's definitely the \ in there that kill it. 01:18
The libuv api seems tailored to node.js a lot in that area.
ugexe unsurprising 01:19
but this isn't a libuv specific thing i dont believe. if this behavior did not occur then some other common form of passing commands on windows breaks 01:20
although yes the behavior breaking this specific thing for you is libuv
patrickz That might be true. I'm not pledging to change that unconditionally in moar. 01:21
AlexDaniel patrickz: did you send a CLA? 01:22
I'm just thinking that you should be able to commit such fixes directly
ugexe fwiw here is some old discussion on uv windows process args verbatim 01:23
github.com/rakudo/rakudo/issues/2005
patrickz Maybe replicating the `shell` feature as closely as possible is the best way forward. Then we don't have to think the consequences of the changes we make, because we can rely on that it's a sensible way to do it...
AlexDaniel: Didn't. Anywhere I can read up on this? 01:24
ugexe what i dont like about exposing it as an option is it then should be part of spec, and i sure as hell dont want to try and spec this crazy .bat behavior
AlexDaniel CLA: www.perlfoundation.org/contributor...-agreement print it out, sign it, scan it in (resize your scan to 250KB or less). Email to trademark -at- perlfoundation.org (please scan and email if you can, it's so much more efficient)
patrickz: when you send it, please CC Coke and jnthn 01:25
patrickz ugexe: Thanks for the link.
ugexe: As little magic as possible.
Geth rakudo: 7846144e6a | (Patrick Böker)++ | tools/build/create-moar-runner.p6
Fix gdb and lldb runners.
01:26
rakudo: 6ba54fb929 | (Aleks-Daniel Jakimenko-Aleksejev)++ (committed using GitHub Web editor) | tools/build/create-moar-runner.p6
Merge pull request #2795 from patzim/debug-runner-fix

Fix gdb and lldb runners.
AlexDaniel patrickz: fwiw the commit message here is not very descriptive, IMO it's a good idea to add an extra sentence or two to describe some what and why 01:29
patrickz AlexDaniel: Thanks for the hint. Will add some more next time 01:30
AlexDaniel patrickz: also check out some guidelines on how to write commit messages, your titles tend to be too long 01:31
which is why this happens: screenshots.firefox.com/1o5DJLtqhQ...github.com 01:33
patrickz Ah! I always took the width of the commit message field of `git gui` as a reference for how wide is ok. Seems github breaks off a little bit earlier than git gui does. :-P 01:35
AlexDaniel patrickz: if you're interested in more nitpicking, then I'd love to tell you that it's probably more common to not use a dot at the end x) 01:37
although you're extremely consistent with it :)
patrickz I have no strong feelings toward that dot. So yeah... 01:38
AlexDaniel once your CLA is received, please add yourself to github.com/rakudo/rakudo/blob/master/CREDITS :) 01:39
02:13 SqrtNegInf left
patrickz o/ 02:47
off to bed
02:47 patrickz left 03:21 ufobat__ joined 03:25 ufobat_ left 03:45 leont left 06:30 robertle left 06:32 MasterDuke left 08:36 robertle joined 11:24 leont joined
lizmat notable6: weekly 11:42
notable6 lizmat, 8 notes: gist.github.com/c094dfbd4f45695e87...840b8b33d1
11:44 epony left 11:45 Kaiepi left 13:20 discord63 joined 13:22 ExtraCrispy left, discord6 left, ExtraCrispy joined 13:23 discord63 is now known as discord6 13:32 Guest27580 left
AlexDaniel weekly: New rakudo release manager! github.com/rakudo/rakudo/commit/41...5a821e3c14 13:36
notable6 AlexDaniel, Noted!
AlexDaniel lizmat: :)
14:40 SqrtNegInf joined 14:55 scovit joined
scovit Hi, I just opened this issue: #2796 . If anybody can enlighten me on the reasoning behind the logic in CatHandle, that will be good for Karma, thanks! 14:56
m: my $inflist = 1..*; my @inflist = $inflist.map: { "$_.txt" }; my $*ARGFILES = IO::CatHandle.new(@inflist); 14:59
camelia IO::CatHandle is disallowed in restricted setting
in sub restricted at src/RESTRICTED.setting line 2
in method new at src/RESTRICTED.setting line 32
in block <unit> at <tmp> line 1
scovit well..
lizmat scovit: will look at it after finishing the P6W 15:03
scovit lizmat: no hurry! 15:04
thanks
ugexe in SET-SELF it does `@handles.elems; # reify` 15:10
lizmat reportable6: 2019-03-18T12:00:00Z 2019-03-25T00:00:00Z
reportable6 lizmat, Couldn't find a snapshot for 2019-03-18T12:00:00Z (try 「list」 command to see what's available).
lizmat reportable6: list 15:11
reportable6 lizmat, gist.github.com/cad679e9f6bfc26f06...4943281deb
lizmat reportable6: 2019-03-18T12:00:00Z 2019-03-24T00:12:00Z
reportable6 lizmat, Couldn't find a snapshot for 2019-03-18T12:00:00Z (try 「list」 command to see what's available).
ugexe originally `@handles.elems or die 'Must have at least one item to create IO::CatHandle from';`
lizmat AlexDaniel: what up with reportable ? 15:12
ugexe github.com/rakudo/rakudo/commit/ac...2195ab7236 # here is where that .elems is originally introduced 15:13
scovit ugexe, yep, it is my understanding that it should not reify in general. If it is reified already instead, specific optimizations can be implemented 15:14
also automatic optimizations, at least intuitively, but I am not an expert of that field 15:22
lizmat and another Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2019/03/25/...ool-truck/ 15:39
moritz: ^^
notable6: weekly reset
notable6 lizmat, Moved existing notes to “weekly_2019-03-25T15:39:56Z”
AlexDaniel reportable6: 2019-03-18T00:00:00Z 2019-03-25T00:00:00Z 15:42
reportable6 AlexDaniel, Couldn't find a snapshot for 2019-03-25T00:00:00Z (try 「list」 command to see what's available).
AlexDaniel reportable6: 2019-03-18T00:00:00Z 2019-03-24T12:00:00Z
reportable6 AlexDaniel, OK, working on it! This may take up to 40 seconds
AlexDaniel, gist.github.com/55c43bc6789adfcb75...c94765714a 15:43
AlexDaniel lizmat: that's as close as it will get
lizmat AlexDaniel++ # updated post 15:44
AlexDaniel lizmat: “Missing math/statistics functions” there's no link 15:47
15:48 dogbert joined, dogbert is now known as Guest5277
lizmat AlexDaniel++ # oops, missed a ", fixed now 15:48
Guest5277 lizmat: "Provided are a challenge for Begi*nnn*ers, and a challenge for Experts" 15:49
lizmat Guest5277++ + # fixed :-) 15:51
Guest5277 is dogbert17 in disguise :-) 15:52
15:52 robertle left
lizmat dogbert17++ :-) 15:53
afk for a bit&
16:24 vrurg left 16:27 vrurg joined
scovit I found this wikipedia page en.wikipedia.org/wiki/Strictness_analysis 16:44
16:50 robertle joined 17:25 epony joined
masak brrt++ # brrt-to-the-future.blogspot.com/20...on-is.html 18:47
TreyHarris I'm not sure if perl6-language is dead or not at this point, but I just sent a message about a problem with MAIN argument handling that I think necessitates an EnumStr allomorph in the language. (Or otherwise, MAIN argument handling in general is broken and must be changed somehow.) 18:51
timotimo how does that work with enum values that come from multiple types? 18:52
oh
TreyHarris Such as?
timotimo now i get what you mean
ugexe sub MAIN($s) { if $s { say 42 } }; # how could EnumStr work with this?
Planned and Same for instance would both not print anything 18:53
and arguable the string "False" (such as a module named False being fed to zef) should be true
timotimo i think it'd only be for True and False perhaps?
oh, and of course the third boolean value: FileNotFound
TreyHarris There's literally no way I can find to get a single string argument to take both "True" and "Bool::True". So a BoolStr might be all that's needed?
(er, to take and not collapse both to the same value, I mean) 18:54
ugexe if we have BoolStr() then we need to encourage use of Str() vs Str in MAIN documentation
* as appropriate
timotimo maybe a solution that has MAIN check parameter lists for enum-acceptance would be better? 18:55
ugexe for some reason i'm OK with string 0 from command line being false, but False being false bothers me
TreyHarris ugexe: already on that, was entering an issue into the docs GitHub that I was going to assign to myself about Str() in MAIN
ugexe: because that's traditional in Unix command lines? 18:56
timotimo AFKBBL
TreyHarris A general EnumStr couldn't provide truthy and falsy values?
ugexe well "Planned".so == True, but Planned.so == False 18:57
so if you type "Planned" on the command line, what do you expect? 18:58
it also probably means adding any EnumStr at anytime is a breaking change 18:59
adding any Enum (resulting in new EnumStr rather)
TreyHarris I'd suggested BoolStr initially but in the rakudo issue lizmat++ suggested EnumStr and I thought that was better--but assumed EnumStr.(True, "True") would be true and EnumStr.new(False, "False") would be false. It's a good question though, what I think I'd *expect* is that, if my arg is typed, the type would control, and a Str (or Str()) would be true if it weren't empty, while a Bool or ... what's this 19:00
type with Planned, etc? EnumTypeX argument would respect that Enums truthiness
But I don't know how to make that happen in the language we have
ugexe it makes more sense to me for the developer to know they want "False" to be false, and thus $arg = EVAL $arg;
TreyHarris The current situation where a directory with files "True" and "Bool::True" will access just one of those files twice if the program is called with * is just untenable, though, agreed? 19:01
ugexe if you want to pass types on the command line then you should know what you are doing. otherwise you shouldn't have to worry about what weird strings users might enter that can break your code
should know what you are doing (and hence do the EVAL thing) 19:02
TreyHarris ugexe: exactly. That's what I mean by "untenable".
ugexe yeah agreed on your comment
TreyHarris I don't have a strong opinion on the fix, but I'll mention that for non-Str cases the current behavior is _very_ nice. 19:03
I find it ironic that this is a very PHP problem :-D 19:04
19:04 lucasb joined
ugexe m: sub MAIN(*@_) { .WHAT.say for @_ }; BEGIN @*ARGS = "False"; 19:04
camelia (Bool) 19:05
ugexe so much for Str() :P
TreyHarris I said that in my email--Str, Str(), untyped, slurpy, they all break
But, separately, `Str()` is in fact what most users will want when they say Str in a MAIN constraint. 19:06
We can probably deal with that through education rather than special-casing MAIN though 19:07
ugexe its too bad allmorphs don't just automatically coerce to the correct type if its given
TreyHarris ugexe: yes, if you recall that really startled me a few days ago when it came up on #perl6
Liskov substitution in Perl6 is... weird. It's pragmatic in 99% of cases, but that other 1% you end having to mess with the MOP or just workaround it. 19:10
ugexe my short term memory isnt great, but im probably subconsciously regurgitating what i read you say
TreyHarris You can't really treat Perl as a fully-untyped language even if you never mention a type in your own code, but you can't treat it as strongly-typed either even if you always type constrain everything. The liminal spaces are few but surprising. 19:12
lucasb: Is your labeling that 'CLI' correct? 'CLI' refers to the executables' CLI's, right, not 'MAIN' behavior, which is for users creating CLI's. Unless the code to do the one is re-used to do the other in Rakudo (I honestly haven't looked)? 19:22
m: my $x = Kept; put $x.WHAT 19:34
camelia Use of uninitialized value of type PromiseStatus in string context.
Methods .^name, .perl, .gist, or .say can be used to stringify it to something meaningful.

in block <unit> at <tmp> line 1
TreyHarris Is that correct behavior?
lucasb TreyHarris: I tagged MAIN sub issues with the CLI label (meaning not only the perl6(1) executable interface itself, but user-programs that uses the MAIN feature) 19:36
see the others CLI labelled issues: github.com/rakudo/rakudo/issues?q=...abel%3ACLI 19:37
the label can be renamed if it's not appropriate
19:37 scovit left
lucasb hmm, maybe better to split the labels in CLI (only perl6 executable) and MAIN? 19:38
19:39 scovit joined
lucasb anyway, CLI is just an umbrella term to help organize :) 19:41
TreyHarris MAIN seems like a different skill/difficulty set to me
Which is the usual reason to split labels in GitHub I think 19:42
19:43 a3f left
TreyHarris m: sub f(Str() $x) { put $x }; f($_) for 42, True, Kept, Nil, &sort; 19:44
camelia 42
Use of Nil in string context
True
Kept

sort
in sub f at <tmp> line 1
Sub object coerced to string (please use .gist or .perl to do that)
in sub f at <tmp> line 1
19:45 a3f joined
TreyHarris Is ^ all correct? (I am trying to answer ugexe's question in the rakudo issue, not moving a question better asked on #perl6 here.) 19:45
ugexe well, what strings things coerce to isn't in question 19:47
leont This sort of thing is half of why I started writing Getopt::Long 19:49
Geth rakudo: f03c781423 | tony-o++ | src/core/operators.pm6
merges class symbols into stub when using require stub:file<>
19:53
rakudo: 17c9d88f28 | (Nick Logan)++ (committed using GitHub Web editor) | src/core/operators.pm6
Merge pull request #2789 from tony-o/master

merges class symbols into stub when using require stub:file<>
roast: 5ff9d379a9 | tony-o++ | 2 files
add tests for require:file<> containing classes
19:54
roast: 492fa32bb7 | tony-o++ | S11-modules/require.t
simplify require stub:file test, rescope and more clearly name $class-name to $class-path
roast: b9364f9247 | (Nick Logan)++ (committed using GitHub Web editor) | 2 files
Merge pull request #522 from tony-o/master

add tests for require:file<> containing classes
21:30 vrurg left
lizmat gfldex: re gfldex.wordpress.com/2019/03/25/i-...kudo-100x/ 21:59
s/peace of code/piece of code/