Skip to content

Conversation

@c42f
Copy link
Collaborator

@c42f c42f commented Jun 7, 2019

Various tweaks:

  • REQUIRE -> Project.toml
  • Use stdlib Test for testing. Most of the churn in the test cases is restricted to the first commit - view the commits separately to make this easier to review.
  • Fix various functions which are deprecated, including map over Set and Dict which no longer works.

The bigger fix here is to update codegen for julia 1.0:

  • Completely redo and simplify how macro escaping works for @lisp_str and codegen. The entire expression is now escaped, and we defer scoping decisions (mainly in let) to the julia compiler. For the few cases where functions from LispSyntax itself need to be called, they are now unescaped by splicing into the generated AST as function references rather than symbols.
  • Fix various Exprs where the form has changed between julia 0.4 or so and julia 1.0 (let, using; maybe a couple more)

Fixes #19 by obsoleting it.

@JeffBezanson happy Friday :-)

c42f added 4 commits June 7, 2019 14:27
* REQUIRE -> Project.toml
* Updates to various deprecated functions
* Use stdlib Test for tests
* Completely redo and vastly simplify how macro escaping works for @
  lisp_str and codegen. The entire expression is now escaped, and we
  defer scoping decisions (in, eg, let) to the julia compiler.  For the
  few cases where functions from LispSyntax itself need to be called,
  they are now unescaped by splicing into the generated AST as function
  references rather than symbols.

* Fix various Exprs where the form has changed between julia 0.4 or so
  and julia 1.0 (let, using; maybe a couple more)

* map over Set and Dict no longer works. Replace that with the use of
  generators.
@c42f
Copy link
Collaborator Author

c42f commented Jun 7, 2019

I also bumped the version to 0.2.0. Could be 1.0.0 though, if you think that's appropriate.

@c42f
Copy link
Collaborator Author

c42f commented Jun 7, 2019

Tests pass on all of 1.0, 1.1 and 1.2 on macOS + linux. That's a lot of nice green ticks.

@swadey
Copy link
Owner

swadey commented Jun 7, 2019

hey, this is awesome. Thanks for doing all this hard work. I haven't had the time to update to 1.0.

@swadey
Copy link
Owner

swadey commented Jun 7, 2019

@c42f If you're interesting taking over this project too, let me know... As with LispREPL, I have limited time in the coming year.

@c42f
Copy link
Collaborator Author

c42f commented Jun 8, 2019

Thanks, I'll think about it.

For context, this is all related to the discussion going on over at JuliaLang/julia#32201 (hence me spamming Jeff above).

I'm actually not sure LispSyntax.jl is exactly what we need there, but it's certainly related and it seemed like a cool project so I thought I'd modernize it.

Feel free to give me commit access and I'll prepare a release if you like (0.2.0 or 1.0.0 - your thoughts?) I don't want to promise to maintain this quite yet; my focus is on making something which works for use in those Base tests.

@swadey
Copy link
Owner

swadey commented Jun 8, 2019

probably 0.2.0 given that there's still quite a bit of unimplemented features.

Commit access is yours :)

@c42f
Copy link
Collaborator Author

c42f commented Jun 9, 2019

Thanks. The new package registration process needs Registrator (and optionally TagBot) to be installed. If you don't have them installed already could you add registrator to this repo please:

@swadey
Copy link
Owner

swadey commented Jun 9, 2019

done.

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.

Getting this running on Julia 0.6 / 07 ?

2 participants