Module std.package

Additions to the core package module.

The module table returned by `std.package` also contains all of the entries from the core `package` table. An hygienic way to import this module, then, is simply to override core `package` locally:

local package = require "std.package"

Functions

find (pathstrings, patt[, init=1[, plain=false]]) Look for a path segment match of *patt* in *pathstrings*.
insert (pathstrings[, pos=n+1], value) Insert a new element into a `package.path` like string of paths.
mappath (pathstrings, callback, ...) Call a function with each element of a path string.
normalize (...) Normalize a path list.
remove (pathstrings[, pos=n]) Remove any element from a `package.path` like string of paths.

Tables

package Make named constants for `package.config` (undocumented in 5.1; see luaconf.h for C equivalents).

Types

mappathcb (element, ...) Function signature of a callback for mappath.


Functions

Methods
find (pathstrings, patt[, init=1[, plain=false]])
Look for a path segment match of *patt* in *pathstrings*.

Parameters:

  • pathstrings string `pathsep` delimited path elements
  • patt string a Lua pattern to search for in *pathstrings*
  • init string element (not byte index!) to start search at. Negative numbers begin counting backwards from the last element (default 1)
  • plain string unless false, treat *patt* as a plain string, not a pattern. Note that if *plain* is given, then *init* must be given as well. (default false)

Returns:

    the matching element number (not byte index!) and full text of the matching element, if any; otherwise nil

Usage:

    i, s = find (package.path, "^[^" .. package.dirsep .. "/]")
insert (pathstrings[, pos=n+1], value)
Insert a new element into a `package.path` like string of paths.

Parameters:

  • pathstrings string a `package.path` like string
  • pos string element index at which to insert *value*, where `n` is the number of elements prior to insertion (default n+1)
  • value string new path element to insert

Returns:

    string a new string with the new element inserted

Usage:

    package.path = insert (package.path, 1, install_dir .. "/?.lua")
mappath (pathstrings, callback, ...)
Call a function with each element of a path string.

Parameters:

  • pathstrings string a `package.path` like string
  • callback mappathcb function to call for each element
  • ... additional arguments passed to *callback*

Returns:

    nil, or first non-nil returned by *callback*

Usage:

    mappath (package.path, searcherfn, transformfn)
normalize (...)
Normalize a path list. Removing redundant `.` and `..` directories, and keep only the first instance of duplicate elements. Each argument can contain any number of `pathsep` delimited elements; wherein characters are subject to `/` and `?` normalization, converting `/` to `dirsep` and `?` to `path_mark` (unless immediately preceded by a `%` character).

Parameters:

  • ... path elements

Returns:

    string a single normalized `pathsep` delimited paths string

Usage:

    package.path = normalize (user_paths, sys_paths, package.path)
remove (pathstrings[, pos=n])
Remove any element from a `package.path` like string of paths.

Parameters:

  • pathstrings string a `package.path` like string
  • pos string element index from which to remove an item, where `n` is the number of elements prior to removal (default n)

Returns:

    string a new string with given element removed

Usage:

    package.path = remove (package.path)

Tables

package
Make named constants for `package.config` (undocumented in 5.1; see luaconf.h for C equivalents).

Fields:

  • dirsep string directory separator
  • pathsep string path separator
  • path_mark string string that marks substitution points in a path template
  • execdir string (Windows only) replaced by the executable's directory in a path
  • igmark string Mark to ignore all before it when building `luaopen_` function name.

Types

mappathcb (element, ...)
Function signature of a callback for mappath.

Parameters:

  • element string an element from a `pathsep` delimited string of paths
  • ... additional arguments propagated from mappath

Returns:

    non-nil to break, otherwise continue with the next element
generated by LDoc 1.5.0 Last updated 2026-07-25 13:31:42