לואה (שפת תכנות) – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
המשך עבודה על הערך, שינוי תבנית (זמנית).
הוספת פרק "מימושים עקריים", באופן חלקי עם מקורות וציטוטים בהערות שוליים.
תגיות: הוספת תבנית לשינויים בערך עריכה חזותית
שורה 208:
print("foo") --> foo
</syntaxhighlight>
 
== מימושים עיקריים ==
מהיותה שפה זעירה ו[[קוד פתוח|חופשית]] שנועדה ל[[מערכת משובצת מחשב|שיבוץ]], ל־Lua קיימים כיום [[מימוש|מימושים]] רבים שפותחו במשך השנים למגוון מטרות שונות ע"י מפתחים וצוותים עצמאים.<ref>{{קישור כללי|כתובת=https://www.lua.org/about.html|הכותב=|כותרת=Lua is small|אתר=עמוד הבית של Lua|תאריך=|ציטוט=The source contains around 24000 lines of C. Under 64-bit Linux, the Lua interpreter built with all standard Lua libraries takes 247K and the Lua library takes 421K.}}</ref><ref>{{קישור כללי|כתובת=http://lua-users.org/wiki/LuaImplementations|כותרת=lua-users wiki: Lua Implementations|אתר=lua-users.org|תאריך_וידוא=2019-02-28}}</ref> בין המימושים קיימים הבדלים ואי־תאימויות לאור המגבלות שמולן הם נעמדו או עקב שינויים ללא תאימות לאחור שחלו במימוש ה[[קאנון ספרותי|קנוני]] של Lua מהאוניברסיטה הקתולית (PUC Rio).<ref>{{קישור כללי|כתובת=https://www.lua.org/versions.html|הכותב=|כותרת=Version history|אתר=עמוד הבית של Lua|תאריך=|ציטוט=Different versions are really different. The API is likely to be a little different (but with compatibility switches), and there is no ABI compatibility: applications that embed Lua and C libraries for Lua must be recompiled.}}</ref>
 
מצב זה העמיד אתגר ל[[קוד פתוח|קהילת החופשית]] של Lua ולמיזם מערכת ניהול החבילות שלה ([[#LuaRocks|LuaRocks]]) לנסות ליצור שיתוף פעולה ותיאום בין החבילות הזמינות שהציעו חברי הקהילה מול הגרסאות השונות של השפה שחלו במימושים המועדפים עליהם.<ref>{{קישור כללי|כתובת=https://realmensch.org/2016/05/28/goodbye-lua/|הכותב=Tim Mensch|כותרת=Fragmentation of Lua|אתר=RealMensch|תאריך=|תאריך_וידוא=2019-02-28|ציטוט=The major breaking changes in Lua in 5.3 seem to be fragmenting the already sparse Lua library ecosystem. Anyone who creates a library needs to now support LuaJIT (a 5.1/5.2 hybrid)}}</ref>
 
בסביבות [[2015]] הקהילה נקרעה לשני מחנות מרכזיים והם Lua 5.3 ו־Lua 5.1 עקב ההתנגדות הנחרצת שהביע מייק פול - היוצר של LuaJIT - מליישם את השינויים החדשים של Lua 5.3 ב־LuaJIT לאחר שכבר הביע התנגדות קודמת לשינויים של Lua 5.2 למרות שיישם את חלקם.<ref>{{קישור כללי|כתובת=http://luajit.org/extensions.html|כותרת=Extensions|אתר=luajit.org|תאריך_וידוא=2019-02-28}}</ref><ref>{{קישור כללי|כתובת=https://news.ycombinator.com/item?id=12573981|כותרת=My love-hate relationship with LuaJIT (2015) {{!}} Hacker News|אתר=news.ycombinator.com|תאריך_וידוא=2019-02-28}}</ref><ref>{{קישור כללי|כתובת=https://realmensch.org/2016/05/28/goodbye-lua/|הכותב=|כותרת=Fragmentation of Lua|אתר=RealMensch|תאריך=|ציטוט=Lua dependency management is also very hit-or-miss. The "luarocks" package manager has about a 60% chance of working with any particular package on Windows, for instance. This has always been the case, but with the additional Lua version fragmentation, it's only making things worse.}}</ref>
 
אחרית הדבר היא שכיום רוב החבילות ב־LuaRocks זמינות בשתי הגרסאות האלה בעיקר כדי לשמור על תאימות לאחור עם LuaJIT, שהיא המימוש המועדף על חלק ניכר מהקהילה.
 
==== Lua (PUC Rio) ====
{{להשלים}}
 
==== LuaJIT ====
{{להשלים}}
 
==== eLua ====
{{להשלים}}
 
==== Metalua ====
{{להשלים}}
 
==קישורים חיצוניים==