Skip to content
Open
Show file tree
Hide file tree
Changes from 250 commits
Commits
Show all changes
1175 commits
Select commit Hold shift + click to select a range
0b69398
lowering of integer powers to literal_pow
c42f Sep 29, 2024
accbd00
Fixes for functions with unused arguments and argument slurping
c42f Sep 30, 2024
fe93b7d
`where` desugaring
c42f Oct 5, 2024
f5df56e
Desugaring of abstract type definitions
c42f Oct 5, 2024
5b45b67
Add toplevel-only checking for `import` and `abstract type`
c42f Oct 5, 2024
4ea8106
Desugaring of primitive types
c42f Oct 5, 2024
85342c1
Fix typos in comments and docs (JuliaLang/JuliaSyntax.jl#508)
spaette Oct 6, 2024
f5210dc
Fix http->https in readme (JuliaLang/JuliaSyntax.jl#510)
spaette Oct 6, 2024
f853a42
Parse docstrings within structs as `K"doc"` (JuliaLang/JuliaSyntax.jl…
c42f Oct 6, 2024
8690d81
Don't assume that `SubString` has `pointer` and copy instead (JuliaLa…
LilithHafner Oct 6, 2024
46d212b
Remove `Base.convert` methods between `AbstractString` and `Kind` (Ju…
fredrikekre Oct 6, 2024
b17c08f
Rearrange JuliaLowering kinds into several categories
c42f Oct 6, 2024
9de72c9
Desugaring of `struct` type definitions
c42f Oct 7, 2024
14e46c8
Documentation binding for structs + test const/atomic struct fields
c42f Oct 7, 2024
460390e
Generalize ast macro to allow ASTs nested in arbitrary expressions
c42f Oct 9, 2024
94e41f7
Static parameters in function definitions
c42f Oct 12, 2024
1fe1fb1
Move args & sparams into lambda form and remove `LambdaInfo`
c42f Oct 12, 2024
1a94577
Cleanup to function #self# name and type
c42f Oct 13, 2024
149a13d
Desugaring of callable objects
c42f Oct 13, 2024
bea1526
Default inner constructors
c42f Oct 14, 2024
ab916a0
Remove unused first argument to Expr(:method)
c42f Oct 15, 2024
9988383
Default outer constructors
c42f Oct 17, 2024
d5852c9
Use scope layers for struct lowering rather than `K"alias_binding"`
c42f Oct 17, 2024
13af6ad
Rewrite new() calls for inner constructors and functions
c42f Oct 19, 2024
cca242b
Various small accumulated fixes/cleanups
c42f Nov 19, 2024
8909a98
Desugaring of positional arguments with defaults
c42f Nov 22, 2024
3423cb5
Desugaring for function argument destructuring
c42f Nov 29, 2024
055a7ef
Tests for all variable scope conflicts + make duplicate destructured …
c42f Nov 29, 2024
6e03456
Move all "standard syntax extension" macros like `@goto` into JuliaLo…
c42f Nov 30, 2024
b0c57a5
`@ nospecialize` for function arguments
c42f Nov 30, 2024
5e7de9c
Big rearrangement and improvements to README
c42f Dec 1, 2024
6bf145f
Prepare for storing info on closure captures
c42f Dec 1, 2024
4123566
Minor fix to README
c42f Dec 3, 2024
feffa3f
`@ SyntaxTree` macro for `SyntaxTree` literals in normal lowering
c42f Dec 3, 2024
1ebe863
Move demo includes into main demo file
c42f Dec 4, 2024
63e00ae
Record captured locals per lambda
c42f Dec 5, 2024
742ecd1
Fix incomplete_tag generation with trailing whitespace (JuliaLang/Jul…
c42f Dec 8, 2024
e7de2a5
Make child list construction more efficient for ASTs
c42f Dec 20, 2024
ad0cc8f
Prepare for moving methods of closures to top level
c42f Dec 6, 2024
9750b1a
Get basic closure conversion somewhat working
c42f Dec 16, 2024
990ce77
Conversion of assignments to closure captures
c42f Dec 18, 2024
d88ae88
Fix closure type naming to use list of nested functions
c42f Dec 20, 2024
0726c50
Minor restructure: Early return in expand_function_def
c42f Dec 20, 2024
1bb3d05
Add `TRAILING_COMMA_FLAG` to distinguish `(a,b)` vs `(a,b,)` (JuliaLa…
c42f Dec 22, 2024
39a5b35
Desugaring of anonymous closures
c42f Dec 22, 2024
a0c35e0
Filter out some unnecessary newvar nodes and fix test cases
c42f Dec 22, 2024
ec7b47e
Store binding provenance in BindingInfo
c42f Dec 22, 2024
c32f75d
Fix method overwrite warning in tests
c42f Dec 22, 2024
466d8b7
Merge branch 'caf/closure-conversion'
c42f Dec 22, 2024
0ce7c6a
Make left hand side of `->` a tuple of arguments (JuliaLang/JuliaSynt…
c42f Dec 27, 2024
a9c0eb3
Variable analysis cleanup + implement slot flags
c42f Dec 28, 2024
4e1e544
Parse non-syntactic operator tokens as `K"Identifier"` kind (JuliaLan…
c42f Dec 30, 2024
47494f7
Remove duplicate method
c42f Dec 31, 2024
a5f25b4
Add error for attempting to add methods to a function argument
c42f Dec 31, 2024
733eaec
Support for unboxed closure captures
c42f Jan 7, 2025
362d368
Special case `isdefined` handling for closure captures
c42f Jan 7, 2025
99352ff
Local variable capture for methods of global functions
c42f Jan 8, 2025
59baced
Add errors for use of braces `{ }` syntax
c42f Jan 8, 2025
c4ec290
Desugaring: vcat, hcat, hvcat
c42f Jan 9, 2025
f5edbcf
Fix hvcat_rows test case
c42f Jan 9, 2025
e8684c2
Desugaring: typed_hcat, typed_vcat
c42f Jan 9, 2025
8409b93
Simplify arrays_ir test cases using literals
c42f Jan 9, 2025
1a54b10
Allow testing lowering of AST fragments with no source form
c42f Jan 17, 2025
4ef512b
Fix `SyntaxNode->Expr` conversion with SubString source code (JuliaLa…
c42f Jan 17, 2025
e59d0b1
Desugaring of ncat syntax
c42f Jan 17, 2025
329e235
Move literal_pow expansion into expand_forms_1
c42f Jan 17, 2025
81d206a
Additional tests for bad `K"call"` ASTs
c42f Jan 18, 2025
d96198f
Move infix/prefix/postfix call desugaring into pass 1
c42f Jan 18, 2025
ab69066
Desugaring of broadcast syntax
c42f Jan 18, 2025
1d16d9b
Desugar standalone dotted operators `.+`
c42f Jan 18, 2025
bbe6231
Add REPL mode for testing JuliaLowering
c42f Jan 18, 2025
fd6bb66
Add devdocs regarding `@ chk` vs `@ assert` vs `throw(LoweringError())`
c42f Jan 19, 2025
fa60e5f
Desugaring of comparison chains
c42f Jan 19, 2025
601b425
Fix UnionAll assignment desugaring + add tests
c42f Jan 19, 2025
7e7aa7c
Full desugaring of ref `a[i]` syntax and broadcast ref assignment `a[…
c42f Jan 19, 2025
d4ab6f3
Move some test cases from assignments -> arrays
c42f Jan 19, 2025
96b4345
Desugaring of `do` syntax
c42f Jan 19, 2025
de55434
Add desugaring error for misplaced `@ atomic`
c42f Jan 19, 2025
fe3a0f2
Lowering of `GC.@ preserve`
c42f Jan 19, 2025
71f6cf6
Desugaring of `ccall()` syntax
c42f Jan 21, 2025
40514a9
Desugaring of updating assignment ops as in `x += y`
c42f Jan 22, 2025
b6f5904
Desugaring of juxtaposition
c42f Jan 22, 2025
5d6df34
Additional test for macro scope of * in juxtaposition
c42f Jan 22, 2025
a069880
Expansion of implicit where parameters `X{<:T}`
c42f Jan 22, 2025
2149054
AST: Use a single kind `K"op="` for updating assignments (JuliaLang/J…
c42f Jan 22, 2025
bd6c2a1
Desugaring of bare `<:`, `>:`, `-->`, `...`, `&`, `$` forms
c42f Jan 22, 2025
775de75
Add U+1F8B2 🢲 as an operator (JuliaLang/JuliaSyntax.jl#525)
pthariensflame Jan 23, 2025
d9848bb
Bump version to 1.0.0 (JuliaLang/JuliaSyntax.jl#531)
c42f Jan 23, 2025
23818bc
Desugaring of generator, comprehension, typed_comprehension
c42f Jan 24, 2025
6acc425
typed_comprehension -> for loop lowering for simple cases
c42f Jan 24, 2025
69f17d1
Add `K"SourceLocation"` for richer source location literals
c42f Jan 27, 2025
ac1beb3
Lowering of opaque_closure
c42f Jan 27, 2025
d41ca39
Move fancy function call syntax tests into function_calls_ir.jl
c42f Jan 28, 2025
a2938f7
Add notes on keyword function def desugaring
c42f Jan 28, 2025
aeb89b1
Fix bug with zero-method closure lowering
c42f Jan 28, 2025
fbe0c5e
Move typevar initialization outside method_defs block
c42f Jan 28, 2025
9d6825b
Clean up some args in function expansion helpers
c42f Jan 28, 2025
1e5e83e
Desugaring of functions definitions with keywords
c42f Jan 28, 2025
32cd53d
Test throwing of UndefKeywordError
c42f Jan 28, 2025
e2868f7
Fix mutually recursive closures + cleanups
c42f Jan 29, 2025
fde7c4d
Rename `K"unnecessary"` -> `K"removable"`
c42f Jan 29, 2025
fb93f67
Desugaring of keyword argument slurping
c42f Jan 29, 2025
47756de
Fix forwarding of slurped positional args in keyword-containing funct…
c42f Jan 29, 2025
73257f5
Fix slurped keyword default when no kws specified
c42f Jan 29, 2025
aa27522
Support keyword argument defaults which depend on other keywords
c42f Jan 29, 2025
45b0678
Add slots for keyword names for reflection
c42f Jan 29, 2025
32aec86
Fix up test forgotten from previous commit
c42f Jan 30, 2025
e1679b0
Desugaring of keyword arg types which depend on `where` typevars
c42f Jan 30, 2025
e5dd569
Desugaring of remaining `let` syntax forms
c42f Jan 30, 2025
4390927
Fix to allow named tuple unpacking in let syntax left hand side
c42f Jan 30, 2025
4c76d88
Add error for global methods inside function scope
c42f Jan 31, 2025
d9ea78d
Desugaring of export/public
c42f Jan 31, 2025
04ef4c1
Fix desugaring of `return` without argument
c42f Feb 1, 2025
f8bb72b
Desugaring and runtime support for generated functions
c42f Feb 1, 2025
025c2a8
Add nkw meta to keyword function bodies
c42f Feb 1, 2025
a3b3096
Fix missed meta nkw in tests
c42f Feb 3, 2025
87d3421
Complete tuple destructuring with complex splatted left hand sides
c42f Feb 3, 2025
ccf5b70
Cleanup runtime.jl and move syntax extension macros to their own file.
c42f Feb 4, 2025
f73c974
Front end macro and lowering of `cfunction`
c42f Feb 4, 2025
52b8f59
Lowering of cglobal
c42f Feb 4, 2025
7a70cae
Avoid adding tuple in parsing of `$(x) -> rhs` (JuliaLang/JuliaSyntax…
c42f Feb 6, 2025
11a237c
Bump to version 1.0.1
c42f Feb 6, 2025
44544df
Ensure `TypeVar` definitions accompany method defs moved to top level
c42f Feb 6, 2025
3cd4b14
Fix for toplevel-preserving statements in closure conversion
c42f Feb 7, 2025
d6b0c6e
Ensure outer closures capture variables nested inside inner closures
c42f Feb 7, 2025
399269e
Test infrastructure for limiting output to one method
c42f Feb 7, 2025
ede0365
Ensure closures capture the types of typed variables
c42f Feb 7, 2025
2989822
Call inner helper functions in struct typedef tests
c42f Feb 7, 2025
ade28cb
Add PRINT_IR option to REPL mode
c42f Feb 11, 2025
64cf890
Make `Expr(:incomplete)` detection more robust to whitespace (JuliaLa…
c42f Feb 13, 2025
f3cce2c
Bump version to 1.0.2
c42f Feb 13, 2025
0db8b12
Ensure module of macro method is used for AST scope
c42f Feb 25, 2025
2b5070e
Update cache version to unbreak CI
LilithHafner Mar 25, 2025
513a7aa
Merge pull request JuliaLang/JuliaSyntax.jl#544 from JuliaLang/Lilith…
pfitzseb Mar 26, 2025
c31aa64
also precompile for `SubString` (JuliaLang/JuliaSyntax.jl#542)
KristofferC Mar 26, 2025
dd283a1
Enhanced pretty printing of bindings
c42f Apr 12, 2025
d34748f
simple_hash faster by lifting length(str)
adienes May 13, 2025
412c2b6
Update src/tokenize.jl
adienes May 14, 2025
b9276f6
Merge pull request JuliaLang/JuliaSyntax.jl#553 from adienes/length_s…
pfitzseb May 14, 2025
4513cd3
Make `source_location()` and `line_starts` consistent (JuliaLang/Juli…
mlechu May 18, 2025
21da6e9
add `activate!` function as alias to `enable_in_core!` (JuliaLang/Jul…
oscardssmith Jun 6, 2025
5f64351
optimize `hash` implementations (JuliaLang/JuliaSyntax.jl#559)
aviatesk Jun 7, 2025
f808ff7
parser_stream: Produce green tree traversal rather than token ranges …
Keno Jun 12, 2025
2b7269d
kinds: rm unused kind K"inert" (JuliaLang/JuliaSyntax.jl#561)
Keno Jun 12, 2025
475348d
Use implicit tree for error search (JuliaLang/JuliaSyntax.jl#562)
Keno Jun 12, 2025
6cce282
organization: Split into logically distinct subpieces (JuliaLang/Juli…
Keno Jun 13, 2025
5412db0
fix: skip zero-width error tokens in last_non_whitespace_byte (JuliaL…
pfitzseb Jun 24, 2025
55398eb
Remove DOTOP_FLAG from tokenizer and parser (JuliaLang/JuliaSyntax.jl…
Keno Jul 2, 2025
9823379
Tweaks to expr-conversion for JuliaLowering (JuliaLang/JuliaSyntax.jl…
mlechu Jul 2, 2025
3a9db57
Refactor node-specific flags to overlap with numeric flags (JuliaLang…
Keno Jul 3, 2025
4257a96
Tweak macro name representation (JuliaLang/JuliaSyntax.jl#572)
Keno Jul 10, 2025
2b3c831
build_tree: clarify accepted keyword arguments (JuliaLang/JuliaSyntax…
aviatesk Jul 11, 2025
64ad2e5
Move over K"inert" (JuliaLang/JuliaLowering.jl#13)
Keno Jul 21, 2025
150c8b8
Performance: make `SyntaxGraph` and `SyntaxList` mutable (JuliaLang/J…
mlechu Jul 21, 2025
105ca6a
Placeholder implementation of multi-arg `@nospecialize` (JuliaLang/Ju…
aviatesk Jul 21, 2025
f790576
make `showprov()` able to take optional keyword arguments for `highli…
aviatesk Jul 21, 2025
dba961b
add precompilation statements to improve first-time-to-lower latency …
aviatesk Jul 21, 2025
f452a33
Update version on main to 2.0.0-DEV (JuliaLang/JuliaSyntax.jl#576)
fredrikekre Jul 26, 2025
740c4a2
Compatibility with julia nightly (JuliaLang/JuliaLowering.jl#10)
mlechu Aug 4, 2025
fe9066c
Remove use of JuliaSyntax `DOTOP_FLAG` and `is_dotted`
mlechu Jun 27, 2025
64b3ea8
Update for JuliaSyntax flags refactor
c42f Aug 5, 2025
849810e
Remove old versions of Julia from CI
c42f Aug 5, 2025
d4d7793
Abbreviated non-MIME `show()` for `GreenNode` (JuliaLang/JuliaSyntax.…
c42f Aug 5, 2025
95be1ed
Merge pull request JuliaLang/JuliaLowering.jl#18 from c42f/caf/julias…
c42f Aug 5, 2025
6927d9f
Add stacktrace capture to MacroExpansionError
aviatesk Aug 5, 2025
471b22c
Avoid capturing stacktrace, just use `rethrow` instead
aviatesk Aug 6, 2025
edfd71e
Merge pull request JuliaLang/JuliaLowering.jl#23 from aviatesk/avi/ma…
aviatesk Aug 6, 2025
078f4c1
Make `MacroExpansionError` subtype of `Exception` (JuliaLang/JuliaLow…
aviatesk Aug 7, 2025
0f6c6db
Add error handling for macro name resolution (JuliaLang/JuliaLowering…
aviatesk Aug 7, 2025
960bca6
Add inner err capture to MacroExpansionError
aviatesk Aug 6, 2025
7312169
always set `err` field of `MacroExpansionError`
aviatesk Aug 7, 2025
274dd79
Merge pull request JuliaLang/JuliaLowering.jl#27 from c42f/avi/captur…
aviatesk Aug 7, 2025
1870df1
Random lowering bugfixes (JuliaLang/JuliaLowering.jl#24)
mlechu Aug 7, 2025
0167c13
use `Base.IncludeInto` for `_include` (JuliaLang/JuliaLowering.jl#31)
aviatesk Aug 10, 2025
0a4310e
Revert to the use of StrMacroName/CmdMacroName kinds (JuliaLang/Julia…
c42f Aug 12, 2025
f100f2f
Fixes for opaque closure method lowering (JuliaLang/JuliaLowering.jl#34)
c42f Aug 15, 2025
f0e5ba1
Low-provenance `Expr`->`SyntaxTree` conversion (JuliaLang/JuliaLoweri…
mlechu Aug 15, 2025
44c1064
Add hook for testing JuliaLowering in core (JuliaLang/JuliaLowering.j…
mlechu Aug 16, 2025
e14b0ca
Add `K"static_eval"` for cfunction/ccall/cglobal (JuliaLang/JuliaLowe…
c42f Aug 19, 2025
64f2c91
Macro expansion for old-style `Expr` macros (JuliaLang/JuliaLowering.…
c42f Aug 20, 2025
071bb62
Do not treat static parameter as `is_always_defined` (JuliaLang/Julia…
abap34 Aug 20, 2025
92b6e80
Fix handling lower bound in type parameter (JuliaLang/JuliaLowering.j…
abap34 Aug 20, 2025
9483333
support splat in the array syntax (JuliaLang/JuliaLowering.jl#40)
aviatesk Aug 20, 2025
efc8973
Expand `import/using` to newer Base runtime calls (JuliaLang/JuliaLow…
c42f Aug 21, 2025
cd57aa4
Fix IR generation for `return` in value position (JuliaLang/JuliaLowe…
c42f Aug 22, 2025
bee8c2b
Compat behaviours: typeof quoted expressions, macro def signatures (J…
mlechu Aug 22, 2025
49d8778
Random lowering bugfix batch 2 (JuliaLang/JuliaLowering.jl#45)
mlechu Aug 22, 2025
261087c
`_register_kinds!`: prevent unintentional closure capture, boxing (Ju…
nsajko Aug 26, 2025
cca32f6
`_register_kinds!`: improve type stability when creating `Vector` (Ju…
nsajko Aug 26, 2025
c7c7a43
docs: fix docs of `last_byte` (JuliaLang/JuliaSyntax.jl#590)
aviatesk Aug 27, 2025
f6594c3
compat: support `Base.Experimental.@force_compile` (JuliaLang/JuliaLo…
aviatesk Aug 27, 2025
8659f53
SyntaxGraph: Usability and performance tweaks (JuliaLang/JuliaLowerin…
mlechu Aug 29, 2025
bdbcc8f
Fixes for quote interpolation in Expr compat mode (JuliaLang/JuliaLow…
c42f Aug 30, 2025
64a3e38
Tweak JuliaSyntax import to allow being in Base (JuliaLang/JuliaLower…
mlechu Sep 1, 2025
eb476b3
Add statment offset to branch address in CodeInfo conversion (JuliaLa…
c42f Sep 1, 2025
6141dfc
Tools for automatic test case reduction (JuliaLang/JuliaLowering.jl#61)
c42f Sep 2, 2025
6effc01
Fix for Expr->SyntaxTree conversion with interpolated field name (Jul…
c42f Sep 2, 2025
a01ff91
Fixes for escape handling in `Expr->SyntaxTree` conversion (JuliaLang…
c42f Sep 3, 2025
5d961ba
World age fixes for macro expansion and generated functions (JuliaLan…
c42f Sep 3, 2025
2c16628
Custom cmd macro support + tests for cmd and string macros (JuliaLang…
c42f Sep 3, 2025
89eb20c
Add timing `@zone`s for profiling each pass (JuliaLang/JuliaLowering.…
mlechu Sep 3, 2025
d08b432
Separate `JuliaLowering.eval()` from `Core.eval()` (JuliaLang/JuliaLo…
c42f Sep 4, 2025
07dad4c
Fixes for global and local decls in value position (JuliaLang/JuliaLo…
c42f Sep 5, 2025
2aa556a
Implement include() with Base.IncludeInto and similarly for eval (Jul…
c42f Sep 6, 2025
4ead4cf
Fix effects annotations on `current_exception` (JuliaLang/JuliaLoweri…
aviatesk Sep 7, 2025
308e5ba
Pass correct `Module` object to `GeneratedFunctionStub`
aviatesk Sep 5, 2025
4375b92
Remove `mod::Module` parameter from `to_lowered_expr`
aviatesk Sep 7, 2025
8215b58
Minor type stability improvements (JuliaLang/JuliaLowering.jl#73)
aviatesk Sep 7, 2025
cb9bd9e
Merge pull request JuliaLang/JuliaLowering.jl#72 from c42f/avi/genera…
aviatesk Sep 7, 2025
07ff798
ast: Remove unused utility functions (JuliaLang/JuliaLowering.jl#76)
aviatesk Sep 10, 2025
5b5ffa5
Fix `eval_macro_name` into closed modules during precompilation (Juli…
mlechu Sep 15, 2025
6916955
`expr_to_syntaxtree`: Quoted symbol fixes (JuliaLang/JuliaLowering.jl…
mlechu Sep 15, 2025
04500e3
`_expr_leaf_val`: Accept `Expr(:scope_layer)` from JuliaLowering (Jul…
mlechu Sep 16, 2025
e959468
Fix macros producing `Expr(:toplevel)` (JuliaLang/JuliaLowering.jl#81)
mlechu Sep 15, 2025
a4e366f
Fix BoundsError with mixed file provenance not caused by macros (Juli…
mlechu Sep 16, 2025
1ab9681
Docsystem: handle "semantically important docstring" cases (JuliaLang…
mlechu Sep 16, 2025
477237f
Adapt to JuliaSyntax `MacroName` change (JuliaLang/JuliaLowering.jl#71)
mlechu Sep 16, 2025
d0b0b84
Interpret `module` expressions at top level in `eval()`
c42f Sep 19, 2025
7db24dc
Incremental lowering API
c42f Sep 20, 2025
d1706e6
Merge pull request JuliaLang/JuliaLowering.jl#84 from c42f/caf/toplev…
c42f Sep 25, 2025
3d8b461
Add `:no_constprop` as expected `Expr(:meta, ...)` argument (JuliaLan…
topolarity Oct 2, 2025
af52769
Lower cglobal to GlobalRef(Core.Intrinsics, :cglobal) (JuliaLang/Juli…
aviatesk Oct 3, 2025
ba493a6
Preserve method-related meta forms through lowering (JuliaLang/JuliaL…
mlechu Oct 3, 2025
634ffdc
New Core.declare_global and Core.declare_const lowering (JuliaLang/Ju…
xal-0 Oct 8, 2025
b86cd14
Fix core lowering hook for testing purposes (JuliaLang/JuliaLowering.…
mlechu Oct 14, 2025
7aba299
Remove test no longer relevant after nightly ccall change (JuliaLang/…
aviatesk Oct 15, 2025
efc427e
Support nested splat patterns by matching native lowerer algorithm (J…
aviatesk Oct 15, 2025
127911f
Minor fixes for whitespace and typos for migration to the main Julia …
c42f Oct 20, 2025
c59d1c8
Minor fixes for whitespace and typos for migration to the main Julia …
c42f Oct 20, 2025
d4cf58f
Fix quoted property access syntax (e.g., `Core.:(!==)`) (JuliaLang/Ju…
aviatesk Oct 21, 2025
2377543
Remove default scope layer for desugaring (JuliaLang/JuliaLowering.jl…
c42f Oct 21, 2025
705760c
Fix `ccall` with no supplied varargs (JuliaLang/JuliaLowering.jl#102)
mlechu Oct 21, 2025
23dda67
Merge JuliaSyntax into main tree
c42f Oct 23, 2025
ee6dce4
Merge JuliaLowering into main tree
c42f Oct 23, 2025
2ea1c32
Adapt build system for in-tree JuliaSyntax
c42f Oct 17, 2025
9e2ae6c
CI for JuliaSyntax against older Julia versions
c42f Oct 23, 2025
fa81f0e
Modernize JuliaSyntax CI based on latest PkgTemplates template
c42f Oct 24, 2025
d6254ae
Merge branch 'master' into caf/merge-julia-frontend
DilumAluthge Oct 24, 2025
9c6267c
Adjust JuliaSyntax tests to run from `make test`
c42f Oct 24, 2025
7e694da
Add JuliaSyntax to `make test`
c42f Oct 24, 2025
74d0e1d
Cleanup for JuliaSyntax CI on github actions
c42f Oct 26, 2025
df28c66
Fix-up JuliaSyntax GHA `runs-on` / `version`
topolarity Oct 27, 2025
5da7baf
Merge branch 'master' into caf/merge-julia-frontend
DilumAluthge Oct 27, 2025
2d69474
Exclude older macos versions from JuliaSyntax CI matrix
c42f Oct 28, 2025
9938cf2
Add macos-13 (intel) as platform for JuliaSyntax CI build
c42f Oct 28, 2025
e58e696
Interpolation and type-stability improvements (#105)
mlechu Oct 24, 2025
1bc6b0a
Implement `@ eval` macro for SyntaxTree (#107)
c42f Oct 25, 2025
48169c4
Add scope layer for macro arguments of normally-quoted AST fragments …
c42f Oct 29, 2025
f33cd36
Use relative import paths in tests (#110)
c42f Oct 29, 2025
ff33779
Add JuliaSyntax to TESTNAMES
mlechu Nov 3, 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
72 changes: 72 additions & 0 deletions .github/workflows/JuliaSyntaxCI.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
name: JuliaSyntax
on:
push:
branches:
- master
- release-*
paths:
- 'JuliaSyntax/**'
tags: '*'
pull_request:
paths:
- 'JuliaSyntax/**'
concurrency:
# Skip intermediate builds: always.
# Cancel intermediate builds: only if it is a pull request build.
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }}
jobs:
test:
runs-on: ${{ matrix.github-runner }}
timeout-minutes: 60
permissions:
contents: read
strategy:
fail-fast: false
matrix:
julia-version:
- '1.0'
- '1.6'
- '1.10'
- '1'
github-runner:
- ubuntu-latest
- macos-13
- macos-latest
- windows-latest
julia-wordsize:
# The value here only affects the version of Julia binary that we download.
# It does not affect the architecture of the GitHub Runner (virtual machine) that
# we run on.
- '32' # 32-bit Julia. Only available on x86_64. Not available on aarch64.
- '64' # 64-bit Julia.
exclude:
# For Intel macOS we don't have 32-bit builds of Julia
- github-runner: macos-13
julia-wordsize: '32'
# For Apple Silicon macOS we don't have 32-bit builds of Julia, nor
# builds for older Julia versions.
- github-runner: macos-latest
julia-wordsize: '32'
- github-runner: macos-latest
julia-version: '1.0'
- github-runner: macos-latest
julia-version: '1.6'
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- uses: julia-actions/setup-julia@5c9647d97b78a5debe5164e9eec09d653d29bd71 # v2.6.1
with:
version: ${{ matrix.julia-version }}
# If `julia-wordsize` is 32, then we set `arch` to `x86`, because we know that
# 32-bit builds of Julia are only available for x86.
#
# If `julia-wordsize` is 64, then we set `arch` to `${{ runner.arch }}`, which
# GitHub will automatically expand to the correct value (`x86_64` or `aarch64`)
# based on the architecture of the underlying GitHub Runner (virtual machine).
arch: ${{ matrix.julia-wordsize == '32' && 'x86' || runner.arch }}
- uses: julia-actions/julia-buildpkg@e3eb439fad4f9aba7da2667e7510e4a46ebc46e1 # v1.7.0
- uses: julia-actions/julia-runtest@678da69444cd5f13d7e674a90cb4f534639a14f9 # v1.11.2
with:
project: JuliaSyntax
35 changes: 35 additions & 0 deletions JuliaLowering/.github/workflows/CI.yml
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you move this into the top-level .github/ folder?

Copy link
Member Author

@c42f c42f Oct 26, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we might just delete it and do JuliaLowering testing on buildkite instead.

My current plan is to test JuliaSyntax + JuliaLowering against the DEV version of julia on buildkite and reserve Github actions for testing against historical Julia versions, just because the infrastructure for dealing with the historical versions exists already. (Happy to move that to buildkite in future, but for now that seemed the simplest way to get this over the line)

Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: CI
on:
push:
branches:
- main
tags: ['*']
pull_request:
workflow_dispatch:
concurrency:
# Skip intermediate builds: always.
# Cancel intermediate builds: only if it is a pull request build.
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }}
jobs:
test:
name: Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
version:
- 'nightly'
os:
- ubuntu-latest
arch:
- x64
steps:
- uses: actions/checkout@v4
- uses: julia-actions/setup-julia@v1
with:
version: ${{ matrix.version }}
arch: ${{ matrix.arch }}
- uses: julia-actions/cache@v1
- uses: julia-actions/julia-buildpkg@v1
- uses: julia-actions/julia-runtest@v1
16 changes: 16 additions & 0 deletions JuliaLowering/.github/workflows/CompatHelper.yml
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The CompatHelper.yml file can be deleted.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, there's a fair bit of cleanup we can do to some of the independent project-related stuff in both JuliaLowering and JuliaSyntax. I'll plan to do that in a separate PR.

Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
name: CompatHelper
on:
schedule:
- cron: 0 0 * * *
workflow_dispatch:
jobs:
CompatHelper:
runs-on: ubuntu-latest
steps:
- name: Pkg.add("CompatHelper")
run: julia -e 'using Pkg; Pkg.add("CompatHelper")'
- name: CompatHelper.main()
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
COMPATHELPER_PRIV: ${{ secrets.DOCUMENTER_KEY }}
run: julia -e 'using CompatHelper; CompatHelper.main()'
31 changes: 31 additions & 0 deletions JuliaLowering/.github/workflows/TagBot.yml
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The TagBot.yml file can be deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: TagBot
on:
issue_comment:
types:
- created
workflow_dispatch:
inputs:
lookback:
default: 3
permissions:
actions: read
checks: read
contents: write
deployments: read
issues: read
discussions: read
packages: read
pages: read
pull-requests: read
repository-projects: read
security-events: read
statuses: read
jobs:
TagBot:
if: github.event_name == 'workflow_dispatch' || github.actor == 'JuliaTagBot'
runs-on: ubuntu-latest
steps:
- uses: JuliaRegistries/TagBot@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
ssh: ${{ secrets.DOCUMENTER_KEY }}
1 change: 1 addition & 0 deletions JuliaLowering/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/Manifest.toml
21 changes: 21 additions & 0 deletions JuliaLowering/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2024 JuliaHub and contributors

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
22 changes: 22 additions & 0 deletions JuliaLowering/Project.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name = "JuliaLowering"
uuid = "f3c80556-a63f-4383-b822-37d64f81a311"
authors = ["Claire Foster <[email protected]> and contributors"]
version = "1.0.0-DEV"

[deps]
JuliaSyntax = "70703baa-626e-46a2-a12c-08ffd08c73b4"

[sources]
JuliaSyntax = {rev = "99e975a7", url = "https://github.com/JuliaLang/JuliaSyntax.jl"}

[compat]
julia = "1"

[extras]
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
Markdown = "d6f4376e-aef5-505a-96c1-9c027394607a"
FileWatching = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee"
REPL = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb"

[targets]
test = ["Test", "FileWatching", "Markdown", "REPL"]
Loading
Loading