00:37
linkable6 left,
evalable6 left
00:39
evalable6 joined
00:40
linkable6 joined
01:04
Kaiepi joined,
Kaeipi left
01:18
lucasb left
01:30
lancew left
01:34
JRaspass joined
01:47
tyilanmenyn is now known as tyil
|
|||
releasable6 | Next release in ≈6 days and ≈15 hours. 1 blocker. Please log your changes in the ChangeLog: github.com/rakudo/rakudo/wiki/ChangeLog-Draft | 03:00 | |
03:28
Kaeipi joined
03:30
HarmtH joined,
JRaspass left,
Kaiepi left
04:52
JRaspass joined
05:21
JRaspass left
08:03
nine left,
nine joined
09:01
sxmx left
09:44
sena_kun joined
10:54
Xliff joined
|
|||
Xliff | m: class A { submethod BUILD (:$o) { say "A O: $o" }; }; class B isA { submethod BUILD { say "B" }; }; class C is B { submethod BUILD (:$o) { say "C O: $o"; }; C.new(o => 42) | 10:55 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Unable to parse class definition at <tmp>:1 ------> 3D (:$o) { say "A O: $o" }; }; class B is7⏏5A { submethod BUILD { say "B" }; }; clas expecting any of: whitespace |
||
tellable6 | 2021-01-15T10:38:51Z #moarvm <jnthn> Xliff I assume you're talking about Cro::WebApp? In which case a) no, b) there's a #cro that's good for such questions :) | ||
Xliff | m: class A { submethod BUILD (:$o) { say "A O: $o" }; }; class B is A { submethod BUILD { say "B" }; }; class C is B { submethod BUILD (:$o) { say "C O: $o"; }; C.new(o => 42) | 10:56 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Missing block at <tmp>:1 ------> 3(:$o) { say "C O: $o"; }; C.new(o => 42)7⏏5<EOL> expecting any of: statement end statement modifier statement modifier loo… |
||
Xliff | m: class A { submethod BUILD (:$o) { say "A O: $o" }; }; class B is A { submethod BUILD { say "B" }; }; class C is B { submethod BUILD (:$o) { say "C O: $o"; }; }; C.new(o => 42) | ||
camelia | A O: 42 B C O: 42 |
||
Xliff | m: role A { submethod BUILD (:$o) { say "A O: $o" }; }; class B does A { submethod BUILD { say "B" }; }; class C is B { submethod BUILD (:$o) { say "C O: $o"; }; }; C.new(o => 42) | 10:57 | |
camelia | B C O: 42 |
||
Xliff | m: role A { submethod BUILD (:$o) { say "A O: $o" }; }; class B does A { submethod BUILD (:$o) { say "B O: $o" }; }; class C is B { submethod BUILD { say }; }; C.new(o => 42) | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Unsupported use of bare "say". In Raku please use: .say if you meant to call it as a method on $_, or use an explicit invocant or argument, or use &say to refer to the function as a noun. at <tmp… |
||
Xliff | m: role A { submethod BUILD (:$o) { say "A O: $o" }; }; class B does A { submethod BUILD (:$o) { say "B O: $o" }; }; class C is B { submethod BUILD {}; }; C.new(o => 42) | 10:58 | |
camelia | B O: 42 | ||
Xliff | .tell jnthn a) Thanks and b) I know, I've joined it and is sending that .tell from #moarvm really a good way to get that message across? :) | 11:03 | |
tellable6 | Xliff, I'll pass your message to jnthn | ||
lizmat | Files=1346, Tests=117149, 226 wallclock secs (30.46 usr 8.95 sys + 3160.49 cusr 306.56 csys = 3506.46 CPU) | 11:06 | |
Xliff | m: role A { submethod BUILD (:$o) { say "A O: $o" }; multi method new ($o, :$o is required) { self.bless( :$o ); }; }; class B does A { submethod BUILD (:$o) { say "B O: $o" }; }; class C is B { submethod BUILD {}; }; C.new(o => 42); C.new(42, :o) | 11:07 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Redeclaration of symbol '$o'. at <tmp>:1 ------> 3y "A O: $o" }; multi method new ($o, :$o7⏏5 is required) { self.bless( :$o ); }; }; expecting any of: shape declaration |
||
Xliff | m: role A { submethod BUILD (:$o) { say "A O: $o" }; multi method new ($o, :$o) is required) { self.bless( :$o ); }; }; class B does A { submethod BUILD (:$o) { say "B O: $o" }; }; class C is B { submethod BUILD {}; }; C.new(o => 42); C.new(42, :o) | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Redeclaration of symbol '$o'. at <tmp>:1 ------> 3y "A O: $o" }; multi method new ($o, :$o7⏏5) is required) { self.bless( :$o ); }; } expecting any of: shape declaration |
||
Xliff | m: role A { submethod BUILD (:$o) { say "A O: $o" }; multi method new ($o, :$obj) is required) { self.bless( o => $obj ); }; }; class B does A { submethod BUILD (:$o) { say "B O: $o" }; }; class C is B { submethod BUILD {}; }; C.new(o => 42); C.new(42, :obj) | 11:08 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Missing block at <tmp>:1 ------> 3multi method new ($o, :$obj) is required7⏏5) { self.bless( o => $obj ); }; }; class |
||
Xliff | m: role A { submethod BUILD (:$o) { say "A O: $o" }; multi method new ($o, :$obj is required) { self.bless( o => $obj ); }; }; class B does A { submethod BUILD (:$o) { say "B O: $o" }; }; class C is B { submethod BUILD {}; }; C.new(o => 42); C.new(42, :obj) | ||
camelia | B O: 42 B O: True |
||
Xliff | m: role A { submethod BUILD (:$o) { say "A O: $o" }; multi method new ($o, :$obj is required) { self.bless( :$o ); }; }; class B does A { submethod BUILD (:$o) { say "B O: $o" }; }; class C is B { submethod BUILD {}; }; C.new(o => 42); C.new(42, :obj) | 11:09 | |
camelia | B O: 42 B O: 42 |
||
Xliff | OK, so what am I missing. This doesn't work in the original code! | 11:10 | |
11:30
Altai-man joined
11:33
sena_kun left
|
|||
Geth | rakudo/faster-ASSIGN-POS: 779379de44 | (Elizabeth Mattijsen)++ | src/core.c/Array.pm6 Make Array.ASSIGN-POS about 15% faster By reducing the actual fast path to a single nqp::assign, and reworking the tests into ternaries. Also returns the actual container now rather than a deconted value (just like Hash::ASSIGN-KEY does). Eliminates the FAST-PATH private method. Removes the index < 0 check from the SLOW-PATH as that is now being checked in the actual ASSIGN-POS method (but not really acted upon, just used as a flag to take the slow path). |
13:26 | |
rakudo: lizmat++ created pull request #4170: Make Array.ASSIGN-POS about 15% faster |
|||
13:52
sena_kun joined
14:24
Altai-man left
14:44
lucasb joined
15:32
sena_kun left
15:46
sena_kun joined
16:04
b2gills left,
japhb left
16:05
b2gills joined
16:09
japhb joined
16:14
sena_kun left
16:20
sena_kun joined
|
|||
lizmat | www.reddit.com/r/rakulang/comments...eged_user/ # any takers? | 16:28 | |
nine | lizmat: looks bad. | 16:32 | |
CompUnit::Repository::Installation::candidates needs to return Empty unless $prefix.add('short').e; before calling self!short-dir | |||
as the latter will try to create the directory | 16:33 | ||
lizmat | so this would need a core change to fix ? | 16:34 | |
nine | yes | ||
As a workaround he may set $HOME to some directory where that user has write privileges | 16:35 | ||
lizmat | perhaps they could first run it as a normal user, and then move the .precomped files to the expected location? | 16:37 | |
ugexe | i dont think adding that change to .candidates will really fix it, there are other places that assume self!short-dir exists and do things like my $lookup = self!short-dir.add($id) andthen { .mkdir unless .e } | 17:02 | |
i.e. installation | 17:03 | ||
although maybe install time is ok for that since thats when the priv user is running it | |||
17:05
MasterDuke joined
|
|||
lizmat | feels to me this is an X/Y solution anyway | 17:10 | |
Feels to me the op needs a way to have a pre-comp files only version | |||
ugexe | im pretty sure they just want CURI to be able to load modules without a writeable home directory | 17:13 | |
one (non-existing option) would be to add a way to define which repos are (or are not) included when using raku. as it is now there is always the default repos including $HOME/.raku | 17:19 | ||
something like the inverse of -I | |||
lizmat | ah... so simply removing $HOME/.raku from the list should work ? | 17:20 | |
ugexe | i believe so | ||
although there isnt a way to do that | 17:21 | ||
lizmat | looks like undeffing $HOME should just do that? | 17:23 | |
and HOMEDRIVE and HOMEPATH when on Win | |||
ugexe | without looking i would expect that only changes the directory to $empty_string/.raku | 17:26 | |
so now the problem is -- is the cwd writable? | |||
lizmat | $ raku -Mfoo -e '' | 17:28 | |
===SORRY!=== Error while compiling -e | |||
Could not find foo in: | |||
inst#/Users/liz/.raku | |||
$ HOME= raku -Mfoo -e '' | |||
===SORRY!=== Error while compiling -e | |||
Could not find foo in: | |||
inst#/Users/liz/Github/rakudo.moar/install/share/perl6/site | |||
so that appears to work | |||
17:28
euantorano joined
|
|||
euantorano | hi all, I'm the author of the aforementioned reddit post | 17:29 | |
lizmat | euantorano o/ | ||
euantorano | Thought I'd drop in, and explain what my current solution is: I changed the unprivileged user's path to the root path of the project that is running | ||
After restarting the service, a new `.raku/short` directory appeared and all is well | 17:30 | ||
ugexe | ➜ moar-blead git:(f89863249) pwd | ||
/Users/ugexe/.rakubrew/versions/moar-blead | |||
➜ moar-blead git:(f89863249) HOME=123 raku -M foo -e '' | |||
===SORRY!=== Error while compiling -e | |||
Could not find foo in: | |||
inst#/Users/ugexe/.rakubrew/versions/moar-blead/123/.raku | |||
so yeah setting it to blank seems to work | |||
setting it to anything else does what i thought blank string would do | 17:31 | ||
lizmat | euantorano: could you try the HOME= fix and see if that prevents the dir from being created ? | 17:32 | |
just OOC to make sure that that's also a possible solution for such a situation | |||
euantorano | lizmat: sure, will give it a go and see what happens | 17:33 | |
Yep, that seems to work - no `.raku` directory is created and no warnings are printed | 17:34 | ||
lizmat | cool | ||
thanks for trying! | 17:35 | ||
afk for a few hours& | |||
ugexe | i wonder though how removing a repo affects the precomp systems, since removing a repo would change the repo-id of the repositories that come after it | 17:36 | |
github.com/rakudo/rakudo/blob/927f...n.pm6#L599 here specifically | |||
a wild guess is it might no longer be able to take the fast path for lookups | 17:37 | ||
nine | ugexe: shouldn't matter. When we install a module, we only consider the rest of the repo chain for the id. That's what this line is for: PROCESS::<$REPO> := self; # Precomp files should only depend on downstream repos | 17:59 | |
Well, ok. You're right, we still have to re-resolve loaded modules, so lose a bit of the optimization | 18:00 | ||
So the best solution is just to fix Rakudo :) | |||
ugexe | well it would still be nice to be able to pick which specific repositories to use. for instance if i install all dependencies into a specific location and want only that location to be used for module loading | 18:01 | |
even if doing so requires some convoluted parameters etc | |||
nine | certainly | 18:02 | |
So, something like raku --no-standard-repositories -Iinst#/your/repo | |||
ugexe | yeah | 18:03 | |
i suppose the `core` repo complicates things with that approach, but yeah thats the general idea | 18:04 | ||
nine | how so? | ||
ugexe | how to handle NativeCall ? | 18:05 | |
nine | either just install it to your special repo, or add the core repo to your command line as well | ||
ugexe | well NativeCall isnt versioned | ||
i wonder if there is a way for us to version the core distribution that makes sense | 18:08 | ||
nine | How about just using Rakudo's version? | 18:09 | |
ugexe | that was my first thought too, but that does assume rakudo is the decider of NativeCall version and not any other implementation | ||
i can also see people (read: me) abusing it to depend on a specific rakudo version lol | 18:10 | ||
nine | It really comes down to the question of whether these libraries are part of Raku or Rakudo | 18:11 | |
ugexe | it would be odd for NativeCall to not be part of raku, even if not this specific implementation | 18:14 | |
the pain of dual-life distributions grows ever closer | 18:15 | ||
nine | I guess the API is part of Raku, the implementation part of Rakudo. Anyway why is the version that important for the described scenario? | 18:19 | |
ugexe | because managing dependencies that don't update their versions is a huge pain | 18:21 | |
once they are out of core it has to be managed | |||
otherwise i can have some old NativeCall installed that brakes something, and no way to install over it because the version never changes so e.g. zef never sees any reason to update it | 18:22 | ||
nine | Ah, yes, when updating rakudo | 18:23 | |
19:30
Altai-man joined
19:32
sena_kun left
20:11
JRaspass joined
20:22
b2gills left
20:23
b2gills joined,
sxmx joined
21:42
MasterDuke left
22:06
vrurg left,
vrurg_ joined
22:07
Altai-man left
22:29
vrurg_ is now known as vrurg
|
|||
releasable6 | Next release in ≈5 days and ≈19 hours. 1 blocker. Please log your changes in the ChangeLog: github.com/rakudo/rakudo/wiki/ChangeLog-Draft | 23:00 | |
23:21
b2gills left,
JRaspass left
23:22
b2gills joined
|