V ka ʻōlelo hoʻolālā ʻōlelo open source

Unuhiia i loko o ka waeʻano o ka wehe compiler no ʻōlelo V. ʻO V kahi ʻōlelo i hoʻopili ʻia me ka mīkini i hoʻopaʻa ʻia i ka hoʻomohala maʻalahi i ka mālama ʻana a me ka wikiwiki loa e hoʻopili. Code compiler, hale waihona puke a me nā mea hana pili ua wehe ma lalo o ka laikini MIT.

Ua like loa ka syntax o V me Go, e noi ana i kekahi mau hana mai Oberon, Rust, a me Swift. Ua maʻalahi ka ʻōlelo e like me ka hiki a, e like me ka mea nāna i hoʻomohala, ua lawa nā minuke 30 o ke aʻo ʻana e aʻo i nā kumu kumu. palapala. I ka manawa like, ikaika loa ka ʻōlelo a hiki ke hoʻohana ʻia e hana i nā hana like me ka hoʻohana ʻana i nā ʻōlelo papahana ʻē aʻe (no ka laʻana, loaʻa nā hale waihona puke no nā kiʻi 2D/3D, hana i nā GUI a me nā noi pūnaewele).

Hoʻokumu ʻia ka hana ʻana i kahi ʻōlelo hou e ka makemake e hoʻokō i ka hui ʻana o ka maʻalahi o ka ʻōlelo Go o ka syntax, ka wikiwiki o ka hui ʻana, ka maʻalahi o ka hoʻohālikelike ʻana o nā hana, ka portability a me ka mālama ʻana o ke code me ka hana o C/C++, ka palekana o Rust a ka hoʻokumu ʻana i nā code mīkini ma ka pae hoʻohui Zig. Makemake au e kiʻi i kahi compiler paʻa a wikiwiki e hiki ke hana me ka ʻole o nā mea hilinaʻi o waho, e hoʻopau i ka pae honua (nā hoʻololi honua) a hāʻawi i ka hiki ke "wela" e hoʻouka hou i ke code.

Hoʻohālikelike ʻia me C++, ʻoi aku ka maʻalahi o ka ʻōlelo hou, hāʻawi i ka wikiwiki o ka hui ʻana (a hiki i 400 mau manawa), hoʻomaʻamaʻa i nā ʻenehana hoʻolālā palekana, ʻaʻohe pilikia me ka ʻano ʻike ʻole, a hāʻawi i nā mea hana i kūkulu ʻia no ka hoʻohālikelike ʻana i nā hana. Hoʻohālikelike ʻia me Python, ʻoi aku ka wikiwiki o V, maʻalahi, palekana, a ʻoi aku ka mālama ʻana. Hoʻohālikelike ʻia me Go, ʻaʻohe o V mau ʻano hoʻololi honua, ʻaʻohe nulls, pono e wehewehe mau ʻia nā ʻano like ʻole a pau, ʻaʻole hiki ke hoʻololi ʻia nā mea āpau ma ke ʻano paʻamau, hoʻokahi wale nō ʻano hana i kākoʻo ʻia ("a : = 0"), kahi ʻoi aku ka paʻa. ka manawa holo a me ka nui o nā faila hiki ke hoʻokō ʻia, ka loaʻa ʻana o ka portability pololei mai C, ka nele o ka ʻohi ʻōpala, ka serialization wikiwiki, ka hiki ke interpolate i nā kaula ("println('$foo: $bar.baz')").

fn nui() {
mau wahi := ['pāʻani', 'pūnaewele', 'mea hana', 'science', 'systems', 'GUI', 'mobile'] a := 10
inā ʻoiaʻiʻo {
i: = 20
}
no ka wahi ma na wahi {
println('Aloha, nā mea hoʻomohala $area!')
}
}

