🦋 Welcome to Raku! raku.org/ | evalbot usage: 'p6: say 3;' or /msg camelia p6: ... | irclog: colabti.org/irclogger/irclogger_log/raku
Set by ChanServ on 14 October 2019.
00:01 p6steve joined 00:06 p6steve left 00:35 ensamvarg_g6 joined 00:39 KindOne joined 00:50 sena_kun joined 00:52 Altai-man_ left 00:55 rbt left 00:56 rbt joined 01:12 Kaeipi left, Kaeipi joined 01:19 Altai-man_ joined 01:21 sena_kun left 01:26 molaf left 01:27 farcas1982regreg left 01:38 molaf joined
guifa2 stu002: I've not done an 100% literate style, but I've start doing a LOT more in-line documentation which approaches that style (particularly when I'm having to hew towards standards) 01:40
(also because I tend to only be able to program in spurts, so it helps me remember WTF I was doing 01:41
raschipi guifa2: any modules you published in this style? 01:49
01:50 aborazmeh left
guifa2 None that are purely so, but if you look here: 01:54
particularly the ACCEPTS() method for LanguageTagFilter 01:55
and the check-valid for TransformedContent
or lookup-language-tags 01:56
but I need to do a *lot* of clean up and better documenting in there so no judging me :-)
raschipi No judgement from someone whose code still causes nightmares on his colleagues. 01:59
01:59 pilne left 02:01 Manifest0 left 02:02 Manifest0 joined 02:03 p6steve joined
raschipi Literate programming means that the end result is formatted nicely, with TeX for example. So these examples get us almost there. Perhaps a POD slang that keeps the code mixed into the final display would be it. 02:06
02:08 p6steve left
guifa2 We can't quite do full literate programming, but we can get close. But it's definitely possible to parse for pod6 and get some nice TeX-like literate output if you want to 02:36
raschipi But then it will discard the code and the book won't make sense. 02:39
02:49 Kaiepi joined, Kaeipi left 02:56 melezhik left 03:04 Kaiepi left
cpan-raku New module released to CPAN! Test::Async (0.0.6) by 03VRURG 03:05
03:06 k-man left 03:07 raschipi left
guifa2 .tell raschipi that the code is discarded at the moment is just because all pod renderers have chosen to do that :-) 03:10
03:10 rbt left
tellable6 guifa2, I'll pass your message to raschipi 03:10
03:11 rbt joined, Kaiepi joined 03:17 k-man joined 03:20 sena_kun joined 03:21 Altai-man_ left 03:36 Itaipu left, Itaipu joined 03:44 molaf left 03:53 k-man left 03:55 Util joined 04:12 k-man joined 04:23 Doc_Holliwood joined 04:24 p6steve joined 04:29 p6steve left 04:30 farcas1982regreg joined
discord6 <stu002> @guifa2 @raschipi @AlexDaniel thanks for that, POD documents may be enough for my needs. Being able to add LaTeX expressions would be nice though. 04:35
guifa2 which LaTeX expressions would you want? The nice thing about a pod processor is that you can capture text andd process it accordingly if you want. So you could do a [latex: ] or something, and then process the innards if you need, e.g., math epxressions. There's probably already a library out there to help with processing TeX stuff, but I've not used it 04:38
discord6 <stu002> @guifa2 that approach of a latex block handled by custom processing code may well be enough. 04:44
guifa2 The nice thing about raku is that writing your own text processing stuff is a breeze :-) 04:45
discord6 <stu002> Agreed.
05:05 k-man left
guifa2 Actually, it seems no one has written a LaTeX parser. *wink* 05:06
05:10 k-man joined 05:14 [Sno] left 05:19 Altai-man_ joined 05:20 sauvin joined 05:22 sena_kun left
discord6 <stu002> @guifa2 I'm still very new to the language and ecosystem so probably not (yet) a good person to tackle that. 05:22
guifa2 Understanding LaTeX takes enough time. Understanding TeX takes more time. A tight integration between Raku and LaTeX à la LuaLaTeX would be amazing but undestanding an immense amount of time. 05:24
that said, Raku is one of the few languages that would legitimately make parsing TeX probably merely uncomfortable rather than extremely painful. It would be an ugly grammar with some complex actions but .... it could be done 05:27
moritz I'd really love to have a more modern language on top of TeX's rendering engine 05:55
06:03 cpan-raku left 06:04 cpan-raku joined, cpan-raku left, cpan-raku joined 06:10 [Sno] joined 06:11 andrzejku joined 06:15 __jrjsmrtn__ left 06:17 __jrjsmrtn__ joined 06:22 Doc_Holliwood left 06:25 Kaiepi left 06:26 Kaiepi joined 06:42 p6steve joined 06:47 p6steve left, stoned75 joined 06:50 girafe left 07:06 stoned75 left 07:09 stoned75 joined 07:20 sena_kun joined 07:21 Altai-man_ left 07:27 xelxebar_ left, xelxebar joined 07:28 rindolf joined
guifa2 moritz: I agree 10000%. TeX is amazing. But it's also a product of its time and there are just a few modern niceties that would be amazing in it 07:31
guifa2 just got quantifiers working in binex! 07:32
quantifiers + concat + literals = 70% of typical regexen?
moritz I might not be a your typical regex author, but I also use ^, $ and char classes a lot 07:33
07:34 stoned75 left
guifa2 moritz: I don't have really any of the metachars yet (although ^ and $ would be very easy). Right now I'm slowly working my way up the regex chain, once I hit termseq I'll get into metachar/grouping/capturing. 07:40
bedtime now 07:43
07:46 girafe joined 07:47 girafe left 08:10 rbt left 08:11 rbt joined 08:15 kybr joined 08:16 p6steve joined 08:32 [Sno] left 08:36 girafe joined, Black_Ribbon left 08:46 pecastro joined
Geth doc: 3be49a8b5b | (JJ Merelo)++ | doc/Type/Slip.pod6
.perl → .raku

