Skip to content

Latest commit

 

History

History
60 lines (33 loc) · 3.26 KB

CuisDirectoryStructure.md

File metadata and controls

60 lines (33 loc) · 3.26 KB

Directory Structure of Cuis Smalltalk

Goals

The directory structure of the Cuis release is designed to fulfill several goals:

  • Make it easy for newcomers and casual users to download a single file and run Cuis.
  • Make it also a Git repository, to make it easy to get new updates, and to enable collaboration.
  • Make it easy for advanced users to create custom setups to fulfill specific needs or workflows.
  • By default, keep the local Cuis repo free of user files so it doesn't get dirty without a reason.
  • Avoid repeated files and unneded complexity.

Description

The Cuis Repo includes a 64 bit Cuis image, a small selection of optional packages, and a Virtual Machine to let it run on the main PC platforms (Windows and Linux on 64 bit Intel, MacOS on ARM and Intel). It also includes a selection of freely distributable TrueType fonts, any critical fixes created after the original release, and a few additional support files.

It can easily be downloaded from the Download ZIP option automatically generated by GitHub. There is only one file to download, and the system is multiplatform.

The Git repo can also be cloned locally, to make it easy to pull updates.

Advanced users may run Cuis on other platforms. For this, in addition to the main 64 bit image, we provide 32 bit images in Spur and V3 format. Additional precompiled VMs are provided by https://opensmalltalk.org/ . The source code to build your own is also available.

Directories used by Cuis

There are several directories used by Cuis itself:

DirectoryEntry cuisBaseDirectory

This is the base directory for all the files in the Cuis distribution. It is the same as the Git repository. For a Stable Cuis Release it is something like:

Your/Path/To/Project/Cuis-6-2

For the Rolling Release of Cuis it is something like:

Your/Path/To/Project/Cuis-Smalltalk-Dev

DirectoryEntry projectBaseDirectory

This is the base folder for your project using Cuis. It is used to search for code packages when you do Feature require: 'StuffMeNeeds'. It is the parent directory of #cuisBaseDirectory.

DirectoryEntry userBaseDirectory

This is an auto-generated folder. It is used to store user files, like fileOuts, logs, preferences and newly created packages. It is a sibling folder of #cuisBaseDirectory, and it is named like it but including the suffix '-UserFiles'.

To provide flexibility to developers, this directory can be set using command line options:

-ud userDirectoryRelativeOrAbsolutePath This lets you specify an absolute or relative path. If a relative path is passed as argument, it is applied to #currentDirectory.

-udIsBase This makes the #userBaseDirectory be the same as the #cuisBaseDirectory.

DirectoryEntry currentDirectory

This directory is the host platform current directory, if the concept is applicable. Otherwise, it is the same as #projectBaseDirectory. It is used as the base directory for relative (i.e. not absolute) file paths.

DirectoryEntry smalltalkImageDirectory

The directory where the running image is. Used for the few files that are stored together with it.

DirectoryEntry vmDirectory

The directory of the VM that is running Cuis. Not used by Cuis itself.