Age | Commit message (Collapse) | Author | |
---|---|---|---|
2024-06-07 | Introduce mapargs.lua, which defines the mapargs() function. | Nat Goodspeed | |
There are two conventions for Lua function calls. You can call a function with positional arguments as usual: f(1, 2, 3) Lua makes it easy to handle omitted positional arguments: their values are nil. But as in C++, positional arguments get harder to read when there are many, or when you want to omit arguments other than the last ones. Alternatively, using Lua syntactic sugar, you can pass a single argument which is a table containing the desired function arguments. For this you can use table constructor syntax to effect keyword arguments: f{a=1, b=2, c=3} A call passing keyword arguments is more readable because you explicitly associate the parameter name with each argument value. Moreover, it gracefully handles the case of multiple optional arguments. The reader need not be concerned about parameters *not* being passed. Now you're coding a Lua module with a number of functions. Some have numerous or complicated arguments; some do not. For simplicity, you code the simple functions to accept positional arguments, the more complicated functions to accept the single-table argument style. But how the bleep is a consumer of your module supposed to remember which calling style to use for a given function? mapargs() blurs the distinction, accepting either style. Coding a function like this (where '...' is literal code, not documentation ellipsis): function f(...) local args = mapargs({'a', 'b', 'c'}, ...) -- now use args.a, args.b, args.c end supports calls like: f(1, 2, 3) f{1, 2, 3} f{c=3, a=1, b=2} f{1, 2, c=3} f{c=3, 1, 2} -- unlike Python! In every call above, args.a == 1, args.b == 2, args.c == 3. Moreover, omitting arguments (or explicitly passing nil, positionally or by keyword) works correctly. test_mapargs.lua exercises these cases. | |||
2024-06-07 | Fix another merge glitch | Nat Goodspeed | |
2024-06-07 | Tidy up merge from main. | Nat Goodspeed | |
2024-06-07 | Merge branch 'main' of secondlife/viewer into release/luau-scripting | Nat Goodspeed | |
2024-06-05 | Make LLLeap iterate over child stdout while read data is pending | Nat Goodspeed | |
instead of using mutual recursion to exhaust the read buffer. | |||
2024-06-04 | #989 Fix for blurry terrain on Mac (#1633) | Brad Linden | |
Co-authored-by: Dave Parks <davep@lindenlab.com> | |||
2024-06-04 | #1628 Disable spherical mirror probes for the time being. (#1631) | Jonathan "Geenz" Goodman | |
2024-06-04 | #1614 Fix for moire pattern in specular highlights. Incidental cleanup. | RunitaiLinden | |
2024-06-04 | Comment the intent of test_timers.lua | Nat Goodspeed | |
so the user need not reverse-engineer the code to figure out the output. | |||
2024-06-03 | Fix a small typo | Nat Goodspeed | |
2024-06-03 | Allow consumer code to query or adjust the per-tick timeslice. | Nat Goodspeed | |
2024-06-03 | Distinguish TimersListener callers by reply LLEventPump name. | Nat Goodspeed | |
The reqid is only distinct within a particular calling script. | |||
2024-06-03 | Leverage new leap.eventstream() function in Floater.lua. | Nat Goodspeed | |
2024-05-31 | Add timers.lua API module and test_timers.lua test program. | Nat Goodspeed | |
Since timers presents a timers.Timer Lua class supporting queries and cancellation, make TimersListener::scheduleAfter() and scheduleEvery() respond immediately so the newly constructed Timer object has the reqid necessary to perform those subsequent operations. This requires that Lua invocations of these operations avoid calling the caller's callback with that initial response. Reinvent leap.generate() to return a Lua object supporting next() and done() methods. A plain Lua coroutine that (indirectly) calls fiber.wait() confuses the fiber scheduler, so avoid implementing generate() as a Lua coroutine. Add a bit more leap.lua diagnostic output. | |||
2024-05-31 | Tweak for current Lua dbg() convention. | Nat Goodspeed | |
2024-05-31 | Cherry-pick leap.lua changes; other clean up | Mnikolenko Productengine | |
2024-05-31 | Add leap.eventstream() and cancelreq() functions. | Nat Goodspeed | |
leap.eventstream() is used when we expect the viewer's LLEventAPI to send an immediate first response with the reqid from the request, followed by some number of subsequent responses bearing the same reqid. The difference between eventstream() and generate() is that generate() expects the caller to request each such response, whereas eventstream calls the caller's callback with each response. cancelreq() is for canceling the background fiber launched by eventstream() before the callback tells it to quit. Make WaitFor:close() remove the object from the waitfors list; similarly, make WaitForReqid:close() remove the object from the pending list. For this reason, cleanup() must iterate over a copy of each of the pending and waitfors lists. Instead of unregisterWaitFor() manually searching the waitfors list, use table.find(). | |||
2024-05-31 | Add a bit more dbg() conditional diagnostic output. | Nat Goodspeed | |
2024-05-31 | Don't check if printf(format) arg is a string. | Nat Goodspeed | |
2024-05-31 | Explain the name of the LL::WorkQueue::BackJack class. | Nat Goodspeed | |
2024-05-30 | Add separate minor throttle period for UNTRUSTED_ALLOW funcs | Mnikolenko Productengine | |
2024-05-30 | Merge branch release/luau-scripting | Mnikolenko Productengine | |
2024-05-29 | #1581 Only render mirrors when reflection probes are enabled. (#1592) | Jonathan "Geenz" Goodman | |
2024-05-29 | Merge branch 'release/luau-scripting' into lua-timers | Nat Goodspeed | |
2024-05-29 | Make ~ThreadPool() join every thread before destroying its vector. | Nat Goodspeed | |
Otherwise we fall into the trap of destroying a joinable std::thread, which calls std::terminate() and hence our crash-on-terminate() handler. The previous ~ThreadPool() logic only joined threads if the queue wasn't already closed, but evidently we can reach the destructor with the queue closed but the threads not yet joined. Fixes #1534. | |||
2024-05-29 | viewer#1568 Revert "SL-17597 AV height in Shape dialog IS WRONG" | Andrey Kleshchev | |
This reverts commit f5a7c22cea16b51db12360436ce64c2433a5aa5f to fix viewer#1568. | |||
2024-05-28 | Merge remote-tracking branch 'origin/main' into release/materials_featurette | Brad Linden | |
2024-05-28 | Improvements to mirror probe update rates (#1570) | Jonathan "Geenz" Goodman | |
#1494 Fix for mirror updates getting "stuck" on some faces. | |||
2024-05-28 | secondlife/viewer#1531: Attempt to fix PBR terrain fragment shader. | Cosmic Linden | |
2024-05-24 | Merge branch 'release/luau-scripting' into lua-timers | Nat Goodspeed | |
2024-05-24 | Fix merge glitches | Nat Goodspeed | |
2024-05-24 | Merge branch 'release/luau-scripting' into lua-chatplus | Nat Goodspeed | |
2024-05-24 | Nat's ideas from PR #1547 | Nat Goodspeed | |
2024-05-24 | Mark script messages in compact mode too; code clean up | Mnikolenko Productengine | |
2024-05-23 | Remove commented-out methods in a couple LLEventTimer subclasses. | Nat Goodspeed | |
2024-05-23 | More vestigial whitespace fixes | Nat Goodspeed | |
2024-05-23 | Fix lingering trailing whitespace in llmainthreadtask.h. | Nat Goodspeed | |
2024-05-23 | Fix lingering trailing whitespace in lleventfilter.cpp. | Nat Goodspeed | |
2024-05-23 | Fix lingering trailing whitespace in lleventfilter.h. | Nat Goodspeed | |
2024-05-23 | Fix test program termination crash. | Nat Goodspeed | |
2024-05-23 | mac build fix | Maxim Nikolenko | |
2024-05-22 | add throttle for sending messages; add simple demo script | Mnikolenko Productengine | |
2024-05-22 | Add support for sending messages to Nearby chat from Lua script | Mnikolenko Productengine | |
2024-05-22 | Adjust Copy3rdPartyLibs.cmake for Visual Studio 2022 17.10.0 and greater | Ansariel | |
2024-05-22 | WIP: Trying to diagnose and fix test program shutdown crash | Nat Goodspeed | |
2024-05-21 | viewer#1520 Material upload floater displays wrong upload fee | Andrey Kleshchev | |
2024-05-16 | set UNTRUSTED_ALLOW as default; some LLCommitCallbackInfo clean up | Mnikolenko Productengine | |
2024-05-16 | Merge branch 'lua-ui-callbacks' into release/luau-scripting | Mnikolenko Productengine | |
2024-05-16 | adjust the flag to be untrusted block/allow/throttle | Mnikolenko Productengine | |
2024-05-16 | Merge branch 'release/materials_featurette' into marchcat/x-mf-merge | Andrey Lihatskiy | |