🦋 Welcome to Raku! raku.org/ | evalbot usage: 'p6: say 3;' or /msg camelia p6: ... | irclog: colabti.org/irclogger/irclogger_log/raku
Set by ChanServ on 14 October 2019.
00:02 b2gills joined 00:05 rjeli joined 00:06 caasih joined 00:35 Kaeipi left, Kaeipi joined 00:43 dogbert17 left 00:44 mowcat left 01:12 tejr left 01:13 tejr joined 01:14 abraxxa left 01:16 abraxxa joined 01:29 kvw_5_ joined 01:32 kvw_5 left 01:33 dogbert17 joined 01:40 aborazmeh joined 02:08 aborazmeh left 02:20 guifa2 left 02:42 wamba joined 02:45 sina joined 02:46 sina left 03:20 kurahaupo left 03:51 wamba left 03:53 neshpion left 04:09 guifa2 joined 04:20 parabolize left 04:22 parabolize joined 04:46 simcop2387 joined 04:58 Doc_Holliwould joined 05:04 Geth joined 05:09 judd7 joined 05:27 parabolize left 05:31 judd7 left 05:57 wamba joined 06:02 judd7 joined 06:21 guifa2 left 06:23 jmerelo joined 06:31 squashable6 left 06:32 squashable6 joined 06:43 Sgeo_ left, domidumont joined 06:56 HarmtH left 06:57 HarmtH joined 06:59 patrickb joined 07:00 Doc_Holliwould left 07:02 judd7 left 07:03 judd7 joined 07:09 frost-lab joined 07:17 Doc_Holliwould joined 07:24 rindolf joined 07:26 abraxxa left 07:28 abraxxa joined 07:31 pecastro joined 07:38 Doc_Holliwood joined, Doc_Holliwould left
moon-child grumbles about enums starting at 0, meaning that the first member is falsy 07:39
Geth doc: 67c17f38ab | (JJ Merelo)++ | doc/Type/Lock.pod6
Reformat links to avoid errors.
doc: 6554fe976f | (JJ Merelo)++ | 2 files
Fixes spelling errors, reorgs files

Closes #3849
linkable6 Link: docs.raku.org/type/Lock
07:40 linkable6 left 07:41 linkable6 joined 07:52 ManifestO left, Doc_Holliwood left, judd7 left 07:53 Manifest0 joined 07:56 Doc_Holliwood joined, Kaeipi left 07:58 Kaiepi joined 08:05 sno left 08:27 abraxxa left 08:28 abraxxa joined
Geth doc: 115fcfbf44 | (JJ Merelo)++ | doc/Type/Blob.pod6
Adding candidates for subbuf

Trying to address #3744, but actually addressing #2694, which didn't list specifically subbuf.
As a matter of fact, now these candidates do not have any example.
08:54
doc: 8e6056afb3 | (JJ Merelo)++ | doc/Type/IO/Path.pod6
Adds missing candidate

Trying to address #3744.
linkable6 Link: docs.raku.org/type/Blob
08:54 linkable6 left 08:55 linkable6 joined 09:05 Doc_Holliwood left 09:12 sno joined
Geth doc: 07b527e7ed | (JJ Merelo)++ | doc/Type/IO/Path.pod6
Eliminate deprecation notice

This one was added when [this](github.com/rakudo/rakudo/commit/6d...f11f078b0) was merged, but apparently not removed when [it was reverted](github.com/rakudo/rakudo/commit/a6...59f683aae)
Closes #3850
09:35
linkable6 Link: docs.raku.org/type/IO::Path
09:35 linkable6 left 09:36 linkable6 joined 09:45 aluaces left, Leo31 joined 09:56 Leo31 left 10:01 judd7 joined 10:04 retropikzel left 10:14 abraxxa left 10:15 abraxxa joined 10:21 gfldex_ is now known as gfldex 10:31 Doc_Holliwood joined 10:37 aluaces joined
Geth doc: 140d4326b2 | (JJ Merelo)++ | doc/Type/independent-routines.pod6
Changes to match original

