Commit Graph

1421 Commits

Author SHA1 Message Date
Konrad Hinsen
3321daa4cf Add "spy mode" to REPL
With the command-line option --spy, the Hy REPL prints the Python
equivalent of each expression before evaluating it.
2013-08-19 15:27:55 +02:00
Paul Tagliamonte
1c12b2870e Add yield from via macro magic.
This will let us use (basic) yield from behavior from Python 2. This
 isn't complete, and is low-hanging fruit for others willing to hack
 on hy.

 I've also changed the macrosystem to allow for proper bootstrapping.
 This is similar to how it's done elsewhere in the codebase (stdlib
 stuff).
2013-08-17 11:37:48 -04:00
Paul Tagliamonte
bffe3a05fa Merge branch 'master' into pr/271 2013-08-17 11:04:24 -04:00
agentultra
43d8db628b Add james@agentultra to copyright header 2013-08-10 20:23:11 -04:00
Paul Tagliamonte
b2951349b2 Merge branch 'master' into pr/232 2013-08-10 17:05:50 -04:00
Tuukka Turto
99ba2880a6 minor fix 2013-08-05 23:30:03 +03:00
Tuukka Turto
7709509ed3 documenting defn / defun 2013-08-05 23:23:35 +03:00
Tuukka Turto
635e47b2cb documentation for defun / defn and let 2013-08-05 21:56:57 +03:00
Bob Tolbert
fd53e653df Merge pull request #268 from rwtolbert/new_core_functions_3
Add back some missing changes from PR #236
2013-07-29 08:15:30 -07:00
Bob Tolbert
41ae4f4d2c Update:
Updated most methods to replace While with For, and added tons of new tests
    for things like (cycle []) and lists with None's in them.

    thanks @olasd

Add set of new core functions

Add set of new core functions to the stdlib.

Moved the auto-import code from compile_expression to
HySymbol so that "even?' in this style expression will
be found and imported.

(list (filter even? [1 2 3 4 5]))

The core functions are documented in 2 sections, one
for basic functions like (even?..) and (nth ...) and
one for all the sequence functions.

Update: This removes all the caching decorators, misnamed as
'lazy-seq' from the core. All sequence methods now just use
yield to return a generator, so they are Python-lazy

Further refinements of core functions

Cleaned up the docs to use 'iterator' instead of 'generator'

Fixed drop to just return the iterator instead of an extra
yield loop. But also added a test to catch dropping too
many.
2013-07-29 08:52:28 -06:00
Nicolas Dandrimont
51358e0f4b Add some machinery to avoid importing hy in setup.py 2013-07-28 19:34:59 +02:00
Nicolas Dandrimont
81af09d002 Wire the rply parser
Amend the tests to account for the changes
2013-07-28 17:36:36 +02:00
Nicolas Dandrimont
2ed299676f Add a rply-based parser 2013-07-28 17:36:36 +02:00
Nicolas Dandrimont
c8605feaea Add an rply-based lexer 2013-07-28 17:36:36 +02:00
Nicolas Dandrimont
ce22e49b50 Add rply to dependencies
Use the hylang fork until mainline grows the source position patch.
2013-07-28 17:36:36 +02:00
Bob Tolbert
e138af8b94 Merge pull request #267 from olasd/bugfix/quote-lambdalistkeyword
Allow quoting lambda list keywords.
2013-07-27 17:15:20 -07:00
Nicolas Dandrimont
9278b24318 Allow quoting lambda list keywords.
This fixes an obvious bug where LambdaListKeywords couldn't be quoted.
2013-07-28 00:38:16 +02:00
Paul Tagliamonte
acfc5c6aa5 Merge branch 'master' into pr/236 2013-07-27 10:22:38 -04:00
Bob Tolbert
d960dc963f Add CL handling to hyc
This adds real command line handling to 'hyc' for issue #256

This fix catches missing/unreadable files and prints a nice
error message instead of a nasty stack trace when trying to
compile a non-existent file.

Also add this non-existent file check to hy to prevent the
current stack trace from something like "hy foobarbaz" when
"foobarbaz" doesn't exist.

