I mean, yes... the program runs at runtime. Anything available to the program is "available during runtime". Yes, you can look up the content at runtime - e.g from the place where it's installed. It is NOT advised to try and change the content that you can look up with %?RESOURCES - you aren't even supposed to know where it is; but as static data, you can always access it during runtime.

Regardless, what Brad Gilbert says seems to be consistent with what I can recall from a couple of months ago: it is only set in *modules* of a distribution. It can be set even if the module isn't precompiled but either way - it's not set in a mere raku script, even if it is located under the root folder of a distribution.

On 2023. 04. 19. 21:54, yary wrote:
https://docs.raku.org/language/variables says

    |%?RESOURCES|is a compile-time variable available to the code of
    aDistribution <https://docs.raku.org/type/Distribution.html>.

    It contains a hash that provides compile and runtime access to
    files associated with the Distribution of the current compilation
    unit.


 The intent of that reads as - the value is set during compilation, and is available during runtime. Seems like either the doc is wrong, or the implementation is incomplete. I'm hoping that the doc is right, because it's useful to be able to read %?RESOURCES during runtime, and in general useful to set a variable once during compile, then read it forever at runtime.

-y


On Wed, Apr 19, 2023 at 3:00 PM Brad Gilbert <b2gi...@gmail.com> wrote:

    Unless things have changed since I was last active, only modules
    are precompiled. `?` Twigilled variables are set at compile time.
    So if it had any values, they wouldn't be useful, because they
    would be created anew every time.

    On Mon, Apr 17, 2023, 11:48 AM David Santiago <deman...@gmail.com>
    wrote:


        Hi Polgár

        A seg, 17-04-2023 às 18:08 +0200, Polgár Márton escreveu:
        > I think this is the classic case of ?-twigilled, "compile-time"
        > variables only being available in modules. It kind of forces
        you to
        > always have the pattern of: heavy-lifting in a module inside
        lib, and
        > the script just uses the module.
        >



        yes, that was the case. It works inside a module. I guess i
        have to
        think differently on how to organize the code.

        Thanks and best regards,
        David Santiago

Reply via email to