Como atualizar o compilador C/C++ Emscripten

O compilador C/C++ Emscripten para Webassembly está mudando muito rapidamente. Correção de erros e novas implementações. Mantendo-o atualizado pode fazer com que você economize horas quando se deparar com algo que já foi resolvido.

Mudança é a única constante. Heraclitus

Não é necessário dizer que você precisa ter Emscripten instalado antes de tentar atualizá-lo. Note que este post se refere ao ambiente Windows, muito embora a atualização deva ser muito similar para o ambiente Linux.

Comandos para atualizar Emscripten

Antes de executar os seguintes comandos, se certifique de que vá para o diretório on Emscripten(emsdk) esta instalado, e prepare as variáveis de ambiente:


emsdk_env.bat

Comandos de atualização do Emscripten:


emsdk update-tags
emsdk install latest
emsdk activate latest

Seu compilador estará atualizado após alguns minutos. Fácil.

Não tão rápido, meu processo de atualização falhou!

Problema atualizando Emscripten

Eu suspeito que o seguinte problema também está ocorrendo durante a instalação.

Atualmente o comando emsdk install latest gera o seguinte erro:


.
.
.
Installing tool 'emscripten-1.37.35'..
Error downloading URL 'https://github.com/kripken/emscripten/archive/1.37.35.zip': <urlopen error [Errno 1] _ssl.c:504: error:1407742E:SSL routines:SS L23_GET_SERVER_HELLO:tlsv1 alert protocol version>
Installation failed!


Este erro aparentemente esta acontecendo porque o Python empacotado na instalação do Emscripten apenas negocia SSL versão 2, e sites estão refutando este protocolo antigo.

Workaround

Felizmente, já existe um workaround documentado.

Se você seguiu os passos de instalação que dei, você já tem o Python 2.7.14 instalado. Senão, instale-o agora.

Para passar sobre este erro, em vez de usar o comando emsdk install latest, use:


**c:\Python27\python emsdk install latest**

Não mude o último comando, mantenha como descrito acima: emsdk activate latest.

Problema foi registrado

Eu registrei um bug report sobre este problema.

O que me fez tentar atualizar Emscripten?

Eu estava recebendo o seguinte erro no Firefox e Chrome quando tentei executar um pequeno módulo wasm:

TypeError: import object field ‘env’ is not an Object

Este erro foi resolvido depois de ter Emscripten atualizado? Na verdade não :(. Este erro não é um problema com o compilador. Estou preparando um post interessante sobre ele (fique sintonizado).

Post MindMap

mindmap-update-emscripten-webassemblycode
Software version
windows 7
Python updated from 2.7.5 to 2.7.14
emscripten updated from 1.37.27 to 1.37.35

Leave a message below. Webassembly is evolving rapidly, please let me know if this post got outdated.

Enjoyed this post?

Don't miss new posts: Share it with your friends:

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *