Thank you for the report. The issues in this ticket have been resolved:
- "tmpdir doesn't appear to change directories"
- &tmpdir has been removed
- "Should I be able to change the temporary directory"
- Yes, by assigning to $*TMPDIR directly; simply do `my $*TMPDIR =
'foo/bar'.IO`.
The issue that blocked assignment was fixed[^1] and tested[^2] in 2017.04
release
- "Can only use 'temp' on a container"
- This too was fixed[^1] and tested[^2] in 2017.04 release
Side note:
- "What's the point of it being dynamic if it can't change?"
- There's no connection between dynamics and the ability to change
them. Their point is scoping and not mutability; a change done to a dynamic
var in some sub would still be visible up the call stack, which is why
you'd usually use a `temp` or `my` on these global dynamic variables,
like $*TMPDIR, to prevent your changes affecting other stuff. We do
have immutable (or rather, containerless) dynamics (e.g. $*THREAD)
and being unable to assign to them isn't a bug.
[1] https://github.com/rakudo/rakudo/commit/b62d1a7
[2] https://github.com/perl6/roast/commit/1d4e881
-- IO grant