Permalink
Commits on May 9, 2012
  1. Don't rename node module for different archs

    Turns out you can't load a module on Windows that has been renamed from
    what it was called in the dllexport. So if you have fibers.node, and
    rename it to fibers2.node, `require('fibers2') will fail with "unknown
    error". I'm not sure if this is an inherent problem with dynamic
    libraries in Windows or just Node being pedantic.
    
    As a workaround just make a new directory for each platform and arch
    with only one file, "fibers.node".
    committed May 9, 2012
  2. Pure-JS test script

    This removes the last dependency on bash.
    
    Also fix a couple of issues with the npm package file.
    committed May 9, 2012
  3. Port build to gyp + setup for binary distribution

    node-gyp powers building now, for all operating systems. Only Windows,
    Linux, and OS X were tested. arm support for Linux also was not tested.
    
    Also included is a wrapper module which pulls in a binary specific to
    your platform.
    committed May 9, 2012
Commits on May 8, 2012
  1. Begin transition to non-global Fiber object

    This makes it so that require('fibers') returns the Fiber() object
    directly. I'll leave the global exporting for a while for library
    authors to convert and then remove it.
    
    Old:
    require('fibers');
    Fiber(...);
    
    New:
    var Fiber = require('fibers');
    Fiber(...);
    committed May 8, 2012
  2. Correct stack base calculations for Windows

    I can never get that math right in my head the first time. This should
    be correct and all the fibers tests pass fine in Windows now.
    committed May 8, 2012
  3. Remove pool allocator for coroutine stacks

    There is little performance benefit here, if any. It also may be
    harmful, since the chunks of memory allocated are very large anyway.
    Since this is GNU-specific and complicates compilation on Windows, away
    it goes.
    committed May 8, 2012
  4. @japj

    Tentative Windows support

    Squashed commit of `winfiber` branch @
    cebed29.
    
    This adds support for Windows. There's some issues but nothing that
    can't be fixed.
    
    Minor formatting issues changed (dangling tabs, spaces for tabs).
    japj committed with May 8, 2012
Commits on May 4, 2012
  1. Remove mtime check on fibers require()

    If there are problems with the build, they aren't going to be from
    upgrading Node. Plus I want to move to binary distribution soon if
    possible and this will be counterproductive.
    committed May 4, 2012
  2. Use <node.h> instead of <node/node.h>

    Seems it is more standard and will make it easier for some people to
    get this installed.
    committed May 4, 2012
Commits on Apr 27, 2012
  1. Bump npm version -> 0.6.6

    committed Apr 27, 2012
  2. @rlidwka

    gmake and freebsd support

    rlidwka committed with Mar 31, 2012
Commits on Mar 31, 2012
  1. Make a -march=native build by default

    It's like 3% faster on my system, maybe.
    committed Mar 31, 2012
Commits on Mar 27, 2012
  1. Don't use [[ .. ]] in test.sh

    sh needs [ .. ]
    
    Fixes gh-60
    committed Mar 27, 2012
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 25, 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 8, 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 5, 2012
  2. Use accessor for `current` instead

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

    - Remove old node 0.4.x information
    - Link to wiki for projects using node-fibers
    committed Jan 5, 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