🦋 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:01
kybr left
00:02
molaf_ joined,
stoned75 left
00:05
molaf left
00:10
gnufr33dom left
00:12
kybr joined
00:18
Doc_Holliwood joined
00:19
gnufr33dom joined
01:15
eseyman left
01:17
eseyman joined
01:32
dataangel joined
01:41
aborazmeh joined,
aborazmeh left,
aborazmeh joined
|
|||
rypervenche | guifa: I'll happily submit a PR with anything that I can help with. :) | 01:45 | |
01:50
molaf__ joined
01:53
molaf_ left
02:01
AlexDaniel left,
AlexDaniel joined,
AlexDaniel left,
AlexDaniel joined
02:05
Manifest0 left
02:06
Manifest0 joined
02:10
gnufr33dom left
02:14
gnufr33dom joined
02:16
gnufr33dom left
02:22
gnufr33dom joined
02:29
gnufr33dom left,
Doc_Holliwood left
02:32
gnufr33dom joined
02:52
jufearca joined
03:00
gnufr33dom left
03:14
tejr left
03:24
tejr joined
03:32
BenGoldberg left
03:54
BenGoldberg joined
03:55
rindolf joined
04:00
defaultxr left
04:05
cpan-raku joined,
cpan-raku left,
cpan-raku joined
04:09
defaultxr joined
04:13
rindolf left
04:16
tejr left
04:25
maettu joined
04:26
rindolf joined
04:27
BenGoldberg left
04:49
aborazmeh left
05:07
andrzejku joined
05:35
ensamvarg3 joined
05:36
molaf__ left
05:43
tejr joined
05:44
skids left
05:46
JJMerelo joined
05:47
aluaces joined
|
|||
Geth | doc: c470f93ef5 | (Stoned Elipot)++ (committed by Juan Julián Merelo Guervós) | doc/Type/Callable.pod6 Adjust operators' classification and xref them |
05:56 | |
doc: 8f08629f31 | (Stoned Elipot)++ (committed by Juan Julián Merelo Guervós) | doc/Type/Callable.pod6 Add missing articles |
|||
linkable6 | Link: docs.raku.org/type/Callable | ||
06:00
Archenoth left
06:08
Kaiepi left
06:10
Doc_Holliwood joined
06:11
andrzejku left
06:16
domidumont joined
06:17
Sgeo left
06:18
aborazmeh joined,
aborazmeh left,
aborazmeh joined
06:36
Kaiepi joined
06:37
andrzejku joined
06:39
maggotbrain left,
maggotbrain joined
06:46
tejr left
06:50
Altai-man joined
06:51
tejr joined
06:54
stoned75 joined
|
|||
Geth | doc/code-impl-detail: 7c07b0e3f0 | (Stoned Elipot)++ | 2 files Revisite (is-)implementation-detail - xref implementation-detail trait - fix pasto (trait -> method) - give is-implementation-detail its own section in implementation-detail trait's description, hence nicely grouped in search results and routine page |
06:59 | |
doc: stoned++ created pull request #3625: Revisite (is-)implementation-detail |
|||
07:01
pecastro joined
07:10
leont joined
07:15
maggotbrain left
07:19
BenGoldberg joined,
sena_kun joined
07:21
Altai-man left
07:32
jufearca left
07:41
domidumont left,
aborazmeh left
07:45
kst joined
07:46
dakkar joined
07:48
Doc_Holliwood left
07:51
Doc_Holliwood joined
07:52
BenGoldberg left
07:56
xxxx joined
07:58
xxxx left
08:19
maettu left
08:35
maettu joined
08:41
wbn left,
wbn joined
09:07
stoned75 left
09:09
stoned75 joined,
ufobat joined
|
|||
lizmat clickbaits rakudoweekly.blog/2020/09/07/2020-...ime-again/ | 09:11 | ||
09:35
Doc_Holliwould joined
09:38
Doc_Holliwood left
10:12
maettu left
10:36
aluaces left
10:38
JJMerelo left,
timlegge left,
timlegge joined
10:44
BenGoldberg joined
10:52
tejr left
10:55
Doc_Holliwould left
11:09
Doc_Holliwould joined
11:18
Altai-man joined
11:19
BenGoldberg left
11:20
sena_kun left
11:44
squashable6 left
11:46
squashable6 joined
11:55
aluaces joined
12:08
tejr joined
12:12
ufobat left
12:20
ufobat joined
12:44
Doc_Holliwould left
|
|||
tbrowder | hi, i'm admiring [Coke]'s tally.raku prog and have a question about line 43 where a regex contains a capture with <( .* )> instead of the usual (.*). is that required or | 12:58 | |
could either form have been used? | |||
i notice he uses $/ instead of $0 for extracting the capture. is that the reason? | 13:02 | ||
MasterDuke | that's not a capture. it's `<(` and `.*` and `)>` | 13:04 | |
the `<(` and `)>` are non-(something, i don't remember the exact right term) markers | 13:05 | ||
tbrowder | ok, but why was it used instead of a capture? | ||
MasterDuke | dunno, for that you'd have to ask him | ||
tbrowder | sure | ||
.ask [Coke] why in tally.raku did you use "<(.*)>" instead of "(.*)" to get the user id? | 13:07 | ||
tellable6 | tbrowder, I'll pass your message to [Coke] | ||
13:10
gnufr33dom joined
|
|||
[Coke] | Ugh. got a ballot which causes my tally script to crash. Fun. | 13:19 | |
tellable6 | 2020-09-08T13:07:55Z #raku <tbrowder> [Coke] why in tally.raku did you use "<(.*)>" instead of "(.*)" to get the user id? | ||
[Coke] | tbrowder: because I want that to be the capture, just the ID. | ||
tbrowder | but isn't that already accounted for with the surrounding '@(' and ')'? | 13:23 | |
[Coke] | ah, crud. Email::MIME expects you to give a Str to work with... with a message encoded in something that isn't utf8, that's not a Str... | ||
tbrowder: those are literals. | |||
I want to match the literal, but not include them in the match | |||
so given @(hi), I just want "hi", not "@(hi)" to be the match. | 13:24 | ||
phrasing is off there. I want them to *match*, but then not be in the *result* | |||
tbrowder | right, but that should happen without the <> shouldn't it? | 13:25 | |
13:27
Sgeo joined
|
|||
tbrowder | m: my $s = '@(foo)'; if $s ~~ /'@(' (*.) ')'/ { say "id = '{~$0}'"} | 13:28 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Quantifier quantifies nothing at <tmp>:1 ------> 3my $s = '@(foo)'; if $s ~~ /'@(' (*7⏏5.) ')'/ { say "id = '{~$0}'"} |
||
13:28
tejr left
|
|||
tbrowder | erg revers . and * | 13:28 | |
m: my $s = '@(foo)'; if $s ~~ /'@(' (**) ')'/ { say "id = '{~$0}'"} | 13:31 | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Quantifier quantifies nothing at <tmp>:1 ------> 3my $s = '@(foo)'; if $s ~~ /'@(' (**7⏏5) ')'/ { say "id = '{~$0}'"} |
||
tbrowder | m: my $s = '@(foo)'; if $s ~~ /'@(' (.*) ')'/ { say "id = '{~$0}'"} | ||
camelia | id = 'foo' | ||
tbrowder | \o/ | ||
[Coke] | you're referring to $0 after. I'm referring to $/ | 13:32 | |
13:32
tejr joined
|
|||
codesections | m: my $s = '@(foo)'; if $s ~~ /'@(' <(.*)> ')'/ { say "id = '$/'"} | 13:33 | |
camelia | id = 'foo' | ||
tellable6 | 2020-09-07T14:17:20Z #raku <tbrowder> codesections see raku/problem-solving issue on a raku blog site. i mentioned yr name there. | ||
2020-09-07T14:20:37Z #raku <tbrowder> codesections also check forum at getzola.org for a rec for a theme for multi-blog-author zola site | |||
13:33
andrzejku left
|
|||
tbrowder | correct | 13:37 | |
[Coke] | ah. easy fix on the utf-8 issue, just add a parameter to slurp. all the actual bytes I care about are ASCII, so this is all fine. :) | 13:38 | |
13:38
MilkmanDan left
|
|||
[Coke] | tbrowder: so does that cover your question? | 13:38 | |
13:38
MilkmanDan joined
|
|||
tbrowder | well, does either way work in your code? if so, that satisfies me. i'm just not used to using your syntax except in heavier grammar stuff. | 13:40 | |
that was my basic question: is there a special need for that syntax | 13:41 | ||
Geth | Raku-Steering-Council/main: a206947960 | Coke++ | scripts/tally.raku Handle non-utf8 emails |
13:42 | |
Raku-Steering-Council/main: 01d7d907ed | Coke++ | scripts/tally.raku Add quiet option -q hides list of emails |
|||
[Coke] | *need*? no, you can do it either way | ||
there we go, tally script working again: 17 ballots reporting | 13:43 | ||
codesections | m: say '@(foo)' ~~ /'@(' (.*) ')'/ | 13:44 | |
camelia | 「@(foo)」 0 => 「foo」 |
||
codesections | m: say '@(foo)' ~~ /'@(' <(.*)> ')'/ | 13:45 | |
camelia | 「foo」 | ||
codesections | tbrowder: I think of it more about semantics/expressing my intent. | 13:46 | |
tbrowder | ok, thnx | ||
that's fair enough :-D | |||
rypervenche | tbrowder: I suppose if you need the @() later on at any point, then using your way would be better. | ||
codesections | the expression with `(…)` returns a match *and* a sub-match; the one with `<(…)>` just returns a match. If I want to throw away part of it, it feels cleaner to do that at the start and not return the outer match | 13:47 | |
imo, of course | |||
MasterDuke | if you're matching some large text, it might be more efficient not to have to carry it around. but that seems likely to be a micro-optimization | ||
rypervenche | It's also more things to remember as you're not capturing exactly what you want/need. | 13:48 | |
codesections | rypervenche: exactly. By keeping the @(), I'd read that as implicitly saying "I might need this later". By *not* keeping it, the code is guarenting we *don't* need it later | 13:49 | |
(that grammar was all sorts of messed up, but I think my meaning survived) | 13:50 | ||
rypervenche | Reminds me of Bruce Gray's talk where he said "write what you mean", in reference to 'a' ^..^ 'z' instead of writing 'b' .. 'y'. | ||
tbrowder | well, for a one-finger typist, my method saves 2 chars | 13:56 | |
rypervenche | Rather, "say what you mean versus what you almost mean". | ||
codesections | tbrowder: :D only on the front end, though -- you lose at least one of those keystrokes and maybe more when using the match :) | 13:58 | |
m: if '@(foo)' ~~ /'@(' (.*) ')'/ eq 'foo' { say "got a 'foo'" } | 13:59 | ||
camelia | ( no output ) | ||
codesections | m: if '@(foo)' ~~ /'@(' <(.*)> ')'/ eq 'foo' { say "got a 'foo'" } | 14:00 | |
camelia | got a 'foo' | ||
codesections | m: '@(foo)' ~~ /'@(' (.*) ')'/; if $0 eq 'foo' { say "got a 'foo'" } | 14:01 | |
camelia | got a 'foo' | ||
14:09
BenGoldberg joined
14:10
aluaces left
|
|||
[Coke] | If you're planning on voting for RSC, please don't wait until the last minute. | 14:21 | |
Do we have a ballpark on how many distinct voters we have? (over the various repos on the announcement) ? | 14:23 | ||
Geth | Raku-Steering-Council/main: 22c3131d79 | Coke++ | scripts/tally.raku Pull github id from message if present (Not everyone put it in brackets) |
14:38 | |
Raku-Steering-Council/main: ab9902639a | Coke++ | scripts/tally.raku Don't include ] in ID if present |
14:42 | ||
14:42
stoned75 left
|
|||
codesections | [Coke]: The (heavily promoted) Raku User Survey has 162 responses and obviously not all of those respondents can vote. So it's hard to imagine that there will be all *that* many votes | 14:43 | |
14:43
BenGoldberg left
14:44
stoned75 joined
14:46
Archenoth joined
|
|||
[Coke] | m: say 17/162 | 14:47 | |
camelia | 0.104938 | ||
tbrowder | codesections: ah, but golfing id | 14:48 | |
*is not my style, maintenance is | |||
14:49
natrys joined
|
|||
tbrowder | and yes, that takes more chars | 14:49 | |
and i don't understand why the '@(' is lost or saved based on either "capture" method in the prog it is used in | 14:51 | ||
codesections | tbrowder: because `<(…)>` isn't creating a capture *within* the match, it's limiting the capture *of* the match. docs.raku.org/language/regexes#Cap..._%3C(_)%3E | 14:53 | |
14:53
MasterDuke left
|
|||
codesections | m: say 'foo bar baz' ~~ /'foo' <.ws> <(.*)> <.ws> 'baz'/ | 14:54 | |
camelia | 「bar 」 | ||
14:56
gnufr33dom left,
maggotbrain joined
15:19
ezzieyguywuf joined,
sena_kun joined
15:20
Altai-man left
|
|||
[Coke] | m: say 'foo bar baz' ~~ /'foo' <.ws> <(.*?)> <.ws> 'baz'/ | 15:32 | |
camelia | 「bar」 | ||
tbrowder | ah, yes, now i recall, thnx. | 15:37 | |
15:42
dogbert17 left
|
|||
[Coke] | m: say 'foo bar baz' ~~ /'foo' <.ws> <(.*!)> <.ws> 'baz'/ ## TIL about ! | 15:52 | |
camelia | 「bar 」 | ||
Geth | doc: 28f25acf7d | (Stoned Elipot)++ (committed by Juan Julián Merelo Guervós) | 2 files Revisite (is-)implementation-detail - xref implementation-detail trait - fix pasto (trait -> method) - give is-implementation-detail its own section in implementation-detail trait's description, hence nicely grouped in search results and routine page |
||
15:54
rindolf left
16:02
MasterDuke joined
16:31
approaching236 joined,
gordonfish left
16:34
dakkar left
16:46
ufobat_ joined,
jzperl joined
16:50
ufobat left,
skids joined
16:55
andrzejku joined
17:20
aborazmeh joined,
aborazmeh left,
aborazmeh joined
17:21
aluaces joined
17:22
maettu joined
17:35
BenGoldberg joined,
maettu left
|
|||
ezzieyguywuf | I've recently (past 5 or so months) picked up functional programming in haskell. If I wanted to dip my toes in perl, specifically to write functional-style programs, would perl 6 be a good candidate? or perl 5? or is perl not a good fit? | 17:41 | |
17:42
domidumont joined
|
|||
moritz | ezzieyguywuf: both Raku (formerly Perl 6) and Perl 5 offer quite a few features for functioncal programming; Raku a few more than P5, if you ask me :D | 17:43 | |
codesections | ezzieyguywuf: I can't speak to perl5/7, but Raku (formerly known as Perl 6) is an *excellent* fit with functional programming | ||
ezzieyguywuf | so there's a perl 7 now? | 17:44 | |
and perl 6 was renamed to raku? | |||
moritz | being discussed/developed right now | ||
(p7) | |||
ezzieyguywuf | gotcha | ||
moritz | one of the small, nice features that Raku has is a special syntax for partial application of operators | ||
m: say (1, 2, 3, 5).map: * + 10 | 17:45 | ||
camelia | (11 12 13 15) | ||
codesections | it's basically p5 with a few very minor changes -- it doesn't pick up any of the changes from Raku (that aren't already in p5) | ||
ezzieyguywuf | also - for your veternal perlers (rakuers?): do you find that perl (raku?) lends itself well to "production" code, i.e. writing programs that are user-facing and expected to be maintainable long-term? | ||
moritz | m: say <foo bar baz>.map: *.upper # same for method calls | ||
camelia | No such method 'upper' for invocant of type 'Str' in block <unit> at <tmp> line 1 |
||
ezzieyguywuf | i.e. let's say you wanted to write a CAD program, including 3d graphics - would you use perl for this, or would you reach for a different language? | ||
moritz | m: say <foo bar baz>.map: *.uc # same for method calls | ||
camelia | (FOO BAR BAZ) | ||
17:46
orinthe left
|
|||
ezzieyguywuf | moritz: ah - haskell has that :-P | 17:46 | |
17:46
orinthe joined
|
|||
ezzieyguywuf | i.e, `fmap (+ 10) [1,2,3,5]` | 17:46 | |
moritz | ezzieyguywuf: TBH for a CAD program, I'd look for a suitable GUI framework *before* looking into a programming language to use it; but then I've never actually written a CAD program | ||
ezzieyguywuf | moritz: I'd prefer not to use a pre-existing GUI framework due to dependency nightmares - let's say you were prepared to write the GUI stuff yourself given a adequate OpenGL library | 17:47 | |
codesections | ezzieguywuf: a few functional-programming in Raku resources: docs.raku.org/language/haskell-to-p6 (a WIP), wimvanderbauwhede.github.io/articl...s-in-raku/ (and other posts on the same blog) | ||
ezzieyguywuf | codesections: thanks! | 17:48 | |
El_Che | releasable6: status | ||
releasable6 | El_Che, Next release in ≈11 days and ≈1 hour. 1 blocker. Changelog for this release was not started yet | ||
tellable6 | hey El_Che, you have a message: gist.github.com/4b8dc42e7f57a33dd6...5bc4016cfd | ||
releasable6 | El_Che, Details: gist.github.com/65bf0f9f59339dafc0...f2aac7c997 | ||
codesections | re: Raku as production-ready. I'd say we're not _quite_ to the point where I personally feel comfortable releasing Raku code in production but we're *really* close. | 17:50 | |
ezzieyguywuf | codesections: interesting. What about perl 5? (which, I guess, is an entirely different language, right?) | ||
codesections | (My main hesitation at the moment is re: security in package management) | ||
moritz | I would have some hesitations doing a project in raku if I expected it to grow to a million lines of code | 17:52 | |
for smallish projects, no problems | 17:53 | ||
El_Che | by the time you write millions of line there would be a lot on new raku releases | 17:54 | |
ezzieyguywuf | I expect it to grow large | ||
dunno about millions, but then again, I don't really know that much about programming :-P | |||
codesections | Perl 5 is definitely production ready. But, like I said, I don't know how to program in perl 5 so I can't speak to that in any detail | ||
ezzieyguywuf | fro smallish projects I'd typically reach for python - I guess this is the main space in which raku competes? | ||
Geth | Raku-Steering-Council: jubilatious1++ created pull request #32: tally.raku -- remove `@` if present in voter github_ID |
17:55 | |
codesections | moritz: I'd generally agree with you re: smaller projects other than github.com/Raku/problem-solving/issues/229 and similar concerns | 17:57 | |
guifa` | I think by tonight I'll have the localized exceptions template ready to be used. Just have to finish writing the updater script so I know I can reparse the localized stuff :-) | 17:59 | |
codesections | exxieyguywuf: Yeah, I'd generally say Raku competes in the same space as Python, (server-side) JavaScript, Ruby, Racket, etc -- basically, Raku is a strong competitor to non-statically-typed, garbage collected languages | 18:00 | |
*ezzieyguyfuf | |||
(I don't know why, but it sure seems like I just _can't_ spell your nick correctly; sorry about that!) | 18:01 | ||
moritz | codesections: use tab completion for nick names; most IRC clients have that | 18:02 | |
codesections | moritz: O.o TIL | ||
El_Che | codesections: I call him maurice in my head (and mauricio on sunny days) | 18:03 | |
moritz | re #229, I agree that's an issue that needs solving, but I'd also like to point out that many ecosystems don't have a proper solution either (especially when it comes to authors deleting their modules, and then name squatters coming in to reclaim the name) | ||
codesections | moritz: yeah, true. But there's a big difference between an attack that's possible when a package isn't maintained and an attack that's possible *all* the time | 18:04 | |
AlexDaniel` | yeah I'm quite surprising by people saying it's not a problem and it's meant to be this way | 18:06 | |
Geth | Raku-Steering-Council/main: 1cb5a54133 | jubilatious1++ (committed using GitHub Web editor) | 4 files Merge pull request #1 from Raku/main Update from origin (Raku/Raku-Steering-Council) |
||
Raku-Steering-Council/main: 37537e4cc0 | jubilatious1++ (committed using GitHub Web editor) | scripts/tally.raku remove `@` if present in voter github_ID |
|||
Raku-Steering-Council/main: cccee605a3 | (Will Coleda)++ (committed using GitHub Web editor) | scripts/tally.raku Merge pull request #32 from jubilatious1/main tally.raku -- remove `@` if present in voter github_ID |
|||
moritz | we really need some way to to tie authentication to an "auth" | ||
El_Che | rakudo-pkgs released (the relocatable build were blocking, but a woraround was found) | 18:07 | |
codesections | moritz: agreed. That plus forbidding ambiguous shortnames in META6.json would be enough to solve the issue | 18:08 | |
sena_kun | El_Che++ | ||
codesections | (or shortnames entirely, which is obviously a superset of "ambiguous shortnames") | 18:09 | |
AlexDaniel` | codesections: in your opinion, why is it a strong competitor? | ||
18:09
BenGoldberg left
|
|||
El_Che | I would love to see a solution like on go: link to a repo *tag* directly (resposability of the author) + a read only caching proxy against removal and moving of tags | 18:09 | |
everything else feels to me like overengineering with subpar results | 18:10 | ||
codesections | El_Che: who do you mean by "the author"? The author of the upstream package? Or the author of the downstream META6.json? | 18:11 | |
El_Che | the author of the lib | ||
he publishes it in his own repo with a tag in semantic version format | |||
18:12
gordonfish joined
|
|||
[Coke] is surprised to get a PR for tally.raku | 18:13 | ||
Geth | ecosystem: juliodcs++ created pull request #541: Add BigRoot to ecosystem |
18:14 | |
[Coke] | Also: 19 ballots reporting | ||
El_Che | with vendoring to add your raku-only dependencies to your repo, so you are not dependant on the network | ||
guifa` | Can you pass args to a module using -M ? | ||
codesections | Maybe I'm missing something, but that seems like it doesn't solve the problem. Here's the use case I'm concerned about: I write an application with «"depends": "Pod::To::HTML"» when there are many different packages in the ecosystem with that shortname and at least 1 is malicious. | 18:15 | |
It seems like we need to make that line fail | 18:16 | ||
18:16
aborazmeh left
|
|||
El_Che | codesections: you denpend on github.com/foo/pod-to-html v 0.1.2 | 18:16 | |
not on Pod::To::HTML | 18:17 | ||
(if we're ripping off the go way) | |||
codesections | El_Che: Yeah, that would be fine with me | ||
[Coke] | I think having safe defaults is good, but we should also be encouraging people to specific an author/version/etc. to avoid that sort of thing. | 18:18 | |
18:18
jzperl left
|
|||
[Coke] | *specify | 18:18 | |
codesections | [Coke]: yeah, agreed | ||
[Coke] | (probably should update the various META6.json files under Raku/ org to set a good example here) | ||
Raku/doc is a good place to start. :) | |||
AlexDaniel` | or, maybe, just maybe, it shouldn't even be possible to have packages with the same name published by multiple people | 18:19 | |
18:19
cpan-raku left
|
|||
El_Che | I think the raku way strated from a CPAN-centric view of the world, but the world moved on in the meantime | 18:20 | |
codesections | [Coke]: right now, though, there *isn't* way to be specific enough that it can't be exploited -- as moritz pointed out, there's not yet a check that a package owns the `auth` field it claims to own | ||
El_Che | *started | ||
Grinnz | AlexDaniel`: you always want to have the ability to "pass on" or let other people assist in maintenance though. hence why pause permissions work the way they do for perl | ||
codesections | (at least not without specifying an exact version, which means giving up even non-breaking bugfixes) | 18:21 | |
AlexDaniel` | Grinnz: why PRs to a package registry wouldn't be a solution to that? | ||
guifa` | El_Che: did CPAN at least have people claim namespaces? | ||
didn't* | |||
El_Che | guifa`: CPAN was the best there was at the time | 18:22 | |
Grinnz | it might be? just laying out some of the concerns you'll want to keep in mind | ||
El_Che | it made sense then | ||
18:22
maettu joined
|
|||
Grinnz | package permissions for pause don't always transfer from one person to another. they might be continued to be held by the original author but comaint given to 7 other people. or the original author might pass on ownership but keep comaint themself to help with releases | 18:23 | |
this is all based on the model of "the first person to release this package name gets ownership of it" so i guess you have to define that assumption first | 18:24 | ||
guifa` | Grinnz: yeah, that's what I recalled it doing. It has some big plusses and minuses of course | ||
In one way, it keeps some mild semblance of quality control and unambiguity of module names. But I dunno how they handled it when an author disappeared and no one else had permissions to update. | 18:25 | ||
Grinnz | at the highest level there are two major considerations: 1) how does one get and ensure they can keep permissions on a namespace, 2) how does one share or transfer those permissions as necessary | ||
18:26
bocaneri left
|
|||
Grinnz | guifa`: documented takeover process, which involves a good faith attempt to contact the author and have them resolve it, or at least give written permission to the admins to do so | 18:26 | |
MasterDuke | i was recently reading (seen on HN) someone's review of their time with Rust. iirc, one of the complaints was no namespacing, so some long-expired crates with generic names mean the name can never be used again | 18:27 | |
Grinnz | that has been occasionally a problem on CPAN, but it only remains a problem if the owner of the namespace is persistent | ||
which is rare | 18:28 | ||
El_Che | MasterDuke: see my full qualified module names of go | ||
MasterDuke: where that is not an issue | |||
MasterDuke | yes, java is similar | ||
El_Che | yes, but Java predated the github era | 18:29 | |
and it sucked compared to CPAN *then* | |||
Grinnz | but one of the key concerns here is being able to assure authors that their namespace *won't* be wrested away arbitrarily, which CPAN has gone out of its way to avoid and certain other ecosystems did not do so well | ||
something something leftpad | 18:30 | ||
El_Che | which is kind of a copy of cpan | ||
AlexDaniel` | looking at other languages is a good idea. Interesting github-based way of doing it in Julia, although I don't know if there's any solution to dead packages and stuff like that. github.com/JuliaRegistries/General/pulls | ||
guifa` | zef can support multiple ecosystems though, yeah? Perhaps there's a way to get the best of both worlds of the current wide-open (but potential classes and security stuff), and a semi-curated system that obliges buyin to extended names and has some of CPAN's namespace control | ||
El_Che | in raku, with multi author support, how do you choose the default lib for a name? First come, first serve? the best? The most popular would be not really fair | 18:31 | |
AlexDaniel` | it also has a built-in handling of environments, which is kinda cool | ||
Grinnz | first come is really the only objective way to resolve it | ||
(as a starting point, anyway) | 18:32 | ||
18:33
Doc_Holliwould joined
|
|||
El_Che | then you risk having a POC, outdated or abandoned module as the default | 18:33 | |
Grinnz | yes, and you need ways to resolve that, hence my second point | ||
codesections | Grinnz: It seems like the big advantage we have with Raku is the concept of `auth`. If we require `auth` in META6 and enforce that the package is hosted at the matching auth, then our `use` statments can be really concise and the first-come-first-serve work can be handled in the META6 file | 18:34 | |
18:34
dogbert17 joined,
mowcat joined
|
|||
Grinnz | but other than "approved modules by X" where X is some group of people acting on subjective reasoning, there's no other mechanism you can use really | 18:34 | |
El_Che | Grinnz: I hated that in Perl | ||
Grinnz | i'm sure many did, but it's also necessary | 18:35 | |
the ecosystem doesn't work if you can't retain ownership | |||
El_Che | Oh, I use the modules recommended by X list | ||
Grinnz | and yeah, i don't pretend to comment on how the auth mechanism in raku interacts with this - just on what is needed if you want to resolve things without specifying auth | 18:36 | |
rypervenche | guifa`: Nice, I'm looking forward to seeing the localized exceptions template. I bought "Learning Perl 6" in Mandarin in case I needed any help with translating things. Just arrived :) | ||
guifa` | Oh sweet | ||
El_Che | but it's weird. I think it says to users "CPAN is full of shit, use these modules if you want good or working stuff' | ||
the hierarchical nature of CPAN creates expectations that a small community like raku can't resolve | 18:37 | ||
Grinnz | i might have misinterpreted what you said you hated | 18:38 | |
18:38
sena_kun left
|
|||
El_Che | The lists are great, the message of their existence, less so | 18:39 | |
guifa` | El_Che: I've thought about making a curating website that gives an overview of different module choices for different tasks in Raku. So for makin roman numerals, it'd list all the different options, and make mention that Numerals::Roman (made up name) is super light weight with no overhead, and Intl::Format::Number is powerful, but probably overkill. And if Numerals::FancyFormat and Numerals::Roman have matching APIs, mention that too | ||
Grinnz | i was more subtweeting the registered modulelist which was a failed attempt in perl to have "approved" modules for certain namespaces | ||
El_Che | guifa`: it would be a great resource, but it won't scale | 18:40 | |
github star is something a lot of people use to quickly evaluate libs for other langs | |||
Grinnz | having curation is great, but you can't make the curation canonical | ||
and you can't rely on it | |||
guifa` | Grinnz: yeah, that list would be totally separate | ||
Grinnz | Task::Kensho is an example of a good way to do this in perl (if it was kept up to date better) | 18:41 | |
guifa` | As you say, there has to be aw ay to say "this is the default module for a given identifier" | ||
18:41
sena_kun joined
18:44
ensamvarg3 left
|
|||
El_Che | Anyway, as AlexDaniel` states, there is a potential security problem, but also importantly there is a reproducibility problem | 18:44 | |
Grinnz | the ever tradeoff between being able to depend on a specific version for compatibility, and getting bugfixes... not an easy question | 18:45 | |
El_Che | I mentioned the vendor dir in the repo as a solution for that | 18:46 | |
18:46
ufobat_ left
|
|||
Grinnz | in a managed repository like for a distro, people can rely on semantic versioning and tailor their requirements to that... not so much in the wild west of an unmanaged self publishing repo | 18:47 | |
El_Che | however, my point is rather about getting a module fron a different author, maybe not api compatible | ||
Grinnz | sure, different implications, but same problem | 18:48 | |
El_Che | the wild west is where golang uses semantic versioning | ||
they only bump revisions | 18:49 | ||
and choose the lowest compatible version | |||
if you want to go higher you need to do that your self | 18:50 | ||
guifa` | rypervenche: as soon as I get the updater script done, I'll commit to github and you'll be able to start ^_^ initially you'll want to run the updater script fairly often because I keep finding oddities in the Exceptions' .message that need special treatment | ||
El_Che | golang.org/ref/mod#versions | 18:51 | |
guifa` | I'm probably going to end up doing a big PR for Exceptions based on a lot of it, including making some new subclasses | ||
El_Che | I would like to have a look at how other languages solve the same problems | ||
AlexDaniel` | actually, a comment listing package systems of other languages and their notable solutions… wow I'd like to see that | 18:55 | |
not sure if it's going to help but damn that'd be interesting | |||
like maybe a table or something, see this for inspiration: github.com/perl6/user-experience/issues/19 | 18:56 | ||
18:57
mowcat left
|
|||
El_Che | AlexDaniel`: it would be top hit on HN :) | 18:58 | |
AlexDaniel` | well, just having links and some short comments can be very helpful, and that wouldn't be HN-worthy | 19:00 | |
don't know if that's good or bad :D | |||
19:01
gordonfish left,
gordonfish joined
19:03
maettu left
19:06
mowcat joined
19:16
finsternis left
19:18
Altai-man joined
19:21
sena_kun left
19:24
stoned75 left
19:25
andrzejku left
19:34
andrzejku joined
19:39
mowotter joined
|
|||
Geth | ecosystem: 03bb646e9f | (Ramiro Encinas)++ (committed using GitHub Web editor) | META.list Add System::Stats::DISKusage to ecosystem See github.com/ramiroencinas/System-Stats-DISKUsage |
19:40 | |
19:40
mowcat left
19:42
molaf__ joined
|
|||
rypervenche | I wonder if we could get some of the source code from Comma to help with writing other lexers. | 19:47 | |
[Coke] | someone sent in a ballot with a github ID that is purely numeric. Is that a thing? | 19:57 | |
(If I go to github.com/dddddddd it's a 404 | 19:59 | ||
rakudo & MoarVM part of the "Artic Code Vault" on github. (I got a badge for it?) | 20:01 | ||
20:02
stoned75 joined
|
|||
MasterDuke | saw something on HN about it recently. i think github took a bunch of open source code and etched it into crystals and stuck it in a vault. like has been done with seeds | 20:02 | |
codesections | Yeah, and they were pretty extensive about what they put in the vault (I had contributed to three Rust projects that were included, and none were exactly core to that ecosystem) | 20:07 | |
timotimo | that's nice | 20:08 | |
let's hope interstellar societies get to unearth the vault before the sun swallows up our little earth bean | |||
El_Che | As a non-microsoft fan, my badge shows 2 ms repos I contributed to when you over it | 20:13 | |
20:18
domidumont left
|
|||
codesections | Is there any particular reason why `Test` has `isnt` and `unlike` but no negations for any of the others? (E.g, no `isn't-deeply`, etc) | 20:20 | |
And, while I'm at it, why isn't `isnt` `isn't`? | |||
[Coke] | some of that may be historical (since parts are based off p5) | 20:25 | |
20:27
MilkmanDan left,
MilkmanDan joined
|
|||
Grinnz | in p5 isn't is actually a fully qualified function call to isn::t, which Test::More makes work anyway, but nobody owns isn:: | 20:29 | |
also, don't use it :P | 20:30 | ||
AlexDaniel` | [Coke]: numeric logins are a thing, but it could also be their ID. Try a link like this: api.github.com/user/5507503 | 20:51 | |
actually… I… don't know if that works | 20:53 | ||
that link above should return my account, and it does work when I visit it | 20:54 | ||
but I tried getting other accounts with known IDs and it returns random users | |||
20:54
stoned75 left
|
|||
AlexDaniel` | ah no! It works! | 20:55 | |
dumb me copied the wrong thing :) | |||
21:00
BenGoldberg joined
21:03
natrys left
21:04
Altai-man left
21:12
albino joined
21:35
BenGoldberg left
|
|||
[Coke] | AlexDaniel`: ah, that's it. (user/ for the ID, users/ for the name) | 21:37 | |
Thanks. | |||
AlexDaniel` | I wonder how they got the number :D | ||
I mean, it's easy to get it through the API, but it's clearly not what we meant | 21:40 | ||
Geth | Raku-Steering-Council/main: 6d343f5e2e | Coke++ | scripts/tally.raku Reject malicious ballots Someone could submit a hand-rolled ballot with multiple votes for the same person Barry Keeling++ for noticing this gap. |
21:42 | |
[Coke] | I have gotten more code review on this dumb script... :) | 21:48 | |
21:50
stoned75 joined
|
|||
Geth | Raku-Steering-Council/main: 51498b775a | Coke++ | scripts/tally.raku Note failure condition in comments |
21:51 | |
21:56
vgrato_ joined
21:59
approaching236 left
22:02
aluaces left
22:06
andrzejku left
22:44
Archenoth left
23:13
Black_Ribbon joined,
pecastro left
23:14
BenGoldberg joined
23:26
zacts joined
23:29
leont left
23:52
maggotbrain left
23:53
maggotbrain joined
|