Commits on Mar 17, 2012
  1. Bump npm version -> 0.6.5

    committed Mar 17, 2012
  2. @jpmoodlerooms
Commits on Feb 25, 2012
  1. `detach` method for futures

    For those times when you want to run a future but only care about
    exceptions.
    committed Feb 24, 2012
Commits on Feb 8, 2012
  1. Clean-up broken build

    a7be6ca and dd1b25e had some problems, breaking the build on OS X.
    committed Feb 8, 2012
  2. Add run-time information for fiber pool

    There was a bug report a while back about fibers being slow but was
    ultimately caused by the user accidentally keeping way too many fibers
    around. It would have been easier to identify the problem with the
    ability to inspect and alter node-fiber's underlying coroutine cache.
    This adds two static properties to Fiber, `fibersCreated` and `poolSize`
    which should give more information about what's happening under the
    hood. Documentation for these to come.
    committed Feb 7, 2012
  3. @jeremyevans

    Fix NODE_BITS determination using process.arch

    process.arch is either ia32 or x64, so use that to determine
    NODE_BITS.  The existing code is broken in that it will assume
    32-bit on many 64-bit platforms (e.g. OpenBSD).
    jeremyevans committed with Feb 7, 2012
  4. @jeremyevans

    Build correctly on OpenBSD

    I tested this on OpenBSD-current on both amd64 and i386.  It's not
    the only changes necessary to build though (you also have to use
    gmake instead of make), but these shouldn't have a negative effect
    on other OSes.
    jeremyevans committed with Feb 7, 2012
  5. @jeremyevans

    Use /bin/sh instead of /bin/bash to run the tests

    There's no bash specific syntax, and some OSes don't ship with
    bash (e.g. OpenBSD).
    jeremyevans committed with Feb 7, 2012
Commits on Feb 3, 2012
  1. Run on node 0.7.0, kind of

    This fixes fibers to work on node 0.7.x. Using {thread:true} in
    child_process.fork() after fibers has been required will result in a
    crash.
    committed Feb 3, 2012
  2. Fix double-include problem on OS X

    If you include the same extension with a different name (via a
    case-insensitive filesystem) an extension will only be dlopen'd once,
    but Init() will be called many times.
    
    Fixes gh-50
    committed Feb 3, 2012
  3. Add smart stack traces + easy future chaining

    When throwing through a Future, this captures the stack trace for each
    future so you can show a full stack trace while debugging.
    
    Additionally this makes resolve() kind of magic, where if the first
    parameter is a future, any errors will be forwarded to the future, and
    the callback's signature will be changed to function(val){} from
    function(err, val){}.
    committed Feb 3, 2012
  4. Fix segfault with inherited fibers

    If you inherit a fiber in a prototype there may be a segfault because
    the `started` accessor gets an invalid `this`. I can't figure out how to
    fix this properly with the Holder() function like I can for methods.. so
    instead of segfaulting I'm just going to return `undefined` here. You
    shouldn't be using fibers in a prototype chain anyway.
    
    Fixes gh-44 (maybe?)
    committed Feb 3, 2012
  5. Build on arm

    This maybe fixes gh-48. I don't have an arm machine to test on, but I
    added the changes suggested in the ticket by @apsystems.
    committed Feb 3, 2012
Commits on Jan 5, 2012
  1. Bump npm version -> 0.6.4

    committed Jan 4, 2012
  2. Use accessor for `current` instead

    This is measurably faster in the case of accessing `current` once per
    context swap.
    committed Jan 4, 2012
  3. Documentation updates

    - Remove old node 0.4.x information
    - Link to wiki for projects using node-fibers
    committed Jan 4, 2012
Commits on Nov 6, 2011
  1. Improve speed of Future.wait()

    A lot of unnecessary and expensive JS stuff was happening here.
    committed Nov 6, 2011
  2. Add shortcut for Future.prototype.wait()

    Bypassing Future.wait() and just returning if the future has already
    been resolved saves a pretty good bit of time.
    committed Nov 6, 2011