also changes the failure return value to 2 to match Python.
2013-07-26 08:40:56 -06:00
Paul Tagliamonte
6d9b93567d Merge branch 'master' into pr/262 2013-07-23 00:08:32 -04:00
Paul Tagliamonte
7aa000b6a0 Merge branch 'master' into pr/263 2013-07-23 00:07:11 -04:00
Paul Tagliamonte
68ade73dd1 Merge branch 'master' into pr/258 2013-07-23 00:05:58 -04:00
Tuukka Turto
6665a2b490 clarified rest / cdr, cleaned up require 2013-07-23 06:39:29 +03:00
Tuukka Turto
151ac69ce8 working on documenting builtins 2013-07-23 00:36:34 +03:00
Tuukka Turto
c6410b7050 cond documentation 2013-07-22 23:59:21 +03:00
Tuukka Turto
ec76c6bee0 documentation for require
working on documenting macros
2013-07-22 23:36:59 +03:00
Guillermo Vaya
82e8598cd6 fix to assoc docs + new multiassoc definition 2013-07-22 18:48:21 +02:00
Julien Danjou
a71e09b1cf Merge pull request #260 from rahmu/master
Fixes a mistake (most probably a typo) in the tutorial.
2013-07-21 00:56:42 -07:00
Joe H. Rahme
b761c7dc83 Fixes a mistake (most probably a typo) in the tutorial. 2013-07-21 02:59:35 +02:00
Tuukka Turto
a786577a8b documentation for global 2013-07-19 15:57:25 +03:00
Tuukka Turto
22d8a78330 better macro example 2013-07-19 12:06:23 +03:00
Nicolas Dandrimont
a17dcdbffb Make with return the last expression from its branch
Thanks @rwtolbert for the bug report
2013-07-19 00:43:12 +02:00
Tuukka Turto
d580351b41 initial macrodef documentation 2013-07-18 15:00:24 +03:00
Paul Tagliamonte
ad86dff754 Merge branch 'master' into pr/254 2013-07-18 00:00:42 -04:00
Guillermo Vaya
099ad28ad1 added @paultag suggestions 2013-07-17 15:57:13 +02:00
rwtolbert
348eaaa0f4 Merge pull request #243 from paultag/paultag/bugfix/fix-yield
Fix yielding to not suck (#151)

yay team
2013-07-16 18:27:14 -07:00
Paul Tagliamonte
d3e3334bb4 Merge branch 'master' into pr/252 2013-07-16 21:11:12 -04:00
Paul Tagliamonte
8283920402 Merge branch 'master' into pr/251 2013-07-16 21:09:00 -04:00
Paul Tagliamonte
967bb95534 Merge branch 'master' into pr/237 2013-07-16 21:05:31 -04:00
Paul Tagliamonte
3dde930ede Merge branch 'master' into pr/236 2013-07-16 20:57:29 -04:00
Guillermo Vaya
6778e9b2e1 added @tuturto sugesstions and flake8 errors 2013-07-16 20:41:56 +02:00
Tuukka Turto
624dfdc8c9 clarified foreach - else 2013-07-16 20:23:38 +03:00
Guillermo Vaya
dda291cfb5 make assoc accept multiple values, also added a even/odd check for checkargs 2013-07-16 14:35:57 +02:00
Bob Tolbert
c42492ad84 Fix missing docstrings from defclass issue #248
Added ability to parse doc strings set in defclass declarations,
likei:

(defclass Foo [object]
  "this is the doc string"
  [[x 1]])
2013-07-15 06:58:08 -06:00
Joe H. Rahme
a85ba71a20 Removes link to interactive demo from docs 2013-07-15 10:45:42 +02:00
Paul Tagliamonte
7c91913122 Fix yielding to not suck (#151)
This adds a class to avoid returning when we have a Yieldable
 expression contained in the body of the function. This breaks Python
 2.x, and ought to break Python 3.x, but doesn't.

 We need this fo' context managers, etc.

 This commit also has work from @rwtolbert adding new testcases and
 fixes for yielded entries behind a while / for.
2013-07-14 13:11:27 -04:00
Bob Tolbert
df7bb1d29a Provide bin scripts for both Windows and *nix
Summary: This update does away with the scripts in bin and changes
setup.py to use entry_points in cmdline.py for the scripts 'hy' and
'hyc'.

This fixes installing and running on Windows.

The tests are updated to run the 'hy' script produced by setup.py
and not from bin/hy. This is more correct and makes the tox tests
run on both Window and *nix.

For running hy or nosetests directly in the source tree, you do have
to run 'python setup.py develop' first. But since tox runs and builds
dists, all tox tests pass on all platforms.

Also, since there is no built-in readline on Windows, the setup.py
only on Windows requires 'pyreadline' as a replacement.

Switched from optparse to argparse in cmdline.py

Instead of trying to manually separate args meant for
hy from args meant for a hy script, this switches from
optparse to argparse for the CLI.

argparse automatically peels out args meant for hy and leaves
the rest, including the user hy script in options.args.

This fixes the issue @paultag found running "hy foo" where
foo is not a real file. Also added a test that makes sure
trying to run a non-existent script exits instead of dropping
the user into the REPL.

Added argparse as setup.py resource (and removed from tox.ini) as well as removed uses of deprecated setf
2013-07-14 09:06:42 -06:00
Bob Tolbert
62f1f40830 Add set of new core functions
Add set of new core functions to the stdlib.

Moved the auto-import code from compile_expression to
HySymbol so that "even?' in this style expression will
be found and imported.

(list (filter even? [1 2 3 4 5]))

The core functions are documented in 2 sections, one
for basic functions like (even?..) and (nth ...) and
one for all the sequence functions.

Update: This removes all the caching decorators, misnamed as
'lazy-seq' from the core. All sequence methods now just use
yield to return a generator, so they are Python-lazy

Further refinements of core functions

Cleaned up the docs to use 'iterator' instead of 'generator'

Fixed drop to just return the iterator instead of an extra
yield loop. But also added a test to catch dropping too
many.
2013-07-13 09:55:16 -06:00
Julien Danjou
9cf3ee4b43 Merge pull request #241 from rahmu/240
Removes `setf` in favor of `setv`
2013-07-13 00:35:49 -07:00
Tuukka Turto
6dc424007f removed setf 2013-07-10 11:39:27 +03:00