Brandon T. Willard 010986e8ca Implement minimal macro namespacing and add tests
This commit adds just enough namespacing to resolve a macro first in the macro's
defining module's namespace (i.e. the module assigned to the `HyASTCompiler`),
then in the namespace/module it's evaluated in.  Namespacing is accomplished by
adding a `module` attribute to `HySymbol`, so that `HyExpression`s can be
checked for this definition namespace attribute and their car symbol resolved
per the above.

As well, a couple tests have been added that cover
- the loading of module-level macros
  - e.g. that only macros defined in the `require`d module are added
- the AST generated for `require`
  - using macros loaded from modules imported via bytecode
- the non-local macro namespace resolution described above
  - a `require`d macro that uses a macro `require` exclusively in its
    module-level namespace
- and that (second-degree `require`d) macros can reference variables within
  their module-level namespaces.

Closes hylang/hy#1268, closes hylang/hy#1650, closes hylang/hy#1416.
2018-11-08 22:57:17 -06:00
2014-04-30 01:51:21 +03:00
2014-10-06 13:37:51 -06:00
2014-09-08 14:56:04 +02:00
2018-07-21 11:20:10 -07:00
2014-11-22 10:28:31 -05:00
2018-08-18 18:05:40 -04:00
2018-01-01 10:38:33 -05:00
2017-04-26 14:00:11 -07:00
2018-02-13 15:31:52 -08:00
2018-09-11 16:26:21 -04:00
2018-03-06 11:50:17 -08:00
2018-08-18 18:05:40 -04:00
2018-02-14 16:05:31 -05:00

Hy

Build Status Version

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%