🦋 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
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
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
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
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
timotimo m: say 99²; my $y = 5; say $y² 00:21
camelia 9801
25
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("²")
camelia (SUPERSCRIPT TWO)
timotimo would surely be interesting to see what it spits out
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
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
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" ?
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
-I
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
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
thdrmz it is the same I use to do currently, no "unit module" declaration 01:13
thx
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
thdrmz ok I'll check it, thx 01:17
guifa any examples of an extra operator precedence (say, > 8 operators, no parentheses) I can use for my FOSSDEM presentation? 03:00
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
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
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
06:30
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
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
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
idea
m: say "impatient tom!" 13:39
camelia impatient tom!
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
exit
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
[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
[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
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
16:02
[Coke] stoned75: ^^
I did hand-check a few of the cases, and they are showing extra indents on the website. 16:04
[Coke] m: my method private_method_table(Metamodel::PrivateMethodContainer: $obj) 16:12
camelia ===SORRY!===
Cannot find method 'coercive' on object of type Archetypes
[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
[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
16:21
linkable6 Link: docs.raku.org/type/Metamodel::Priv...dContainer
[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.:
docs.raku.org/type/Metamodel::Attr...eContainer
vs. github.com/rakudo/rakudo/blob/mast...er.nqp#L10 16:26
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
[Coke] Looks like that type constraint has been in the docs since day 1 16:43
(6+years)
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)'
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
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.
16:57
lizmat [Coke] I'd say yes, to be sure vrurg didn't miss anything :) 16:58
afk&
[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
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
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
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
tony-o the override from DBIISH_MYSQL_LIB is still in master 18:38
ggoebel DBIISH_MYSQL_LIB=mariadb worked thank you! 18:42
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
(ETOOMANYSITES)
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
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
zef*
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
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
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
Geth doc: tony-o++ created pull request #3771:
mention fez in the dist ecosystem contribution
22:06
doc: 331e39cac3 | (Stoned Elipot)++ | doc/Type/independent-routines.pod6
Fix level of heading
22:08
linkable6 Link: docs.raku.org/type/independent-routines
tony-o .tell jmerelo github.com/Raku/doc/pull/3771/comm...c8454bf76a 22:21
tellable6 tony-o, I'll pass your message to jmerelo
[Coke] also OT - anyone here play MTGArena? 22:35
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
[Coke] codesections: any progress on xt/check-signature? 22:59
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