1. Apr 11, 2015
  2. 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
  3. Apr 09, 2015
  4. Apr 08, 2015
  5. Apr 07, 2015
  6. Apr 06, 2015
  7. Apr 05, 2015
  8. Apr 04, 2015