🦋 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.
tech_hutch if the ints are contiguous, I imagine you could use an array 00:01
well, if you want to run arbitrary code, it'd need to contain blocks 00:02
00:07 sortiz left
notagoodidea an hash with the keys as int and block as value? 00:08
tech_hutch or that, but would that be more efficient than using `given`? 00:10
constructing a whole hash, plus the hashing to retrieve the block
notagoodidea I don't think it could be faster than given/when. Time to benchmark it :D 00:11
timotimo true, there's a "jumplist" op that's being used in the grammar engine already
it requires numbers on the input side to be consecutive and start at 0, though 00:12
and there's no way i know of to reach it from p6 or nqp code
tech_hutch what's the grammar engine? 00:13
00:13 faisal_javed left
timotimo the thing that powers regexes in rakudo 00:15
tech_hutch I see 00:17
timotimo i wouldn't recommend it to a beginner probably, but you could look at how the regex compiler does its thing ;) 00:18
00:18 Doc_Holliwood left
tech_hutch Maybe sometime ;) 00:18
timotimo you'd have to learn how a regex engine do as well as moar bytecode at the same time 00:19
tech_hutch Can you use `²` to mean `** 2`? when I try it in the repl, it says "Bogus postfix", but according to docs.raku.org/language/py-nutshell#Scope it should work 00:20
00:20 Black_Ribbon joined
timotimo gist.github.com/timo/8cae0f69fa05f...efb085f1a0 00:21
you should be able to, yeah. what context are you trying it in? the repl can be weird sometimes
00:21 JRaspass left
timotimo m: say 99²; my $y = 5; say $y² 00:21
camelia 9801
timotimo m: <1 2 3 4 5>.map(*²).say 00:22
camelia (1 4 9 16 25)
notagoodidea timotimo: Not for a beginner but I remember than I get my first interest in Perl6/Raku at Fosdem with a talk about the grammar (even bought the book of Moritz Lenz on Regexes and Grammar that edition).
timotimo cool 00:23
tech_hutch I've tried it multiple ways. Your example throws bogus postfix at `say 99<HERE>; my $y = 5; say $y`
timotimo welp, this compiled output is probably not very helpful, it's 75% setup and teardown :D
do you happen to be on windows? 00:24
tech_hutch yep
timotimo did you do the thing to make the terminal switch to utf8?
notagoodidea got 99 <HERE> but a ² ain't one.
timotimo chcp something something
if you want you can put this in: say uninames("²") 00:25
tech_hutch I set Windows to use utf8. When starting rakudo, it properly shows the "Raku" and "Rakudo" text
timotimo m: say uninames("²")
timotimo would surely be interesting to see what it spits out
00:25 frost-lab joined
tech_hutch it says `(<control-0000>)` 00:25
so it's replaced with a nul? O.o
timotimo oh, a null byte? is it being inputted as utf16 maybe?
tech_hutch chcp (in the terminal) says I'm on code page 65001 00:26
timotimo well, trying to support cmd.exe is a fool's errand i imagine 00:27
00:27 thdrmz joined
timotimo Comma also has a REPL 00:27
it doesn't do full ANSI escapes either, but neither does cmd.exe
tech_hutch I'm using PowerShell in Windows Terminal 00:28
not cmd.exe
timotimo the powershell isn't able to fix things i think?
tech_hutch dang
timotimo oh is windows terminal the thing they made just two or three years ago for windows 10?
the one that has like tabs and stuff?
tech_hutch yeah
timotimo ok then i have no idea why things are going wrong
but also, why do you still have to chcp in Windows Terminal to get utf8 00:29
tech_hutch 65001 is supposed to be uff8 🤷‍♀️ docs.microsoft.com/en-us/windows/w...dentifiers
timotimo they're still keeping backwards compatibility to MS Dos 3.11?
tech_hutch uhh
00:29 abraxxa1 joined
tech_hutch I guess, it was something primitive by default lol, before changing the setting for it 00:29
timotimo anyway, i'm heading to bed
tech_hutch thanks for your help
thdrmz is it possible to define a "class Bla::Blub" inside a "unit module Bla::Blub" ?
00:34 thdrmz left 00:39 mowcat left 00:42 thdrmz joined, mowcat joined 00:44 frost-lab left
thdrmz Hi, is it possible to define a class which uses the name of the unit module ? unit module Bla::Blub; class Bla::Blub{}; 00:48
notagoodidea thdrmz: For what I know, the call path will be BLa::Blub::Bla:Blub, I suppose then no? 00:50
I is not possible, to `unit module Bla; class Blub{}`? 00:52
thdrmz then I've got to define all classes Bla::* inside that module file. 00:54
notagoodidea outside* inside the module, file you will not prepend Bla::* to your classes. (maybe I am wrong there but I don't think so). 00:55
00:56 frost-lab joined 00:57 pecastro left
thdrmz sure but I can't create multiple files which defines the same unit module. So if I want the classes Bla::A, Bla::B, Bla::C … if I declare "unit module Bla;" I have to put the class defs into one file. But I'd like to put those class defs into separate files. 01:02
notagoodidea mm, Can you have differents rakumod files with the differents classes (B.rakumod, C.rakumod) and in A.rakumod : unit module MyModule; use B ; use C ; class A{}; ? 01:04
thdrmz: If you look at this module : github.com/pdf-raku/PDF-raku 01:08
It seems like the practice to have a lib/ with Foo.rakumod and Foo folder with the rest of the classes. you call them with Bar::Foo::B in Foo.rakumod 01:11
01:12 notagoodidea left
thdrmz it is the same I use to do currently, no "unit module" declaration 01:13
guifa Thdrmz, you could instead declare ‘unit class’ 01:14
so if you have lib/Foo/Bar.rakumod 01:15
your Bar file begins with “unit class Bar;”
Then when you want to use that class, you just say “use Foo::Bar”; Note that the symbol will be imported as Bar, so if you want to force the Foo::Bar, you’d use “unit class Foo::Bar” inside of your Bar.rakumod file 01:16
01:16 tech_hutch left
thdrmz ok I'll check it, thx 01:17
01:33 mowcat left 02:04 Kaeipi joined 02:52 jmchael left
guifa any examples of an extra operator precedence (say, > 8 operators, no parentheses) I can use for my FOSSDEM presentation? 03:00
03:32 xelxebar left, xelxebar joined 04:11 MasterDuke left 04:13 coldpress_ joined 04:20 __jrjsmrtn__ joined 04:21 _jrjsmrtn left 05:11 parabolize left
xinming Is it possible that we get object attribute slot by variable name? Let's say, $!attr then we have `my $name = "attr"`; How do we use $name to select the object attr? 05:30
guifa If calling form outside, foo.”$name”(), but it will only work for attributes with accessor methods 05:37
xinming my $attr = self.^attributes.first({ .name eq q{$!a} }); $attr.set_value($obj, "blabla");' 05:38
This is what I mean.
I'm trying to restore the object from json.
guifa This should work: tio.run/##pY1LCsIwFEXnXcUtBJqKZOik...1BE@JqP3bw 05:48
xinming guifa: Yea, thanks. :-) 05:50
06:05 guifa2 left 06:20 jmerelo joined
jmerelo releasable6: status 06:20
releasable6 jmerelo, Next release in ≈15 days and ≈12 hours. 1 blocker. Changelog for this release was not started yet
jmerelo, Details: gist.github.com/7b459169a9bb553242...b7461ea95a
06:25 cpan-raku left
Geth doc: 0efc01dd62 | (Stoned Elipot)++ | writing-docs/EXAMPLES.md
Add a note about code block initial indentation

  ... and be consistent about it in the given examples
