🦋 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.
ugexe I'd probably be fairly easy to implement a RAKUDO_NO_PARALLEL_MODULE_LOADING=1 or some such, although I'm not sure if we should unless there are use cases beyond debugging parallel module loading 00:01
s/I'd/It'd/
Geth rakudo/ugexe/deprecate-multi-file-operations: 392b55830d | (Nick Logan)++ | src/core.c/io_operators.rakumod
Deprecate IO subs that operate on multiple paths

While convienient, being able to pass multiple paths to e.g. &rmdir is problematic because there isn't a blessed way to handle what to do when an exception or failure occurs, i.e. should it try to rmdir every entry even if some things fail, or stop on the first failure?
... (10 more lines)
01:05
rakudo: ugexe++ created pull request #5485:
Deprecate IO subs that operate on multiple paths
01:06
roast: 58ad432909 | (Nick Logan)++ | packages/Test-Helpers/lib/Test/Util.rakumod
Operate on one file at a time when cleaning up

This changes various cleanup code to operate on a single file at a time instead of using the multi-path subroutines.
see: github.com/rakudo/rakudo/pull/5485
01:29
rakudo/ugexe/deprecate-multi-file-operations: 4c0a46b7ae | (Nick Logan)++ | src/core.c/io_operators.rakumod
Deprecate IO subs that operate on multiple paths

While convienient, being able to pass multiple paths to e.g. &rmdir is problematic because there isn't a blessed way to handle what to do when an exception or failure occurs, i.e. should it try to rmdir every entry even if some things fail, or stop on the first failure?
... (10 more lines)
rakudo/ugexe/deprecate-multi-file-operations: 95bdb71583 | (Nick Logan)++ | src/core.c/io_operators.rakumod
Deprecate IO subs that operate on multiple paths

