Brandon T. Willard
144a7fa240
Produce Python AST for require
statements and skip self require
s
...
Closes hylang/hy#1211 .
2018-11-08 22:57:17 -06:00
Brandon T. Willard
a9763b34cf
Fix sys.modules
for failed imports in Python 2.7
...
Newly imported modules with compile and/or run-time errors were not being
removed from `sys.modules`. This commit modifies the Python 2.7 loader so that
it follows Python's failed-initial-import logic and removes the module from
`sys.modules`.
2018-09-29 20:57:28 -05:00
Brandon T. Willard
96f99c29d1
Fix missing import in doc
macro expansion
2018-09-24 16:39:13 -04:00
Brandon T. Willard
c0c5c9c699
Make cmdline Hy process unknown filetypes as Hy source
...
This change a Hy-preferring `runhy` that is used by cmdline Hy. Standard
`runpy` is still patched so that it can run `.hy` files, but the default
behaviour for unknown filetypes is preserved (i.e. assume they are Python
source).
Closes hylang/hy#1677 .
2018-09-24 16:27:50 -04:00
Brandon T. Willard
a9fca8001e
Fix AST handling of docstrings and __future__ ordering
...
This closes hylang/hy#1367 and closes hylang/hy#1540
2018-09-11 16:26:21 -04:00
Brandon T. Willard
5d325a5156
Add a test for module docstrings
2018-08-27 01:02:29 -05:00
Brandon T. Willard
bbc66d0042
Add test for shadowed-basename imports
...
This test ensures that Hy will load a `.hy` instead of a `.py` counterpart.
2018-08-26 00:27:36 -05:00
Brandon T. Willard
1da29417fe
Add test for circular imports
...
Closes hylang/hy#1134 .
2018-08-26 00:27:36 -05:00
Brandon T. Willard
cbaba4a10a
Use Python cmdline file-relative sys.path
...
Closes hylang/hy#1457 .
2018-08-26 00:27:21 -05:00
Brandon T. Willard
c022abc831
Add Python cmdline bytecode option and set sys.executable
...
Closes hylang/hy#459 .
2018-08-26 00:17:12 -05:00
Brandon T. Willard
4839acadf7
Add tests for importing __main__.hy files
...
Closes hylang/hy#1466 .
2018-08-25 22:50:45 -05:00
Brandon T. Willard
e9e7171b56
Add module reloading tests
2018-08-25 22:50:45 -05:00
Brandon T. Willard
87a5b117a1
Implement new importer using PEP-302 semantics
...
Python 3.x is patched in a way that integrates `.hy` source files into
Pythons default `importlib` machinery. In Python 2.7, a PEP-302 "importer"
and "loader" is implemented according to the standard `import` logic (via
`pkgutil` and later pure-Python `imp` package code).
In both cases, the entry-point for the loaders is through `sys.path_hooks` only.
As well, the import semantics have been updated all throughout to utilize
`importlib` and follow aspects of PEP-420. This, along with some light
patches, should allow for basic use of `runpy`, `py_compile` and `reload`.
In all cases, if a `.hy` file is shadowed by a `.py`, Hy will silently use
`.hy`.
2018-08-25 22:50:38 -05:00
gilch
109c0b0f5b
Merge pull request #1664 from brandonwillard/require-in-macroexpand-all
...
Expand `require`d macros in `macroexpand-all`
2018-08-02 23:57:32 -06:00
Brandon T. Willard
65b2bd18ce
Add a test for require
in the body of a macro
2018-07-25 17:20:19 -05:00
Kodi Arfer
081a710b0f
Fix handling of unpacking in method calls and attribute lookups
2018-07-24 09:45:00 -07:00
Kodi Arfer
271f2846dc
Minor cleanup in test_ast
2018-07-24 09:37:19 -07:00
Kodi Arfer
1d2c73165d
Make HyKeyword callable
...
Co-authored-by: Simon Gomizelj <simon@vodik.xyz>
2018-07-24 09:19:37 -07:00
Kodi Arfer
03aafad657
Make empty expressions illegal at the top level
2018-07-24 08:59:52 -07:00
Kodi Arfer
9af738e56d
Add hy2py tests for empty data structures
2018-07-21 11:20:13 -07:00
gilch
0de8557fb5
Merge pull request #1647 from gilch/let-rebind
...
Fix let rebind bug.
2018-07-08 21:52:32 -06:00
Kodi Arfer
9c6714c176
Remove unused imports
2018-06-30 11:04:11 -07:00
gilch
8c79015b40
Fix let rebind bug.
2018-06-27 23:41:49 -06:00
gilch
9a8886a452
Proper special indent in let tests.
2018-06-27 23:38:06 -06:00
Kodi Arfer
7abd8ffc2a
Make importing a dotted name a syntax error, per Python
2018-06-27 10:24:22 -07:00
Oskar Kvist
edbe8e3b7f
Make defmacro! work with optional args
2018-06-25 11:45:23 -07:00
Kodi Arfer
14979edcab
Remove tests of the old comprehension forms
2018-06-13 17:31:08 -07:00
Kodi Arfer
cf0dafef9b
Update uses of the old comprehension forms
2018-06-13 17:31:08 -07:00
Kodi Arfer
df4e49ec94
Test comprehension scoping
2018-06-13 17:31:08 -07:00
Kodi Arfer
4754b152a9
Allow comprehensions with no looping parts
2018-06-13 17:31:08 -07:00
Kodi Arfer
e1972c535f
Remove for/a
, for*
, and for/a*
2018-06-13 17:31:08 -07:00
Kodi Arfer
3256932b13
Add a version of for
parallel to lfor
etc.
2018-06-13 17:31:08 -07:00
Kodi Arfer
ba1dc55e96
Implement lfor
, sfor
, gfor
, dfor
2018-06-13 17:31:08 -07:00
Kodi Arfer
d621d7c3ab
Update defmacro(/g)! tests for mangling
2018-06-11 21:05:29 -07:00
Kodi Arfer
65e620ed55
Remove an obsolete bug workaround in a test
2018-06-11 21:05:29 -07:00
gilch
29130212f0
Merge pull request #1631 from Kodiologist/py37-updates
...
Get Travis and Python 3.7 working again
2018-06-11 20:53:51 -06:00
Kodi Arfer
79bd4b019c
Merge pull request #1623 from Kodiologist/model-pattern-docs
...
Add tests and docs for model patterns
2018-06-11 16:35:02 -07:00
Kodi Arfer
16ec46a473
Update docstring handling for Python 3.7
...
See https://github.com/python/cpython/pull/7121 .
2018-06-05 17:35:48 -07:00
Kodi Arfer
74bf3e9e81
Work around a scoping bug in multi.defn ( #1630 )
2018-06-05 10:23:32 -07:00
Kodi Arfer
3204a9e8a3
Streamline auto-promotion and position spoofing
...
Auto-promotion now occurs in only two cases: when we start the compiler and when we expand a macro. It's fully recursive so even a non-model nested in a model will be promoted.
This change fixes some regressions induced by the stricter type checks of the pattern-matching compiler.
2018-06-05 09:23:21 -07:00
Kodi Arfer
a38c948ed2
Fix a regression with mangling module names
2018-06-03 15:38:49 -07:00
Kodi Arfer
6458f2d66f
Re-enable tests that were stymied by an astor bug
2018-05-29 09:18:42 -07:00
Kodi Arfer
8296a36e12
Add tests and docs for model patterns
2018-05-28 16:15:47 -07:00
Kodi Arfer
9f454f0228
Test complex numbers in test_hy2py
2018-05-20 14:11:35 -07:00
Kodi Arfer
906b470499
Move test assertions into a test function
2018-05-20 14:11:35 -07:00
Kodi Arfer
210086c7ca
Clean up the decorators used in the compiler
2018-05-20 14:11:35 -07:00
Kodi Arfer
57b5fa49b1
Unify illegal special forms
2018-05-20 14:11:31 -07:00
Kodi Arfer
45e8783997
Use model patterns for fn
2018-05-20 14:07:44 -07:00
Kodi Arfer
9368e4bc4e
Use model patterns for import
and require
...
In the process, I've banned the syntax `(import [foo])` in favor of `(import foo)`.
2018-05-20 14:07:44 -07:00
Kodi Arfer
79c02514b9
Introduce the use of model patterns
2018-05-20 14:07:44 -07:00