doc: a0324e776c | stoned++ (committed using GitHub Web editor) | writing-docs/EXAMPLES.md
Merge pull request #3770 from Raku/writing-docs-indent

Add a note about code block initial indentation
06:36 sjm_uk joined 06:37 cpan-raku joined, cpan-raku left, cpan-raku joined 06:42 Doc_Holliwood joined 07:03 ajdplaysalto joined 07:07 jargan joined 07:08 jargan is now known as jast 07:09 earenndil joined 07:11 earenndil is now known as moon-child 07:19 brtastic joined 07:28 ajdplaysalto left 07:29 squashable6 left 07:30 squashable6 joined 07:45 ufobat_ joined 07:48 Doc_Holliwood left 07:50 Sgeo left 07:54 domidumont joined 07:57 wamba joined 08:02 Altai-man joined 08:13 jmchael joined 08:24 aborazmeh joined, aborazmeh left, aborazmeh joined 08:48 pecastro joined, rindolf joined 08:49 JRaspass joined 08:52 aborazmeh left 08:53 abraxxa1 left 08:54 abraxxa1 joined, jmchael left 09:08 brtastic left, Doc_Holliwood joined 09:10 aluaces joined 09:42 sena_kun joined 09:44 Altai-man left 10:08 squashable6 left 10:09 squashable6 joined 10:15 wamba left 10:16 brtastic joined 11:16 jmchael joined 11:19 wamba joined 11:32 ufobat_ left 11:58 ufobat joined 12:01 zxcvz joined 12:03 notagoodidea joined 12:18 wamba left 12:19 Black_Ribbon left 12:23 Doc_Holliwood left
notagoodidea Anyone knows what it is used to make the highlighting of code in Pod::To::HTML (or what provide the output seen in the Raku documentation?) 12:41
moritz it used to be done with pygmentize (python); I think nowadays it's something JS based 13:05
notagoodidea Because I don't see any call to a JS lib on the client side, it seems to be something that output the CSS/HTML to make it static. 13:08
jmerelo notagoodidea: it's based on the Atom highlighter, and done in a coffeescript module Sam McVey wrote a long time ago. 13:19
notagoodidea: it's purely CSS based, I think. The node module generates the HTML tags that then are used by CSS. 13:20
notagoodidea: but this was something that was created way before I came in and the only thing we have done is to try and keep it running into the new doc generator, Documentable
notagoodidea: any idea to change/improve it will be welcome. Even more so if it's solely Raku (or maybe Perl) based. 13:21
13:23 notagoodidea left, abraxxa1 left 13:29 cgfbee joined
tbrowder anyone have an idea how long it takes from a cpan upload (and its email acknowledgement) until its public facing indexes are updated? 13:37
*any 13:38
m: say "impatient tom!" 13:39
camelia impatient tom!
13:40 defaultxr left 13:41 Altai-man joined 13:44 sena_kun left, defaultxr joined 13:45 cgfbee left 13:52 notagoodidea joined
notagoodidea jmerelo: Sorry was log out+away, nice to know! I am waiting to see what skylighting can do with the new raku syntax for the HTML outputed. 13:58
13:59 notagoodidea left 14:00 notagoodidea joined 14:01 wamba joined
jmerelo tbrowder: shouldn't take very long. In most cases, less than 1 hour. 14:04
tbrowder seem *forever* when an error is fixed! thnx 14:05
jmerelo yep... You can always upload it also to the Raku/ecosystem; that takes 2 hours at most to update, too, anyway. 14:06
tbrowder: great job with the PDF modules, BTW
14:08 jmerelo left 14:12 brtastic left 14:15 aluaces left
[Coke] stoned75: have a test locally in docs that is checking for leading whitespace on code blocks. seems to be working, will fix all the instances and get the test/updates committed. 14:16
14:17 aluaces joined
[Coke] thing I've found - test correctly handles if the =begin code/=end code itself is indented, along with the code (the resulting code is not indented). but if you have an indented "=for code", that *does* indent the code. 14:22
14:24 cgfbee joined 14:25 cosimo left 14:32 parabolize joined 14:34 brtastic joined 14:42 frost-lab left 14:46 v661 joined 14:55 domidumont left, domidumont joined 15:04 Sgeo joined 15:09 b2gills joined 15:21 patrickb joined 15:46 notagoodidea left
Geth doc: dcb4426ee2 | Coke++ | 21 files
Add test to avoid extra code indentation

