🦋 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:06
merp left
00:22
jgaz left
00:26
japhb left
00:27
japhb joined
00:33
merp joined
|
|||
pelevesque | @tonyo - I wish there was a test-depends emptied field in your fez generated META6.json. | 00:37 | |
00:56
merp left
01:08
merp joined
|
|||
tonyo | can be added - | 01:19 | |
01:37
merp left
01:50
japhb left
01:53
japhb joined
01:59
merp joined
02:57
squashable6 left
02:59
squashable6 joined
03:54
jetchisel left
03:56
jetchisel joined
04:56
bisectable6 left,
reportable6 left,
evalable6 left,
bloatable6 left,
linkable6 left,
shareable6 left,
releasable6 left,
sourceable6 left,
unicodable6 left,
quotable6 left,
nativecallable6 left,
tellable6 left,
benchable6 left,
squashable6 left,
coverable6 left,
committable6 left,
greppable6 left,
notable6 left,
statisfiable6 left,
benchable6 joined,
unicodable6 joined
04:57
tellable6 joined,
quotable6 joined,
greppable6 joined
04:58
reportable6 joined,
bloatable6 joined,
sourceable6 joined,
bisectable6 joined,
linkable6 joined,
shareable6 joined,
committable6 joined,
statisfiable6 joined,
evalable6 joined,
notable6 joined
04:59
releasable6 joined,
coverable6 joined,
nativecallable6 joined,
squashable6 joined
05:12
euandreh left
06:00
reportable6 left
06:01
reportable6 joined
06:26
derpydoo left
06:50
tea3po joined
06:54
teatwo left
06:57
an3223 joined
07:09
an3223 left
07:14
jpn joined
07:20
ProperNoun left
07:26
jjido joined
07:36
jpn left
07:43
Sgeo left
07:56
dakkar joined
08:01
sena_kun joined
08:15
jjido left
08:55
jjido joined
09:01
archenoth joined
09:02
Oshawott left
09:07
jjido left
09:15
abraxxa joined
09:24
jjido joined,
jpn joined
09:54
jjido left
09:55
an3223 joined
10:05
abhinav left
10:17
jjido joined
10:31
jjido left
10:46
TieUpYourCamel joined
10:48
jjido joined
10:50
bigdata left
11:02
abhinav joined
11:13
derpydoo joined
|
|||
jjatria | I'm using IO::Socket::Async to write a UDP client/server pair, but I can't figure out how the server gets the host/port of the incoming connection to send a response. I can receive messages on the server, but not respond | 11:15 | |
Does anybody know where I can get where to send a response to? | 11:17 | ||
11:20
euandreh joined
11:24
euandreh left
|
|||
lizmat | jjatria: I'm actually unsure whether UDP is supported at all on Moar | 11:24 | |
perhaps time for a SO question | |||
11:25
euandreh joined
11:26
an3223 left
11:35
jpn left
|
|||
jjatria | Sure, I can do that | 11:38 | |
11:42
an3223 joined
11:56
jjido left
12:00
reportable6 left
12:01
reportable6 joined
12:02
an3223 left
|
|||
霧嶋 董香 | Hi, how to get all built-ins functions and keywords in raku ? | 12:25 | |
12:38
jpn joined
12:43
jjido joined
13:14
knarkhov joined
|
|||
[Coke] | is this for an editor/IDE - I think many cheat and keep a list. You could introspect the grammar and CORE:: (I think) to try to get a introspected list. | 13:17 | |
13:17
jjido left
|
|||
[Coke] | m: dd CORE::.keys[^5] | 13:20 | |
camelia | ("\&prefix:<++⚛>", "\&chop", "UIntPosRef", "\&print", "\&all") | ||
[Coke] | m: dd CORE::.keys.sort[^5] | ||
camelia | ("!INIT_VALUES", "\$!", "\$/", "\$=pod", "\$?BITS") | ||
[Coke] | m: dd CORE::.keys.grep(*.starts-with("\&").sort[^5] | ||
camelia | ===SORRY!=== Error while compiling <tmp> Unable to parse expression in argument list; couldn't find final ')' (corresponding starter was at line 1) at <tmp>:1 ------> :.keys.grep(*.starts-with("\&").sort[^5]⏏<EOL> |
||
[Coke] | dd CORE::.keys.grep(*.contains("&c")) | 13:22 | |
evalable6 | ("\&cross", "\&chop", "\&circumfix:<\{ }>", "\&… | ||
[Coke], Full output: gist.github.com/821a380a4ab322cbda...b8a44fa659 | |||
[Coke] | the &'s will be all the top level subs. | ||
but you'd need to look at the grammar to get syntax like "for" | 13:24 | ||
13:26
derpydoo left
|
|||
[Coke] | The grammar is complicated enough you're probably better off keeping the keyword list separate. | 13:26 | |
jjatria | lizmat: stackoverflow.com/questions/75889032 | 13:41 | |
13:41
jgaz joined
13:46
an3223 joined
|
|||
霧嶋 董香 | @coke thank you! | 13:59 | |
14:27
vrurg left
14:38
m_athias left,
nine left
14:40
vrurg joined
14:43
camelia left
14:48
Sgeo joined
14:49
camelia joined
15:08
camelia left
15:14
camelia joined
15:15
m_athias joined
15:18
nine joined
|
|||
tonyo | vrurg: taking a look at your question on the `rev` thing today. did the globber work better? the review command is a little difficult without an AST available to fez (it's just a dumb grepper) | 15:18 | |
vrurg | tonyo: the globber seems to be ok, except for the attempt to read from an excluded file. | 15:20 | |
tellable6 | 2023-03-28T08:35:50Z #raku <Xliff> vrurg Ah! Thanks! | ||
tonyo | okay cool | ||
vrurg | As to the "dumb grepper", but module names are in the source. The dumbest one would've found them. | ||
tonyo | the dumbest one would also add anything with two colons to something else | 15:21 | |
vrurg | :D | ||
Anyway, you have the repo and can test against it. And I consider the new features as a great move into the right direction. Though my tooling is already based around own-brewed makefile-based subsystem, where fez serves as an uploader only. | 15:23 | ||
15:25
jpn left
|
|||
tonyo | no worries, testing is much appreciated - working on making fez see your repo a little more sanely | 15:25 | |
also, i'm moving the 'production' key out of the META6.json and into a `.fez` file | 15:26 | ||
vrurg | The way I assumed the key to be? | 15:27 | |
tonyo | i have it here: pastebin.com/6VJTzg96 which looks sane to me | 15:28 | |
yea | |||
also in that .fez file you can disable warnings about those types by adding `ignore-provides: ["HelperMethod", ...]` | |||
i'll put up a PR so you have an example and then i'll fix the globber in that repo | 15:30 | ||
vrurg | I saw the ignore feature. Might be a bit too much in some cases, but I hope things change for better with RakuAST. One thing could be done already though. If you see a module declaration then you could try import it and iterate available symbols. Barely useful with 'my', but otherwise might work. | 15:31 | |
15:32
jpn joined
|
|||
tonyo | i thought about that but it was failing badly for modules that reach out to some service when `use`d | 15:33 | |
pastebin.com/aMweXXtL | |||
vrurg | And possible internal integrity issues if the modules messes up with things in an surprising way. But that could be resolved by spawning a child process. And ignoring outcomes if it fails. Then it could just fallback to the current behavior. | 15:34 | |
I need to go. Will be away for a while. | 15:35 | ||
Like it where fez goes anyway. | |||
Thanks! | |||
tonyo | thanks vrurg ! | 15:36 | |
15:53
abraxxa left
16:01
jpn left
16:06
jgaz left
16:30
dakkar left
|
|||
tonyo | fez v49 adds the test depends pelevesque, should fix #90 and make #92 more palatable vrurg | 16:33 | |
16:34
jgaz joined
16:57
gcd joined
17:16
gcd left
17:23
derpydoo joined
|
|||
tonyo | m: use Raku::Grammar | 17:25 | |
camelia | ===SORRY!=== Error while compiling <tmp> Could not find Raku::Grammar in: /home/camelia/.raku /home/camelia/rakudo-m-inst-2/share/perl6/site /home/camelia/rakudo-m-inst-2/share/perl6/vendor /home/camelia/rakudo-m-inst-2… |
||
lizmat | m: use Raku::Grammar:from<nqp> | 17:27 | |
camelia | ===SORRY!=== Error while compiling <tmp> Could not find Raku::Grammar:from<nqp> in: /home/camelia/.raku /home/camelia/rakudo-m-inst-2/share/perl6/site /home/camelia/rakudo-m-inst-2/share/perl6/vendor /home/camelia/rakud… |
||
lizmat | m: use Raku::Grammar:from<NQP> | ||
camelia | ( no output ) | ||
lizmat | tonyo ^^ | ||
still WIP though | 17:28 | ||
tonyo | danke | 17:30 | |
trying to prepare for some stuff i'd like to add to fez or individual tooling eventually | |||
hmm, is there a method to just get the AST from a string? | 17:40 | ||
looking at that class in nqp it looks like it's evaluating compunits | |||
pelevesque | @tonya - | 17:59 | |
18:00
reportable6 left
18:03
reportable6 joined
|
|||
lizmat | m: say Q|say "tonyo"|.AST | 18:07 | |
camelia | RakuAST::StatementList.new( RakuAST::Statement::Expression.new( expression => RakuAST::Call::Name.new( name => RakuAST::Name.from-identifier("say"), args => RakuAST::ArgList.new( RakuAST::QuotedString.new( … |
||
tonyo | whoa | ||
18:08
Oshawott joined
|
|||
lizmat | what you hoped for and more? :-) | 18:08 | |
tonyo | yea very sweet and easy | ||
18:11
archenoth left
18:42
donpdonp- joined
|
|||
tonyo | m: use experimental :rakuast; sub X {}; "sub X {}".AST; | 18:44 | |
camelia | Use of Nil in string context in block <unit> at <tmp> line 1 ===SORRY!=== Error while compiling Missing block ------> sub X ⏏<EOL> |
||
tonyo | m: use experimental :rakuast; sub ABCX {}; "sub ABCX {}".AST; | ||
camelia | Use of Nil in string context in block <unit> at <tmp> line 1 ===SORRY!=== Error while compiling Missing block ------> sub ABCX ⏏<EOL> |
||
18:54
teatwo joined
18:58
tea3po left
|
|||
[Coke] | tonyo: you want single quote. | 19:05 | |
tonyo | m: use experimental :rakuast; sub ABCX {}; 'sub ABCX {}'.AST; | ||
camelia | ( no output ) | ||
[Coke] | m: dd 'sub X {}'.AST | ||
camelia | sub X { } | ||
tonyo | is the ast meant to also act as a linter? | 19:06 | |
[Coke] | otherwise you're interpolating a nil with that {}, I think. | ||
tonyo | yea you're right, brain dead today | ||
[Coke] | in that you get standard output, not original source input | ||
tonyo | yea | ||
[Coke] | but I think it's more "porcelain" than "linted", if that matters. | ||
tonyo | ah, so not planned to also be a linter | 19:07 | |
[Coke] | interesting, at some point sub output empty parens, but that's no longer showing up here. | ||
19:19
an3223 left
19:24
user___ joined
|
|||
tonyo | this makes writing a linter much easier than six years ago | 19:52 | |
20:03
ProperNoun joined
|
|||
Nemokosch | that was part of the reason I suppose | 20:17 | |
20:22
nort joined
|
|||
guifa needs to publish an update to Pretty::RAST | 20:52 | ||
ultimately it could be used as a formatter and possibly a linter at some point | |||
lizmat | m: say Q|sub foo ($a) { $a + $a }|.AST.DEPARSE | 21:00 | |
camelia | sub foo (Any $a) { $a + $a } |
||
lizmat | tonyo: deparsing lints to an extent already | 21:01 | |
21:16
derpydoo left
21:38
squashable6 left
21:39
sena_kun left
21:41
squashable6 joined
21:52
jgaz left
22:02
eseyman left
|
|||
Nemokosch | github.com/Raku/atom-language-perl6/pull/101 | 22:02 | |
with this PR, I hereby announce my intentions to take control over the highlighter repository 🤠 | 22:03 | ||
22:03
manu_ joined
22:04
manu_ is now known as eseyman
|
|||
tonyo | m: say Q|say 1;|.AST.DEPARSE | 22:15 | |
camelia | say(1) |
||
guifa is going to try to find a way to get it so we can say something like pretty-print $rast-node :type<html>, :options(:foo); | 22:16 | ||
and then get a perfect HTML-ready output | |||
rather than rely on a 98% accurate syntax highlighter | |||
lizmat | just for the record: the class doing the deparsing, is RakuAST::Deparse | 22:17 | |
it can be subclassed, or you can write your own | 22:18 | ||
and you can specify the class for deparsing as an argument to .DEPARSE | |||
m: use v6.*; say Q|say 1;|.AST.DEPARSE(RakuAST::Deparse) | |||
camelia | say(1) |
||
Nemokosch | an HTML generator is very welcome. This is not an either-or thing. There are editors using this highlighter, and in fact, Github itself uses it for highlighting Raku code. You aren't gonna replace that. | 22:20 | |
22:26
knarkhov left
|
|||
tonyo | HTML generator is available as Ryml | 22:28 | |
Nemokosch | like please, not this "I don't care because I will manage without/I know better" sort of mentality again | 22:30 | |
lizmat | Nemokosch you have my blessing re atom-language | 22:32 | |
also, I've just renamed the repo.... :-) | |||
afk& | 22:33 | ||
Nemokosch | I'd say eventually it cannot (or at least shouldn't) stay "atom" either; if there is any editor to be named, it would be TextMate since the files are using the TextMate format | 22:44 | |
guifa | Nemokosch: yeah, the advantage of a highlighter like the Atom one is it generally will work fairly well on something that's syntantically invalid | 22:46 | |
tellable6 | guifa, I'll pass your message to Nemokosch | ||
guifa | e.g. highlighting correctly up to somewhere around abouts the error | ||
an HTML (or other outputter) from RAST will barf on a syntax error | 22:47 | ||
(but nicely could potentially handle embedded languaages a bit better heh) | |||
Nemokosch | I don't think there is a dichotomy here, it's fairly simple. You don't always get the freedom to generate custom HTML. I wonder how much you get that freedom from an average TextMate-compatible editor, and you definitely don't get that freedom from something essentially like a markdown highlighter in a much broader system. | 22:51 | |
So while it's also true that I don't think we have anything better quality-wise, either way, there needs to be something that can just work with the existing "rigid" tools, even if it only covers 98% of cases. | |||
guifa | yeah | 22:56 | |
we're in agreement :-) | |||
like you said, it's not an either or -- good reason for both | |||
in reality, I'm making the pretty-print to just give me colorization when printing out in-progress RAST code | 22:57 | ||
but there's not too much difference between inserting an ANSI code and an HTML <span> of course | |||
Nemokosch | the difference is in the (often declarative) interface these tools provide | 22:58 | |
they might as well be dumb HTML generators under the hood if they don't let you make it smarter | 22:59 | ||
Anyways... In general, right now the question isn't if we can get that 98% up to a hundred, much more like, if we can get visible presence at all. There is still no highlighting for Discord and I had to accept that either one of us gets a highlighter into highlight.js or the time just won't magically come, ever. There are dozens of supported languages, including ones that I've never heard of and/or seem like a kind | 23:00 | ||
of joke. | |||
Languages that I'm absolutely sure are less known and used than Raku - however, the difference is made by the people who create the tooling. | |||
And this is when I feel "nostalgic" about Minecraft in around 2012, which had 5 English dialects, "Pirate language" and perhaps even cat language - but no Hungarian, for quite a lot of time | 23:01 | ||
tonyo | are you a hungarian native speaker nemo? | 23:04 | |
Nemokosch | Yes | 23:07 | |
23:26
evalable6 left,
linkable6 left
23:27
linkable6 joined
23:29
evalable6 joined
|