Closes #3348
linkable6 Link: docs.raku.org/type/Slip
DOC#3348 [closed]: github.com/Raku/doc/issues/3348 [docs][easy to resolve] some .perl needs changing
09:03 girafe left 09:04 stoned75 joined 09:08 girafe joined 09:10 girafe left 09:19 Altai-man_ joined 09:21 sena_kun left 09:22 p6steve left 09:34 kotrcka joined 09:35 lichtkind joined 09:37 girafe joined 09:38 [Sno] joined 09:53 stoned75 left 10:02 p6steve joined 10:07 natrys joined 10:18 epony joined, lichtkind_ joined 10:20 lichtkind left 10:31 Doc_Holliwood joined 10:37 natrys left 10:49 andrzejku left 10:50 xinming_ joined 10:55 aborazmeh joined, aborazmeh left, aborazmeh joined 11:02 mowcat joined 11:11 xinming_ left 11:12 xinming_ joined 11:16 p6steve left, MasterDuke left 11:20 sena_kun joined 11:21 Altai-man_ left 11:25 titsuki joined, andrzejku joined 11:31 raschipi joined, aborazmeh left
raschipi . 11:31
tellable6 2020-04-24T03:10:33Z #raku <guifa2> raschipi that the code is discarded at the moment is just because all pod renderers have chosen to do that :-)
11:32 elcaro joined 11:37 Doc_Holliwood left 11:44 stoned75 joined 11:49 mowcat left, p6steve joined 11:50 xinming_ left, xinming_ joined 11:54 p6steve left 12:10 Voldenet joined, Voldenet left, Voldenet joined 12:11 molaf joined, p6steve joined 12:12 Doc_Holliwood joined 12:15 xinming_ left, patrickb joined 12:16 xinming_ joined 12:17 Maylay left 12:33 kotrcka left 12:35 MasterDuke joined 12:45 Maylay joined 12:47 raschipi left, aborazmeh joined, aborazmeh left, aborazmeh joined 12:50 raschipi joined 12:52 Doc_Holliwood left 12:56 xinming_ left 12:57 stoned75 left 12:59 xinming_ joined 13:02 stoned75 joined 13:04 rbt left 13:05 rbt joined 13:08 p6steve left 13:19 Altai-man_ joined, xinming_ left 13:20 xinming_ joined 13:22 sena_kun left 13:23 Kaiepi left
Altreus ahaha thanks raku for apparently being the only language that uses <> as delimiters 13:31
jnthn C++ too
Altreus surround.vim does not like it
jnthn C#, Java, etc. :)
Altreus It waits for me to complete the tag
jnthn (For templates and generics respectively)
Altreus I don't really want to surround the thing with <></>
raschipi It appears your vi is trying too hard. 13:32
Altreus indeed
It's too hipster - the only thing that uses <> is HTML5 13:33
tadzik hrm, tons of languages use <> :o
Altreus :O
I don't think many of them require you to replace {} with <> because you forgot what language it was 13:34
tadzik pretty much everything with generics in it
heh, in that context perhaps not
timotimo Altreus:i think if you use > instead of < it will let you surround with just <> 13:35
yes, indeed it will
DYK that you can also use surround.vim to change (foo) to ( foo ) and vice versa? 13:36
that's the diference you get when you ys( vs ys)
Altreus yes that's the thing innit 13:37
timotimo mh? 13:38
Altreus I can't get with-space or without-space because one of them thinks it's HTML
timotimo ah, that's how you meant it
Altreus if I do cs{< it waits for HTML
as it happens, cs{> does what I want
hrm I thought it was the opposite
Anyway there's no way to put <> with spaces :)
timotimo try a 13:39
13:39 vike left
timotimo no, wrong one 13:39
13:39 tejr left, Kaiepi joined 13:40 tejr joined
Altreus it's OK, spaces are for millennials 13:40
timotimo dangit. there is literally really no way? 13:42
13:45 vike joined
timotimo well, no built-in way. you can define custom surround mappings of course 13:47
[Coke] m: dd << "this has spaces" >>
camelia "this has spaces"
[Coke] hurm. not quite. :) 13:48
14:03 Doc_Holliwood joined 14:04 p6steve joined, melezhik joined
AlexDaniel greppable6: <<.*".*".*>> 14:07
greppable6 AlexDaniel, 316 lines, 20 modules: gist.github.com/2f00abc9b853352071...9042d3993f 14:08
14:08 p6steve left
AlexDaniel greppable6: <<.*\$.*>> 14:09
greppable6 AlexDaniel, 116 lines, 56 modules: gist.github.com/f7c6f920b176f801e9...973f567933
14:10 cognomin_ joined 14:11 cognominal left 14:16 |Sno| joined 14:20 [Sno] left 14:38 aborazmeh left 14:44 p6steve joined 15:11 molaf left 15:18 natrys joined 15:20 sena_kun joined 15:21 Altai-man_ left 15:37 stoned75 left 15:39 stoned75 joined 15:52 chloekek joined 16:07 sjm_uk joined 16:13 andrzejku left
p6steve is there a new name for prove6? 16:14
guifa2 arg, & is probably going to be the most powerful of all of the conjunctions in Binex, but also annoyingly complex. 16:16
16:17 Kaiepi left 16:18 Kaiepi joined
timotimo provaku? 16:18
p6steve prover 16:19
timotimo ProverK
[Coke] I mean, prove seems like a fine name. :) I wouldn't be clever; if we feel we need a different name, maybe "verify" or "attest"
timotimo proveRK
chloekek pr6ve
timotimo well, we'd probably be going away from a 6
discord6 <tmtvl> Just have prove check whether to use Perl or Raku based on the use statement in the tests? 16:20
[Coke] do we have to have a different name?
16:20 farcas1982regreg left
Altreus doesn't prove just consume TAP? 16:20
timotimo that's true, but it does also invoke your test programs and i think also discovers tests?
[Coke] Altreus: there's logic in there about what tests to run and how to run them.
chloekek tapestry
timotimo can we get something bible-y in there to honor The Language Creator™? 16:21
apocalypse seems slightly relevant; reveal whether the code is right or not
Altreus tapocalypse?
p6steve tempt
timotimo omg
what was the name of the guy with the revelations? 16:22
MasterDuke john
16:22 xinming_ left
Altreus John Wick? 16:22
[Coke] I would prefer NOT having something bibly, but that may just be me.
timotimo isn't there already a johntheripper that's like a password bruteforcing tool?
discord6 <tmtvl> Yes. 16:23
16:23 xinming_ joined
p6steve rakup 16:23
MasterDuke i assumed that's a play on the serial killer
timotimo i believe so
discord6 <tmtvl> I mean, if we want to provide our own TAP runner and consumer we could just call it something like rakutest.
timotimo jacktheripper exists too i believe? 16:24
MasterDuke but johntherevealer would work
timotimo i assume the relation is like between sup and notmuch
> Notmuch is an answer to Sup. Sup is a very good email program written by William Morgan (and others) and is the direct inspiration for Notmuch.
MasterDuke like less and more? 16:25
[Coke] discord6: "rakutest" ++
timotimo > alot, a curses frontend written in Python with the Urwid toolkit.
> netviel, a single-page web app with Javascript frontend and Python backend.
less, more, and don't forget most :) 16:27
MasterDuke nano, pico 16:29
timotimo cat, tac
16:29 xinming_ left
timotimo head, tail 16:29
16:30 xinming_ joined, abraxxa left
discord6 <tmtvl> A test runner wouldn't be too hard to implement, basically something like for t in */*.t; do raku -Ilib t; done, we could hash that out in a few minutes. ...and write tests for the tester. 16:30
<tmtvl> Who tests the tester? It tests itself.
16:32 abraxxa joined, raschipi left 16:34 rindolf left 16:36 patrickb left
p6steve sub MAIN(:$name, :$auth, :$ver, *@, *%) { CompUnit::RepositoryRegistry.run-script("prove6", :$nam e, :$auth, :$ver); } 16:37
^^^ this is the body of prove6 16:38
16:40 Doc_Holliwood left 16:43 West85 joined 16:46 raschipi joined
West85 Hi folks. I'm having an issue with errors during configure on a raku star installation. 16:46
16:47 abraxxa left
West85 is there a zstd library I'm supposed to have installed 16:47
16:47 xinming_ left
West85 for heapsnapshot 16:47
p6steve quit 16:48
16:48 xinming_ joined
p6steve 16:48
16:48 p6steve left
[Coke] West85: can you put the errors on (e.g.) gist.github.com? 16:50
guifa2 re naming, attest would handle both the ideas of "prove" and the biblicliness simultaneously, but I think "prove" by itself works well 16:51
16:53 cognominal joined
chloekek hope 16:54
16:55 natrys left
West85 gist.github.com/WesternStar/4e0bf6...d27f8c4c1e 16:56
16:57 cognomin_ left
timotimo damn, it should be optional 17:00
West85:can you also post the output of earlier pieces? 17:01
i hope i didn't majorly goof up :(
West85 Sure
I updated the gist 17:03
17:04 natrys joined 17:17 rindolf joined 17:19 Altai-man_ joined, abraxxa joined 17:20 aborazmeh joined, aborazmeh left, aborazmeh joined 17:21 sena_kun left 17:29 sjm_uk left 17:34 MasterDuke left 17:35 patrickb joined 17:37 melezhik left 17:39 aborazmeh left
AlexDaniel timotimo: provaku xD 17:47
17:47 West85 left
chloekek provo 17:48
AlexDaniel reminds me if Pakku
chloekek Plankalkül 17:49
17:52 mowcat joined 18:06 titsuki left 18:07 Doc_Holliwood joined 18:23 kensanata joined 18:24 ensamvarg_g6 left 18:34 cognomin_ joined 18:35 molaf joined 18:38 cognominal left 18:40 molaf left 18:42 stoned75 left
guifa2 yay, & | && || are mostly working enough to move on to metachars 18:42
18:47 stoned75 joined 18:48 lembark joined
lembark Q: Anyone I could talk to about tracking down a memory leak in Rakudo? 18:49
tellable6 2019-12-25T16:48:43Z #raku <sena_kun> lembark hi! your FindBin module is failing tests for some reason, can you check it?
lembark Sure.
Any idea which release of Rakduo (i.e., git id so I can test the right one).
Q: Is there any way to run 'zef acquire and test only'? 18:50
18:52 aborazmeh joined, aborazmeh left, aborazmeh joined, lichtkind_ left
lembark Building whatever's on github now... 18:53
^~~~~~~~In file included from /usr/include/pwd.h:63, from /scratch/RAKU/smoke-rakudo.d/include/libuv/uv/unix.h:37, from /scratch/RAKU/smoke-rakudo.d/include/libuv/uv.h:66, from src/vm/moar/runner/main.c:4:/usr/include/bits/types/FILE.h:7:25: error: conflicting types for 18:55
‘FILE’ typedef struct _IO_FILE FILE; ^~~~
Q: Anyone successfully built whatever's on github now?
timotimo huh. perhaps you can try installing a newer libuv dev package and using --with-libuv or --has-libuv or whatever we called that flag 18:59
lembark # which libuvwhich: no libuv in (/opt/bin:/opt/sbin:/sbin:/usr/sbin:/bin:/usr/bin) 19:04
Odd... looking for libuv.
Grinnz libuv would not be found in path, it's not a binary
lembark * dev-libs/libuv Latest version available: 1.35.0 Latest version installed: 1.35.0 Size of files: 1225 KiB Homepage: github.com/libuv/libuv Description: Cross-platform asychronous I/O License: BSD BSD-2 ISC MIT 19:05
1.35 seems to be the most recent one available on Gentoo.
Sorry, which was a bad choice. Lack of caffeine.
timotimo OK, current moarvm master also has v1.35.0 included in it 19:06
lembark Rebuilding w/o jvm; see if just moar works.
19:06 xinming_ left 19:07 xinming_ joined, MasterDuke joined
lembark Q: Is this significant from ./Configure? 19:13
ERROR: NQP_HOME is invalid: /root/project/rakudo-2020.02.1/install/bin/../share/nqp
Double-checked, NQP_HOME isn't set in the environment building rakduo. 19:14
lizmat patrickb vrurg ^^ 19:19
19:20 sena_kun joined
patrickb lembark: The error message is misleading. It doesn't refer to the environment variable but to the nqp home itself. 19:20
lembark: Does that folder look like a legitimate nqp folder? Is it empty? 19:21
19:22 Altai-man_ left 19:24 lucasb joined
lembark Full output from running Configure + make: pastebin.com/ngtEi3QW 19:25
I'm not running as su to build rakduo, no idea where it would have gotten reference to /root.
19:26 wbn left
lembark I run the installs as myself into /opt/rakudo (stable tag) or /scratch/RAKU/smoke-rakudo.d (nightly smoke test via zef). 19:26
19:26 wbn joined, xinming_ left, aindilis` joined, aindilis left, aindilis` left
lembark Q: Where is the NQP root dir derived? From the prefix (which is being fed as /opt/rakudo). 19:27
19:28 xinming_ joined
lembark Q: Where would these files get configured? 19:30
19:30 stoned75 left
lembark $ find . -type f | xargs grep -l '/root/project/' 2>/dev/null./nqp/Makefile./nqp/nqp-m 19:30
patrickb lembark: Was there an nqp executable preexisting in /opt/rakudo/bin/nqp ? If yes, do you happen to know where tha was from?
lembark Anything in /opt/rakudo was build via "cd rakudo; ./Congure --preifx=/opt/rakudo ... " & make all test install" 19:31
19:32 stoned75 joined
lembark See: pastebin.com/X8XaZy01 19:32
19:33 aindilis joined 19:34 Black_Ribbon joined
lembark Nightly smoke test snags head of master build builds with prefix of /scratch/RAKU/smoke-raku.d; code in opt is highest-numbered tag with prefix = /opt/rakudo; 19:34
Q: How do I reset the /root/* paths (e.g. via config)?
19:35 raschipi left
lembark There should be nothing referencing anything root or su-ish in anything I'm doing in /opt. 19:35
A: There is an nqp 19:36
$ find /opt/rakudo/ -name 'nqp' -type f/opt/rakudo/2020.02.1/bin/nqp
So much for newlines "/opt/rakudo/2020.02.1/bin/nqp" is the path. 19:37
19:38 xinming_ left, xinming_ joined
lembark Fresh clone of rakudo, fails with non-existing /root/project/rakudo-2020.02.1/install/bin/../share/nqp 19:50
19:50 West85 joined, pilne joined 19:51 kensanata left, abraxxa left 19:52 abraxxa joined
patrickb lembark: Can you grep all relevant folders for `/root/project/rakudo-2020.02.1/install` to find out where that path comes from? 19:52
19:52 Metaperl6 joined
lembark There is no directory on the system /root/project. 19:53
Files containing /root/project are: 19:54
################################################################################ Included from /mnt/scratch/RAKU/rakudo/nqp/tools/templates/moar/Makefile.in ################################################################################M_NQP = nqpM_NQP_M = nqp-mM_BUILD_RUNNER = nqp-mM_BUILD_RUNNER_BIN = 19:55
$(BASE_DIR)/$(M_BUILD_RUNNER)M_INST_NQP = inst-nqpM_INST_NQP_M = inst-nqp-mNQP_LIB_DIR_MOAR = $(NQP_LIB_DIR)# It's ok to shell quote this one as it only used in a command lineM_MOAR_INC_PATHS = \ \ -I'/root/project/rakudo-2020.02.1/install/include' \
-I'/root/project/rakudo-2020.02.1/install/include/moar' \ -I'/root/project/rakudo-2020.02.1/install/include/libatomic_ops' \ -I'/root/project/rakudo-2020.02.1/install/include/dyncall' \ -I'/root/project/rakudo-2020.02.1/install/include/moar' \ -I'/root/project/rakudo-2020.02.1/install/include/sha1' \
-I'/root/project/rakudo-2020.02.1/install/include/tinymt' \ -I'/root/project/rakudo-2020.02.1/install/include/libtommath' \ -I'/root/project/rakudo-2020.02.1/install/include/libuv'M_STAGE1_GEN_CAT = $(M_GEN_CAT) stage1M_STAGE2_GEN_CAT = $(M_GEN_CAT) stage2
patrickb lembark: I just grepped though the repo on my side. That path is not part of the repo itself. So it has to have slipped in there somehow on your side.
lembark pastebin.com/aUhVXKMF 19:56
19:56 xinming_ left
lembark (ins)lembark@dizzy rakudo $ set | grep '/root'(ins)lembark@dizzy rakudo $ 19:56
19:56 chloekek left
lembark i.e., there is nothing with the string '/root' in my environment. 19:56
Q: Where is the nqp/Makefile generated?
patrickb nqp/Configure.pl + files in nqp/tools/templates 19:57
19:57 xinming_ joined 19:58 finsternis joined 19:59 Metaperl6 left
patrickb nqp/tools/templates/moar/Makefile.in as @moar::prefix@ in that spot 19:59
lembark: What's the contents of the config.status file in the nqp folder? 20:00
20:01 maggotbrain joined
lembark pastebin.com/QQUpdQHu 20:02
20:03 stoned75 left
lembark Could turn off '--silent-build' if that helps. 20:04
20:05 cognominal joined 20:08 stoned75 joined
lembark Q: Is any of that remarkable? 20:09
20:09 cognomin_ left
patrickb lembark: Can you do a global grep for that path? It has to be in some file on your system. Knowing where it is might help in finding out how it ends up in the build. 20:09
lembark: Do I assume correctly that the build continues as usual and ends up working? If yes, then this is a minor inconvenience. It's still now how it should be though. 20:10
lembark Build fails with lack of "moar.h".
I'll start by grep-ing home & /scratch/RAKU. 20:11
Throw in /etc.
jdv79 what would be a good way to keep a "hyper map" fed? 20:15
lembark pastebin.com/EshFQUgt
jdv79 it appears one can't just keep appending to the original array 20:16
lembark jdv79: lazy gather.
20:16 abraxxa left
lembark pastebin.com/e464x0KQ 20:18
patrickb lembark: None of those files particularly stand out. That's a really interesting problem you have there...
lembark jdv79: @array is assigned from the lazy result of a gather; takes are run as needed to populate the array as it's fed through .map.
20:19 abraxxa joined
lembark i.e., my @stuff = lazy gather loop { ... }; 20:19
@stuff.race( blah blah ).map( { frobnicate $_ } ); 20:20
jdv79 except that loop is the thing finding more values
that wont work
lembark loop has a take in it.
See pastebin.
I'm running a loop over 129GiB of input that way right now. 20:21
is a working example of a lazy gather calling a sub to extract some content that is fed into the .map on demand.
jdv79 i get the idea. thanks. 20:23
lembark it shows up in a .precomp file. That might be a better place to start than grep-ing 1TiB of .iso archives in my photographic backups...
Q: Any idea what this is used for? 20:24
$ clear; find /home/lembark/.zef/store/Backtrace-AsHTML-0.0.1.tar.gz/Backtrace-AsHTML-0.0.1/lib/home/lembark/.zef/store/Backtrace-AsHTML-0.0.1.tar.gz/Backtrace-AsHTML-0.0.1/lib/.precomp/88C68DB709242DDB6220EB476EA54C7A7A1F89AB/B3/B32F3D4673775772D550FA05CBCB6070D6120723
"Backtrace-AsHTML" has the string "/root/project" in it, which may just have come from the nqp install. 20:25
20:32 rindolf left
lembark Output from searching all of raku-land, my home for '/root/project': pastebin.com/0mxNQGTj 20:33
patrickb lembark: Did you empty the /opt/rakudo/2020.02.1 folder prior to starting the build? 20:38
lembark No. Possibly a holdover from Perl5, but I didn't want to blow off all the known modules.
Easy enough to do it however; takes a minute to stop the raku code I have running. 20:39
20:39 stoned75 left, stoned75 joined
lembark Building now... 20:41
Removing the existing /opt/rakudo directory seemed to work. 20:43
20:46 stoned75 left, natrys left 20:48 stoned75 joined, aborazmeh left
lembark At least the process is going a lot further. 20:49
Q: If I do a git checkout master or git checkout $some_tag + git clean -fdx + Configure --prefix=blah && make should I expect that rakudo + moar + nqp are fully rebuilt? 20:51
This matters because I use a single cloned repository for my nightly smoke test and also for installing into /opt/rakudo (i.e., local production copy). 20:52
It may be that I need separate locations to perform a full checkout each time.
make -wk is up to running rakudo tests now.
I don't find the string "/root/project" anywhere in rakudo. 20:53
patrickb lembark: If you checkout rakudo and do not specify --gen-nqp and --gen-moar then rakudo will take what it finds in prefix.
It's possible that it even uses the nqp it finds when using --gen-nqp, not sure though. 20:54
lembark fixed="--prefix=$prefix --gen-nqp --gen-moar";back='moar';( args="--backends=$back $fixed"; echo "Config args: '$fixed'"; cd $(dirname $0)/rakudo; git status;
i.e., it's alwyas run with gen-nqp and gen-moar; I've assumed that ./Configure.pl does the Right Thing w/ respect to git submodule update, which may not be correct. 20:55
jdv79 i don't want to run it cause it blocks
but why does
my $c = Channel.new; $c.send($_) for 1,2; $c.list.hyper(:1batch, :1degree).map: {say $_}
not see the second val?
it just hits on the first and blocks forever 20:56
sans the hyper() it sees both
20:58 raschipi joined
lizmat what if you increase the number of degrees ? 21:00
lembark Hello Liz; hope you are wll.
jdv79 nah
i guess i could build that-ish with gather/take/array/sleep/etc but it'll be messy 21:01
lembark The list may need to be eager in order to process it properly via map.
that or explicitly lazy.
jdv79 the list out of a channel is a seq so its lazy
lembark Hack a lazy loop with take on the channel. 21:02
assign the lazy loop to an array.
Note that the array begins life empty in any case.
jdv79 yeah i guess i could hack around it but i think that example above should work
lembark At that point iterating the array will keep hitting the lazy loop to extract values.
jdv79 according to my probably shifty understanding 21:03
lembark Look back at the pastebin.
jdv79 i know what you're saying
jnthn m: my $c = Channel.new; $c.send($_) for 1,2,3; $c.close; $c.list.hyper(:1batch, :1degree).map: {say $_}
camelia 1
lembark Your sub replaces read-cunk.
jdv79 ah, it needs some prodding
jnthn iirc, the end of the hyper chain controls the overall flow 21:04
lembark The array works because the array really is just an iterative on-demand factory for return values.
lizmat lembark: I'm fine, thank you
jnthn So when we take a batch, that is also the point when we try to produce a new one
lizmat lembark: looks like you're doing fine as well :-)
lembark Surviving.
jnthn So it'll be waiting for some more values to batch; with the .close it'll know there's no more coming. 21:05
jdv79 cool. seems to work better now. 21:10
now just need to know when to call close() - think i can figure it. thanks!
guifa2 arg. I hate writing implementation specific code 21:11
21:11 rbt left
lembark Close or you have to make the process of accepting values lazy so that the next value is looked up on demand. 21:11
guifa2 but vrurg++ for finding the Backtrace difference :-)
21:11 rbt joined
jdv79 its something of a special purpose "api aggregator" so values come in as part of current results... 21:11
its a bit roundabout but think i almost got it = 21:12
rather, new array items may be birthed from processing previous array items
21:13 mowcat left
MasterDuke jnthn: any particular reason $.degree is an `Int` here instead of an `int` (like $.batch)? github.com/rakudo/rakudo/commit/e7...4bad0583R7 21:13
21:14 CandiceSwan joined
El_Che the great raku errors made me cranky about python white space in the stacktraces: twitter.com/nxadm/status/125379414...85091?s=20 21:16
21:17 CandiceSwan left 21:18 patrickb left
jnthn MasterDuke: Can't think of one. I wonder if the distinction was even deliberate, or just a missed hit of the shift key... :) 21:19
21:19 Altai-man_ joined
lembark jdv79: think of this this way, the array assigned a lazy list is really nothing but a single factory entry. each time you access the 'next' element from the array the factory (e.g., lazy loop) is called until there are no values returned. 21:20
Q: Anyone know of a decent way to trace a memory leak in rakudo or moar? 21:21
MasterDuke jnthn: yeah, seemed like an accident
lembark Running a long-ish (120GiB) list through lazy list + map; rssmax keeps growing even though everything I can see gets cleaned up.
MasterDuke lembark: i've used heaptrack, but that works at the moarvm level. or you can try the heap snapshot profiler
21:22 sena_kun left
MasterDuke lembark: btw, if you use heaptrack, i recommend adding `--full_cleanup` to your rakudo command line 21:23
lembark Q: what does '--full-cleanup' do (or try to)? 21:26
MasterDuke it free memory when moar shuts down instead of just letting the os do it. heaptrack sees it as leaks 21:27
raschipi El_Che: Python errors really are annoying, I also had to deal with them today. A full stacktrace to tell me there was a missing command line switch, took way too much time to parse it. 21:29
lembark Sanity check:
@foobar = lazy gather loop { ... take $about_1_mib_of_text }; 21:31
El_Che raschipi: exactly
lembark @foobar.race( ... ).map( { process $_; $_ = Nil } );
Should not leave we with any contents in @foobar. 21:32
I think?
Problem here is that react is way too slow; map with race is several orders faster; but I keep watching the process grow until it starts swapping on a box with 128GiB of core. 21:33
21:37 Xliff joined
Geth ecosystem: 5725a6c88a | thundergnat++ (committed using GitHub Web editor) | META.list
Add String-Rotate to the ecosystem

It's rotate; but for strings instead of arrays. See github.com/thundergnat/String-Rotate
guifa2 So LTM....
is it supposed to be longest by string length, or largest number of tokens matched (so that <longtoken> ** 2 would lose out to <shorttoken> ** 4) ? 21:45
Geth ecosystem: 46654fb508 | thundergnat++ (committed using GitHub Web editor) | META.list
Add Base::Any to the ecosystem

Convert numbers to and from nearly any integer base See github.com/thundergnat/Base-Any
21:49 cpan-raku left 21:51 cpan-raku joined, cpan-raku left, cpan-raku joined 21:55 abraxxa left 22:10 rbt left 22:11 rbt joined
guifa2 fist pumps the air 22:25
use Binex; my $bx = bx '[b...._...1 b...._...0]+ x00'; my $blob = blob8.new(1,4,9,6,3,8,0,3,2); $blob ~~ $bx; say $/.Blob
# Blob[uint8]:0x<01 04 09 06 03 08 00>
22:27 West85 left
jnthn lembark: my @foo = ... is assigning every value into @foo ('cus storage is what an array is for); the lazy only means it is populated on demand, but the data is retained. 22:35
lembark: If you want to build a lazy pipeline, stick it into a sigilless var, e.g. `my \foo = ...` 22:36
Xliff jnthn: Could you please look into github.com/MoarVM/MoarVM/issues/1275 and share your thoughts when you have the time 22:39
lembark Q: How would the statement [email@hidden.address] ... ).map( { frobnicate $_; $_ = Nil } );" ever update @foo? 22:49
@foo used to iterate the contents of $_, but after that the map output is not assigned to anything. 22:50
In any case [badly worded question], $_ = Nil should keep contents of @foo empty.
Q: Why would @foo be growing if the contents of $_ are Nil-ified at use? 22:51
22:59 xinming_ left
jnthn An array full of Nils still takes up space for element 22:59
*per element
23:00 xinming_ joined
lembark Sanity check: Nill != (). Q: Is there any equivalent to 'pushing nothing' a'la map { () } in Perl5? 23:02
guifa2 yes. Empty 23:03
jnthn Yes, but you're not actually pushing to the array
guifa2 m: my @a = 1,2,3; @a.push: Empty; say @a; 23:04
camelia [1 2 3]
jnthn The problem is that you have an array in the first place
lembark The non-sigil is effectively a constant?
jnthn array = storage; if you don't want stuff to hang around in memory, don't funnel it via an array
lembark: Yes
Well, not quite a constant
It's just an alias
lembark Reference to anonymous? 23:05
jnthn It doesn't imply any kind of context
lembark the anon factory returned by lazy.
jnthn One of the commonly understood things is that `my @foo = <stuff>` is just making @foo reference <stuff>, but it's not. It's allocating an array and then iterating stuff in order to populate it. `lazy` only defers that population until the first time an element is accessed. 23:06
Yes; gather returns a Seq, which is something that can be iterated; my \foo = lazy gather { ... } just stores the iterable thing.
lembark Thank you. 23:08
Which leaves me with syntax \foo = lazy ... ; foo.race(...).map: { ... } ; I think? 23:09
Or is it \foo.race...?
jnthn No, you only put the \ when declaring 23:11
It's because `my foo` would think foo is a typename
23:13 aborazmeh joined, aborazmeh left, aborazmeh joined
lembark chunked-input .race( degree => THREADS, batch => 1 ) .map( { sink process-chunk $_; Empty } ) ; 23:17
with \chunked-input = lazy ... ;
jnthn You don't need the Empty really 23:18
lembark Grasping at straws with the growth.
Finally got rakudo re-installed and modules rebuilt... using the \chunked-input = lazy part didn't change the rate of memory growth. 23:19
At least not appreciably -- apparently storing Nil's doesn't use much space. 23:20
23:20 sena_kun joined
lembark Does improve the speed, however, thank you. 23:20
23:21 Altai-man_ left
guifa2 weekly: github.com/alabamenhu/BinexObjex 23:22
notable6 guifa2, Noted! (weekly)
guifa2 Still needs captures to really be useful, but hey, gotta start somewhere
lembark Neat idea. 23:32
23:33 molaf joined 23:48 Xliff left 23:53 xinming_ left 23:54 xinming_ joined