Skip to content

Releases: JuliaLang/JuliaSyntax.jl

v0.4.3

24 May 23:47

Choose a tag to compare

JuliaSyntax v0.4.3

Diff since v0.4.2

Merged pull requests:

  • fix typo in readme README.md ? (#292) (@filtron)
  • Fix showerror to include backtraces (#293) (@c42f)
  • Throw Meta.ParseError from Meta.parse() in Julia 1.10 (#294) (@c42f)

v0.4.2

23 May 20:08

Choose a tag to compare

JuliaSyntax v0.4.2

Diff since v0.4.1

Merged pull requests:

  • Make invalid UTF-8 an error in comments and strings (#289) (@c42f)
  • Clean up fixed world age mechanism to use closures (#290) (@c42f)
  • Additional syntax tests from Base test/syntax.jl (#291) (@c42f)

v0.4.1

18 May 10:55

Choose a tag to compare

JuliaSyntax v0.4.1

Diff since v0.4.0

Closed issues:

  • Disallow unbalanced bidirectional unicode in strings and comments (#242)
  • Fix remaining test failures in Base test/syntax.jl (#270)

Merged pull requests:

  • Fix token error ranges + highlighting for multibyte chars (#271) (@c42f)
  • Cleanup and fix operator predicates (#272) (@c42f)
  • Additional operators from upstream (#273) (@c42f)
  • Move remaining Expr tests to test/expr.jl (#274) (@c42f)
  • == operator for green trees (#275) (@c42f)
  • Normalize ℏ (\hslash) to ħ (\hbar) (#277) (@c42f)
  • Small fix for Expr(:incomplete) detection (#278) (@c42f)
  • Fixes for line number node insertion in short form blocks (#279) (@c42f)
  • Reference parser compat: Make toplevel error Exprs more compatible (#280) (@c42f)
  • Fix for block-vs-parameters in prefix call syntax (#281) (@c42f)
  • Allow var identifier as exception name in catch (#282) (@c42f)
  • Fixes for short form function locations (#284) (@c42f)
  • Disallow juxtaposition of strings with blocks (#285) (@c42f)
  • More precise errors for bad unicode characters (#286) (@c42f)
  • Re-add precompile (#287) (@c42f)
  • Disallow unbalanced bidirectional unicode (#288) (@c42f)

v0.4.0

08 May 22:10

Choose a tag to compare

JuliaSyntax v0.4.0

Diff since v0.3.5

Closed issues:

  • some errors when parsing test/syntax.jl (#3)
  • a b in REPL treated as incomplete (#110)
  • extra newline after error output in REPL (#111)
  • surprising error for two commas (#114)
  • Decide whether K"parens" should be visible to SyntaxNode (#239)
  • Add lineno support to core parser hooks (#241)
  • Remove vcat and hcat in favour of ncat (#266)
  • Prime parsing issues (#25)
  • Reworking some Julia AST forms (#88)
  • Better testing of SyntaxNode -> Expr conversion (#120)
  • Errors from fuzz testing (#186)
  • Remove bump_invisible() where possible (#219)
  • VSCode, OhMyREPL and JuliaSyntax. strange error in REPL (#236)
  • Works much slower for --compile=min (#243)
  • Large invalidations from uninferred AbstractString (#252)

Merged pull requests:

  • Support for lineno in core parser hooks (#259) (@c42f)
  • Fixes for Expr(:incomplete) detection (#260) (@c42f)
  • Improve error message for closing tokens in parse_atom (#261) (@c42f)
  • Minor fixes to test tools (#262) (@c42f)
  • Fix combined cartesian / flattened generators (#263) (@c42f)
  • Add braces node around T in x where {T} (#264) (@c42f)
  • Fix spurious warning for import A.: (#267) (@c42f)
  • Construct Expr directly from ParseStream (#268) (@c42f)
  • Remove K"parens" from SyntaxNode (#269) (@c42f)
  • Simplify child layout for try (#234) (@c42f)
  • Add parens node in special cases :(=) and :(::) (#237) (@c42f)
  • Conservative exports + rename parse() (#238) (@c42f)
  • Parsing standalone dotted operators as (. op) (#240) (@c42f)
  • Use importpath kind rather than K"." (#244) (@c42f)
  • Distinguish :x from quote x end with a flag (#245) (@c42f)
  • Big list of AST difference between Expr & GreenNode (#246) (@c42f)
  • Fix for detecting call heads in function signatures (#247) (@c42f)
  • Fix parsing of chained unary and unary type operators (#249) (@c42f)
  • Big cleanup of test case reduction utilities (#250) (@c42f)
  • Avoid crashing on ambiguous tokenization of char vs adjoint (#251) (@c42f)
  • Move all Expr conversion tests to test/expr.jl (#253) (@c42f)
  • Enclose grouping parentheses with parens node (#222) (@c42f)
  • Better conversion to Expr with parse(..., ignore_errors=true) (#224) (@c42f)
  • Clean up emit_diagnostic stream position handling (#225) (@c42f)
  • Allow parentheses in import paths and macro names (#226) (@c42f)
  • Various fixes for K"parens" nodes (#227) (@c42f)
  • Add isascii to normalize_identifier for 25% reduction in parse time (#228) (@ndinsmore)
  • Automatically reduce test failures General registry (#229) (@c42f)
  • Fix highlighting of empty source ranges (#231) (@c42f)

v0.3.5

27 Apr 00:50
0169166

Choose a tag to compare

JuliaSyntax v0.3.5

Diff since v0.3.4

Closed issues:

  • VSCode, OhMyREPL and JuliaSyntax. strange error in REPL (#236)
  • Works much slower for --compile=min (#243)
  • Large invalidations from uninferred AbstractString (#252)

Merged pull requests:

v0.3.4

27 Mar 22:51

Choose a tag to compare

JuliaSyntax v0.3.4

Diff since v0.3.3

Closed issues:

  • EOFError: read end of file when tokenizing a non finished char literal with backslash (#232)

Merged pull requests:

v0.3.3

17 Mar 20:19

Choose a tag to compare

JuliaSyntax v0.3.3

Diff since v0.3.2

Closed issues:

  • Error message in plain text discards visual location information (#61)

Merged pull requests:

  • add a very basic precompile workload (#213) (@KristofferC)
  • Add basic benchmark script + other rearrangments (#214) (@c42f)
  • Rewrite source range highlight() (#215) (@c42f)
  • Improve syntax diffing in General registry checker (#216) (@c42f)
  • Parse docstring attachment as K"doc" kind (#217) (@c42f)
  • Add PARENS_FLAG to tuple, block and macrocall (#218) (@c42f)
  • Various AST cleanups related to removing invisible tokens (#220) (@c42f)
  • Basic after-parse tokenization interface (#221) (@c42f)

v0.3.2

27 Feb 13:38
97e2825

Choose a tag to compare

JuliaSyntax v0.3.2

Diff since v0.3.1

Merged pull requests:

v0.3.1

23 Feb 21:04
9a038af

Choose a tag to compare

JuliaSyntax v0.3.1

Diff since v0.3.0

Closed issues:

  • Bad error message for 1.+1 (#57)
  • Add milestones (#167)
  • Copy error cases from reference tokenizer (#172)
  • Location of TypedSyntaxNode (#192)

Merged pull requests:

  • Allow different parsings of (a; b,) to compare equal (#184) (@c42f)
  • Parser fuzz testing tools and fixes (#185) (@c42f)
  • A few fixes for ranges of diagnostic messages (#187) (@c42f)
  • More fuzz testing tools and fixes (#188) (@c42f)
  • Allow SyntaxNode node[end] to get the last child (#189) (@c42f)
  • Add lineno to SourceFile (#191) (@timholy)
  • Split SyntaxNode into TreeNode & SyntaxData (#193) (@timholy)
  • Various improvements to the README (#195) (@waldyrious)
  • Fix various numeric literal token errors (#196) (@c42f)
  • Fix for operator-named macros: parse @+x as @+ x (#197) (@c42f)
  • Fix try catch else Expr conversion (#198) (@c42f)
  • first_line support in parse (#200) (@timholy)
  • Support begin/end indexing of SourceFile (#201) (@timholy)
  • Submit coverage reports to codecov (#203) (@timholy)
  • Improve test coverge of source_files, syntax_tree (#204) (@timholy)
  • Enable parsing of Base tests (#205) (@c42f)
  • Move value_parsing.jl to literal_parsing.jl (#206) (@c42f)
  • Remove byte_range from default printing of SyntaxNode (#207) (@c42f)
  • AbstractSyntaxNode generalization & convenience (#208) (@timholy)
  • Bump to 0.3.1 and remove old Printf dependency (#209) (@c42f)

v0.3.0

19 Jan 23:07

Choose a tag to compare

JuliaSyntax v0.3.0

Diff since v0.2.0

Closed issues:

  • .<: and .>: should not be parsed as unary operators (#38)
  • Failure to parse some octal escape sequences (#67)
  • Diagnostics for string->value conversion (#82)
  • Rework handling of . tokenization and dotted operator calls (#90)
  • AST inconsistency between parsing of = vs kw (#99)
  • Bug parsing exception spec in catch (#105)
  • no error for over-long character literal (#109)
  • missing error for ** (#112)
  • Incorrect parsing of -(a=2) (#113)
  • Incorrect precedence for indexing vs macros. (#115)
  • Incorrect parsing of function with parens. (#116)
  • Internal error parsing += (#117)
  • parsing error for comma after newline in between square brackets (#118)
  • Got ERROR: LoadError: MethodError: no method matching core_parser_hook(::String, ::String, ::Int64, ::Int64, ::Symbol) when using Visual Studio Code + Julia Language Support + Enable JuliaSyntax.jl at startup.jl (#128)
  • const without assignment should be an error except in struct (#129)
  • Could you do Julia 2.0 (parsing) as an option? (#141)
  • Wrong row reported for juxtaposed string error (#145)
  • Tokenizer shouldn't throw for invalid UTF-8 (#153)
  • Tokenization error with nested multiline comments (#170)
  • Runtime Julia 1.0 support (#180)

Merged pull requests:

  • Parse keyword args with = head rather than kw (#103) (@c42f)
  • Stricter parsing of exception names in catch $excname (#106) (@c42f)
  • Rework JuliaSyntax.parse() public API (#107) (@c42f)
  • Tweaks to allow vendoring into Base (#119) (@c42f)
  • Split char delimiters early and emit K"char" node (#121) (@c42f)
  • Fix incomplete detection for tree with no parents (#122) (@c42f)
  • Remove TRY_CATCH_FINALLY_FLAG (#123) (@c42f)
  • Record fixity of call type in flags (#124) (@c42f)
  • Bug fix for macro call square bracket whitespace (#125) (@c42f)
  • Always emit a block for let binding lists (#126) (@c42f)
  • Wrap var"" nonstandard identifiers in var nodes (#127) (@c42f)
  • Fix const struct field errors + cleanup global const AST (#130) (@c42f)
  • Permit parens in function call signatures (#131) (@c42f)
  • Add docs on how to use JuliaSyntax inside VSCode (#132) (@c42f)
  • More flattened form for multiple frakentuple parameters (#133) (@c42f)
  • Fixes for parse check of General registry (#135) (@c42f)
  • Fix for parsing end in A[x ? y : end] (#136) (@c42f)
  • Fix parsing of [a~b] (#137) (@c42f)
  • Fix for function signatures with grouping parens (#140) (@c42f)
  • Fix tokenization of 1.# (#142) (@c42f)
  • Fix tokenization of numbers followed by .. (#143) (@c42f)
  • Fixes for macro paths and call chain parsing (#144) (@c42f)
  • Lower @ . to @ __dot__ not in parser but in Expr conversion (#146) (@c42f)
  • Report bad macro names more clearly (#147) (@c42f)
  • Validate literals at parse time (#149) (@c42f)
  • Parse dotted calls with dotcall head (#151) (@c42f)
  • Add ignore_errors keyword to main parser API (#152) (@c42f)
  • Only warn when float literals underflow to zero (#154) (@c42f)
  • Fixes for tokenization of invalid UTF-8 strings (#155) (@c42f)
  • Fix source line reporting at EOF (#156) (@c42f)
  • Fix parsing of .&(x,y) (#157) (@c42f)
  • Improve registry testing tools (#158) (@c42f)
  • Fix operator category/precedence for ≔ ⩴ ≕ ≂ (#159) (@c42f)
  • Allow + prefix to be part of unsigned numeric literals (#160) (@c42f)
  • Make try without catch/finally an error (#161) (@c42f)
  • Fix dotcall tests (#162) (@c42f)
  • Fix where parameter conversion as in A where {X, Y; Z} (#163) (@c42f)
  • Fix Expr parameters in parenthesized macro calls (#164) (@c42f)
  • Avoid use of GlobalRef in SyntaxNode trees (#165) (@c42f)
  • Fix an obscure form of function definition (#166) (@c42f)
  • Fixes for obscure function definition forms (#168) (@c42f)
  • Trailing linebreak is not significant in hcat (#169) (@c42f)
  • Fix for tokenization of consecutive nested multiline comments (#171) (@c42f)
  • Fix = to kw conversion in x[a, b; i=j] (#173) (@c42f)
  • Fixes for parameters blocks in Expr(:curly) (#174) (@c42f)
  • Improve Expr comparison code for registry testing (#175) (@c42f)
  • Emit sensible errors for invalid operator tokens (#176) (@c42f)
  • Allow the syntax import A.:x for import A.x (#177) (@c42f)
  • Fix lowering of @. to @__dot__ in using A: @. (#178) (@c42f)
  • Fix deindentation with triple strings like """\n$x a""" (#179) (@c42f)
  • Fixes for General registry testing (#181) (@c42f)
  • Support for running JuliaSyntax on Julia 1.0 (#182) (@c42f)