Grandes mudanças:
- Um cache foi adicionado às chamadas de método para evitar a resolução de sobrecarga, o que reduz bastante o impacto no desempenho da resolução do método, especialmente se a mesma sobrecarga for chamada muitas vezes, como durante a execução do loop.
- De 4 a 100 vezes, dependendo do tipo de dados, a transferência de listas, tuplas e buffers para arrays de primitivos Java é acelerada. A conversão usa processamento otimizado de buffers na memória, em vez da API Sequence. Quando um buffer Python é encontrado, apenas o primeiro elemento é verificado para conversão, pois esses buffers são homogêneos.
- Processamento de operações de desligamento (implementado no JPype 1.0.0, mas foi ignorado na preparação do changelog). O JPype agora chama a rotina de encerramento da JVM, que tenta sair normalmente. Isso leva a diversas mudanças de comportamento. Threads que não são em segundo plano (chamadas de proxy) agora podem manter a JVM aberta até serem concluídas. As chamadas proxy processarão o desligamento até que a chamada seja concluída, mas receberão uma mensagem de cancelamento. Os arquivos agora serão fechados corretamente e descarregados no disco se os threads tratarem a exceção conforme o esperado. Ganchos e finalizadores de limpeza de recursos são executados. Quando os threads são gerados, os ganchos AtExit são chamados. Através do daemon, o anexo automático de thread é implementado ao usar a JVM do Python. Código com erros que não consegue lidar adequadamente com a limpeza de thread provavelmente travará quando o desligamento for executado. Documentação adicional pode ser encontrada no manual do usuário.
- O wrapper para Throwable recebeu um wrapper para Object em vez do resultado esperado, o que levou a conversões estranhas de classes Python.
- Corrigidos erros de digitação no sistema de importação que resultavam no erro '»jname» não encontrado'.
- Garantiu que "^C" foi promovido corretamente em KeyboardInterrupt.
- Corrigido problema com símbolos desde Python 3.5.3. PySlice_Unpack foi introduzido em uma versão de patch subsequente (3.5.4) e não deveria ter sido usado.
- Corrigido um bug com numpy.linalg.inv que causava um travamento. O problema foi atribuído à comunicação de thread entre a JVM e alguns tipos numpy. A solução proposta é chamar numpy.linalg.inv antes de iniciar a JVM.
Fonte: opennet.ru