While convienient, being able to pass multiple paths to e.g. &rmdir is problematic because there isn't a blessed way to handle what to do when an exception or failure occurs, i.e. should it try to rmdir every entry even if some things fail, or stop on the first failure?
... (10 more lines)
01:31
rakudo/main: 20 commits pushed by (Vadim Belman)++
review: github.com/rakudo/rakudo/compare/7...f8bb6fe0c2
04:19
07:15 summerisle left, japhb left 07:16 japhb joined, summerisle joined 07:35 melezhik joined 07:38 melezhik left 07:49 melezhik joined 07:50 melezhik left 07:56 melezhik joined 08:01 melezhik left 08:18 melezhik joined 08:32 melezhik left 10:49 sena_kun joined
ab5tract vrurg: very awesome work with the role genericization 11:08
I know there was a ticket about some behavior that I believe this fixes, but I can't seem to find it 11:09
11:24 melezhik joined 11:52 melezhik left 11:53 melezhik joined 12:09 melezhik left, melezhik joined 12:14 melezhik left 16:11 melezhik joined
vrurg ab5tract: I have an issue I was opening. But haven't got time to find it and close. 16:15
tellable6 2023-12-03T16:12:35Z #raku <melezhik> vrurg: that the term which is used in the official Rakudo documentation - docs.raku.org/language/modules#Exp..._importing
2023-12-03T16:14:03Z #raku <melezhik> vrurg : "require" section actually in this link
16:15 melezhik left
ab5tract vrurg: no worries! I'll keep digging 16:25
vrurg ab5tract: wish you a sturdy shovel then! :) 16:26
17:29 kjp left 17:44 melezhik joined 17:47 melezhik left 17:49 melezhik joined 17:51 melezhik left
ab5tract vrurg: R#3094 17:53
linkable6 R#3094 [open]: github.com/rakudo/rakudo/issues/3094 [type captures][roles] (::T $, T @) yields"Internal error: inconsistent bind result"
ab5tract unfortunately this still fails with latest main 17:54
m: -> Array[::T] \a, Array[T] \b {}(Array[Int], Array[Int]) 17:57
camelia ===SORRY!=== Error while compiling <tmp>
No such symbol 'T'
at <tmp>:1
------> -> Array[::T⏏] \a, Array[T] \b {}(Array[Int], Array[I
18:46 MasterDuke joined
ab5tract m: role R[::T] { method m (T @a) { } }; class C does R[Str] {}; my Str @a = "a"; C.new.m: @a 18:48
camelia Internal error: inconsistent bind result
in method m at <tmp> line 1
in block <unit> at <tmp> line 1
ab5tract (for a more obviously related example)
vrurg ab5tract: not sure Array[::T] is supposed to work. [] implies parameterization. There is single rule as to what it means for a particular class. Therefore there is no way for the compiler to know how to handle the ::T. Think of Foo[::T], for example. Or, worse, Foo[Str, ::T]. 20:36
tellable6 2023-12-03T17:46:12Z #raku <melezhik> vrurg: sure, what the terminology is I meant that I need a symbolic table lookup for a module that is required in runtime rather then used in compile time
ab5tract vrurg: please see the second example
vrurg ab5tract: as to the second case, I didn't have time for taking care of parameters and variables. Hope to have these solved later, with RakuAST. 20:38
ab5tract gotcha
vrurg was typing the answer before saw the question. :)
ab5tract ah, I should have been more patient 20:39
20:46 kjp joined
Geth rakudo/ugexe/deprecate-multi-file-operations: 74f01d0c63 | (Nick Logan)++ | 2 files
Deprecate IO subs that operate on multiple paths in 6.e

While convienient, being able to pass multiple paths to e.g. &rmdir is problematic because there isn't a blessed way to handle what to do when an exception or failure occurs, i.e. should it try to rmdir every entry even if some things fail, or stop on the first failure?
... (10 more lines)
21:01
rakudo/ugexe/deprecate-multi-file-operations: 5951684c80 | (Nick Logan)++ | src/core.e/additions.rakumod
Deprecate IO subs that operate on multiple paths in 6.e

While convienient, being able to pass multiple paths to e.g. &rmdir is problematic because there isn't a blessed way to handle what to do when an exception or failure occurs, i.e. should it try to rmdir every entry even if some things fail, or stop on the first failure?
... (10 more lines)
21:03
ugexe Is there a difference between calling .cache and .List on a Seq? If not, maybe we should get rid of .cache 21:13
I ask because I often find myself wanting to implement methods named 'cache' on my classes, but that then shadows the .cache it already would have from Any 21:14
Geth rakudo/ugexe/deprecate-multi-file-operations: 4ceca13f37 | (Nick Logan)++ | 3 files
Deprecate IO subs that operate on multiple paths in 6.e

While convienient, being able to pass multiple paths to e.g. &rmdir is problematic because there isn't a blessed way to handle what to do when an exception or failure occurs, i.e. should it try to rmdir every entry even if some things fail, or stop on the first failure?
... (10 more lines)
21:26
MasterDuke ugexe: github.com/rakudo/rakudo/blob/main...mod#L1-L19 seems to explain a difference. tldr; .cache memoizes, .List explicitly does not 21:40
ugexe too bad we didn't call it .memoize 21:43
21:49 summerisle is now known as eof
MasterDuke unrelated to above, but i'm not huge fan of the libuv documentation. it doesn't really explain enough, and a lot of the examples don't really use best practices 21:49
ugexe yeah, i tend to ask ChatGPT and refer to nodejs and some other libuv using language i'm forgetting atm for reference 21:52
m: my $x := gather for 0..500 { take $_ }; (0..500).race.map({ say $x[$_] }) 21:53
camelia 0
A worker in a parallel iteration (hyper or race) initiated here:
in block <unit> at <tmp> line 1

Died at:
This continuation has already been invoked
in block at <tmp> line 1

1
2
3
4
5
6
7
8
9
10
11…
ugexe hmm i guess that isn't too surprising though
22:05 sena_kun left
ugexe m: my $x := gather for 0..500 { take $_ }; $x[500].List; (0..500).race.map({ say $x[$_] }) 22:16
camelia 0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
5…
MasterDuke github.com/MoarVM/MoarVM/pull/1780 now includes a sleep+retry for windows. with some adjustments to `#?if`s to account for moarvm now not including '.' and '..' (like jmv), locally it passes `make m-test m-spectest` 22:45
ugexe noice 22:50
one issue with my changes at least is they need to be spec tested 22:54
nmake spectest doesn't work on my VM lol
the libuv changes don't have that problem so much since the linux CI spectests should mostly cover those 22:55
linking moar.dll 23:21
Creating library moar.dll.lib and object moar.dll.exp 23:22
dirops.obj : error LNK2001: unresolved external symbol sleep
moar.dll : fatal error LNK1120: 1 unresolved externals