Jim ay isang opensource maliit na bakas ng paa pagpapatupad ng Tcl programming language. Ito nagpapatupad ng isang malaking subset ng Tcl at nagdadagdag ng mga bagong tampok tulad ng mga sanggunian sa mga koleksiyon ng basura, closures, built-in Object oriented Programming system, pagganap Programming utos, First arrays class. Ang lahat ng ito sa isang binary laki ng 70kb (na maaaring mabawasan ang karagdagang pagbubukod ng ilang mga command).
Ang proyektong ito ay kasalukuyang hindi isang trabaho sa progreso, ngunit karamihan ng mga pangunahing wika ay ipinatupad at ito ay posible na gamitin ito upang magpatakbo ng maraming mga di-binagong Tcl programa, kaya kung nais mong simulan upang suriin ang mga ito, o gusto mong tingnan ang aming mga panloob na disenyo at virtual
Ang layunin ni Jim ay upang magbigay ng isang malakas na wika na ipinatupad sa humigit kumulang 10k linya ng code na ito ay iniharap bilang isang solong C file at isang header na file, upang payagan ang mga developer upang ilagay Jim sa loob ng kanilang mga aplikasyon, pati na wika scripting, configuration file syntax, walang sa depende sa mga panlabas na mga aklatan o iba pang mga malaking mga sistema.
Belive namin scripting ay isang lubhang kawili-wiling tampok para sa maraming mga application, ngunit ang mga developer ay madalas na hindi hinihikayat na mag-link sa mga aplikasyon sa isang malaking panlabas na sistema. Jim subukan sa address ang problemang ito na nagbibigay ng isang napaka-simpleng upang maunawaan at maliit na bakas ng paa pagpapatupad ng isang wika na ay mainam para sa scripting, at sa parehong oras ay malakas at ma-scale.
Isa pang larangan na kung saan ay maaaring makatulong sa Jim ay ang isa sa mga naka-embed Systems. Jim ay nakasulat sa Ansi-C, ay tunay maliit na pareho sa binary na sukat at memory requirements, at ang wika Tcl ay tamang-tama lamang para sa mga ito gawain (halimbawa, Cisco routers ay gumagamit Tcl).
Ito ay kung paano ang hitsura procedure nagtitipon The Paul Graham tulad ng sa Jim:
proc nagtitipon n {
lambda paglakas n {
set n [+ $ n $ paglakas]
}
}
· Operations Math bilang utos (kasama ang suporta expr).
· Kakayahang upang i-load ang mga extension sa runtime sa pamamagitan ng isang stub system. Kahit programa gamit Jim na statically linked na mai-load ang mga extension.
!. · 70Kbyte binary size
Features :
- Suporta para sa mga mahahalagang katangian na ito ay availabe sa Tcl8.5, tulad dict at {palawakin}.
- Arrays sa Jim ay hindi na koleksyon ng mga variable tulad ng sa Tcl, ngunit isang unang uri ng klase. Array access syntax ay nasa Jim syntax asukal sa set at makakuha ng mga diksyunaryo ng mga sangkap.
- Ang isang compact disenyo. Jim ay kasalukuyang mas mababa sa 10k linya ng code. Ito ay isang mabigat na paggamit ng kambal ported bagay, sa Jim kahit na ang VM palsipikado-bytecode ay isang espesyal na uri Jim_Obj.
- lambda sa koleksyon ng basura, at isang reference na sistema upang bumuo ng naka-link na mga istraktura ng data.
- closures, pamamaraan ni Jim ay maaaring magkaroon ng persistent variable tiyak na pamamaraan-(tinatawag estatika). Maaaring caputred halaga Estatika Pinasimulan ng form sa konteksto ng paglikha procedure, kaya ito ay halos katulad sa leksiko scoping gamitin.
Ano ang bago sa release na ito:
- Ang bersyon na ito ay nagdadagdag ng marami-pinabuting suporta mingw32 (kabilang ang ganap na- ipinatupad exec), nagdadagdag bugfixes, aayusin documentation, nagdadagdag ng isang bagong extension metakit, at gumagawa muli ang SDL trabaho extension.
Ano ang bago sa bersyon 0.71:.
- Iba't-ibang mga bug ay naayos
- Support ay idinagdag para sa mga binary command. maaari na ngayong palitan ang pangalan ng proc 'args'.
- Awtomatikong proc upref args Sinusuportahan na ngayon sa & varname.
- Isang expr shorthand syntax ay magagamit sa $ (...).
- Nakaraang kahulugan proc mai-save sa mga lokal at mahihingi sa upcall.
- Non-matakaw regexp / regsub suporta ay naidagdag na may built-in regexp pagpapatupad.
- Minimal exec pagpapatupad ay suportado kahit walang vfork / waitpid.
- Configuration ay mas mabilis at mas simple na ngayon sa autosetup.
- String byterange ay idinagdag.
- Ang kakayahan upang lumikha ng isang solong source file bootstrap jimsh ay idinagdag.
- Debian packaging support ay idinagdag.
Mga Komento hindi natagpuan