Also reflow. While checking #3744. None of the deprecated methods were actually included.
10:40
doc: 3e8d67b4ca | (JJ Merelo)++ | doc/Type/Iterator.pod6
Mainly reflowhile checking #3744.
linkable6 Link: docs.raku.org/type/independent-routines
10:40 linkable6 left 10:41 linkable6 joined, jmerelo left 10:51 Black_Ribbon left 10:57 PimDaniel joined 10:58 PimDaniel left 10:59 PimDaniel joined 11:01 frost-lab left, frost-lab joined, wamba left 11:31 Doc_Holliwood left 11:32 frost-lab left 11:34 Doc_Holliwood joined
tbrowder hi, all 11:44
anyone wanna discuss class DateTime ? 11:45
i'm trying to understand class Instant. docs say it is not tied to any epoch, but that doesn't make sense to me. 11:46
what does a zero Instant mean? 11:47
one can convert a posix timestamp to either an Instant or a DateTime object and either object will then show the same Instant value. 11:48
also, docs don't say it but you can create a new DateTime obj from a fractional posix timestamp and the new obj will show fractional seconds (but only the integral part of the posix input). 11:52
that sounds like a bug to me
11:54 judd7 left
gfldex tbrowder: "not tied to any epoch" means: "Don't assume the unix epoc. In fact, don't assume anything." 12:05
PimDaniel o/ 12:08
tellable6 2021-03-31T20:00:09Z #raku <ggoebel> PimDaniel: yes it looks like you can set breakpoints and debug step by step in the community editions
12:08 judd7 joined
PimDaniel ggoebel ok thank's! 12:09
tbrowder but the docs should say a bit more than that, don't you think? at least say in general how the number is derived.
PimDaniel Is this ugly: my @all_lines := (@!diagonales,@vertices,@mis_lines).flat? Could we write this more simple? 12:11
I mean is there a simpler way to cat some list without using flat? 12:12
12:13 wamba joined
tbrowder surely there is a common zero, otherwise how could two Instants be compared? 12:13
so if there is a common zero on the same time scale, mustn't that zero be an epoch, even if it doesnt't have a commonly known name? 12:15
12:17 sena_kun left, sena_kun joined 12:37 wingfold left
moritz_ PimDaniel: I don't think we have a list concat operator, much to my chargrin 12:43
tadzik makes you miss Perl, eh? :)
tyil `my @combined = (|@foo, |@bar)`? :p 12:46
tadzik hmm 12:47
m: my @a = 1,2,3; my @b = 2,3,4; my @combined = @a ,| @b; @combined.gist.say
camelia [[1 2 3] 2 3 4]
tadzik gah, almost
I wanted to dub `,|` a f(l)at comma :P
12:48 wingfold joined 12:53 wingfold left
gfldex tbrowder: The common 0 is an implementation detail (that is not marked as such). 12:53
tbrowder fair enough, but i have glanced at the code and see reference to 'tai' and that name rings a bell. 12:56
ah, International Atomic Time (TAI), abbr from the French name 12:57
gfldex how about `my **@a = @b, @c, @d` ? 13:09
13:10 monkey__ joined
gfldex m: my @a = <a b c>; my @b = 1,2,3; for @a, @b -> **@c { dd @c; } 13:11
camelia Array element = [["a", "b", "c"],]
Array element = [[1, 2, 3],]
gfldex not quite DWIM
vrurg gfldex: why? It is expected. 13:17
for doesn't flatten, ** is explicitly non-flattening. 13:18
gfldex m: my @a = <a b c>; my @b = 1,2,3; my @c := -> *@c { @c }(@a, @b); dd @c; 13:25
camelia Array element = ["a", "b", "c", 1, 2, 3]
gfldex My point is that signatures can autoflatten but assignment can't. That's a little odd.
13:35 berber44 joined
vrurg As to the original PimDaniel question I'd say | is the best answer. But otherwise it's an interesting point. I wouldn't expect `*@a = ...` to work as there are possible side effects. But for `my` it would be an interesting point. 13:47
13:47 esh left 13:48 esh joined
PimDaniel booowhh, i could not imagine my question was so .... 13:59
14:03 parabolize joined
PimDaniel Well this is not clear to me since i've go many answers : Has i undestood, i tried : my @combined = (|@a,|@b,|@c,...) and it works too. But for now i do not mind to keep .flat. 14:07
Thank you! 14:08
14:09 esh left 14:12 esh joined 14:16 Doc_Holliwood left 14:19 patrickb left 14:26 monkey__ left, abraxxa left 14:29 abraxxa joined 14:31 monkey__ joined, Doc_Holliwood joined 14:34 __jrjsmrtn__ left 14:37 __jrjsmrtn__ joined 14:38 mniip left 14:44 __jrjsmrtn__ left 14:46 __jrjsmrtn__ joined 15:18 Sgeo joined 15:19 RC joined 15:21 jmerelo joined, esh left
ggoebel a comma ide question... trying to stub out a new module. created a t/00-sanity.rakutest file with the contents: use v6.d; use Test; use-ok 'MyModule:ver<0.1.0>'; done-testing; -And Comma's code analysis is complaining that use-ok and done-testing subroutines are not declared. I.e. it isn't picking up on their being exported by Test. Are these false-positives a known issue? Is there a fix or work-around? 15:21
jmerelo ggoebel: can you post the code? 15:22
ggoebel: and the error message?
Ah, OK, that's all the code there is...
ggoebel: it might be the case that they're not "picking them up" since they are system libraries. Just add them to the META6.json file 15:23
ggoebel will give that a try 15:24
jmerelo ggoebel: It won't hurt, and will help comma find them and not complain about them.
ggoebel add Test, Test::META, and App::Prove6 to test-depends... no luck. The code analysis which runs before my initial git commit still shows the same "Error:(4,1) Subroutine use-ok is not declared" and similar for other Test imports. 15:28
guess I can tick the box to turn off code analysis on git commits
sena_kun ggoebel, can you check in Project Structure what SDK is set? 15:31
ggoebel, File -> Project Structure.
15:33 fluca1978 left
ggoebel <No Project SDK> which if I read correctly should default to what it finds in the PATH... Raku v2021.03.22.gec.73.d.6.c.96 15:33
setting that explicitly, closing, and reopening project still results in same error in code analysis 15:34
15:37 andinus joined 15:38 Doc_Holliwood left
jmerelo ggoebel: actually, you have to set that up explicitly for every project 15:42
15:42 jmerelo left
ggoebel Interesting. Just updated comma to latest available community edition. pretty sure it said if it wasn't set it would default to first raku found in path. but now that I've set it, I can't unset it. 15:45
s/just/I had just/
sena_kun ggoebel, I think you misread the changelog about using the default. As for the symbols not found: the indexing is done? Can you do some typing in the file to re-trigger analysis? 15:53
15:55 rindolf left
sena_kun I cannot reproduce it, can you compare what you are seeing: ibb.co/mhTNLgJ ? 15:57
16:01 mowcat joined 16:02 RC left
ggoebel here is what I get before renaming files from *.t to *.rakutest 16:02
ibb.co/cy6cyqP
sena_kun ggoebel, are you using some plugins? Maybe like Perl5 support plugin? 16:03
16:04 kurahaupo joined
sena_kun It appears to me that this is likely true and given Perl 5 and Perl 6 shared `.t` extension for test files in past the Perl plugin is likely to take the control and thus Comma plays no role with it. But it will be better with using a non-ambiguous extension, *.rakutest as you noted. 16:05
ggoebel And here after .pm6->.rakumod and .t->.rakutest 16:07
ibb.co/xjcb4Cr
sena_kun ggoebel, can you please do File -> Invalidate Caches and restart? 16:08
ggoebel no change 16:13
actually my bad... or color blindness... either that or turning off the perl6 plugin worked 16:16
thank you for your help!
sena_kun ggoebel, you mean perl 5 plugin? Glad it worked for you. I still think having Perl 5 plugin enabled should not do such hindrances, so I'll try to investigate it some time. 16:18
ggoebel yes sorry perl5 plugin
still works after turning perl5 plugin back on 16:20
In the future, I will remember to try File -> Invalidate Caches and restart 16:21
do you know what all gets cached?
there were enough project configuration variables that I'm not sure which one created the original problem 16:22
sena_kun ggoebel, I would bet on 1)Perl plugin "overloaded" .t files, so they were not processed as Raku ones; 2)No SDK set in Project Structure, which is mandatory; When you fixed two of these and restarted it once or twice it started to work. 16:23
ggoebel I appreciate you taking the time to help me. Thank you! 16:24
sena_kun ggoebel, no problem, you are welcome!
jdv79 codesections: peeked at the MAIN issue a bit more - looks like all the binding machinery in bootstrap might be needed to do it correctly - oof. hopefully there's an easier and still correct way. 16:29
16:37 kleb joined, MilkmanDan joined
kleb hi folks! i have a project where i am using raku as a basic, project localized, code snippet transpiler from c++ to rust -- i have a performace problem with my codebase and i am wondering if somebody here might know something which will help me! 16:38
basically, the structure is as follows:
the main project lives in src/, while the raku stuff lives in u/ 16:39
16:39 guifa2 joined
kleb we have u/{grammar,util,x1,x2,x3,x4,x5,x6,x7,...}.rakumod 16:39
where the x1.rakumod, x2.rakumod, etc all hold functions which take the parsed IR and turn it into text (they are essentially output functions) 16:40
grammar holds the full grammar required for all my parsing needs
util holds all the utility functions, used by the x1,x2,x3, etc so i dont have code duplication 16:41
there is also u/translate, which is my entrypoint, and u/typemap.rakumod, which is the file i am having problems with
basically, what typemap.rakumod is, is a running hash mapping c++ type names (many local to the project itself) to rust type names 16:42
when i say "running hash" what i really mean is that i continuously update it as i encounter new types (during the porting process)
16:43 sno left
kleb as far as code correctness goes, i know my algorithms are all working, for the most part.  the grammar is correct enough and fast, the utility functions do what i need them to do 16:43
however
util.rakumod relies on typemap.rakumod, because at several points in the utility functions, we need to convert from one type system to the other
each of the x1, x2, x3, etc rely on util.rakumod 16:44
and u/translate relies on each of the x1,x2,x3,etc
u/translate also relies on the grammar, and util
so it is basically a diamond (perhaps unfortunately 16:45
)
jdv79 what exactly is the perf issue? you seem to have just said a bunch about not that. 16:46
kleb the problem is that as it is currently structured, every time i update typemap.rakumod, the whole thing needs to recompile -- for some reason, that is taking sometimes a minute or two 16:47
jdv79 you could try the profiler though last i tried once the code involved gets trivially large it craps out
kleb in my use case, this file typemap.rakumod is basically continually being updated
it actually seems to start with util.rakumod -- any time util.rakumod changes, i need to do a big recompile 16:48
everytime one of the x_i change, or the grammar change, or the toplevel translate entrypoint change, it actually doesnt cause such a  long compile cycle 16:49
just a few seconds
jdv79 well, precomp is based on the dep chain afaik - maybe try to organize so the changes so less of a chain's length...
i think there's an env var that might help illuminate some of that stuff - can't remember... 16:50
kleb thats what it seems like to me, too
the issue i think is that something which needs to be closest to the surface is the deepest
namely the typemap
i tried doing "require" instead of "use" but that hasnt seemed to work
the positive is that once it compiles once, it goes fast every time (as long as i dont trigger a recompile by editing typemap) 16:51
is there a way for me to instruct util to use the %typemap hash passed in somehow at runtime? 16:52
so that changes to the typemap.rakumod source file dont trigger a recompile?
or to *pass* typemap into util.rakumod as a whole somehow? 16:55
so that way i dont need to use u::typemap; at the top of util.rakumod 16:56
i considered changing every single function call in util.rakumod to take %typemap as a parameter, then just pass it in from the toplevel 16:57
but that seems somehow like a much inferior solution -- far too much visual noise and added complexity 16:58
i basically need to instruct util.rakumod to "use %typemap, but dont try to compile against it or worry what's in it.  just know about it.  it will be there (somehow) when you need it"
jdv79 require will still factor into precomp, right? maybe a deferred require could help. 16:59
i've done stuff like this in Perl but not Raku so i'm not sure...
kleb ^thats what it seems like is happening 17:00
i just tried it a few seconds ago
without compiling, the program takes 1-2 seconds
but then, if i update one line of the typemap hash, it takes roughly 55 seconds
jdv79 yeah, compiling is still very slow cause regexes are still very slow:( 17:01
maybe some day precomp won't be such a crutch and complication
kleb exactly -- even though i am just updating a hash, there are regexes all over util.rakumod and grammar.rakumod
the issue is that these regexes are all recompiling as well when i trigger the update by updating a simple hashmap 17:02
the hash is just strings to strings, nothing complex in it
jdv79 i mean the raku compiler uses grammars to parse the raku code and that's a large part of why rakudo compilation is slow;)
kleb understood 17:04
it seems tricky to parse without the parsing tools it provides :)
what is the "deferred require" you mentioned 17:05
it seems like i may as well bite the bullet and pass %typemap into everything 17:06
although, it seems likely that there is a workaround
sena_kun kleb, if you don't want to pass something as an argument, maybe dynamic variables can be useful? 17:07
jdv79 odd that RAKUDO_LOG_PRECOMP seems to not work... 17:08
RAKUDO_MODULE_DEBUG may be of use though 17:09
kleb ah, dynamic variables -- i have not tried or needed these before 17:10
i will read to see if i can use 17:11
how do they work with nested scopes? 17:12
lizmat m: sub a() { say $*FOO }; my $*FOO = 42; a
camelia 42
lizmat m: sub a() { say $*FOO }; { my $*FOO = 42; a }
camelia 42
17:14 domidumont left 17:27 neshpion joined 17:31 monkey__ left
jdv79 kleb: i'm not saying this is a good idea but it might help - nopaste.linux-dev.org/?1335048 17:32
17:33 PimDaniel left
jdv79 if i'm reading the RAKUDO_MODULE_DEBUG output right that maybe be a way to detach a dep like you were looking for 17:33
17:35 aborazmeh joined 17:40 MasterDuke left 17:43 sno joined 17:47 wingfold joined 17:55 berber44 left, wingfold left, berber44 joined 17:56 simcop2387 left 17:58 moony left 18:01 kleb left 18:03 simcop2387 joined, simcop2387 left, simcop2387 joined, moony joined 18:09 grumble left, grumble joined 18:21 Doc_Holliwood joined 18:32 wamba left 18:43 aborazmeh left
[Coke] Are there any installation instructions for the windows zip files on the rakudo.org site? Is it "unzip and add bin/ and whatever the deeper path for installed scripts is" ? 18:47
18:47 HarmtH left 18:48 wamba joined 18:50 HarmtH joined
[Coke] Eh. I have to install msvc anyway, might as well build from scratch 18:50
18:58 smolck joined 18:59 smolck left 19:08 smolck joined 19:10 smolck left, smolck joined 19:13 smolck left 19:16 Black_Ribbon joined 19:18 HarmtH_ joined, HarmtH left 19:41 mj41 joined 19:48 HarmtH_ left 19:49 natrys joined 19:50 HarmtH joined 19:53 mniip joined
mj41 hi, I need help how to setup t/lib/MyModuleForTestsOnly.rakumod ? Do you know about some example I can look at? 19:56
ouch, my fault. resolved, I hope 20:15
20:18 smolck joined
smolck Hello! So, I'm new to Raku, and quite intrigued by it so far; specifically, I'm interested in the JVM backend of Rakudo. There don't appear to be many examples of its usage as far as I've found (although if there are and I just missed them, I'd be happy to go read them given a link or links), and so I have some questions about it, the main one 20:28
being about interop. I know that it's possible to call Java functions, but I haven't seen anything about subclassing Java classes/interfaces/etc. Is that currently possible (and if not, will it be in the future), and if so, might I ask how it's done?
20:40 berber44 left 20:45 MasterDuke joined, dogbert11 joined 20:49 dogbert17 left 20:51 wingfold joined
Geth doc: tbrowder++ created pull request #3851:
Correct the description of the epoch (posix) DateTime new method.
20:53
20:56 wingfold left
Geth doc: 0b5d37330d | Coke++ | doc/Type/Dateish.pod6
whitespace
21:05
linkable6 Link: docs.raku.org/type/Dateish
21:07 mj41 left 21:21 moony left 21:22 vpcc42 joined 21:23 kleb joined
vpcc42 Hi. Can somebody recommend me a good IDE or editor for raku? I've tried Comma / Intellij plugin, vim plugin and vscode, but none of them seem to offer autocompletion 21:23
lizmat Comma should ? 21:24
vpcc42 Not the free edition at least
21:25 moony joined
lizmat vpcc42: according to the chart on commaide.com/features it should ? 21:25
codesections vpcc42: that's the only version of Comma I've ever used, and it definitely had autocompletion 21:26
21:26 |oLa| joined
moritz_ sounds like a configuration/setup problem if it hasn't 21:26
21:33 natrys left
vpcc42 oh, I just repeated the setup and chose "rakudo" instead of "raku" as the sdk 21:33
now it works
it's a shame that there doesn't seem to be a FLOSS IDE with similar capabilities though 21:34
[Coke] m: dd CachedIterator.new 21:36
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared name:
CachedIterator used at line 1
[Coke] vpcc42: No doubt that it's a lot of work to implement.
codesections vpcc42: Yeah, agreed. For whatever it's worth, though, I tend to write Raku without much editor support – I don't really use what's available. Raku code tends to be concise enough that I haven't really felt the need for many IDE tools. 21:37
[Coke] If it's any help, I bought a subscription to Comma as soon as I could, even though I don't get to use Raku very often. Hopefully that helps the community version exist.
the docs for Seq have: 'multi method new(Seq: CachedIterator:D $iter)' 21:39
I don't see that in the rakudo src, and the bot here doesn't know about it. bug? 21:40
21:41 stux|RC left
[Coke] looks like JJ tried to skip the test, but it's not skipping. 21:41
but I have to ask why it's listed as type when that type doesn't seem to be real. 21:42
21:43 Woodi left, wamba left 21:44 stux|RC joined
vpcc42 codesections: I'm totally new to perl and raku in general. Having a good IDE can help speed up the learning process imo. 21:44
21:45 Woodi joined
codesections Fair point 21:45
vpcc42 [Coke]: vscode and then coc.nvim support would be a blessing :)
21:45 webstrand joined
vpcc42 but yeah, somebody has to do it 21:46
codesections [Coke]: Looks like it is was a Role (added in 2019.07) github.com/rakudo/rakudo/blob/mast...2019.07.md
[Coke] codesections: where is it in the source? 21:47
codesections a few months back, someone was talking about writing an LSP-server for Raku, which would help a lot with all those. Not sure if there's been any progress, though 21:48
[Coke] it *only* appears in the Changelog.
codesections Yeah, that's why I said was
er, I guess I said 'is was', which makes no sense :D 21:49
[Coke] :)
Geth doc/master: 4 commits pushed by Coke++ 21:52
codesections [Coke]: aha, found it! reverted due to a regression blocking 2021.2: github.com/rakudo/rakudo/commit/97...3036348f20 21:53
so it previously existed, and will exist in the future (presumably) but doesn't right now 21:54
lizmat yup 22:02
22:02 Doc_Holliwood left, Doc_Holliwould joined 22:12 aluaces left, wingfold joined, wingfold left, wingfold joined 22:54 smolck left 23:08 kleb left 23:29 judd7 left 23:34 aindilis left, aindilis joined, oneeggeach joined
moon-child bit late, but: a while ago I started building a repl with context-sensitive autocomplete (among other things). If I ever get around to finishing that properly, it'll be oss 23:34
23:38 vpcc42 left
m6locks_ great 23:41
23:47 judd7 joined