Nā hiʻohiʻona o ka papahana:

  • ʻO ka compiler paʻa a me ka wikiwiki, kahi me ka waihona maʻamau e lawe i kahi 400 KB. Loaʻa ka wikiwiki compilation kiʻekiʻe ma o ka hana pololei o ka mīkini code a me ka modularity. ʻO ka wikiwiki o ka hōʻuluʻulu ʻana ma kahi o 1.2 miliona mau laina o ke code i kēlā me kēia kekona ma hoʻokahi CPU core (ʻike ʻia i ka wā o ka hana ʻana hiki iā V ke hoʻohana iā C, a laila hāʻule ka wikiwiki i 100 tausani mau laina i kekona). ʻO ka hui pū ʻana o ka mea hōʻuluʻulu, i kākau pū ʻia ma ka ʻōlelo V (aia pū kekahi mana kuhikuhi ma Go), ma kahi o 0.4 kekona. Ma ka hopena o ka makahiki, manaʻo ʻia e hoʻopau ʻia ka hana ma nā optimizations hou aʻe, kahi e hōʻemi ai i ka manawa hana compiler i 0.15 kekona. I ka hoʻoholo ʻana i nā hoʻokolohua i hana ʻia e ka mea hoʻomohala, pono ka hui pū ʻana o Go i 512 MB o ka disk space a holo i loko o hoʻokahi a me ka hapa minuke, koi ʻo Rust i 30 GB a me 45 mau minuke, GCC - 8 GB a me 50 mau minuke, Clang - 90 GB a 25 minuke,
    Swift - 70 GB a me 90 mau minuke;

  • Hoʻopili ʻia nā polokalamu i nā faila hiki ke hoʻokō ʻia me ka ʻole o nā hilinaʻi waho. ʻO ka nui o ka faila hiki ke hoʻokō ʻia o kahi kikowaena http maʻalahi ma hope o ka hui ʻana he 65 KB wale nō;
  • ʻO ka hana o nā noi i hōʻuluʻulu ʻia ma ka pae o nā hui o nā papahana C;
  • ʻO ka hiki ke launa pū me ka code C, me ka ʻole o ke poʻo. Hiki ke kapa ʻia nā hana ma ka ʻōlelo C mai ke code ma ka ʻōlelo V, a ʻo ka hope, hiki ke kāhea ʻia ke code ma ka ʻōlelo V ma kekahi ʻōlelo kūpono me C;
  • Kākoʻo no ka unuhi ʻana i nā papahana C/C++ i hōʻike ma ka ʻōlelo V. Hoʻohana ʻia kahi parser mai Clang no ka unuhi ʻana. ʻAʻole kākoʻo ʻia nā hiʻohiʻona a pau o ka maʻamau C, akā ua lawa nā mana o ka unuhi ʻōlelo i kēia manawa unuhi ma ka ʻōlelo o ka pāʻani V DOOM. ʻO ka unuhi ʻōlelo C++ aia nō i ka wā mua o ka hoʻomohala ʻana;
  • Kākoʻo serialization i kūkulu ʻia, me ka ʻole o ka nakinaki ʻia i ka wā holo;
  • Hoʻemi i nā hana hoʻokaʻawale hoʻomanaʻo;
  • E hōʻoia i ka palekana: ʻaʻohe NULL, nā ʻano hoʻololi honua, nā waiwai i ʻike ʻole ʻia a me ka hoʻololi hou ʻana. ʻO ka nānā ʻana i ka overrun buffer i kūkulu ʻia. Kākoʻo no nā hana maʻamau (Generic). Nā mea a me nā hale ʻaʻole hiki ke hoʻololi ʻia e ka paʻamau;
  • Hiki ke hoʻouka hou i ka code "wela" (e hōʻike ana i nā loli i ka code ma ka lele me ka ʻole o ka hoʻopili hou ʻana);
  • Nā mea hana no ka hōʻoia ʻana i ka multithreading. E like me ka ʻōlelo Go, hoʻohana ʻia kahi hana e like me "run foo()" e hoʻomaka i kahi pae hoʻokō hou (e like me "go foo()"). I ka wā e hiki mai ana, hoʻolālā ʻia ke kākoʻo no nā goroutine a me kahi mea hoʻonohonoho thread;
  • Kākoʻo no Windows, macOS, Linux, *BSD ʻōnaehana hana. Hoʻolālā ʻia e hoʻohui i ke kākoʻo no Android a me iOS ma ka hopena o ka makahiki;
  • Hoʻoponopono hoʻomanaʻo i ka manawa hōʻuluʻulu (e like me ka Rust), me ka hoʻohana ʻole ʻana i ka ʻōpala;
  • Loaʻa i kahi pahu hana multi-platform no ka hoʻopuka kiʻi, me ka hoʻohana ʻana iā GDI+/Cocoa a me OpenGL no ka hāʻawi ʻana (ua hoʻolālā ʻia ke kākoʻo no DirectX, Vulkan a me Metal API). Loaʻa nā mea hana no ka hana ʻana me nā mea 3D, skeletal animation a me ka mana kamera;
  • Loaʻa i kahi waihona no ka hana ʻana i nā loulou kiʻi me nā mea hoʻolālā maoli i kēlā me kēia OS. Hoʻohana ʻo Windows iā WinAPI/GDI+, hoʻohana ʻo macOS i ka Cocoa, a hoʻohana ʻo Linux i kāna mau widget ponoʻī. Ua hoʻohana ʻia ka waihona i ka hoʻomohala ʻana Volt - mea kūʻai no Slack, Skype, Gmail, Twitter a me Facebook;

    ʻO ka hoʻolālā e hana i kahi noi hoʻolālā hoʻolālā Delphi-like, hāʻawi i kahi API declarative e like me SwiftUI a me React Native, a hāʻawi i ke kākoʻo no ka hana ʻana i nā noi kelepona no iOS a me Android;

    V ka ʻōlelo hoʻolālā ʻōlelo open source

  • Loaʻa i kahi pūnaewele i kūkulu ʻia, i hoʻohana ʻia e hana i kahi pūnaewele, forum a me ka blog no nā mea hoʻomohala papahana. Kākoʻo ʻia ka precompilation o nā template HTML, me ka hana ʻole ʻana iā lākou ma kēlā me kēia noi;
  • Kākoʻo hui keʻa. No ke kūkulu ʻana i ka faila hoʻokō no Windows, e holo wale i "v -os windows", a no Linux - "v -os linux" (manaʻo ʻia ke kākoʻo cross-compilation no macOS ma hope). Hoʻopili pū ʻia ka cross-compilation no nā noi kiʻi;
  • Manakia hilinaʻi i kūkulu ʻia, luna pūʻolo a me nā mea hana. No ke kūkulu ʻana i ka papahana, e holo wale i "v.", me ka hoʻohana ʻole ʻana i nā mea hana a i ʻole nā ​​​​mea hana waho. No ka hoʻouka ʻana i nā hale waihona puke, holo wale, no ka laʻana, "v loaʻa sqlite";
  • Loaʻa i nā plugins no ka hoʻomohala ʻana i ka ʻōlelo V i nā mea hoʻoponopono Kānāwai VS и Vim.

