🦋 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:01 reportable6 joined 00:03 Zen96 joined, Zen96 left 01:03 statisfiable6 left, coverable6 left, greppable6 left, bloatable6 left, releasable6 left, squashable6 left, bisectable6 left, sourceable6 left, committable6 left, tellable6 left, linkable6 left, benchable6 left, unicodable6 left, nativecallable6 left, quotable6 left, notable6 left, shareable6 left, reportable6 left, sourceable6 joined 01:04 squashable6 joined, shareable6 joined, committable6 joined, reportable6 joined 01:05 greppable6 joined, unicodable6 joined, linkable6 joined, tellable6 joined, benchable6 joined 01:06 quotable6 joined, bloatable6 joined, coverable6 joined, statisfiable6 joined, notable6 joined, nativecallable6 joined, bisectable6 joined, releasable6 joined 01:33 jpn joined 01:38 jpn left 02:38 reportable6 left, unicodable6 left, coverable6 left, greppable6 left, squashable6 left, releasable6 left, notable6 left, nativecallable6 left, shareable6 left, linkable6 left, statisfiable6 left, committable6 left, benchable6 left, quotable6 left, sourceable6 left, bisectable6 left, bloatable6 left, tellable6 left, tellable6 joined, notable6 joined, coverable6 joined, shareable6 joined 02:39 sourceable6 joined, releasable6 joined, squashable6 joined, razetime joined, nativecallable6 joined, benchable6 joined, committable6 joined, statisfiable6 joined, linkable6 joined 02:40 unicodable6 joined, bisectable6 joined, greppable6 joined, reportable6 joined 02:41 quotable6 joined, bloatable6 joined 03:05 jpn joined 03:10 jpn left 03:32 razetime left
guifa SmokeMachine should be possible. Raku's grammar syntax is far more regular, but code blocks probably couldn't be supported 03:46
couldn't be easily supported* 03:48
04:17 jpn joined 04:20 rf left 04:22 jpn left 05:00 jpn joined 05:05 jpn left 05:36 jpn joined 05:41 jpn left 06:00 reportable6 left 06:01 reportable6 joined 06:21 jpn joined 06:44 jpn left 06:45 jpn joined 07:00 siavash joined 07:57 siavash left 07:59 siavash joined 08:04 siavash left, siavash joined 08:12 teatime left, teatime joined 08:13 teatwo joined 08:15 _ramix_ joined, _ramix_ left 08:17 teatime left, jpn left 08:19 jpn joined 08:36 sena_kun joined 08:58 Sgeo left 09:00 siavash left, siavash joined 09:22 tejr left 09:24 tejr joined 09:50 ab5tract joined 09:58 jpn left 10:53 ab5tract left 11:11 jpn joined
tbrowder__ .tell ugexe its the windows yml at github.com/tbrowder/path-finder/.g...s-spec.yml 11:12
tellable6 tbrowder__, I'll pass your message to ugexe
11:15 jpn left 11:35 razetime joined 12:00 reportable6 left 12:01 jpn joined 12:03 reportable6 joined 12:05 jpn left
antononcube @guifa I am tried to install "Intl::Token::Number" from Zef's ecosystem, and got multiple failings, because, it seems, of the attempt to install Intl::LanguageTag:ver<0.9.0>:auth<github:alabamenhu>:api<1>. 12:19
@guifa I cloned the corresponding project from GitHub: github.com/alabamenhu/IntlTokenNumber/tree/main , and the installation succeeded with the messages: (base) [8:14]alabamenhu/IntlTokenNumber> zef install . ===> Testing: Intl::Token::Number:ver<0.1>:auth<github:alabamenhu> [Intl::Token::Number] ⎡ The module Intl::UserLanguage has been renamed to User::Language. ⎤ [Intl::Token::Number] ⎢ 12:22
Please use this name in the future. If you received this message ⎥ [Intl::Token::Number] ⎢ without having explicitly used the module, please contact the ⎥ [Intl::Token::Number] ⎢ author whose module called this to have them update accordingly. ⎥ [Intl::Token::Number] ⎢ ⎥ [Intl::Token::Number] ⎢ Please be aware that fallback languages are not
supported when ⎥ [Intl::Token::Number] ⎢ calling by the old name for compile time reasons ⎥ [Intl::Token::Number] ⎢ ⎥ [Intl::Token::Number] ⎢ You may dismiss this by setting the environment variable ⎥ [Intl::Token::Number] ⎢ RAKU_USER_LANGUAGE_NAMECHANGE_WARNING to OFF. Updates after 2024 ⎥ [Intl::Token::Number] ⎣
will no longer provide under the old name. ⎦
guifa Anton: hmm that token number hasn't been updated in a looooong tiime 12:25
I need to update it now that we have RakuAST 12:26
antononcube @guifa Ok, thanks! 12:31
13:05 linkable6 left, evalable6 left 13:07 evalable6 joined, linkable6 joined 13:17 ab5tract joined 13:18 jpn joined 13:22 jpn left 13:23 poohman joined 13:46 siavash left 13:50 vrurg_ is now known as vrurg
librasteve ^^ that's interesting - I am curious how to apply AST to number literals and you (@guifa) seem to be the guy in the know via your cool BF demo 13:51
so I think that an approach might be:
(i) do a pre-compile pass (CHECK? phase) 13:52
13:52 guifa_ joined
(ii) somehow wrap the 4 calls to number literals like RakuAST::IntLiteral.new(42) 13:53
(iii) also catch commas with expression => RakuAST::ApplyListInfix.new( 13:54
m: '42,0'.AST.say
Raku eval Exit code: 1 No such method 'AST' for invocant of type 'Str' in block <unit> at main.raku line 1
antononcube @librasteve The token <local-number> of "Intl::Token::Number" can help parsing factors in physical units.
librasteve [sorry you will have to try that at home] 13:55
guifa_ I must be totally blind, where is the DEPARSE function in source?
librasteve (iv) have a Grammar (eg call Intl::Token::Number) and fix the AST 13:56
^^^ so, I see how to steal the BF demo to go bf name { BF }, but I would need some help to understand how to hook all the literals in vanilla raku 13:57
wonders if there is an example for this ... or maybe guifa you can write a v simple one and then I can contribute from there? 13:58
lizmat guifa: method DEPARSE lives in src/Raku/ast 14:01
librasteve @anton - yes that is what I have in mind - right now Physics::Measure exports postfixes to handle SI units like 1s, 2km (that's all the base SI units (7) and all the prefixes (12?) so doing anything in item literal position via a slang would extend to non metric, non SI base international and so on...
guifa_ lizmat: yeah, I got an error on EVAL- 14:03
I got an error on EVAL'ing a node, and the error was DEPARSE wasn't yet supported. I was trying to track it down since I figured the frugal modifier should be low hanging fruit (just add ?) 14:04
but I couldn't find the DEPARSE on any nodes, I guess
lizmat which node: maybe I forgot to add support for it ?
DEPARSE support doesn't come out of thin air: it needs to be added for each node that needs deparsing 14:05
deparse support is currently at 2500+ lines :-)
guifa_ QUantifiable claims no support for Frugal. I was trying to see where the string was built up and I couldn't find it hahaha, I assume it's not actually in each classes' definition 14:08
Deparsing RakuAST::Regex::Backtrack::Frugal objects not yet implemented. Sorry.
in any DEPARSE at src/Raku/ast/base.rakumod line 351
lizmat ah, did you add a .new to that? 14:09
the candidate has: RakuAST::Regex::Backtrack::Frugal:U
it doesn't need to be instantiated
is it being generated with a .new somehow ?
guifa_ lemme try without a new 14:10
lizmat I guess we could add a dummy .new that would return self 14:11
guifa_ ohay that works
14:11 jpn joined
lizmat ok, I'll add a dummy .new for those classes, to prevent confusion 14:11
guifa_ I actually did the same in my ECMA262 classes for some things hahaha 14:12
because I knew I'd inevitably forget which things needed .new or not ^_^
that said 14:16
lizmat yeah, adding a .new now
14:16 jpn left
guifa_ I did just find a deparse mistake 14:16
lizmat that's very well possible, please make a gist :-) 14:17
14:20 sena_kun left 14:23 sena_kun joined
guifa_ lizmat: gist.github.com/alabamenhu/d88a385...480c8435c6 14:24
lizmat will fix in a mo 14:25
guifa_ :) you're awesome 14:27
(but legit I'm trying to figure out how I could have fixed on my own, since I'm about to do a lot of regex RakuAST stuff, so I'll watch your commit closely)
14:29 jpn joined
lizmat is surprised the ? gets deparsed at all, looking at the code 14:33
14:35 jpn left
librasteve reads dev.to/lizmat/so-why-is-there-raku...place-5bga again and summons up courage 14:57
lizmat wishes librasteve strength and mentions that questions can always be asked 15:00
guifa_: ok, fix on the way, but your test was wrong 15:02
implies whitespace after the atom 15:03
so instead of "/a**? 2/" the deparse is "/a **? 2/"
15:07 jpn joined
ugexe tbrowder__: yeah that doesn't appear to be related to long paths. indeed it fails during raku precompilation upon installation, but i'm not really sure why. one cause i've seen before (but may not apply here) is installing over modules that comes with the Raku/setup-raku github action. For example, setup-raku comes with some version of zef which means if I want to use that same action to test zef 15:10
tellable6 2023-07-29T11:12:50Z #raku <tbrowder__> ugexe its the windows yml at github.com/tbrowder/path-finder/.g...s-spec.yml
ugexe itself I need to first uninstall zef (see the comments on github.com/ugexe/zef/blob/6c23e81b...ml#L24-L30 )
15:10 ab5tract left 15:12 jpn left
ugexe testing that theory would involve the following (in the CI config): clone zef, cd into zef directory, run `raku -I. bin/zef nuke site home` (delete all installed modules without using the installed zef), run `raku -I. bin/zef install .` (reinstall zef), then install your dependencies and run your tests as normal 15:14
15:14 jpn joined
ugexe the root problem with all of that being that windows doesn't allow files that have open handles to be deleted, so if the installed zef is trying to delete or replace a module that is currently open (maybe in a separate program, maybe as a zef plugin dependency) windows will error (unlike on other OS) 15:17
15:17 Guest93 joined 15:19 Guest93 left
antononcube @librasteve Does "Physics::Unit" have units algebra? I expect(ed) this to work: GetUnit("12 m/s") * 30 * GetUnit("300 s") 15:22
librasteve ^^^ good question. A Measure combines (Real, Units, Error). Measure algebra uses the Units to scale and offset variables in a calculationlike this github.com/librasteve/raku-Physics...tor-syntax 16:00
# Define a distance and a time my \d = 42m; say ~d; #42 m (Length) my \t = 10s; say ~t; #10 s (Time) # Calculate speed and acceleration my \u = d / t; say ~u; #4.2 m/s (Speed) my \a = u / t; say ~a; #0.42 m/s^2 (Acceleration)
^^ this overloads math ops like +-*/** 16:01
Units cannot be combined with math operators 16:02
BUT, you can define your own like this 16:03
my $ff = Unit.new( defn => 'furlong / fortnight', names => ['ff'] );
my $race-pace = Measure.new( value => 23, units => $ff ); 16:04
so, your example is then (with the libraop prefix just this) 16:08
say ♎️'12 m/s' * 30 * 300s
use Physics::Measure :ALL; say ( ♎️'12 m/s' * 30 * 300s).^name #Physics::Measure::Length 16:10
btw the Str argument to GetUnit (which is a method on the Unit:D) should be just the string of the unit without the value or the error 16:14
you only need to wory about unit methods if you are making a custom one or introspecting 16:15
16:19 linkable6 left, evalable6 left
antononcube @librasteve Thanks for the detailed explanation! Yeah, I assumed that there might be another module for the units/measurements algebra. 16:20
16:21 linkable6 joined 16:22 evalable6 joined
tbrowder__ ugexe: that overlapping module use may be the problem. when i get a chance i'll investigate more. 16:30
is there any way in meta6 file to say 'use an earlier version than this version of the module being installed' 16:32
say we are installing foo:ver<2> but a dep uses foo:ver<1>. is that a circular dependency? 16:35
could we use syntax like .":ver<1.99->" meaning "no greater than 1.99" 16:38
i'll check docs... 16:39
ok, this shoud work: ver<2.*> meaning <2 16:42
ugexe well, if App::Prove6 is already installed you would just not install the new version 16:44
tbrowder__ m: say "foo:ver<2.*>" <=> "foo:ver<2>"
camelia Cannot convert string to number: base-10 number must begin with valid digits or '.' in '⏏foo:ver<2.*>' (indicated by ⏏)
in block <unit> at <tmp> line 1
ugexe no greater than 1.99 would be 1.*
tbrowder__ yes 16:45
ugexe but i dont think its a dependency that is your problem
because you are explicitly installing App::PRove6
its not being installed as a dependency
2.* does not mean less than 2
it means 2.$anything
in a version * is more like a regex *... match anything 16:46
tbrowder__ i used the wrong example anyway 16:47
m: say v2.* <=> v2.0 16:48
camelia Less
ugexe you wouldn't compare version ranges (versions that use * or +) in a comparison other than ~~
m: say v1.0 ~~ v2.* 16:49
camelia False
ugexe m: say v2.0 ~~ v2.*
camelia True
tbrowder__ right, thnx
ugexe which reads `(v2.*).ACCEPTS(v2.0)`, or "does v2.* accept the version 2.0?" 16:50
some other info that might be useful from your CI is the result of `zef info zef, `zef info App::Prove6` (before you try to install it) and `zef locate App::Prove6` 16:52
to see 1) if its including a really old version of zef (which i dont think would matter, but just in case), 2) if its a really old version of App::Prove6 already installed, and 3) if its including App::Prove6 from some sort of non-default repository 16:53
further, it is probably a good idea to always pass `--debug` to every zef command you do in a CI just to always get all the info 16:54
guifa lizmat: I always forget the whitespace stuff haha 17:10
17:22 linkable6 left, evalable6 left 17:24 evalable6 joined, linkable6 joined
jdv guifa: cool talk on the ast stuff 17:27
17:28 razetime left 17:32 rf joined 17:35 razetime joined 17:42 razetime left 17:52 ProperN[out] left 18:00 reportable6 left 18:03 reportable6 joined
librasteve ^^ ++ 18:09
18:25 Sgeo joined
lizmat guifa: yeah, that took a while of figuring out, making :r settable later :-) 18:27
19:39 guifa_ left
tbrowder__ ugexe: fwiw, after adding --debug to prob CI i got a good run 19:43
that's a windows run 19:45
19:49 poohman left
SmokeMachine guifa: look how interesting what copilot suggested me when I just wrote "role": usercontent.irccloud-cdn.com/file/.../image.png 20:05
20:12 tea3po joined 20:14 tea3po left, tea3po joined 20:15 tea3po left, teatwo left, tea3po joined 20:17 Maylay left 20:21 Maylay joined
[Coke] next blin dep error: ===> Testing: if:ver<0.1.1> 20:42
repeatedly fails here. 20:43
lizmat tests and installs fine for me on MacOS 20:44
also on Debian
ugexe github.com/FROGGS/p6-if/blob/ba76e...t/if.t#L10 20:46
probably that line breaking
although it should be fixed in a recent commit
tbrowder__ ugh, windows w/ zef --debug testing now error finding z:from<native>, not found in raku.land, either 20:57
ugexe things that are :from<native> are not raku modules 20:59
that would be libz.so on linux, z.dll on windows, etc
[Coke] mine is trying to install from: raw.githubusercontent.com/raku/REA...%3E.tar.gz 21:00
ugexe [Coke]: you need to update rakudo
need commit 824a500 at a minimum 21:01
21:21 linkable6 left, evalable6 left, linkable6 joined 21:23 evalable6 joined 22:00 ab5tract joined
Geth Raku-Steering-Council/main: e417fdde0d | (Nick Logan)++ (committed using GitHub Web editor) | minutes/20230729.md
Add RSC meeting minutes for 2023-07-29
22:52 sena_kun left
tbrowder__ so far, on one module, zef --exclude="z" fixed the windows test 23:04
well, not so fast. micro asteroids hit again, i give up, sigh... 23:16
[Coke] ugexe: are you kidding! i am at that -1 23:21
23:30 phogg left, ab5tract left
[Coke] ok, I updated raku and was now able to install all blin deps. 23:54