gilch
gilch
One of the primary goals of Hissp is to have good error messages. There are multiple stages to compilation and errors could happen in any of them, which makes debugging...
100% test coverage doesn't mean that everything is actually tested. I'm not even sure if I've covered all my lines yet. I think the compiler could use a little refactoring,...
Displaying the inner workings of the compiler just adds noise for the end user.
Here's a simplified example in Common Lisp of what I'm trying to do. ``` Lisp * (let ((foo 2)) (eval `(let ((foo 1)) (eval `(print ,foo))))) 1 1 * (let...
The new `let` implementation (actually the improved `macroexpand-all` function it's built upon) required this feature. But it should be documented. `defmacro` now automatically has an `&name` parameter which is set...
There are other implementations of Python that we're not testing with Hy. We should add them to our testing if possible. If Hy is fundamentally incompatible with a given implementation,...
From a discussion in #1346 ```Hy (defmacro defshadowed [name args &rest body] `(do (defmacro ~name ~args ~@body) (defn ~name ~args (~name ~@args)))) ``` ```Python => (defshadowed zerop [x] ... `(=...
Depends on #824. Related #842. Even in the case that `and`/`or` contains a statement, it may have several expressions in a row that don't need to be converted to `if`...
Conditionals containing statements are doing unnecessary work. I know, Python is not renowned for its performance, but let's not make it worse. This kind of thing can matter inside nested...
This works at the repl. ```Hy => (setv x "Spam!") => (defmacro foo [] `(print ~x)) => (foo) Spam! ``` But if you put it in a module, ```Hy ;;;...