Ka hoʻolālā ʻike ʻia kaiaulu me kanalua, no ka mea, ua hōʻike ʻia ka code i paʻi ʻia ʻaʻole i hoʻokō ʻia nā mana i hōʻike ʻia a he nui loa ka hana e koi ʻia e hoʻokō i nā hoʻolālā āpau.
Eia kekahi, ua loaʻa mua ka waihona kau ʻia code haʻihaʻi i pilikia me ka hui a me ka hoʻokō. Manaʻo ʻia ʻaʻole i hiki i ka mea kākau i ke kahua a lākou e hoʻomaka ai e ʻike Ke kanawai o Pareto, e like me ka 20% o ka ho'āʻo e hoʻopuka i 80% o ka hopena, a ʻo ke koena 80% o ka hoʻoikaika ʻana e hoʻopuka wale i 20% o ka hopena.

Eia nō naʻe, ua loaʻa iā Project V ka mea hoʻokele bug ma kahi o 10 mau pou i wehe ʻia mai hoikeike ʻO ke code haʻahaʻa haʻahaʻa, no ka laʻana, hōʻike i ka hoʻohana ʻana i nā C-inserts a me ka hoʻohana ʻana i ka waihona o nā hana no ka holoi ʻana i ka papa kuhikuhi o ke kauoha rm ma o ke kelepona os.system ("rm -rf $ ala"). Ka mea kākau o ka papahana haʻiʻiaua holoi wale ʻo ia i nā memo, hoʻopuka ʻia troll (me nā hoʻololi e hōʻoia ana i ka pono o ka hoʻohewa, ua noho в hoʻoponopono mōʻaukala).

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka