summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-03-07Finish adding leap.WaitFor and WaitForReqid. Untested.Nat Goodspeed
2024-03-07Finish WaitQueue, ErrorQueue; add util.count(), join(); extend qtest.Nat Goodspeed
For WaitQueue, nail down the mechanism for declaring a subclass and for calling a base-class method from a subclass override. Break out new _wake_waiters() method from Enqueue(): we need to do the same from close(), in case there are waiting consumers. Also, in Lua, 0 is not false. Instead of bundling a normal/error flag with every queued value, make ErrorQueue overload its _closed attribute. Once you call ErrorQueue:Error(), every subsequent Dequeue() call by any consumer will re-raise the same error. util.count() literally counts entries in a table, since #t is documented to be unreliable. (If you create a list with 5 entries and delete the middle one, #t might return 2 or it might return 5, but it won't return 4.) util.join() fixes a curious omission from Luau's string library: like Python's str.join(), it concatenates all the strings from a list with an optional separator. We assume that incrementally building a list of strings and then doing a single allocation for the desired result string is cheaper than reallocating each of a sequence of partial concatenated results. Add qtest test that posts individual items to a WaitQueue, waking waiting consumers to retrieve the next available result. Add test proving that calling ErrorQueue:Error() propagates the error to all consumers.
2024-03-06WIP: Unfinished Queue.lua, WaitQueue.lua, ErrorQueue.lua, leap.lua.Nat Goodspeed
Also qtest.lua to exercise the queue classes and inspect.lua (from https://github.com/kikito/inspect.lua) for debugging.
2024-03-06Defend LuaState::expr() against lua_tollsd() errors.Nat Goodspeed
This is an unusual use case in which lua_tollsd() is called by C++ code without the Lua runtime farther up the call stack.
2024-03-05Stop requiring BUGSPLAT_USER and BUGSPLAT_PASS in build.sh.Nat Goodspeed
The build step no longer needs these variables at all: they're used in a subsequent workflow job.
2024-03-05To test for presence of secrets, set environment variables.Nat Goodspeed
From https://docs.github.com/en/actions/security-guides/using-secrets-in-github-actions#using-secrets-in-a-workflow : "Secrets cannot be directly referenced in if: conditionals. Instead, consider setting secrets as job-level environment variables, then referencing the environment variables to conditionally run steps in the job."
2024-03-05Enclose 'if:' expressions in ${{ ... }}.Nat Goodspeed
The previous construct produced: Unrecognized named-value: 'secrets'. Located at position 1 within expression: secrets.AZURE_KEY_VAULT_URI && ...
2024-03-05Make signing and symbol posting jobs conditional on secrets.Nat Goodspeed
Specifically, when secrets aren't available (e.g. for external PRs), skip the affected steps.
2024-03-04Merge pull request #928 from secondlife/andreyk/issue_54Brad Linden
Issue #54 LLRender::init crash and SL-17896
2024-03-04Do not automatically close issues (#929)Signal Linden
Mark issues as stale but do not close them.
2024-03-05Issue #54 LLRender::init crashAndrey Kleshchev
2024-03-05SL-17896 Don't crash silently if files are missing or out of memoryAndrey Kleshchev
Under debug LL_ERRS will show a message as well, but release won't show anything and will quit silently so show a notification when applicable.
2024-03-04Merge remote-tracking branch 'origin/gh-relnotes' into release/gltf-maint2Brad Linden
2024-03-02Revert "Update emoji_categories in Polish translation to slightly more ↵Andrey Kleshchev
correct erms..." This reverts commit 60debe828b87c33fdbd33e3a5fcef423e544fe55.
2024-03-01Now that viewer-build-util@relnotes has merged to v1, use @v1.Nat Goodspeed
2024-03-01Reference updated action-gh-release@v1Nat Goodspeed
instead of the branch that got pulled. (cherry picked from commit b42e01d7acf5d4c55612c3a7df0e1ff6ee5ed951)
2024-03-01Base generated release notes on new floating tag 'release'Nat Goodspeed
instead of on the current tag 7.1.2-release. (cherry picked from commit 27b298d8bc720ff315c8e74cc5bff9ff9ead0552)
2024-03-01Leverage action-gh-release's new previous_tag input.Nat Goodspeed
This should (!) allow us to generate full release notes relative to the previous viewer release, instead of letting action-gh-release guess incorrectly. Also try again to add to the release page a back-link to the specific build. (cherry picked from commit 88ebb92f05dade00cc8fc519cc062a458ecd48f2)
2024-03-01Try basing release notes on github.sha rather than github.ref_name.Nat Goodspeed
(cherry picked from commit 4edd78f2e54b3cd2e0b0a4b9300dfc669231dd98)
2024-03-01Try basing the GH release on github.ref_name instead of github.ref.Nat Goodspeed
Using github.ref as action-gh-release's target_commitish produces: ⚠️ GitHub release failed with status: 422 [{"resource":"Release","code":"invalid","field":"target_commitish"}] (cherry picked from commit c6a6db8488a8b3e7ea6534fbf5e2fe2b17864421)
2024-03-01Try to generate release notes for this specific branch.Nat Goodspeed
Also try to cross-reference release page and build page. (cherry picked from commit a908b4cfa98716d4a838fc1e5a6789faa15d16cf)
2024-03-01Engage new viewer-build-util/which-branch with relnotes output.Nat Goodspeed
Put whatever release notes we retrieve into the generated release page. (cherry picked from commit ff543b744ee0b0fd4dd90b46419ae50a570572ab)
2024-03-01SL-20546: PyGithub was only needed for local which_branch.py.Nat Goodspeed
Now that which_branch.py has moved to viewer-build-util, so has the PyGithub dependency. (cherry picked from commit dd0ec112fe5ded8ed5f69b72b3df26343ca12d35)
2024-03-01SL-20546: Use branch for autobuild package as well as release page.Nat Goodspeed
which_branch.py has moved to viewer-build-util as a reusable action. (cherry picked from commit 09f66828ba573515c3766cce32f4746b8189efcf)
2024-03-01DRTVWR-601: Use viewer-build-util/which-branch to determine branch.Nat Goodspeed
(cherry picked from commit 2c5066f1fcc0c9f145698ef3aaec72d27bce7181) (cherry picked from commit ff1741cecae0fac6d94507fa4a6e4662219af707)
2024-03-01DRTVWR-601: Make autobuild set vcs_url, vcs_branch, vcs_revisionNat Goodspeed
in viewer's autobuild-package.xml. Ensure that AUTOBUILD_VCS_BRANCH is set before the build. (cherry picked from commit b782ab73e640e434e4ed67fa8dfc951f09757585) (cherry picked from commit 6e8d4f48466a5bbad2fcc27bc2877a30e575d4ce)
2024-03-01SL-20546: Make dependency on build job explicit, not indirect.Nat Goodspeed
The release job has been dependent on sign-and-package-windows and sign-and-package-mac, each of which depends on build. But that indirect dependency doesn't convey access to ${{ needs.build.outputs.xxx }}. Add the build job to direct dependencies so release can access its outputs. (cherry picked from commit 819604d2cee6d4527cc436bebfacddf8642635ff)
2024-03-01SL-20546: Add PyGithub to installed Python packages.Nat Goodspeed
(cherry picked from commit 6654ad14eed674e894d2903e0f2ea37c4e806c0f)
2024-03-01SL-20546: Try harder to infer the branch corresponding to build tag.Nat Goodspeed
(cherry picked from commit 59eeaed1187e7592fd83380045916f2d8b9d58e7)
2024-03-01SL-20546: Append generated release notes body to our explicit body.Nat Goodspeed
For a tag build that generates a release page, try to deduce the git branch to which the tag we're building corresponds and add that to release notes. (cherry picked from commit 9e99bb04a32f2ecc0f0b99686ce5a7adb356596d)
2024-03-01SL-20546: Add viewer channel and full version to GitHub release page.Nat Goodspeed
(cherry picked from commit f71662225eadf1589f5331e763e02e0bb1b72137)
2024-03-01Update emoji_categories in Polish translation to slightly more correct erms...Pantera Północy
2024-03-01Merge remote-tracking branch 'origin/main' into release/gltf-maint2Brad Linden
2024-03-01Merge pull request #916 from secondlife/marchcat/yz-mergeAndrey Lihatskiy
emoji release -> maint yz merge
2024-03-01SL-18721 Shutdown fixes #6Andrey Kleshchev
2024-03-01Merge branch 'main' into marchcat/yz-mergeAndrey Lihatskiy
# Conflicts: # indra/newview/llinventorygallery.cpp
2024-03-01Merge branch 'main' into DRTVWR-588-maint-WAndrey Lihatskiy
2024-03-01Increment viewer version to 7.1.4Nat Goodspeed
following promotion of secondlife/viewer #673
2024-03-01Merge DRTVWR-489 to main on promotion of Emoji viewer (#673).Nat Goodspeed
2024-03-01Merge pull request #905 from secondlife/require-tweaksnat-goodspeed
Refactor `require()` to make it easier to reason about Lua stack usage.
2024-03-01Merge pull request #910 from secondlife/lua-queuenat-goodspeed
Add Queue.lua from roblox.com documentation.
2024-02-29Fix wonky Unicode chars from web pasteNat Goodspeed
2024-02-29Add Queue.lua from roblox.com documentation.Nat Goodspeed
2024-02-29Clarify that the print output from testmod.lua is load-time.Nat Goodspeed
2024-02-29Fix caching for loaded Lua require() modules.Nat Goodspeed
The code to save the loaded module was using the wrong key.
2024-02-29Add indra/newview/scripts/lua directory, copied into viewer image.Nat Goodspeed
2024-02-29Refactor require() to make it easier to reason about Lua stack usage.Nat Goodspeed
Push throwing Lua errors down into LLRequireResolver::findModule() and findModuleImpl() so their callers don't have to handle the error case. That eliminates finishrequire(). require() itself now only retrieves (and pops) the passed module name and calls LLRequireResolver::resolveRequire() to do the actual work. resolveRequire() is now void. It only instantiates LLRequireResolver and calls its findModule(). findModule() is now also void. It's guaranteed to either push the loaded Lua module or throw a Lua error. In particular, when findPathImpl() cannot find the specified module, findModule() throws an error. That replaces ModuleStatus::NotFound. Since std::filesystem::path::append() aka operator/() detects when its right operand is absolute and, in that case, discards the left operand, we no longer need resolveAndStoreDefaultPaths(): we can just invoke that operation inline. When findModule() pushes _MODULES on the Lua stack, it uses LuaRemover (below) to ensure that _MODULES is removed again no matter how findModules() exits. findModuleImpl() now accepts the candidate pathname as its argument. That eliminates mAbsolutePath. findModuleImpl() now returns only bool: true means the module was found and loaded and pushed on the Lua stack, false means not found and nothing was pushed; no return means an error was reported. Push running a newly found module's source file down into findModuleImpl(). That eliminates the distinction between Cached and FileRead, which obviates ModuleStatus: a bool return means either "previously cached" or "we read it, compiled it, loaded it and ran it." That also eliminates the need to store the module's textual content in mSourceCode. Similarly, once loading the module succeeds, findModuleImpl() caches it in _MODULES right away. That eliminates ResolvedRequire since we need not pass the full pathname of the found module (or its contents) back up through the call chain. Move require() code that runs the new module into private runModule() method, called by findModuleImpl() in the not-cached case. runModule() is the only remaining method that can push either a string error message or the desired module, because of its funny stack manipulations. That means the check for a string error message on the stack top can move down to findModuleImpl(). Add LuaRemover class to ensure that on exit from some particular C++ block, the specified Lua stack entry will definitely be removed. This is different from LuaPopper in that it engages lua_remove() rather than lua_pop(). Also ditch obsolete await_event() Lua entry point.
2024-02-29Improve Debug class (indra/test/debug.h).Nat Goodspeed
Disable copy assignment operator as well as copy constructor. Use std::uncaught_exceptions() in destructor to report whether there's an in-flight exception at block exit. Since that was the whole point of the DEBUGIN / DEBUGEND macros, those become obsolete. Ditch them and their existing invocations.
2024-02-28Reference updated action-gh-release@v1Nat Goodspeed
instead of the branch that got pulled.
2024-02-27SL-18721 Shutdown fixes #5Andrey Kleshchev