
패치된 Lua 5.3 인터프리터로, CVE-2020-24370를 해결하여 임베디드 애플리케이션 및 자동화를 위한 안전한 스크립팅 환경을 제공합니다.
dl.display dd { padding-bottom: 0.2em ; }
tt, kbd, code { font-size: 12pt ; }
Lua 5.3에 오신 것을 환영합니다
Lua는 브라질 리우데자네이루의 폰티피셜 가톨릭 대학교(PUC-Rio)의 팀이 개발한 강력하고 빠르며 가벼운 내장형 스크립트 언어입니다. Lua는 자유 소프트웨어로서 전 세계 많은 제품과 프로젝트에서 사용됩니다.
Lua의 공식 웹 사이트에서는 Lua에 대한 완전한 정보를 제공하며, 실행 요약 및 업데이트된 문서(특히 참조 매뉴얼)를 포함합니다. 참조 매뉴얼은 이 패키지에 포함된 로컬 복사본과 약간 다를 수 있습니다.
Lua는 소스 형태로 배포됩니다. 사용하기 전에 빌드해야 합니다. Lua는 순수 ANSI C로 구현되어 ANSI C 컴파일러가 있는 모든 알려진 플랫폼에서 수정 없이 컴파일되므로 빌드는 간단해야 합니다. Lua는 C++로도 수정 없이 컴파일됩니다. 아래 제공된 Lua 빌드 지침은 Unix 계열 플랫폼을 위한 것입니다. 다른 시스템에 대한 지침 및 사용자 지정 옵션도 참조하세요.
직접 Lua를 컴파일할 시간이나 의향이 없다면 LuaBinaries에서 바이너리를 받으세요. 또한 다양한 기능을 포함하는 멀티 플랫폼 Lua 배포판인 LuaDist도 시도해보세요.
대부분의 Unix 계열 플랫폼에서는 적절한 대상으로 "make"를 실행하면 됩니다. 자세한 내용은 다음과 같습니다.
aix bsd c89 freebsd generic linux macosx mingw posix solaris
플랫폼이 목록에 있으면 "make xxx"를 실행하세요. 여기서 xxx는 플랫폼 이름입니다.
플랫폼이 목록에 없으면 가장 가까운 플랫폼이나 posix, generic, c89 순서로 시도하세요.
Linux를 사용 중이고 컴파일 오류가 발생하면 readline 개발 패키지(아마 libreadline-dev 또는 readline-devel로 명명됨)가 설치되어 있는지 확인하세요. 그 후에도 링크 오류가 발생하면 "make linux MYLIBS=-ltermcap"을 시도해보세요.
Lua를 빌드한 후 시스템의 공식 위치에 설치하고 싶을 수 있습니다. 이 경우 "make install"을 실행하세요. 공식 위치와 파일 설치 방법은 Makefile에 정의되어 있습니다. 파일을 설치하려면 적절한 권한이 필요할 수 있습니다.
한 단계로 Lua를 빌드하고 설치하려면 "make xxx install"을 실행하세요. 여기서 xxx는 플랫폼 이름입니다.
Lua를 로컬에 설치하려면 "make local"을 실행하세요. 그러면 install 디렉터리와 하위 디렉터리 bin, include, lib, man, share가 생성되고 아래 나열된 대로 Lua가 설치됩니다.
Lua를 로컬에 설치하되 다른 디렉터리에 설치하려면 "make install INSTALL_TOP=xxx"를 실행하세요. 여기서 xxx는 선택한 디렉터리입니다. 설치는 src 및 doc 디렉터리에서 시작되므로 INSTALL_TOP이 절대 경로가 아닌 경우 주의하세요.
이것들은 개발에 필요한 유일한 디렉터리입니다. Lua 프로그램만 실행하려면 bin과 man에 있는 파일만 있으면 됩니다. include와 lib에 있는 파일은 C 또는 C++ 프로그램에 Lua를 내장하는 데 필요합니다.
파일을 편집하여 사용자 지정할 수 있는 세 가지 종류가 있습니다:
make를 호출할 때 명령줄에서 관련 변수를 설정할 수 있으므로 Makefile을 실제로 편집할 필요는 없습니다. 그럼에도 불구하고 변경 사항을 기록하려면 Makefile을 편집하여 저장하는 것이 가장 좋습니다.
반면, 일부 Lua 기능을 사용자 지정해야 하는 경우 Lua를 빌드하고 설치하기 전에 src/luaconf.h를 편집해야 합니다. 편집된 파일이 설치되며, 일관성을 유지하기 위해 빌드하는 모든 Lua 클라이언트에서 사용됩니다. 전문가의 경우 Lua 소스를 편집하여 추가 사용자 지정이 가능합니다.
일반적인 Unix 도구를 사용하지 않는 경우 Lua 빌드 지침은 사용 중인 컴파일러에 따라 다릅니다. 라이브러리, 인터프리터 및 컴파일러를 빌드하기 위해 다음과 같이 프로젝트(또는 컴파일러가 사용하는 것)를 생성해야 합니다:
자신의 프로그램에서 Lua를 라이브러리로 사용하려면 컴파일러로 라이브러리를 생성하고 사용하는 방법을 알아야 합니다. 또한 Lua용 C 라이브러리를 동적으로 로드하려면 동적 라이브러리를 생성하는 방법을 알아야 하며 Lua API 함수가 해당 동적 라이브러리에서 액세스 가능하도록 해야 합니다. 단, 각 동적 라이브러리에 Lua 라이브러리를 링크하지 마십시오. Unix의 경우 Lua 라이브러리를 호스트 프로그램에 정적으로 링크하고 해당 심볼을 동적 링크용으로 내보낼 것을 권장합니다. src/Makefile은 Lua 인터프리터에 대해 이 작업을 수행합니다. Windows의 경우 Lua 라이브러리를 DLL로 사용할 것을 권장합니다. 모든 경우에 컴파일러 luac는 정적으로 링크되어야 합니다.
위에서 언급한 대로, Lua를 빌드하기 전에 src/luaconf.h를 편집하여 일부 기능을 사용자 지정할 수 있습니다.
다음은 Lua 5.3에 도입된 주요 변경 사항입니다. 참조 매뉴얼에는 도입되어야 했던 비호환성이 나열되어 있습니다.
다음은 Lua 5.3에 도입된 기타 변경 사항입니다:
ipairs 및 table 라이브러리가 메타메서드를 존중함
string.dump의 strip 옵션
table.move
string.pack
string.unpack
string.packsize
lua_gettable 및 유사 함수가 결과 값의 유형을 반환함
lua_dump의 strip 옵션
lua_geti
lua_seti
lua_isyieldable
lua_numbertointeger
lua_rotate
lua_stringtonumber
arg 테이블을 모든 코드에서 사용 가능
Lua는 아래에 복제된
MIT 라이선스 조건에 따라
배포되는 자유 소프트웨어입니다.
상업적 목적을 포함한 모든 목적으로 비용 없이 사용할 수 있으며
문의할 필요가 없습니다.
유일한 요구 사항은 Lua를 사용하는 경우 제품이나 문서에 적절한 저작권 표시를 포함하여 우리에게 크레딧을 제공해야 한다는 것입니다.
자세한 내용은 여기를 참조하세요.
Copyright © 1994–2017 Lua.org, PUC-Rio.Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
마지막 업데이트: Mon Jun 18 22:57:33 -03 2018