In module.c in Julia sources I see "jl_set_current_module()" function. Is
it somehow exposed to Julia API?

To give you some context, in Common Lisp (as well as some other dialects)
there are 2 separate macros for dealing with packages (analogue of modules
in Julia):

 defpackage - defines new package and switches to it
 in-package - simply switches to specified package

One great feature that these macros bring is ability to easily switch
context of execution. E.g. in REPL (code simplified):

 ;; initially working from cl-user package
 cl-user> (defpackage foo (:use :common-lisp)) ;; automatically switched to
new package
 foo> (defvar x 1)
 X
 foo> x
 1
 foo> (in-package :cl-user)
 foo> x
 ;; error: x not defined in :cl-user

This is extremely helpful for both - package extension and
debugging/interactive development. E.g. we can switch to a module in
question and get all internal variables visible, play around in that
context and go back to main package without stopping REPL.

So I'm wondering if something like this is possible in Julia at all.

Reply via email to