diff --git a/mathics/builtin/directories/user_directories.py b/mathics/builtin/directories/user_directories.py
index ea5e66a60..eac3f828e 100644
--- a/mathics/builtin/directories/user_directories.py
+++ b/mathics/builtin/directories/user_directories.py
@@ -13,7 +13,7 @@
class Path(Predefined):
- """
+ r"""
:WMA link:https://reference.wolfram.com/language/ref/Path.html
@@ -23,6 +23,13 @@ class Path(Predefined):
>> $Path
= ...
+
+ '\$Path' used consulted in builtin functions
+ :\$Get:
+ /doc/reference-of-built-in-symbols/inputoutput-files-and-filesystem/file-and-stream-operations/get/, \
+ and
+ :Needs:
+ /doc/reference-of-built-in-symbols/inputoutput-files-and-filesystem/filesystem-operations/needs/ to resolve filenames, and to resolve contexts to file names.
"""
attributes = A_NO_ATTRIBUTES
diff --git a/mathics/builtin/files_io/files.py b/mathics/builtin/files_io/files.py
index c66ddf908..c7f2cccb9 100644
--- a/mathics/builtin/files_io/files.py
+++ b/mathics/builtin/files_io/files.py
@@ -375,9 +375,28 @@ class Get(PrefixOperator):
= Cos[x] + I Sin[x]
S> DeleteFile[filename]
+ If the 'Path' is not fully qualified built-in variable
+ :\$Path:
+ /doc/reference-of-built-in-symbols/directories-and-directory-operations/user-file-directories/$path/ is consulted.
+
+ 'Get' can also load packages:
+ >> $ContextPath
+ = ...
+ S> << "VectorAnalysis`"
+ = ...
+
+ If a package is loaded variable
+ :\$ContextPath:
+ /doc/reference-of-built-in-symbols/scoping-constructs/$contextpath/ is updated with the new package context name:
+ >> $ContextPath
+ = ...
+
+ See also
+ :Needs:
+ /doc/reference-of-built-in-symbols/inputoutput-files-and-filesystem/filesystem-operations/needs/.
+
+
## TODO: Requires EndPackage implemented
- ## 'Get' can also load packages:
- ## >> << "VectorAnalysis`"
"""
eval_error = Builtin.generic_argument_error
diff --git a/mathics/builtin/files_io/filesystem.py b/mathics/builtin/files_io/filesystem.py
index 9f910eb53..00cd94b70 100644
--- a/mathics/builtin/files_io/filesystem.py
+++ b/mathics/builtin/files_io/filesystem.py
@@ -834,6 +834,21 @@ class Needs(Builtin):
>> Needs["VectorAnalysis`"]
+
+ In contrast to
+ :Get:
+ /doc/reference-of-built-in-symbols/inputoutput-files-and-filesystem/file-and-stream-operations/get/, \
+ 'Needs' only loads a package if it has not already been loaded.
+
+ Like 'Get',
+ :\$ContextPath:
+ /doc/reference-of-built-in-symbols/scoping-constructs/$contextpath/ is updated \
+ when a new package context is added.
+
+ Builtin variable
+ :\$Path:
+ /doc/reference-of-built-in-symbols/directories-and-directory-operations/user-file-directories/$path/ is used resolve the context to a file name.
+
"""
messages = {
diff --git a/mathics/builtin/scoping.py b/mathics/builtin/scoping.py
index 7bc37e242..0cdf4fd64 100644
--- a/mathics/builtin/scoping.py
+++ b/mathics/builtin/scoping.py
@@ -316,6 +316,17 @@ class ContextPath_(Predefined):
## #> System`$ContextPath
## = {x`}
## #> $ContextPath = {"System`", "Global`"};
+
+ Functions
+ :Needs:
+ /doc/reference-of-built-in-symbols/inputoutput-files-and-filesystem/filesystem-operations/needs/ and
+ :Get:
+ /doc/reference-of-built-in-symbols/inputoutput-files-and-filesystem/file-and-stream-operations/get/, \
+ add to '\$ContextPath' when a new context is added.
+
+ See also Builtin variable
+ :\$Path:
+ /doc/reference-of-built-in-symbols/directories-and-directory-operations/user-file-directories/$path/.
"""
messages = {"cxlist": "`1` is not a list of valid context names ending in `."}