Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New Typechecking Engine #604

Open
wants to merge 303 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
303 commits
Select commit Hold shift + click to select a range
e97fa0a
Fix extension codegen
arshajii Feb 12, 2023
727f251
Fix init codegen
arshajii Feb 12, 2023
c8a24e0
Fix init codegen; add "tp_new" slot
arshajii Feb 12, 2023
3bec4c1
Fix type hook
arshajii Feb 13, 2023
b0b594d
Add extra flags
arshajii Feb 13, 2023
e044a61
Specialized wrappers (PyType specs)
inumanag Feb 14, 2023
6e9d9d1
Add static Python link option
arshajii Feb 14, 2023
7fd8ff3
Fix C imports
arshajii Feb 14, 2023
f98018c
Add guards
arshajii Feb 14, 2023
86fe7e0
Remove unused field
arshajii Feb 14, 2023
303855e
Python mode only when pyExt set
inumanag Feb 15, 2023
a29ea1c
Update python module
arshajii Feb 15, 2023
d746ea7
Fix assert
inumanag Feb 15, 2023
cbac1b8
Update codegen/passes
arshajii Feb 15, 2023
6da0f9b
Fix tuple parsing in index expression
inumanag Feb 16, 2023
6a2db47
Fix empty tuple unification
inumanag Feb 16, 2023
2ead259
Do not Cythonize underscore fns
inumanag Feb 17, 2023
9f08ecd
clang-format
arshajii Feb 17, 2023
2bfb893
Fix switch
arshajii Feb 17, 2023
93dfcb5
Add Py support for cmp/setitem
inumanag Feb 18, 2023
894bf5b
Add Py support for cmp/setitem
inumanag Feb 18, 2023
57881a8
Add type is support
inumanag Feb 18, 2023
651dad1
GetSet support
inumanag Feb 19, 2023
016e828
clang-format
arshajii Feb 19, 2023
ed850f2
GetSet support (fixes)
inumanag Feb 20, 2023
7e7daf8
Avoid useless vtable alloc
inumanag Feb 20, 2023
407a2f0
Add iter support
inumanag Feb 20, 2023
47ebd6a
Fix size_t capture bug
inumanag Feb 21, 2023
259aec3
clang-format
arshajii Feb 21, 2023
f3f3e7e
Fix POD type unification with tuples
inumanag Feb 22, 2023
732dfcb
Add __try_from_py__ API
arshajii Feb 23, 2023
d0461d5
Fix annotation
arshajii Feb 27, 2023
12d21ff
Add static reflection methods (setattr; internal.static.*); refactor …
inumanag Mar 3, 2023
3ab03b9
Python compat fixes
inumanag Mar 4, 2023
921cf74
Update Python object conversions
arshajii Mar 4, 2023
3adb42b
Fix PyErrors
arshajii Mar 4, 2023
7f82194
clang-format; add copyright
arshajii Mar 4, 2023
691c1b8
Add PyFunction::keywords field
arshajii Mar 4, 2023
c24cec7
Fix JIT MRO handling; Refactor out Jupyter support
inumanag Mar 5, 2023
7fbf877
Refactor out Jupyter support
inumanag Mar 5, 2023
ba1562f
Add support for custom linking args (link=[]) to TOML plugins
inumanag Mar 5, 2023
3f48536
Fix tests
inumanag Mar 5, 2023
417be68
Add no-suspend yield support
inumanag Mar 5, 2023
06c9318
Use g++ instead of gcc
inumanag Mar 5, 2023
cfb6b8e
Fix Jupyter CMAKE
inumanag Mar 9, 2023
900a642
Fix Jupyter CMAKE
inumanag Mar 9, 2023
e1ddbf8
Add _PyArg_Parser definition
arshajii Mar 11, 2023
ac97877
Add complex64 type
arshajii Mar 12, 2023
938ab8d
Add extra complex64 tests
arshajii Mar 12, 2023
66f9e4f
Fix Python calls; add staticenumerate
inumanag Mar 15, 2023
5640651
Fix call
arshajii Mar 15, 2023
f87b82f
Fix calls
arshajii Mar 15, 2023
9629232
Update pyext wrappers
arshajii Mar 16, 2023
416cfe9
Fix staticenumerate; Support static calls in tuple()
inumanag Mar 17, 2023
6734a41
Merge branch 'pyext' of github.com:exaloop/codon into pyext
inumanag Mar 17, 2023
31caa1d
Fix pyext routing
inumanag Mar 17, 2023
4e80861
Add add/mul for tuples
inumanag Mar 17, 2023
7882c56
clang-format
arshajii Mar 17, 2023
8d57bc1
Fix pyext codegen
arshajii Mar 17, 2023
2736bda
Fix wrap_multiple
inumanag Mar 18, 2023
a03e4b0
Add seq_alloc_atomic_uncollectable
arshajii Mar 18, 2023
3fb60ae
Fix default generics issue
inumanag Mar 18, 2023
9110986
Merge branch 'pyext' of github.com:exaloop/codon into pyext
inumanag Mar 18, 2023
bc951f2
Add binary/ternary ops
inumanag Mar 18, 2023
a65a1cb
Fix missing generic issue
inumanag Mar 20, 2023
a29c3d5
Fix number slots
arshajii Mar 20, 2023
de548b7
Update pow
arshajii Mar 20, 2023
e484bbe
Remove unnecessary pyobj
arshajii Mar 23, 2023
fbd0105
Fix allocation
arshajii Mar 23, 2023
e573f6d
Refactor errors
arshajii Mar 24, 2023
f19faf1
Add test extension
arshajii Mar 24, 2023
94dca39
Fix formatting
arshajii Mar 24, 2023
2ef0bdb
clang-format
arshajii Mar 24, 2023
02873b9
Fix getitem/setitem/delitem in pyext
arshajii Mar 24, 2023
2bd28c8
Fix pyext iterators
arshajii Mar 24, 2023
87e5181
Merge branch 'develop' into pyext
arshajii Mar 24, 2023
3ca06a5
Add builtin pow() (fix #294)
arshajii Mar 25, 2023
64d59bb
Fix #244
inumanag Mar 25, 2023
8101c4d
Fix #231
inumanag Mar 25, 2023
f449cb7
Fix #229
inumanag Mar 26, 2023
07073db
Fix #205
inumanag Mar 26, 2023
d587bbb
Update docs
arshajii Mar 27, 2023
4f30b2a
Fix error message
arshajii Mar 27, 2023
3933471
Add pyext tests
arshajii Mar 27, 2023
1ccb2f1
Add pyext support for @property
inumanag Mar 27, 2023
1e839ca
Add pyext support for toplevel fns and @tuple classes
inumanag Mar 27, 2023
be6b4d7
More pyext tests
arshajii Mar 27, 2023
3707990
More pyext tests
arshajii Mar 27, 2023
cf57b58
Fix file error checking
arshajii Mar 29, 2023
0f1913b
More pyext tests
arshajii Mar 30, 2023
809b898
Update pyext tests
arshajii Mar 30, 2023
256e500
Update docs
arshajii Mar 30, 2023
3e1a9a8
Add pyext test to CI
arshajii Mar 30, 2023
9ef321c
Add pyext support for @tuple.__new__
inumanag Mar 30, 2023
d1b5279
Add pyext support for @tuple.__new__
inumanag Mar 30, 2023
da709f5
Fix hetero-tuple issue with fn_overloads
inumanag Mar 31, 2023
2d1dc89
More pyext tests
arshajii Mar 31, 2023
02060cf
Bump versions
arshajii Mar 31, 2023
2b4ed6e
Fix del magic in pyext
arshajii Mar 31, 2023
50d105e
Fix init magic for tuples in pyext
arshajii Mar 31, 2023
821bfb4
Have test-pypi only run on develop branch
arshajii Mar 31, 2023
b3789d0
Make exception type indices unnamed-addr
arshajii Mar 31, 2023
38452e1
Fix #316; Fix #317 (slash issue)
inumanag Apr 3, 2023
67d4958
Use uncollectible-alloc for vtable
arshajii Apr 3, 2023
a67bf61
Merge branch 'pyext' of github.com:exaloop/codon into pyext
inumanag Apr 3, 2023
439396c
Fix #249
inumanag Apr 4, 2023
daaf014
Add pyext docs
arshajii Apr 4, 2023
8b339e8
Fix #249; Fix clashing vtables; Fix super() and class_copy
inumanag Apr 5, 2023
bb72a6d
Add content-atomic type property instruction
arshajii Apr 5, 2023
716b1b8
__contents_atomic__ support
inumanag Apr 5, 2023
7fe9763
Update internal functions
arshajii Apr 5, 2023
710a385
Remove vtables from objects (use __id__ only); Add static itemgetter
inumanag Apr 17, 2023
5b44aa3
Migrate to XEUS 3
inumanag Apr 19, 2023
783d319
Fix XEUS patches
inumanag Apr 20, 2023
32759ba
Fix docs [skip ci]
arshajii Apr 24, 2023
e51ac0d
Use tuples for RTTI classes
inumanag Apr 27, 2023
bcbca1e
clang-format
arshajii Apr 27, 2023
c737e28
Add polymorphic to IR RefType
arshajii Apr 27, 2023
3ef5741
Merge branch 'new-super' of https://github.com/exaloop/codon into new…
arshajii Apr 27, 2023
6ee620b
Pass isPolymorphic to IR
inumanag Apr 27, 2023
bb14bf1
Update codegen for new poly ref types
arshajii May 1, 2023
28b3b00
New RTTI memory layout; Fix #346
inumanag May 1, 2023
8dd71aa
Ellipsis class; handle ellipses
inumanag May 1, 2023
567275c
Move all generated magics to Codon (__magic__)
inumanag May 2, 2023
403aa99
Fix vars_types
inumanag May 3, 2023
6976dc7
Update polymorphic setter
arshajii May 3, 2023
145c4ac
Fix compiler warnings
inumanag May 3, 2023
53677d8
Fix pyext assert
inumanag May 3, 2023
839b9e7
Merge branch 'new-super' into typecheck-v2
inumanag May 4, 2023
bb5800f
Merge branch 'develop' of github.com:exaloop/codon into typecheck-v2
inumanag May 10, 2023
bd6be10
Merge simplify & typecheck [wip]
inumanag May 29, 2023
50f0c38
Merge simplify & typecheck [wip]
inumanag Jun 24, 2023
9cad341
Merge simplify & typecheck: hello world done [wip]
inumanag Jul 4, 2023
87419e9
Merge simplify & typecheck [wip]
inumanag Jul 5, 2023
dae4b8b
Merge simplify & typecheck [wip]
inumanag Jul 10, 2023
7bb9e19
Merge simplify & typecheck [wip]
inumanag Jul 10, 2023
7c345a8
Merge simplify & typecheck: new name parser [wip]
inumanag Jul 15, 2023
a073dac
Merge simplify & typecheck: new name parser [wip]
inumanag Aug 1, 2023
23806aa
Merge simplify & typecheck (basic tests passd)
inumanag Aug 1, 2023
c951f29
Merge simplify & typecheck (basic tests passd)
inumanag Aug 6, 2023
ef743a6
Fix try-catch scoping
inumanag Aug 8, 2023
c6faa0e
Fix tests
inumanag Aug 9, 2023
9e6a4e5
Fix access tests
inumanag Sep 22, 2023
502eed2
Add missing tests
inumanag Sep 22, 2023
6321a03
Fix assign tests
inumanag Sep 22, 2023
9997337
Fix assign tests
inumanag Sep 23, 2023
1fc0655
Fix static bool unification
inumanag Nov 18, 2023
42bb312
Add property setters
inumanag Nov 21, 2023
32b2af6
Fix call tests [wip]
inumanag Dec 5, 2023
abadfeb
Fix call tests [wip]
inumanag Dec 5, 2023
bef36e0
Fix call tests [wip]
inumanag Dec 10, 2023
cff38ea
Fix cond tests [wip]
inumanag Dec 14, 2023
cdc8e17
Fix static issues
inumanag Jan 9, 2024
10503d3
Fix loops
inumanag Jan 9, 2024
377e619
Fix loops
inumanag Jan 9, 2024
41dcb83
Fix lambdas [wip]
inumanag Jan 16, 2024
9a1c274
Fix imports and Python [wip]
inumanag Jan 18, 2024
b1b7591
Fix Python
inumanag Jan 18, 2024
d2d4bb7
Use type[] for type variables; Revamp statics and types[wip]
inumanag Mar 1, 2024
b2f3d45
New static fixes [wip]
inumanag Mar 4, 2024
4ae3c5f
Fix statics [wip]
inumanag Mar 4, 2024
0c5e22b
Fix statics [wip]
inumanag Mar 5, 2024
9b18a73
New static fixes [wip]
inumanag Mar 7, 2024
d02775d
Fix statics [wip]
inumanag Mar 9, 2024
df94b90
Remove RecordType
inumanag Mar 10, 2024
f4fe8ec
Remove RecordType
inumanag Mar 13, 2024
e737536
Fix polymorphism
inumanag Mar 18, 2024
93f3c36
Fix tests
inumanag Mar 19, 2024
f24bfee
Add hasUnbounds
inumanag Mar 20, 2024
19be8ce
Fix Link.unify
inumanag Mar 20, 2024
9a37046
Fix hasUnbounds
inumanag Mar 20, 2024
b15b708
Fix partials [wip]
inumanag Mar 21, 2024
af9a743
Add unrealized_type
inumanag Mar 21, 2024
127bca6
Fix methodcaller
inumanag Mar 21, 2024
03cbed7
Fix constructor passing
inumanag Mar 22, 2024
547c744
Fix infer [wip]
inumanag Mar 28, 2024
07ffc62
Fix traits
inumanag Apr 2, 2024
f73e974
Remove default inits; various bugfixes
inumanag Apr 21, 2024
843644f
Merge branch 'develop' into typecheck-v2
inumanag May 4, 2024
6d50e0c
Various bugfixes
inumanag May 5, 2024
4e3bdeb
Fix stdlib issues
inumanag May 5, 2024
b05ebb3
New memory management
inumanag May 14, 2024
166a033
New memory management
inumanag May 21, 2024
3123359
New memory management [done]
inumanag May 25, 2024
a365e77
Fix OMP
inumanag May 25, 2024
9cb319e
Fix memory leaks
inumanag May 25, 2024
ac5d1a6
Minor updates
inumanag Jun 3, 2024
dffe1fd
Refactor scoping
inumanag Jun 3, 2024
bc4508c
New attributes [wip]
inumanag Jun 9, 2024
221a736
New attributes [wip]
inumanag Jun 9, 2024
22932de
New attributes
inumanag Jun 29, 2024
1e56e92
Function name capture
inumanag Jul 8, 2024
a3d85fc
TSER serialization; AcceptorExtend interface
inumanag Jul 26, 2024
7382ae8
TSER serialization; AcceptorExtend interface
inumanag Jul 26, 2024
1df2139
Test fixes
inumanag Jul 30, 2024
1e3c236
Refactor expr.h
inumanag Aug 2, 2024
9ddc3d1
Refactor stmt.h
inumanag Aug 5, 2024
6315dcc
Refactor stmt.h
inumanag Aug 5, 2024
f02f637
Refactor CallExpr routing
inumanag Aug 9, 2024
2928713
Refactor CallExpr routing [wip]
inumanag Aug 10, 2024
ac309a6
Refactor CallExpr routing [wip]
inumanag Aug 10, 2024
1ef300b
Refactor CallExpr routing [wip]
inumanag Aug 12, 2024
94b623d
Refactor CallExpr routing [wip]
inumanag Aug 12, 2024
b3bfdc8
Refactor CallExpr routing [wip]
inumanag Aug 14, 2024
3ce5295
Refactor CallExpr routing
inumanag Aug 15, 2024
128ec52
Refactor field access (getters/setters); Remove direct access to cach…
inumanag Aug 31, 2024
487ea9a
Refactor out special functions
inumanag Sep 3, 2024
5a484ea
Fix auto-deduce classes
inumanag Sep 3, 2024
6e4c639
Merge branch 'develop' into typecheck-v2
inumanag Sep 4, 2024
d0c2a7b
Fix variardic tuples [wip]
inumanag Sep 4, 2024
efbc26a
Fix variardic tuples
inumanag Sep 7, 2024
cbfafa2
Minor changes
inumanag Sep 8, 2024
e296e3d
Better tuple constructor
inumanag Sep 9, 2024
759243b
Refactor out Cython and Context
inumanag Sep 10, 2024
82c0132
Refactor out Cython and Context
inumanag Sep 10, 2024
d36939f
M1 test fixes
inumanag Sep 12, 2024
ccd2699
Refactor wrapExpr (make it pure)
inumanag Oct 21, 2024
879cfa7
Refactor wrapExpr (make it pure)
inumanag Oct 24, 2024
b7768ea
Refactor wrapExpr (make it pure)
inumanag Oct 24, 2024
a2c5219
Fix JIT; Fix #136
inumanag Nov 5, 2024
0dee70c
Add TypeWrap to support passing instantiated types
inumanag Nov 8, 2024
543068d
Fix #239
inumanag Nov 8, 2024
48c848c
Fix #250 (raise ... from)
inumanag Nov 26, 2024
ecaa8d9
New f-strings (fix #304; fix #359); Better (but slower) capture-aware…
inumanag Dec 3, 2024
3446d5e
New error handling via llvm::Error [wip]
inumanag Dec 7, 2024
2cff951
ScopingVisitor new error handling
inumanag Dec 8, 2024
04913cd
Fix NTuple handling
inumanag Dec 13, 2024
740815f
Track statement times to properly reference names in case of delayed …
inumanag Jan 19, 2025
bd09330
Fix ExprTime initialization; Reduce function realizations; Wrap captu…
inumanag Jan 26, 2025
7422f46
Fix incorrect context retrieval from unrelated realizations
inumanag Jan 26, 2025
d4069fa
Merge branch 'develop' of github.com:exaloop/codon into typecheck-v2
inumanag Jan 28, 2025
3136566
__ptr__ fixes (support StmtExpr); Support generic defaultType
inumanag Jan 30, 2025
d47e17a
Fix TypeWrap wrappers
inumanag Feb 3, 2025
c6c3bac
Fix 'cannot typecheck' error messge; Fix unrealized partial types
inumanag Feb 4, 2025
6665d86
Fix 'typecheck too long' message; Fix ScopingVisitor handling of Dot/…
inumanag Feb 8, 2025
570f940
Merge branch 'develop' into typecheck-v2
inumanag Feb 9, 2025
6214818
Numpy changes (Static[bool], new tuple constructors, minor bug fixes)
inumanag Feb 9, 2025
8938a78
Fix __new__ constructors
inumanag Feb 22, 2025
d63d472
Fix #105
inumanag Feb 26, 2025
e4c7956
Fix #337
inumanag Feb 26, 2025
4670dcc
Fix #354
inumanag Feb 26, 2025
6dd6f47
Fix #357
inumanag Feb 26, 2025
574c741
Fix #360; Fix #424
inumanag Feb 26, 2025
b3adef8
Fix #216
inumanag Feb 26, 2025
205351b
Fix #304
inumanag Feb 26, 2025
d13e0ae
Fix #313
inumanag Feb 26, 2025
0d4e355
Add test comments
inumanag Feb 27, 2025
3291f5c
Fix TryStmt constructors
inumanag Mar 5, 2025
ca99d98
Fix #554
inumanag Mar 5, 2025
287f30b
Fix test
inumanag Mar 5, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions .clang-tidy
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
---
Checks: 'clang-diagnostic-*,clang-analyzer-*,cppcoreguidelines-*,modernize-*,bugprone-*,concurrency-*,performance-*,portability-*,-modernize-use-nodiscard,-modernize-use-trailing-return-type,-cppcoreguidelines-special-member-functions'
Checks: 'clang-diagnostic-*,clang-analyzer-*,cppcoreguidelines-*,modernize-*,bugprone-*,concurrency-*,performance-*,portability-*,-modernize-use-nodiscard,-modernize-use-trailing-return-type,-cppcoreguidelines-special-member-functions,-bugprone-easily-swappable-parameters,-bugprone-assignment-in-if-condition'
WarningsAsErrors: false
HeaderFilterRegex: '(build/.+)|(codon/util/.+)'
AnalyzeTemporaryDtors: false
FormatStyle: llvm
...
CheckOptions:
- key: cppcoreguidelines-macro-usage.CheckCapsOnly
value: '1'
7 changes: 3 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,8 @@
*.so
*.dylib
*.pyc
build/
install/
install_*/
install-*/
build*/
install*/
extra/python/src/jit.cpp
extra/jupyter/build/

Expand Down Expand Up @@ -68,3 +66,4 @@ jit/codon/version.py
temp/
playground/
scratch*.*
/_*
Loading