Ang Codon, usa ka Python compiler, gimantala

Ang startup nga Exaloop nagpatik sa code alang sa proyekto sa Codon, nga nagpalambo sa usa ka compiler alang sa Python nga pinulongan nga makahimo sa pagmugna og purong machine code isip output, nga dili gihigot sa Python runtime. Ang compiler gipalambo sa mga tagsulat sa Python-like nga pinulongan nga Seq ug gipahimutang isip usa ka pagpadayon sa pagpalambo niini. Nagtanyag usab ang proyekto sa kaugalingon nga runtime alang sa mga executable nga mga file ug usa ka librarya sa mga gimbuhaton nga nagpuli sa mga tawag sa librarya sa Python. Ang source code sa compiler, runtime ug standard library kay gisulat gamit ang C++ (gamit ang developments gikan sa LLVM) ug Python, ug giapod-apod ubos sa BSL (Business Source License).

Ang lisensya sa BSL gisugyot sa mga co-founder sa MySQL isip alternatibo sa Open Core nga modelo. Ang esensya sa BSL mao nga ang code sa advanced functionality sa sinugdan magamit alang sa pagbag-o, apan sa pila ka panahon magamit nga wala’y bayad kung ang mga dugang nga kondisyon matuman, nga nanginahanglan pagpalit usa ka komersyal nga lisensya aron makalikay. Ang dugang nga mga termino sa lisensya sa proyekto sa Codon nanginahanglan nga ang code ibalhin sa lisensya sa Apache 2.0 pagkahuman sa 3 ka tuig (Nobyembre 1, 2025). Hangtud niining panahona, gitugotan sa lisensya ang pagkopya, pag-apod-apod ug pagbag-o, basta kini gigamit alang sa dili pang-komersyal nga katuyoan.

Ang performance sa mga output executable files gipresentar nga duol sa mga programa nga gisulat sa C nga pinulongan. Kung itandi sa paggamit sa CPython, ang pag-uswag sa performance sa pag-compile gamit ang Codon gibanabana nga 10-100 ka beses alang sa usa ka sinulud nga pagpatay. Dugang pa, dili sama sa Python, ang Codon dugang nagpatuman sa abilidad sa paggamit sa multithreading, nga nagtugot alang sa usa ka mas dako nga pagtaas sa performance. Gitugotan ka usab sa Codon nga mag-compile sa indibidwal nga lebel sa function aron magamit ang gihugpong nga representasyon sa naa na nga mga proyekto sa Python.

Ang Codon gitukod gamit ang usa ka modular nga arkitektura nga nagtugot kanimo sa pagdugang sa pag-andar pinaagi sa mga plugins, diin mahimo nimong idugang ang mga bag-ong librarya, ipatuman ang mga pag-optimize sa compiler, ug bisan ang paghatag suporta alang sa dugang nga syntax. Pananglitan, daghang mga plugin ang gihimo nga managsama para magamit sa bioinformatics ug pinansyal nga matematika. Ang Boehm garbage collector gigamit sa pagdumala sa memorya.

Gisuportahan sa compiler ang kadaghanan nga syntax sa Python, apan ang pag-compile sa code sa makina nagpahamtang sa daghang mga limitasyon nga nagpugong sa Codon nga magamit ingon usa ka transparent nga kapuli sa CPython. Pananglitan, ang Codon naggamit sa 64-bit int type para sa mga integer, samtang ang CPython naggamit ug walay kinutuban nga gidak-on para sa mga integer. Ang mga dagkong codebase mahimong magkinahanglan og mga pagbag-o sa code aron makab-ot ang Codon compatibility. Ingon sa usa ka lagda, ang mga incompatibilities gipahinabo sa kakulang sa pagpatuman sa Codon sa pipila ka mga module sa Python ug ang kawalay katakus sa paggamit sa pipila ka dinamikong bahin sa pinulongan. Alang sa matag ingon nga dili pagkaangay, ang compiler nag-isyu sa usa ka detalyado nga diagnostic nga mensahe nga adunay kasayuran kung giunsa ang paglikay sa problema.

Ang Codon, usa ka Python compiler, gimantala


Source: opennet.ru

Idugang sa usa ka comment