|
1 | 1 | =begin pod :kind("Language") :subkind("Language") :category("tutorial")
|
2 | 2 |
|
3 |
| -=TITLE Compilation |
| 3 | +=TITLE CompUnits and where to find them |
4 | 4 |
|
5 | 5 | =SUBTITLE How and when Raku modules are compiled, where they are stored, and how to access them in compiled form.
|
6 | 6 |
|
@@ -193,10 +193,14 @@ Such a filter is given by way of a C<CompUnit::DependencySpecification> object w
|
193 | 193 |
|
194 | 194 | When looking through candidates, the Installation repository will smart match a module's long name against this
|
195 | 195 | DependencySpecification or rather the individual fields against the individual matchers.
|
196 |
| -Thus a matcher may be some concrete value, a version range or even a regex. |
| 196 | +Thus a matcher may be some concrete value, a version range or even a regex (though an arbitrary regex, such as C<.*>, |
| 197 | +would not produce a useful result, but something like C<3.20.1+> will only find candidates higher than 3.20.1). |
| 198 | +
|
| 199 | +Loading the meta data of all installed distributions would be prohibitively slow. The current immplementation of |
| 200 | +the C<Raku> framework uses |
| 201 | +the file system as a kind of database. However, another implementation may use another strategy. The following description |
| 202 | +shows how one implementation works and is included here to illustrate what is happening. |
197 | 203 |
|
198 |
| -Loading the meta data of all installed distributions would be prohibitively slow. |
199 |
| -Instead, we use the file system as a kind of database. |
200 | 204 | We store not only a distribution's files but also create indices for speeding up lookups.
|
201 | 205 | One of these indices comes in the form of directories named after the short-name of installed modules.
|
202 | 206 | However most of the file systems in common use today cannot handle Unicode names, so we cannot just use
|
|
0 commit comments