gitextract_o7k99b34/ ├── .clang-format ├── .clang-tidy ├── .gitattributes ├── .github/ │ ├── dependabot.yml │ └── workflows/ │ └── ci.yml ├── .gitignore ├── .pre-commit-config.yaml ├── CMakeLists.txt ├── CODEOWNERS ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── bench/ │ ├── README.md │ ├── codon/ │ │ ├── binary_trees.codon │ │ ├── binary_trees.cpp │ │ ├── binary_trees.py │ │ ├── chaos.codon │ │ ├── chaos.py │ │ ├── fannkuch.codon │ │ ├── fannkuch.py │ │ ├── float.py │ │ ├── go.codon │ │ ├── go.py │ │ ├── mandelbrot.codon │ │ ├── mandelbrot.py │ │ ├── nbody.cpp │ │ ├── nbody.py │ │ ├── npbench.codon │ │ ├── npbench_lib.codon │ │ ├── primes.codon │ │ ├── primes.py │ │ ├── set_partition.cpp │ │ ├── set_partition.py │ │ ├── spectral_norm.py │ │ ├── sum.py │ │ ├── taq.cpp │ │ ├── taq.py │ │ ├── word_count.cpp │ │ └── word_count.py │ └── run.sh ├── cmake/ │ ├── CMakeRC.cmake │ ├── backtrace-config.h.in │ ├── backtrace-supported.h.in │ ├── config.h.in │ ├── config.py.in │ └── deps.cmake ├── codon/ │ ├── app/ │ │ └── main.cpp │ ├── cir/ │ │ ├── analyze/ │ │ │ ├── analysis.cpp │ │ │ ├── analysis.h │ │ │ ├── dataflow/ │ │ │ │ ├── capture.cpp │ │ │ │ ├── capture.h │ │ │ │ ├── cfg.cpp │ │ │ │ ├── cfg.h │ │ │ │ ├── dominator.cpp │ │ │ │ ├── dominator.h │ │ │ │ ├── reaching.cpp │ │ │ │ └── reaching.h │ │ │ └── module/ │ │ │ ├── global_vars.cpp │ │ │ ├── global_vars.h │ │ │ ├── side_effect.cpp │ │ │ └── side_effect.h │ │ ├── attribute.cpp │ │ ├── attribute.h │ │ ├── base.cpp │ │ ├── base.h │ │ ├── cir.h │ │ ├── const.cpp │ │ ├── const.h │ │ ├── dsl/ │ │ │ ├── codegen.h │ │ │ ├── nodes.cpp │ │ │ └── nodes.h │ │ ├── flow.cpp │ │ ├── flow.h │ │ ├── func.cpp │ │ ├── func.h │ │ ├── instr.cpp │ │ ├── instr.h │ │ ├── llvm/ │ │ │ ├── gpu.cpp │ │ │ ├── gpu.h │ │ │ ├── llvisitor.cpp │ │ │ ├── llvisitor.h │ │ │ ├── llvm.h │ │ │ ├── native/ │ │ │ │ ├── native.cpp │ │ │ │ ├── native.h │ │ │ │ └── targets/ │ │ │ │ ├── aarch64.cpp │ │ │ │ ├── aarch64.h │ │ │ │ ├── arm.cpp │ │ │ │ ├── arm.h │ │ │ │ ├── target.h │ │ │ │ ├── x86.cpp │ │ │ │ └── x86.h │ │ │ ├── optimize.cpp │ │ │ └── optimize.h │ │ ├── module.cpp │ │ ├── module.h │ │ ├── pyextension.h │ │ ├── transform/ │ │ │ ├── cleanup/ │ │ │ │ ├── canonical.cpp │ │ │ │ ├── canonical.h │ │ │ │ ├── dead_code.cpp │ │ │ │ ├── dead_code.h │ │ │ │ ├── global_demote.cpp │ │ │ │ ├── global_demote.h │ │ │ │ ├── replacer.cpp │ │ │ │ └── replacer.h │ │ │ ├── folding/ │ │ │ │ ├── const_fold.cpp │ │ │ │ ├── const_fold.h │ │ │ │ ├── const_prop.cpp │ │ │ │ ├── const_prop.h │ │ │ │ ├── folding.cpp │ │ │ │ ├── folding.h │ │ │ │ └── rule.h │ │ │ ├── lowering/ │ │ │ │ ├── async_for.cpp │ │ │ │ ├── async_for.h │ │ │ │ ├── await.cpp │ │ │ │ ├── await.h │ │ │ │ ├── imperative.cpp │ │ │ │ ├── imperative.h │ │ │ │ ├── pipeline.cpp │ │ │ │ └── pipeline.h │ │ │ ├── manager.cpp │ │ │ ├── manager.h │ │ │ ├── numpy/ │ │ │ │ ├── expr.cpp │ │ │ │ ├── forward.cpp │ │ │ │ ├── indexing.cpp │ │ │ │ ├── indexing.h │ │ │ │ ├── numpy.cpp │ │ │ │ └── numpy.h │ │ │ ├── parallel/ │ │ │ │ ├── openmp.cpp │ │ │ │ ├── openmp.h │ │ │ │ ├── schedule.cpp │ │ │ │ └── schedule.h │ │ │ ├── pass.cpp │ │ │ ├── pass.h │ │ │ ├── pythonic/ │ │ │ │ ├── dict.cpp │ │ │ │ ├── dict.h │ │ │ │ ├── generator.cpp │ │ │ │ ├── generator.h │ │ │ │ ├── io.cpp │ │ │ │ ├── io.h │ │ │ │ ├── list.cpp │ │ │ │ ├── list.h │ │ │ │ ├── str.cpp │ │ │ │ └── str.h │ │ │ └── rewrite.h │ │ ├── types/ │ │ │ ├── types.cpp │ │ │ └── types.h │ │ ├── util/ │ │ │ ├── cloning.cpp │ │ │ ├── cloning.h │ │ │ ├── context.h │ │ │ ├── format.cpp │ │ │ ├── format.h │ │ │ ├── inlining.cpp │ │ │ ├── inlining.h │ │ │ ├── irtools.cpp │ │ │ ├── irtools.h │ │ │ ├── iterators.h │ │ │ ├── matching.cpp │ │ │ ├── matching.h │ │ │ ├── operator.h │ │ │ ├── outlining.cpp │ │ │ ├── outlining.h │ │ │ ├── packs.h │ │ │ ├── side_effect.cpp │ │ │ ├── side_effect.h │ │ │ ├── visitor.cpp │ │ │ └── visitor.h │ │ ├── value.cpp │ │ ├── value.h │ │ ├── var.cpp │ │ └── var.h │ ├── compiler/ │ │ ├── compiler.cpp │ │ ├── compiler.h │ │ ├── debug_listener.cpp │ │ ├── debug_listener.h │ │ ├── engine.cpp │ │ ├── engine.h │ │ ├── error.cpp │ │ ├── error.h │ │ ├── jit.cpp │ │ ├── jit.h │ │ ├── jit_extern.h │ │ ├── memory_manager.cpp │ │ └── memory_manager.h │ ├── config/ │ │ └── .gitignore │ ├── dsl/ │ │ ├── dsl.h │ │ ├── plugins.cpp │ │ └── plugins.h │ ├── parser/ │ │ ├── ast/ │ │ │ ├── attr.cpp │ │ │ ├── attr.h │ │ │ ├── error.h │ │ │ ├── expr.cpp │ │ │ ├── expr.h │ │ │ ├── node.h │ │ │ ├── stmt.cpp │ │ │ ├── stmt.h │ │ │ ├── types/ │ │ │ │ ├── class.cpp │ │ │ │ ├── class.h │ │ │ │ ├── function.cpp │ │ │ │ ├── function.h │ │ │ │ ├── link.cpp │ │ │ │ ├── link.h │ │ │ │ ├── static.cpp │ │ │ │ ├── static.h │ │ │ │ ├── traits.cpp │ │ │ │ ├── traits.h │ │ │ │ ├── type.cpp │ │ │ │ ├── type.h │ │ │ │ ├── union.cpp │ │ │ │ └── union.h │ │ │ └── types.h │ │ ├── ast.h │ │ ├── cache.cpp │ │ ├── cache.h │ │ ├── common.cpp │ │ ├── common.h │ │ ├── ctx.h │ │ ├── match.cpp │ │ ├── match.h │ │ ├── peg/ │ │ │ ├── grammar.peg │ │ │ ├── openmp.peg │ │ │ ├── peg.cpp │ │ │ ├── peg.h │ │ │ └── rules.h │ │ └── visitors/ │ │ ├── doc/ │ │ │ ├── doc.cpp │ │ │ └── doc.h │ │ ├── format/ │ │ │ ├── format.cpp │ │ │ └── format.h │ │ ├── scoping/ │ │ │ ├── scoping.cpp │ │ │ └── scoping.h │ │ ├── translate/ │ │ │ ├── translate.cpp │ │ │ ├── translate.h │ │ │ ├── translate_ctx.cpp │ │ │ └── translate_ctx.h │ │ ├── typecheck/ │ │ │ ├── access.cpp │ │ │ ├── assign.cpp │ │ │ ├── basic.cpp │ │ │ ├── call.cpp │ │ │ ├── class.cpp │ │ │ ├── collections.cpp │ │ │ ├── cond.cpp │ │ │ ├── ctx.cpp │ │ │ ├── ctx.h │ │ │ ├── error.cpp │ │ │ ├── function.cpp │ │ │ ├── import.cpp │ │ │ ├── infer.cpp │ │ │ ├── loops.cpp │ │ │ ├── op.cpp │ │ │ ├── special.cpp │ │ │ ├── typecheck.cpp │ │ │ └── typecheck.h │ │ ├── visitor.cpp │ │ └── visitor.h │ ├── runtime/ │ │ ├── exc.cpp │ │ ├── floatlib/ │ │ │ ├── extenddftf2.c │ │ │ ├── extendhfsf2.c │ │ │ ├── extendhftf2.c │ │ │ ├── extendsfdf2.c │ │ │ ├── extendsftf2.c │ │ │ ├── fp_extend.h │ │ │ ├── fp_extend_impl.inc │ │ │ ├── fp_lib.h │ │ │ ├── fp_trunc.h │ │ │ ├── fp_trunc_impl.inc │ │ │ ├── int_endianness.h │ │ │ ├── int_lib.h │ │ │ ├── int_math.h │ │ │ ├── int_types.h │ │ │ ├── int_util.h │ │ │ ├── truncdfbf2.c │ │ │ ├── truncdfhf2.c │ │ │ ├── truncdfsf2.c │ │ │ ├── truncsfbf2.c │ │ │ ├── truncsfhf2.c │ │ │ ├── trunctfdf2.c │ │ │ ├── trunctfhf2.c │ │ │ └── trunctfsf2.c │ │ ├── lib.cpp │ │ ├── lib.h │ │ ├── numpy/ │ │ │ ├── loops.cpp │ │ │ ├── sort.cpp │ │ │ └── zmath.cpp │ │ └── re.cpp │ └── util/ │ ├── common.cpp │ ├── common.h │ ├── jupyter.cpp │ ├── jupyter.h │ ├── peg2cpp.cpp │ ├── serialize.h │ └── tser.h ├── docs/ │ ├── css/ │ │ └── extra.css │ ├── developers/ │ │ ├── build.md │ │ ├── compilation.md │ │ ├── contribute.md │ │ ├── extend.md │ │ ├── ir.md │ │ └── roadmap.md │ ├── img/ │ │ └── image.avif │ ├── index.md │ ├── integrations/ │ │ ├── cpp/ │ │ │ ├── codon-from-cpp.md │ │ │ ├── cpp-from-codon.md │ │ │ └── jit.md │ │ ├── jupyter.md │ │ └── python/ │ │ ├── codon-from-python.md │ │ ├── extensions.md │ │ └── python-from-codon.md │ ├── js/ │ │ └── mathjax.js │ ├── labs/ │ │ ├── catalog/ │ │ │ └── start.md │ │ └── index.md │ ├── language/ │ │ ├── classes.md │ │ ├── generics.md │ │ ├── llvm.md │ │ ├── lowlevel.md │ │ ├── meta.md │ │ └── overview.md │ ├── libraries/ │ │ ├── api/ │ │ │ └── .gitignore │ │ ├── numpy.md │ │ └── stdlib.md │ ├── overrides/ │ │ └── main.html │ ├── parallel/ │ │ ├── gpu.md │ │ ├── multithreading.md │ │ └── simd.md │ └── start/ │ ├── changelog.md │ ├── faq.md │ ├── install.md │ └── usage.md ├── jit/ │ ├── .gitignore │ ├── MANIFEST.in │ ├── README.md │ ├── codon/ │ │ ├── __init__.py │ │ ├── decorator.py │ │ ├── jit.pxd │ │ └── jit.pyx │ ├── pyproject.toml │ └── setup.py ├── jupyter/ │ ├── CMakeLists.txt │ ├── jupyter.cpp │ ├── jupyter.h │ ├── share/ │ │ └── jupyter/ │ │ └── kernels/ │ │ └── codon/ │ │ └── kernel.json.in │ └── xeus.patch ├── mkdocs.yml ├── scripts/ │ ├── Dockerfile.codon-build │ ├── Dockerfile.codon-jupyter │ ├── Dockerfile.gpu │ ├── Dockerfile.llvm-build │ ├── deps.sh │ ├── docgen.py │ ├── fix_loader_paths.sh │ ├── get_system_libs.sh │ └── install.sh ├── stdlib/ │ ├── algorithms/ │ │ ├── heapsort.codon │ │ ├── insertionsort.codon │ │ ├── pdqsort.codon │ │ ├── qsort.codon │ │ ├── strings.codon │ │ └── timsort.codon │ ├── asyncio.codon │ ├── bisect.codon │ ├── bz2.codon │ ├── cmath.codon │ ├── codon/ │ │ └── static.codon │ ├── collections.codon │ ├── copy.codon │ ├── datetime.codon │ ├── functools.codon │ ├── getopt.codon │ ├── gpu.codon │ ├── gzip.codon │ ├── heapq.codon │ ├── internal/ │ │ ├── __init__.codon │ │ ├── __init_test__.codon │ │ ├── attributes.codon │ │ ├── builtin.codon │ │ ├── c_stubs.codon │ │ ├── core.codon │ │ ├── dlopen.codon │ │ ├── file.codon │ │ ├── format.codon │ │ ├── gc.codon │ │ ├── gpu.codon │ │ ├── internal.codon │ │ ├── khash.codon │ │ ├── pynumerics.codon │ │ ├── python.codon │ │ ├── sort.codon │ │ ├── static.codon │ │ ├── str.codon │ │ └── types/ │ │ ├── any.codon │ │ ├── array.codon │ │ ├── bool.codon │ │ ├── byte.codon │ │ ├── collections/ │ │ │ ├── dict.codon │ │ │ ├── list.codon │ │ │ ├── set.codon │ │ │ └── tuple.codon │ │ ├── complex.codon │ │ ├── ellipsis.codon │ │ ├── error.codon │ │ ├── float.codon │ │ ├── function.codon │ │ ├── generator.codon │ │ ├── import_.codon │ │ ├── int.codon │ │ ├── intn.codon │ │ ├── optional.codon │ │ ├── ptr.codon │ │ ├── range.codon │ │ ├── rtti.codon │ │ ├── slice.codon │ │ ├── str.codon │ │ ├── strbuf.codon │ │ ├── tuple.codon │ │ ├── type.codon │ │ └── union.codon │ ├── itertools.codon │ ├── math.codon │ ├── numpy/ │ │ ├── __init__.codon │ │ ├── const.codon │ │ ├── dragon4.codon │ │ ├── dtype.codon │ │ ├── emath.codon │ │ ├── fft/ │ │ │ ├── __init__.codon │ │ │ └── pocketfft.codon │ │ ├── format.codon │ │ ├── functional.codon │ │ ├── fusion.codon │ │ ├── indexing.codon │ │ ├── interp.codon │ │ ├── lib/ │ │ │ ├── __init__.codon │ │ │ ├── arraysetops.codon │ │ │ └── stride_tricks.codon │ │ ├── linalg/ │ │ │ ├── __init__.codon │ │ │ ├── blas.codon │ │ │ └── linalg.codon │ │ ├── linalg_sym.codon │ │ ├── misc.codon │ │ ├── ndarray.codon │ │ ├── ndgpu.codon │ │ ├── ndmath.codon │ │ ├── npdatetime.codon │ │ ├── npio.codon │ │ ├── operators.codon │ │ ├── pybridge.codon │ │ ├── random/ │ │ │ ├── __init__.codon │ │ │ ├── bitgen.codon │ │ │ ├── logfactorial.codon │ │ │ ├── mt19937.codon │ │ │ ├── pcg64.codon │ │ │ ├── philox.codon │ │ │ ├── seed.codon │ │ │ ├── sfc64.codon │ │ │ ├── splitmix64.codon │ │ │ └── ziggurat.codon │ │ ├── reductions.codon │ │ ├── routines.codon │ │ ├── sorting.codon │ │ ├── statistics.codon │ │ ├── ufunc.codon │ │ ├── util.codon │ │ ├── window.codon │ │ └── zmath.codon │ ├── openmp.codon │ ├── operator.codon │ ├── os/ │ │ ├── __init__.codon │ │ └── path.codon │ ├── pickle.codon │ ├── python.codon │ ├── random.codon │ ├── re.codon │ ├── simd.codon │ ├── sortedlist.codon │ ├── statistics.codon │ ├── string.codon │ ├── sys.codon │ ├── threading.codon │ ├── time.codon │ ├── typing.codon │ └── unittest.codon └── test/ ├── CMakeLists.txt.in ├── app/ │ ├── argv.codon │ ├── build.codon │ ├── exit.codon │ ├── export.codon │ ├── input.codon │ ├── input.txt │ ├── test.c │ └── test.sh ├── cir/ │ ├── analyze/ │ │ ├── dominator.cpp │ │ └── reaching.cpp │ ├── base.cpp │ ├── constant.cpp │ ├── flow.cpp │ ├── func.cpp │ ├── instr.cpp │ ├── module.cpp │ ├── test.h │ ├── transform/ │ │ └── manager.cpp │ ├── types/ │ │ └── types.cpp │ ├── util/ │ │ └── matching.cpp │ ├── value.cpp │ └── var.cpp ├── core/ │ ├── arguments.codon │ ├── arithmetic.codon │ ├── bltin.codon │ ├── containers.codon │ ├── empty.codon │ ├── exceptions.codon │ ├── generators.codon │ ├── generics.codon │ ├── helloworld.codon │ ├── match.codon │ ├── numerics.codon │ ├── parser.codon │ ├── pipeline.codon │ ├── range.codon │ ├── serialization.codon │ ├── sort.codon │ ├── trees.codon │ └── vec_simd.codon ├── main.cpp ├── numpy/ │ ├── data/ │ │ └── .gitignore │ ├── random_tests/ │ │ ├── test_mt19937.codon │ │ ├── test_pcg64.codon │ │ ├── test_philox.codon │ │ └── test_sfc64.codon │ ├── test_dtype.codon │ ├── test_elision.codon │ ├── test_fft.codon │ ├── test_functional.codon │ ├── test_fusion.codon │ ├── test_indexing.codon │ ├── test_io.codon │ ├── test_lib.codon │ ├── test_linalg.codon │ ├── test_loops.codon │ ├── test_misc.codon │ ├── test_ndmath.codon │ ├── test_npdatetime.codon │ ├── test_pybridge.codon │ ├── test_reductions.codon │ ├── test_routines.codon │ ├── test_sorting.codon │ ├── test_statistics.codon │ ├── test_ufunc.codon │ └── test_window.codon ├── parser/ │ ├── llvm.codon │ ├── simplify_expr.codon │ ├── simplify_stmt.codon │ ├── typecheck/ │ │ ├── a/ │ │ │ ├── __init__.codon │ │ │ ├── b/ │ │ │ │ ├── __init__.codon │ │ │ │ ├── rec1.codon │ │ │ │ ├── rec1_err.codon │ │ │ │ ├── rec2.codon │ │ │ │ └── rec2_err.codon │ │ │ └── sub/ │ │ │ └── __init__.codon │ │ ├── test_access.codon │ │ ├── test_assign.codon │ │ ├── test_basic.codon │ │ ├── test_call.codon │ │ ├── test_class.codon │ │ ├── test_collections.codon │ │ ├── test_cond.codon │ │ ├── test_ctx.codon │ │ ├── test_error.codon │ │ ├── test_function.codon │ │ ├── test_import.codon │ │ ├── test_infer.codon │ │ ├── test_loops.codon │ │ ├── test_op.codon │ │ ├── test_parser.codon │ │ ├── test_python.codon │ │ └── test_typecheck.codon │ ├── typecheck_expr.codon │ ├── typecheck_stmt.codon │ └── types.codon ├── python/ │ ├── __init__.py │ ├── cython_jit.py │ ├── find-python-library.py │ ├── myextension.codon │ ├── myextension2.codon │ ├── mymodule.py │ ├── pybridge.codon │ ├── pyext.py │ └── setup.py ├── stdlib/ │ ├── asyncio_test.codon │ ├── bisect_test.codon │ ├── cmath_test.codon │ ├── cmath_testcases.txt │ ├── datetime_test.codon │ ├── heapq_test.codon │ ├── itertools_test.codon │ ├── llvm_test.codon │ ├── math_test.codon │ ├── operator_test.codon │ ├── random_test.codon │ ├── re_test.codon │ ├── sort_test.codon │ ├── statistics_test.codon │ └── str_test.codon ├── transform/ │ ├── canonical.codon │ ├── dict_opt.codon │ ├── escapes.codon │ ├── folding.codon │ ├── for_lowering.codon │ ├── inlining.codon │ ├── io_opt.codon │ ├── kernels.codon │ ├── list_opt.codon │ ├── omp.codon │ ├── outlining.codon │ └── str_opt.codon └── types.cpp