Commit Graph

397 Commits (1e6382c564629f8a3998800f0273a44c7cb84c14)

Author SHA1 Message Date
A. R. Shajii f6bffa50a2
Full regex implementation (#38)
* IR escape analysis (WIP)

* Handle calls (WIP)

* Fix argument tracking (WIP)

* Cleanup

* Fix function caching

* Add annotations

* Add capture analysis

* Fixes

* Add tests

* More tests & fixes

* Refactor

* Add escape interface

* Fix consts

* Fix throw side effect

* Fix case for vararg C functions

* Add IR pass timing

* Fix internal func capture status

* Avoid warning on exe build

* More tests

* Fix var tracking & more tests

* Fix derived computation and more tests

* Optimization

* Better derived set generation

* More tests

* Cache reaching-def results

* Fix pass group repeat

* Fix use-after-free issue

* Initial re functions

* Cleanup

* Add parseCode

* Add parseCode

* Fix IR realization

* Allow for NumPy conversions

* Update re

* clang-format

* Add pattern methods

* Add more functions

* More functions

* Fixes

* Cleanup

* Add more functions

* Add groups()

* Add flags

* Use optionals where needed

* Support errors

* Fix replacement

* Fix sub

* Fix unescape

* Add tests

* Fix expand

* More tests

* More tests

* More tests

* Add remaining tests

* Revert Python changes

* Use atomic alloc

* Fix test

* Fix errors

* Fix unescape

Co-authored-by: Ibrahim Numanagić <ibrahimpasa@gmail.com>
2022-07-08 23:17:50 +00:00
A. R. Shajii f79a0a838f clang-format 2022-07-04 20:04:27 -04:00
A. R. Shajii 01840deb5f
Escape analysis in IR (#33)
* IR escape analysis (WIP)

* Handle calls (WIP)

* Fix argument tracking (WIP)

* Cleanup

* Fix function caching

* Add annotations

* Add capture analysis

* Fixes

* Add tests

* More tests & fixes

* Refactor

* Add escape interface

* Fix consts

* Fix throw side effect

* Fix case for vararg C functions

* Add IR pass timing

* Fix internal func capture status

* Avoid warning on exe build

* More tests

* Fix var tracking & more tests

* Fix derived computation and more tests

* Optimization

* Better derived set generation

* More tests

* Cache reaching-def results

* Fix pass group repeat

* Fix use-after-free issue
2022-07-02 11:48:19 -04:00
A. R. Shajii fc4f1e9412 Bump version 2022-06-26 17:54:13 -04:00
A. R. Shajii dc17f46246 Remove trailing whitespace 2022-06-26 17:39:30 -04:00
A. R. Shajii 9e276d8181
Cython package (#34)
* Add pip wheel to the build

* Fix CI

* Fix CI

* Fix CI

* Update setup.py to include stdlib; set CODON_PATH in extra/python package

* Fix CI

* CI debug

* CI fix

* CI fix

* Format

Co-authored-by: Ibrahim Numanagić <ibrahimpasa@gmail.com>
2022-06-26 17:38:29 -04:00
A. R. Shajii d87f08e45d
Allow compilation to shared library (#35)
* Add new "-lib" option to make shared library

* Fix description

* Add main() as ctor if building shared library

* Fix extensions for macOS

* Minor refactor

* Make Import class a tuple
2022-06-26 17:27:31 -04:00
A. R. Shajii ffc517c51e
Set rpath and use gcc when making executable (#31)
* Set rpath and use gcc when making executable

* Add other paths

* Add "linker-flags" option

* Fix Linux builds

* Fix CI

* Fix spelling

* clang-format

Co-authored-by: Ibrahim Numanagić <ibrahimpasa@gmail.com>
2022-06-22 16:00:40 -04:00
A. R. Shajii af7cce08fe
Add special cases for length-1 patterns (#32) 2022-06-18 10:27:25 -04:00
A. R. Shajii 9b73bc0da3
OpenMP updates (#30)
* Support task-based reductions (wip)

* Fix task-based reductions (wip)

* Fix local reduction var reference

* Fix shared info access

* Fix reductions

* Add more tests for float reductions

* Update test

* Update test

* Add corner case tests

* Add nested par tests

* Add barrier to match clang's codegen

* Refactor to remove duplicated code

* Fix GC root registration via OpenMP patch

* Update deps.cmake

* Debug

* Debug

* Update thread registration with GC

* Update OpenMP

* Update OpenMP to new master
2022-06-06 19:31:48 -04:00
A. R. Shajii 7114f3430a Fix ref type construction in IR 2022-05-20 20:44:49 -04:00
Ibrahim Numanagić c33eda9353 Fix JIT state on error 2022-05-20 10:27:29 -07:00
A. R. Shajii f9f4fb1b26
Don't publish empty output; remove magic number (#27) 2022-04-23 17:14:26 -04:00
A. R. Shajii 753151157d
Py interop fix (#23)
* Fix incref/decref

* Fixes

* Fix set __to_py__

* Add more Python conversion tests

* clang-format

* Make from_py/to_py use cobj instead of pyobj

* Remove unneeded increfs

* Fix cython

* Ignore __init_test__ in doc generation

* Add exception check

Co-authored-by: Ishak Numanagić <ishak.numanagic@gmail.com>
Co-authored-by: Ibrahim Numanagić <ibrahimpasa@gmail.com>
2022-04-07 00:33:49 -04:00
Ibrahim Numanagić 12e8fe7666
@codon Python decorator and Python interop fixes (#19)
* Codon decorator

* Move to extra/cython, add error handling

* Small fixes

* CR

* CR

* Fix cython CI

* Fix cython CI v2

* Fix cython CI v3

* Fix cython CI v4

* Fix cython CI v5

* Fix cython CI v6

* Fix cython CI v7

* Fix cython CI v8

* Fix cython CI v9

* Fix cython CI v10

* Fix cython CI v11

* CR

* Fix CI

* Fix CI

* Fix CI

* Fix CI

* Fix CI

Co-authored-by: Ishak Numanagić <ishak.numanagic@gmail.com>
2022-03-31 10:22:26 +02:00
A. R. Shajii b47a9a844b
Jupyter quanto fixes (#22)
* Add methods to check for passes/analyses

* Fix xeus build

* clang-format

* Optimize JIT

* Allow jit mode to take data from file

* Fix OpenMP in JIT mode

* Update JIT main

* Update cloning

Co-authored-by: Ibrahim Numanagić <ibrahimpasa@gmail.com>
2022-03-19 10:29:41 -04:00
Ibrahim Numanagić 8bffbc88a5
Merge pull request #13 from exaloop/isnumanagic/stdlib
Standard library review
2022-02-28 13:33:32 -08:00
Ishak Numanagić 1f247f0bfd Use new @overload decorator 2022-02-28 21:30:59 +01:00
Ishak Numanagić 5e3bd15495 CR pt. 2 2022-02-28 21:21:46 +01:00
Ishak Numanagić 8d72ff8cfa CR pt. 1 2022-02-28 21:21:46 +01:00
Ishak Numanagić ce268c81a3 Add get/set state to random lib 2022-02-28 21:07:53 +01:00
Ishak Numanagić ac6fa3275b Fix timsort 2022-02-28 21:07:53 +01:00
Ishak Numanagić 7af800565c test/stdlib/* 2022-02-28 21:07:53 +01:00
Ishak Numanagić f7a7dbfd05 stdlib/unittest.codon 2022-02-28 21:07:53 +01:00
Ishak Numanagić 6fa7c821d5 stdlib/time.codon 2022-02-28 21:07:53 +01:00
Ishak Numanagić cb8384a019 stdlib/threading.codon 2022-02-28 21:07:53 +01:00
Ishak Numanagić c5f96cd5e8 stdlib/sys.codon 2022-02-28 21:07:53 +01:00
Ishak Numanagić 390f2ac099 stdlib/string.codon 2022-02-28 21:07:53 +01:00
Ishak Numanagić cfc0f563f1 stdlib/statistics.codon 2022-02-28 21:07:53 +01:00
Ishak Numanagić 76e025305c stdlib/sortedlist.codon 2022-02-28 21:07:53 +01:00
Ishak Numanagić 191da796c7 stdlib/random.codon 2022-02-28 21:07:53 +01:00
Ishak Numanagić 4171d553d9 stdlib/pickle.codon 2022-02-28 21:07:53 +01:00
Ishak Numanagić 928d2a0c56 stdlib/os/path.codon 2022-02-28 21:07:53 +01:00
Ishak Numanagić 808e932685 stdlib/os/__init__.codon 2022-02-28 21:07:53 +01:00
Ishak Numanagić c567842554 stdlib/operator.codon 2022-02-28 21:07:53 +01:00
Ishak Numanagić 06c88aa092 stdlib/openmp.codon 2022-02-28 21:07:53 +01:00
Ishak Numanagić ffc4d83b01 stdlib/math.codon 2022-02-28 21:07:53 +01:00
Ishak Numanagić 9c36a5df14 stdlib/itertools.codon 2022-02-28 21:07:53 +01:00
Ishak Numanagić 0b1b6a6450 stdlib/internal/types/collections/set.codon 2022-02-28 21:07:53 +01:00
Ishak Numanagić 2d707e35a2 stdlib/internal/types/collections/list.codon 2022-02-28 21:07:53 +01:00
Ishak Numanagić 5bfc46d1b5 stdlib/internal/types/collections/dict.codon 2022-02-28 21:07:53 +01:00
Ishak Numanagić a306ce7c82 stdlib/internal/types/str.codon 2022-02-28 21:07:53 +01:00
Ishak Numanagić e9a841a471 stdlib/internal/types/slice.codon 2022-02-28 21:07:53 +01:00
Ishak Numanagić ea7477cfd0 stdlib/internal/types/range.codon 2022-02-28 21:07:53 +01:00
Ishak Numanagić 2871013247 stdlib/internal/types/ptr.codon 2022-02-28 21:07:53 +01:00
Ishak Numanagić 52ecba78ba stdlib/internal/types/optional.codon 2022-02-28 21:07:53 +01:00
Ishak Numanagić 06af65b403 stdlib/internal/types/intn.codon 2022-02-28 21:07:53 +01:00
Ishak Numanagić f67799da90 stdlib/internal/types/int.codon 2022-02-28 21:07:53 +01:00
Ishak Numanagić da5fe988ac stdlib/internal/types/generator.codon 2022-02-28 21:07:53 +01:00
Ishak Numanagić 252ad8408a stdlib/internal/types/float.codon 2022-02-28 21:07:53 +01:00