hy icon indicating copy to clipboard operation
hy copied to clipboard

1.0 Feature Lock

Open allison-casey opened this issue 3 years ago • 11 comments

On the way to Hy 1.0 I think we need to lock down what we consider priority items to prevent feature creep and help us get 1.0 out the door sooner while we have some momentum. I've gone through the entire outstanding issue list and categorized what I think are necessary features/bugfixes as well some some things we might want to include in 1.0 but I want to get more discussion on. Feel free to dispute the categorizing of any of these issues. Some of them may also have been fixed, but just never got updated so if you see one of those you know is fixed let me know. A lot of these still need some discussion as to how we want to deal with them, but that discussion should take place in their respective issues. this is just to figure out what we want to focus on.

Necessary Features

  • hylang/hy#1644 don't include the namespace in the import's name for hy models
  • hylang/hy#1856 support windows "embeddable zip file" release of python
  • hylang/hy#1992 great core shakeup

Necessary Bugfixes

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

Maybe Features

  • hylang/hy#1693 remove internal importlib frames from traceback
  • hylang/hy#741 better syntax errors for debugging macros
  • hylang/hy#277 namespaced symbols
  • hylang/hy#952 decorators ugly, maybe bring in to fn form with something like @[dec1 dec]
  • hylang/hy#1018 make hy work with python -m package.module (is this possible?)
  • hylang/hy#1108 extend . to accept calls
  • hylang/hy#1395 hy -i should support the debugger
  • hylang/hy#1407 get rid of autoimports viw new namespace (stopgap fix in hylang/hy#1979)
  • hylang/hy#1488 support more of CPython's command-line options
  • hylang/hy#1526 make pytest hy plugin
  • hylang/hyrule#44 #, tuple tag macro
  • hylang/hy#1612 import syntax improvements
  • hylang/hy#1635 mangle leading - differently to prevent them from becoming module private
  • hylang/hy#1692 turn require into a macro
  • hylang/hy#1696 make inspect module compatible with Hy
  • hylang/hy#1723 inconsistent for/comprehension syntax
  • hylang/hy#1753 sys.executable confuses python libraries
  • hylang/hy#1765 don't mangle hy symbols that collide with python reserved words
  • hylang/hy#1786 call multiprocessing.set-executable at startup
  • hylang/hy#1954 pattern matching support (python 3.10)

Originally posted by @allison-casey in https://github.com/hylang/hy/discussions/2008

(this is more of an issue than a discussion topic i just got excited about our new discussions board lol)

allison-casey avatar Mar 29 '21 17:03 allison-casey

I'm not sure what the distinction is between this issue and https://github.com/hylang/hy/projects/1 . Oh well.

Hy's support for Windows is going to be nominal until we have a maintainer who cares about Windows and we regularly run the test suite on Windows. I wouldn't hold up 1.0 waiting for that.

hylang/hy#741 and hylang/hy#1693 would be nice to have, but I wouldn't postpone 1.0 for them, either, especially the former, which I imagine would be a lot of work and would then be buggy for a while.

I'm still opposed to "fixing" hylang/hy#1324.

hylang/hy#1541, hylang/hy#1823, and hylang/hy#1690 are too peripheral to Hy itself for me to think of them as 1.0 blockers. At least hylang/hy#1921 is about a built-in Python module.

Kodiologist avatar Mar 29 '21 18:03 Kodiologist

I'm not sure what the distinction is between this issue and https://github.com/hylang/hy/projects/1 . Oh well.

This is just the discussion as to what goes in to that project. I just put everything in for now and will remove what we decide we don't want here.

Once we get through the remaining critical issues, I can start looking in to getting Hy running on Windows.

hylang/hy#741 and hylang/hy#1693 would be nice to have, but I wouldn't postpone 1.0 for them, either, especially the former, which I imagine would be a lot of work and would then be buggy for a while.

Probably a good idea, they don't involve breaking syntax changes and we can look into them for 1.1. I'll move them out

