[Logo]
LUA Форум
  [Search] Поиск   [Recent Topics] Последние темы   [Hottest Topics] Горячие темы   [Members]  Список участников   [Groups] На главную страницу 
[Register] Регистрация / 
[Login] Вход 
Доступен 5.2.0  XML
Индекс форума » LUA: Общие вопросы
Автор Сообщение
Strijar
ГУРУ

Зарегистрирован: 08/02/2008 21:28:09
Сообщений: 223
От: СПб
Оффлайн

http://article.gmane.org/gmane.comp.lang.lua.general/61505


Follows a (hopefully) more complete list of changes:

language:
- lexical environments
- no more fenv for threads
- ephemeron tables
- yieldable pcall/metamethods
- tables respect __len metamethod
- max constants per function raised to 2^26
- \xFF in strings
- no more verification of opcode consistency

API:
- mainthread predefined in the registry
- cpcall changed to a predefined function in the registry
- new constants LUA_OK, LUA_ERRGCMM
- lua_compare and lua_arith and lua_len
- lua_version and luaL_version
- lua_pushstring/pushlstring return string
- luaL_testudata
- luaL_tolstring
- lua_copy
- lua_upvalueid & lua_upvaluejoin
- nparams/isvarag available in debug API

stand-alone:
- handling of non-string error messages

libraries:
- bitlib
- '__pairs'/'__ipairs' metamethod
- xpcall with arguments
- optional argument to load (to control binary x text)
- loadlib may load libraries with global names (RTLD_GLOBAL)
- package.searchpath
- optional base in math.log
- file:write returns file
- closing a popen returns exit status
- os.exit may close state
- new option 'isrunning' for collectgarbage/lua_gc
- frontier patterns
- ipairs now goes until #t

implementation:
- emergency garbage collector (core forces a GC when allocation fails)
- internal (immutable) version of ctypes
- separate udata
- CallInfo stack now is a linked list
- parser uses much less C-stack space (no more auto arrays)
- new hash for floats


http://www.lua.org/work/

Лучше быть белым волком, чем серым человеком.
[WWW]
DEADlist
Постоянный посетитель
[Avatar]

Зарегистрирован: 21/03/2009 22:08:40
Сообщений: 58
Оффлайн

Впринцепе это хорошо, новый метаметоды и т.д. , но я не понял смысл либы Bitwise, типа простые ассемблерные команды для работы c битами, только на высоком уровне? Если так то могли бы сразу сделать оператор "asm ... end ".

Это сообщение было редактировано 1 раз. Последнее обновление произошло в 19/01/2010 21:01:20


Человек - это звучит гордо,а Обезьяна - обьективно.
[ICQ]
Strijar
ГУРУ

Зарегистрирован: 08/02/2008 21:28:09
Сообщений: 223
От: СПб
Оффлайн

Да нет - asm тут совсем не при чем. Это библиотека для работы с битами. Иногда и правда надо.

Лучше быть белым волком, чем серым человеком.
[WWW]
DEADlist
Постоянный посетитель
[Avatar]

Зарегистрирован: 21/03/2009 22:08:40
Сообщений: 58
Оффлайн

Я уж понял что эта либа для работы с битами и как с ней работать. Ну знаешь абсолютно идентчные с bitwise операции (тоже самое делают) для работы с битами есть и в ассемблере, и с такими же именами =). ИМХО мне просто показалось, что лучше было бы сразу ассемблерные вставки сделать в lua (чтобы меньше возни было и больше эффективности) если уж в этом направлении пытаться продвигать луа. А хотя на асме неудобно с луа работать было бы...

Человек - это звучит гордо,а Обезьяна - обьективно.
[ICQ]
Strijar
ГУРУ

Зарегистрирован: 08/02/2008 21:28:09
Сообщений: 223
От: СПб
Оффлайн

1) Зачем asm в скриптовом языке?
2) Какой asm вставлять? x86? А у меня Lua и на ARM работает, и на PPC - т.е см.п 1

Лучше быть белым волком, чем серым человеком.
[WWW]
DEADlist
Постоянный посетитель
[Avatar]

Зарегистрирован: 21/03/2009 22:08:40
Сообщений: 58
Оффлайн

Я же сказал что мне просто показалось так, не принимай всерьез...

Человек - это звучит гордо,а Обезьяна - обьективно.
[ICQ]
DEADlist
Постоянный посетитель
[Avatar]

Зарегистрирован: 21/03/2009 22:08:40
Сообщений: 58
Оффлайн

1) Для битовых операций и низкоуровневого прграмиинга.
2) Конечно же intel x86, PPC только на маках сейчас, хотя и интел на них есть

Человек - это звучит гордо,а Обезьяна - обьективно.
[ICQ]
Strijar
ГУРУ

Зарегистрирован: 08/02/2008 21:28:09
Сообщений: 223
От: СПб
Оффлайн

1) Для битовых операций и низкоуровневого прграмиинга.


Да ну... не вижу смысла хоть режьте

2) Конечно же intel x86, PPC только на маках сейчас, хотя и интел на них есть


Только? Почему это? PPC405 стоит в FPGA Xilinx Virtex4, PPC440 стоит в Virtex5

Лучше быть белым волком, чем серым человеком.
[WWW]
mitrich
Новичок

Зарегистрирован: 09/01/2009 14:40:41
Сообщений: 6
Оффлайн

Интересно, что это за такие lexical environments, которые предлагается использовать вместо setfenv() и getfenv()? Вроде даже какую-то новую конструкцию в язык добавить хотят:

A lexical environment defines a new current environment (see §2.9) for the code inside its block:

stat ::= in exp do block end

That is, a lexical environment changes the table used to resolve all accesses to global (free) variables inside a block.

Inside a lexical environment, the result of exp becomes the current environment. Expression exp is evaluated only once in the beginning of the statement and it is stored in a hidden local variable named (environment). Then, any global variable (that is, a variable not declared as a local) var inside block is accessed as (environment).var. Moreover, functions defined inside the block also use the current environment as their environments (see §2.9).

A lexical environment does not shadow local declarations. That is, any local variable that is visible just before a lexical environment is still visible inside the environment.

И ещё функцию loadin для этого добавили, а setfenv() и getfenv() перенесли в debug.

Как я понял, вместо

Теперь предлагается использовать

а скажем, получить таблицу глобального окружение, чтобы поставить для него metatable можно только через debug.getfenv()?
DEADlist
Постоянный посетитель
[Avatar]

Зарегистрирован: 21/03/2009 22:08:40
Сообщений: 58
Оффлайн

Lexical environments - лексические зоны видимости: например локальные (local) переменные луа, модули (module). Похоже они имеют ввиду, что это нововведение гораздо более удобнее для работы с композициями модулей, таблиц и зон видимости. Т.е. взаимодействие между зонами видимости станет понятней, удобней и проще, а хотя ИМХО это сахар .

Человек - это звучит гордо,а Обезьяна - обьективно.
[ICQ]
 
Индекс форума » LUA: Общие вопросы
Перейти:   
Powered by JForum 2.1.8 © JForum Team