Fix all instances found with new test. Add note about code formatting to writing-docs
[Coke] stoned75: ^^
I did hand-check a few of the cases, and they are showing extra indents on the website. 16:04
16:09 guifa2 joined
[Coke] m: my method private_method_table(Metamodel::PrivateMethodContainer: $obj) 16:12
camelia ===SORRY!===
Cannot find method 'coercive' on object of type Archetypes
16:12 hungrydonkey joined
[Coke] bisectable6: my method private_method_table(Metamodel::PrivateMethodContainer: $obj) 16:13
bisectable6 [Coke], Will bisect the whole range automagically because no endpoints were provided, hang tight
[Coke], Output on all releases: gist.github.com/f3ebf1cb5a2652a414...53314618a3
[Coke], Bisecting by output (old=2020.11 new=2020.12) because on both starting points the exit code is 1
[Coke], bisect log: gist.github.com/006627d5b440d537a6...c44bc74d21
[Coke], (2020-12-02) github.com/rakudo/rakudo/commit/ed...c0d72cbb1f
[Coke], Output on all releases and bisected commits: gist.github.com/68c5c4fdb1a2b16843...a6dbfd36bb
16:17 hungryd32 joined, hungrydonkey left
[Coke] This looks like a recent breakage, starting in 202012 16:19
.tell jmerelo - good catch on your comment about the metamodel tests, it's probably a recent rakudo bug.
tellable6 [Coke], I'll pass your message to jmerelo
Geth doc: 7324789ab5 | Coke++ | doc/Type/Metamodel/PrivateMethodContainer.pod6
Undo skip-test
linkable6 Link: docs.raku.org/type/Metamodel::Priv...dContainer
16:24 hungryd32 left, hungrydonkey joined
[Coke] so in the docs, there's a lot of explicitly type invocants in the metamodel roles... but in the rakudo source, they are not explicitly typed. 16:24
recently, a change in rakudo makes these examples stop compiling with the error shown above. 16:25
regardless of whether or not this is a rakudo bug... should we be showing the types explicitly? e.g.:
vs. github.com/rakudo/rakudo/blob/mast...er.nqp#L10 16:26
16:32 notagoodidea joined
tony-o .tell jmerelo should be able to reset your password now 16:36
tellable6 tony-o, I'll pass your message to jmerelo
lizmat [Coke]: does nqp even have type constraints like that ? 16:40
I don't think so? 16:41
16:42 vike left
[Coke] Looks like that type constraint has been in the docs since day 1 16:43
Should we remove it (and similar) from the various Metamodel roles in the docs, lizmat? 16:44
And you can decide if the compile time error there is a DIHWIDT. 16:45
lizmat $ nqp -e 'class A { }; sub a(A $a) { nqp::say($a) }; a(42)'
looks like you can specify, but there's no actual checking it looks like 16:46
[Coke] ok. the docs are implying that all the method sigs we're showing are Raku (not nqp), so I would say let's not show them 16:47
Even if it weren't defined in NQP, not sure the extra verbosity of declaring the invocant type is helpful. 16:48
lizmat I would tend to agree, yes 16:50
[Coke] ok. 16:51
lizmat: do we need to bug the change in behavior above? 16:54
16:56 hungrydonkey left
Geth doc: 1438ae4302 | Coke++ | 8 files
Remove explicit invocant typing in Metamodel roles

