Node.JS
25 October 2010

Node.js v0.2.4 и ожидаемые улучшения в ветке v0.3.x

Прошедшие выходные могут похвастаться двумя релизами Node.js: очередной минорной версией в ветке v0.2.x и официальным релизом ветки v0.3.x.
И пусть разрабатываемая ветка всё ещё отмечена как «нестабильная», в ней ожидаются существенные улучшения производительности, переносимости и добавление новых возможностей, о которых стоит знать уже сейчас. Тем более, что эта версия уже вполне работоспособная.
Также в конце топика бонус в виде ссылок на репозитории пакетов Node.js v0.2.x и NPM (Node.js package manager).

Изменения в версии 0.2.4:

  • Добавлена опция --eval, позволяющая выполнять передаваемый в виде строки JavaScript код (аналог perl -e или php -r).
  • Исправления в модуле работы с сетью:
    • Добавлена возможность начинать запись в очередь до завершения соединения.
    • В случае неудачной попытки закрытия соединения очередь записи теперь не очищается.
    • Исправлен баг с частой проверкой освободившихся дескрипторов в случае достижения лимита соединений (Do not spin on accept() with EMFILE).
  • Добавлена опция --max-stack-size для ограничения максимального размера стека V8 (V8 также сам по себе поддерживает опции для ограничения размера используемой движком памяти).
  • Исправлены ошибки в функции child_process.exec(), связанные завершением порождённого процесса (теперь он происходит с помощью сигнала SIGTERM, а не SIGKILL).
  • Исправлены ошибки некорректного освобождения ресурсов при завершении работы Node.
Скачать дистрибутив: nodejs.org/dist/node-v0.2.4.tar.gz
Документация: nodejs.org/docs/v0.2.4/api.html

Изменения в версии 0.3.0 (unstable):

  • Все описанные выше исправления для версии 0.2.4.
  • Множественные улучшения модуля readline.
  • Исправлен баг с повреждением памяти при некорректном вызове конструкторов.
  • Исправлена функция process.nextTick(), теперь исключения в функции обратного вызова не повлияют на её работу Node.
  • Заново переписаны буферы, достигнуто значительно ускорение работы с ними.
  • При компиляции модулей по умолчанию добавлены флаги -D_FILE_OFFSET_BITS=64 и -D_LARGEFILE_SOURCE.
  • Упрощён разбор строки HTTP запросов.
  • Добавлена поддержка HTTP 100 ответа сервера.
  • Упрощена система модулей:
    • Удалены методы require.async() и require.registerExtension(), добавлено свойство require.extensions[].
    • Добавлено публичное API для require.resolve() и require.cache[].
  • Изменёно форматирование запятых в выводе in sys.inspect(), добавлен вывод имён функций.
  • Константы выделены из process в отдельный модуль require('constants').
  • Исправлен разбор количества используемой памяти в Linux для программ с пробелами в имени.
  • Модуль sys переименован в util.
  • Исправлен баг с невозвращением неблокируещего статуса потоку stdio при прекращении программы по сигналам SIGTERM и SIGINT.
  • Улучшено декодирование base64 строк с дополнительными символами(например пробелами и переводами строк).
  • Добавлена возможность переопределять и добавлять команды в REPL.
  • V8 обновлен до версии 2.5.1, Libev до версии 4.00, также обновлены libeio и http-parser.
  • Другие исправления и улучшения в модулях crypto, fs, http и net.
Скачать дистрибутив: nodejs.org/dist/node-v0.3.0.tar.gz
Документация: nodejs.org/docs/v0.3.0/api.html

Для тех, кто любит *nix ещё и за удобную работу с ПО за счёт пакетных менеджеров, у меня есть небольшое дополнение:
Я собрал на openSUSE BuildService пакеты для Node.js ветки v0.2.x и NPM (Node.js package manager). Пользуйтесь на здоровье ;-)

+21
1.4k 16
Comments 12