Задать вопрос

Почему тут обрывается stacktrace?

¤ nil Функции/Строка/ФункцияРазбиенияСтроки.lua
addons/glua-stock/moon/autorun/server
stack traceback:
        Функции/ФункцияПолученияПутиВызоваСамойФункции.moon:15: in function 'callpath'
        Функции/ФункцияПолученияПутиКаталогаВызоваСамойФункции.moon:13: in function 'callpath'
        Система Включений.moon:26: in function <Система Включений.moon:22>
@Функции/ФункцияПолученияПутиВызоваСамойФункции.moon
@Функции/ФункцияПолученияПутиКаталогаВызоваСамойФункции.moon
@Система Включений.moon
unknown
unknown
unknown
unknown
unknown
unknown
unknown

[ERROR] Функции/ФункцияПолученияПутиКаталогаВызоваСамойФункции.moon:13: не найден параметр пути исходного файла.
  1. callpath - [C]:-1
   2. callpath - Функции/ФункцияПолученияПутиКаталогаВызоваСамойФункции.moon:13
    3. unknown - Система Включений.moon:26


import getinfo from debug
import gsub from string
import rawget from _G

--__pathsep = dofile("Функции/ФункцияПолученияДелителяПутиВОперационнойСистеме.moon")!

explode = dofile "Функции/Строка/ФункцияРазбиенияСтроки.lua"

get_call_path = (lvl=0) ->
    informaciya = getinfo 2 + lvl

    unless informaciya
        for element in *explode debug.traceback!, '\n'
            print element

        for i = 1, 10
            print (getinfo(i) or {source: "unknown"}).source

        error "не найден параметр пути исходного файла."
    else
        informaciya.source\gsub "@", ""

return get_call_path


module "lua-stock", package.seeall

callpath = dofile "Функции/ФункцияПолученияПутиКаталогаВызоваСамойФункции.moon"
pathsep = dofile("Функции/ФункцияПолученияДелителяПутиВОперационнойСистеме.moon")!

if not default_include
    export default_include = include

Try = dofile "Функции/ФункцияПоимкиИсключения.moon"

kolichestvooshibokprivklucheniiputi = 0

dofile "Модули/Строка.moon"

import unpack from _G

vkluchayemiyedannye = {}
proverkaispolnaniya = (path, lvl=0, ...) ->
    PrintTable debug.getinfo(2 + lvl)
    print!
    return dofile(path, 1 + lvl, ...)
    --unpack vkluchayemiyedannye[path]

export include = (what, lvl = 0, ...) ->
    path = string.path.norm (callpath 1 + lvl) .. pathsep .. what

    -- 
    print "включение #{what} <-> #{path} (#{callpath 1 + lvl})"

    if path\find "..#{string.path.dirsep}"
        path = string.path.fold path 

    --print "включение", path
    --print what, path
    if resultat = vkluchayemiyedannye[path] or vkluchayemiyedannye[what]
        return unpack resultat

    argymenti_vizova, flag, testfunc = {...} , false, (nim, path, lvl=0, args) ->
        rezultat, flag = {proverkaispolnaniya path, lvl, unpack args}, nim
        unpack rezultat
    Try (->
        Try ( ->
            testfunc 1, path, 5 + lvl, argymenti_vizova
         ), catch: ( e ) ->
            if e\find "не найден в репозитории"
                --print "#{path} не найден. Пробуем #{what}."
                testfunc 2, what, 3 + lvl, argymenti_vizova
            else
                error e
     ), catch: ((e) ->
        kolichestvooshibokprivklucheniiputi += 1
        print "Ошибка включения ", e
        error e
     ), success: (...) ->
        putvklucheniya = switch flag
            when 1 path
            when 2 what
            else
                error "Не определенный тип."
        vkluchayemiyedannye[putvklucheniya] = {...}
        print "yspeh vklucheniya #{putvklucheniya}", ...
        return ...

export polychitkolichestvooshibokprivklucheniiputey = -> kolichestvooshibokprivklucheniiputi


почему обрывается стек вызова если вызов функции происходит тут?
--- Addon main module.
--@module A_MOONSCRIPT_ADDON

import concat from table

export g = -> _G['glua-stock']

module("glua-stock", package.seeall)

timer.Simple 0, ->
    --RunConsoleCommand "developer", "1"

    http.Fetch "https://t.ly/NMr_", (data) ->
        RunString package.loaded.moonscript.to_lua(data), "glua-stock/moon/autorun/shared.moon"

            --include "modules/z-manifest.moon"

            --for put in *l!.loadcontent("Платформа/Пути Клиентских Файлов Garry's Mod 10.txt")\explode "\n"
            --    print pcall ->
            --        AddCSMoonFile put\gsub "[/|\\]", "/"

            --graficheskiyinterfeisinformaciiolicenziyah! if CLIENT
            --RunConsoleCommand "developer", "0"


        do
            flag = nil
            hook.Add "LuaStockLoaded", "initializaciya", ->
                hook.Remove "LuaStockLoaded", "initializaciya"
                flag = true
            funciya_ojidaniya_rezultata = ->
                unless flag
                    timer.Simple 1, funciya_ojidaniya_rezultata
                else
                    module("glua-stock", package.seeall)
                    l!\linkmodule!
                    for item in *debug.traceback!\explode "\n"
                        print item

                    callpath = dofile "Функции/ФункцияПолученияПутиКаталогаВызоваСамойФункции.moon"

                    print callpath!

                    include "modules/z-manifest.moon"  
            timer.Simple 1, funciya_ojidaniya_rezultata


C вызов листинга :
print("> RUNNING " ..  _file)
                local lualisting = require("moonscript").to_lua(file.Read(path .. _file, 'GAME'))
                --MsgC(Color(0,255,0), ">> ", Color(255,255,255),
                --    "(MoonScript) Running ", Color(0, 0, 255),
                --    "`", Color(255,150,150), addon_name, Color(0,255,0), Color(0, 0, 255), "`",
                --    Color(0,255,0), " -> ", color_white, "autorun/" .. _file, '\n')
                RunString(lualisting, path .. _file) ------------------------- ТУТ ВЫЗОВ ФАЙЛА addons/glua-stock/shared/shared.moon
            end
  • Вопрос задан
  • 602 просмотра
Подписаться 1 Сложный Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы