Commit Graph

41 Commits

Author SHA1 Message Date
Paul Tagliamonte
b78be9a594 Jank @olasd's hack, clean up core.
The core shall from now on be only for the core language bits. Macro
 bits shall live in hy.macros and in hy.compiler. This cleans up
 garbage.
2013-07-06 14:00:11 -04:00
Paul Tagliamonte
86af7eacf1 Add in a new core language file.
This will let us implement common functions seen in other lisps,
 and allow them to be importable, without explicit imports. The goal
 is to keep this as small as we can; we don't want too much magic.

 I've added `take' and `drop' as examples of what we can do.
2013-06-29 18:51:11 -04:00
Konrad Hinsen
269da19d76 Make macros module-specific.
A macro is available in the module where it was defined and
in any module that does a require of the defining module.
Only macros defined in hy.core are globally available.
Fixes #181
2013-05-16 15:34:14 +02:00
Nicolas Dandrimont
0986f9001e Change macros to be called with separate arguments
This provides free argument-length checking for macros.
2013-05-11 09:09:34 +02:00
Julien Danjou
a0285903e6 Cleanup
Signed-off-by: Julien Danjou <julien@danjou.info>
2013-05-05 20:42:48 +02:00
Nicolas Dandrimont
510ad53c71 mangles kthxbye 2013-05-05 20:42:48 +02:00
Julien Danjou
2ef9a0fdaf Rename decorate-with' to with-decorator'
Fixes #158

Signed-off-by: Julien Danjou <julien@danjou.info>
2013-04-28 17:14:22 +02:00
Julien Danjou
f25177e9a6 Add a `unless' macro
Signed-off-by: Julien Danjou <julien@danjou.info>
2013-04-28 17:04:35 +02:00
Julien Danjou
f68e3b972b Add a `when' macro
Signed-off-by: Julien Danjou <julien@danjou.info>
2013-04-28 17:04:35 +02:00
Julien Danjou
c241236bf5 Remove useless class attribute
Signed-off-by: Julien Danjou <julien@danjou.info>
2013-04-22 14:58:05 +02:00
John Jacobsen
8d8dd62168 Move take and drop from AST impl. in compiler.py to macros in core/bootstrap.py 2013-04-21 19:08:30 -05:00
Julien Danjou
07860b5ce6 Allow variable without value in `let' declaration
Fixes issue #138

Signed-off-by: Julien Danjou <julien@danjou.info>
2013-04-20 05:18:45 -07:00
Paul R. Tagliamonte
aadf47ed99 documenting hy.core.mangles 2013-04-18 22:50:46 -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
db3e2bd346 updating the nested mangles 2013-04-11 22:25:23 -04:00
Paul R. Tagliamonte
e22a0ff73c Mangle a macro until it stops moving
this helps if we use a macro in something that got tree-mangled
  back out.
2013-04-07 18:41:41 -04:00
Paul R. Tagliamonte
bfc71e4a60 Add tail threading (->>) 2013-04-07 15:05:30 -04:00
Paul R. Tagliamonte
03dfbde1b8 style voodoo 2013-04-06 23:11:43 -04:00
Paul R. Tagliamonte
e0ed7cac40 Revert "Make HySymbol bytes free!"
This reverts commit 8b144a4f3d.
2013-04-06 20:02:08 -04:00
Julien Danjou
8b144a4f3d Make HySymbol bytes free!
We can know use any amount and type of bytes to build a HyString, meaning we
can use Unicode and UTF-8 for our function and variables.

Eat that, snake!

Signed-off-by: Julien Danjou <julien@danjou.info>
2013-04-06 23:37:34 +02:00
Paul R. Tagliamonte
4b57fd0a51 Adding in an If mangle 2013-04-06 11:10:33 -04:00
Paul R. Tagliamonte
7abc472336 Implementing `let' 2013-04-05 21:54:04 -04:00
Paul R. Tagliamonte
d762625aeb also ignore setf / setv 2013-04-05 20:00:19 -04:00
Paul R. Tagliamonte
1d01d8874a Bugfix for #50. I'm slowly starting to take a shine to this. 2013-04-05 19:29:31 -04:00
Paul R. Tagliamonte
7c9fa3758c Print is for loosers. 2013-04-04 21:50:01 -04:00
Paul R. Tagliamonte
256506ede0 Sketch for #50 - branch mangler
This is only slightly better. The insert point needs to walk
    with the for loop.
2013-04-04 21:47:00 -04:00
Christopher Allan Webber
f8be07b643 Defun is now an alias for defn 2013-04-01 16:36:56 -05:00
Christopher Allan Webber
9416422330 Changing cond to be more common lisp / emacs lisp like
Instead of:
  (cond (condition-1) (body-1)
        (condition-2) (body-2))

We now work like:

  (cond ((condition-1) (body-1)
         (condition-2) (body-2)))
2013-04-01 10:33:45 -05:00
Paul R. Tagliamonte
83a9bdc87d adding in rest macros 2013-03-18 19:49:36 -04:00
Paul R. Tagliamonte
8f6c77831b Adding first' / car' 2013-03-18 16:11:29 -04:00
Paul R. Tagliamonte
4cb4e7384e holy shit it's 2013 2013-03-18 10:27:14 -04:00
Paul R. Tagliamonte
0bc2dd8d00 Moving `for' to a "macro" 2013-03-13 20:41:53 -04:00
Paul R. Tagliamonte
a238ac53c3 Adding back Python 2.6. 2013-03-13 20:02:16 -04:00
Paul Tagliamonte
57775a95a6 Fiddling with the threading macro 2013-03-13 10:11:14 -04:00
Paul R. Tagliamonte
daa6443e7c Adding in a Threading macro (->) 2013-03-12 22:04:51 -04:00
Paul R. Tagliamonte
276df1b103 thinking through some manglers. 2013-03-09 16:34:35 -05:00
Paul R. Tagliamonte
a19d085620 Adding in better things. 2013-03-09 15:10:49 -05:00
Paul R. Tagliamonte
ab2cf5beda futzing with condlike things. 2013-03-09 00:17:02 -05:00
Paul R. Tagliamonte
8c07829ff9 thinking about some new stuff. 2013-03-08 23:07:21 -05:00
Paul Tagliamonte
67b803b99a Breaking things to start again. 2013-03-08 18:18:43 -05:00
Paul R. Tagliamonte
3166fec53e Thinking some ideas out. 2013-03-07 22:52:47 -05:00