Skip to content

Instantly share code, notes, and snippets.

@allison-casey
Created March 13, 2021 01:09
Show Gist options
  • Save allison-casey/4883322bf0d3027f00510417d4763e9f to your computer and use it in GitHub Desktop.
Save allison-casey/4883322bf0d3027f00510417d4763e9f to your computer and use it in GitHub Desktop.

Project Management

  • #1778 move from google groups
  • #1900 github actions for stale issues/PRs and package deployment
  • #1738 fancy landing page for Hy
  • #1751 move CI away from Travis
  • #957 add donation option to support hy dev
  • #1618 bring vim-hy up to date

Probably should be closed

  • #817 magically call (global sym) when using setv
    • adds magic unexpected behavior to core special form
  • #1089 add dynamic/special variables to Hy
    • diverges from "lipstick on python"
  • #1100 special cases auto-convert strings to symbols when when used as l-values
    • wrapping l-value in HySymbol works just fine and doesn't introduce magic behaviour
  • #1119 shorthand for :kwarg True/False etc
    • we've been moving away from special non-pythonic special forms (like implicit None in fn args) and this and falls under a similar category. Should probably be a transforming tag macro if anything
  • #1227 remove u"" form
    • u is discarded anyways and it aligns with python3 language ref
  • #1357 improve irc experience
    • IRC is dead
  • #1366 bring back apply
  • #1393 add condp to core
    • ifp was added to in contrib.destructure
  • #1396 shadow assoc
    • assoc returns None so why shadow?
  • #1406 consider backing HyList with a deque instead of list
    • no real evidence this is worth the effort to fix something that isn't broken
  • #1414 macro can't expand in the same module it's defined in if it uses a global from it
    • wrap in eval-when-compile
  • #1440 Flattening list of lists of dicts leads to surprising results
    • what and how something is iterable is different in python compared to clojure and the same behaviour shouldn't be expected
  • #1481 implicit tuple to slice construction
    • already covered by hy.contrib.slicing
  • #1492 Generate ExtSlice
    • ExtSlice has been removed since move to python3
  • #1703 scope of functions resulting form a macro expansion
    • May have already been fixed by changes to macro namespacing
  • #1728 atypecase macro (probably solved already via ifp)
  • #1774 packaging Hy code with zipapp does not work
    • zipapp fundamentally doesn't package dependencies with it and patching that is out of scope for the Hy team
  • #1796 kwargs with symbolic :keywords as keys
    • using keywords as dict keys is discouraged, even more so since #1977

NonCritical Features

  • #142 post-mortem debugging from repl (undocumented)
  • #234 curses based internals debugger
  • #290 race conditions (undocumented)
  • #464 cython code generator
    • even necessary?
  • #676 disassemble utility to show bytecode
  • #689 option to only check syntax
  • #722 real reader macros
    • may not be possible without complete rewrite of parser
  • #740 macro to check what features hy version program is using supports
  • #780 support RPython
  • #934 add IronPython and Jython support
  • #900 macrolet in walk
    • whats the difference between smacrolet and macrolet?
  • #. sharpsign-dot #. reader macro
    • is this just a reader for eval-and-compile?
  • #1019 support doctest with hy
  • #1181 time-it macro
    • similiar to existing contrib.profile
  • #1220 add pyrsistent tag macro to contrib
  • #1242 new seq abstraction
    • similar to contrib.sequence possibly a more general replacement?
  • #1318 add pre and post conditions to defn
    • can be done with decorators and probably should be in contrib if anywhere
  • #1323 make HyREPL embeddable simlilar to IPython.embed()
  • #1347 macro to def identical macro and defn version of a function
  • #1383 shadow cut
  • #1398 ci code quality (flake8, coverage, etc)
  • #1434 error messages color
  • #1435 delimit --spy output
  • #1441 introspecting -compile-table constructs
  • #1482 add clojure-like metadata ^{...} sym to Hy
  • #1577 shorter mangled names for common punctuation
  • #1655 provide a %%hy cell magic for IPython
  • #1704 internal python code formatting (black)
  • #1721 python->hy converter (not actionable until 1.0)
  • #1724 make inc/dec mutative (I think this is a bad idea or fixed with incv/decv)
  • #1737 every? should lose ? mark or some should gain one
  • #1769 make keyword dictionary access return a mutable reference
  • #1901 pyinstaller support

