Hapja e bibliotekës standarde të gjuhës Mojo. Përditësimi i Mojo Toolkit 24.2

Zhvilluesit e gjuhës së programimit Mojo kanë filluar të konvertojnë zhvillimet e projektit në softuer me burim të hapur. I pari që u hap me burim ishte kodi standard i bibliotekës, i cili tani është i disponueshëm nën licencën Apache 2.0 me përjashtime nga projekti LLVM që lejon përzierjen me kodin nën licencën GPLv2. Përveç publikimit të kodit, procesi i zhvillimit është zhvendosur drejt hapjes dhe aftësisë për të komunikuar ndryshimet e palëve të treta përmes paraqitjes së kërkesave për tërheqje në GitHub. Kodi burimor i përpiluesit është planifikuar të hapet pasi të përfundojë dizajni i arkitekturës së brendshme.

Depoja ka dy degë me kodin standard të bibliotekës Mojo: dega kryesore, e sinkronizuar me versionin më të fundit të qëndrueshëm të Mojo, dhe dega e natës, që pasqyron procesin aktual të zhvillimit dhe e sinkronizuar me ndërtimet e natës të Mojo. Dega e natës inkurajohet të përdoret nga pjesëmarrësit që dëshirojnë t'i bashkohen zhvillimit dhe të ndajnë ndryshimet e tyre. Në të njëjtën kohë, disa nga modulet e bibliotekës nuk janë ende të hapura, por pas një kohe edhe kodi i mbetur i mbyllur është planifikuar të zhvendoset në një depo të hapur. Kodi i moduleve që zhvillohen me shpejtësi që kërkojnë stabilizim shtesë, moduleve për të cilat është planifikuar rifaktorimi dhe moduleve që kërkojnë rishikim dhe ripunim shtesë për shkak të lidhjeve me projekte të pronarit mbetet i mbyllur.

Njëkohësisht, u publikuan versioni Mojo SDK 24.2, i cili mundëson përpilimin e projekteve në një sistem lokal, dhe versioni MAX Engine 24.2, i cili ofron një platformë për zhvillimin e të mësuarit automatik. Mojo SDK përfshin komponentët e nevojshëm për zhvillimin e aplikacioneve në gjuhën Mojo, duke përfshirë një përpilues, runtime, një shell interaktiv REPL për ndërtimin dhe ekzekutimin e programeve, një debugger, një shtesë për redaktuesin e kodit Visual Studio Code (VS Code) me mbështetje për plotësimin automatik të të dhënave, formatimin e kodit dhe nxjerrjen në pah të sintaksës, një modul për integrimin me Jupyter për ndërtimin dhe ekzekutimin e fletoreve Mojo. MAX Engine plotëson SDK-në me mjete për zhvillimin dhe debugging-un e aplikacioneve që përdorin modele të të mësuarit automatik në formate të ndryshme (TensorFlow, PyTorch, ONNX, etj.). Ndërtimet e Mojo SDK dhe MAX Engine janë përgatitur për platformën. Linux О macOS.

Disa nga ndryshimet më të dukshme në Mojo 24.2 përfshijnë:

  • Strukturat dhe llojet e tjera nominale tani mund tĂ« hartohen nĂ« mĂ«nyrĂ« implicite me tiparet. PĂ«r shembull, çdo strukturĂ« pĂ«r tĂ« cilĂ«n zbatohet metoda __str__() korrespondon nĂ« mĂ«nyrĂ« implicite me tiparin Stringable dhe mund tĂ« pĂ«rdoret me funksionin str().
  • Mjetet e pajtueshmĂ«risĂ« me Python kanĂ« shtuar mbĂ«shtetje pĂ«r kalimin e argumenteve tĂ« bazuara nĂ« fjalĂ« kyçe te funksionet e Python. PĂ«r shembull, "plt.plot((5, 10), (10, 15), color="red")"
  • MbĂ«shtetje e shtuar pĂ«r kalimin e njĂ« numri tĂ« ndryshueshĂ«m argumentesh nĂ« njĂ« funksion, tĂ« specifikuar pĂ«rmes caktimit tĂ« fjalĂ«ve kyçe. PĂ«r shembull, "print_nicely(a=7, y=8)".
  • Lloji DynamicVector Ă«shtĂ« riemĂ«rtuar nĂ« List dhe Ă«shtĂ« zhvendosur nĂ« modulin collections.list. U shtua aftĂ«sia pĂ«r tĂ« gjeneruar njĂ« listĂ« bazuar nĂ« njĂ« numĂ«r arbitrar vlerash, pĂ«r shembull, "var numra = List[Int](1, 2, 3)".
  • Parametrat e emĂ«rtuar sep dhe end janĂ« shtuar nĂ« funksionin print(), pĂ«rmes tĂ« cilit mund tĂ« vendosni vlerat ndarĂ«se dhe pĂ«rfundimtare tĂ« daljes. PĂ«r shembull, ekzekutimi i printimit ("Hello", "Mojo", sep=", ", end="!!!\n") do tĂ« rezultojĂ« nĂ« daljen "prints Hello, Mojo!!!".

Projekti Mojo udhëhiqet nga Chris Lattner, themeluesi dhe arkitekti kryesor i projektit LLVM dhe krijuesi i gjuhës së programimit Swift. Sintaksa e Mojo-s bazohet në gjuhën Python dhe sistemi i tipit është afër C/C++. Projekti është shpallur si një gjuhë me qëllime të përgjithshme që zgjeron aftësitë e Python me aftësitë e programimit të sistemeve, është i përshtatshëm për një gamë të gjerë detyrash dhe kombinon lehtësinë e përdorimit për zhvillimin e kërkimit dhe prototipimin e shpejtë me përshtatshmërinë për produktet përfundimtare me performancë të lartë.

Thjeshtësia arrihet përmes përdorimit të sintaksës së njohur të Python dhe zhvillimi i produkteve përfundimtare lehtësohet nga aftësia për të përpiluar kodin e makinës, mekanizmat e sigurt për kujtesën dhe përdorimin e mjeteve të përshpejtimit të harduerit. Për të arritur performancë të lartë, paralelizimi i llogaritjeve mbështetet duke përdorur të gjitha burimet harduerike të sistemeve heterogjene të disponueshme në sistem, të tilla si GPU, përshpejtuesit e specializuar për mësimin e makinerive dhe udhëzimet e procesorit vektor (SIMD). Për llogaritjet intensive, paralelizimi dhe përdorimi i të gjitha burimeve kompjuterike bën të mundur arritjen e performancës më të lartë se aplikacionet C/C++.

Gjuha mbështet shkrimin statik dhe veçori të nivelit të ulët të sigurt për memorie që të kujtojnë Rust, të tilla si gjurmimi gjatë gjithë jetës së referencës dhe kontrolluesi i huamarrjes. Në të njëjtën kohë, gjuha ofron gjithashtu mundësi për punë të nivelit të ulët, për shembull, është e mundur të aksesoni drejtpërdrejt memorien në modalitetin e pasigurt duke përdorur llojin Pointer, të telefononi udhëzime individuale SIMD ose të aksesoni shtesat e harduerit si TensorCores dhe AMX.

Mojo mund të përdoret si në modalitetin e interpretimit duke përdorur JIT, ashtu edhe për përpilim në skedarë të ekzekutueshëm (AOT, para kohe). Përpiluesi ka teknologji moderne të integruara për optimizimin automatik, memorien dhe përpilimin e shpërndarë. Kodi burimor në gjuhën Mojo konvertohet në kodin e ndërmjetëm të nivelit të ulët MLIR (Përfaqësimi i ndërmjetëm me shumë nivele), i zhvilluar nga projekti LLVM. Përpiluesi ju lejon të përdorni backend të ndryshëm që mbështesin MLIR për të gjeneruar kodin e makinës.

Burimi: opennet.ru

Bleni njĂ« host tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, serverĂ« VPS VDS đŸ”„ Bleni hosting tĂ« besueshĂ«m tĂ« faqeve tĂ« internetit me mbrojtje DDoS, servera VPS VDS | ProHoster