Commits on Oct 24, 2011
  1. SunOS build support

    Added the appropriate make configs for SunOS platforms, and fixed a tiny
    issue with the usage of `file` that SunOS wasn't happy with.
    
    Fixes gh-38
    committed Oct 24, 2011
Commits on Oct 8, 2011
  1. Clean up messy makefiles

    There was still a lot of build cruft sitting around from the node 0.4.x
    branch which required the LD_PRELOAD hook. Since LD_PRELOAD is no longer
    needed there's no reason to build coroutine.cc as a shared library.
    
    Fixes gh-37
    committed Oct 8, 2011
  2. @akzhan
Commits on Aug 28, 2011
  1. Fix build for node 0.5.4

    `node --vars` no longer does anything. It doesn't seem like this is
    coming back as there's radio silence on nodejs/node-v0.x-archive#1536 and 0.5.5 has
    been tagged with the missing flag. This is just a build tweak to pull
    installation information from the `process` object inside of node.
    committed Aug 27, 2011
  2. Fix `future` test require problem

    If you're testing from a repo and not npm this one will fail because of
    NODE_PATH nuttiness.
    committed Aug 27, 2011
Commits on Aug 13, 2011
  1. Documentation updates

    Update README to mention differences between node-fibers 0.5 and 0.6.
    Until node 0.5 becomes stable I'll have to maintain both versions.
    
    Also remove bin/node-fibers from the npm install package (but leave the
    empty wrapper for now)
    committed Aug 13, 2011
  2. CORO_PTHREAD compatibility

    If for some reason UCONTEXT and SJLJ don't work, you can change the
    CORO_WHATEVER definition in src/platform.mk to CORO_PTHREAD and it will
    use pthreads and pthread_cond_wait to simulate fibers which should be
    pretty resilient against v8 changes. This isn't being used for now but
    it only needed a few hooks to get this compatibility in.
    committed Aug 13, 2011
  3. Removal of node-fibers wrapper

    The wrapper script is no longer needed because we're not depending on
    any LD_PRELOAD magic anymore. A few build peculiarities had to be taken
    care of, and the bootstrapping in coroutine.cc was changed slightly.
    Also SJLJ in libcoro seems to hang on Linux for me, so I'm specifying
    UCONTEXT (old method) for Linux builds now.
    committed Aug 13, 2011
  4. Compatibility with node-0.5.2

    This includes a greatly simplified coroutine implementation with no
    pthread hooks at all. This is compatible with the recent v8 changes
    which node pulled in, but unfortunately not compatiable with older v8
    versions.
    committed Aug 12, 2011
Commits on Aug 11, 2011
  1. Unit tests

    Long overdue to have a process for these. I went through and found some
    of the historic failures and made tests for them. This will make
    testing more reliable when new Node versions come out.
    committed Aug 11, 2011
Commits on Aug 9, 2011
  1. Fix leaky error messages

    Uncaught error should be toString'd first because RangeError doesn't
    console.log() very well, and there are probably other example of this.
    Also, make toString() on FiberFutures more useful.
    committed Aug 9, 2011
  2. Update package compatibility; broken on node-0.5.2

    In v8:r7575 (tagged at 3.2.10) v8 changed their internal mechanism for
    detecting context changes. Instead of using pthread_self() they are now
    using pthread_getspecific(). Ultimately this makes it considerably
    easier to build fibers into v8, but the current method is broken.
    
    Node updated v8 from 3.1.8 to 3.4.8 in e5564a3f (tagged at 0.5.2). Thus,
    this version of fibers only works on version of node <= 0.5.1.
    committed Aug 9, 2011
Commits on Aug 6, 2011
  1. Documentation updates

    - Fibonacci generator example
    - Various clean up
    committed Aug 6, 2011
  2. Add Future.prototype.proxy

    I end up using this pattern frequently when embedding callback-based
    code inside a future-based sandwich.
    committed Aug 6, 2011