56 lines
1.2 KiB
Typst
56 lines
1.2 KiB
Typst
#import "../requirements.typ": *
|
|
#import codly: codly
|
|
|
|
#focus-slide(theme: "neon")[Current Status and Future]
|
|
// = Current Status and Future
|
|
|
|
== What Midas offers
|
|
|
|
- Working *static type checking* of a good subset of Python (including dataframes)
|
|
|
|
- *Custom type* definition language for domain-specific usages (supports generics, method overloads, dependent types, frame schemas, named predicates and more)
|
|
|
|
- Toolbox *CLI* with useful debug features
|
|
|
|
- Generation of *runtime assertions*
|
|
|
|
- Stubs for *seamless integration* with other type checkers
|
|
|
|
== What needs work
|
|
|
|
- Reference types (side effects)
|
|
```python
|
|
def modify_column(df: pd.DataFrame):
|
|
df["col"] = df["col"].astype(float)
|
|
```
|
|
- Reverse operators
|
|
```python
|
|
a = 1.0 + 1 # float.__add__(int)
|
|
b = 1 + 1.0 # float.__radd__(int)
|
|
```
|
|
- Logical short-circuit bypass
|
|
#codly(
|
|
highlights: (
|
|
(
|
|
line: 1,
|
|
start: 15,
|
|
tag: box(inset: (x: 0.5em))[_Always evaluated_ ],
|
|
fill: std.red.lighten(20%)
|
|
),
|
|
)
|
|
)
|
|
```python
|
|
value = v1 or cast(Type, v2)
|
|
```
|
|
|
|
== Possible extensions
|
|
|
|
- Visitor pattern $->$ easy to extend supported Python syntax
|
|
|
|
- Multi-file projects (```python import``` statements)
|
|
|
|
- Constraint solver
|
|
$
|
|
v in [1; 6] => v > 0
|
|
$
|