Update presentation

parent 86c214e8
Pipeline #109737742 passed with stages
in 9 minutes and 17 seconds
......@@ -41,6 +41,28 @@ links-as-notes: true
# Technical Details
## Runtime
- tale is written in Java
- GraalVM Native Images
#### GraalVM
- alternative to OpenJDK/HotSpotVM/C2
- Polyglot VM ^[Can run programs written in more than 1 language]
#### Native Image
- ahead of time compilation
- packaged together with SubstrateVM
- runs without dependencies
## Runtime
#### Pros
- starts up way faster than "normal" Java
- requires no JDK/JRE to be installed
. . .
#### Cons
- Garbage Collector isn't as good
- Some Java features are only partially supported
## Diffing - Sourcing
- Attempted building our own
......@@ -48,8 +70,169 @@ links-as-notes: true
- Found paper by Eugene W. Myers
* ["An O(ND) Difference Algorithm and Its Variations (1986)"](https://doi.org/10.1007/BF01840446)
## Diffing - EditScript
- A way of transforming one list into another efficently
- In tale these are the Lines in two versions of a file
$$
\begin{aligned}
from &= \text{AB}\textcolor{red}{CAB}\text{B}\textcolor{red}{A} \\
to &= \textcolor{red}{C}\text{B}\textcolor{red}{ABA}\text{C} \\
common &= \text{CABA}
\end{aligned}
$$
```{.java}
String[] from = {A, B, C, A, B, B, A}
String[] to = {C, B, A, B, A, C}
```
## Diffing - EditScript Example
EditScript: 1D, 2D, 3IB, 6D, 7IC
```{.java}
// Positions: 1, 2, 3, 4, 5, 6, 7
String[] from = {A, B, C, A, B, B, A}
{A, B, C, A, B, B, A, C} // 7IC
{A, B, C, A, B, A, C} // 6D
{A, B, C, B, A, B, A, C} // 3IB
{A, C, B, A, B, A, C} // 2D
String[] to = {C, B, A, B, A, C} // 1D
```
## Diffing - EditGraph
![EditGraph](assets/edit_graph.png)
\colsbegin
\col{60}
![](assets/points.png)
\col{40}
- Vertex for each pair of elements
\colsend
## Diffing - EditGraph
\colsbegin
\col{60}
![](assets/grid.png)
\col{40}
- Edge arrival vertex $(x, y)$
- $x$ indexes $from$
- $y$ indexes $to$
$$
\begin{aligned}
\rightarrow &= \text{Deletion} \\
\downarrow &= \text{Insertion} \\
\end{aligned}
$$
\colsend
## Diffing - EditGraph
\colsbegin
\col{60}
![](assets/long_path.png)
\col{30}
. . .
EditScript:
1D, 2D, 3D, 4D, 5D, 6D, 7D
1IC, 2IB, 3IA, 4IB, 5IA, 6IC
\col{10}
. . .
```{.diff}
-A
-B
-C
-A
-B
-B
-A
+C
+B
+A
+B
+A
+C
```
\colsend
## Diffing - EditGraph
\colsbegin
\col{60}
![](assets/grid.png)
\col{40}
- Some edits don't matter
* 2D, 2IB
. . .
* null edits
\colsend
## Diffing - EditGraph
\colsbegin
\col{60}
![](assets/full.png)
\col{40}
. . .
- shortest path problem
. . .
- longer sequences of diagonals are better
. . .
- any path is valid
\colsend
## Diffing - EditGraph
\colsbegin
\col{60}
![](assets/path.png)
\col{40}
```{.diff}
-A
-B
C
+B
A
B
-B
A
+C
```
\colsend
## History
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment