# Output a map-like value describing the current source being evaluated. The value # contains the following fields: # # - `name`, a unique name of the current source. If the source originates from a # file, it is the full path of the file. # # - `code`, the full body of the current source. # # - `is-file`, whether the source originates from a file. # # Examples: # # ```elvish-transcript # ~> put (src)[name code is-file] # ▶ '[tty]' # ▶ 'put (src)[name code is-file]' # ▶ $false # ~> echo 'put (src)[name code is-file]' > show-src.elv # ~> elvish show-src.elv # ▶ /home/elf/show-src.elv # ▶ "put (src)[name code is-file]\n" # ▶ $true # ``` # # Note: this builtin always returns information of the source of the function # calling `src`. Consider the following example: # # ```elvish-transcript # ~> echo 'fn show { put (src)[name] }' > ~/.elvish/lib/src-fsutil.elv # ~> use src-util # ~> src-util:show # ▶ /home/elf/.elvish/lib/src-fsutil.elv # ``` fn src { } # Force the Go garbage collector to run. # # This is only useful for debug purposes. #doc:show-unstable fn -gc { } # Print a stack trace. # # This is only useful for debug purposes. #doc:show-unstable fn -stack { } # Direct internal debug logs to the named file. # # This is only useful for debug purposes. #doc:show-unstable fn -log {|filename| }