In rakudo, these roles are defined in NQP, where this typing isn't part of the method definition. We can add back if determined that this is part of the spec, and not just an implementaiton detail.
Additionally, these tests now fail to compile under rakudo which is not by itself reason enough to remove them.
lizmat [Coke] I'd say yes, to be sure vrurg didn't miss anything :) 16:58
[Coke] vrurg: ^^
.tell vrurg: my method private_method_table(Metamodel::PrivateMethodContainer: $obj) # this is now a compile time error in rakudo, is this change a bug? 16:59
tellable6 [Coke], I'll pass your message to vrurg
17:00 mue joined 17:01 mue left, mowcat joined 17:03 cpan-raku left 17:05 cpan-raku joined, cpan-raku left, cpan-raku joined 17:10 guifa2 left 17:31 vike joined 17:33 kini joined 17:42 sena_kun joined 17:43 Altai-man left 17:44 domidumont left 17:46 lucasb joined
tony-o tbrowder: emails are a thing for fez now - currently only sending for password reset bc it's limited to 5k/mo 17:47
tbrowder thnx! slammed right now but i will check fez closer eventually 17:48
18:01 JRaspass left
guifa m: my $a; { my $b; { my $c; { my $d; say OUTERS::.keys } } } 18:09
camelia ($c $*DISPATCHER $_)
guifa ^^ isn’t that incorrect?
Hmm, they seem to work when you actually call them (e.g. OUTERS::<$a>) but I’d think those symbols would be available no? 18:14
18:16 v661 left 18:19 ggoebel joined
ggoebel trying to use DBIish to connect to a mysql (mariadb) database... DBIish.connect('mysql', ...) throws an exception: DBIish: DBDish::mysql needs '', not found Any ideas what I've done wrong? 18:20
arch linux... /usr/lib/libmysqlclient.so is symbolic link to libmariadb.so.3 18:22
tony-o ggoebel: i'd recommend using db::mysql 18:25
ggoebel I'm working with someone elses code... changing from DBIish to db::mysql isn't an option... 18:27
will file that away from my own reference thought. thx
tony-o do you have a gist? 18:29
ggoebel gist.github.com/ggoebel/dfd60a11b3...43a957fe04 18:31
I can connect from the command line using the same host, user, password, and database 18:32
tony-o JJAtria[m]: can we merge #3?
ggoebel: do you have DBIISH_MYSQL_LIB set? github.com/raku-community-modules/...-libraries 18:33
ggoebel yes. but per something I found on google, that is no longer used... let me see if I can find the reference 18:34
tony-o it seems to be used here: github.com/raku-community-modules/...ql.pm6#L37
ggoebel github.com/raku-community-modules/...eb80e2751e 18:36
tony-o that also looks like if your sym link doesn't end with .\d then it dbiish won't find it
ggoebel okay... I say someone mentioning creating a symlink with .\d but they didn't say why. I'll give that a try 18:37
tony-o that commit is from 2016
18:38 leah2 joined
tony-o the override from DBIISH_MYSQL_LIB is still in master 18:38
ggoebel DBIISH_MYSQL_LIB=mariadb worked thank you! 18:42
18:59 notagoodidea left 19:15 agentzh joined, agentzh left, agentzh joined 19:27 brtastic left, Doc_Holliwood joined 19:31 sjm_uk left 19:35 MasterDuke joined 19:45 stoned75 left, stoned75 joined 19:46 JRaspass joined 19:49 melezhik joined, notagoodidea joined 19:54 notagoodidea left 19:55 guifa left 20:11 guifa2 joined 20:20 guifa2 left 20:32 ufobat_ joined 20:36 ufobat left 20:40 rindolf left
JJAtria[m] tony-o: I was just trying out your change locally, and I'm wondering about the auths that we use for URLs 20:43
So far we've been using ones that look like `cpan:JDOE`, which means we don't confuse auths with our internal URLs (like raku.land/prolific) 20:44
That URL would break with a user called "prolific", for example 20:45
JRaspass and any other single word routes, i presumed each user would have a ecosystem:name arangement 20:46
tony-o 2they do have that with the zef eco but it isn't guaranteed with the free formness that exists in gi repo arrangement 20:47
in p6c * 20:48
you could write `cpan:something` in the p6c stuff
JRaspass i would presume github:xxx and gitlab:xxx
tony-o there is nothing to enforce that. the zef eco system does enforce a zef:auth 20:49
but the zef eco is relatively new
iirc there isn't anything that enforces that on the cpan side, either. the dist info could mismatch with the auth .. eg if i upload a module with auth: "tonyo" to cpan with user oynoto then your scripts will report cpan:oynoto but the dist will be Something:auth<tonyo> 20:53
(one of the many reasons cpan is ill suited for the way raku does distributions) 20:54
JRaspass ah interesitng, i presumed it would be bad if the dist lied about the auth
i find the raku approach to auth overly complicated compared to perl 20:55
JJAtria[m] Maybe we don't need to work on the assumption that `raku.land/foo:bar/baz` means you can install `baz:auth<foo:bar>`
tony-o i do too but it does alleviate some other issues, like authors giving up maintenance without a successor to take up orienteering
JRaspass co-maint to adoptme and stuff kinda works, but yeah 20:56
okay looks like cpan rocks is built on some incorrect assumptions :-(
*raku land
JJAtria[m] We default the identifier used in the URL to the auth when possible, and if not display it in the dist page?
It could all just be wrong too :) 20:57
tony-o it likely should take a look at the META in the tarball for the auth string 20:58
i wouldn't be surprised if there are mismatches in there
JJAtria[m] There's also dists with no auth in META
20:58 Xliff joined
tony-o my p6c clone doesn't index those 20:58
cpan behaves like a tar repo for raku, though so it doesn't surprise me 20:59
JJAtria[m] I'd be fine with that, to be honest. The ecosystem suffers a bit from too much variability in some aspects 21:00
JRaspass tbh the rsync approach really won me over from working on this, its an elegant solution
JJAtria[m] It's also super fast
tony-o you could do the same thing with the fez repo too, it's running on s3 21:02
just need something that can rsync from s3
JJAtria[m] Anyway, the thing is, if auths are basically free-form, then I'm not so keen on using them in URLs
tony-o likely better as query string 21:03
JJAtria[m] If for no other reason that it'd be nice to have canonical URLs that are not ugly as sin
JRaspass i dunno if we want to take this somewhere else to avoid filling up this room? 21:04
tony-o sure
JRaspass no idea what... 21:08
JJAtria[m] How do we do it then? We have a Telegram room if you are into that sort of thing
tony-o no idea what telegram is 21:11
21:12 ufobat_ left
JJAtria[m] Then I'm open to suggestions :) 21:12
tony-o j #raku-land ? 21:13
JRaspass oh that would work, can we just make channels like that? (irc noob) 21:14
phogg joining a non-existing channel creates it 21:23
21:30 Black_Ribbon joined, brtastic joined
melezhik here is some question vrurg is asking about what Sparrow is and why - github.com/melezhik/Sparrow6/issues/2 if someone is interested ... any feedback is welcome ... 21:30
^^ tib 21:31
21:35 probablymoony joined, moony left 21:36 maggotbrain left 21:39 aluaces left 21:41 Altai-man joined, aluaces joined 21:42 wamba left, melezhik left 21:43 sena_kun left 22:00 patrickb left 22:03 Altai-man left
Geth doc: tony-o++ created pull request #3771:
mention fez in the dist ecosystem contribution
doc: 331e39cac3 | (Stoned Elipot)++ | doc/Type/independent-routines.pod6
Fix level of heading
linkable6 Link: docs.raku.org/type/independent-routines
22:11 brtastic left, notagoodidea joined
tony-o .tell jmerelo github.com/Raku/doc/pull/3771/comm...c8454bf76a 22:21
tellable6 tony-o, I'll pass your message to jmerelo
22:30 pecastro left, brtastic joined 22:33 thdrmz left
[Coke] also OT - anyone here play MTGArena? 22:35
22:43 thdrmz joined
notagoodidea .tell notandinus another way to call USAGE with the empty parameters is to use proto in this fashion `proto MAIN (|) {unless so @*ARGS {say $*USAGE; exit;}; {*}}` 22:44
tellable6 notagoodidea, I'll pass your message to notandinus
22:48 pecastro joined 22:59 melezhik joined
[Coke] codesections: any progress on xt/check-signature? 22:59
23:03 brtastic left 23:05 Black_Ribbon left 23:08 maggotbrain joined 23:11 eery left 23:14 Black_Ribbon joined 23:16 eery joined 23:19 brtastic joined 23:28 aluaces left 23:29 melezhik left 23:49 tech_hutch joined
tech_hutch Hi 23:50
I'm trying to call a function in one file from another. How is that usually done? I looked through the guides and tutorials, but they didn't quite seem to explain it 23:52
I've tried `use ModuleName;`, but it could not find it. (It's in the same directory as the script I'm calling it from)
tony-o make sure your sub has an `is export` on it 23:53
tech_hutch hm, okay, I added that. but how do I call it? 23:54
[Coke] a.raku: "use b; foo;" b.rakumod: "sub foo() is export { say "eek"}" 23:58
invoke with RAKULIB=. raku a.raku