Sortie de Crystal 1.4.0, un langage de programmation compilé avec une syntaxe similaire à Ruby

Crystal est un langage de programmation orienté objet à usage général conçu et développé par Ary Borenszweig, Juan Wajnerman, Brian Cardiff et plus de 300 contributeurs. Inspirée de Ruby, la syntaxe de Crystal est un langage compilé avec une vérification de type statique, mais n'a généralement pas besoin de spécifier les types de variables ou les paramètres de méthode, et peut atteindre des performances proches de C/C++. Son type est résolu par un algorithme avancé d'inférence de type global.

La dernière version 1.4.0 publiée contient des corrections de bogues et des améliorations fonctionnelles liées à la syntaxe, à la bibliothèque standard, aux collections, au chiffrement, aux fichiers, aux macros de syntaxe, à la mise en réseau, à l'exécution et aux spécifications, etc. Pour plus de détails, consultez la note de version .

Changements notables

Prise en charge initiale de WebAssembly

La version 1.4.0 fournit une implémentation MVP ( Minimum Viable Product ) qui prend en charge WebAssembly. Actuellement, elle ne prend en charge que la compilation des programmes Crystal en WebAssembly et la connexion avec LibC basé sur WASI, et les navigateurs ne sont pas encore pris en charge. Consultez ce PR pour plus de détails techniques .

Meilleure inférence de type pour les variables d'instance et de classe

Avant cette version, un programme simple comme celui-ci ne pouvait pas déduire le type d'une variable d'instance :

class DisplayHello
  DELAY = 10.milliseconds

  @timer_countdown = DELAY
end

Compile bien dans la nouvelle version, déduit correctement @timer_countdownle type de la variable comme .Time::Span

class DisplayHello

  def initialize(delay : Time::Span)
    @timer_countdown = delay + 10.seconds
  end
end

Cliquez ici pour plus de détails techniques .

Autres changements importants

  • Prend en charge LLVM 14 ( #11905 )
  • Ciblé pour Int128fournir une prise en charge complète du compilateur ( #11576 )
  • Fournir un support pour la notation scientifique dans ( # 10632 )BigFloat#to_s
  • L' indicateur non documenté n'est plus pris en charge skip_abstract_def_check ( #9217 )
  • ……

Cliquez ici pour obtenir des instructions détaillées sur la mise à jour .

Je suppose que tu aimes

Origine www.oschina.net/news/190335/crystal-1-4-released
conseillé
Classement