🦋 Welcome to the MAIN() IRC channel of the Raku Programming Language (raku.org). Log available at irclogs.raku.org/raku/live.html . If you're a beginner, you can also check out the #raku-beginner channel! Set by lizmat on 6 September 2022. |
|||
00:00
reportable6 left
00:02
reportable6 joined
00:06
Manifest0 left
|
|||
el m: perl my @a = 0..*; say @a | 00:16 | ||
Raku eval | [...] | ||
el lazy arrays are a thing | |||
leont | When using Getopt::Long, if you do something like «sub MAIN(DateTime :$date is options(&datetime-interpret)) { ... }» that will DWIM :-) | 00:18 | |
el i smh can't wrap my head around that | 00:19 | ||
Nemokosch | what is &datetime-interpret? | 00:46 | |
what is options in the first place | |||
01:03
xinming left
01:05
xinming joined
|
|||
guifa_ | options I think is something that will modify the $date argument, and &datetime-interpret from DateTime::Grammar parses the date | 01:10 | |
01:13
kybr left
01:16
perlmaros left,
perlmaros joined
|
|||
Anton Antonov | @Nemokosch 1. The function datetime-parse is a "synonym" of DateTime::Grammar.parse. The function datetime-interpret is DateTime::Grammar.parse with actions -- by default those are Raku-actions. (I.e. DateTime objects are generated.) 2. I use the word "options" as a short cut for "named arguments". (That is my Mathematica background showing up...) | 01:23 | |
01:26
kybr joined
|
|||
@Nemokosch Hmm... I am not sure how leont uses options. "Options" is also a concept used in describing signatures of CLI scripts. | 01:27 | ||
Nemokosch | yeah that name just gives me no clue what its purpose is.. | 01:31 | |
Anton Antonov | Which name? | ||
leont | The option (I typod an extra s) trait in Getopt::Long sets up how named CLI options are turned into named arguments, it can be used if you want something other than the default | 01:32 | |
Nemokosch | oh this is pretty useful | 01:35 | |
funnily enough, Getopt::Long even fixes some issues with the default CLI, like enum lookup | 01:36 | ||
leont | Yeah, enum lookup in the default parser is really broken | ||
01:36
frost joined
|
|||
leont | Try typing something like «zef install True» and see what happens… | 01:36 | |
Nemokosch | 🤣 | 01:37 | |
www.youtube.com/watch?v=AR8D2yqgQ1U | |||
Anton Antonov | @leont Would you use sequences of date specs in a CLI script? For example: (1) new-temporal-data --dates=yesterday,today , (2) new-temporal-data --dates=2022-02-12,2023-01-12, (3) new-temporal-data --dates=monday,wednesday,thursday. | 01:40 | |
[Coke] | jdv: fixed it on HEAD, I think | 01:49 | |
huh. I have a local script that works on 2022.07 but emits no output on 2022.12 | 01:51 | ||
er, on HEAD | |||
Nemokosch | tbh there were regressions in 2022.12 alread | 01:55 | |
y | |||
[Coke] | I'll see if I can golf it | ||
guifa_ | sweet I just got percent and permille formats added to Intl::Format::Numbers | 02:02 | |
Anton Antonov | @guifa Pictures or never happened! | 02:03 | |
guifa_ | say format-number .987654, :type<percent>; # 98.7654% | 02:05 | |
say format-number .987654, :type<permille>; # 987.654‰ | |||
I'll be uploading it shortly | |||
next step is scientific | 02:06 | ||
Anton Antonov | Cool! | ||
02:09
ispyhuma1fly left
|
|||
Nemokosch | Tbh Raku could really be more known outside of, well, us, given the amount of work that is going into it (mainly thinking of Rakudo), basically on a daily basis | 02:15 | |
Have you heard of Self? Historically an interesting language, basically all dead | |||
and that's just one random (extreme) example | |||
el it is even more underrated than smalltalk | 02:16 | ||
Nemokosch | Self is at least prototypal while Smalltalk is just your usual class-based OO language without power | ||
My point is also that Raku could be seen as an interesting experiment as well, if we decide to ignore the real-world motives | 02:18 | ||
say you want to learn about language design, parsers, compilation, etc. | 02:19 | ||
and all this in a fairly coherent context, in the footsteps of gifted people | 02:20 | ||
el smalltalk is radical compared to other oo langs like java and c# | |||
Nemokosch | sure but I didn't buy into the vision | 02:22 | |
leont | Self may be dead, but Javascript's semantics are highly based on it. It lives on in a way | ||
Nemokosch | and the language is not that powerful unless you are really into this "all interaction happens via message passing" stuff | ||
for Raku, well, I could imagine "The language with ambitions" or something similar as a motto | 02:25 | ||
the only language I can quickly think of that has this crippling feature mania must be C++ | 02:26 | ||
leont | The main problem with C++ is that it doesn't have the syntax to support all those features, so everything ends up cramped | ||
el scala? | |||
Nemokosch | I basically only know the name | ||
el "the language with ambitions and weak typing (in 2015 even)" | 02:27 | ||
Nemokosch | leont: if C++ doesn't have the syntax for it, some of its meta-languages will! xD | ||
and it has quite a couple of meta-languages | 02:28 | ||
C preprocessor, templates, constexpr stuff... | 02:29 | ||
02:30
Xliff joined
|
|||
el raku be becoming the next C++ | 02:30 | ||
Nemokosch | to be honest, Typescript was mentioned... that can also be a scary language | ||
exactly because it's kept from turning into a proper preprocessor sort of language, while it also has no runtime | 02:31 | ||
02:32
ispyhumanfly joined
|
|||
so basically you can do all the crazy shit you could do with C++ templates and a bit more - however, you need to write essays for it | 02:32 | ||
basically Typescript allows literal values to be types | 02:33 | ||
and on this basis, you can start hacking the type system as compile-time values - as long as you turn the obtained values into types again 😄 | 02:34 | ||
02:36
ispyhumanfly left
|
|||
weak typing... I think Raku has a reasonable system, no need to jump up to the bandwagon | 02:36 | ||
ngl I even feel safer when I know what my values are treated as (as opposed to what they really are) | 02:37 | ||
guifa_ | Anton: I just got it to respect language tag numbering systems too! | 02:38 | |
format-number 0.987654, :language<en-u-nu-limb>, :type<permille>; # ᥏᥎᥍.᥌᥋᥊‰ | 02:39 | ||
guifa_ doesn't expect anyone to actually use that, but it's technically part of the standard (probably more for, e.g., Arabic script users to give preference to Eastern or Western style numerals) | 02:40 | ||
02:41
rf joined
|
|||
Anton Antonov | @guifa Looks interesting. I have to say, I have not heard that before. (Should know about it for my numeric word forms parsers.) | 02:42 | |
guifa_ | the language codes can give quite a bit of information. When I get back to date formatting, the language code can even encode that! | 02:44 | |
for instance, the language coed on my system is | |||
en-US-u-ca-gregory-fw-sun-ms-ussystem | |||
(gregorian calendar, first day of the week is Sunday, and measurements prefer US customary) | 02:45 | ||
rf | .tell tonyo I found an interesting bug in Fez, submitted an issue | 02:47 | |
tellable6 | rf, I'll pass your message to tonyo | ||
02:50
ispyhumanfly joined
|
|||
Anton Antonov | @guifa Is that language information accessible in Raku? Using your packages? | 02:58 | |
guifa_ | yes. Take a look at Intl::LanguageTag | 03:02 | |
there's a whole international ecosystem | |||
03:02
squashable6 left
|
|||
guifa_ | Intl::CLDR is the gigantic compendium of information | 03:03 | |
and right now I'm slowly rewriting all of the Intl::Format::* modules | |||
03:03
ispyhumanfly left,
rf left
03:04
squashable6 joined
|
|||
guifa_ is afk | 03:07 | ||
03:08
razetime joined
03:14
ispyhumanfly joined
|
|||
Anton Antonov | @guifa Thank you! Will do. | 03:39 | |
03:53
razetime left
04:02
pingu joined
04:12
freeside left
04:21
vrurg_ joined,
vrurg left
04:26
derpydoo left,
freeside joined
04:38
razetime joined
05:11
[Coke] left
05:19
[Coke] joined
05:36
jmcgnh left
05:47
jmcgnh joined
05:55
freeside left
06:00
reportable6 left,
reportable6 joined
06:53
Xliff_ joined
06:55
Xliff left
07:11
Sgeo_ left
07:54
freeside joined
08:04
razetime left
08:16
razetime joined
08:25
freeside left
08:49
razetime left
08:53
jmcgnh left
09:00
jmcgnh joined
09:03
Manifest0 joined
09:07
jpn joined
09:10
dakkar joined
09:42
freeside joined
09:45
pingu left,
sena_kun joined
|
|||
Geth | ecosystem/main: 8cafd30d90 | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | META.list Remove Sustenance (#614) Because it is providing almost daily updates without ever increasing the version number, causing false positives in updates and etc. The REA contains an older version of Sustenance, so people will still be able to install it. |
09:50 | |
10:09
ab5tract joined
10:27
sena_kun left
10:43
Oshawott joined
10:44
archenoth left
11:01
peder left,
freeside left
11:02
peder joined
11:03
frost left
11:12
sena_kun joined
11:15
jpn left
11:16
frost joined,
ab5tract left
11:29
ab5tract joined
11:42
ab5tract left
11:53
ab5tract joined
12:00
reportable6 left
12:01
reportable6 joined
12:05
TieUpYourCamel joined
12:07
thundergnat joined
|
|||
thundergnat | >[Coke]: "What sort of Unicode properties would folks want 'uni -v <char>' to report out on?" It may be useful to also include the "long name" of the Unicode property. I know them pretty well now, but when I first started I constantly needed to look up what the abbreviations stood for. | 12:09 | |
tellable6 | 2023-02-14T14:30:30Z #raku <[Coke]> thundergnat - Yup, that's very close to what I need. | ||
thundergnat | m: gist.github.com/thundergnat/da95af...6e4854c8a7 | ||
camelia | (Lu Ll Ll Ll Po Pi So Zs Po Pd Pe No) ((Letter, uppercase) (Letter, lowercase) (Letter, lowercase) (Letter, lowercase) (Punctuation, other) (Punctuation, initial quote) (Symbol, other) (Separator, space) (Punctuation, other) (Punctuation, dash) (Pun… |
||
12:10
thundergnat left
12:13
frost left
13:13
linkable6 left,
evalable6 left
13:14
linkable6 joined
13:15
evalable6 joined
13:22
merpaderp left
|
|||
tbrowder | ref CucumisSextus: should it not be renamed and made a group project? my initial thought on the subject was to make the Cucumber ppl aware of Raku interest in participating | 13:24 | |
lizmat | all for making it a group projecty | 13:25 | |
13:28
saint- left
|
|||
Anton Antonov | @tbrowder I think there should be a more general project named, say, “Test::Workflows” or “DSL::English::TestWorkflows” that facilitates the creation and utilization of natural language test specifications. Then the functionalities of “CucumisSextus” can be “just” actions under the “Gherkin” sub-namespace. (With further concrete language localizations, like, Raku, Ruby, Java, etc.) | 13:37 | |
13:58
jpn joined
14:09
QhpAptyj9hj0RQwM joined
14:18
merp joined
14:33
jgaz joined
|
|||
tonyo | ingy: didn't you have a project in the same vein ^? | 14:52 | |
tellable6 | 2023-02-15T02:47:52Z #raku <rf> tonyo I found an interesting bug in Fez, submitted an issue | ||
tonyo | .tell rf let's keep the bugs uninteresting and easy to fix | 14:53 | |
tellable6 | tonyo, I'll pass your message to rf | ||
tonyo | .tell rf also, i will take a look shortly (currently vacationing and bike packing until end of feb) | ||
tellable6 | tonyo, I'll pass your message to rf | ||
[Coke] | Not a fan of the name of the cucumber projectin light of the big rename. | 14:55 | |
Nemokosch | what does that even mean? | 14:59 | |
Anton Antonov | @Coke Duly noted. | ||
[Coke] | Looks like it's maybe a latin reference to Cucumber6 - which made more sense when we were Perl 6. Now it's just esoteric. | 15:00 | |
It's already a raku project, we can just call it Cucumber | 15:01 | ||
Anton Antonov | @Coke Sounds good. I still consider having a module "Gherkin" that is used in combination with a module "Cucumber". | 15:02 | |
Nemokosch | well makes sense | 15:04 | |
there is this love-hate situation with the number 6 at the moment | |||
Anton Antonov | LOL | 15:09 | |
15:14
Xliff_ left
15:15
razetime joined
15:31
freeside joined
15:36
freeside left
|
|||
[Coke] | .tell thundergnat - I've been printing [Lu], e.g. in the output of 'uni -s A' - I can print out the expanded text you provide there with 'uni -v A' | 15:40 | |
tellable6 | [Coke], I'll pass your message to thundergnat | ||
[Coke] | IWBNI if I could get raku to give me that info instead of managing my own table, but that's easy enough to include. | 15:41 | |
15:43
freeside joined
15:44
Sgeo joined
|
|||
sjn | who's taking care of vim-raku these days? | 15:47 | |
zostay? ^ | |||
15:47
freeside left
|
|||
sjn | hm. I might have write access.... | 15:50 | |
tonyo | sjn: updates coming? | 15:54 | |
15:54
rf joined
|
|||
rf | tonyo: Does fez bundle the .git directory when uploading? | 15:55 | |
tellable6 | 2023-02-14T13:25:56Z #raku <tonyo> rf: are you parsing in C ? | ||
2023-02-15T14:53:12Z #raku <tonyo> rf let's keep the bugs uninteresting and easy to fix | |||
2023-02-15T14:53:56Z #raku <tonyo> rf also, i will take a look shortly (currently vacationing and bike packing until end of feb) | |||
tonyo | .tell rf the test fixes you mentioned are up | ||
tellable6 | tonyo, I'll pass your message to rf | ||
15:55
QhpAptyj9hj0RQwM left
|
|||
tonyo | it shouldn't but it might | 15:55 | |
rf | Hmm. I need to source a submodule in my project, maybe I'll just have to do some wonky stuff | 15:56 | |
tonyo | do you mean include it in the dist? | 15:57 | |
rf | Yeah | ||
tonyo | can probably do that with a command | ||
is it in your gitignore or anything? | 15:58 | ||
rf | Yeah I'm gonna see if I can force CMake to do it | ||
tonyo | rf: it's possible to provide your own tar.gz to the fez upload with the `--file` flag | 16:03 | |
jdv | [Coke]: thanks! | 16:05 | |
rf | tonyo: I found a really nice naive way to do it, no worries :D | 16:06 | |
tonyo | just cloning them into the repo? | 16:09 | |
zostay | I'm acting as project manager on vim-raku, but I don't do much raku anymore and I am probably not doing a very good job. If someone wants to take it over, I'd be willing to pass control of it over. | 16:21 | |
16:21
freeside joined
|
|||
patrickb | zostay: Addopting into community-modules might be a good fit. | 16:22 | |
16:26
freeside left
16:46
xinming left
16:48
xinming joined
|
|||
rf | tonyo: Basically. | 16:48 | |
It's only one sub-module and CMake supports it so w/e | |||
16:52
freeside joined
16:56
freeside left
16:59
freeside joined,
xinming left
17:00
xinming joined
17:03
freeside left
17:06
freeside joined
17:10
freeside left
17:15
freeside joined
17:20
freeside left
17:25
razetime left
17:37
freeside joined,
dakkar left
17:43
freeside left
|
|||
sjn | tonyo: I've just mulled about applying some of the pull-requests, that's all | 17:48 | |
18:00
reportable6 left
18:01
freeside joined,
reportable6 joined
18:02
sena_kun left
18:05
freeside left
18:16
ab5tract left
18:30
ab5tract joined
18:37
sena_kun joined
18:38
derpydoo joined
18:50
freeside joined
18:57
freeside left
19:18
MoC joined
19:26
jpn left
19:30
ab5tract left,
jpn joined
19:35
jpn left
|
|||
Nahita | if I have a .rakumod file for common use, what can I do so that use Module; from anywhere uses it | 19:35 | |
tried moving the file to some places where it reports it couldn't find it, it still didn't find it | 19:36 | ||
tonyo | you can add `RAKULIB=<path to directory containing lib/Module.rakumod>` or, better, turn it into a full dist and install it to the system with `zef install .` | 19:38 | |
Nahita | thanks why didn't moving the file to one of the places it reports it couldn't find it in work | 19:41 | |
and the minimum it takes to make it a "full dist" is an accompanying META6.json file? | 19:42 | ||
[Coke] | I think it's RAKULIB=<path to directory containing Module.rakumod> | 19:43 | |
that is, you don't get a free 'lib' in their. | |||
gah. "in there" | |||
Nahita | what would "zef install ." do that i can do manually | ||
[Coke] | If you don't want to use zef, then it's not worth duplicating what it's doing, and I'd recommend picking a common install path and then always using RAKULIB or -I on the command line | 19:48 | |
if you can show an example of what didn't work, that'd be helpful. (the command line, a directory listing of the path in question...) | 19:50 | ||
Anton Antonov | Ha! I never asked myself (and others) that question! | ||
[Coke] | sorry, not "common install" path since it's not really installing at that point, but just a common folder. | 19:51 | |
Nahita | re: If you don't want to use zef, then it's not worth duplicating what it's doing i was trying to understand what it was doing | ||
rf | zef does a lot, what specifically? | 19:52 | |
Nahita | re: example of what didn't work i have a single Module.rakumod file, then i do use Module in an arbitrary place. then it reports it couldn't find it, and says where it looked or something, then i move this file to one of those places, use again, it doesn't work still | ||
19:53
ab5tract joined
|
|||
i do this in Perl, it reports where it looked (@INC), then i move one of such places, it works. i do this in Python, i put it in a place in sys.path, it works. | 19:53 | ||
[Coke] | Yes, that should work in raku as well, I do it at $dayjob all the time. | 19:54 | |
If you can provide a gist showing what you're running, and a directory listing, that will help us figure out why it's not working for you | |||
if you're trying to just move it into one of the system folders, that isn't going to work. | 19:56 | ||
if you have a "raku -I/home/coke/modules -e 'use myModule'", and a /home/coke/modules/myModules.rakumod, that should work. | 19:57 | ||
"isn't going to" -> "probably isn't going go" | |||
Nahita | yes that's what i am doing, moving into those system folders; why doesn't it work, was one of my questions | 19:58 | |
Anton Antonov | @Coke Does your $day-job involve Raku explicitly, or you are sneaking it in? | 19:59 | |
Nemokosch | I also thought it would work but it doesn't | ||
[Coke] | more the latter; I use it where I can, make sure legal team's on board, etc. | 20:00 | |
I believe there's a compunit registry that is updated when zef does the install | |||
Nemokosch | Actually, the content of named folders is some absolute obfuscated mess, lol | ||
20:00
freeside joined
|
|||
[Coke] | so even though you've put a file out there, the index doesn't have it | 20:00 | |
Anton Antonov | @Coke Good to know! | ||
[Coke] | and what nemokosch said - if you had installed anything with zef, you'd see that (I think) it's not a direct correlation of pre-installed file names to the installed area. | 20:01 | |
Nemokosch | I mean it's okay that zef doesn't do something obvious - but the obvious thing could work regardless. | 20:03 | |
In fact, it does work if you do it the other way around, i.e add your path to the lookup | |||
20:04
freeside left
20:05
xinming left
|
|||
tonyo | nahita: moving it to those sites is probably skipping precomp | 20:06 | |
tellable6 | tonyo, I'll pass your message to Nahita | ||
20:09
xinming joined
|
|||
Nemokosch | I'd like to think that I've gotten pretty good at explaining how a whole string of Raku behaviors make sense in some way but the situation around modules seems to be a bottomless pit | 20:14 | |
Nahita | thanks tonyo and [Coke] | 20:23 | |
tonyo | there's a lot of intricacy in making all of the precomp/modules work together so that when you `use Something` it just kind of works | 20:24 | |
Nemokosch | there's just always more work than time and actual motivation but this field might need the most help | 20:26 | |
20:31
ispyhumanfly left
20:32
ispyhumanfly joined
|
|||
tonyo | in which way? | 20:34 | |
20:36
ispyhumanfly left
20:38
codesections joined,
ispyhumanfly joined
|
|||
ugexe | just copying the files somewhere and linking RAKULIB (i.e. not installing) means the repository chain works different (since its highest version from first repo - installable repos contain multiple modules but non-installed modules use a single distribution per repo). it also means it might not work the same on e.g. case sensitive file system vs case insensitive file system. it also means things like | 20:38 | |
unicode in the names might not work on various systems | |||
20:38
swaggboi left
20:39
freeside joined
|
|||
ugexe | its inherently complex. make easy things easy and hard things possible doesn't imply making hard things easy | 20:39 | |
github.com/ugexe/Raku-CompUnit--Repository--Lib -- heres an approximate implementation of something closer to perl where you could just copy the files over, so its not like the possibility hasn't been considered | 20:41 | ||
20:42
ispyhumanfly left
20:43
freeside left,
ispyhumanfly joined
|
|||
ugexe | docs.raku.org/language/compilation#Why_change? | 20:47 | |
20:49
ispyhumanfly left
20:50
ispyhumanfly joined
20:53
pingu joined
|
|||
Nemokosch | where does creating something that represents a module and a compunit (i.e a .rakumod file with one sole module in it), and making it available to Raku scripts, fall on the easy-hard scale? | 20:54 | |
20:56
ispyhumanfly left
20:57
ispyhumanfly joined
|
|||
tonyo | more difficult than the way that is phrased makes it sound | 20:57 | |
ugexe | $ raku -e 'require "{$*CWD}/lib/Zef/Utils/FileSystem.rakumod" qw<&list-paths>; say list-paths($*CWD).head' | 20:59 | |
"/Users/nlogan/repos/zef/META6.json".IO | |||
Nemokosch | and the fact that it's banally simply achieved in the languages in the comparison | ||
ugexe | $ raku -Ilib -e 'use Zef::Utils::FileSystem; say list-paths($*CWD).head' | ||
"/Users/nlogan/repos/zef/META6.json".IO | |||
so what exactly is difficult about those? | |||
Nemokosch | knowing the path to the file | 21:00 | |
ugexe | and what languages solve all the issues listed in the Why change? link | ||
21:01
swaggboi joined
|
|||
ugexe | how is knowing the path to the file an issue? you have to know where you want to copy it to begin with | 21:01 | |
tonyo | this is ignoring how awful other ecosystems are and package managers.. it's very easy in go to add a module but it's not easy to do this. python? same headache but different | 21:02 | |
ugexe | if you know a language where you can copy an arbitrary file to an arbitrary location and import it using some name i'd be interested to know about it | ||
but afaik you would need to know at least one location (probably a library directory) | |||
21:03
ispyhumanfly left
|
|||
ugexe | and you have to know the name | 21:03 | |
so, as in my second example, you combine the library path (which must be known) and the name (which must be known) and you know the location | |||
Nemokosch | the funny thing was rather that you are given paths at every failed module lookup - but that paths don't seem to mean a thing in practice, they aren't looked up in the sense a RAKULIB entry is | 21:04 | |
21:04
ispyhumanfly joined
|
|||
ugexe | RAKULIB=site | 21:04 | |
what do you think that does? | |||
RAKULIB doesn't imply the repository type | |||
you seem to want the lowest common denominator of behavior | 21:05 | ||
21:05
freeside joined
|
|||
ugexe | at the expense of everything else that has been listed | 21:05 | |
Nemokosch | well, one clear behavior wouldn't hurt | ||
ugexe | how would you know? | 21:06 | |
Nemokosch | exactly | ||
definitely not by using it | |||
ugexe | i mean how would you actually know. you personally | 21:07 | |
you claim it wouldn't hurt | |||
but you also claim to be naive to most of it | |||
Nemokosch | If there is something I claim, is that the current situation is a mixture of highly incompatible behaviors, and one might conclude that sticking to one - even at the expense of "easy things easy", in some arbitrary interpretation - would do, well, more harm than good, most probably | 21:10 | |
more good than harm*, lol | |||
the Freudian slip... | |||
tonyo | no one said anything about making `use Something` an easy task | 21:11 | |
Nemokosch | well, an arbitrary subset of it (use lib and then use) is made seem simple | 21:12 | |
ugexe | I mean I can claim the moon is made of green cheese, and i'd be wrong | 21:13 | |
"I dont know about this subsystem, but I can confidently say it would be better if it accommodated my mental model" | |||
21:14
freeside left
|
|||
ugexe | the world is flat is pretty simple too | 21:14 | |
Nemokosch | No. I can confidently say that from the user point of view, it stacks surprise on top of surprise, by the rules it gives away about itself via the interface | ||
gfldex | lolibloggedalittle: gfldex.wordpress.com/2023/02/15/yes-but-dont/ | 21:15 | |
ugexe | Well I guess its a shame you weren't around to design everything | 21:16 | |
Nemokosch | Or at least to witness if it was a definite design paradigm to do everything differently from established practices /s | 21:17 | |
ugexe | I mean we need language designers with confidence | ||
and yet you haven't address all the stuff it solves | |||
a common theme i've noticed | |||
21:17
freeside joined
|
|||
ugexe | its like you can't comprehend that there are problems you aren't facing | 21:18 | |
Nemokosch | I'm literally saying that the whole "use lib" hack could go for all I care | ||
that doesn't account for the problems "it solves", does it | |||
21:18
jpn joined
|
|||
ugexe | I'm so confused at what you think established practices are now that I'm not sure what you actually believe | 21:19 | |
Nemokosch | perhaps because you are mashing two things together in your head | 21:20 | |
ugexe | I don't think so | 21:21 | |
Nemokosch | yes, and you could claim the moon is made of green cheese | ||
21:22
freeside left
|
|||
ugexe | ok, the SME is the confused one here not you | 21:22 | |
tonyo | nemo, i think you're missing the point ugexe is making. making an arbitrary just dump files into a folder that can be `use Something` from anywhere is not as easy as it sounds. there's other things not considered like how would `supercedes` work in that context? | 21:23 | |
21:23
jpn left
|
|||
Nemokosch | That's a fair point actually | 21:24 | |
Does supercedes actually work? | |||
ugexe | i mean i posted an entire repo of code that, if copied into rakudo, would do exactly what you presumably keep talking about | ||
you've just asserted that i'm confused | 21:27 | ||
Nemokosch | by the way, how many times does something need to happen to become a "common theme"? | 21:31 | |
phogg | Five percent of the time. | 21:32 | |
ugexe | do i need a license to use the term common theme from you? | 21:33 | |
tonyo | this issue does come up a lot | 21:34 | |
usually stemming from not knowing how a module is actually loading or the complexity involved with dependency resolution etc that _needs_ to happen in order for things to just work | 21:35 | ||
and by a lot i mean more than 5% | 21:38 | ||
Nemokosch | On one hand, it doesn't hurt knowing what somebody's words mean, on the other hand, I wanted to see if I can use this phrase for the mindset I've seen with library-related design | 21:44 | |
tonyo | it's a common theme with an underlying problem, if you wanted to tackle documenting more explicitly the complexities so it can just be linked to; no one would complain | 21:48 | |
Nemokosch | Personally I don't find this module resolution situation "issue worthy", it's just unfortunate that the same tools set up an expectation with the -I flag and use lib and all, and then it gets ripped apart | ||
tonyo | there's no issue with using the -I flag globally if you don't mind writing `raku -I$HOME/dev/my-own-module-store/lib ...` every time you want to run something and then shoving everything in `$HOME/dev/my-own-module-store/lib/....` | 21:49 | |
Nemokosch | However, coming across this shortly after the dependency resolution situation, which I'm again either completely misunderstanding or it really is grotesque... well, that starts to set up a "common theme" | 21:50 | |
I'd hope that if the former is the case, I could have understood it a long time ago, had I gotten any sort of guidance but bantering | 21:51 | ||
tonyo | not sure that's helpful | 21:54 | |
dependency resolution is very difficult and a well written about subject. most ecosystems do it in a very dumb way, raku doesn't. grab "XYZ", "XYZ" needs "ABC", "GHI", grab "ABC", "GHI", repeat and 20 minutes later you find out that there's no module to resolve or the version conflicts between two modules and the process fails | 21:56 | ||
raku allows you to put 1.0.0 of ABC for XYZ and version 0.1.0 for something else 30 modules down in the resolver | 21:57 | ||
and then raku internals also need to figure that out, it's really not cut and dry | |||
rf | Yeah I find that the Raku dependecy resolving is top tier | ||
tonyo | the same is true of the other side of that, package managers have a lot of issues around it. even ones that have been around for a long time (apt?) | 21:59 | |
haskell has the best i've seen but it's so pedantic as to be annoyingly useless | 22:00 | ||
moritz | if it's useless, it can't be the best, no? :-) | 22:01 | |
Nemokosch | Tonyo: yes, this makes sense, and it's clearly a good thing | ||
What I cannot wrap my head around, though, is that units of dependecies are modules, even though they cannot even provide all the metadata needed to pin them; not at module resolution time at least | 22:03 | ||
Because that metadata comes on a per-dist basis | |||
*dependency resolution time, sorry | |||
gfldex | moritz: uless it's art. | 22:05 | |
tonyo | moritz: technically correct is the best kind : ) | 22:10 | |
they can, they just don't yet and there is a PR that ugexe and (i forget who) are reviewing | 22:11 | ||
Nemokosch | That's definitely a resolution (of the issue, that is) if modules learn to "stand for themselves" | 22:14 | |
That would also mean that they can have their own version within a dist, though, wouldn't it? | |||
22:18
squashable6 left
|
|||
[Coke] hurls github.com/coke/raku-uni#-v-verbos...-character | 22:18 | ||
22:19
MoC left
22:20
squashable6 joined
22:23
freeside joined
22:29
freeside left
|
|||
Nemokosch | meaning, v2023.02 seems good to go? | 22:35 | |
22:46
jpn joined
|
|||
[Coke] | .tell thundergnat github.com/coke/raku-uni#-v-verbos...-character | 22:46 | |
tellable6 | [Coke], I'll pass your message to thundergnat | ||
[Coke] | (includes the expanded items he mentioned) | ||
22:51
derpydoo left
22:56
thundergnat joined
|
|||
thundergnat | [Coke] 👍 | 22:56 | |
tellable6 | 2023-02-15T15:40:56Z #raku <[Coke]> thundergnat - I've been printing [Lu], e.g. in the output of 'uni -s A' - I can print out the expanded text you provide there with 'uni -v A' | 22:57 | |
2023-02-15T22:46:37Z #raku <[Coke]> thundergnat github.com/coke/raku-uni#-v-verbos...-character | |||
[Coke] | uploaded a new version of "uni" that avoids the test failure on recent raku and adds -v | ||
thundergnat | While you are editing things, may want to change the repository description Perl 6 -> Raku. | 22:58 | |
[Coke] | thundergnat: done, thanks | 23:00 | |
fez++ | 23:01 | ||
guifa_ | weekly: arstechnica.com/information-techno...nts-page=1 <-- speaking of modules ha | 23:23 | |
notable6 | guifa_, Noted! (weekly) | ||
23:33
codesections left
23:43
thundergnat left
23:47
freeside joined
23:51
freeside left
|
|||
tbrowder | my 2 cents but if ppl would just create modules for personal use as if they would be published (and use App::Mi6 to create them), then use zef to install them locally, a lot of the "problems" using modules would disappear. | 23:53 | |
ugexe and tonyo and others have put in immense energy, talent, and time to give us a great module system that just "works" if you play by the rules. | 23:56 |