Skip to content

Version 0.11.0

Compare
Choose a tag to compare
@Technologicat Technologicat released this 15 Nov 12:22
· 2523 commits to master since this release

"Spring cleaning in winter" edition:

New:

  • Add @callwith: freeze arguments, choose function later
  • Add withself: allow a lambda to refer to itself
  • Add let_syntax: splice code at macro expansion time
  • Add quicklambda: block macro to combo our blocks with MacroPy's quick_lambda
  • Add debug option to MacroPy bootstrapper

Enhancements:

  • prefix macro now works together with let and do

Bugfixes:

  • detect TCO'd lambdas correctly (no longer confused by intervening FunctionDef nodes with TCO decorators)
  • scoping: detect also names bound by For, Import, Try, With

Breaking changes:

  • Rename dynscope --> dynassign; technically dynamic assignment, not scoping
  • Rename localdef --> local; shorter, more descriptive
  • scanr now returns results in the order computed (CAUTION: different from Haskell)
  • simple_let, simple_letseq --> let, letseq in unpythonic.syntax.simplelet
  • cons now prints pythonically by default, to allow eval; use .lispyrepr() to get the old output
  • Remove separate dynvar curry_toplevel_passthrough; expose curry_context instead

Other:

  • Reorganize source tree, tests now live inside the project
  • Pythonize runtests, no more bash script
  • Add countlines Python script to estimate project size