I'm still opposed to "fixing" hylang/hy#1324.

I believe i mistook this issue for the pycache issue that's popped up about intermittent test fails surrounding macros https://github.com/hylang/hy/issues/1970#issuecomment-778221685 Which I think should definitely be fixed for 1.0. Is there an existing issue for that bug?

In my mind for us to be able to call something "1.0" it should at least work on the major platforms python supports. I've already offered to pick up Windows support once we get through the major syntax changes and I have an old mac lying around to see if hylang/hy#1690 is reproducible. hylang/hy#1541 and hylang/hy#1823 should probably be in nice to have and not necessary though.

I think we've decided against introducing namespaced symbols to Hy at this point. So that might also be something to drop from the maybe list

allison-casey avatar Mar 29 '21 18:03 allison-casey

I believe i mistook this issue for the pycache issue that's popped up about intermittent test fails surrounding macros hylang/hy#1970 (comment) Which I think should definitely be fixed for 1.0. Is there an existing issue for that bug?

I think bf6aa92c took care of that. If not, see if you can reproduce it and then open a new issue.

If you want us to get serious about Windows support, I think we need some kind of automatic test-running for it, like AppVeyor. Either that or somebody has to manually check for Windows regressions periodically.

Kodiologist avatar Mar 29 '21 18:03 Kodiologist

I think we need some kind of automatic test-running for it,

Good point. I'll take a look after I finish the compiler cleanup

allison-casey avatar Mar 29 '21 18:03 allison-casey

It seems me that outside of fixing obvious bugs, the best thing to do for Hy is to create better tooling. Outside of hy-mode and jedhy there doesn't seem to be anything Hy specific that actually works, and those are also rough around the edges.

This is a little orthogonal to the issue of language features, but it's also important in the grand scheme of things.

peaceamongworlds avatar Mar 29 '21 18:03 peaceamongworlds

hylang/hy#1897 should be fixed now by hylang/hy#2015

peaceamongworlds avatar Mar 29 '21 18:03 peaceamongworlds

hylang/hy#1873 should be fixed now

Are there tests for this?

allison-casey avatar Mar 29 '21 18:03 allison-casey

It seems me that outside of fixing obvious bugs, the best thing to do for Hy is to create better tooling. Outside of hy-mode and jedhy there doesn't seem to be anything Hy specific that actually works, and those are also rough around the edges.

This is a little orthogonal to the issue of language features, but it's also important in the grand scheme of things.

This has been a big one on my list as well. Once 1.0 is out the door i was going to pivot to focusing on tooling almost exclusively.

allison-casey avatar Mar 29 '21 18:03 allison-casey

hylang/hy#1873 should be fixed now

Are there tests for this?

I mentioned the wrong issue. It's meant to be hylang/hy#1897

peaceamongworlds avatar Mar 29 '21 18:03 peaceamongworlds

Update on the above: we test on Windows now (#2149).

Kodiologist avatar Aug 16 '21 12:08 Kodiologist

It seems me that outside of fixing obvious bugs, the best thing to do for Hy is to create better tooling. Outside of hy-mode and jedhy there doesn't seem to be anything Hy specific that actually works, and those are also rough around the edges. This is a little orthogonal to the issue of language features, but it's also important in the grand scheme of things.

This has been a big one on my list as well. Once 1.0 is out the door i was going to pivot to focusing on tooling almost exclusively.

I've not catched up with your team's progress for a year. I'd been a casual Hylang adopter back then. Can't wait for the tooling to be improved so that I could be with Hylang for long.

m1nhtu99-hoan9 avatar Jan 23 '22 13:01 m1nhtu99-hoan9

Out of curiosity, is the list here final for ver. 1.0, or does it need to be updated? One bug left...

wrobell avatar Jul 08 '23 09:07 wrobell

It's out of date. Let's just retire this issue.

Kodiologist avatar Jul 08 '23 11:07 Kodiologist