reticulated icon indicating copy to clipboard operation
reticulated copied to clipboard

Types for Python

Results 25 reticulated issues
Sort by recently updated
recently updated
newest added

Retic with blame (commit 7adef84) and the current master (5cd2d10) don't insert some casts (`=>`) shown in the paper. Example program: ``` def main(xs:Dyn)->str: return xs[0] main([1]) ``` Since `xs`...

I'd like to run the current Reticulated (https://github.com/mvitousek/reticulated/commit/5cd2d10e0f92505a9db2bc573d8c23360ef6548b) with the transient semantics and with transient+blame (as described in the [POPL 2017 paper](https://doi.org/10.1145/3009837.3009849)). On an older version I could do this...

This ignores the files generated by `python3 setup.py install --user`.

[bm_raytrace.py.zip](https://github.com/mvitousek/reticulated/files/1996708/bm_raytrace.py.zip) The attached benchmark runs in Python3 but gives the following error when running in Reticulated: if result is None or candidateT < result[1]: ^ Cannot index into a value...

I have a small program where MOVING a type annotation adds a dynamic error. First, the untyped program: ``` # 1 def cast(f): return f def identity(x): return x def...

All `for` loops check that the loop variable has the right type. That's good. List comprehensions do not check that the variable they dereference has the right type. Example program:...

Reticulated seems to check return types in two places: 1. at the `return` statement in a function 2. at the call-site to a function Is the first check necessary? -...

If a variable is annotated with a tuple type, Retic does not dynamically check the contents of the tuple at dereferences. A program: ``` def f(x:(Int,Int))->String: return x[0] + x[1]...

It seems that Reticulated skips the init function argument checks in the function body. In the following class definition: ``` @fields({'my_dict': Dict(Int, Tuple(Int, Int))}) class UnionFind: def __init__(self:UnionFind, my_dict:Dict(Int, Tuple(Int,...

Here is a 2-module program: ``` # module 1, "foo.py" import math def f(): return math.undefined_member(0) ``` ``` # module 2, "bar.py" import foo foo.f() ``` Running `$ retic bar.py`...