🦋 Welcome to the IRC channel of the core developers of the Raku Programming Language (raku.org #rakulang). This channel is logged for the purpose of history keeping about its development | evalbot usage: 'm: say 3;' or /msg camelia m: ... | Logs can be inspected at colabti.org/irclogger/irclogger_log/raku-dev | For MoarVM see #moarvm
Set by lizmat on 26 April 2021.
japhb Copy pasta that bitrotted: *JS* backend says "Cannot force GC on JVM backend yet" for force_gc op, while it actually seems to be implemented on JVM. :-) 04:38
sena_kun releasable6, status 08:23
releasable6 sena_kun, Next release in ≈22 days and ≈10 hours. 2 blockers. 0 out of 10 commits logged
sena_kun, Details: gist.github.com/7a354e9a477ee6ba57...4b2b6ac4cf
sena_kun releasable6, status 08:25
releasable6 sena_kun, Next release in ≈22 days and ≈10 hours. There are no known blockers. 0 out of 10 commits logged
sena_kun, Details: gist.github.com/2f7d807ea05814f04b...fe903ecffc
Xliff sena_kun++ # Latest release 08:48
In case I haven't mentioned it, yet. Thank you, for all you do.
sena_kun: Who would I need to talk to for CURI related issues?
CURI = CompUnit::Repository::Installer 08:49
MasterDuke Xliff: ugexe or nine
Xliff MasterDuke: OK. Yes, it's related to "that" problem.
I still haven't heard from anyone about how to best approach adding more user feedback to the current way Rakudo installs modules.
I would like to put some time into that. 08:50
CURI = CompUnit::Repository::Installation, actually 08:51
MasterDuke hack some minimal change in, PR that, hopefully get relevant comments? people might need to see some actual code changes to understand what you're thinking 08:52
Xliff Yeah. Unfortunately, I need to understand what they were thinking, first.
A high level tour of CURI would be niec.
Take this section for example: github.com/rakudo/rakudo/blob/mast...n.pm6#L207 08:56
Could we replace that with a single for loop and two when blocks?
Also, is there some way to precompile the modules, FIRST into some staging directory and then install from therE? 08:59
Is there a writeup about how Raku goes about installing its modules? 09:00
MasterDuke github.com/rakudo/rakudo/blob/mast...-dist.raku perhaps 09:02
Xliff Yeah, that sounds like what I am looking for. But that code installs it. Is there a writeup on its use? 09:04
MasterDuke dunno 09:05
Xliff And where are those sources?
Xliff MasterDuke: Alas. Those are the answers I always get when I ask these questions, and they do me no good when I have doesn't of projects I'd like to release. 09:05
I am not faulting you. I am just trying to determine next steps! 09:06
MasterDuke no worries. fwiw, i've never touched any of those parts of the code, so i'm just as much in the dark 09:09
nine Xliff: yes, you could probably use a single loop and to whens. Don't know how that's related to a high level view though. Looks like a minor code structure change to me 10:26
Xliff: precompile first and then install from there? That's what CompUnit::Repository::Staging is all about.
Xliff: the architecture documentation is at github.com/rakudo/rakudo/blob/mast...agement.md 10:27
Xliff nine: The loop change was minor suggestion. It's what I do when looking at new code. 10:32
Thanks for the link!
nine The system has evolved somewhat since that document was written, but it's still an excellent starting point for understanding the different parts 10:33
Xliff Yes. Good information in here. Any writeups on ::Staging? 10:34
Or an example that uses it... 10:35
Geth rakudo/rakuast: c796cd3c22 | (Jonathan Worthington)++ | 2 files
Parse `my sub ...`
10:36
Xliff jnthn++ # RakuAST work 10:44
jnthn: Have any conservative idea on when to expect RakuAST on master? 10:47
tellable6 Xliff, I'll pass your message to jnthn
nine Xliff: github.com/rakudo/rakudo/blob/mast...ll-dist.p6 11:00
And build.opensuse.org/package/view_fi...c?expand=1 11:02
Xliff Ah! Shows how the --to directive is to be used. nine++ 11:03
Although one wonders if libdir might be better? 11:04
moar::libdir=/home/cbwood/Projects/rakudobrew/versions/moar-blead/install/lib
from "raku -V"
nine: Would there be a simple way to pull the vendor directory from the repo chain? 11:07
"raku -V" has "repo::Chain=..."
Although one would hope I could pass 'vendor' somewhere and get something like: /home/cbwood/Projects/rakudobrew/versions/moar-blead/install/share/perl6/vendor 11:08
I could loop through that and check for .ends-with('vendor'), but even that seems a bit unclean. :/
nine look in CompUnit::RepositoryRegistry 11:16
Xliff Thanks. 11:19
Will have to download this chatlog as notes, LOL!
nine: So if I can build out a module with this script: github.com/Xliff/p6-GtkPlus/blob/m...-build.pl6 11:21
Will ::Staging pick up what's been built and use that?
dependency-build.pl6 tl;dr - It makes use of parallel rakudo compilations via '-e "use <MODULE>"' 11:22
nine Sorry, I don't understand your question 11:32
Geth rakudo/rakuast: 0553127bd2 | (Jonathan Worthington)++ | 6 files
RakuAST node for term (sigilless) var declarations
11:33
Xliff nine: Nevermind. I will rephrase it when I get a chance to really look at the information you've already shared. 11:35
Thanks for the infodump!
timotimo hm. how best to make switching between a tracy-enabled moarvm and a not-tracy-enabled moarvm available 12:25
lizmat ok, so I want to watch a directory for any additions to that directory 13:11
but at the same time, I want to watch a sub-directory of that directory for changes
now as, soon as the upper directory sees a new sub-directory, I want to switch watching *that* subdirectory 13:12
feels to me that this needs some type of nested react whenevers
lizmat but I seem to not be able to wrap my head around it :-) 13:13
nwc10 time for a bike ride?
lizmat it actually is, yet the weather is not very appealing
nwc10 it is nice here right now, but the forecast is rain by this evening. Various forecasts are unsure when "this evening" starts 13:14
lizmat 8 degrees with a wind chill of 4
nwc10 erk
something like 17 here with no wind
lizmat compared to the 21 we had yesterday
yeah, very much like we had yesterday :-)
nwc10 Seems like you're a day ahead of us :-)
(and you typed faster) 13:15
ugexe github.com/perlpilot/p6-IO-Notific...-Recursive
lizmat ugexe++ perlpilot++ 13:17
github.com/raku-community-modules/...-Recursive nowadays, but yes 13:18
a little overkill for what I wants 13:19
setled on: 13:28
loop { react { whenever $upper.watch { $sub = newsub; done }; whenever $upper.add($sub).watch { do stuff } } 13:29
nine nwc10: lizmat doesn't type faster, she obviously lives in the future! 13:36
lizmat I wish... 13:37
sena_kun greppable6, use lib 14:09
greppable6, help
greppable6 sena_kun, Like this: greppable6: password # See wiki for more examples: github.com/Raku/whateverable/wiki/Greppable
sena_kun, 2770 lines, 535 modules: gist.github.com/237b4c8c116b2b0023...74244df458
ugexe remember folks if you're using `use lib ...` you're probably doing it wrong 15:14
sena_kun Oh, I remember there was a solution with $*FILE.parent.absolute, but don't remember what I was writting with it anymore. :S 15:17
Geth roast: tbrowder++ created pull request #733:
Add Gregorian test data including negative dates
15:18
ugexe there are cases when `use lib ...` is fine (like the roast) but its almost always wrong for any part of a module/distribution
putting `use lib "lib";` in a test for example is asserting that you must have everything laid out as the author intended even though the author doesn't get to dictate that 15:19
sena_kun ugexe, how do I use test-only packages then?
ugexe `use lib "lib"` this is bad
`use lib "t/lib";` this is fine
for a test
sena_kun phew
sena_kun did `use lib 't/lib';`
ugexe yeah the important thing is the tests should have no idea about the structure of the library code they are likely testing. that should be supplied via `-I whatever` 15:20
for libraries that are specifically for the test (and not part of the distribution) they can assume the structure
Xliff lizmat: In your example (reused here replit.com/@Xliff/InfamousPleasant...#main.raku for clarity) 15:21
tellable6 2021-04-29T13:35:44Z #moarvm <jnthn> Xliff Can't see it happening before Q4 this year; even when most features are there, we'll want all the opts to be too, plus there'll be lots of little details to do (and bug compat with the current compiler frontend)
Xliff Aren't both whenever blocks started at the same time?
jnth++ # Thanks for the estimate! 15:22
Geth rakudo/rakuast: eae14b1a39 | (Jonathan Worthington)++ | 4 files
RakuAST handling of loop labels

  * A RakuAST::Label node
  * Statements hold a list of labels
  * Make loop compilation care about them
Xliff m: my @a; say +a; 16:59
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared routine:
a used at line 1
Xliff m: my @a; say +@a;
camelia 0
lizmat seems our provider lost most of their network about 40 mins ago :-( 21:55
japhb lizmat, you might remember this from your native array work: What would be the fastest way to get a Blob or Buf containing the raw data in an intarray or numarray? Is it necessary to copy, or can it be done without the copy? What about going in the opposite direction? 22:01
lizmat Blobs/Bufs are native intarrays under the hood
so you could just use nqp::ops on them 22:02
now, getting them to be recognized at HLL level as one or the other, I haven't been able to figure that one out
m: lob.new(1,2,3); use nqp; dd nqp::atpos_i($b,0) 22:03
camelia 5===SORRY!5=== Error while compiling <tmp>
Variable '$b' is not declared
at <tmp>:1
------> 3ob.new(1,2,3); use nqp; dd nqp::atpos_i(7⏏5$b,0)
lizmat m: Blob.new(1,2,3); use nqp; dd nqp::atpos_i($b,0)
camelia 5===SORRY!5=== Error while compiling <tmp>
Variable '$b' is not declared
at <tmp>:1
------> 3ob.new(1,2,3); use nqp; dd nqp::atpos_i(7⏏5$b,0)
lizmat m: my $b := Blob.new(1,2,3); use nqp; dd nqp::atpos_i($b,0)
camelia 1
japhb Right, they're all VMArrays, yes? Seems like it ought to be possible to just create a new "header" with the same raw data pointer. 22:04
lizmat you would think :-)
japhb Hmmm, can you nqp::splice between different typed arrays?
lizmat don't think so 22:05
japhb Gah, dang it.
lizmat try it, I'd say :-)
japhb Heh
Every time I think "What's the worst that could happen?" I have a vision of suddenly being in a hellish post-apocalyptic wasteland going "Ummm ... what?" 22:06
lizmat
.oO( cats and dogs, living together! )
22:07
japhb > use nqp; nqp::splice($buf, @na, 0, 0) 22:10
MVMArray: atpos expected num register
Harrumph. 22:11
You cannot create an instance of this type (Buf[uint8]) # Says you! Don't tell me what I can and cannot do! 22:15
Grrrr: `nqp::istype(nqp::hllize($got),Int) ?? ... !! self!fail-typecheck-element(action,$i,$got).throw))` 22:27
japhb is about to go full Charleton Heston / Planet of the Apes overacting 22:29
japhb idly wonders if Charleton Heston or ST:TOS-era William Shatner was the hammier overactor .... 22:30
lizmat Shatner, no doubt 22:34