@@ -540,8 +540,8 @@ of software without legal or technical barriers. This flexibility is vital for
540
540
verifying and replicating studies, as researchers can adapt the software for
541
541
their specific needs without restrictions, though some licences may impose
542
542
certain conditions. Additionally, open-source development tools provide
543
- excellent record-keeping capabilities, like version control systems (e.g.,
544
- `git` , Mercurial, Pijul) , enabling researchers to track changes and understand
543
+ excellent record-keeping capabilities, like version control systems # eg [
544
+ `git` , Mercurial, Pijul] , enabling researchers to track changes and understand
545
545
the context of each update. This aspect is essential for reproducing and
546
546
validating research findings.
547
547
@@ -620,7 +620,7 @@ execution, a data analysis, a data transformation.
620
620
- When evaluating a function, method, or procedure in any programming language,
621
621
the input consists of the function itself along with its parameters. The
622
622
output is the result of the function applied to these parameters, including
623
- any potential side effects (e.g., changes in the program's state) .
623
+ any potential side effects # eg [ changes in the program's state] .
624
624
625
625
# definition (term : " Computation" , name : " def-computation" )[
626
626
A computation $ c$ is a set of one or more functions $ f:I times E → R$ .
@@ -689,9 +689,9 @@ operations.
689
689
In # gls (" CS" ) (@functions-in-cs ), a function necessitates an environment in
690
690
which it will be evaluated, effectively making, to some extent, this environment
691
691
an extra input parameter per se. This computational environment, which
692
- encompasses the hardware (e.g., filesystem, memory, # gls (" CPU" , long : false )) ,
693
- software (e.g., # gls (" OS" , long : false )) and date (e.g., the current date and
694
- time) , may influence the function's behaviour and output. Consequently,
692
+ encompasses the hardware # eg [( filesystem, memory, # gls (" CPU" , long : false )] ,
693
+ software # eg [ # gls (" OS" , long : false )] and date # eg [ the current date and
694
+ time] , may influence the function's behaviour and output. Consequently,
695
695
functions in # gls (" CS" ) are inherently designed to interact with and adapt to
696
696
their environment, thereby making them dynamic and versatile but also
697
697
potentially non-deterministic.
@@ -743,9 +743,9 @@ reproducibility of the computations discussed.
743
743
In the context of software compilation, an output is correct when it faithfully
744
744
reflects the state of its transitive inputs. Basically, the output represents
745
745
all direct and indirect dependencies used in the build process.
746
- "Transitive inputs" refer to not only the direct inputs (e.g., source code) but
747
- also to the inputs of those inputs (e.g., libraries, frameworks, compilers, data
748
- resources) .
746
+ "Transitive inputs" refer to not only the direct inputs # eg [ source code] but
747
+ also to the inputs of those inputs # eg [ libraries, frameworks, compilers, data
748
+ resources] .
749
749
750
750
From the point of view of the software build process as shown in
751
751
@inputs-outputs-part1 , the inputs are all the source code files, configuration
@@ -1016,8 +1016,8 @@ unique" is used because, in theory, it is possible for two different inputs to
1016
1016
produce the same hash, an occurrence known as a # emph [collision]. The ability to
1017
1017
find collisions undermines the security of the algorithm. There are different
1018
1018
types of algorithms to calculate a checksum
1019
- (e.g., # gls (" MD5" , long : false ), # gls (" SHA1" , long : false ),
1020
- # gls (" SHA2" , long : false )) . Older algorithms like # gls (" MD5" , long : false ) have
1019
+ # eg [ # gls (" MD5" , long : false ), # gls (" SHA1" , long : false ),
1020
+ # gls (" SHA2" , long : false )] . Older algorithms like # gls (" MD5" , long : false ) have
1021
1021
known vulnerabilities that allow collision attacks while more modern algorithms
1022
1022
like SHA-256 (# gls (" SHA2" , long : false )) are currently considered to be pretty
1023
1023
much impossible to crack.
@@ -1371,7 +1371,7 @@ source code. This variance highlights a significant reproducibility challenge,
1371
1371
as achieving bitwise identical results across architectures is *not feasible* as
1372
1372
of today.
1373
1373
1374
- Compilers (e.g., GCC, Rustc, # LaTeX , Typst) also play a role in software
1374
+ Compilers # eg [ GCC, Rustc, # LaTeX , Typst] also play a role in software
1375
1375
development, transforming high-level code into machine-level instructions.
1376
1376
However, not all compilers operate deterministically. In this context,
1377
1377
non-determinism refers to the phenomenon where compilers produce different
0 commit comments