1249 Commits

Author SHA1 Message Date
Paul R. Tagliamonte
aadf47ed99 documenting hy.core.mangles 2013-04-18 22:50:46 -04:00
Paul R. Tagliamonte
23773a5117 docstrings on the mangle 2013-04-18 22:44:03 -04:00
James King
20b776aeb2 Removed redundant expression from _parse_lambda_list 2013-04-18 22:32:08 -04:00
James King
1080a457b1 Implemented &key and added tests 2013-04-18 22:27:38 -04:00
Julien Danjou
049c019791 Remove useless check
Signed-off-by: Julien Danjou <julien@danjou.info>
2013-04-18 19:08:19 -07:00
James King
263d7af0fc Added line and column offsets 2013-04-18 18:39:49 -04:00
James King
70e0d88149 WIP - Added &key support 2013-04-18 17:47:08 -04:00
James King
18ed72136f Merge branch 'master' into feature/lambda-list-keyword
Conflicts:
	hy/compiler.py
	hy/lex/states.py
	hy/util.py
	tests/compilers/test_ast.py
	tests/lex/test_lex.py
2013-04-18 15:17:30 -04:00
Paul R. Tagliamonte
d3a019b3dd Don't quote things in (quote) - Closes #129 2013-04-17 23:20:56 -04:00
Paul R. Tagliamonte
3f362bc318 Merge branch 'unary_minus' of github.com:khinsen/hy 2013-04-16 23:07:32 -04:00
Konrad Hinsen
270a619cf7 Simplify the decorator hy.compiler.builds
Not so much for the efficiency gain, but to save keystrokes in the
debugger when looking at methods with lots of builds decorators.
2013-04-16 17:53:02 +02:00
Konrad Hinsen
41a9ce28f0 Implement unary minus 2013-04-16 17:43:40 +02:00
Paul R. Tagliamonte
4888589f59 Callin' this 0.9.6 2013-04-15 22:36:50 -04:00
Julien Danjou
475c2b6b63 Use HyTypeError to raise else' errors in foreach'
Signed-off-by: Julien Danjou <julien@danjou.info>
2013-04-15 11:47:11 -07:00
Paul R. Tagliamonte
7b4d4fb371 Merge branch 'jd/finally' of git://github.com/jd/hy into pr-94 2013-04-14 21:57:11 -04:00
Paul R. Tagliamonte
da33f41753 some style fixes for @algernon 2013-04-14 21:54:15 -04:00
Paul R. Tagliamonte
a5a54fc7eb Merge branch 'f/smart-import' of git://github.com/algernon/hy into pr-113 2013-04-14 21:32:22 -04:00
Paul R. Tagliamonte
3b3768853a Merge branch 'jd/remove-pass' of git://github.com/jd/hy into pr-122 2013-04-14 21:09:47 -04:00
Paul R. Tagliamonte
5d0b1a5e1e Merge branch 'jd/for-else' of git://github.com/jd/hy into pr-121 2013-04-14 21:05:55 -04:00
Julien Danjou
bbaab58a4c Implements else' for foreach' statements
Signed-off-by: Julien Danjou <julien@danjou.info>
2013-04-15 02:50:26 +02:00
Julien Danjou
c05ae5fcbc Add AugAssign handling
Signed-off-by: Julien Danjou <julien@danjou.info>
2013-04-15 02:49:34 +02:00
Julien Danjou
60a9003b0c Add missing bits operator and power
Signed-off-by: Julien Danjou <julien@danjou.info>
2013-04-15 02:49:34 +02:00
Julien Danjou
6a09179809 Enhance error handling
We now have a full backtrace if the compiler bugs, and if it's a user
problem we indicate him where he failed.

Signed-off-by: Julien Danjou <julien@danjou.info>
2013-04-15 02:48:58 +02:00
Julien Danjou
fdb6bf944c try: add support for `finally'
This fixes #75

Signed-off-by: Julien Danjou <julien@danjou.info>
2013-04-15 02:48:58 +02:00
Julien Danjou
cb20910d93 Remove `pass' from the language.
This also fixes a bug in the pass optimize missing branch where the code is
something like: [stmt, [], stmt]; in such case we want to filter out [], so
if we end up with [] we can optimize it. This fix is needed otherwise (do)
inside (do) are not properly optimized.

