Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Commits on Feb 10, 2011
  1. [ release: party like it's 0.1.0 ]

  2. [ whitespace-only: all .sib files indented by sibilant-mode ]

    As sibilant-mode updates, I'll try to keep all of the .sib files indented as per sibilant-mode indentation rules for consistency.  If something is indented wrong, that means it needs to be fixed in the major mode first.
  3. [ sibilant-mode: correctly highlight `(each-key` ]

    Before, it was highlighting `(each` as a macro and ignoring `-key`.  Now it requires whitespace or a ) to match a macro.  Technically `(each(...` is legal, but that's ugly so who cares?
  4. [ picking an extension: let's see how .sib feels ]

    Who knows if it'll stay this way?  Certainly not me.  How do you feel about .sib?  Do you prefer .sibilant?  Have some totally awesome alternative idea?  Let me know.
  5. [ rename *.lisp -> .sib ]

Commits on Jan 27, 2011
Commits on Dec 30, 2010
  1. [ fix flushing in repl ]

    This commit removes the prompt-on-drain and flushed stuff, since it seems that's no longer necessary.  It was initially a hack copied from [1], but it's not in there anymore.
    Additionally, and the actual source of the bug [2] was that process.openStdin().write('stuff') wasn't flushing, but process.openStdin().write('stuff\n') does.  No idea why.
Commits on Dec 29, 2010
Commits on Dec 26, 2010
  1. [ add language priorities ]

    inspired by coffeescript's "golden rule" and coco's principles
Commits on Dec 17, 2010
  1. [ remove duplicate language documentation from readme ]

    I realized that the readme wasn't up to date, and it's kinda ugly to read. (public/index.html) will always be current, and editable/live documentation is way better.
Commits on Dec 13, 2010
  1. [ add rename-macro and alias-macro ]

    This commit also fixes a bug in which -> was tokenized as - (a number) and > (an other-char).  Now - is an other-char unless followed by at least one [0-9], allowing -> to be tokenized as a single other-char.  As a result, -> is a valid macro name.
Commits on Dec 12, 2010
  1. [ move strip-shebang and translate-file from cli.lisp to sibilant.lisp ]

    This allows you to use sibilant.translate-file from elsewhere.  I found use for this in recompiling a client-side sibilant script to js for each request.
    This use case also indicates that it probably should be continuation-passing / async style, instead of just returning the string.
    (chain http
      (create-server (lambda (request response)
        (switch request.url
            (response.write-head 200
              { "Content-Type" "application/javacript" })
            (response.end (sibilant.translate-file 'client.lisp)))
          (default (serve-other-stuff)))))
      (listen 7650 ""))
Commits on Dec 11, 2010
  1. [ add to readme: librelist ml ]

Commits on Dec 8, 2010
  1. [ use {} in chain example ]

Commits on Dec 6, 2010
  1. [ v0.0.11 ]

    Maybe it's almost time for 0.1.0.
  2. [ use cons instead of unshift in other macros ]

    This has bothered me for a while but I wasn't sure the right way to implement cons in js.
  3. [ add cons macro ]

Commits on Dec 5, 2010
Commits on Dec 1, 2010
Commits on Nov 30, 2010
  1. [ document json syntax ]

  2. [ add hash and array shortcuts ]

    { a b c d } is a shortcut for (hash a b c d).
    [ a b c ] is a shortcut for (list a b c).
    I still feel a little weird about it, but it's just a handful of lines.
    Technically, { a b c [ d e ) ) would work just as well as { a b c [ d e ] }, but I can't imagine why you'd want to do that.  Not worth going out of my way to make it break, though.
    Eventually, I'd like to make this accessible from within the code as simply as (register-shortcut "{" 'hash) or (unregister-shortcut "{").
    Since : and , are ignored currently, this means you can do something that looks like json:
      a: b,
      c: [ d, e ]
  3. [ ignore any args after --, remove sibilant stuff from process.argv ]

    $ cat "(console.log process.ARGV)" > example.lisp
    $ sibilant -x example.lisp -- argument1 argument2 argument3
    [ '/path/to/sibilant',
      'argument3' ]
  4. [ allow upper case letters ]

    This simplifies things like JSON and process.ARGV and imports with upper-case initial letters.  I still feel a little weird about this, but that's probably being overly proscriptive.  Idiom/convention will suffice.
Commits on Nov 14, 2010
  1. [ update gitignore ]

  2. [ small cleanup in translate ]

  3. [ name the token regexen ]

  4. [ always trim tokens ]

Something went wrong with that request. Please try again.