Some folder locations in macOS are not accessible by traversing one level at a time from outside or above that location.
In general, it can be convenient to open a terminal window at a specific folder location.
The folder may be opened directly by right-clicking on the folder in Finder and selecting “New Terminal at Folder”.
By default, listing the contents of a directory with
PowerShell
shows file metadata along with the path names within the directory.
Other shells typically show only the path names by default, which is convenient for copy-pasting lists of files or directories into other commands or scripts.
To list only the path names when listing a directory in PowerShell, use the -Name option:
OpenMP
and
OpenACC
are open standards for parallel programming on CPU and GPU shared memory platforms.
While OpenMP has wider compiler support,
OpenACC
also aims to be portable across compilers and computing architectures.
OpenMP standard syntax for C, C++, Fortran, and
CUDA
can work seamlessly with non-OpenMP systems if code is properly written.
While OpenMP is typically built in from the factory in contemporary compilers, the compilers may need flag(s) to enable OpenMP.
Build systems like
CMake
and
Meson
can manage the OpenMP compiler flags.
OpenMP is well-supported in commercial computation performance-oriented Fortran compilers like:
OpenMP support in open-source Fortran compilers includes
LLVM
and
GCC.
Open-source compilers such as LLVM Flang need to have the proper OpenMP-enabling flags set when building the compiler by the distribution maintainers.
For example,
Homebrew LLVM Flang
was missing Fortran libomp.mod support due to misconfiguration in the Homebrew
flang formula.
“git clone” clones the default branch of the remote repository as determined by the Git server.
The default Git branch is typically “main”, but the repository owner can change it to any other branch.
To Git clone a specific branch, use the –branch option:
git clone --branch <branch-name> <repository-url>
This can help workaround problems like a default branch that is very large or is broken in some way.
Symbolic links are useful in any operating system to shorten long, complicated path names like C:/user/foo/data to just C:/data.
If encountering problems with user permission,
set user permission
to create symbolic links on Windows.
The reparse tag value 0x8000001b is a Windows App Execution Alias IO_REPARSE_TAG_APPEXECLINK.
App Execution Aliases are not symbolic links, but are a way for Windows
CreateProcess
to find the correct executable to run from a user-friendly name like “wt.exe” or “bash.exe”.
Not every language works with App Execution Aliases at this time–Java io and nio don’t work with App Execution Aliases currently.
Python does work with App Execution Aliases, for example:
The
Windows error code lookup tool
is a useful resource for finding error codes and messages to incorporate into code that needs to handle Windows return codes.
The tool allow searching by code or exact message match.
Unit test frameworks should be lightweight to setup and maintain.
End users should be able to easily run the unit and integration tests themselves as part of a typical end-user install.
The simplest approach is to write several small test programs and execute them using CMake or Meson.
This method can also be an appropriate choice where the program uses complex library interactions that may not mix well with a generic test framework.
The
Veggies
Fortran test framework is an example of a Fortran unit testing framework.
Check the
Fortran-lang
group for a contemporary discussion on Fortran test frameworks.
The
setup-wsl GitHub Action
can setup a WSLv1 or WSLv2 environment in Windows GitHub Actions runners.
This allows testing certain quirks and corner cases one might encounter when running software on Windows Subsystem for Linux.
Matlab cross-platform capabilities involve cross-platform factors dealing with filesystem and system calls.
The standard library for Matlab
matlab-stdlib
provides several features on top of factory Matlab.
Filesystem functions including
canonicalized paths,
finding executable programs,
and retrieving
filesystem type
are among key capabilities of Matlab-stdlib.
Matlab R2025a makes public the internal functionality introduced in Matlab R2024b.
The
filePermissions
function returns an object like
matlab.io.UnixPermissions
according to the operating platform.
As this functionality and classes are officially released, Matlab-stdlib is planned to incorporate them for new-enough Matlab releases, while continuing to work for older Matlab releases–currently back to R2019b.