Kodi Arfer 2b11b9be20 Automatically read and write bytecode
Importing or executing a Hy file now loads the byte-compiled version if it exists and is up to date, and if not, the source is byte-compiled after it's parsed.

This change can speed up Hy a lot. Here are some examples comparing run times of the current master (491b474e) to this commit, on my laptop with Python 3.6:

- `nosetests --exclude='test_bin'` goes from 3.8 s to 0.7 s (a 5-fold speedup)
- `hy -c '(print "hello world")` goes from 0.47 s to 0.20 s (a 2-fold speedup)
- Rogue TV's startup goes from 3.6 s to 0.4 s (a 9-fold speedup)

Accompanying changes include:

- `setup.py` now creates and installs bytecode for `hy.core`, `hy.contrib`, and `hy.extra`.
- The `hyc` command under Python 3 now creates bytecode in `__pycache__`, as usual for Python 3, instead of putting the `.pyc` right next to the source file like Python 2 does.

I've removed a test of `hy.extra.anaphoric.a-if` that triggers #1268 when the test file is byte-compiled and then hits some weird `macroexpand` bug or something when I try to work around that—Nose crashes when trying to produce an error message, and I can't seem to replicate the bug without Nose.
2017-04-14 13:38:33 -07:00
2014-04-30 01:51:21 +03:00
2017-04-14 13:38:33 -07:00
2015-10-01 10:08:04 +02:00
2014-10-06 13:37:51 -06:00
2014-09-08 14:56:04 +02:00
2017-03-09 07:24:07 -08:00
2014-11-22 10:28:31 -05:00
2013-04-05 20:04:36 -04:00
2016-12-25 14:17:32 -06:00
2017-04-14 13:38:33 -07:00
2017-04-14 13:38:33 -07:00

Hy

Build Status Downloads Version Coverage Status

XKCD #224

Lisp and Python should love each other. Let's make it happen. Try it.

Hylarious Hacks

OK, so, why?

Well. Python is awesome. So awesome, that we have so many tools to alter the language in a core way, but we never use them.

Why?

Well, I wrote Hy to help people realize one thing about Python:

It's really awesome.

Oh, and lisps are neat.

Cuddles the Hacker

(fan art from the one and only doctormo)

Project

Description
Hy fork
Readme 6.1 MiB
Languages
Python 50.7%
Hy 41.5%
reStructuredText 7.1%
Batchfile 0.4%
Makefile 0.3%