luainspect не работает в фаре

Столкнулись с проблемой в использовании макросов? Здесь можно получить помощь.
Post Reply
User avatar
John Doe
Бюрократ
Posts: 12656
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 35 times
Been thanked: 270 times

luainspect не работает в фаре

Post by John Doe »

Столкнулся с проблемой при попытке использования в фаре luainspect (https://github.com/davidm/lua-inspect): вызов require "luainspect.ast" приводит к ошибке.

Для установки модуля требуется скачать https://github.com/davidm/lua-inspect/a ... master.zip, и скопировать содержимое lib и metalualib в папку, доступную через package.path.

Далее надо создать test.lua, содержащий единственную строку: вызов require "luainspect.ast"

Для воспроизведения проблемы сам фар необязателен, можно использовать lflua.
(Обычный luajit.exe работает в этой ситуации без ошибок)

Подозреваю, что проблема вызвана Selene Unicode, но самостоятельно разобраться мне не удалось.

Shmuel
Posts: 6031
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 27 times
Been thanked: 294 times

luainspect не работает в фаре

Post by Shmuel »

John Doe wrote: Подозреваю, что проблема вызвана Selene Unicode, но самостоятельно разобраться мне не удалось.
Очень возможно. Копайте в сторону %p в паттернах. Когда докопаетесь, поместите на мантис.

Shmuel
Posts: 6031
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 27 times
Been thanked: 294 times

luainspect не работает в фаре

Post by Shmuel »

Shmuel wrote: Копайте в сторону %p в паттернах
Уточню, что под "копать" не подразумевается разбираться в исходниках, а только выявить различия в поведении %p между Selene Unicode с одной стороны, и Lua/LuaJIT - с другой.

User avatar
John Doe
Бюрократ
Posts: 12656
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 35 times
Been thanked: 270 times

luainspect не работает в фаре

Post by John Doe »

Code: Select all

local w = "=="
local p = "^%p%p+$"
print(w:match(p) )
print(string.match(w,p))
Output:

Code: Select all

nil
==

Shmuel
Posts: 6031
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 27 times
Been thanked: 294 times

luainspect не работает в фаре

Post by Shmuel »

Для проверки нет необходимости в сложных паттернах: одного %p должно быть достаточно. Кроме = есть и другие символы, обрабатываемые различно.

User avatar
John Doe
Бюрократ
Posts: 12656
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 35 times
Been thanked: 270 times

luainspect не работает в фаре

Post by John Doe »

Shmuel wrote: Кроме = есть и другие символы, обрабатываемые различно.

Code: Select all

local s = "`~!@#$%^&*()-_=+\\|/{}[]:;\"',.?*"
for c in s:gmatch"." do
  if c:match"%p"~=string.match(c,"%p") then
    print(c)
  end
end
Output: `~$^=+|

P.S.
Это символы с клавиатуры, возможно следует проверить и другие.

User avatar
John Doe
Бюрократ
Posts: 12656
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 35 times
Been thanked: 270 times

luainspect не работает в фаре

Post by John Doe »

Code: Select all

for i=0,255 do
  local c = string.char(i)
  local f,l = c:match"%p",string.match(c,"%p")
  if f~=l then
    print(f,l)
  end
end
Output:

Code: Select all

nil     $
nil     +
nil     <
nil     =
nil     >
nil     ^
nil     `
nil     |
nil     ~
б       nil
л       nil
н       nil
╖       nil
╗       nil
┐       nil
Update: http://bugs.farmanager.com/view.php?id=3012

Shmuel
Posts: 6031
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 27 times
Been thanked: 294 times

luainspect не работает в фаре

Post by Shmuel »

Осталось только поместить это на мантис.

Post Reply

Return to “Нужна помощь”