io.js Semana de 8 de maio

Lançamentos do io.js 2.0, eventos da comunidade e atualizações

Lançamentos do io.js 2.0

Essa semana tivemos dois lançamentos de versões do io.js: v2.0.0 e v2.0.1, o changelog completo pode ser encontrado no GitHub.

2.0.1

  • async_wrap: (Trevor Norris) #1614: agora é possível filtrar por providers, as bit flags foram removidas e substituídas com chamadas de métodos no objeto de vinculado essa ainda é uma API instável, então adições de funcionalidades, e mudanças críticas não irão afetar o sistema de versionamento (semver) do io.js
  • libuv: resolve vários bugs do io.js: #862 impedir a geração de processos filhos com descritores de arquivos stdio inválidos, #1397 correção do erro EPERM ao chamar fs.access(W_OK) no Windows, #1621 erros de build associados com o pacote libuv, #1512 correção dos erros de finalização no Windows
  • addons: o macro NODE_DEPRECATED estava causando problemas ao compilar addons com compiladores antigos, isto deve estar resolvido agora (Ben Noordhuis) #1626
  • V8: atualização do V8 da versão 4.2.77.18 para a 4.2.77.20 com pequenas correções, incluindo um bug que impedia builds no FreeBSD

2.0.0

  • crypto: reduzido significativamente o uso de memória do TLS (Fedor Indutny & Сковорода Никита Андреевич) #1529
  • net: socket.connect() agora aceita uma opção ‘lookup’, para resoluções de DNS personalizadas, o padrão será a função dns.lookup() (Evan Lucas) #1505
  • npm: Atualização do npm para a versão 2.9.0. Veja as notas de lançamento das versões v2.8.4 e v2.9.0 para mais detalhes. Itens notáveis: Foi adicionado um valor padrão para o campo autor, para que o npm init -y funcione sem nenhum valor de entrada (@othiym23)npm/npm/d8eee6cf9d. Incluir módulos locais em atualizações do npm (@ArnaudRinquin) npm/npm#7426. O prefixo usado antes do número da versão do npm agora pode ser configurado via tag-version-prefix (@kkragenbrink) npm/npm#8014
  • os: os.tmpdir() agora é consistente em todas as plataformas, e não irá mais retornar uma barra no final em nenhuma delas. (Christian Tellnes)#747
  • process: a performance de process.nextTick() foi melhorada por entre 2–42% em toda a suíte de benchmark, isso é importante porque esta função é muito usada em todo o core (Brian White) #1571. Novos métodos: process.geteuid(), process.seteuid(id), process.getegid() e process.setegid(id) permitem que você altere e obtenha o UID e o GID do processo (Evan Lucas) #1536
  • repl: o histórico do REPL pode ser persistido atráves de sessões se a variável de ambiente NODE_REPL_HISTORY_FILE estiver definida a um arquivo acessível do usuário, NODE_REPL_HISTORY_SIZE pode ser usado para definir o tamanho máximo do histórico, e o valor padrão é de 1000 (Chris Dickinson) #1513. O REPL pode funcionar em três modos usando a variável de ambiente NODE_REPL_MODE: sloppy, strict ou magic (padrão); o novo modo magic vai automaticamente rodar todos os comandos em “strict mode only” no modo strict (Chris Dickinson) #1513
  • smalloc: o módulo ‘smalloc’ foi depreciado devido a mudanças que virão na versão 4.4 do V8 que irão torná-lo inutilizável
  • util: adicionando suporte de inspecção para Promise, Map e Set (Christopher Monsanto) #1471
  • V8: atualização para a versão 4.2.77.18, veja o ChangeLog para mais detalhes. Itens notáveis: Classes saíram do staging; a palavra chave class agora pode ser utilizada no strict mode sem nenhuma flag. Melhorias no Object literal saíram do staging; sintaxe de métodos e propriedades abreviadas agora é utilizável ({ method() { }, property }). Parâmetros Rest (function(…args) {}) estão implementados no staging através da flag — harmony-rest-parameters. Nomes de propriedades Computadas ({[‘foo’+’bar’]:’bam’}) estão implementados no staging através da flag — harmony-computed-property-names. Unicode escapes (‘\u{xxxx}’) estão implementados no staging através da flag — harmony_unicode e da flag — harmony_unicode_regexps para o uso em expressões regulares
  • Windows: Corrigido o término aleatório de processo no Windows (Fedor Indutny) #1512 / #1563. O delay-load hook foi introduzido para corrigir problemas com nomeação de processos (iojs.exe / node.exe) foi feito opt-out para add-ons nativos. Add-ons nativos devem incluir ‘win_delay_load_hook’: ‘false’ em seu binding.gyp para desativar essa funcionalidade caso tenham problemas. (Bert Belder) #1433
  • Governance: Rod Vagg (@rvagg) foi adicionado ao Comitê Técnico (TC) Jeremiah Senkpiel (@Fishrock123) foi adicionado ao Comitê Técnico (TC)

Alterações Notáveis

Mais detalhes em https://github.com/iojs/io.js/wiki/Breaking-Changes#200-from-1x

  • Atualização do V8 para a versão 4.2, pequenas mudanças na API do C++
  • os.tmpdir() agora é consistente em todas as plataformas, e não irá mais retornar uma barra no final em nenhuma delas
  • Apesar de não ser uma alteração notável, o módulo ‘smalloc’ foi depreciado antecipando mudanças que virão na versão 4.4 do V8 que irão torná-lo inutilizável. Veja #1451 para mais informações.

Nota: uma nova versão do módulo ‘url’ foi revertida antes do lançamento, devido ao seu potencial de ruptura em todo o ecosistema do npm ser grande demais, então será preciso mais trabalho de compatibilidade antes de lançá-lo. Veja #1602 para mais informações.

Problemas conhecidos

Acesse https://github.com/iojs/io.js/labels/confirmed-bug para ver a lista completa.

  • Alguns problemas com timers não referenciados estarem rodando durante o beforeExit ainda estão para serem resolvidos. Veja #1264.
  • Pares substitutos (surrogate pair) no REPL podem travar o terminal#690
  • process.send() não é síncrono como a documentação sugere, uma regressão foi introduzida na v1.0.2, veja #760 e a correção em #774
  • Chamar dns.setServers() enquanto uma busca DNS está em progresso pode fazer com que o processo pare em uma falha de asserção #894
  • url.resolve pode transferir a parte de autenticação da url quando resolvendo entre dois hosts completos, veja #1435.
  • readline: caracteres de escape separados são processados incorretamente, veja #1403

Atualizações da Comunidade

Eventos futuros

  • Ingressos para NodeConf Adventure estão à venda, de 11 à 14 de Junho em Walker Creek Ranch, Califórnia
  • Ingressos para CascadiaJS estão à venda, de 8 à 10 de Julho em Washington State
  • Ingressos para BrazilJS Conf estão à venda, 21 e 22 de Agosto no Shopping Center BarraShoppingSul
  • Ingressos para NodeConf EU estão à venda, de 6 à 9 de Setembro em Waterford, Irlanda
One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.