Maybe Features

  • #277 namespaced symbols
  • #915 get with default value
  • #952 decorators ugly, maybe bring in to fn form with something like @[dec1 dec]
  • #1018 make hy work with python -m package.module
  • #1108 extend . to accept calls
  • #1247 add #l tag macro/add mapv (more pythonic as lmap) to core
  • #1395 hy -i should support the debugger
  • #1407 get rid of autoimports viw new namespace
    • stopgap fixed with builtins pr
  • #1469 some-> and some->> threading macros
  • #1488 support more of CPython's command-line options
  • #1526 make pytest hy plugin
  • #1532 assoc for attrs
  • #1611 #, tuple tag macro
  • #1612 import syntax improvements
  • #1635 mangle leading - differently to prevent them from becoming module private
  • #1692 turn require into a macro
  • #1696 make inspect module compatible with Hy
  • #1723 inconsistent for syntax
  • #1753 sys.executable confuses python libraries
  • #1765 don't mangle hy symbols that collide with python reserved words
  • #1786 call multiprocessing.set-executable at startup
  • #1954 pattern matching support (python 3.10)

Necessary Features

  • #741 better syntax errors for debugging macros
    • need to check if this is still an issue
  • #1411 rethink fn args list
    • posonly and simplified arg format fixed in pr #1975
  • #1644 don't include the namespace in the import's name for hy models
  • #1693 remove internal importlib frames from traceback
  • #1856 support windows "embeddable zip file" release of python

Compiler Performance Optimizations

  • #842 nested if* waste assignments
  • #854 and/or converts to nested if's if they contain statements.
    • may not be issue now that setx exists.
  • #1315 hy is slow to startup (50ms)
  • #1342 arguments aren't always evaulated left to right
  • #1519 making HyList.replace self mutating means better performance
  • #1701 Make HyASTCompiler more stateless
  • #1741 add typed_ast package
  • #1928 consider changing Hy model objects' design

Necessary Bugfixes

  • #659 zipapps are broken
    • may have to recommend shiv?
  • #791 autoimports shadow assignments (fix in pr #1979)
  • #1041 eval can't see locals
  • #1045 NameError for HyList etc (fix in pr #1979)
  • #1324 pyc files don't get recreated when they use a macro from a file that was changed
    • #1467 byproduct of #1324
  • #1363 Hy models have wrong equality (= 'hello "hello") etc
    • #1509 unquote-splice interacts with HySymbol Weirdly
  • #1535 On Windows, REPL fails to start if there's a non-ASCII character in .hy-history
  • #1541 Pygments Hy lexer needs improvements (not actionable until 1.0?)
  • #1544 get rid of __init__ return suppression automagic (still an issue?)
  • #1564 mangling changes broke compiler (still an issue?)
  • #1565 #@() throws an IndexError (still an issue?)
  • #1617 hy-repr mishandles lexically illegal symbols and keywords
  • #1689 macros name shadowing/collisions and removal
  • #1690 hy repl doesn't open on clean install python3.7
  • #1730 macros do not like unpack-mapping
  • #1747 slow startup when Hy is installed from a wheel
  • #1823 unable to import pip-installed & conda-installed modules in anaconda managed venv
  • #1873 hy-repr shouldn't use the registered function of a supertype
  • #1897 require with relative path crashes the compiler
  • #1921 curses and sigwinch do not work properly
  • #1978 importing qualified macros re-imports hy.core.macros as qualified as well

Documentation Overhaul

  • #858 literal documention all over the place
  • #1036 better big picture view of codebase
  • #1358 document macro-error
  • #1450 document how let treats macros
  • #1455 document the hidden &name parameter in defmacro
  • #1490 relable good-first-bug to good first issue in documentation
  • #1592 why is it called Hy and what's the squid about?
  • #1596 document how you need to convert to HySymbol after modifying sym in macro
  • #1624 document how with-decorator interacts with fn
  • #1649 who uses hy page update
  • #1676 add documentation for package management
  • #1934 how to define __all__ using unmangled sym names

Bugfixes

  • #847 make False falsey in lif variants
  • #972 consistent style in hy src code
  • #1355 install fails on Mac via homebrew
    • upstream bug with python. need to check if this was ever fixed or if we need to fix this ourselves
  • #1465 loop/recur don't nest properly
  • #1591 read-str doesn't use the whole input
  • #1798 oddities in parsing of quote constructs
  • #1854 walk weaknesses
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment