summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-06-20Merge branch 'release/luau-scripting' into lua-speedometer-demoNat Goodspeed
2024-06-20Give popup() the ability to not wait; add popup:tip(message).Nat Goodspeed
popup:tip() engages 'SystemMessageTip'.
2024-06-20triage#59 Properly hide particles if 'friends only'Andrey Kleshchev
2024-06-20Use LLLeapListener to listen to LLNearbyChat pumpMnikolenko Productengine
2024-06-19Move popup.lua to require subdir with the rest of the modules.Nat Goodspeed
2024-06-19Improve LL.help() function.Nat Goodspeed
The help string for each lua_function() must restate the function name and its arguments. The help string is all that's shown; unless it restates the function name, LL.help() output lists terse explanations for functions whose names are not shown. Make help() prepend "LL." to help output, because these functions must be accessed via the "builtin" LL table instead of directly populating the global Lua namespace. Similarly, before string name lookup, remove "LL." prefix if specified.
2024-06-19Try harder to keep Luau's lua_getinfo() from crashing.Nat Goodspeed
2024-06-18Merge pull request #1801 from secondlife/roxie/webrtc-voice-1732Roxanne Skelly
[WebRTC] Fix crash issue when echo cancellation is enabled/disabled.
2024-06-18Merge remote-tracking branch ↵Brad Linden
'origin/1771-mesh-objects-do-not-display-until-you-walk-directly-over-them' into develop resolve known conflicts early. # Conflicts: # indra/newview/llvocache.cpp
2024-06-18Fix crash issue when echo cancellation is enabled/disabled.Roxie Linden
New webrtc library fixes an assert in webrtc when echo cancellation is enabled or disabled. Also, fix an issue where disabling media grays out noise cancellation.
2024-06-18#1771 Fix for objects disappearing and not reappearing until LoD switchRunitaiLinden
2024-06-18Merge branch 'lua-login' of github.com:secondlife/viewer into lua-loginNat Goodspeed
2024-06-18Initialize lua_Debug lluau::source_path() passes to lua_getinfo().Nat Goodspeed
On Mac it doesn't seem to matter, but on Windows, leaving it uninitialized can produce garbage results and even crash the coroutine. This seems strange, since we've been assuming lua_getinfo() treats its lua_Debug* as output-only.
2024-06-18Use LL_DEBUGS("Lua") for LuaLog.Nat Goodspeed
We might decide to leave some of them in place.
2024-06-18Improve diagnostic output from running 'require' module.Nat Goodspeed
2024-06-18Added git-blame-ignore entry for whitespace changeBrad Linden
2024-06-18Fix whitespace for pre-commit hooksBrad Linden
2024-06-18Merge remote-tracking branch 'origin/develop' into brad/webrtc-voice-developBrad Linden
2024-06-18Merge pull request #1797 from secondlife/release/maint-aBrad Linden
merge release/maint-a into develop and close maint-a
2024-06-18Follow-up improvements of 810219d3bf27d81751d0f41b65013ca31db34ff7Ansariel
2024-06-18jira-archive-internal#67837 Fix LLDir::getScrubbedFileNameAndrey Kleshchev
2024-06-18Remove special-case ~LuaState() code to call fiber.run().Nat Goodspeed
Instead, make fiber.lua call LL.atexit(fiber.run) to schedule that final run() call at ~LuaState() time using the generic mechanism. Append an explicit fiber.run() call to a specific test in llluamanager_test.cpp because the test code wants to interact with multiple Lua fibers *before* we destroy the LuaState.
2024-06-18Make ~LuaState() walk Registry.atexit table backwardsNat Goodspeed
so cleanup happens in reverse order, as is conventional. Streamline LL.atexit() function: luaL_newmetatable() performs all the find-or-create named Registry table logic.
2024-06-18lua_emplace<T>() should permit GC despite LL.atexit() safety net.Nat Goodspeed
lua_emplace<T>() was passing LL.atexit() a closure binding the new userdata with a cleanup function. The trouble with that was that a strong reference to the new userdata would prevent it ever being garbage collected, even if that was the only remaining reference. Instead, create a new weak table referencing the userdata, and bind that into the cleanup function's closure. Then if the only remaining reference to the userdata is from the weak table, the userdata can be collected. Make lua_emplace_call_gc<T>() check the bound weak table in case the userdata has in fact been collected. Also, in lua_toclass<T>(), use luaL_checkudata() to synopsize comparing the putative userdata's metatable against the one synthesized by lua_emplace<T>(). This saves several explicit steps.
2024-06-18Make lluau::source_path() report top-level script path.Nat Goodspeed
source_path() previously reported the path of the module containing the current (lowest-level) Lua function. The effect was that the Floater.lua module would always try to look up the XUI file relative to scripts/lua/require. It makes more intuitive sense to make source_path() return the path containing the top-level script, so that a script engaging the Floater.lua module looks for the XUI file relative to the script.
2024-06-17Attempt to fix tag-release workflow by moving conditional secrets usage into envBrad Linden
2024-06-17Attempt to fix workflow syntax in new tag-release workflow (#1792)Brad Linden
2024-06-17Merge pull request #1763 from secondlife/brad/tag-nightlyBrad Linden
Setting up scheduled and manually dispatched releases.
2024-06-17Pass through input channel to select the tag channel nameBrad Linden
2024-06-17Update naming and add options to tag-release workflow_dispatch.Brad Linden
2024-06-17Renamed tag-nightly.yaml to generalize it to other tags when using ↵Brad Linden
workflow_dispatch
2024-06-17Merge remote-tracking branch 'origin/develop' into brad/webrtc-voice-developBrad Linden
2024-06-17Remove useless 'coro_name' infoMnikolenko Productengine
2024-06-17Remove orphaned VRAM handling codeAnsariel
2024-06-17Store script's LuaListener in userdata in lua_State's Registry.Nat Goodspeed
Instead of deriving LuaListener from LLInstanceTracker with an int key, generating a unique int key and storing that key in the Registry, use new lua_emplace<LuaState>() to store the LuaListener directly in a Lua userdata object in the Lua Registry. Because lua_emplace<T>() uses LL.atexit() to guarantee that ~LuaState will destroy the T object, we no longer need ~LuaState() to make a special call specifically to destroy the LuaListener, if any. So we no longer need LuaState::getListener() separate from obtainListener(). Since LuaListener is no longer an LLInstanceTracker subclass, make LuaState::obtainListener() return LuaListener& rather than LuaListener::ptr_t.
2024-06-14Introduce LL.atexit(), internal lua_emplace<T>(), lua_toclass<T>().Nat Goodspeed
Publish new LL.atexit() function that accepts a Lua function (or C++ closure) and saves it (in Registry["atexit"] table) to call later. Make ~LuaState() walk the Registry["atexit"] table, if it exists, calling each function appended to that table. (Consider using that mechanism to clean up a LuaListener, if one was instantiated. Possibly also use for p.s. leap.run()? But that's run after every expr() call, instead of only at ~LuaState() time. Pragmatically, though, the distinction only matters for a LUA Debug Console LUA string with "clean lua_State" unchecked.) For use by future lua_function() entry points, lua_emplace<T>(ctor args...) pushes a Lua userdata object containing a newly-constructed T instance -- actually a std::optional<T> to avoid double destruction. lua_emplace<T>() is specifically intended to be usable even for T with a nontrivial destructor: it gives the userdata a metatable with a __gc function that destroys the contained T instance when the userdata is garbage collected. But since garbage collection doesn't guarantee to clean up global variables with __gc methods, lua_emplace<T>() also uses LL.atexit() to ensure that ~T() will run when the LuaState is destroyed. The companion to lua_emplace<T>() is lua_toclass<T>(), which returns a non-nullptr T* if the referenced index is in fact a userdata created by lua_emplace<T>() for the same T, that has not yet been destroyed. This lets C++ code access a T previously embedded in Lua userdata.
2024-06-14make Second Life Develop be recognized as a Beta channelBrad Linden
2024-06-141736 audit texture image unit usage on os x (#1739)Dave Parks
* #1736 Remove some unused samplers from glsl files and refactor shader manager to assume 16 texture image units and 4 indexed texture units all the time.
2024-06-14Merge pull request #1747 from megapahit/beaconBrad Linden
Fixes secondlife/viewer#999 lltracker beacon performance issue
2024-06-14Fix for warnings/errors after Visual Studio update (#1775)Dave Parks
2024-06-14Move Lua modules for 'require' to indra/newview/scripts/lua/require.Nat Goodspeed
Make viewer_manifest.py copy them into the viewer install image. Make the require() function look for them there.
2024-06-14Fix a minor but nagging Python build-time warning: invalid regexp.Nat Goodspeed
2024-06-14Add nearby chat listenerMnikolenko Productengine
2024-06-13Skip the actual tag update step gracefully until we have proper tokens set upBrad Linden
2024-06-13Add new viewer_channel detection for develop branchBrad Linden
2024-06-13Initial work setting up scheduled releases for develop branch.Brad Linden
2024-06-13Merge branch 'develop' of github.com:secondlife/viewer into roxie/webrtc-voiceRoxie Linden
2024-06-13Merge pull request #1743 from secondlife/v-1475cosmic-linden
secondlife/viewer#1475: Fix Terrain tab controls no longer disabled when insufficient permissions
2024-06-13secondlife/viewer#907: Remove unused settingCosmic Linden
2024-06-13secondlife/viewer#907: Review feedbackCosmic Linden