Lua 5.x와 4.0 호환성

2015. 9. 20. 02:29프로그래밍/Script

728x90
728x90

원문

http://ospace.tistory.com/97


Lua 5.x와 Lua 4.0 호환성

Lua 4.0과 Lua 5.x와 완변한 호환성이 제공되지 않는다. 버전 5.x로 업그레이드 한다면 다음 사항을 주의하길 바란다.


언어에서 변경된 내용

- 모든 tag메소드가 메타테이블로 대치되었다 

- 괄호 사이에 있는 함수는 반드시 값 한 개만 반환해야한다 

- 목록 형태의 생성자에서 마지막 항목에 있는 함수(예를 들어 {a, b, f() })에서 반환 값은 목록 맨뒤에 차례로 추가된다. 

- or의 우선순위가 and 우선순위보다 낮다 

- in, false, true은 예약어이다 

- 예전 생성 형태인 for k, v in t(여기서 t는 table)은 제거되었다. 

(아직까지는 지원되지만 가급적이면 for k,v in pairs(t) 형태로 사용해라.) 

- 개행문자로 시작되는 문자열에서 처음 개행문자는 무시된다. 

- %var 형태는 쓰지 않으며 대신에 외부 지역 변수로 사용해라.


라이브러리에서 변경된 내용

- 모든 라이브러리 함수는 이제 테이블 내에 정의되었다. 

호환위한 스크립트(compat.lua)에서 전역 이름형태로 이들을 재정의하고 있다. 

- 수학 라이브러리에서 각도는 라디안으로 사용한다. 호환 스크립트(compat.lua)에서 도(degree)단위로 작동할 수 있게 했다. 

- call 함수는 제거되었다. call(f, tab)대신에 unprotected call을 f(unpack(tab))으로 사용하거나 새로운 pcall 함수를 사용한다. 

- dofile은 에러를 처리하지 않으며 단순히 에러를 전달한다. 

- dostring은 제거되었다. loadstring으로 사용해라. 

- read옵션인 *w은 사용하지 않은다. 

- format옵션인 %n$은 사용하지 않은다.

- API에서 변경된 내용

- lua_open는 인자를 위한 스택를 갖지 않은다. (stack은 동적) 

- lua_pushuserdata은 삭제되었다. 대신에 lua_newuserdata나 lua_pushlightuserdata를 사용해라



728x90
반응형

'프로그래밍 > Script' 카테고리의 다른 글

개론  (2) 2015.10.01
Lua와 C 바인딩  (0) 2015.09.20
Lua 메타테이블  (0) 2015.09.20
Lua 조건문, 반복문  (0) 2015.09.19
Lua 연산자  (0) 2015.09.19
Lua 함수  (0) 2015.09.19
Lua 자료형  (0) 2015.09.19