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

feat: add libuv to provide some asynchronous functionality #432

Merged
merged 25 commits into from
Oct 9, 2024

Conversation

Chronostasys
Copy link
Member

@Chronostasys Chronostasys commented Aug 28, 2024

- fixed a bug causing global ini function executes twice
- fixed a bug causing panic when passing structure data to generator function
- added async closure support
- added async closure inference support

TBD: closure DWARF debug info
@Chronostasys Chronostasys force-pushed the feat/libuv branch 11 times, most recently from 09c357e to f86ab52 Compare August 29, 2024 05:25
FIxed a issue causing jit engine crash in certain cases. It's related to the
load operation of function's pointer argument in the first block. The
fix is simple: move load just before where it's first used. More details are
commented on the lines I changed.

Also fixed missing dylib on mac os.

Update the release pipeline config so that it will pack libuv's dylib.
Previously, instantiated generic types (e.g., generic types with fixed type parameters) were stored in the module-level type table and exported along with other ordinary types. This caused them to persist across different analyses in the LSP. Additionally, generic type instances were sometimes stored in their original module, which is incorrect because the immutability of cached computation results is crucial for our incremental computation library (salsa).

This commit corrects this behavior by storing generic instances in the compilation context rather than in the module.
@Chronostasys Chronostasys linked an issue Sep 20, 2024 that may be closed by this pull request
14 tasks
Copy link

codecov bot commented Oct 9, 2024

Codecov Report

Attention: Patch coverage is 95.85714% with 29 lines in your changes missing coverage. Please review.

Project coverage is 85.16%. Comparing base (70c6e0e) to head (4561aed).
Report is 26 commits behind head on master.

Files with missing lines Patch % Lines
src/inference/mod.rs 81.25% 9 Missing ⚠️
src/ast/builder/llvmbuilder.rs 95.55% 6 Missing ⚠️
src/ast/node/primary.rs 58.33% 5 Missing ⚠️
vm/src/lib.rs 0.00% 5 Missing ⚠️
src/ast/traits.rs 66.66% 3 Missing ⚠️
src/ast/node/global.rs 90.00% 1 Missing ⚠️
Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##           master     #432      +/-   ##
==========================================
- Coverage   85.62%   85.16%   -0.46%     
==========================================
  Files         100      100              
  Lines       25306    25784     +478     
==========================================
+ Hits        21668    21959     +291     
- Misses       3638     3825     +187     
Files with missing lines Coverage Δ
pl_linker/src/linker.rs 85.61% <100.00%> (+0.94%) ⬆️
src/ast/builder/mod.rs 100.00% <ø> (ø)
src/ast/builder/no_op_builder.rs 85.58% <100.00%> (-1.48%) ⬇️
src/ast/compiler.rs 73.35% <100.00%> (-1.81%) ⬇️
src/ast/ctx.rs 93.60% <100.00%> (-2.17%) ⬇️
src/ast/ctx/lsp.rs 98.34% <100.00%> (+0.05%) ⬆️
src/ast/diag.rs 69.02% <100.00%> (-1.67%) ⬇️
src/ast/fmt.rs 83.66% <100.00%> (ø)
src/ast/node/function.rs 91.72% <100.00%> (+0.23%) ⬆️
src/ast/node/function/generator.rs 98.59% <100.00%> (+0.21%) ⬆️
... and 15 more

... and 5 files with indirect coverage changes

@Chronostasys Chronostasys changed the title Feat/libuv feat: add libuv to provide some asynchronous functionality Oct 9, 2024
@Chronostasys Chronostasys merged commit 408b4ee into master Oct 9, 2024
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

wrap libuv to provide some fundamental async apis
1 participant