04:13
bartolin left
04:24
bartolin joined
|
|||
ab5tract | Sure, but that’s more options not less., and there is no way to output a file name that doesn’t conform to that | 06:24 | |
Or isn’t affected by that, rather | 06:26 | ||
Geth | rakudo: usev6++ created pull request #5714: [JVM] Reduce backend-specific code in find_best_dispatchee |
07:40 | |
nqp/main: 5b86eef601 | (Elizabeth Mattijsen)++ | tools/templates/MOAR_REVISION Bump MoarVM to get MasterDuke++ fast path comparison fix |
09:19 | ||
09:19
japhb left
09:26
japhb joined
|
|||
Geth | rakudo/main: 936c356935 | (Elizabeth Mattijsen)++ | tools/templates/NQP_REVISION Bump NQP to get MasterDuke++ fast path comparison fix |
09:31 | |
09:37
sena_kun joined
10:07
sena_kun left
|
|||
lizmat | hmmm I just noticed there are quite a few tags in the ecosystem that consist of multple words | 11:52 | |
shouldn't a tag be a single word ? | 11:53 | ||
(without any spaces?) | |||
ab5tract | Is there a canonical source for these tags or can devs add them Freeform? | 14:00 | |
lizmat | freeform, in the META6.json | ||
14:20
vrurg joined
|
|||
ugexe | I’m not sure I follow. You asked how someone might find themselves using a command that wouldn’t work anymore if we normalized named. The scenario I described is just that: if the names were normalized and they were using e.g. Zef instead of zef then it would no longer work | 14:35 | |
At least I think that’s what you asked | 14:43 | ||
patrickb | I think I don't understand. As long as we stay on a case insensitive FS, all variants of "zEf" should continue to work, irrespective of how we choose to name the script file (as long as the letters making up the word stay zZeEfF), right? | 15:30 | |
timo | is it really freeform if we limit them to strings, and not arrays, objects, floats, ints, booleans, or null? :P | 15:31 | |
patrickb | Just to be sure I don't miss a point here: There is nothing we can do about FSes limiting how scripts could be named, apart from maybe converting unsupported chars to some fallback. Right? | 15:32 | |
lizmat | ah, ok, well, strings and arrays of strings are allowed afaik | ||
patrickb wonders whether the lack of comments on ps#455 is a good or a bad sign. | 15:35 | ||
linkable6 | PS#455 [open]: github.com/Raku/problem-solving/issues/455 [rakudo] Revamping wrapper scripts in CURI | ||
patrickb | Wow. It understood that ps referred to problem-solving?!? | 15:36 | |
timo | we do have a little map of prefixes for issue numbers in there, yeah | ||
i think | |||
linkable6: source | |||
linkable6 | timo, github.com/Raku/whateverable | ||
timo | github.com/Raku/whateverable/blob/...ble.p6#L30 | 15:37 | |
ugexe | patrickb: the problem is zef, Zef, zEF, etc would all shadow the same name on some systems and not others. that is not the case for installed modules because we sha1 them | 16:17 | |
timo | if not everything that generates sha1s from names uses NFG (or equivalent), we might also get differences there when there's unicode normalization differences | 16:19 | |
just a random thought | 16:20 | ||
ugexe | we could punyencode to handle unicode stuff but case-sensitivity is a problem because both upper and lowercase letters are very common in names which means all names would need some normalization marker in their name | ||
yeah i think we explicitly use latin-1 for sha1ing source but we don't do anything like that for names | 16:21 | ||
patrickb | ugexe: I think I understand now. You are describing a case where a user would be used to typing in "Zef" and then won't be able to do so anymore when they moved to a case-sensitive FS. | 16:22 | |
But this has nothing to do with a name normalization we might (not) perform, correct? | |||
ugexe | yeah, or they might tell people to use "Zef" and those people listening may be on a case sensitive file system | ||
it sort of does: if we normalized names then "Zef" shouldnt work anymore | 16:23 | ||
lizmat | if someone moved from a case-insensitive to a case-sensitive FS, raku would only be one of the muscle memory errors | ||
patrickb | ugexe: Can you elaborate how normalizing names would make a difference? Maybe an example of name before and after normalization would help me understand. | 16:24 | |
Geth | rakudo/main: 5ff3eafef4 | (Elizabeth Mattijsen)++ | src/Perl6/bootstrap.c/BOOTSTRAP.nqp Restore error message on Junction sub-sig binding error |
17:02 | |
rakudo/main: 8765d61725 | (Timo Paulssen)++ | lib/NativeCall/Types.rakumod Have to make sure scalars don't make it into nativecallcast. Fixes #5682 |
17:18 | ||
rakudo/main: 10397f1613 | (Patrick Böker)++ (committed using GitHub Web editor) | lib/NativeCall/Types.rakumod Merge pull request #5684 from rakudo/missing_decont_in_typedpointer_at-pos Have to make sure scalars don't make it into nativecallcast |
|||
18:53
sena_kun joined
|
|||
ugexe | i'm not sure it matters in the context of raku I guess. `curl` works the same as `CuRl` on macos | 18:54 | |
lizmat | m: my %h; %h<a> = %h; put %h # heh, .Str needs the same protection that .gist / .raku have | 19:01 | |
timo | oh no :) | ||
camelia | (timeout) | ||
lizmat | m: my %h; %h<a> = %h; say %h | 19:02 | |
camelia | (\Hash_5074152274656 = {a => Hash_5074152274656}) | ||
timo | m: my %h{Any}; %h{%h} = 5; say %h.raku | ||
camelia | (my Any %{Any}) | ||
timo | m: my %h{Any}; %h<a> = 99; %h{%h} = 5; say %h.raku | ||
camelia | (my Any %{Any} = :a(99), (:a(99)) => 5) | ||
timo | m: my %h{Any}; %h<a> = 99; %h{%h} = 5; say %h.raku; %h<b> = 100; say %h.raku | ||
camelia | (my Any %{Any} = :a(99), (:a(99)) => 5) (my Any %{Any} = :a(99), (:a(99)) => 5, :b(100)) |
||
timo | oh? | 19:03 | |
i guess that's what i get for using postcircumfix:<{ }> with an Associative? | |||
m: my %h{Any}; %h<a> = 99; %h{$%h} = 5; say %h.raku; %h<b> = 100; say %h.raku | |||
camelia | (timeout) | ||
timo | ^- nobody expected recursion inside the hash keys huh? :) :) :) | ||
that doesn't go through .Str, right? | 19:04 | ||
m: my %h{Any}; %h<a> = 99; %h{$%h} = 5; say %h.gist; | |||
lizmat | object hashes uses the .WHICH as keys under the hood | ||
camelia | (timeout) | 19:05 | |
timo | yeah, and the output has to get the object back for display | ||
19:14
librasteve_ joined
|
|||
patrickb | ugexe: Sticking to the curl example. The current executable name is "curl". How would a normalized version that prevents other capitalizations from working look? | 19:20 | |
(I think there is some misunderstanding here. The above question seems to be rhetoric (or I really miss some really obvious point). I do hope that this question reveals where the misunderstanding lies.) | 19:27 | ||
Geth | rakudo/no_rebless_in_every_statement: a2aa5a712d | (Timo Paulssen)++ | src/Perl6/Grammar.nqp don't call nqp::rebless on every statement it causes a full deoptimization up the entire stack, even when it has no effect otherwise. |
19:29 | |
rakudo: timo++ created pull request #5716: don't call nqp::rebless on every statement |
19:30 | ||
rakudo/main: 38e655f470 | timo++ (committed using GitHub Web editor) | src/Perl6/Grammar.nqp don't call nqp::rebless on every statement it causes a full deoptimization up the entire stack, even when it has no effect otherwise. |
19:46 | ||
ugexe | i can't give an example for curl. for raku it theoretically can be done via something like BEGIN { my $basename = 'foo'; die unless $*PROGRAM.basename eq $basename } in the wrapper | 19:55 | |
but since non-raku scripts don't do that i don't think we should either | |||
i'm actually surprised that zEf works on macos. I thought github.com/rakudo/rakudo/blob/38e6...kumod#L311 would do a case sensitive match | 19:56 | ||
Geth | rakudo/main: 1340c2b08e | (Elizabeth Mattijsen)++ | 8 files Fix .Str / .gist / .raku on self-referencing QuantHashes The mutable versions could become self-referential with a simple my %s is SetHash; %s ,= 1; and then infiniloop if .Str / .gist / .raku was called on them ... (5 more lines) |
19:57 | |
ugexe | ah nevermind $script will always be whatever was in the meta.json, i.e. what it was seen as on the file system since it is templated into the wrapper script | ||
timo | so i've looked at R#5715 and a quick "perf record" with a jit perf map shows nfa's optimizer taking a very high spot | 20:25 | |
linkable6 | R#5715 [open]: github.com/rakudo/rakudo/issues/5715 [performance][grammar and actions][operators][Will be addressed in RakuAST] Defining a custom postcircumfix operator cases multisecond hang | ||
timo | the call path towards the optimizer being invoked goes through NQPClassHOW's caches, which are flushed when a mixin is generated, which we do so that old NFAs don't stick around and make our parses be incorrect | 20:27 | |
that means after we create a new variant of Perl6::Grammar, every time we hit an NFA "for the first time" it has to be re-generated, which includes a pass through the optimizer | 20:28 | ||
an alternative could be to do smarter tracking of what goes into an NFA at creation time, to see which entries in the cache have to be invalidated when a new regex is added to a grammar, or an existing one is overwritten | 20:30 | ||
that is potentially difficult to get right, famously cache invalidation is one of the tricky problems in compsci | |||
another alternative could be to see if what we generate before creating the NFA matches what we generated in our parent class, and if it's the same, we could re-use the optimized result from the parent | 20:31 | ||
then the difficulty could be how to actually compare a newly generated NFA to whatever we used to have before we ran the optimizer on another NFA. maybe hashing is correct here | 20:32 | ||
another way forward could be to put some effort into optimizing the optimizer for faster run time? | 20:33 | ||
ab5tract | regarding my question about normalization, it's been mostly elaborated on by patrickb earlier. I'll only add that I didn't realize that the discussion involved producing wrapper scripts, though that is pretty obvious in retrospect. The macOS example seemed very confusing though as it related to the idea of users losing muscle memory related to previously working invocations | 21:13 | |
Losing that muscle memory when switching platforms makes sense, but in terms of the user experience before and after normalization-to-inscrutable-shas+wrapper-scripts, I don't see how there can reasonably be any UX delta whatsoever, as our naming capabilities on any given platform will remain exactly the same | 21:15 | ||
I'll also add one overlapping anecdote, which is that I just about threw this macbook out of a window in Iceland in the rain after discovering that its 2024 and I was computing on a half-year old laptop of considerable expense... | 21:18 | ||
... that is completely incapable of differentiating files by case | |||
It honestly did not occur to me on any level to expect that or factor that in as a consideration when buying into the macos ecosystem | |||
I guess it's a bit of a testament to some latent reality that case insensitivty is kind of cool but a bit of a YAGNI in practice that I've never encountered an issue with it outside of specifically investigating Raku issue reports related to it | 21:19 | ||
ugexe | you can make macos case sensitive, it just isnt by default | 21:29 | |
[Coke] | I have a case sensitive drive on my intel mac so I can more easily do some stuff. I have a few git repos checked out there | 21:32 | |
Was very easy to setup and carve out space from the main drive. | |||
ab5tract | I'm aware that it's an option. I was just remarking on both the shocking nature of the revelation of case-insensitivity in 2023 (which is when this occurred) as well as the fact that literally nothing in terms of personal computing since then has given my reason to bother with enabling case sensitivity | 21:37 | |
ugexe | it does seem bizarre in that it would seem like it would be more difficult to implement / maintain a case insensitive file system than a case sensitive one. windows is the same. | 21:41 | |
i personally don't set my file systems as case sensitive on windows or macos because it breaks Steam. On worktop where I don't have Steam it is mandated I use the default file system | 21:42 | ||
ab5tract | indeed! That's basically what I decided after looking into it. I figured I would take a few deep breaths.. "you didn't notice this until you looked into a Rakudo ticket specifically related to this.. why not just let it sit for a bit and see if it every actually gets in your way?" | 21:49 | |
there's a bizarre, unexpected ninth-degree irony that converting my laptop's drive to case-sensitive would result in **more** inconsistency and usability issues than not doing so | 21:50 | ||
Geth | rakudo/main: aa385bb948 | (Justin DeVuyst)++ | 2 files Update release guide and Akefile to align with current practice. |
22:21 | |
jdv | [Coke]: there you go ^ | 22:22 | |
[Coke] | Thanks, will give those a shot. | ||
22:23
librasteve_ left
|
|||
ab5tract | jdv++ | 22:40 | |
patrickb | Where in a rakudo installation would I place data files? (The template data used to generate the runner programs on Windows) share/perl6/lib/resources/win-runner.exetmpl? | 22:59 | |
23:02
sena_kun left
|
|||
Geth | roast: 1b14e5eb27 | (Elizabeth Mattijsen)++ | 3 files Add tests for #4678 |
23:25 | |
ugexe | patrickb: will your plan work with a rakudo that is upgraded while continuing to work with installed scripts? or would we need to add more upgrade-repository logic (github.com/rakudo/rakudo/blob/aa38...umod#L183) | 23:34 |