aboutsummaryrefslogtreecommitdiffstats
path: root/util
Commit message (Collapse)AuthorAgeFilesLines
* util.cache: Add __name to metatableMatthew Wild2020-10-301-1/+1
|
* util.dbuffer: Add __name to metatableMatthew Wild2020-10-301-1/+1
|
* Merge 0.11->trunkMatthew Wild2020-10-281-4/+26
|\
| * util.dbuffer: Optimize :sub() and :byte()Matthew Wild2020-10-281-4/+26
| |
* | util.paths: Optimize path joining with few argumentsKim Alvefur2020-10-111-2/+12
| | | | | | | | | | | | | | | | | | A casual search suggests that the majority of paths.join() calls involve only two arguments. This saves the creation of a table for up to 3 arguments. Looks like 3x faster for 3 arguments or less, 5% slower when it uses the array to concatenate.
* | Merge 0.11->trunkMatthew Wild2020-10-161-1/+1
|\|
| * util.debug: Fix locals being reported under wrong stack frame in some cases ↵Matthew Wild2020-10-161-1/+1
| | | | | | | | (+tests!!)
* | util.sasl.scram: Use util.strbitop for XOR stepKim Alvefur2019-09-071-29/+1
| |
* | util.error: Pass through existing error objects passed to new()Matthew Wild2020-10-151-0/+1
| |
* | Merge 0.11->trunkKim Alvefur2020-10-121-0/+1
|\|
| * util.dbuffer: Expose length as :len() method, like stringsKim Alvefur2020-10-121-0/+1
| | | | | | | | Ref #1598
| * util.dependencies: Check for bitop library same way as net.websocket.frames ↵Kim Alvefur2020-10-051-1/+1
| | | | | | | | (fixes #1594)
| * MergeMatthew Wild2020-09-302-0/+183
| |\
| | * util.dbuffer: Fix :sub() not working with partially-consumed chunks (thanks ↵Matthew Wild2020-08-241-0/+176
| | | | | | | | | | | | | | | | | | Zash for test case) This also appears to fix some bugs with chunk-encoded streams in net.http.parser.
| | * util.dbuffer: dynamic string bufferMatthew Wild2020-06-261-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Similar to util.ringbuffer (and shares almost identical API). Differences: - size limit is optional and dynamic - does not allocate a fixed buffer of max_size bytes - focus on simply storing references to existing string objects where possible, avoiding unnecessary allocations - references are still stored in a ring buffer to enable use as a fast FIFO Optional second parameter to new() provides the number of ring buffer segments. On Lua 5.2 on my laptop, a segment is ~19 bytes. If the ring buffer fills up, the next write will compact all strings into a single item.
* | | util.startup: Handle missing nparams field from debug info (not present in 5.1)Matthew Wild2020-10-111-2/+3
| | |
* | | util.startup: Include arguments in function string representationKim Alvefur2020-10-091-2/+8
| | | | | | | | | | | | | | | | | | | | | Improves usability of the console when digging around the internals. No specific rationale for the function<file:line>(args) format, it looked best of the variants I tried.
* | | util.startup: Retrieve less data for function string representationKim Alvefur2020-10-091-1/+1
| | | | | | | | | | | | debug.getinfo(f) collects more info than what is needed here.
* | | util.startup: Save the path used by the installer to prosody.pathsKim Alvefur2020-10-071-0/+1
| | | | | | | | | | | | | | | | | | Makes it easier for other parts of the code to use this for things, such as determining whether a certain module is from this path or from elsewhere.
* | | util.startup: Fix startup failure if CFG_DATADIR is unsetKim Alvefur2020-10-051-1/+1
| | | | | | | | | | | | As is normal when running from source
* | | util.startup: Re-enable installer path setupKim Alvefur2020-10-051-2/+2
| | |
* | | util.startup: Put 'installer_plugin_path' under data directory by defaultKim Alvefur2020-10-051-1/+1
| | | | | | | | | | | | | | | Fixes issue where it ends up creating this in $PWD, which might be ~prosody, ~you or /, depending on how it's invoked.
* | | util.prosodyctl: Simplify luarocks invocationKim Alvefur2020-10-051-7/+3
| | |
* | | util.prosodyctl: Move hardcoded luarocks server into prosodyctlKim Alvefur2020-10-051-2/+2
| | | | | | | | | | | | To be replaced with config option in future commit
* | | util.prosodyctl: Flip argument orderKim Alvefur2020-10-051-1/+1
| | | | | | | | | | | | | | | "verb subject" feels better than "subject verb", especially since the subject (module) is optional.
* | | util.prosodyctl: Construct luarocks command line with templatesKim Alvefur2020-10-051-2/+7
| | | | | | | | | | | | More flexible and safer wrt escaping
* | | util.pluginloader: Look for module libs in mod_plugin/lib.luaKim Alvefur2020-10-051-0/+3
| | | | | | | | | | | | | | | Luarocks can't be told to install something as foo.lib.lua AFAIK, so instead let's try mod_bar/foo.lua
* | | util.pluginloader: Look for top level mod_something.lua in luarocks-style treeKim Alvefur2020-10-051-0/+1
| | |
* | | util.pluginloader: Extract Lua version onceKim Alvefur2020-10-051-1/+1
| | | | | | | | | | | | It's not going to change while the module is loaded.
* | | util.xml: Fix float formatting of line and columns in error (on Lua 5.3+)Kim Alvefur2020-10-031-1/+1
| | |
* | | Merge 0.11->trunkMatthew Wild2020-09-301-1/+1
|\| |
| * | util.indexedbheap: Fix heap datastructure corruption in ↵Waqas Hussain2020-09-291-1/+1
| |/ | | | | | | :reschedule(smaller_value)
| * util.startup: Configure the GC on startup, using the config or built-in defaultsMatthew Wild2020-06-151-0/+17
| |
| * util.gc: Linter fixes [luacheck]Matthew Wild2020-06-151-2/+1
| |
| * util.gc: New module for configuring the Lua garbage collectorMatthew Wild2020-06-151-0/+50
| |
* | util.error: Drop registry initialization with namespace as keyKim Alvefur2020-09-281-4/+0
| | | | | | | | Enough complexity with compact vs normal and with/without namespace
* | util.error: Expand compact registries into normal form internallyKim Alvefur2020-09-281-8/+34
| | | | | | | | Also the exposed form on the table returned from init()
* | util.error: Add a "compact mode" for registriesKim Alvefur2020-09-281-4/+7
| | | | | | | | Inspired by the older registry in pubsub.lib.lua
* | util.error: Expose source and registry as fields on the registry objectKim Alvefur2020-09-281-0/+2
| | | | | | | | For access, e.g. to identify and compare errors later
* | util.error: Turns out <gone> wasn't alone, there's also <redirect>Kim Alvefur2020-09-281-2/+7
| |
* | util.error: Pass converted stanza errors throguh new()Kim Alvefur2020-09-271-6/+3
| | | | | | | | In order to benefit from common processing
* | util.serialization: Let freeze metamethod return a literal stringKim Alvefur2020-09-261-0/+4
| | | | | | | | | | Enables custom serialization, such as creating a datatype that serializes into a variable reference.
* | util.error: Collect Application-Specific Conditions from stanza errorsKim Alvefur2020-09-261-2/+3
| |
* | util.error: Add special case handling of <gone> with an URIKim Alvefur2020-09-261-0/+3
| |
* | util.error: Default error originator to stanza senderKim Alvefur2020-09-261-1/+2
| | | | | | | | | | The @by attribute is primarily useful for errors caused by intermediate entities.
* | util.error: Extract error originator from stanza errorsKim Alvefur2020-09-261-1/+6
| |
* | util.stanza: Extract Application-Specific Condition from errorsKim Alvefur2020-09-261-6/+8
| | | | | | | | API change
* | util.stanza: Support Application-Specific Conditions in util.errorKim Alvefur2020-09-261-0/+5
| |
* | util.stanza: Get 'by' from context insteadKim Alvefur2020-09-261-1/+1
| | | | | | | | | | | | | | Zash> <error by=?> should go where? extra.by? context? source? Zash> In Prosody this would usually be module.host or a bare user/room JID MattJ> Zash: context MattJ> context.by, basically the opposite of context.actor
* | util.stanza: Support inclusion of <gone> URI from util.error objectKim Alvefur2020-09-261-2/+8
| |