🦋 Welcome to the IRC channel of the core developers of the Raku Programming Language (raku.org #rakulang). This channel is logged for the purpose of history keeping about its development | evalbot usage: 'm: say 3;' or /msg camelia m: ... | Logs available at irclogs.raku.org/raku-dev/live.html | For MoarVM see #moarvm Set by lizmat on 8 June 2022. |
|||||||||||||||||||||||||||||||||||||||
00:00
reportable6 left
00:01
reportable6 joined
|
|||||||||||||||||||||||||||||||||||||||
Geth | rakudo/main: 71240f0024 | (Daniel Green)++ | src/core.c/CompUnit/Repository/FileSystem.pm6 Get rid of more $*(SPEC|CWD) lookups in dir() |
00:39 | |||||||||||||||||||||||||||||||||||||
00:49
kurahaupo left
|
|||||||||||||||||||||||||||||||||||||||
Geth | ¦ problem-solving: vrurg assigned to codesections Issue Rakudoc in third-party modules and some related topics github.com/Raku/problem-solving/issues/373 | 01:02 | |||||||||||||||||||||||||||||||||||||
01:41
MasterDuke joined
01:47
MasterDuke left
02:01
MasterDuke joined
|
|||||||||||||||||||||||||||||||||||||||
MasterDuke | ugexe, lizmat: in CompUnit::PrecompilationRepository.precompile, there are a couple places where `$path.Str` is used (e.g., github.com/rakudo/rakudo/blob/main...pm6#L346). however, the parameter `:$source-name` has a default of `$path.Str`. can it be used instead of those `$path.Str`s? or would its | 02:44 | |||||||||||||||||||||||||||||||||||||
value if passed in and not the default be the wrong thing to use in those places? | |||||||||||||||||||||||||||||||||||||||
05:33
squashable6 left,
evalable6 left,
benchable6 left,
linkable6 left,
unicodable6 left,
bisectable6 left,
shareable6 left,
greppable6 left,
notable6 left,
sourceable6 left,
quotable6 left,
tellable6 left,
releasable6 left,
committable6 left,
reportable6 left,
statisfiable6 left,
coverable6 left,
nativecallable6 left,
bloatable6 left
05:34
committable6 joined,
reportable6 joined
05:35
releasable6 joined,
unicodable6 joined,
bloatable6 joined,
statisfiable6 joined,
nativecallable6 joined,
evalable6 joined,
sourceable6 joined,
notable6 joined,
squashable6 joined
05:36
tellable6 joined,
quotable6 joined,
greppable6 joined,
bisectable6 joined,
coverable6 joined,
benchable6 joined,
shareable6 joined
06:00
reportable6 left
06:01
reportable6 joined
06:34
linkable6 joined
07:20
sena_kun joined
09:21
sena_kun left
|
|||||||||||||||||||||||||||||||||||||||
Geth | rakudo/main: 1617881dc2 | (Elizabeth Mattijsen)++ | src/core.c/List.pm6 Streamline List.fmt a bit, a few % faster - clone source list - don't use positional logic, but shift / push - reduce bytecode size for easier / sooner inlining |
09:38 | |||||||||||||||||||||||||||||||||||||
rakudo/main: 7d3b9d6b4c | (Elizabeth Mattijsen)++ | 3 files Combine 6.e augments and additions into single files And document them a bit better as to the reason of their existence. |
10:17 | ||||||||||||||||||||||||||||||||||||||
rakudo/main: 3d0b322287 | (Elizabeth Mattijsen)++ | 7 files Remove .e files that were combined into Fixups/additions |
10:18 | ||||||||||||||||||||||||||||||||||||||
11:18
linkable6 left,
evalable6 left
11:19
evalable6 joined,
linkable6 joined
11:55
tonyo left
11:56
tonyo joined
|
|||||||||||||||||||||||||||||||||||||||
ugexe | MasterDuke: I think source-name might be for showing the stack traces but i'm not sure | 11:58 | |||||||||||||||||||||||||||||||||||||
tools/build/install-core-dist.raku: :source-name("core#$source-file (CompUnit::Repository::Staging)"), | |||||||||||||||||||||||||||||||||||||||
src/core.c/CompUnit/Repository/Installation.pm6: :source-name("$source-file ($_.key())"), | 11:59 | ||||||||||||||||||||||||||||||||||||||
in both cases they have a path followed by a space followed by ( followed by a module name followed by ) | 12:00 | ||||||||||||||||||||||||||||||||||||||
similar to $?FILE | |||||||||||||||||||||||||||||||||||||||
12:00
reportable6 left
12:01
reportable6 joined
|
|||||||||||||||||||||||||||||||||||||||
lizmat | why is it again that we cannot augment roles ? | 12:16 | |||||||||||||||||||||||||||||||||||||
timo1 | probably because we don't want to keep every class that has applied a role around so we can augment them at the same time as the role has been augmented | 12:20 | |||||||||||||||||||||||||||||||||||||
lizmat | but what if augmenting a role would *not* affect any classes that already consumed the role ? | 12:41 | |||||||||||||||||||||||||||||||||||||
case in point: adding a .fmt candidate to QuantHashes | 12:42 | ||||||||||||||||||||||||||||||||||||||
12:43
lucs left,
lucs joined
|
|||||||||||||||||||||||||||||||||||||||
lizmat | now I need to add a .fmt method to Bag/BagHash/Set/SetHash/Mix/MixHash | 12:43 | |||||||||||||||||||||||||||||||||||||
14:00
kurahaupo joined
|
|||||||||||||||||||||||||||||||||||||||
[Tux] |
|
14:17 | |||||||||||||||||||||||||||||||||||||
note: I killed Opera, Iron and Teams before I ran the timings | 14:18 | ||||||||||||||||||||||||||||||||||||||
Geth | rakudo/main: 69d570d21a | (Elizabeth Mattijsen)++ | 7 files Make .fmt a multi everywhere To allow it being augmented in 6.e to allow for candidates taking the new Format object |
14:22 | |||||||||||||||||||||||||||||||||||||
rakudo/main: a2d616a0fa | (Elizabeth Mattijsen)++ | 5 files Give .fmt a single proto in the setting |
|||||||||||||||||||||||||||||||||||||||
15:09
kurahaupo left
15:12
kurahaupo joined
15:14
kurahaupo left
15:18
kurahaupo joined
15:20
kurahaupo left
15:25
kurahaupo joined
15:31
kurahaupo left
15:34
kurahaupo joined
16:17
kurahaupo left
16:22
kurahaupo joined
16:46
kurahaupo left
16:57
kurahaupo joined
17:40
sena_kun joined
18:00
reportable6 left
18:01
reportable6 joined
18:20
kurahaupo left
18:21
RakuIRCLogger left,
RakuIRCLogger joined
18:25
kurahaupo joined
18:40
kurahaupo left
18:45
kurahaupo joined
19:06
kurahaupo left
19:11
kurahaupo joined
|
|||||||||||||||||||||||||||||||||||||||
gfldex | `Backtrace` is fetching code object names via nqp. Is this a bootstrappy thing or does it evade my mixin intentinally? github.com/rakudo/rakudo/blob/main...e.pm6#L198 | 20:03 | |||||||||||||||||||||||||||||||||||||
vrurg_ | gfldex: what do you mean 'bootstrappy'? | 20:08 | |||||||||||||||||||||||||||||||||||||
20:08
vrurg_ is now known as vrurg
|
|||||||||||||||||||||||||||||||||||||||
gfldex | My first guess was that backtraces have to work early in the compilation of Rakudo itself. | 20:13 | |||||||||||||||||||||||||||||||||||||
ohh, there is also nqp::setcodename! | 20:16 | ||||||||||||||||||||||||||||||||||||||
gfldex goes to abuse that | |||||||||||||||||||||||||||||||||||||||
:-/ That doesn't work either. | 20:22 | ||||||||||||||||||||||||||||||||||||||
vrurg | What did you use it with? | ||||||||||||||||||||||||||||||||||||||
Whatever, &foo.set_name("bar") does use setcodename anyway. So, it's something different. | 20:24 | ||||||||||||||||||||||||||||||||||||||
BTW, for a multi-dispatch you'd have to apply it to every candidate. | |||||||||||||||||||||||||||||||||||||||
gfldex | That's exactly what I'm trying to do. | 20:28 | |||||||||||||||||||||||||||||||||||||
here is the code: gist.github.com/gfldex/c6b3dc2f6c6...2f67508e35 | 20:31 | ||||||||||||||||||||||||||||||||||||||
The mixin works for the candidates but Backtrace::Frame ignoes it because it is using nqp::getcodename . | 20:32 | ||||||||||||||||||||||||||||||||||||||
20:32
kurahaupo left
|
|||||||||||||||||||||||||||||||||||||||
vrurg | Try just r.set_name(...) | 20:33 | |||||||||||||||||||||||||||||||||||||
m: sub foo { say Backtrace.new.Str; }; &foo.set_name("bar"); foo; | 20:34 | ||||||||||||||||||||||||||||||||||||||
camelia | in sub bar at <tmp> line 1 in block <unit> at <tmp> line 1 |
||||||||||||||||||||||||||||||||||||||
vrurg | Argh, yes, there is a problem about that: when the trait is applied the routine compilation is not done yet. | 20:36 | |||||||||||||||||||||||||||||||||||||
20:38
kurahaupo joined
|
|||||||||||||||||||||||||||||||||||||||
vrurg | At some point later finish_code_object on the World gets invoked which rewrites any name change. | 20:38 | |||||||||||||||||||||||||||||||||||||
gfldex | r.set_name does change the name in nqp-land. If I use nqp::getcodename right after setting it, I get the correct name. But it wont show up in the stacktrace. I'm even more confused then usual. | ||||||||||||||||||||||||||||||||||||||
vrurg was already dancing on these rakes. :) | |||||||||||||||||||||||||||||||||||||||
gfldex | ohh | ||||||||||||||||||||||||||||||||||||||
vrurg | Compile time is compile time. It hides surprises. | 20:39 | |||||||||||||||||||||||||||||||||||||
gfldex | Should be a solvable problem in my case tho. | 20:40 | |||||||||||||||||||||||||||||||||||||
vrurg | The only compiler-independent solution would be to have some kind of fixup at run-time. Nothing better comes into mind at this moment. | 20:41 | |||||||||||||||||||||||||||||||||||||
gfldex | First time I used an INIT phaser and I'm a raku beginner since 2008! | 20:45 | |||||||||||||||||||||||||||||||||||||
20:52
sena_kun left
20:57
kurahaupo left
21:02
kurahaupo joined
21:09
kurahaupo left
21:14
kurahaupo joined
21:16
kurahaupo left
21:23
kurahaupo joined
21:31
kurahaupo left
21:36
kurahaupo joined
22:41
kurahaupo left
22:46
kurahaupo joined
|
|||||||||||||||||||||||||||||||||||||||
Geth | rakudo/main: f3bb7a2c21 | (Elizabeth Mattijsen)++ | src/core.e/Formatter.pm6 Add Format.count method To allow introspection to find out how many arguments a given Format expects. |
23:04 | |||||||||||||||||||||||||||||||||||||
rakudo/main: eceaeeaef7 | (Elizabeth Mattijsen)++ | 2 files Add .fmt(Format:D) candidates where appropriate By creating clients of the Format.handle-iterator implementation detail method. Sadly, this meant creating augments for all QuantHash classes separately, as one cannot augment roles. |
|||||||||||||||||||||||||||||||||||||||
rakudo/main: 143aac0765 | (Elizabeth Mattijsen)++ | src/core.e/Fixups.pm6 Correct comment, japhb++ for the catch |
23:08 | ||||||||||||||||||||||||||||||||||||||
ugexe | I don't think a name like .count method on something like Format is very clear what its for | 23:09 | |||||||||||||||||||||||||||||||||||||
argument-count would intuitively be the number of arguments | 23:10 | ||||||||||||||||||||||||||||||||||||||
or an argument to return the arguments expected, and then call .elems on that? | |||||||||||||||||||||||||||||||||||||||
lizmat | it's analogous to Signature.count | 23:11 | |||||||||||||||||||||||||||||||||||||
ugexe | ah i see, nevermind then | ||||||||||||||||||||||||||||||||||||||
lizmat | it's conceptually the .count of the Callable that is in the Format |