Skip to content

Commit dc764eb

Browse files
committed
more specific parameters for Agents
1 parent 448257a commit dc764eb

File tree

1 file changed

+19
-8
lines changed

1 file changed

+19
-8
lines changed

AGENTS.md

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,31 @@
33
## Project Overview
44

55
This is a standard library project for Matlab, designed to provide a collection of commonly used functions and utilities to enhance productivity and streamline development in Matlab.
6+
The project has a strong emphasis on cross-platform compatibility, performance, and ease of use.
67
The namespace of the project is "stdlib" as indicated by all the project functions being under directory "+stdlib/"
78

8-
A primary purpose of this project is to use the external language interfaces provided by Matlab to call functions written in other scripting languages IF the language interface is enabled on the specific computer where Matlab is running.
9-
The specific languages supported are Python (namespace stdlib.python under +stdlib/+python/), Java (namespace stdlib.java under +stdlib/+java/), Perl (namespace stdlib.perl under +stdlib/+perl/), .NET (namespace stdlib.dotnet under +stdlib/+dotnet/).
10-
Not every language interface may be available on every system, and the availability of specific language interfaces may depend on the installation and configuration of the Matlab environment.
11-
To detect if a specific language interface is available, we provide functions stdlib.has_python(), stdlib.has_java(), stdlib.has_perl(), stdlib.has_dotnet(), which return logical true or false. These stdlib.has_*() functions are intended to run very quickly, caching the result using Matlab "persistent" variables as needed to make them efficient to call multiple times.
9+
This project is free to use the external language interfaces provided by Matlab to call functions written in other scripting languages IF the language interface is enabled on the specific computer where Matlab is running.
10+
We do not use user-compiled MEX files or require any Matlab toolboxes, only base Matlab functionality.
11+
The specific external languages supported (if available on the user system) are
12+
13+
* Python: namespace stdlib.python under +stdlib/+python/, availability check stdlib.has_python()
14+
* Java: namespace stdlib.java under +stdlib/+java/, availability check stdlib.has_java()
15+
* Perl: namespace stdlib.perl under +stdlib/+perl/, availability check stdlib.has_perl()
16+
* .NET: namespace stdlib.dotnet under +stdlib/+dotnet/, availability check stdlib.has_dotnet()
17+
18+
There are a few other namespaces that are not external language interfaces:
1219

13-
There is a namespace stdlib.sys defined under +stdlib/+sys/ that provided system() calls using the system shell as a last-restort fallback if no external language interface is available on the end user computer running Matlab.
14-
The namespace stdlib.native and stdlib.legacy use plain Matlab code, and allow switching between "modern" and "legacy" implementations of functions as needed.
20+
* stdlib.sys under +stdlib/+sys/ uses system() calls to the system shell as a last-resort fallback. The speed of these calls is generally much slower than the other language interfaces.
21+
* stdlib.native under +stdlib/+native/ uses plain Matlab code to implement functions.
22+
* stdlib.legacy under +stdlib/+legacy/ uses plain Matlab code to implement functions for older Matlab versions that don't have the specific stdlib.native implementation for that function.
23+
24+
Not every language interface may be available on every system, and the availability of specific language interfaces may depend on the installation and configuration of the Matlab environment.
25+
These stdlib.has_*() functions are intended to run very quickly, caching the result using Matlab "persistent" variables as needed to make them efficient to call multiple times.
1526

1627
The self-test functions under "test/" directory can be used by Matlab >= R2017a as invoked by "test_main.m" at the top level of the project directory.
17-
Matlab >= R2022b can alternatively use "buildtool test" to run the self-tests.
28+
Matlab >= R2022b should use "buildtool test" to run the self-tests.
1829

19-
Key limitations to minimum Matlab version include:
30+
Key limitations driving minimum Matlab version include:
2031

2132
* R2017b: builtin isfolder(), isfile() available
2233
* R2017b: fileparts() supports string type. fileparts() is used in many places in the code as it's 5-10x faster than regexp() for filename parsing.

0 commit comments

Comments
 (0)