🦋 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.
El_Che tbrowder__: sudo is not root (environment wise). You need sudo -s for that (or su) 06:55
tbrowder__: depending on the configuration some setings/envs from the user are kept
librasteve ugexe - i now have a couple of quiet hours to work on this ... please can you elaborate on the "print the output of the resource of the META6.json it guesses"? is this just to handle the dan => libdan.so mapping maybe? 10:46
write something to populate it for you say CompUnit::Repository::FileSystem.new(prefix => $*CWD.add("lib")) .distribution.meta<resources> for instance (point it at the lib directory specifically so it doesn't use the existing META6.json and has to generate one) then we print the output of the resources section of the META6.json data it guesses for the lib dir you might have to modify the things prefixed with
libraries/ though, i dunno if it can properly guess those
^^^ this is the relevant info from up above
ok ... getter deeper in...I think that you mean use the output of the inspection to dynamically modify the META6.json prior to the INSTALL stage. This will give me something in "repo" space that looks like this: L resources L libraries L libdan.so L dan L target L ... L deps L ahash-b969b0faba930866.d L aho_corasick-5793093b55abbd53.d L ... 267 more of these 11:19
And something in META6.json that looks like this for the INSTALL stage: "resources": [ "libraries/dan", <= that's the libdan.so "dan/target/.../deps/ahash-b969b0faba930866.d", "dan/target/.../deps/aho_corasick-5793093b55abbd53.d", ... 267 more of these ], And so, finally I will have a bunch of mappings eg. %?RESOURCES<libraries/dan> =>
/root/rakudo/share/perl6/site/resources/499157652A301782B3B09AAE3147D98600012DDF.so %?RESOURCES<dan/target/.../deps/ahash-b969b0faba930866.d> => /root/rakudo/share/perl6/site/resources/499157652A301782B3B09AAE3147D986000xxxxx.d %?RESOURCES<dan/target/.../deps/aho_corasick-5793093b55abbd53.d> => /root/rakudo/share/perl6/site/resources/499157652A301782B3B09AAE3147D986000xxxxx.d BUT, the thing is that I need to run an
incremental build for a rust lib on the fly as part of my module so that I can mix in some generated code: run <rustc -L ../target/.../deps --crate-type cdylib apply.rs>; AND, this needs ../target/.../deps to be a coherent directory (not sure if the names matter?) for the rustc to pick up all the deps already built during the install. SO, I suspect you will tell me that there is no method to pass a whole dir over short of
making one manually with symlinks on first run of the code ...??
tbrowder__ El_Che: yes, sudo -s and sudo -i are part of what i am relearning. i also just read more closely yr instructions in the rakudo-pkg info on the website. i will play around with that today and see if can get some very old habits retrained. i'm 11:21
sure that will be a chore, but here goes anyway. thank you so much for your kind patience with my fumbling. 11:22
amano Does anyone know how to use listen-path and connect-path from IO::Socket::Async? 12:12
dakkar relating to some fedi notes… 12:41
m: say 𒐀
camelia 2
dakkar m: say 𒐀𒐁
camelia ===SORRY!=== Error while compiling <tmp>
Bogus postfix
at <tmp>:1
------> say 𒐀⏏𒐁
expecting any of:
infix
infix stopper
postfix
statement end
statement modifier
dakkar m: say "𒐀".num
camelia No such method 'num' for string '𒐀'. Did you mean any of these: 'Num',
'sum'?
in block <unit> at <tmp> line 1
dakkar m: say "𒐀".Num
camelia Cannot convert string to number: base-10 number must begin with valid digits or '.' in '⏏𒐀' (indicated by ⏏)
in block <unit> at <tmp> line 1
dakkar is all of that expected & intended behaviour? 12:42
nemokosch this is probably some funny number system, right? 12:46
dakkar cuneiform, but any non-ASCII digits almost certainly behave the same way 12:47
oooh, no, I'm wrong! 12:48
m: say 𖭑𖭒
camelia 12
nemokosch Num only works with Arabic numerals
say <two empty squares>
rip
dakkar m: say "𖭑𖭒".Num
camelia 12
dakkar turns out there's a big difference between "digit" and "numeric sign" 12:49
nemokosch what is this character?
dakkar I suspect it's got something to do with non-base-10 representation
so, the first characters I tried were U+12400 CUNEIFORM NUMERIC SIGN TWO ASH and U+12401 CUNEIFORM NUMERIC SIGN THREE ASH 12:50
nemokosch the arrows did show up
dakkar the other two (those that worked more) were U+16B51 PAHAWH HMONG DIGIT ONE and U+16B52 PAHAWH HMONG DIGIT TWO 12:51
nemokosch I wonder if it's supposed to work 12:52
or like is it even a good idea
dakkar with digits, yes
same as /\d/ will match non-ASCII digits
nemokosch Now that's what I'm not that sure of. Whether they should be the same. 12:53
dakkar if you don't want it, filter/validate/sanitise your inputs 😜
nemokosch After all, .Num is a coercion method, not a parsing method 12:54
it would be better if it didn't make funny round-trips
dakkar nobody shoul expects .Num↔.Str to round-trip
m: "010.010".Num.Str 12:55
camelia ( no output )
dakkar m: say "010.010".Num.Str
camelia 10.01
nemokosch Why not?
dakkar because of that example I just ran, at the very least
nemokosch that example might be another sign that .Num is a bit ill-defined 12:56
it does parsing and my point is exactly that I rather don't think it should
dakkar it does what's most useful in pratice 12:57
nemokosch for parsing
dakkar adding filters/restrictions is easy, removing them is harder
nemokosch in which case a parsing function might be even more useful
dakkar so if your application requires strict validation, you add it
if not, you don't have to rewrite the parser/converter
nemokosch no no, my point is that if you want parsing, probably you shouldn't use a coercion method 12:58
the coercion method is a dedicated thing, that should do its one narrow task
dakkar you probably don't want to work with perl-family languages, then 😁
nemokosch most people don't, it seems 12:59
but Perl was the language to be fixed, mind you
and the current behavior is partial for parsing as well: tamil numerals don't work 13:00
or maybe my terminal doesn't work? 🤔 13:02
oh, even better: sometimes it works, sometimes it doesn't 13:04
௰ means 10 and Rakudo knows this - however, it won't parse it for you from a string
lizmat m: say say ௰ + 32 13:06
camelia 42
True
lizmat m: say "௰".unival
camelia 10
lizmat nemokosch ??
nemokosch yes, unival 13:17
m: say "௰".Numeric
Raku eval Exit code: 1 Cannot convert string to number: base-10 number must begin with valid digits or '.' in '⏏௰' (indicated by ⏏) in block <unit> at main.raku line 1
nemokosch meanwhile
m: "௨".Numeric.say; ௰.say 13:18
Raku eval 2 10
lizmat m: dd "௨".uniprop
camelia "Nd"
lizmat m: dd "௰".uniprop 13:19
camelia "No"
lizmat Nd is ok in strings, No is assumed to be a string
nemokosch it's anything but fun that I can just take numbers from a wikipedia table and already one of them works while the other one doesn't
lizmat blame unicode
m: say ௨௨
camelia 22
nemokosch I blame the guessing game built into a coercion method 13:20
lizmat m: say ௰௰
camelia ===SORRY!=== Error while compiling <tmp>
Bogus postfix
at <tmp>:1
------> say ௰⏏௰
expecting any of:
infix
infix stopper
postfix
statement end
statement modifier
nemokosch this could be reasoned and even fixed in a parsing method
lizmat No is not considered to be a digit, but a singleton numeric value
nemokosch that's an arbitrary distinction. It is a valid number according to Rakudo itself
an implementation detail, if you will 13:21
lizmat yes, but *not* a digit
no, a conscious decision in my memory
nemokosch I didn't ask for a digit, I asked for the numeric value of a number
lizmat no, you asked for the numeric value of a string
nemokosch a string containing a valid number in Raku 13:22
like do you not see the irony
lizmat there's no iroy
*irony
m: say "pi".Numeric
camelia Cannot convert string to number: base-10 number must begin with valid digits or '.' in '⏏pi' (indicated by ⏏)
in block <unit> at <tmp> line 1
nemokosch it's perfectly reasonable to assume that once these coercion methods go into parsing territory, they will parse the numbers Rakudo parses, at least 13:23
lizmat would you also like that to work ?
nemokosch that's such a bad parallel, please
pi is not parsed as a number
lizmat m: dd pi
camelia 3.141592653589793e0
lizmat ??
nemokosch lizmat discovering symbol resolution
how can you be this fake... 13:24
lizmat and how can you be so personally attacking?
nemokosch you are being dishonest
lizmat and how am I being dishonest?
that's quite an accusation 13:25
nemokosch you pretend to not understand the problem, you pretend to not understand the difference between something being parsed as a number and a random symbol being resolved by a lookup table
amano It seems nemokosch is attacking lizmat. 13:26
Don't make things up.
Go away.
nemokosch ௰ is not a magical constant
amano Does anyone know how to use listen-path and connect-path from IO::Socket::Async? 13:27
elcaro amano: No docs added yet for the linux socket stuff. I assume it's meant to confirm to the existing API for network sockets.
lizmat leont would be the one to ask, as they made it
elcaro Not that I know much about those either... but I tried to see if I could figure it, but only managed the "listen" part
lizmat leont should maybe write some docs *nudge *nudge*
leont Yeah, I should 13:28
amano I don't know whether listen-path creates a stream socket or a datagram socket.
leont Stream. libuv doesn't support datagram sockets.
amano I don't yet know how to deal with streams.
Can you create a datagram socket with listen-path? 13:29
Or, will there be a separate function for creating a datagram unix socket?
leont No, and I don't think we can support it currently.
libuv handles all of this in a really weird way IMO
amano How can I send and receive a message through a stream? 13:30
leont The methods generally work the same as their TCP counterparts, except they take a path instead of a host an port 13:31
amano If I tap IO::Socket::Async::ListenSocket, do I get a line? Or? 13:34
Let's assume that I sent "hello\n" to a unix stream socket. Would I get "hello\n" from IO::Socket::Async::ListenSocket? 13:35
nemokosch is this for IPC? 13:36
amano Yes. 13:37
I want to send messages.
nemokosch makes sense 13:39
this is quite a recent thing, Leon nailed it after a considerable amount of time missing it 13:41
but it seems that people do want this, after all
tbrowder__ .tell El_Che it looks like your basic install script does not create the /opt/rakudo-pkg directory if it doesn't exist. that is disconcerting because all else indicates everything is installed, but it's nowhere on the host fille system. 13:42
tellable6 tbrowder__, I'll pass your message to El_Che
amano I wish io::socket::async could create a datagram unix socket, but a stream unix socket will do the job because I read how the stream works in raku. 13:45
El_Che tbrowder__: /opt/rakudo-pkg is created by the package, not the script 13:47
tbrowder__ for me, the /opt/rakudo-pkg dir did not exist prior to the script being run. i did try "sudo aptitude install rakudo-pkg" and the response said it was installed but it wasn't there. i will try one more time. 13:51
El_Che did you remove the directory manually, eg while testing 13:52
it's the root of the pkg
tbrowder__ originally i did, trying to follow the uninstall directions 13:55
ok, i think i missed the step "sudo aptitude remove rakudo-pkg" (not explicitly said as such) 13:57
have you updated the instuctions recently? 13:58
nemokosch what is your goal, by the way?
tbrowder__ no, i see. i followed the removal instuctions in the same menu for setup. it does not use the "apt remove step" 14:00
El_Che tbrowder__: the rm is for removing leftover you added yourself, eg root compiled modules etc
the package only cleans itself
tbrowder__ that may be the problem then. it wasn't clear when i was just trying to clean and reinstall 14:01
tbrowder__ to me the two different install methods need to be separated a bit more. just my funny brain. 14:02
antononcube “*<amano> Go away.” — Hmm… I am inclined to judge the maturity of the people in this forum by the way they treat Nemokosch. 🙂 14:03
leont amano: the first example in the IO::Socket::Async documentation shows how to do it, except you replace .listen($host, $port) with .listen-path($path) 14:06
tellable6 leont, I'll pass your message to amano
leont Oh he's gone
librasteve 👉 when you point a finger, four fingers point back at you 14:37
antononcube Well, it seems it is at most three fingers (judging by the emoji) and in the way I do it no fingers point at me. 🙂 14:43
nemokosch sometimes you might think that people are pointing fingers when they are really just counting 14:47
Xliff \o 16:05
tbrowder__ o/ 16:06
Xliff How goes? Anything interesting happening? 16:07
tbrowder__ El_Che: i’m getting the rakudo-pkg install results i want by using the manual install steps in a sudo-run script and adding at its end “apt-get install rakudo-pkg” 16:09
it avoids my shaky copy/paste problems in a terminal window 16:11
there’s a lot going on in the first “easy” method that’s hard to grok 16:16
personally, i would like to see a similar script on your rakudo-pkg instructions 16:23
it would help those of us who need step-by-step recipes encapsulated in good scripts 16:24
your rakudo-pkg (after successful setup) is wonderful and i highly recommend if for multii-user systems as well as debian users of all stripes. easy-peasy maintenance! 16:27
nemokosch what is your particular environment that poses you these challenges? 16:38
tbrowder__ old age, bad eyesight, poor muscular control, shaky fingers 17:02
scripts work great
as long as i can see the inside of them 17:04
El_Che tbrowder__: I will ping you for when I have a little more time. If you have something to propose (or the adapted scripts), I'll be happy to hear it 17:10
The matter stays that the way rakudo handles modules takes some time to get used to, or maybe needs more standardization 17:11
tbrowder__ El_Che: thanks 17:43
nemokosch 😅 18:30
a friend of mine keeps complaining about wanting syntax and I keep saying that it exists in Raku 21:29
it's kinda sad that there is a way to write early exit from a block in Raku but it's basically the side effect of a statement (when) 21:36
succeed would just be perfect, if it weren't forbidden outside when 21:37
trumpybumpy81 ted zielinski was right 21:38
tonyo about society? 22:58
amano Does Channel not have peek? 23:34
tellable6 2023-08-22T14:06:06Z #raku <leont> amano: the first example in the IO::Socket::Async documentation shows how to do it, except you replace .listen($host, $port) with .listen-path($path)
amano okay 23:56