summaryrefslogtreecommitdiff
path: root/indra
AgeCommit message (Collapse)Author
2024-04-02Add startup.lua module with startup.ensure(), wait() functions.Nat Goodspeed
This lets a calling script verify that it's running at the right point in the viewer's life cycle. A script that wants to interact with the SL agent wouldn't work if run from the viewer's command line -- unless it calls startup.wait("STATE_STARTED"), which pauses until login is complete. Modify test_luafloater_demo.lua and test_luafloater_gesture_list.lua to find their respective floater XUI files in the same directory as themselves. Make them both capture the reqid returned by the "showLuaFloater" operation, and filter for events bearing the same reqid. This paves the way for a given script to display more than one floater concurrently. Make test_luafloater_demo.lua (which does not require in-world resources) wait until 'STATE_LOGIN_WAIT', the point at which the viewer has presented the login screen. Make test_luafloater_gesture_list.lua (which interacts with the agent) wait until 'STATE_STARTED', the point at which the viewer is fully in world. Either or both can now be launched from the viewer's command line.
2024-04-02Streamline std::filesystem::path conversions in LLRequireResolver.Nat Goodspeed
Make LLRequireResolver capture std::filesystem::path instances, instead of std::strings, for the path to resolve and the source directory. Store the running script's containing directory instead of calling parent_path() over and over. Demote Lua LL.post_on() logging to DEBUG level instead of INFO.
2024-04-02Use LLCoros::TempStatus when Lua is waiting on get_event_next().Nat Goodspeed
When enumerating C++ coroutines, it can be useful to know that a particular Lua coroutine is simply waiting for further events.
2024-04-02Add LL.source_path(), source_dir() Lua entry points.Nat Goodspeed
This helps a Lua script log its own identity, or find associated files relative to its location in the filesystem. Add more comprehensive logging around the start and end of a given Lua script, or its "p.s." fiber.run() call.
2024-04-02Give LLLeapListener's "listen" operation a "tweak" argument.Nat Goodspeed
If specified as true, "tweak" means to tweak the specified "listener" name for uniqueness. This avoids LLEventPump::listen()'s DupListenerName exception, which causes the "listen" operation to return "status" as false.
2024-04-02Defend leap.request(), generate() from garbage collection.Nat Goodspeed
Earlier we had blithely designated the 'pending' list (which stores WaitForReqid objects for pending request() and generate() calls) as a weak table. But the caller of request() or generate() does not hold a reference to the WaitForReqid object. Make pending hold "strong" references. Private collections (pending, waitfors) and private scalars that are never reassigned (reply, command) need not be entries in the leap table.
2024-04-02secondlife/viewer#925 Missing simple :smile emojiAlexander Gavriliuk
2024-04-01Fix the bogus, zero cloud scroll rate in default EE sky settings.Henri Beauchamp
Obvioulsy, there has been a typo done when copying WL default sky parameters to EE ones. This causes "static" and quite unrealistic clouds when this default setting is used as a base for a new sky setting, and we see this bad static sky resurfacing now with PBR and its "adjusted" (more like hacked, but this is another story) mid-day sky setting. Let's fix this typo once and for all in LL's code base (most TPVs have it fixed already, and this ever since EEP got released). @LL: please also fix the cloud scroll rate in the PBR mid-day inventory setting accordingly.
2024-04-01open folder support for macMaxim Nikolenko
2024-04-01Add 'Lua Scripts' floaterMnikolenko Productengine
2024-03-29Merge branch 'release/luau-scripting' into lua-startupNat Goodspeed
2024-03-29Merge pull request #1071 from secondlife/lua-new-luastatenat-goodspeed
Run each script file with new LuaState
2024-03-28viewer#1073 crash at loadSkeletonAndrey Kleshchev
looks like file that was being parced got corrupted 'in progress'
2024-03-28Merge branch 'lua-hangfix' into lua-startup.Nat Goodspeed
2024-03-28Remove rest of prototype UI access.Nat Goodspeed
2024-03-28Use LLApp::setQuitting(). Expect killed-script error.Nat Goodspeed
2024-03-28Ditch a couple LL_DEBUGS() messages.Nat Goodspeed
2024-03-28Eliminate unreferenced exception nameNat Goodspeed
2024-03-28Terminate Lua scripts hanging in LL.get_event_next().Nat Goodspeed
Make LuaListener listen for "LLApp" viewer shutdown events. On receiving such, it closes its queue. Then the C++ coroutine calling getNext() wakes up with an LLThreadSafeQueue exception, and calls LLCoros::checkStop() to throw one of the exceptions recognized by LLCoros::toplevel(). Add an llluamanager_test.cpp test to verify this behavior.
2024-03-28Remove llluamanager.cpp "FIXME extremely hacky way" cruft.Nat Goodspeed
2024-03-28Clean up unused llevents.h #includes.Nat Goodspeed
2024-03-28Move our lua_register(), lua_rawlen() from lua_function.h to .cpp.Nat Goodspeed
2024-03-27viewer#1069 Crash after getting list of notification filesAndrey Kleshchev
2024-03-27secondlife/viewer#944 Display should be consistent between llDialog text and ↵Alexander Gavriliuk
llDialog buttons
2024-03-27Merge 'release/luau-scripting' of secondlife/viewer into lua-startupNat Goodspeed
2024-03-27Run each script file with new LuaStateMnikolenko Productengine
2024-03-27Enhance Lua debugging output.Nat Goodspeed
Don't use "debug" as the name of a function to conditionally write debug messages: "debug" is a Luau built-in library, and assigning that name locally would shadow the builtin. Use "dbg" instead. Recast fiber.print_all() as fiber.format_all() that returns a string; then print_all() is simply print(format_all()). This refactoring allows us to use dbg(format_all()) as well. Add a couple new dbg() messages at fiber state changes.
2024-03-27poetryNat Goodspeed
2024-03-27Run loaded `require()` module on Lua's main thread.Nat Goodspeed
The problem with running a `require()` module on a Lua coroutine is that it prohibits calling `leap.request()` at module load time. When a coroutine calls `leap.request()`, it must yield back to Lua's main thread -- but a `require()` module is forbidden from yielding. Running on Lua's main thread means that (after potentially giving time slices to other ready coroutines) `fiber.lua` will request the response event from the viewer, and continue processing the loaded module without having to yield.
2024-03-27Post-merge cleanup (settings.xml)Andrey Lihatskiy
2024-03-27Merge branch 'main' into marchcat/yz-mergeAndrey Lihatskiy
2024-03-27Merge branch 'main' into DRTVWR-591-maint-XAndrey Lihatskiy
# Conflicts: # indra/llui/lltransutil.cpp # indra/newview/app_settings/settings.xml # indra/newview/llfloaterenvironmentadjust.cpp # indra/newview/llpaneleditwater.cpp # indra/newview/llpanelface.cpp # indra/newview/lltexturectrl.cpp # indra/newview/lltexturectrl.h
2024-03-27Merge remote-tracking branch 'origin/main' into DRTVWR-588-maint-WAndrey Lihatskiy
# Conflicts: # .github/workflows/build.yaml
2024-03-26Increment viewer version to 7.1.5Nat Goodspeed
following promotion of secondlife/viewer #650
2024-03-26Merge branch 'release/luau-scripting' into luau-keystrokeMnikolenko Productengine
2024-03-26secondlife/jira-archive-internal#69593 Avatar is upside down when viewed ↵Alexander Gavriliuk
from below
2024-03-26update scripts to use fiber.launch()Mnikolenko Productengine
2024-03-25util.lua claims functions are in alpha order - make it so.Nat Goodspeed
Also streamline util.contains(), given table.find().
2024-03-25Add LL.check_stop() entry point and call it in fiber scheduler().Nat Goodspeed
fiber.lua's scheduler() is greedy, in the sense that it wants to run every ready Lua fiber before retrieving the next incoming event from the viewer (and possibly blocking for some real time before it becomes available). But check for viewer shutdown before resuming any suspended-but-ready Lua fiber.
2024-03-25Add LL. prefix to viewer entry points, fix existing references.Nat Goodspeed
2024-03-25Update test scripts to call leap.request() from main threadMnikolenko Productengine
2024-03-25Merge branch 'release/luau-scripting' into lua-keystrokeMaxim Nikolenko
2024-03-25mac build fixMaxim Nikolenko
2024-03-25Remove colliding LLListener.Nat Goodspeed
2024-03-25Add keystroke event support and allow adding text lines to the line editorMnikolenko Productengine
2024-03-25triage#112 'No emoji found for' text is not translated to other languages in ↵Alexander Gavriliuk
the 'Choose Emoji' floater
2024-03-24viewer#1033 Crash at syncFloaterTabOrderAndrey Kleshchev
2024-03-24Revert "SL-20416 Fix Crash Report 1409376 (update)"Andrey Kleshchev
This reverts commit cc43f42e6b7401c2cdd3204a16f757f5169bd95b.
2024-03-23Merge branch 'release/luau-scripting' of secondlife/viewer into lua-fiberNat Goodspeed
2024-03-24Introduce LLStreamListener: bundle LLEventStream+LLTempBoundListener.Nat Goodspeed
This is a very common pattern, especially in test code, but elsewhere in the viewer too. Use it in llluamanager_test.cpp.