JanetDocsSourcePlaygroundI'm feeling luckyCommunityGitHub sign in
# From the REPL, always nil repl> (dyn *current-file*) nil # As an expression to the CLI, always nil $ janet -e '(pp (dyn *current-file*))' nil # Given the file /tmp/janet/test.janet with the following contents: (pp (dyn *current-file*)) # Note how the value reflects the given file path ~ $ janet /tmp/janet/test.janet "/tmp/janet/test.janet" /tmp/janet $ janet ./test.janet "./test.janet" /tmp/janet $ janet test.janet "test.janet" /tmp/janet $ janet ../janet/test.janet "../janet/test.janet" # The following are equivalent - the first is preferred. # The key insight is that dynamic bindings are just keyword/value # pairs in the current fiber's environment table. (dyn *current-file*) (dyn :current-file) ((curenv) *current-file*) ((curenv) :current-file)