Sorbet, un sistema di cuntrollu di tipu staticu per Ruby, hè apertu.

Cumpagnia Stripe, specializata in u sviluppu di piattaforme per i pagamenti in linea, apertu codici fonte di u prughjettu Sorbettu, in quale hè statu preparatu un sistema di cuntrollu di tipu staticu per a lingua Ruby. U codice hè scrittu in C++ è distribuitu da licenziatu sottu Apache 2.0.

L'infurmazione nantu à i tipi in u codice pò esse calculatu dinamicamente, è pò ancu esse specificatu in forma di simplicità annotazioni, chì pò esse specificatu in codice cù u metudu sig (per esempiu, "sig {params (x: Integer).returns (String)}") o posti in schedari separati cù l'estensione rbi. Disponibile cum'è preliminari analisi di codice staticu senza eseguisce, è cuntrollà cum'è eseguitu (si accende aghjunghjendu "esigene 'sorbet-runtime'" à u codice.

Pussibbilità furnita traduzzione graduali prughjetti à aduprà Sorbet - u codice pò unisce tramindui blocchi typed annotati è spazii untyped micca cuparti da verification. E caratteristiche includenu ancu un rendimentu assai altu è a capacità di scala per basi di codice chì cuntenenu milioni di linee di codice.

U prughjettu include un kernel per a verificazione di tipu staticu,
un toolkit per creà novi prughjetti cù Sorbet, un toolkit per u trasferimentu passu à passu di prughjetti esistenti per utilizà Sorbet, un runtime cù una lingua specifica di u duminiu per scrive annotazioni nantu à i tipi è repository cù definizioni di tipu prontu per parechji pacchetti di gemme Ruby.

In principiu, Sorbet hè statu sviluppatu per verificà i prughjetti internu di a cumpagnia Stripe, a maiò parte di i so sistemi di pagamentu è analitici sò scritti in a lingua Ruby, è hè stata trasferita à a categuria di fonte aperta dopu un annu è mezu di sviluppu è implementazione. Prima di apre u codice, a prova beta hè stata realizata, in quale più di 30 cumpagnie anu participatu. In u stadiu attuale di sviluppu, Sorbet sustene u lanciamentu di a maiò parte di i prughjetti standard in Ruby, ma pò esse alcune incompatibilità.

Source: opennet.ru

Add a comment