Signed-off-by: Julien Danjou <julien@danjou.info>
2013-04-14 13:56:44 +02:00
Gergely Nagy
5d895c2005 Making (import) a lot smarter
With these changes, the import function will become a lot smarter, and
will combine all of import, import-from and import-as in a hyly lispy
syntax:

 (import sys os whatever_else)
 (import [sys [exit argv]] [os :as real_os]
         [whatever_else [some_function :as sf]])

That is, each argument of import can be:

 - A plain symbol, which will be imported
 - A list, which will be handled specially

If the argument is a list, the first element will always be the module
name to import, the second member can be either of these:

 - A list of symbols to import
 - The ':as' keyword
 - Nothing

If it is the ':as' keyword, the third argument must be an alias. If it
is a list of symbols to import, we'll iterate through that list too. If
any symbol is followed by an ':as' keyword, we'll pick all three, and
treat the third member as an alias. If there is nothing else in the
list, we'll import the module as-is.

All this combined fixes #113.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2013-04-13 15:06:31 +02:00
Vladimir Gorbunov
f30e7cd99b Fix hyc 2013-04-13 16:28:37 +04:00
Paul R. Tagliamonte
f295b10f52 Updating yield. 2013-04-12 23:48:58 -04:00
Paul R. Tagliamonte
a71f166610 Merge branch 'future_division' of github.com:khinsen/hy into pr-106 2013-04-12 23:07:40 -04:00
Nicolas Dandrimont
d5db2840ad Don't punycode pure unicode strings. 2013-04-12 20:42:40 +02:00
Nicolas Dandrimont
65c08c8c7d Factor str_type into hy.util 2013-04-12 20:42:39 +02:00
Paul Tagliamonte
e4e61a463e Adding in the new models. 2013-04-12 09:18:25 -04:00
Paul Tagliamonte
1f4ed473d3 Style fixes; function declashing. 2013-04-12 09:11:56 -04:00
Paul Tagliamonte
3ec828e660 Merge branch 'float_and_complex' of git://github.com/khinsen/hy into pr-109 2013-04-12 09:09:38 -04:00
Paul Tagliamonte
c15d8750e8 Merge branch 'f/hy.models.keyword' of git://github.com/algernon/hy into pr-101 2013-04-12 08:58:38 -04:00
Paul Tagliamonte
94d2c381a5 Merge branch 'lexer_extensions' of git://github.com/khinsen/hy into pr-98 2013-04-12 08:55:13 -04:00
Konrad Hinsen
0c56885d42 Use __future__.division for all Hy code
Fixes #106
Note: This is implemented by replacing all calls to Python's
builtin "compile" function by calls to hy.importer.compile_,
which adds the "future division" flag. Anyone using "compile"
in future work will have to remember this.
2013-04-12 05:23:25 +02:00
Paul R. Tagliamonte
db3e2bd346 updating the nested mangles 2013-04-11 22:25:23 -04:00
James King
9ff3b128b4 Got &rest working, tests pass
Did a little house cleaning in lex states.py too and started removing
stupid print() statements.
2013-04-11 12:00:27 -04:00
Gergely Nagy
702811c69a Implement :keyword support
This implements keywords, ":" prefixed symbols that are able to look
themselves up in a collection. They're internally stored as strings that
start with "\ufdd0".

This fixes #22.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2013-04-11 15:13:26 +02:00
Konrad Hinsen
e3a9909a7e Implement integer division operator
Fixes #107
2013-04-11 10:09:15 +02:00
Paul R. Tagliamonte
eee65f3051 Update to the style. 2013-04-10 23:11:54 -04:00
Paul R. Tagliamonte
b65f78a0c7 Adding in this barf of a hack beacuse it pleases me. 2013-04-10 23:06:55 -04:00
Paul R. Tagliamonte
f6b94b1b40 Avoiding breaking PyPy. Wat. 2013-04-10 23:00:42 -04:00
Paul R. Tagliamonte
d25d354281 Adding in on-the-fly-importing. 2013-04-10 22:51:58 -04:00
Paul R. Tagliamonte
644f2756f3 Fixing the raised Exception. 2013-04-10 21:49:27 -04:00
Paul R. Tagliamonte
1adf64839a Updating travis; exceptions. 2013-04-10 21:44:23 -04:00
Paul R. Tagliamonte
65db83d1ff moving atoms around to make it easier for internals. 2013-04-10 20:04:58 -04:00
James King
484a96abae WIP - Move _parse_lamba_list to the functiondef 2013-04-10 16:52:28 -04:00
James King
160eaaa543 Merge branch 'develop' into feature/lambda-list-keyword 2013-04-10 15:14:45 -04:00