This channel is intended for people just starting with the Raku Programming Language (raku.org). Logs are available at irclogs.raku.org/raku-beginner/live.html
Set by lizmat on 8 June 2022.
00:31 topnep left, topnep joined 02:35 topnep left 02:36 topnep joined 10:57 topnep left 10:59 topnep joined 13:36 topnep_ joined
ab5tract tio.run does seem to be responsive to PRs though 13:37
13:38 topnep left 14:51 habere-et-disper joined 15:40 topnep_ left 15:41 topnep joined 16:01 habere-et-disper left 16:39 habere-et-disper joined 17:45 topnep left 17:49 topnep joined 18:14 habere-et-disper left 19:02 sivoais left 19:04 sivoais joined 19:19 Lembark joined
Lembark How do I configure zef to stop polluting my home dir's during install?  github.com/ugexe/zef shows '--install-to' and DefaultCUQ, but I don't see any way to have the installation >abort< if the --install-to is not writable when it's in auto mode. 19:27
Ideally it'd all be configured to use /tmp/zef/whatever for staging via TempDir & StoreDir, but I don't see a workaround for not defaulting to ~/.zef (other than my current had of 'ln -fsv non-existant ~.zef' for each user).
Thanks
lizmat for clarity: zef doesn't actually do any installing: it calls the logic of the appropriate CompUnit:: modules in core 19:35
so any change would most likely need to be done there
docs.raku.org/programs/03-environm...ompilation looks like RAKUDO_PREFIX might be what you need? ugexe ? 19:37
Lembark ./resources/config.json
$*TMPDIR
This is an IO::Path object representing the "system temporary directory" as determined by .tmpdir IO::Spec::* method.
{
    "ConfigVersion" : "1",
    "StoreDir" : "$*HOME/.zef/store",
    "TempDir"  : "$*TMPDIR/.zef.{time}.{$*PID}",
I can see how to replace $*HOME with $*TMPDIR; I can see that $*TMPDIR is "n IO::Path object representing the "system temporary directory" as determined by .tmpdir IO::Spec::* method," but docs.raku.org/type/IO::Spec gives me nothing on how I would >SET< the tmpdir.
RAKUDO_PREFIX is the installation directory, I think?
lizmat ah, maybe I misunderstood the question
Lembark What is the RAKU/zef equivalent of PERL_CPANM_HOME? 19:38
i.e., a prefix for the root of all storage used for material snagged from the cloud and during processing for installation of modules into RAKDUO_PREFIX? 19:39
lizmat ~/.zef/store I believe ?
Lembark The whole point of this is keeping the garbage OUT of home dirs and moving it into a common (managed) space, likely in /var/tmp.
e.g., export PERL_CPAN_HOME=/tmp/CPANM; 19:40
lizmat perhaps ZEF_CONFIG_STOREDIR ? 19:41
look at ENV OPTIONS with zef --help 19:42
Lembark If $*TMPDIR is (mixing a few metaphores here) equivalent to $ENV{ TMPDIR } then I can "export TMPDIR=/tmp/zef" and then hack the json to use $*TMPDIR/store and $*TMPDIR/{$*PID} or something similar.
lizmat TIL
Lembark I'm trying to INSTALL zef :-)
lizmat raku -I. bin/zef install . 19:43
in the zef source dir
you use zef to install zef 19:44
Lembark Which will puke given that my ~/.zef is a symlink to nowhere in order to avoid zef polluting the home dir with side-effects of installing. 19:45
Sanity check:
export ZEF_CONFIG_STORE_DIR=/tmp/zef/store ZEF_CONFIG_TEMPDIR=/tmp/zef/tmp;
would isolate any content written as part of the install using zef to /tmp/zef?
i.e., there isn't a third env var somewhere?
Q: is $*TMPDIR defaulted from the environment's TMPDIR (or which module defines it, since that would allow me to just replace $*HOME with $*TMPDIR in the JSON config and be done with it. 19:46
lizmat depends on the OS 19:47
Lembark *NIX
Setting this all on windog requires playing with the home device, etc, anyway.
lizmat method tmpdir { 19:48
for %*ENV<TMPDIR>, '/tmp' {
so, TMPDIR env
and if not set, assume '/tmp'
and if /tmp doesn't exist, assume current dir
github.com/rakudo/rakudo/blob/main...od#L85-L94 19:49
Lembark Which would, I think, allow for: 19:51
    "StoreDir" : "/var/lib/zef/store",
    "TempDir"  : "/tmp/.zef/{$*PID}.{time}"
or
  "TempDir" : "/run/user/{$*PID}/{time}"
to isolate any stored content to a common /var/lib/zef/store and put an in-work extract/compile artifacts into /tmp or /run/user/$$ (bashspeak).
lizmat I guess 19:52
afk& 20:01
20:05 Lembark left 20:17 habere-et-disper joined 21:44 habere-et-disper left 22:42 habere-et-disper joined 23:20 habere-et-disper left 23:26 habere-et-disper joined 23:34 habere-et-disper left