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/ |