@@ -37,8 +37,8 @@ import ReleaseSchedule from './_release-schedule.mdx'
3737
3838## Overview
3939
40- ** xPack GCC** is a standalone
41- cross-platform (Windows, macOS, GNU/Linux) binary
40+ ** xPack GCC** is a
41+ standalone, cross-platform (Windows, macOS, GNU/Linux) binary
4242distribution of GCC,
4343aimed at reproducible builds.
4444
@@ -48,7 +48,7 @@ aimed at reproducible builds.
4848To be ** reproducible** , an operation must remain stable over time and
4949across different environments. In other words, if builds are repeated
5050after some time, possibly on a different machine or platform, the
51- resulting behavior must be functionally equivalent.
51+ resulting behaviour must be functionally equivalent.
5252
5353</details >
5454
@@ -65,7 +65,7 @@ this project also includes the
6565
6666<UpgradeNotice />
6767
68- ## What are xpm packages? (xPacks)
68+ ## What are xpm packages? (xPacks) { # xpm - packages }
6969
7070** xpm packages** , abbreviated as ** xPacks** , are versatile,
7171language-neutral software packages. They have been successfully
@@ -74,16 +74,16 @@ utilised in C/C++ projects.
7474<details >
7575<summary >What the heck are xpm packages / xPacks? Please, do not introduce another package format!</summary >
7676
77- While the initial appearance may seem complex, utilizing
77+ Although the initial appearance may seem complex, utilising
7878xpm packages is, in fact, straightforward.
7979The design rationale is to automate frequent
80- operations that occur during software development, in this case the
80+ operations that occur during software development, such as the
8181installation of
8282dependencies, and to ensure reproducibility.
8383
8484These packages are managed by ** [ xpm] ( https://xpack.github.io/xpm/ ) **
8585(the xPack Project Manager),
86- a program that complements the ** [ npm] ( https://docs.npmjs.com/cli/ ) ** CLI
86+ a programme that complements the ** [ npm] ( https://docs.npmjs.com/cli/ ) ** CLI
8787(the popular JavaScript package manager), with new language-neutral features.
8888
8989The xPacks Framework ** does NOT introduce a new package format** ; instead,
@@ -98,34 +98,40 @@ are extracted into separate folders within the project.
9898
9999Based on the content, there are two types of xpm packages:
100100
101- - ** source packages** (that install source files, usually libraries) and
102- - ** binary packages** (that install executables/binary files, usually tools).
101+ - packages with source libraries (** source** xpm packages)
102+ - packages with executables, usually platform-specific binary
103+ tools (** binary** xpm packages)
103104
104- Binary packages include references to archives with the platform specific
105- binaries (such as ` .tar.gz ` for Unix or ` .zip ` for Windows).
105+ ** Source xpm packages** are regular npm packages that include ** library
106+ source files** , typically in ** C/C++** , though there are no language
107+ restrictions.
106108
107- These archives are also expanded along the package metadata. Since they
108- include executables, links/forwarders to
109+ ** Binary xpm packages** are also regular npm packages, but with minimal
110+ content, typically just the ` package.json ` file. Since these packages
111+ provide executables for multiple platforms, some of which are quite
112+ large, it is not practical to include all binaries within the npm
113+ package itself. Instead, the ` package.json ` file contains references
114+ (URLs) to platform-specific binary archives (e.g., ` .tar.gz ` for Unix or
115+ ` .zip ` for Windows).
116+
117+ These archives are also expanded along with the package metadata.
118+ Links/forwarders to
109119these executables are created in a ` .bin ` folder,
110120eliminating the need to add multiple folders to the ` PATH ` .
111121
112- Given that some binary packages, such as toolchains, can have very large
113- archives, the packages are extracted only once into a user global location to
114- conserve space. In projects, instead of duplicating the content of these
115- archives, symbolic links are created.
116-
117- Simply put, xpm packages can be used to further automate the
118- installation of source libraries and tools.
122+ In summary, xpm packages can enhance and automate the installation
123+ process for source libraries and tools.
119124
120125</details >
121126
122127## Features
123128
124129All binaries are:
125130
126- - ** self-contained** (include all required libraries)
127- - ** file-system relocatable** (can be installed in any location)
128- - built on slightly older systems (to make them run on both old and new systems)
131+ - ** Self-contained** (include all required libraries).
132+ - ** File-system relocatable** (can be installed in any location).
133+ - Built on slightly older systems (to ensure compatibility with both
134+ old and new systems).
129135
130136<details >
131137<summary >Compatibility with older systems</summary >
@@ -154,17 +160,17 @@ location, including in user folders.
154160
155161The main advantages of using the ** xPack GCC** are:
156162
157- - a convenient, uniform and portable install/uninstall/upgrade
163+ - A convenient, uniform and portable install/uninstall/upgrade
158164procedure; the same procedure is used for all major
159- platforms (** x64 Windows** , ** x64 macOS** , ** arm64 macOS** , ** x64 GNU/Linux** , ** arm64 GNU/Linux** , ** arm GNU/Linux** )
160- - multiple versions of the same package can be installed at the same time on
161- the same system
162- - no need to worry about dependent libraries, they are all included
163- - not affected by system updates that
164- might change the versions of the dependent libraries
165- - significantly lighter and easier to use than Docker images that provide
166- similar functionality and are GNU/Linux centric
167- - projects can be tied to specific tools versions; this provides a good
165+ platforms (** x64 Windows** , ** x64 macOS** , ** arm64 macOS** , ** x64 GNU/Linux** , ** arm64 GNU/Linux** , ** arm GNU/Linux** ).
166+ - Multiple versions of the same package can be installed at the same time on
167+ the same system.
168+ - No need to worry about dependent libraries, they are all included.
169+ - Not affected by system updates that
170+ might change the versions of the dependent libraries.
171+ - Significantly lighter and easier to use than Docker images that provide
172+ similar functionality and are GNU/Linux centric.
173+ - Projects can be tied to specific tools versions; this provides a good
168174 reproducibility, especially useful in ** CI/CD** environments.
169175
170176<OtherBenefits />
0 commit comments