Ajouter un commentaire

Ruby 3.2 prend en charge WebAssembly

Par:
fredericmazue

mer, 04/01/2023 - 12:19

Ruby 3.2 qui est sorti à la toute fin de l'année 2022, est riche en nouveautés et en améliorations de performances. La nouveauté la plus intéressante de Ruby 3.2 est une prise en charge de WebAssembly basée sur WASI (The WebAssembly System Interface).

Cela permet à un binaire CRuby d'être disponible sur un navigateur Web, un environnement Serverless Edge ou d'autres types d'intégrateurs WebAssembly/WASI. Actuellement ce port réussit les suites de tests de base et d'amorçage n'utilisant pas l'API Thread, selon les développeurs de cette fonctionnalité.

Ruby 3.2 améliore aussi les performances dans le travail avec les expressions régulières Regexp grâce à de nouveaux algorithmes de correspondances. Une fonctionnalité de délai d'attente pour les correspondances Regexp est également introduite pour gérer les situations où le temps de répo,nse d'une recherche de correspondance ets trop long.

Regexp.timeout = 1.0

/^a*b?a*()\1$/ =~ "a" * 50000 + "x"
#=> Regexp::TimeoutError is raised in one second

Regexp.timeout est une configuration globale. Si vous souhaitez utiliser des paramètres de délai d'expiration différents pour certaines expressions régulières spéciales, vous pouvez utiliser le mot-clé timeout avec Regexp.new.

Regexp.timeout = 1.0

# This regexp has no timeout
long_time_re = Regexp.new('^a*b?a*()\1$', timeout: Float::INFINITY)

long_time_re =~ "a" * 50000 + "x" # never interrupted

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
 H  H  H  H  K  K  H  H  FFFF 
H H H H K K H H F
HHHH HHHH KK HHHH FFF
H H H H K K H H F
H H H H K K H H F