1. Apr 14, 2015
    • Rod Vagg's avatar
      2015-04-14 io.js v1.7.0 Release · a75149fd
      Rod Vagg authored
      Notable changes:
      
      * C++ API: Fedor Indutny contributed a feature to V8 which has been
        backported to the V8 bundled in io.js. SealHandleScope allows a C++
        add-on author to seal a HandleScope to prevent further, unintended
        allocations within it. Currently only enabled for debug builds of
        io.js. This feature helped detect the leak in #1075 and is now
        activated on the root HandleScope in io.js. (Fedor Indutny) #1395.
      * ARM: This release includes significant work to improve the state of
        ARM support for builds and tests. The io.js CI cluster's ARMv6,
        ARMv7 and ARMv8 build servers are now all (mostly) reporting passing
        builds and tests.
        - ARMv8 64-bit (AARCH64) is now properly supported, including a
          backported fix in libuv that was mistakenly detecting the
          existence of `epoll_wait()`. (Ben Noordhuis) #1365.
        - ARMv6: #1376 reported a problem with Math.exp() on ARMv6 (incl
          Raspberry Pi). The culprit is erroneous codegen for ARMv6 when
          using the "fast math" feature of V8. --nofast_math has been turned
          on for all ARMv6 variants by default to avoid this, fast math can
          be turned back on with --fast_math. (Ben Noordhuis) #1398.
        - Tests: timeouts have been tuned specifically for slower platforms,
          detected as ARMv6 and ARMv7. (Roman Reiss) #1366.
      * npm: Upgrade npm to 2.7.6. See the release notes
        (https://github.com/npm/npm/releases/tag/v2.7.6) for details.
      a75149fd
    • Johan Bergström's avatar
      build: validate options passed to configure · fd90b33b
      Johan Bergström authored
      Some variables like dest arch or os are now validated to avoid
      build issues. Move defaults to optparse default while at it.
      
      PR-URL: https://github.com/iojs/io.js/pull/1335
      
      
      Reviewed-By: default avatarRod Vagg <rod@vagg.org>
      Reviewed-By: default avatarBen Noordhuis <info@bnoordhuis.nl>
      fd90b33b
    • Johan Bergström's avatar
      build: Remove deprecated flags · 04b02f5e
      Johan Bergström authored
      Remove flags that were deprecated in f3150292 (soon 3 years ago).
      
      PR-URL: https://github.com/iojs/io.js/pull/1407
      
      
      Reviewed-By: default avatarBen Noordhuis <info@bnoordhuis.nl>
      04b02f5e
  2. Apr 13, 2015
  3. Apr 12, 2015
  4. Apr 11, 2015
  5. Apr 10, 2015
    • Alex Kocharin's avatar
      readline: fix calling constructor without new · f0bf6bb0
      Alex Kocharin authored
      Previously, we detected options object based on amount of arguments
      supplied. But if we're calling readline without new operator,
      constructor gets re-called and will always have 4 arguments.
      
      PR-URL: https://github.com/iojs/io.js/pull/1385
      
      
      Reviewed-By: default avatarBen Noordhuis <info@bnoordhuis.nl>
      f0bf6bb0
    • Shigeki Ohtsu's avatar
    • Shigeki Ohtsu's avatar
    • Shigeki Ohtsu's avatar
      deps: add Makefile to generate opensslconf.h · 7d14aa02
      Shigeki Ohtsu authored
      This Makefile executes ../openssl/Configure {target} and copy
      generated `../openssl/crypto/opensslconf.h` into
      `archs/{target}/opensslconf.h`. with the target list that is defined
      in ARCS. Several files are copied for backup and cleared so as not to
      change the files in `../openssl`.
      
      This also applies four fixes as below by using perl script so as to
      meet iojs build requirements.
      
      - all architectures
      Remove define of OPENSSL_CPUID_OBJ because it is defined in
      openssl.gypi so as to avoid build error with --openssl-no-asm
      
      - VC-WIN32 and VC-WIN64A
      OPENSSL_NO_DYNAMIC_ENGINE is needed for building static
      library. OPENSSL_NO_CAPIENG is needed to avoid build errors on
      Win. See the comments in `deps/openssl/openssl/engines/e_capi.c` for
      detail.
      
      - linux-x32
      This fix was made by comparing define values of opensslconf.h which
      was generated `Configure linux-x32' in openssl-1.0.2a
      
      - darwin64-x86_64-cc
      The current openssl release does not use RC4 asm since it explicitly
      specified as `$asm=~s/rc4\-[^:]+//;` in
      https://github.com/openssl/openssl/blob/OpenSSL_1_0_1-stable/Configure#L584
      But iojs has used RC4 asm on MacOS for long time. Fix type of RC4_INT
      into `unsigned int` in opensslconf.h of darwin64-x86_64-cc to work on
      the RC4 asm.
      
      PR-URL: https://github.com/iojs/io.js/pull/1377
      
      
      Reviewed-By: default avatarFedor Indutny <fedor@indutny.com>
      Reviewed-By: default avatarBen Noordhuis <info@bnoordhuis.nl>
      7d14aa02
    • Shigeki Ohtsu's avatar
      deps: make opensslconf.h include each target arch · 29a33014
      Shigeki Ohtsu authored
      In OpenSSL, opensslconf.h was generated by Configure script with
      specifying a target argument, where it includes several defines that
      depend on OS and architecture platform.
      
      In iojs, we statically mapped --dest-os and --dest-cpu options in
      configure to the target of Configure in OpenSSL and make
      `deps/openssl/conf/openssconf.h` so as to include each file
      according to its target by checking pre-defined compiler macros.
      
      Included opnesslconf.h files for supported target architectures can
      be generated by `Makefile` and stored under
      `archs/{target}/opensslconf.h`. The Makefile alos fixes several
      defines to meet iojs build requirements.
      
      Here is a map table of configure options in iojs, target arch of
      Configure in OpenSSL and CI support.
      
      | --dest-os | --dest-cpu | OpenSSL target arch  | CI  |
      | --------- | ---------- | -------------------- | --- |
      | linux     | ia32       | linux-elf            | o   |
      | linux     | x32        | patched linux-x86_64 | -   |
      | linux     | x64        | linux-x86_64         | o   |
      | linux     | arm        | linux-armv4          | o   |
      | linux     | arm64      | N/A                  | -   |
      | mac       | ia32       | darwin-i386-cc       | o   |
      | mac       | x64        | darwin64-x86-cc      | o   |
      | win       | ia32       | VC-WIN32             | -   |
      | win       | x64        | VC-WIN64A            | o   |
      | solaris   | ia32       | solaris-x86-gcc      | o   |
      | solaris   | x64        | solaris64-x86_64-gcc | o   |
      | freebsd   | ia32       | BSD-x86              | o   |
      | freebsd   | x64        | BSD-x86_64           | o   |
      | openbsd   | ia32       | BSD-x86              | -   |
      | openbsd   | x64        | BSD-x86_64           | -   |
      | others    | others     | linux-elf            | -   |
      
       --dest-os and --dest-cpu are mapped to pre-defined macros.
      
      | --dest-os          | pre-defined macro         |
      | ------------------ | ------------------------- |
      | win                | _WIN32                    |
      | win(64bit)         | _WIN64                    |
      | mac                | __APPLE__ && __MACH__     |
      | solaris            | __sun                     |
      | freebsd            | __FreeBSD__               |
      | openbsd            | __OpenBSD__               |
      | linux (not andorid)| __linux__ && !__ANDROID__ |
      | android            | __ANDROID__               |
      
      | --dest-cpu | pre-defined macro |
      | ---------- | ----------------- |
      | arm        | __arm__           |
      | arm64      | __aarch64__       |
      | ia32       | __i386__          |
      | ia32(win)  | _M_IX86           |
      | mips       | __mips__          |
      | mipsel     | __MIPSEL__        |
      | x32        | __ILP32__         |
      | x64        | __x86_64__        |
      | x64(win)   | _M_X64            |
      
      These are the list which is not implemented yet.
      
      | --dest-os | --dest-cpu | OpenSSL target arch  | CI  |
      | --------- | ---------- | -------------------- | --- |
      | linux     | mips       | linux-mips32,linux-mips64,linux64-mips64? | --- |
      | linux     | mipsel     | ?                    | --- |
      | android   | ia32       | android-x86          | --- |
      | android   | arm        | android-armv7        | --- |
      | android   | mips       | android-mips         | --- |
      | android   | mipsel     | ?                    | --- |
      
      Supported target arch list in OpenSSL can be obtained by typing
      `deps/openssl/openssl/Configure LIST`.
      
      This also contains to add two new defines for all platform in the
      bottom for GOST and Padlock engines are not included in iojs.
      
      PR-URL: https://github.com/iojs/io.js/pull/1377
      
      
      Reviewed-By: default avatarFedor Indutny <fedor@indutny.com>
      Reviewed-By: default avatarBen Noordhuis <info@bnoordhuis.nl>
      29a33014
    • Brendan Ashworth's avatar
      lib: reduce process.binding() calls · 1219e746
      Brendan Ashworth authored
      This commit better handles calls to process.binding() in lib/ by
      no longer lazy loading the bindings (the load times themselves are
      rather miniscule compared to the load time of V8) and never reloading
      the bindings (which is 172 times slower than referencing a variable with
      the same value).
      
      PR-URL: https://github.com/iojs/io.js/pull/1367
      
      
      Reviewed-By: default avatarBrian White <mscdex@mscdex.net>
      Reviewed-By: default avatarBen Noordhuis <info@bnoordhuis.nl>
      1219e746
  6. Apr 09, 2015
  7. Apr 08, 2015
  8. Apr 07, 2015
  9. Apr 06, 2015