aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/test.yml18
-rw-r--r--README.md2
-rw-r--r--docs/browse_rocks.md2
-rw-r--r--docs/creating_a_makefile_that_plays_nice_with_luarocks.md15
-rw-r--r--docs/creating_a_rock.md12
-rw-r--r--docs/creating_luarocks_with_gnu_autotools.md8
-rw-r--r--docs/credits.md6
-rw-r--r--docs/dependencies.md2
-rw-r--r--docs/download.md4
-rw-r--r--docs/installation_instructions_for_unix.md2
-rw-r--r--docs/installation_instructions_for_windows.md4
-rw-r--r--docs/integrating_distro_modules_with_luarocks.md6
-rw-r--r--docs/luarocks.md135
-rw-r--r--docs/luarocks_through_a_proxy.md4
-rw-r--r--docs/more_resources.md16
-rw-r--r--docs/namespaces.md15
-rw-r--r--docs/release_history.md278
-rw-r--r--docs/rock_file_format.md4
-rw-r--r--docs/rockspec_format.md34
-rw-r--r--docs/welcome.md2
-rw-r--r--gen/gen.h180
-rw-r--r--gen/lua/luarocks/fs/lua.h717
-rw-r--r--gen/main.h117
-rwxr-xr-xpublishrelease7
-rw-r--r--spec/build_spec.lua95
-rw-r--r--src/luarocks/build/cmake.lua5
-rw-r--r--src/luarocks/build/cmake.tl5
-rw-r--r--src/luarocks/cmd/upload.lua5
-rw-r--r--src/luarocks/cmd/upload.tl3
-rw-r--r--src/luarocks/core/cfg.lua13
-rw-r--r--src/luarocks/deps.lua19
-rw-r--r--src/luarocks/deps.tl23
-rw-r--r--src/luarocks/fs/unix.lua5
-rw-r--r--src/luarocks/rockspecs.lua3
-rw-r--r--src/luarocks/rockspecs.tl3
-rw-r--r--src/luarocks/tools/patch.lua11
-rw-r--r--src/luarocks/tools/patch.tl13
-rw-r--r--src/luarocks/type/rockspec.lua5
-rw-r--r--src/luarocks/type/rockspec.tl7
39 files changed, 951 insertions, 854 deletions
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 4df13f68..f973b30b 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -71,24 +71,22 @@ jobs:
71 run: | 71 run: |
72 busted -o htest --exclude-tags=ssh,gpg,git,unit,quick --verbose -Xhelper "lua_dir=$(luarocks config variables.LUA_DIR),ci" 72 busted -o htest --exclude-tags=ssh,gpg,git,unit,quick --verbose -Xhelper "lua_dir=$(luarocks config variables.LUA_DIR),ci"
73 busted -o htest --exclude-tags=ssh,gpg,git,unit,quick --verbose -Xhelper "lua_dir=$(luarocks config variables.LUA_DIR),ci,env=full" 73 busted -o htest --exclude-tags=ssh,gpg,git,unit,quick --verbose -Xhelper "lua_dir=$(luarocks config variables.LUA_DIR),ci,env=full"
74 74
75 - name: Generate Coverage Report 75 - name: Generate Coverage Report
76 working-directory: testrun 76 run: luacov -c "testrun/luacov.config"
77 run: luacov -c luacov.config
78 77
79 - name: Setup Python 78 - name: Setup Python
80 uses: actions/setup-python@v5 79 uses: actions/setup-python@v5
81 with: 80 with:
82 python-version: '3.11' 81 python-version: '3.11'
83 82
84 - name: Install Codecov 83 - name: Install Codecov
85 run: pip install codecov 84 run: pip install codecov
86 85
87 - name: Upload Coverage Report 86 - name: Upload Coverage Report
88 working-directory: testrun
89 env: 87 env:
90 CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} 88 CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
91 run: codecov -t "$CODECOV_TOKEN" -f "luacov.report.out" -X gcov 89 run: codecov -t "$CODECOV_TOKEN" -f "testrun/luacov.report.out" -X gcov
92 90
93 ############################################################################## 91 ##############################################################################
94 SmokeTest: 92 SmokeTest:
@@ -334,7 +332,7 @@ jobs:
334 if: ${{ matrix.COMPILER == 'vs' && steps.restore-zlib-tarball.outputs.cache-hit != 'true' }} 332 if: ${{ matrix.COMPILER == 'vs' && steps.restore-zlib-tarball.outputs.cache-hit != 'true' }}
335 run: | 333 run: |
336 curl -o "${{ github.workspace }}\zlib-${{ env.LUAROCKS_DEPS_ZLIB_VER }}.tar.gz" ^ 334 curl -o "${{ github.workspace }}\zlib-${{ env.LUAROCKS_DEPS_ZLIB_VER }}.tar.gz" ^
337 "https://zlib.net/zlib-${{ env.LUAROCKS_DEPS_ZLIB_VER }}.tar.gz" 335 "https://zlib.net/fossils/zlib-${{ env.LUAROCKS_DEPS_ZLIB_VER }}.tar.gz"
338 336
339 - name: Save zlib tarball 337 - name: Save zlib tarball
340 if: ${{ matrix.COMPILER == 'vs' && steps.restore-zlib-tarball.outputs.cache-hit != 'true' }} 338 if: ${{ matrix.COMPILER == 'vs' && steps.restore-zlib-tarball.outputs.cache-hit != 'true' }}
@@ -662,14 +660,12 @@ jobs:
662 ${{ matrix.FILES }} 660 ${{ matrix.FILES }}
663 661
664 - name: Generate coverage report 662 - name: Generate coverage report
665 working-directory: testrun 663 run: luacov -c "testrun/luacov.config"
666 run: luacov -c "luacov.config"
667 664
668 - name: Install Codecov 665 - name: Install Codecov
669 run: pip install codecov 666 run: pip install codecov
670 667
671 - name: Upload coverage report 668 - name: Upload coverage report
672 working-directory: testrun
673 env: 669 env:
674 CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} 670 CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
675 run: codecov -t "%CODECOV_TOKEN%" -f "luacov.report.out" -X gcov 671 run: codecov -t "%CODECOV_TOKEN%" -f "testrun/luacov.report.out" -X gcov
diff --git a/README.md b/README.md
index cebe1f32..49ed9262 100644
--- a/README.md
+++ b/README.md
@@ -3,7 +3,7 @@
3A package manager for Lua modules. 3A package manager for Lua modules.
4 4
5[![Build Status](https://github.com/luarocks/luarocks/actions/workflows/test.yml/badge.svg)](https://github.com/luarocks/luarocks/actions) 5[![Build Status](https://github.com/luarocks/luarocks/actions/workflows/test.yml/badge.svg)](https://github.com/luarocks/luarocks/actions)
6[![Coverage Status](https://codecov.io/gh/luarocks/luarocks/coverage.svg?branch=main)](https://codecov.io/gh/luarocks/luarocks/branch/main) 6[![Coverage Status](https://codecov.io/gh/luarocks/luarocks/branch/main/graph/badge.svg)](https://app.codecov.io/gh/luarocks/luarocks/tree/main)
7[![Join the chat at https://gitter.im/luarocks/luarocks](https://badges.gitter.im/luarocks/luarocks.svg)](https://gitter.im/luarocks/luarocks) 7[![Join the chat at https://gitter.im/luarocks/luarocks](https://badges.gitter.im/luarocks/luarocks.svg)](https://gitter.im/luarocks/luarocks)
8 8
9Main website: [luarocks.org](https://luarocks.org) 9Main website: [luarocks.org](https://luarocks.org)
diff --git a/docs/browse_rocks.md b/docs/browse_rocks.md
index 80be38d8..00840fa5 100644
--- a/docs/browse_rocks.md
+++ b/docs/browse_rocks.md
@@ -2,7 +2,7 @@
2 2
3To browse rocks, simply go to: 3To browse rocks, simply go to:
4 4
5* [http://luarocks.org](http://luarocks.org) 5* [https://luarocks.org](https://luarocks.org)
6 6
7You can also use the [luarocks search](luarocks_search.md) command in the [luarocks](luarocks.md) command-line tool. 7You can also use the [luarocks search](luarocks_search.md) command in the [luarocks](luarocks.md) command-line tool.
8 8
diff --git a/docs/creating_a_makefile_that_plays_nice_with_luarocks.md b/docs/creating_a_makefile_that_plays_nice_with_luarocks.md
index d6d43a6b..a6187659 100644
--- a/docs/creating_a_makefile_that_plays_nice_with_luarocks.md
+++ b/docs/creating_a_makefile_that_plays_nice_with_luarocks.md
@@ -16,18 +16,19 @@ For building:
16 16
17* `CFLAGS` - flags for the C compiler 17* `CFLAGS` - flags for the C compiler
18* `LIBFLAG` - the flags needed for the linker to create shared libraries 18* `LIBFLAG` - the flags needed for the linker to create shared libraries
19* `LUA_LIBDIR` - where to find the lua libraries 19* `LUA_LIBDIR` - where to find the Lua libraries
20* `LUA_BINDIR` - where to find the lua binary 20* `LUA_BINDIR` - where to find the Lua binary
21* `LUA_INCDIR` - where to find the lua headers 21* `LUA_INCDIR` - where to find the Lua headers
22* `LUALIB` - the name of the lua library. This is not available nor needed on all platforms. 22* `LUALIB` - the name of the Lua library. This is not available nor needed on all platforms.
23* `LUA` - the name of the lua interpreter 23* `LUA` - the name of the Lua interpreter
24* `LUA_VERSION` - the version of Lua
24 25
25For installing: 26For installing:
26 27
27* `PREFIX` - basic installation prefix for the module 28* `PREFIX` - basic installation prefix for the module
28* `BINDIR` - where to put user callable programs or scripts 29* `BINDIR` - where to put user callable programs or scripts
29* `LIBDIR` - where to put the shared libraries 30* `LIBDIR` - where to put the shared libraries implementing modules
30* `LUADIR` - where to put the lua files 31* `LUADIR` - where to put the Lua scripts implementing modules
31* `CONFDIR` - where to put your modules configuration 32* `CONFDIR` - where to put your modules configuration
32 33
33Most of these variables point immediately where you'd expect them to, but 34Most of these variables point immediately where you'd expect them to, but
diff --git a/docs/creating_a_rock.md b/docs/creating_a_rock.md
index 07de5ca5..a5441ea4 100644
--- a/docs/creating_a_rock.md
+++ b/docs/creating_a_rock.md
@@ -148,6 +148,14 @@ and `5.3`, but not yet-to-be-released `5.4`. There are a few other operators
148for specifying version constraints, see 148for specifying version constraints, see
149[Rockspec format](rockspec_format.md#dependency-information). 149[Rockspec format](rockspec_format.md#dependency-information).
150 150
151Rockspecs from [`rockspec_format = "3.1"`](rockspec_format.md#package-metadata)),
152have access to special variables with the path of the installed rocks of its
153dependencies. See the [section below](#including-documentation-and-other-files)
154for information on how rocks can include files in their installation. Each
155variable is the name of the dependency followed by the suffix `_ROCKDIR`. For
156the example above, variable `LUAKNIFE_ROCKDIR` will be provided with the path of
157the installed rock.
158
151#### C modules linking to external libraries 159#### C modules linking to external libraries
152 160
153*If your code does not use third-party libraries, you may skip this subsection.* 161*If your code does not use third-party libraries, you may skip this subsection.*
@@ -231,7 +239,7 @@ luarocks doc ROCKNAME
231Now, to complete the rockspec for public consumption we need to fill the 239Now, to complete the rockspec for public consumption we need to fill the
232sources.url field. For that, we need the code to be available online. We have 240sources.url field. For that, we need the code to be available online. We have
233two approaches for that: if you have your source code in an online repository 241two approaches for that: if you have your source code in an online repository
234such as [GitHub](GitHub)(https://github.com), you may use that directly. 242such as [GitHub](https://github.com), you may use that directly.
235Alternatively, you can publish a tarball with the sources on the web. 243Alternatively, you can publish a tarball with the sources on the web.
236 244
237### Method 1: using a repository such as Github 245### Method 1: using a repository such as Github
@@ -315,7 +323,7 @@ tar czvpf luafruits-1.0.tar.gz luafruits-1.0/
315 323
316And now we're ready to publish the tarball online. You can upload it to any 324And now we're ready to publish the tarball online. You can upload it to any
317public web server; if you need hosting space, you can use the Pages feature 325public web server; if you need hosting space, you can use the Pages feature
318from [GitHub](GitHub)(https://github.com). Your source section would then look 326from [GitHub](https://github.com). Your source section would then look
319something like this: 327something like this:
320 328
321```lua 329```lua
diff --git a/docs/creating_luarocks_with_gnu_autotools.md b/docs/creating_luarocks_with_gnu_autotools.md
index 3e684691..3463ca72 100644
--- a/docs/creating_luarocks_with_gnu_autotools.md
+++ b/docs/creating_luarocks_with_gnu_autotools.md
@@ -5,7 +5,7 @@ default builds non-relocatable packages. For many programs it's not necessary
5to do anything particular to make them relocatable; applications which need to 5to do anything particular to make them relocatable; applications which need to
6find resources at run-time may be problematic. See GNU Smalltalk for one 6find resources at run-time may be problematic. See GNU Smalltalk for one
7approach (look at the RELOCATABILITY section in its configure.ac). 7approach (look at the RELOCATABILITY section in its configure.ac).
8[Zee](http://github.com/rrthomas/zee) uses another approach, of patching in 8[Zee](https://github.com/rrthomas/zee) uses another approach, of patching in
9paths for in-place running of the program during development, and relying on 9paths for in-place running of the program during development, and relying on
10Lua search paths at run-time, purely to find Lua modules. Search for 10Lua search paths at run-time, purely to find Lua modules. Search for
11'in_place_lua_path'. 11'in_place_lua_path'.
@@ -25,7 +25,7 @@ package="@PACKAGE@"
25 detailed = [[ 25 detailed = [[
26 <Detailed information.> 26 <Detailed information.>
27 ]], 27 ]],
28 homepage = "http://github.com/<USER>/@PACKAGE@/", 28 homepage = "https://github.com/<USER>/@PACKAGE@",
29 license = "<LICENSE>" 29 license = "<LICENSE>"
30 } 30 }
31 dependencies = { 31 dependencies = {
@@ -60,8 +60,8 @@ EXTRA_DIST = $(PACKAGE).rockspec.in
60DISTCLEANFILES = $(PACKAGE).rockspec 60DISTCLEANFILES = $(PACKAGE).rockspec
61``` 61```
62 62
63You can use [woger](http://github.com/rrthomas/woger/) to automate your 63You can use [woger](https://github.com/rrthomas/woger) to automate your
64releases, uploading rockspecs to luarocks.org and announcements to the Lua 64releases, uploading rockspecs to luarocks.org and announcements to the Lua
65mailing list. The details are evolving, so see woger itself for details, and a 65mailing list. The details are evolving, so see woger itself for details, and a
66frequently-updated project such as 66frequently-updated project such as
67[luaposix](http://github.com/luaposix/luaposix/) for example Makefile.am code. 67[luaposix](https://github.com/luaposix/luaposix) for example Makefile.am code.
diff --git a/docs/credits.md b/docs/credits.md
index e5d6232c..458f64c3 100644
--- a/docs/credits.md
+++ b/docs/credits.md
@@ -7,11 +7,11 @@ various forms by a number of organizations over the years and we thank every
7one of them: 7one of them:
8 8
9* [CNPq](http://www.cnpq.br) 9* [CNPq](http://www.cnpq.br)
10* [Fábrica Digital](http://www.fabricadigital.com.br/) 10* [Fábrica Digital](https://www.fabricadigital.com.br/)
11* [FINEP](http://www.finep.gov.br/) 11* [FINEP](http://www.finep.gov.br/)
12* [IMPA](http://www.impa.br/) 12* [IMPA](https://impa.br/)
13* [LabLua](http://www.lua.inf.puc-rio.br/) 13* [LabLua](http://www.lua.inf.puc-rio.br/)
14* [itch.io](http://itch.io/) 14* [itch.io](https://itch.io/)
15* [Kong](http://getkong.org/) 15* [Kong](http://getkong.org/)
16 16
17# Developers 17# Developers
diff --git a/docs/dependencies.md b/docs/dependencies.md
index eab287aa..407fc678 100644
--- a/docs/dependencies.md
+++ b/docs/dependencies.md
@@ -17,7 +17,7 @@ it was installed and LuaRocks failed to find it.
17Dependencies of a rock are specified in its [rockspec](rockspec_format.md) 17Dependencies of a rock are specified in its [rockspec](rockspec_format.md)
18file. See the complete specification of the dependency syntax in the [Rockspec 18file. See the complete specification of the dependency syntax in the [Rockspec
19format](rockspec_format.md) page and examples in rockspec files of the [public 19format](rockspec_format.md) page and examples in rockspec files of the [public
20rocks server](http://luarocks.org/). 20rocks server](https://luarocks.org).
21 21
22# Dependency modes 22# Dependency modes
23 23
diff --git a/docs/download.md b/docs/download.md
index fd8c6655..9413ed10 100644
--- a/docs/download.md
+++ b/docs/download.md
@@ -7,7 +7,7 @@ Latest release: **LuaRocks 3.11.1** - '31/May/2024'
7* [Tarball for Unix](https://luarocks.org/releases/luarocks-3.11.1.tar.gz) 7* [Tarball for Unix](https://luarocks.org/releases/luarocks-3.11.1.tar.gz)
8* [Windows all-in-one executable (32-bit)](https://luarocks.org/releases/luarocks-3.11.1-windows-32.zip) 8* [Windows all-in-one executable (32-bit)](https://luarocks.org/releases/luarocks-3.11.1-windows-32.zip)
9* [Windows all-in-one executable (64-bit)](https://luarocks.org/releases/luarocks-3.11.1-windows-64.zip) 9* [Windows all-in-one executable (64-bit)](https://luarocks.org/releases/luarocks-3.11.1-windows-64.zip)
10* [other files](https://luarocks.github.io/luarocks/releases) 10* [other files](https://luarocks.github.io/luarocks/releases/)
11 11
12For release notes and older versions, see the [release history](release_history.md). 12For release notes and older versions, see the [release history](release_history.md).
13 13
@@ -35,5 +35,5 @@ git clone git://github.com/luarocks/luarocks.git
35 35
36There is also a web interface available at: 36There is also a web interface available at:
37 37
38* [http://github.com/luarocks/luarocks](http://github.com/luarocks/luarocks) 38* [https://github.com/luarocks/luarocks](https://github.com/luarocks/luarocks)
39 39
diff --git a/docs/installation_instructions_for_unix.md b/docs/installation_instructions_for_unix.md
index a13db9f6..cdcdf64b 100644
--- a/docs/installation_instructions_for_unix.md
+++ b/docs/installation_instructions_for_unix.md
@@ -41,7 +41,7 @@ Once Lua and its dependencies are installed, it is time to install LuaRocks:
41 41
42* Go to the unpacked LuaRocks directory. 42* Go to the unpacked LuaRocks directory.
43 43
44* To configure, build and install LuaRocks, run the following commands. The `./configure` script will attempt to detect your installation of Lua. If you get any error messages, see the section "Customizing your settings", below. 44* To configure, build and install LuaRocks, run the following commands. The `./configure` script will attempt to detect your installation of Lua. If you get any error messages, see the section "[Customizing your settings](#customizing-your-settings)", below.
45 45
46``` 46```
47-$ ./configure --with-lua-include=/usr/local/include 47-$ ./configure --with-lua-include=/usr/local/include
diff --git a/docs/installation_instructions_for_windows.md b/docs/installation_instructions_for_windows.md
index be7ff400..f362ec5a 100644
--- a/docs/installation_instructions_for_windows.md
+++ b/docs/installation_instructions_for_windows.md
@@ -4,14 +4,14 @@ There are two packages for Windows:
4 4
5* if you already have a Lua installation, the <b>single binary</b> package 5* if you already have a Lua installation, the <b>single binary</b> package
6 which you can use: get the [latest windows-32.zip file 6 which you can use: get the [latest windows-32.zip file
7 here](http://luarocks.github.io/luarocks/releases), unpack it and you'll 7 here](https://luarocks.github.io/luarocks/releases/), unpack it and you'll
8 have a <tt>luarocks.exe</tt> ready to use. Make sure the executable is 8 have a <tt>luarocks.exe</tt> ready to use. Make sure the executable is
9 available from your executable PATH so you can run <tt>luarocks</tt> from 9 available from your executable PATH so you can run <tt>luarocks</tt> from
10 the command line the same way you run <tt>lua</tt>. 10 the command line the same way you run <tt>lua</tt>.
11 11
12* we also provide an all-in-one package which includes Lua 5.1 and LuaRocks in 12* we also provide an all-in-one package which includes Lua 5.1 and LuaRocks in
13 source format; get the [latest win32.zip file 13 source format; get the [latest win32.zip file
14 here](http://luarocks.github.io/luarocks/releases). The instructions below 14 here](https://luarocks.github.io/luarocks/releases/). The instructions below
15 are about this package. 15 are about this package.
16 16
17This page refers to the second method. The all-in-one package includes 17This page refers to the second method. The all-in-one package includes
diff --git a/docs/integrating_distro_modules_with_luarocks.md b/docs/integrating_distro_modules_with_luarocks.md
index fb073500..b6c054ab 100644
--- a/docs/integrating_distro_modules_with_luarocks.md
+++ b/docs/integrating_distro_modules_with_luarocks.md
@@ -151,14 +151,14 @@ Continuing the examples above:
151* /usr/lib/luarocks/rocks-5.3/lua-cjson/2.1.0-0/lua-cjson-2.1.0-0.rockspec 151* /usr/lib/luarocks/rocks-5.3/lua-cjson/2.1.0-0/lua-cjson-2.1.0-0.rockspec
152 152
153For simplicity, I would recommend just copying over the appropriate rockspec 153For simplicity, I would recommend just copying over the appropriate rockspec
154file from [luarocks.org](http://luarocks.org) and bundling them in the package 154file from [luarocks.org](https://luarocks.org) and bundling them in the package
155metadata. For completeness, this is how the one for LPeg 1.0 looks like: 155metadata. For completeness, this is how the one for LPeg 1.0 looks like:
156 156
157``` 157```
158package = "LPeg" 158package = "LPeg"
159version = "1.0.0-1" 159version = "1.0.0-1"
160source = { 160source = {
161 url = "http://www.inf.puc-rio.br/~roberto/lpeg/lpeg-1.0.0.tar.gz", 161 url = "https://www.inf.puc-rio.br/~roberto/lpeg/lpeg-1.0.0.tar.gz",
162 md5 = "0aec64ccd13996202ad0c099e2877ece", 162 md5 = "0aec64ccd13996202ad0c099e2877ece",
163} 163}
164description = { 164description = {
@@ -171,7 +171,7 @@ description = {
171 we expect from a pattern-matching library (and more, as we can 171 we expect from a pattern-matching library (and more, as we can
172 define entire grammars). 172 define entire grammars).
173 ]], 173 ]],
174 homepage = "http://www.inf.puc-rio.br/~roberto/lpeg.html", 174 homepage = "https://www.inf.puc-rio.br/~roberto/lpeg/lpeg.html",
175 maintainer = "Gary V. Vaughan <gary@vaughan.pe>", 175 maintainer = "Gary V. Vaughan <gary@vaughan.pe>",
176 license = "MIT/X11" 176 license = "MIT/X11"
177} 177}
diff --git a/docs/luarocks.md b/docs/luarocks.md
index 91bb6731..99dff011 100644
--- a/docs/luarocks.md
+++ b/docs/luarocks.md
@@ -2,101 +2,66 @@
2 2
3**luarocks** is the command-line interface for LuaRocks, the Lua package manager. 3**luarocks** is the command-line interface for LuaRocks, the Lua package manager.
4 4
5# Usage 5## Usage
6 6
7``` 7```
8luarocks [--server=<server> | --only-server=<server>] [--tree=<tree>] [--only-sources=<url>] [--deps-mode=<mode>] [<VAR>=<VALUE>]... <command> [<argument>] 8luarocks [--server=<server> | --only-server=<server>] [--tree=<tree>] [--only-sources=<url>] [--deps-mode=<mode>] [<VAR>=<VALUE>]... <command> [<argument>]
9``` 9```
10 10
11Variables from the "variables" table of the [configuration file](config_file_format.md) can be overriden with VAR=VALUE assignments. 11Variables from the "variables" table of the [configuration file](config_file_format.md) can be overridden with `VAR=VALUE` assignments.
12 12
13{| 13### Options
14| --server=_server_ || Fetch rocks/rockspecs from this server (takes priority over config file)
15|-
16| --only-server=_server_ || Fetch rocks/rockspecs from this server only (overrides any entries in the config file)
17|-
18| --only-sources=_url_ || Restrict downloads of sources to URLs starting with the given URL. For example, --only-sources=http://luarocks.org will allow LuaRocks to download sources only if the URL given in the rockspec starts with http://luarocks.org .
19|-
20| --tree=_tree_ || Which tree to operate on.
21|-
22| --local || Use the tree in the user's home directory. To enable it, see `[luarocks path](luarocks_path.md)`
23|-
24| --deps-mode=_mode_ || Select dependencies mode:
25 14
26How to handle the list of rocks servers given in the rocks_servers array in the [config file](config_file_format.md). 15- `--server=<server>`: Fetch rocks/rockspecs from this server (takes priority over config file).
16- `--only-server=<server>`: Fetch rocks/rockspecs from this server only (overrides any entries in the config file).
17- `--only-sources=<url>`: Restrict downloads of sources to URLs starting with the given URL. For example, `--only-sources=https://luarocks.org` will allow LuaRocks to download sources only if the URL given in the rockspec starts with `https://luarocks.org`.
18- `--tree=<tree>`: Which tree to operate on.
19- `--local`: Use the tree in the user's home directory. To enable it, see [`luarocks path`](luarocks_path.md).
20- `--deps-mode=<mode>`: Select dependencies mode:
21 - **one**: Consider only the tree at the top of the list (possibly, the one given by the `--tree` flag, overriding all entries from `rocks_trees`).
22 - **all**: Consider all trees: if a dependency is installed in any tree of the `rocks_trees` list, we have a positive match.
23 - **order**: Consider only trees starting from the "current" one in the order, where the "current" is either:
24 - the one at the bottom of the `rocks_trees` list,
25 - or one explicitly given with `--tree`,
26 - or the "home" tree if `--local` was given or `local_by_default=true` is configured (usually at the top of the list).
27- `--verbose`: Display verbose output of commands executed.
28- `--timeout`: Timeout on network operations, in seconds. `0` means no timeout (wait forever). Default is `30`.
27 29
28* **one** - Consider only the tree at the top of the list (possibly, the one given by the --tree flag, overriding all entries from rocks_trees), ignore all others 30---
29* **all** - Consider all trees: if a dependency is installed in any tree of the rocks_trees list, we have a positive match.
30* **order** - Consider only trees starting from the "current" one in the order, where the "current" is either:
31 * the one at the bottom of the rocks_trees list,
32 * or one explicitly given with --tree
33 * or the "home" tree if --local was given or local_by_default=true is configured (usually at the top of the list)
34|-
35| --verbose || Display verbose output of commands executed.
36|-
37| --timeout || Timeout on network operations, in seconds. 0 means no timeout (wait forever). Default is 30.
38|}
39 31
40# Supported commands 32## Supported Commands
41 33
42{| 34- **[build](luarocks_build.md)**: Build/compile and install a rock.
43| [build](luarocks_build.md) || Build/compile and install a rock. 35- **[doc](luarocks_doc.md)**: Shows documentation for an installed rock.
44|- 36- **[download](luarocks_download.md)**: Download a specific rock or rockspec file from a rocks server.
45| [doc](luarocks_doc.md) || Shows documentation for an installed rock. 37- **[help](luarocks_help.md)**: Help on commands.
46|- 38- **[install](luarocks_install.md)**: Install a rock.
47| [download](luarocks_download.md)|| Download a specific rock or rockspec file from a rocks server. 39- **[lint](luarocks_lint.md)**: Check syntax of a rockspec.
48|- 40- **[list](luarocks_list.md)**: Lists currently installed rocks.
49| [help](luarocks_help.md) || Help on commands. 41- **[config](luarocks_config.md)**: Query and set the LuaRocks configuration.
50|- 42- **[make](luarocks_make.md)**: Compile package in the current directory using a rockspec and install it.
51| [install](luarocks_install.md) || Install a rock. 43- **[new_version](luarocks_new_version.md)**: Auto-write a rockspec for a new version of a rock.
52|- 44- **[pack](luarocks_pack.md)**: Create a rock, packing sources or binaries.
53| [lint](luarocks_lint.md) || Check syntax of a rockspec. 45- **[path](luarocks_path.md)**: Return the currently configured package path.
54|- 46- **[purge](luarocks_purge.md)**: Remove all installed rocks from a tree.
55| [list](luarocks_list.md) || Lists currently installed rocks. 47- **[remove](luarocks_remove.md)**: Uninstall a rock.
56|- 48- **[search](luarocks_search.md)**: Query the LuaRocks repositories.
57| [config](luarocks_config.md) || Query and set the LuaRocks configuration. 49- **[test](luarocks_test.md)**: Run the test suite in the current directory.
58|- 50- **[show](luarocks_show.md)**: Shows information about an installed rock.
59| [make](luarocks_make.md) || Compile package in current directory using a rockspec and install it. 51- **[unpack](luarocks_unpack.md)**: Unpack the contents of a rock.
60|- 52- **[upload](luarocks_upload.md)**: Upload a rockspec to the public rocks repository.
61| [new_version](luarocks_new_version.md) || Auto-write a rockspec for a new version of a rock. 53- **[write_rockspec](luarocks_write_rockspec.md)**: Write a template for a rockspec file.
62|-
63| [pack](luarocks_pack.md) || Create a rock, packing sources or binaries.
64|-
65| [path](luarocks_path.md) || Return the currently configured package path.
66|-
67| [purge](luarocks_purge.md) || Remove all installed rocks from a tree.
68|-
69| [remove](luarocks_remove.md) || Uninstall a rock.
70|-
71| [search](luarocks_search.md) || Query the LuaRocks repositories.
72|-
73| [test](luarocks_test.md) || Run the test suite in the current directory.
74|-
75| [show](luarocks_show.md) || Shows information about an installed rock.
76|-
77| [unpack](luarocks_unpack.md) || Unpack the contents of a rock.
78|-
79| [upload](luarocks_upload.md) || Upload a rockspec to the public rocks repository.
80|-
81| [write_rockspec](luarocks_write_rockspec.md) || Write a template for a rockspec file.
82|}
83 54
84# Overview of the difference between "make", "build", "install" and "pack" 55---
85
86{|
87| luarocks install modulename || downloads a binary .rock file and installs it to the local tree (falls back to "luarocks build modulename" behavior if a binary rock is not found)
88|-
89| luarocks build modulename || downloads a .src.rock or a rockspec and builds+installs it to the local tree.
90|-
91| luarocks build modulename-1.0-1.linux-x86.rock || extracts the rockspec from the rock and builds it as if the rockspec was passed in the command-line (i.e., redownloading sources and recompiling C modules if any).
92|-
93| luarocks build modulename-1.0-1.rockspec || builds+installs the rock using the given rockspec downloading the sources
94|-
95| luarocks make modulename-1.0-1.rockspec || builds+installs the rock using the rockspec using the contents of your current directory (kind of like the way make uses a Makefile) instead of downloading sources
96|-
97| luarocks pack modulename || grabs the rock from your local tree and packs it into a binary .rock file
98|-
99| luarocks pack modulename-1.0-1.rockspec || downloads the sources from the url and packs it into a .src.rock file
100|}
101 56
57## Overview of the Difference Between `make`, `build`, `install`, and `pack`
102 58
59| Command | Description |
60|-------------------------------------------|-------------------------------------------------------------------------------------------------|
61| `luarocks install modulename` | Downloads a binary `.rock` file and installs it to the local tree (falls back to `luarocks build modulename` behavior if a binary rock is not found). |
62| `luarocks build modulename` | Downloads a `.src.rock` or a rockspec and builds+installs it to the local tree. |
63| `luarocks build modulename-1.0-1.linux-x86.rock` | Extracts the rockspec from the rock and builds it as if the rockspec was passed in the command-line (i.e., redownloading sources and recompiling C modules if any). |
64| `luarocks build modulename-1.0-1.rockspec` | Builds+installs the rock using the given rockspec, downloading the sources. |
65| `luarocks make modulename-1.0-1.rockspec` | Builds+installs the rock using the rockspec and the contents of your current directory (kind of like the way `make` uses a Makefile) instead of downloading sources. |
66| `luarocks pack modulename` | Grabs the rock from your local tree and packs it into a binary `.rock` file. |
67| `luarocks pack modulename-1.0-1.rockspec` | Downloads the sources from the URL and packs it into a `.src.rock` file. |
diff --git a/docs/luarocks_through_a_proxy.md b/docs/luarocks_through_a_proxy.md
index 589142fc..3d7d3b2d 100644
--- a/docs/luarocks_through_a_proxy.md
+++ b/docs/luarocks_through_a_proxy.md
@@ -31,6 +31,6 @@ This adds the following to your `~/.gitconfig`:
31 31
32## External references 32## External references
33 33
34* [curl manpage](http://www.hmug.org/man/1/curl.php) 34* [curl manpage](https://www.manpagez.com/man/1/curl/)
35* ["How to use wget through proxy"](http://blog.taragana.com/index.php/archive/how-to-use-wget-through-proxy/) 35* ["How to use wget through proxy"](http://blog.taragana.com/index.php/archive/how-to-use-wget-through-proxy/)
36* ["Tell git to use https instead of git protocol"](http://jgoodall.me/posts/2013/05/29/git-use-https) 36* ["Tell git to use https instead of git protocol"](https://jgoodall.me/2013/05/29/git-use-https.html)
diff --git a/docs/more_resources.md b/docs/more_resources.md
index 587ebb67..0adaffa1 100644
--- a/docs/more_resources.md
+++ b/docs/more_resources.md
@@ -12,21 +12,21 @@ On LuaRocks:
12 12
13On Lua: 13On Lua:
14 14
15* [Lua mailing list](http://www.lua.org/lua-l.html) - for questions about the Lua language itself or specific Lua modules (most module authors hang out there!) 15* [Lua mailing list](https://www.lua.org/lua-l.html) - for questions about the Lua language itself or specific Lua modules (most module authors hang out there!)
16* [Lua documentation](http://www.lua.org/docs.html) - documentation on the Lua language, including the reference manual 16* [Lua documentation](https://www.lua.org/docs.html) - documentation on the Lua language, including the reference manual
17* [Lua Forum](https://luaforum.com) - a beginner friendly Lua community 17* [Lua Forum](https://luaforum.com) - a beginner friendly Lua community
18 18
19On LuaJIT: 19On LuaJIT:
20 20
21* [LuaJIT mailing list](http://luajit.org/list.html) - for LuaJIT-specific discussion 21* [LuaJIT mailing list](https://luajit.org/list.html) - for LuaJIT-specific discussion
22 22
23## Presentations on LuaRocks 23## Presentations on LuaRocks
24 24
25Some past presentations discussing LuaRocks: 25Some past presentations discussing LuaRocks:
26 26
27* [LuaRocks: fostering an ecosystem for Lua modules](http://hisham.hm/talks#fosdem2015), presented by Hisham Muhammad at FOSDEM 2015, Brussels, Belgium 27* [LuaRocks: fostering an ecosystem for Lua modules](https://hisham.hm/talks#fosdem2015), presented by Hisham Muhammad at FOSDEM 2015, Brussels, Belgium
28* [What's new in LuaRocks](http://hisham.hm/talks#luawshop14), presented by Hisham Muhammad at the Lua Workshop 2014, Moscow, Russia 28* [What's new in LuaRocks](https://hisham.hm/talks#luawshop14), presented by Hisham Muhammad at the Lua Workshop 2014, Moscow, Russia
29* [LuaRocks - past, present and future](http://hisham.hm/talks#luawshop13), presented by Hisham Muhammad at the Lua Workshop 2013, Toulouse, France 29* [LuaRocks - past, present and future](https://hisham.hm/talks#luawshop13), presented by Hisham Muhammad at the Lua Workshop 2013, Toulouse, France
30* [LuaRocks 2.0](http://hisham.hm/talks#luawshop09), presented by Hisham Muhammad at the Lua Workshop 2009, Rio de Janeiro, Brazil 30* [LuaRocks 2.0](https://hisham.hm/talks#luawshop09), presented by Hisham Muhammad at the Lua Workshop 2009, Rio de Janeiro, Brazil
31* [LuaRocks: o sistema de pacotes de extensão para a linguagem Lua](http://hisham.hm/talks#fisl9), presented by Hisham Muhammad at FISL 9.0 - IX International Forum on Free Software, Porto Alegre, Brazil 31* [LuaRocks: o sistema de pacotes de extensão para a linguagem Lua](https://hisham.hm/talks#fisl9), presented by Hisham Muhammad at FISL 9.0 - IX International Forum on Free Software, Porto Alegre, Brazil
32 32
diff --git a/docs/namespaces.md b/docs/namespaces.md
index f00c692a..4591c1c4 100644
--- a/docs/namespaces.md
+++ b/docs/namespaces.md
@@ -19,14 +19,13 @@ repository is an address (a local directory or a remote URL) where LuaRocks
19can find a `manifest-5.x` file and .rock and .rockspec files. We also call 19can find a `manifest-5.x` file and .rock and .rockspec files. We also call
20such repository a "manifest", for short. 20such repository a "manifest", for short.
21 21
22The [LuaRocks.org](LuaRocks.org)(LuaRocks.org)(https://luarocks.org) website 22The [LuaRocks.org](https://luarocks.org) website features a root manifest at
23features a root manifest at `https://luarocks.org` as well as per-user 23`https://luarocks.org` as well as per-user manifests at
24manifests at `https://luarocks.org/manifests/<your-user-name>`. Entries in the 24`https://luarocks.org/manifests/<your-user-name>`. Entries in the root
25root manifest are operated in a first-come first-served manner, but even if 25manifest are operated in a first-come first-served manner, but even if someone
26someone else has already taken a rock name, you can upload your own version of 26else has already taken a rock name, you can upload your own version of it to
27it to your user manifest. You can refer to a per-user manifest the same way as 27your user manifest. You can refer to a per-user manifest the same way as any
28any other rocks server, adding to your configuration or using it with the 28other rocks server, adding to your configuration or using it with the`--server` flag. This means that you were always able to install your own
29`--server` flag. This means that you were always able to install your own
30version of a rock using a command such as `luarocks install <my-rock> 29version of a rock using a command such as `luarocks install <my-rock>
31--server=https://luarocks.org/manifests/<your-user-name>`. However, you could 30--server=https://luarocks.org/manifests/<your-user-name>`. However, you could
32not specifically depend on it from another rockspec, and once installed, the 31not specifically depend on it from another rockspec, and once installed, the
diff --git a/docs/release_history.md b/docs/release_history.md
index 4759fe17..52c61893 100644
--- a/docs/release_history.md
+++ b/docs/release_history.md
@@ -1,40 +1,40 @@
1# Release history 1# Release history
2 2
3**Version 3.11.1** - 31/May/2024 - [Source tarball for Unix](http://luarocks.org/releases/luarocks-3.11.1.tar.gz) - 3**Version 3.11.1** - 31/May/2024 - [Source tarball for Unix](https://luarocks.github.io/luarocks/releases/luarocks-3.11.1.tar.gz) -
4[Windows binary (32-bit)](http://luarocks.org/releases/luarocks-3.11.1-windows-32.zip) - 4[Windows binary (32-bit)](https://luarocks.github.io/luarocks/releases/luarocks-3.11.1-windows-32.zip) -
5[Windows binary (64-bit)](http://luarocks.org/releases/luarocks-3.11.1-windows-64.zip) - 5[Windows binary (64-bit)](https://luarocks.github.io/luarocks/releases/luarocks-3.11.1-windows-64.zip) -
6[Linux binary (x86_64)](http://luarocks.org/releases/luarocks-3.11.1-linux-x86_64.zip) - 6[Linux binary (x86_64)](https://luarocks.github.io/luarocks/releases/luarocks-3.11.1-linux-x86_64.zip) -
7[other files](http://luarocks.github.io/luarocks/releases) 7[other files](https://luarocks.github.io/luarocks/releases/)
8 8
9**Version 3.11.0** - 13/Mar/2024 - [Source tarball for Unix](http://luarocks.org/releases/luarocks-3.11.0.tar.gz) - 9**Version 3.11.0** - 13/Mar/2024 - [Source tarball for Unix](https://luarocks.github.io/luarocks/releases/luarocks-3.11.0.tar.gz) -
10[Windows binary (32-bit)](http://luarocks.org/releases/luarocks-3.11.0-windows-32.zip) - 10[Windows binary (32-bit)](https://luarocks.github.io/luarocks/releases/luarocks-3.11.0-windows-32.zip) -
11[Windows binary (64-bit)](http://luarocks.org/releases/luarocks-3.11.0-windows-64.zip) - 11[Windows binary (64-bit)](https://luarocks.github.io/luarocks/releases/luarocks-3.11.0-windows-64.zip) -
12[Linux binary (x86_64)](http://luarocks.org/releases/luarocks-3.11.0-linux-x86_64.zip) - 12[Linux binary (x86_64)](https://luarocks.github.io/luarocks/releases/luarocks-3.11.0-linux-x86_64.zip) -
13[other files](http://luarocks.github.io/luarocks/releases) 13[other files](https://luarocks.github.io/luarocks/releases/)
14 14
15**Version 3.10.0** - 27/Feb/2024 - [Source tarball for Unix](http://luarocks.org/releases/luarocks-3.10.0.tar.gz) - 15**Version 3.10.0** - 27/Feb/2024 - [Source tarball for Unix](https://luarocks.github.io/luarocks/releases/luarocks-3.10.0.tar.gz) -
16[Windows binary (32-bit)](http://luarocks.org/releases/luarocks-3.10.0-windows-32.zip) - 16[Windows binary (32-bit)](https://luarocks.github.io/luarocks/releases/luarocks-3.10.0-windows-32.zip) -
17[Windows binary (64-bit)](http://luarocks.org/releases/luarocks-3.10.0-windows-64.zip) - 17[Windows binary (64-bit)](https://luarocks.github.io/luarocks/releases/luarocks-3.10.0-windows-64.zip) -
18[Linux binary (x86_64)](http://luarocks.org/releases/luarocks-3.10.0-linux-x86_64.zip) - 18[Linux binary (x86_64)](https://luarocks.github.io/luarocks/releases/luarocks-3.10.0-linux-x86_64.zip) -
19[other files](http://luarocks.github.io/luarocks/releases) 19[other files](https://luarocks.github.io/luarocks/releases/)
20 20
21**Version 3.9.2** - 08/Dec/2022 - [Source tarball for Unix](http://luarocks.org/releases/luarocks-3.9.2.tar.gz) - 21**Version 3.9.2** - 08/Dec/2022 - [Source tarball for Unix](https://luarocks.github.io/luarocks/releases/luarocks-3.9.2.tar.gz) -
22[Windows binary (32-bit)](http://luarocks.org/releases/luarocks-3.9.2-windows-32.zip) - 22[Windows binary (32-bit)](https://luarocks.github.io/luarocks/releases/luarocks-3.9.2-windows-32.zip) -
23[Windows binary (64-bit)](http://luarocks.org/releases/luarocks-3.9.2-windows-64.zip) - 23[Windows binary (64-bit)](https://luarocks.github.io/luarocks/releases/luarocks-3.9.2-windows-64.zip) -
24[Linux binary (x86_64)](http://luarocks.org/releases/luarocks-3.9.2-linux-x86_64.zip) - 24[Linux binary (x86_64)](https://luarocks.github.io/luarocks/releases/luarocks-3.9.2-linux-x86_64.zip) -
25[other files](http://luarocks.github.io/luarocks/releases) 25[other files](https://luarocks.github.io/luarocks/releases/)
26 26
27**Version 3.9.1** - 01/Jul/2022 - [Source tarball for Unix](http://luarocks.org/releases/luarocks-3.9.1.tar.gz) - 27**Version 3.9.1** - 01/Jul/2022 - [Source tarball for Unix](https://luarocks.github.io/luarocks/releases/luarocks-3.9.1.tar.gz) -
28[Windows binary (32-bit)](http://luarocks.org/releases/luarocks-3.9.1-windows-32.zip) - 28[Windows binary (32-bit)](https://luarocks.github.io/luarocks/releases/luarocks-3.9.1-windows-32.zip) -
29[Windows binary (64-bit)](http://luarocks.org/releases/luarocks-3.9.1-windows-64.zip) - 29[Windows binary (64-bit)](https://luarocks.github.io/luarocks/releases/luarocks-3.9.1-windows-64.zip) -
30[Linux binary (x86_64)](http://luarocks.org/releases/luarocks-3.9.1-linux-x86_64.zip) - 30[Linux binary (x86_64)](https://luarocks.github.io/luarocks/releases/luarocks-3.9.1-linux-x86_64.zip) -
31[other files](http://luarocks.github.io/luarocks/releases) 31[other files](https://luarocks.github.io/luarocks/releases/)
32 32
33**Version 3.9.0** - 17/Apr/2022 - [Source tarball for Unix](http://luarocks.org/releases/luarocks-3.9.0.tar.gz) - 33**Version 3.9.0** - 17/Apr/2022 - [Source tarball for Unix](https://luarocks.github.io/luarocks/releases/luarocks-3.9.0.tar.gz) -
34[Windows binary (32-bit)](http://luarocks.org/releases/luarocks-3.9.0-windows-32.zip) - 34[Windows binary (32-bit)](https://luarocks.github.io/luarocks/releases/luarocks-3.9.0-windows-32.zip) -
35[Windows binary (64-bit)](http://luarocks.org/releases/luarocks-3.9.0-windows-64.zip) - 35[Windows binary (64-bit)](https://luarocks.github.io/luarocks/releases/luarocks-3.9.0-windows-64.zip) -
36[Linux binary (x86_64)](http://luarocks.org/releases/luarocks-3.9.0-linux-x86_64.zip) - 36[Linux binary (x86_64)](https://luarocks.github.io/luarocks/releases/luarocks-3.9.0-linux-x86_64.zip) -
37[other files](http://luarocks.github.io/luarocks/releases) 37[other files](https://luarocks.github.io/luarocks/releases/)
38 38
39* `builtin` build mode now always respects CC, CFLAGS and LDFLAGS 39* `builtin` build mode now always respects CC, CFLAGS and LDFLAGS
40* Check that lua.h version matches the desired Lua version 40* Check that lua.h version matches the desired Lua version
@@ -53,35 +53,35 @@
53* LuaRocks test suite now runs on Lua 5.4 and LuaJIT 53* LuaRocks test suite now runs on Lua 5.4 and LuaJIT
54* Internal dependencies of standalone LuaRocks executable were bumped 54* Internal dependencies of standalone LuaRocks executable were bumped
55 55
56**Version 3.8.0** - 08/Nov/2021 - [Source tarball for Unix](http://luarocks.org/releases/luarocks-3.8.0.tar.gz) - 56**Version 3.8.0** - 08/Nov/2021 - [Source tarball for Unix](https://luarocks.github.io/luarocks/releases/luarocks-3.8.0.tar.gz) -
57[Windows binary (32-bit)](http://luarocks.org/releases/luarocks-3.8.0-windows-32.zip) - 57[Windows binary (32-bit)](https://luarocks.github.io/luarocks/releases/luarocks-3.8.0-windows-32.zip) -
58[Windows binary (64-bit)](http://luarocks.org/releases/luarocks-3.8.0-windows-64.zip) - 58[Windows binary (64-bit)](https://luarocks.github.io/luarocks/releases/luarocks-3.8.0-windows-64.zip) -
59[Linux binary (x86_64)](http://luarocks.org/releases/luarocks-3.8.0-linux-x86_64.zip) - 59[Linux binary (x86_64)](https://luarocks.github.io/luarocks/releases/luarocks-3.8.0-linux-x86_64.zip) -
60[other files](http://luarocks.github.io/luarocks/releases) 60[other files](https://luarocks.github.io/luarocks/releases/)
61 61
62**Version 3.7.0** - 13/Apr/2021 - [Source tarball for Unix](http://luarocks.org/releases/luarocks-3.7.0.tar.gz) - 62**Version 3.7.0** - 13/Apr/2021 - [Source tarball for Unix](https://luarocks.github.io/luarocks/releases/luarocks-3.7.0.tar.gz) -
63[Windows binary (32-bit)](http://luarocks.org/releases/luarocks-3.7.0-windows-32.zip) - 63[Windows binary (32-bit)](https://luarocks.github.io/luarocks/releases/luarocks-3.7.0-windows-32.zip) -
64[Windows binary (64-bit)](http://luarocks.org/releases/luarocks-3.7.0-windows-64.zip) - 64[Windows binary (64-bit)](https://luarocks.github.io/luarocks/releases/luarocks-3.7.0-windows-64.zip) -
65[Linux binary (x86_64)](http://luarocks.org/releases/luarocks-3.7.0-linux-x86_64.zip) - 65[Linux binary (x86_64)](https://luarocks.github.io/luarocks/releases/luarocks-3.7.0-linux-x86_64.zip) -
66[other files](http://luarocks.github.io/luarocks/releases) 66[other files](https://luarocks.github.io/luarocks/releases/)
67 67
68**Version 3.6.0** - 30/Mar/2021 - [Source tarball for Unix](http://luarocks.org/releases/luarocks-3.6.0.tar.gz) - 68**Version 3.6.0** - 30/Mar/2021 - [Source tarball for Unix](https://luarocks.github.io/luarocks/releases/luarocks-3.6.0.tar.gz) -
69[Windows binary (32-bit)](http://luarocks.org/releases/luarocks-3.6.0-windows-32.zip) - 69[Windows binary (32-bit)](https://luarocks.github.io/luarocks/releases/luarocks-3.6.0-windows-32.zip) -
70[Windows binary (64-bit)](http://luarocks.org/releases/luarocks-3.6.0-windows-64.zip) - 70[Windows binary (64-bit)](https://luarocks.github.io/luarocks/releases/luarocks-3.6.0-windows-64.zip) -
71[Linux binary (x86_64)](http://luarocks.org/releases/luarocks-3.6.0-linux-x86_64.zip) - 71[Linux binary (x86_64)](https://luarocks.github.io/luarocks/releases/luarocks-3.6.0-linux-x86_64.zip) -
72[other files](http://luarocks.github.io/luarocks/releases) 72[other files](https://luarocks.github.io/luarocks/releases/)
73 73
74**Version 3.5.0** - 10/Dec/2020 - [Source tarball for Unix](http://luarocks.org/releases/luarocks-3.5.0.tar.gz) - 74**Version 3.5.0** - 10/Dec/2020 - [Source tarball for Unix](https://luarocks.github.io/luarocks/releases/luarocks-3.5.0.tar.gz) -
75[Windows binary (32-bit)](http://luarocks.org/releases/luarocks-3.5.0-windows-32.zip) - 75[Windows binary (32-bit)](https://luarocks.github.io/luarocks/releases/luarocks-3.5.0-windows-32.zip) -
76[Windows binary (64-bit)](http://luarocks.org/releases/luarocks-3.5.0-windows-64.zip) - 76[Windows binary (64-bit)](https://luarocks.github.io/luarocks/releases/luarocks-3.5.0-windows-64.zip) -
77[Linux binary (x86_64)](http://luarocks.org/releases/luarocks-3.5.0-linux-x86_64.zip) - 77[Linux binary (x86_64)](https://luarocks.github.io/luarocks/releases/luarocks-3.5.0-linux-x86_64.zip) -
78[other files](http://luarocks.github.io/luarocks/releases) 78[other files](https://luarocks.github.io/luarocks/releases/)
79 79
80**Version 3.4.0** - 25/Sep/2020 - [Source tarball for Unix](http://luarocks.org/releases/luarocks-3.4.0.tar.gz) - 80**Version 3.4.0** - 25/Sep/2020 - [Source tarball for Unix](https://luarocks.github.io/luarocks/releases/luarocks-3.4.0.tar.gz) -
81[Windows binary (32-bit)](http://luarocks.org/releases/luarocks-3.4.0-windows-32.zip) - 81[Windows binary (32-bit)](https://luarocks.github.io/luarocks/releases/luarocks-3.4.0-windows-32.zip) -
82[Windows binary (64-bit)](http://luarocks.org/releases/luarocks-3.4.0-windows-64.zip) - 82[Windows binary (64-bit)](https://luarocks.github.io/luarocks/releases/luarocks-3.4.0-windows-64.zip) -
83[Linux binary (x86_64)](http://luarocks.org/releases/luarocks-3.4.0-linux-x86_64.zip) - 83[Linux binary (x86_64)](https://luarocks.github.io/luarocks/releases/luarocks-3.4.0-linux-x86_64.zip) -
84[other files](http://luarocks.github.io/luarocks/releases) 84[other files](https://luarocks.github.io/luarocks/releases/)
85 85
86* `luarocks make` now supports `--only-deps` 86* `luarocks make` now supports `--only-deps`
87* `luarocks make` new flag: `--no-install`, which only performs the compilation step 87* `luarocks make` new flag: `--no-install`, which only performs the compilation step
@@ -104,25 +104,25 @@
104* Fix detection of Lua path based on arg variable 104* Fix detection of Lua path based on arg variable
105* Fix regression on dependency matching of luarocks.loader 105* Fix regression on dependency matching of luarocks.loader
106 106
107**Version 3.3.1** - 07/Feb/2020 - [All Unix](http://luarocks.org/releases/luarocks-3.3.1.tar.gz) - 107**Version 3.3.1** - 07/Feb/2020 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-3.3.1.tar.gz) -
108[Windows all-in-one executable (32-bit)](http://luarocks.org/releases/luarocks-3.3.1-windows-32.zip) - 108[Windows all-in-one executable (32-bit)](https://luarocks.github.io/luarocks/releases/luarocks-3.3.1-windows-32.zip) -
109[Windows all-in-one executable (64-bit)](http://luarocks.org/releases/luarocks-3.3.1-windows-64.zip) - 109[Windows all-in-one executable (64-bit)](https://luarocks.github.io/luarocks/releases/luarocks-3.3.1-windows-64.zip) -
110[other files](http://luarocks.github.io/luarocks/releases) 110[other files](https://luarocks.github.io/luarocks/releases/)
111 111
112* Fix downgrades of rocks containing directories: stop it from creating spurious 0-byte files where directories have been 112* Fix downgrades of rocks containing directories: stop it from creating spurious 0-byte files where directories have been
113* Fix error message when attempting to copy a file that is missing 113* Fix error message when attempting to copy a file that is missing
114* Detect OpenBSD-specific dependency paths 114* Detect OpenBSD-specific dependency paths
115 115
116**Version 3.3.0** - 28/Jan/2020 - [All Unix](http://luarocks.org/releases/luarocks-3.3.0.tar.gz) - 116**Version 3.3.0** - 28/Jan/2020 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-3.3.0.tar.gz) -
117[Windows all-in-one executable](http://luarocks.org/releases/luarocks-3.3.0-windows-32.zip) - 117[Windows all-in-one executable](https://luarocks.github.io/luarocks/releases/luarocks-3.3.0-windows-32.zip) -
118[other files](http://luarocks.github.io/luarocks/releases) 118[other files](https://luarocks.github.io/luarocks/releases/)
119 119
120**Version 3.2.1** - 05/Sep/2019 - [All Unix](http://luarocks.org/releases/luarocks-3.2.1.tar.gz) - 120**Version 3.2.1** - 05/Sep/2019 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-3.2.1.tar.gz) -
121[Windows all-in-one executable](http://luarocks.org/releases/luarocks-3.2.1-windows-32.zip) - 121[Windows all-in-one executable](https://luarocks.github.io/luarocks/releases/luarocks-3.2.1-windows-32.zip) -
122[other files](http://luarocks.github.io/luarocks/releases) 122[other files](https://luarocks.github.io/luarocks/releases/)
123 123
124**Version 3.2.0** - 28/Aug/2019 - [All Unix](http://luarocks.org/releases/luarocks-3.2.0.tar.gz) - 124**Version 3.2.0** - 28/Aug/2019 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-3.2.0.tar.gz) -
125[Windows all-in-one executable](http://luarocks.org/releases/luarocks-3.2.0-windows-32.zip) - [other files](https://luarocks.github.io/luarocks/releases) 125[Windows all-in-one executable](https://luarocks.github.io/luarocks/releases/luarocks-3.2.0-windows-32.zip) - [other files](https://luarocks.github.io/luarocks/releases)
126 126
127* Bugfix: luarocks path does not change the order of pre-existing path items when prepending or appending to path variables 127* Bugfix: luarocks path does not change the order of pre-existing path items when prepending or appending to path variables
128* Bugfix: fix directory detection on the Mac 128* Bugfix: fix directory detection on the Mac
@@ -136,17 +136,17 @@
136* install.bat: Improved detection for Visual Studio 2017 and higher 136* install.bat: Improved detection for Visual Studio 2017 and higher
137* Bundled LuaSec in all-in-one binary bumped to version 0.8.1 137* Bundled LuaSec in all-in-one binary bumped to version 0.8.1
138 138
139**Version 3.1.3** - 06/Jun/2019 - [All Unix](http://luarocks.org/releases/luarocks-3.1.3.tar.gz) - 139**Version 3.1.3** - 06/Jun/2019 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-3.1.3.tar.gz) -
140[Windows all-in-one executable](http://luarocks.org/releases/luarocks-3.1.3-windows-32.zip) 140[Windows all-in-one executable](https://luarocks.github.io/luarocks/releases/luarocks-3.1.3-windows-32.zip)
141 141
142**Version 3.1.2** - 07/May/2019 - [All Unix](http://luarocks.org/releases/luarocks-3.1.2.tar.gz) - 142**Version 3.1.2** - 07/May/2019 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-3.1.2.tar.gz) -
143[Windows all-in-one executable](http://luarocks.org/releases/luarocks-3.1.2-windows-32.zip) 143[Windows all-in-one executable](https://luarocks.github.io/luarocks/releases/luarocks-3.1.2-windows-32.zip)
144 144
145**Version 3.1.1** - 06/May/2019 - [All Unix](http://luarocks.org/releases/luarocks-3.1.1.tar.gz) - 145**Version 3.1.1** - 06/May/2019 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-3.1.1.tar.gz) -
146[Windows all-in-one executable](http://luarocks.org/releases/luarocks-3.1.1-windows-32.zip) 146[Windows all-in-one executable](https://luarocks.github.io/luarocks/releases/luarocks-3.1.1-windows-32.zip)
147 147
148**Version 3.1.0** - 30/Apr/2019 - [All Unix](http://luarocks.org/releases/luarocks-3.1.0.tar.gz) - 148**Version 3.1.0** - 30/Apr/2019 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-3.1.0.tar.gz) -
149[Windows all-in-one executable](http://luarocks.org/releases/luarocks-3.1.0-windows-32.zip) 149[Windows all-in-one executable](https://luarocks.github.io/luarocks/releases/luarocks-3.1.0-windows-32.zip)
150 150
151* config: add git-like modes for setting and inspecting configuration 151* config: add git-like modes for setting and inspecting configuration
152* make: run rockspec patches on first `luarocks make` run and use a lockfile to avoid double patching 152* make: run rockspec patches on first `luarocks make` run and use a lockfile to avoid double patching
@@ -160,20 +160,20 @@
160* Improve Lua paths auto-detection 160* Improve Lua paths auto-detection
161* Various bugfixes 161* Various bugfixes
162 162
163**Version 3.0.4** - 30/Oct/2018 - [All Unix](http://luarocks.org/releases/luarocks-3.0.4.tar.gz) - 163**Version 3.0.4** - 30/Oct/2018 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-3.0.4.tar.gz) -
164[Windows all-in-one executable](http://luarocks.org/releases/luarocks-3.0.4-windows-32.zip) 164[Windows all-in-one executable](https://luarocks.github.io/luarocks/releases/luarocks-3.0.4-windows-32.zip)
165 165
166* Fork-free platform detection at startup 166* Fork-free platform detection at startup
167* Improved detection of the default rockspec in commands such as `luarocks test` 167* Improved detection of the default rockspec in commands such as `luarocks test`
168* Various minor bugfixes 168* Various minor bugfixes
169 169
170**Version 3.0.3** - 15/Sep/2018 - [All Unix](http://luarocks.org/releases/luarocks-3.0.3.tar.gz) - 170**Version 3.0.3** - 15/Sep/2018 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-3.0.3.tar.gz) -
171[Windows all-in-one executable](http://luarocks.org/releases/luarocks-3.0.3-windows-32.zip) 171[Windows all-in-one executable](https://luarocks.github.io/luarocks/releases/luarocks-3.0.3-windows-32.zip)
172 172
173* Minor bugfixes 173* Minor bugfixes
174 174
175**Version 3.0.2** - 07/Sep/2018 - [All Unix](http://luarocks.org/releases/luarocks-3.0.2.tar.gz) - 175**Version 3.0.2** - 07/Sep/2018 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-3.0.2.tar.gz) -
176[Windows all-in-one executable](http://luarocks.org/releases/luarocks-3.0.2-windows-32.zip) 176[Windows all-in-one executable](https://luarocks.github.io/luarocks/releases/luarocks-3.0.2-windows-32.zip)
177 177
178* Improvements in luarocks init, new --reset flag 178* Improvements in luarocks init, new --reset flag
179* write_rockspec: --lua-version renamed to --lua-versions 179* write_rockspec: --lua-version renamed to --lua-versions
@@ -182,16 +182,16 @@
182* Fix upgrade/downgrade when a single rock has clashing module filenames 182* Fix upgrade/downgrade when a single rock has clashing module filenames
183* Fix for autodetected external dependencies with non-alphabetic characters 183* Fix for autodetected external dependencies with non-alphabetic characters
184 184
185**Version 3.0.1** - 14/Aug/2018 - [All Unix](http://luarocks.org/releases/luarocks-3.0.1.tar.gz) - 185**Version 3.0.1** - 14/Aug/2018 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-3.0.1.tar.gz) -
186[Windows all-in-one executable](http://luarocks.org/releases/luarocks-3.0.1-windows-32.zip) 186[Windows all-in-one executable](https://luarocks.github.io/luarocks/releases/luarocks-3.0.1-windows-32.zip)
187 187
188* Numerous bugfixes 188* Numerous bugfixes
189* Store Lua location in config file, so that a user can run `luarocks init --lua-dir=/my/lua/location` and have that location remain active for that project 189* Store Lua location in config file, so that a user can run `luarocks init --lua-dir=/my/lua/location` and have that location remain active for that project
190* Various improvements to the Unix makefile, including $(DESTDIR) support and an uninstall rule 190* Various improvements to the Unix makefile, including $(DESTDIR) support and an uninstall rule
191* Autodetect FreeBSD-style include paths (/usr/include/lua5x/) 191* Autodetect FreeBSD-style include paths (/usr/include/lua5x/)
192 192
193**Version 3.0.0** - 25/Jul/2018 - [All Unix](http://luarocks.org/releases/luarocks-3.0.0.tar.gz) - 193**Version 3.0.0** - 25/Jul/2018 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-3.0.0.tar.gz) -
194[Windows batch installer](http://luarocks.org/releases/luarocks-3.0.0-win32.zip) 194[Windows batch installer](https://luarocks.github.io/luarocks/releases/luarocks-3.0.0-win32.zip)
195 195
196* New rockspec format 196* New rockspec format
197* New commands, including `luarocks init` for per-project workflows 197* New commands, including `luarocks init` for per-project workflows
@@ -201,8 +201,8 @@
201* User-visible changes, including some breaking changes 201* User-visible changes, including some breaking changes
202* Internal changes 202* Internal changes
203 203
204**Version 2.4.4** - 12/Mar/2018 - [All Unix](http://luarocks.org/releases/luarocks-2.4.4.tar.gz) - 204**Version 2.4.4** - 12/Mar/2018 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-2.4.4.tar.gz) -
205[Windows](http://luarocks.org/releases/luarocks-2.4.4-win32.zip) 205[Windows](https://luarocks.github.io/luarocks/releases/luarocks-2.4.4-win32.zip)
206 206
207* Do not halt a package deletion process when a file from the package is missing 207* Do not halt a package deletion process when a file from the package is missing
208* Updated bundled binaries in Windows package: Lua 5.1.5, Wget 1.19.4, 7zip 18.01 208* Updated bundled binaries in Windows package: Lua 5.1.5, Wget 1.19.4, 7zip 18.01
@@ -210,14 +210,14 @@
210* Fix detection of directories on Windows 210* Fix detection of directories on Windows
211* Fixes .def generation on Windows 211* Fixes .def generation on Windows
212 212
213**Version 2.4.3** - 12/Sep/2017 - [All Unix](http://luarocks.org/releases/luarocks-2.4.3.tar.gz) - 213**Version 2.4.3** - 12/Sep/2017 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-2.4.3.tar.gz) -
214[Windows](http://luarocks.org/releases/luarocks-2.4.3-win32.zip) 214[Windows](https://luarocks.github.io/luarocks/releases/luarocks-2.4.3-win32.zip)
215 215
216* Fixed display of pathnames in `luarocks show` 216* Fixed display of pathnames in `luarocks show`
217* Improved check for write permissions when installing 217* Improved check for write permissions when installing
218* Plus assorted bugfixes and improvements 218* Plus assorted bugfixes and improvements
219 219
220**Version 2.4.2** - 30/Nov/2016 - [All Unix](http://luarocks.org/releases/luarocks-2.4.2.tar.gz) - [Windows](http://luarocks.org/releases/luarocks-2.4.2-win32.zip) 220**Version 2.4.2** - 30/Nov/2016 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-2.4.2.tar.gz) - [Windows](https://luarocks.github.io/luarocks/releases/luarocks-2.4.2-win32.zip)
221 221
222* Fixed conflict resolution on deploy/delete 222* Fixed conflict resolution on deploy/delete
223* Improved dependency check messages 223* Improved dependency check messages
@@ -227,12 +227,12 @@
227* Relaxed Lua version detection to improve support for alternative implementations (e.g. Ravi) 227* Relaxed Lua version detection to improve support for alternative implementations (e.g. Ravi)
228* Plus assorted bugfixes and improvements 228* Plus assorted bugfixes and improvements
229 229
230**Version 2.4.1** - 06/Oct/2016 - [All Unix](http://luarocks.org/releases/luarocks-2.4.1.tar.gz) - [Windows](http://luarocks.org/releases/luarocks-2.4.1-win32.zip) 230**Version 2.4.1** - 06/Oct/2016 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-2.4.1.tar.gz) - [Windows](https://luarocks.github.io/luarocks/releases/luarocks-2.4.1-win32.zip)
231 231
232* Avoid coroutine use in luarocks.loader 232* Avoid coroutine use in luarocks.loader
233* Fix upgrade issues for very old versions 233* Fix upgrade issues for very old versions
234 234
235**Version 2.4.0** - 08/Sep/2016 - [All Unix](http://luarocks.org/releases/luarocks-2.4.0.tar.gz) - [Windows](http://luarocks.org/releases/luarocks-2.4.0-win32.zip) 235**Version 2.4.0** - 08/Sep/2016 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-2.4.0.tar.gz) - [Windows](https://luarocks.github.io/luarocks/releases/luarocks-2.4.0-win32.zip)
236 236
237* New test suite based on Busted; runs on Linux, OSX and Windows 237* New test suite based on Busted; runs on Linux, OSX and Windows
238* git+ssh:// fetch protocol 238* git+ssh:// fetch protocol
@@ -245,7 +245,7 @@
245* `remove` option --force=fast renamed to --force-fast 245* `remove` option --force=fast renamed to --force-fast
246* Plus assorted bugfixes and cleanups 246* Plus assorted bugfixes and cleanups
247 247
248**Version 2.3.0** - 09/Jan/2016 - [All Unix](http://luarocks.org/releases/luarocks-2.3.0.tar.gz) - [Windows](http://luarocks.org/releases/luarocks-2.3.0-win32.zip) 248**Version 2.3.0** - 09/Jan/2016 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-2.3.0.tar.gz) - [Windows](https://luarocks.github.io/luarocks/releases/luarocks-2.3.0-win32.zip)
249 249
250* Windows: major redesign of the install tree structure 250* Windows: major redesign of the install tree structure
251* Windows: Auto setup of MSVC environments 251* Windows: Auto setup of MSVC environments
@@ -259,7 +259,7 @@
259* Unix: Robustness improvement in configure script 259* Unix: Robustness improvement in configure script
260* Plus tweaks and bugfixes. See the changelog for details. 260* Plus tweaks and bugfixes. See the changelog for details.
261 261
262**Version 2.2.2** - 24/Apr/2015 - [All Unix](http://luarocks.org/releases/luarocks-2.2.2.tar.gz) - [Windows](http://luarocks.org/releases/luarocks-2.2.2-win32.zip) 262**Version 2.2.2** - 24/Apr/2015 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-2.2.2.tar.gz) - [Windows](https://luarocks.github.io/luarocks/releases/luarocks-2.2.2-win32.zip)
263 263
264* `luarocks build --only-deps` and `luarocks install --only-deps` for installing dependencies only 264* `luarocks build --only-deps` and `luarocks install --only-deps` for installing dependencies only
265* Mercurial support 265* Mercurial support
@@ -269,13 +269,13 @@
269* Improved Makefiles for handling simultaneous bootstrapped installations 269* Improved Makefiles for handling simultaneous bootstrapped installations
270* Various bugfixes 270* Various bugfixes
271 271
272**Version 2.2.1** - 17/Mar/2015 - [All Unix](http://luarocks.org/releases/luarocks-2.2.1.tar.gz) - [Windows](http://luarocks.org/releases/luarocks-2.2.1-win32.zip) 272**Version 2.2.1** - 17/Mar/2015 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-2.2.1.tar.gz) - [Windows](https://luarocks.github.io/luarocks/releases/luarocks-2.2.1-win32.zip)
273 273
274* Improved compatibility with Lua 5.3 274* Improved compatibility with Lua 5.3
275* `luarocks list --outdated` for listing modules with available upgrades 275* `luarocks list --outdated` for listing modules with available upgrades
276* Assorted bugfixes 276* Assorted bugfixes
277 277
278**Version 2.2.0** - 15/Aug/2014 - [All Unix](http://luarocks.org/releases/luarocks-2.2.0.tar.gz) - [Windows](http://luarocks.org/releases/luarocks-2.2.0-win32.zip) 278**Version 2.2.0** - 15/Aug/2014 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-2.2.0.tar.gz) - [Windows](https://luarocks.github.io/luarocks/releases/luarocks-2.2.0-win32.zip)
279 279
280* MoonRocks is the new default repository: http://rocks.moonscript.org - Rocks don't need to be sent to the LuaRocks mailing list anymore, you can upload them directly at the website or using... 280* MoonRocks is the new default repository: http://rocks.moonscript.org - Rocks don't need to be sent to the LuaRocks mailing list anymore, you can upload them directly at the website or using...
281* ...`luarocks upload` command for uploading rocks to MoonRocks via the command-line 281* ...`luarocks upload` command for uploading rocks to MoonRocks via the command-line
@@ -285,7 +285,7 @@
285* various improvements in `luarocks doc` command 285* various improvements in `luarocks doc` command
286* "git+http" transport for source.url 286* "git+http" transport for source.url
287 287
288**Version 2.1.2** - 10/Jan/2014 - [All Unix](http://luarocks.org/releases/luarocks-2.1.2.tar.gz) - [Windows](http://luarocks.org/releases/luarocks-2.1.2-win32.zip) 288**Version 2.1.2** - 10/Jan/2014 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-2.1.2.tar.gz) - [Windows](https://luarocks.github.io/luarocks/releases/luarocks-2.1.2-win32.zip)
289 289
290* major improvements in the Windows install.bat script. Now installs by default on standard Windows locations, while the old self-contained all-under-one-dir installation is still supported through an option flag. The documentation at luarocks.org didn't catch up with it yet, so please refer to "install /?" for instructions. 290* major improvements in the Windows install.bat script. Now installs by default on standard Windows locations, while the old self-contained all-under-one-dir installation is still supported through an option flag. The documentation at luarocks.org didn't catch up with it yet, so please refer to "install /?" for instructions.
291* a new command, "luarocks doc <module>" that tries to find any installed documentation. Due to the lack of documentation standards for Lua, this uses a few heuristics. Feedback on the feature is appreciated. 291* a new command, "luarocks doc <module>" that tries to find any installed documentation. Due to the lack of documentation standards for Lua, this uses a few heuristics. Feedback on the feature is appreciated.
@@ -298,7 +298,7 @@
298* Improved Lua detection in Unix installer 298* Improved Lua detection in Unix installer
299* plus assorted bugfixes 299* plus assorted bugfixes
300 300
301**Version 2.1.1** - 29/Oct/2013 - [All Unix](http://luarocks.org/releases/luarocks-2.1.1.tar.gz) - [Windows](http://luarocks.org/releases/luarocks-2.1.1-win32.zip) 301**Version 2.1.1** - 29/Oct/2013 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-2.1.1.tar.gz) - [Windows](https://luarocks.github.io/luarocks/releases/luarocks-2.1.1-win32.zip)
302 302
303* Remote manifests are now compressed and locally cached, making commands faster 303* Remote manifests are now compressed and locally cached, making commands faster
304* New command "write_rockspec" which generates rockspec file templates 304* New command "write_rockspec" which generates rockspec file templates
@@ -309,7 +309,7 @@
309* Improved error checking 309* Improved error checking
310* plus assorted bugfixes 310* plus assorted bugfixes
311 311
312**Version 2.1.0** - 09/Aug/2013 - [All Unix](http://luarocks.org/releases/luarocks-2.1.0.tar.gz) - [Windows](http://luarocks.org/releases/luarocks-2.1.0-win32.zip) 312**Version 2.1.0** - 09/Aug/2013 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-2.1.0.tar.gz) - [Windows](https://luarocks.github.io/luarocks/releases/luarocks-2.1.0-win32.zip)
313 313
314* accesses manifest-{5.1,5.2} in remote servers to provide properly filtered results for Lua 5.1 or 5.2 314* accesses manifest-{5.1,5.2} in remote servers to provide properly filtered results for Lua 5.1 or 5.2
315* Remove old versions when installing a new one and old versions are no longer needed to honor dependencies. 315* Remove old versions when installing a new one and old versions are no longer needed to honor dependencies.
@@ -322,7 +322,7 @@
322* friendlier error messages 322* friendlier error messages
323* plus bugfixes 323* plus bugfixes
324 324
325**Version 2.0.13** - 16/Apr/2013 - [All Unix](http://luarocks.org/releases/luarocks-2.0.13.tar.gz) - [Windows](http://luarocks.org/releases/luarocks-2.0.13-win32.zip) 325**Version 2.0.13** - 16/Apr/2013 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-2.0.13.tar.gz) - [Windows](https://luarocks.github.io/luarocks/releases/luarocks-2.0.13-win32.zip)
326 326
327* Support for Lua 5.2 is no longer marked as experimental 327* Support for Lua 5.2 is no longer marked as experimental
328* Support for installing two instances of LuaRocks, for Lua 5.1 and 5.2, in parallel 328* Support for installing two instances of LuaRocks, for Lua 5.1 and 5.2, in parallel
@@ -332,7 +332,7 @@
332* Improvements in 'luarocks new_version` command for autogenerating updated rockspecs 332* Improvements in 'luarocks new_version` command for autogenerating updated rockspecs
333* 'luarocks remove' command accepts rock and rockspec filenames 333* 'luarocks remove' command accepts rock and rockspec filenames
334 334
335**Version 2.0.12** - 05/Nov/2012 - [All Unix](http://luarocks.org/releases/luarocks-2.0.12.tar.gz) - [Windows](http://luarocks.org/releases/luarocks-2.0.12-win32.zip) 335**Version 2.0.12** - 05/Nov/2012 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-2.0.12.tar.gz) - [Windows](https://luarocks.github.io/luarocks/releases/luarocks-2.0.12-win32.zip)
336 336
337* "Dependencies mode" selection to configure how to work with multiple local trees 337* "Dependencies mode" selection to configure how to work with multiple local trees
338* New command "purge" that erases a local tree 338* New command "purge" that erases a local tree
@@ -341,7 +341,7 @@
341* Code cleanups, removal of dead code 341* Code cleanups, removal of dead code
342* Fixes regressions on Mac and Windows 342* Fixes regressions on Mac and Windows
343 343
344**Version 2.0.11** - 21/Sep/2012 - [All Unix](http://luarocks.org/releases/luarocks-2.0.11.tar.gz) - [Windows](http://luarocks.org/releases/luarocks-2.0.11-win32.zip) 344**Version 2.0.11** - 21/Sep/2012 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-2.0.11.tar.gz) - [Windows](https://luarocks.github.io/luarocks/releases/luarocks-2.0.11-win32.zip)
345 345
346* Work around LuaSocket crash when given proxy URLs without the scheme part 346* Work around LuaSocket crash when given proxy URLs without the scheme part
347* Save manifest file in a single fs operation to make it more atomic 347* Save manifest file in a single fs operation to make it more atomic
@@ -358,7 +358,7 @@
358* Fix builtin build mode on Mac OSX < 10.5 358* Fix builtin build mode on Mac OSX < 10.5
359* Improve configure tests for Debian-based platforms 359* Improve configure tests for Debian-based platforms
360 360
361**Version 2.0.10** - 12/Jul/2012 - [All Unix](http://luarocks.org/releases/luarocks-2.0.10.tar.gz) - [Windows](http://luarocks.org/releases/luarocks-2.0.10-win32.zip) 361**Version 2.0.10** - 12/Jul/2012 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-2.0.10.tar.gz) - [Windows](https://luarocks.github.io/luarocks/releases/luarocks-2.0.10-win32.zip)
362 362
363* Fix fetching Git tags/branches 363* Fix fetching Git tags/branches
364* Fix strictness issue with parameter of io.open 364* Fix strictness issue with parameter of io.open
@@ -367,7 +367,7 @@
367* Cleanup of .svn dir in svn-based rocks 367* Cleanup of .svn dir in svn-based rocks
368* Improvement for 'make bootstrap' 368* Improvement for 'make bootstrap'
369 369
370**Version 2.0.9** - 31/May/2012 - [All Unix](http://luarocks.org/releases/luarocks-2.0.9.tar.gz) - [Windows](http://luarocks.org/releases/luarocks-2.0.9-win32.zip) 370**Version 2.0.9** - 31/May/2012 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-2.0.9.tar.gz) - [Windows](https://luarocks.github.io/luarocks/releases/luarocks-2.0.9-win32.zip)
371 371
372* Experimental support for Lua 5.2 (auto-detection and explicit --lua-version flag in configure) 372* Experimental support for Lua 5.2 (auto-detection and explicit --lua-version flag in configure)
373* Solaris support and BSD fixes 373* Solaris support and BSD fixes
@@ -378,7 +378,7 @@
378* Nicer-looking persisted tables 378* Nicer-looking persisted tables
379* Assorted bugfixes 379* Assorted bugfixes
380 380
381**Version 2.0.8** - 29/Feb/2012 - [All Unix](http://luarocks.org/releases/luarocks-2.0.8.tar.gz) - [Windows](http://luarocks.org/releases/luarocks-2.0.8-win32.zip) 381**Version 2.0.8** - 29/Feb/2012 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-2.0.8.tar.gz) - [Windows](https://luarocks.github.io/luarocks/releases/luarocks-2.0.8-win32.zip)
382 382
383* Fix in CMake build backend 383* Fix in CMake build backend
384* Fix handling error condition of --pack-binary-rock 384* Fix handling error condition of --pack-binary-rock
@@ -392,13 +392,13 @@
392* New binaries from GnuWin32 shipped in Win32 zip 392* New binaries from GnuWin32 shipped in Win32 zip
393* Nicer-looking help 393* Nicer-looking help
394 394
395**Version 2.0.7.1** - 10/Jan/2012 - [All Unix](http://luarocks.org/releases/luarocks-2.0.7.1.tar.gz) - [Windows](http://luarocks.org/releases/luarocks-2.0.7.1-win32.zip) 395**Version 2.0.7.1** - 10/Jan/2012 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-2.0.7.1.tar.gz) - [Windows](https://luarocks.github.io/luarocks/releases/luarocks-2.0.7.1-win32.zip)
396 396
397* Fix installation of files in build operation 397* Fix installation of files in build operation
398* Deprecate --to and --from, use --server and --tree instead 398* Deprecate --to and --from, use --server and --tree instead
399* Improved documentation, thanks to LDoc 399* Improved documentation, thanks to LDoc
400 400
401**Version 2.0.7** - 10/Dec/2011 - [All Unix](http://luarocks.org/releases/luarocks-2.0.7.tar.gz) - [Windows](http://luarocks.org/releases/luarocks-2.0.7-win32.zip) 401**Version 2.0.7** - 10/Dec/2011 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-2.0.7.tar.gz) - [Windows](https://luarocks.github.io/luarocks/releases/luarocks-2.0.7-win32.zip)
402 402
403* Quieter git checkout 403* Quieter git checkout
404* --only-sources flag to restrict download of sources from a single domain 404* --only-sources flag to restrict download of sources from a single domain
@@ -408,7 +408,7 @@
408* More logical names for flags: --tree, --server 408* More logical names for flags: --tree, --server
409* Improved documentation 409* Improved documentation
410 410
411**Version 2.0.6** - 04/Oct/2011 - [All Unix](http://luarocks.org/releases/luarocks-2.0.6.tar.gz) - [Windows](http://luarocks.org/releases/luarocks-2.0.6-win32.zip) 411**Version 2.0.6** - 04/Oct/2011 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-2.0.6.tar.gz) - [Windows](https://luarocks.github.io/luarocks/releases/luarocks-2.0.6-win32.zip)
412 412
413* Fixes for rockspecs missing 'description' or the contents of 'source.url' 413* Fixes for rockspecs missing 'description' or the contents of 'source.url'
414* Escape fixes for LuaJIT/Metalua 414* Escape fixes for LuaJIT/Metalua
@@ -418,7 +418,7 @@
418* Flag for experimental extensions 418* Flag for experimental extensions
419* Plus assorted bugfixes 419* Plus assorted bugfixes
420 420
421**Version 2.0.5** - 17/Aug/2011 - [All Unix](http://luarocks.org/releases/luarocks-2.0.5.tar.gz) - [Windows](http://luarocks.org/releases/luarocks-2.0.5-win32.zip) 421**Version 2.0.5** - 17/Aug/2011 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-2.0.5.tar.gz) - [Windows](https://luarocks.github.io/luarocks/releases/luarocks-2.0.5-win32.zip)
422 422
423* External commands are overridable through variables or config.lua 423* External commands are overridable through variables or config.lua
424* No longer uses print() - output goes to stdout, errors to stderr 424* No longer uses print() - output goes to stdout, errors to stderr
@@ -426,11 +426,11 @@
426* Avoid relying on the $PWD variable 426* Avoid relying on the $PWD variable
427* Code cleanups 427* Code cleanups
428 428
429**Version 2.0.4.1** - 17/Jan/2011 - [All Unix](http://luarocks.org/releases/luarocks-2.0.4.1.tar.gz) - [Windows](http://luarocks.org/releases/luarocks-2.0.4.1-win32.zip) 429**Version 2.0.4.1** - 17/Jan/2011 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-2.0.4.1.tar.gz) - [Windows](https://luarocks.github.io/luarocks/releases/luarocks-2.0.4.1-win32.zip)
430 430
431* Minor bugfix release 431* Minor bugfix release
432 432
433**Version 2.0.4** - 23/Dec/2010 - [All Unix](http://luarocks.org/releases/luarocks-2.0.4.tar.gz) - [Windows](http://luarocks.org/releases/luarocks-2.0.4-win32.zip) 433**Version 2.0.4** - 23/Dec/2010 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-2.0.4.tar.gz) - [Windows](https://luarocks.github.io/luarocks/releases/luarocks-2.0.4-win32.zip)
434 434
435* Command "remove" for luarocks-admin 435* Command "remove" for luarocks-admin
436* Check for write permissions in repository and suggest --local 436* Check for write permissions in repository and suggest --local
@@ -444,7 +444,7 @@
444* Stable sort of persisted files such as manifests 444* Stable sort of persisted files such as manifests
445* Plus assorted bugfixes 445* Plus assorted bugfixes
446 446
447**Version 2.0.3** - 14/Sep/2010 - [All Unix](http://luarocks.org/releases/luarocks-2.0.3.tar.gz) - [Windows](http://luarocks.org/releases/luarocks-2.0.3-win32.zip) 447**Version 2.0.3** - 14/Sep/2010 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-2.0.3.tar.gz) - [Windows](https://luarocks.github.io/luarocks/releases/luarocks-2.0.3-win32.zip)
448 448
449* Check for permissions and warn user instead of just installing in local tree 449* Check for permissions and warn user instead of just installing in local tree
450* --local flag for operations on the local tree 450* --local flag for operations on the local tree
@@ -459,14 +459,14 @@
459* new command: "luarocks path" to make it easy to export Lua env variables 459* new command: "luarocks path" to make it easy to export Lua env variables
460* plus assorted bugfixes 460* plus assorted bugfixes
461 461
462**Version 2.0.2** - 01/Apr/2010 - [All Unix](http://luarocks.org/releases/luarocks-2.0.2.tar.gz) - [Windows](http://luarocks.org/releases/luarocks-2.0.2-win32.zip) 462**Version 2.0.2** - 01/Apr/2010 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-2.0.2.tar.gz) - [Windows](https://luarocks.github.io/luarocks/releases/luarocks-2.0.2-win32.zip)
463 463
464* use LuaSocket if available for downloading files 464* use LuaSocket if available for downloading files
465* use LuaZip if available for unzipping files 465* use LuaZip if available for unzipping files
466* MinGW support in builtin build backend 466* MinGW support in builtin build backend
467* updated installation files for Windows, including a LuaForWindows-compatible package 467* updated installation files for Windows, including a LuaForWindows-compatible package
468 468
469**Version 2.0.1** - 27/Oct/2009 - [All Unix](http://luarocks.org/releases/luarocks-2.0.1.tar.gz) - [Windows](http://luarocks.org/releases/luarocks-2.0.1-win32.zip) 469**Version 2.0.1** - 27/Oct/2009 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-2.0.1.tar.gz) - [Windows](https://luarocks.github.io/luarocks/releases/luarocks-2.0.1-win32.zip)
470 470
471* luarocks.cfg is no longer edited during installation; a separate site-local luarocks.config module is created. 471* luarocks.cfg is no longer edited during installation; a separate site-local luarocks.config module is created.
472* robustness fixes and improvements for luarocks.add 472* robustness fixes and improvements for luarocks.add
@@ -474,7 +474,7 @@
474* install LuaRocks as a rock 474* install LuaRocks as a rock
475* plus assorted bugfixes 475* plus assorted bugfixes
476 476
477**Version 2.0** - 17/Oct/2009 - [All Unix](http://luarocks.org/releases/luarocks-2.0.tar.gz) - [Windows](http://luarocks.org/releases/luarocks-2.0-win32.zip) 477**Version 2.0** - 17/Oct/2009 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-2.0.tar.gz) - [Windows](https://luarocks.github.io/luarocks/releases/luarocks-2.0-win32.zip)
478 478
479* module files are now deployed to standard Lua-style paths 479* module files are now deployed to standard Lua-style paths
480* new package loader module luarocks.loader, superseding the require()-override module luarocks.require 480* new package loader module luarocks.loader, superseding the require()-override module luarocks.require
@@ -484,7 +484,7 @@
484* new commands for luarocks-admin: "add", to upload rocks to a repository, and "refresh_cache", to refresh the cache used by the "add" command 484* new commands for luarocks-admin: "add", to upload rocks to a repository, and "refresh_cache", to refresh the cache used by the "add" command
485* plus a number of cleanups and bugfixes 485* plus a number of cleanups and bugfixes
486 486
487**Version 1.0.1** - 13/Mar/2009 - [All Unix](http://luarocks.org/releases/luarocks-1.0.1.tar.gz) - [Windows](http://luarocks.org/releases/luarocks-1.0.1-win32.zip) 487**Version 1.0.1** - 13/Mar/2009 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-1.0.1.tar.gz) - [Windows](https://luarocks.github.io/luarocks/releases/luarocks-1.0.1-win32.zip)
488 488
489* Improve portability in usage of Unix tools 489* Improve portability in usage of Unix tools
490* Allow use of local rocks servers in the --from flag 490* Allow use of local rocks servers in the --from flag
@@ -492,7 +492,7 @@
492* Fix build of the 'builtin' backend under Windows 492* Fix build of the 'builtin' backend under Windows
493* Support for the 'md5' binary as a MD5 checker 493* Support for the 'md5' binary as a MD5 checker
494 494
495**Version 1.0** - 01/Sep/2008 - [All Unix](http://luarocks.org/releases/luarocks-1.0.tar.gz) - [Windows](http://luarocks.org/releases/luarocks-1.0-win32.zip) 495**Version 1.0** - 01/Sep/2008 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-1.0.tar.gz) - [Windows](https://luarocks.github.io/luarocks/releases/luarocks-1.0-win32.zip)
496 496
497* Add support for post-install hooks 497* Add support for post-install hooks
498* Path helper scripts for binaries on Windows systems. 498* Path helper scripts for binaries on Windows systems.
@@ -503,7 +503,7 @@
503* Generate index.html when building a manifest for a repository. 503* Generate index.html when building a manifest for a repository.
504* Plus assorted bugfixes. 504* Plus assorted bugfixes.
505 505
506**Version 0.6** - 30/Jun/2008 - [All Unix](http://luarocks.org/releases/luarocks-0.6.tar.gz) - [Windows](http://luarocks.org/releases/luarocks-0.6-win32.zip) 506**Version 0.6** - 30/Jun/2008 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-0.6.tar.gz) - [Windows](https://luarocks.github.io/luarocks/releases/luarocks-0.6-win32.zip)
507 507
508* Check external deps on binary installs. Allow rockspecs to specify supported platforms. Support platform-agnostic specification of external deps files. Allow overriding external deps subdirs. 508* Check external deps on binary installs. Allow rockspecs to specify supported platforms. Support platform-agnostic specification of external deps files. Allow overriding external deps subdirs.
509* Structured build systems in subdirectories. 509* Structured build systems in subdirectories.
@@ -515,21 +515,21 @@
515* "module" build type renamed to "builtin"; "cvs_tag" and "cvs_module" renamed to "tag" and "module". Old names still supported for compatibility for now, to be cleaned up by 1.0. 515* "module" build type renamed to "builtin"; "cvs_tag" and "cvs_module" renamed to "tag" and "module". Old names still supported for compatibility for now, to be cleaned up by 1.0.
516* Plus many bugfixes. 516* Plus many bugfixes.
517 517
518**Version 0.5.2** - 13/May/2008 - [All Unix](http://luarocks.org/releases/luarocks-0.5.2.tar.gz) - [Windows](http://luarocks.org/releases/luarocks-0.5.2-win32.zip) 518**Version 0.5.2** - 13/May/2008 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-0.5.2.tar.gz) - [Windows](https://luarocks.github.io/luarocks/releases/luarocks-0.5.2-win32.zip)
519 519
520* Fixes problems with removal of read-only files on Windows 520* Fixes problems with removal of read-only files on Windows
521* Fixes issues with external libraries on the 'module' build type on Windows 521* Fixes issues with external libraries on the 'module' build type on Windows
522* Fixes the --only-from flag 522* Fixes the --only-from flag
523* Renames the luarocks.config module to luarocks.cfg avoiding conflict's with the user configuration file config.lua 523* Renames the luarocks.config module to luarocks.cfg avoiding conflict's with the user configuration file config.lua
524 524
525**Version 0.5.1** - 25/Apr/2008 - [All Unix](http://luarocks.org/releases/luarocks-0.5.1.tar.gz) - [Windows](http://luarocks.org/releases/luarocks-0.5.1-win32.zip) 525**Version 0.5.1** - 25/Apr/2008 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-0.5.1.tar.gz) - [Windows](https://luarocks.github.io/luarocks/releases/luarocks-0.5.1-win32.zip)
526 526
527* Added function get_rock_from_module in luarocks.require, allowing apps to inspect which rock they're getting modules from. 527* Added function get_rock_from_module in luarocks.require, allowing apps to inspect which rock they're getting modules from.
528* Added variables LUA, LIB_EXTENSION and OBJ_EXTENSION, now available for rockspec authors. 528* Added variables LUA, LIB_EXTENSION and OBJ_EXTENSION, now available for rockspec authors.
529* Assorted bugfixes, especially for the Windows package. 529* Assorted bugfixes, especially for the Windows package.
530* Build system improvements: add DESTDIR variable to makefile to make things easier for distros packaging LuaRocks. 530* Build system improvements: add DESTDIR variable to makefile to make things easier for distros packaging LuaRocks.
531 531
532**Version 0.5** - 03/Apr/2008 - [All Unix](http://luarocks.org/releases/luarocks-0.5.tar.gz) - [Windows](http://luarocks.org/releases/luarocks-0.5-win32.zip) 532**Version 0.5** - 03/Apr/2008 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-0.5.tar.gz) - [Windows](https://luarocks.github.io/luarocks/releases/luarocks-0.5-win32.zip)
533 533
534* New flags in the ./configure on Unix (see configure --help) and install.bat on Windows (see install.bat /?) 534* New flags in the ./configure on Unix (see configure --help) and install.bat on Windows (see install.bat /?)
535* Support for multiple local repositories. By extension, LuaRocks features more intuitive configuration defaults (it installs rocks to $PREFIX/lib/luarocks if you have the permission, and to $HOME/.luarocks if you don't). 535* Support for multiple local repositories. By extension, LuaRocks features more intuitive configuration defaults (it installs rocks to $PREFIX/lib/luarocks if you have the permission, and to $HOME/.luarocks if you don't).
@@ -538,27 +538,27 @@
538* 'unpack' command allows unpacking binary and pure-Lua rocks, for inspecting. 538* 'unpack' command allows unpacking binary and pure-Lua rocks, for inspecting.
539* Plus assorted bugfixes. 539* Plus assorted bugfixes.
540 540
541**Version 0.4.3** - 03/Mar/2008 - [All Unix](http://luarocks.org/releases/luarocks-0.4.3.tar.gz) - [Windows](http://luarocks.org/releases/luarocks-0.4.3-win32.zip) 541**Version 0.4.3** - 03/Mar/2008 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-0.4.3.tar.gz) - [Windows](https://luarocks.github.io/luarocks/releases/luarocks-0.4.3-win32.zip)
542 542
543* The MD5 check feature added in 0.4.2 can now use openssl instead of md5sum (making LuaRocks friendlier to OSX). 543* The MD5 check feature added in 0.4.2 can now use openssl instead of md5sum (making LuaRocks friendlier to OSX).
544* Added a license file in the tarball (making LuaRocks friendlier to Debian). 544* Added a license file in the tarball (making LuaRocks friendlier to Debian).
545* Plus assorted bugfixes. 545* Plus assorted bugfixes.
546 546
547**Version 0.4.2** - 09/Feb/2008 - [All Unix](http://luarocks.org/releases/luarocks-0.4.2.tar.gz) - [Windows](http://luarocks.org/releases/luarocks-0.4.2-win32.zip) 547**Version 0.4.2** - 09/Feb/2008 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-0.4.2.tar.gz) - [Windows](https://luarocks.github.io/luarocks/releases/luarocks-0.4.2-win32.zip)
548 548
549* Support .lua files directly in the URL field. 549* Support .lua files directly in the URL field.
550* Perform check of MD5 checksum in sources. 550* Perform check of MD5 checksum in sources.
551* Accept plain strings in all fields of the source table of the "module" build type. 551* Accept plain strings in all fields of the source table of the "module" build type.
552* Bugfixes. 552* Bugfixes.
553 553
554**Version 0.4.1** - 25/Jan/2008 - [All Unix](http://luarocks.org/releases/luarocks-0.4.1.tar.gz) - [Windows](http://luarocks.org/releases/luarocks-0.4.1-win32.zip) 554**Version 0.4.1** - 25/Jan/2008 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-0.4.1.tar.gz) - [Windows](https://luarocks.github.io/luarocks/releases/luarocks-0.4.1-win32.zip)
555 555
556* New configure/install.bat flags for setting scripts dir and local repository dir. 556* New configure/install.bat flags for setting scripts dir and local repository dir.
557* "unpack" command now supports rockspec files as well. 557* "unpack" command now supports rockspec files as well.
558* Complete code documentation. 558* Complete code documentation.
559* Many assorted bugfixes. 559* Many assorted bugfixes.
560 560
561**Version 0.4** - 18/Jan/2008 - [All Unix](http://luarocks.org/releases/luarocks-0.4.tar.gz) - [Windows](http://luarocks.org/releases/luarocks-0.4-win32.zip) 561**Version 0.4** - 18/Jan/2008 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-0.4.tar.gz) - [Windows](https://luarocks.github.io/luarocks/releases/luarocks-0.4-win32.zip)
562 562
563* Adds the "unpack" command for debugging rocks (.src.rock only at this point). 563* Adds the "unpack" command for debugging rocks (.src.rock only at this point).
564* Support curl as an alternative downloader for OSX, removing the dependency on wget. 564* Support curl as an alternative downloader for OSX, removing the dependency on wget.
@@ -569,29 +569,29 @@
569* Performance improvements. 569* Performance improvements.
570* Many assorted bugfixes. 570* Many assorted bugfixes.
571 571
572**Version 0.3.2** - 21/Dec/2007 - [All Unix](http://luarocks.org/releases/luarocks-0.3.2.tar.gz) - [Windows](http://luarocks.org/releases/luarocks-0.3.2-win32.zip) 572**Version 0.3.2** - 21/Dec/2007 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-0.3.2.tar.gz) - [Windows](https://luarocks.github.io/luarocks/releases/luarocks-0.3.2-win32.zip)
573 573
574* Support for patching and inclusion of extra files (such as Makefiles) through a rockspec. 574* Support for patching and inclusion of extra files (such as Makefiles) through a rockspec.
575* Support "platforms" overrides table for dependencies, external dependencies and source URLs. 575* Support "platforms" overrides table for dependencies, external dependencies and source URLs.
576* Many assorted bugfixes. 576* Many assorted bugfixes.
577 577
578**Version 0.3.1** - 18/Dec/2007 - [All Unix](http://luarocks.org/releases/luarocks-0.3.1.tar.gz) - [Windows](http://luarocks.org/releases/luarocks-0.3.1-win32.zip) 578**Version 0.3.1** - 18/Dec/2007 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-0.3.1.tar.gz) - [Windows](https://luarocks.github.io/luarocks/releases/luarocks-0.3.1-win32.zip)
579 579
580* Improved search: results now feature separate lists for source and binary rocks. 580* Improved search: results now feature separate lists for source and binary rocks.
581* Windows support for the "module" build type (using Visual Studio). 581* Windows support for the "module" build type (using Visual Studio).
582* Many assorted bugfixes. 582* Many assorted bugfixes.
583 583
584**Version 0.3** - 04/Dec/2007 - [All Unix](http://luarocks.org/releases/luarocks-0.3.tar.gz) - [Windows](http://luarocks.org/releases/luarocks-0.3-win32.zip) 584**Version 0.3** - 04/Dec/2007 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-0.3.tar.gz) - [Windows](https://luarocks.github.io/luarocks/releases/luarocks-0.3-win32.zip)
585 585
586* Includes Windows package. 586* Includes Windows package.
587* Adds the "module" build type. 587* Adds the "module" build type.
588* Performance improvements. 588* Performance improvements.
589 589
590**Version 0.2** - 23/Oct/2007 - [All Unix](http://luarocks.org/releases/luarocks-0.2.tar.gz) 590**Version 0.2** - 23/Oct/2007 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-0.2.tar.gz)
591 591
592* Bugfixes and improvements to build infrastructure. 592* Bugfixes and improvements to build infrastructure.
593* Adds the LuaRocks "remove" command. 593* Adds the LuaRocks "remove" command.
594 594
595**Version 0.1** - 09/Aug/2007 - [All Unix](http://luarocks.org/releases/luarocks-0.1.tar.gz) 595**Version 0.1** - 09/Aug/2007 - [All Unix](https://luarocks.github.io/luarocks/releases/luarocks-0.1.tar.gz)
596 596
597* Initial release. 597* Initial release.
diff --git a/docs/rock_file_format.md b/docs/rock_file_format.md
index 10748bde..e3fcf3b7 100644
--- a/docs/rock_file_format.md
+++ b/docs/rock_file_format.md
@@ -34,8 +34,8 @@ Additionally, it must contain the sources:
34 34
35A binary rock must contain at its root two files. For a rock called `myrock-1.0-1.linux-x86.rock` they would be called: 35A binary rock must contain at its root two files. For a rock called `myrock-1.0-1.linux-x86.rock` they would be called:
36 36
37* `myrock-1.0-1.rockspec` - the [rockspec file](Rockspec-format) in the archive root 37* `myrock-1.0-1.rockspec` - the [rockspec file](rockspec_format.md) in the archive root
38* `rock_manifest` - a [rock manifest file](Rock-manifest-file-format) 38* `rock_manifest` - a [rock manifest file](rock_manifest_file_format.md)
39 39
40These standard directories are handled specially: 40These standard directories are handled specially:
41 41
diff --git a/docs/rockspec_format.md b/docs/rockspec_format.md
index edb35632..3a7dfd3d 100644
--- a/docs/rockspec_format.md
+++ b/docs/rockspec_format.md
@@ -11,28 +11,28 @@ For number fields, strings are accepted and converted using tonumber().
11 * **description.summary** (string) - A one-line description of the package. Example: "Network support for the Lua language" 11 * **description.summary** (string) - A one-line description of the package. Example: "Network support for the Lua language"
12 * **description.detailed** (string) - A longer description of the package. Example: "LuaSocket is a Lua extension library that is composed by two parts: a C core that provides support for the TCP and UDP transport layers, and a set of Lua modules that add support for functionality commonly needed by applications that deal with the Internet." 12 * **description.detailed** (string) - A longer description of the package. Example: "LuaSocket is a Lua extension library that is composed by two parts: a C core that provides support for the TCP and UDP transport layers, and a set of Lua modules that add support for functionality commonly needed by applications that deal with the Internet."
13 * **description.license** (string) - The license used by the package. A short name, such as "MIT" and "GPL-2" is preferred. Software using the same license as Lua 5.x should use "MIT". 13 * **description.license** (string) - The license used by the package. A short name, such as "MIT" and "GPL-2" is preferred. Software using the same license as Lua 5.x should use "MIT".
14 * **description.homepage** (string) - An URL for the project. This is not the URL for the tarball, but the address of a website. Example: "http://github.com/keplerproject/rings" 14 * **description.homepage** (string) - An URL for the project. This is not the URL for the tarball, but the address of a website. Example: "https://github.com/keplerproject/rings"
15 * **description.issues_url** (string) (since 3.0) - An URL for the project's issue tracker. Example: "http://github.com/keplerproject/rings/issues" 15 * **description.issues_url** (string) (since 3.0) - An URL for the project's issue tracker. Example: "https://github.com/keplerproject/rings/issues"
16 * **description.maintainer** (string) - Contact information for the _rockspec_ maintainer (which may or may not be the package maintainer -- contact for the package maintainer can usually be obtained through the address in the homepage field). Example: "John Doe &lt;john@doe.gov&gt;" 16 * **description.maintainer** (string) - Contact information for the _rockspec_ maintainer (which may or may not be the package maintainer -- contact for the package maintainer can usually be obtained through the address in the homepage field). Example: "John Doe &lt;john@doe.gov&gt;"
17 * **description.labels** (array of strings) (since 3.0) - A list of short strings that specify labels for categorization of this rock. See the list of labels at [http://luarocks.org] for inspiration. Example: { "crypto", "network", "tls", "https" } 17 * **description.labels** (array of strings) (since 3.0) - A list of short strings that specify labels for categorization of this rock. See the list of labels at [https://luarocks.org] for inspiration. Example: { "crypto", "network", "tls", "https" }
18 18
19## Dependency information 19## Dependency information
20 20
21Dependencies are represented in LuaRocks through strings with a package name followed by a comma-separated list of constraints. Each constraint consists of an operator and a version number. In this string format, version numbers are represented as naturally as possible, like they are used by upstream projects (e.g. "2.0beta3"). Internally, LuaRocks converts them to a purely numeric representation, allowing comparison following some common sense heuristics. The precise specification of the comparison criteria is the source code of the luarocks.deps module, but the test/test_deps.lua file included with LuaRocks provides some insights on what these criteria are. 21Dependencies are represented in LuaRocks through strings with a package name followed by a comma-separated list of constraints. Each constraint consists of an operator and a version number. In this string format, version numbers are represented as naturally as possible, like they are used by upstream projects (e.g. "2.0beta3"). Internally, LuaRocks converts them to a purely numeric representation, allowing comparison following some common sense heuristics. The precise specification of the comparison criteria is the source code of the luarocks.deps module, but the test/test_deps.lua file included with LuaRocks provides some insights on what these criteria are.
22 22
23* **supported_platforms** (array of strings) - If this array is not present, the rock is assumed to be portable to any platform. If present, this should contain strings containing LuaRocks platform identifiers, optionally preceded by a "!" to indicate a negative match. If only negative entries are listed, the rock is assumed to be portable to any platform except those listed. If any positive entry exists, then at least one entry must match positively to the currently running platform. Currently supported LuaRocks platform identifiers are: "unix", "windows", "win32", "cygwin", "macosx", "linux", "freebsd". Platforms may have more than one valid identifier; e.g. Linux defines both "unix" and "linux". Note that, as of 0.6, Cygwin under Windows defines {"unix", "cygwin"} but *not* "windows". 23* **supported_platforms** (array of strings) - If this array is not present, the rock is assumed to be portable to any platform. If present, this should contain strings containing LuaRocks platform identifiers, optionally preceded by a "!" to indicate a negative match. If only negative entries are listed, the rock is assumed to be portable to any platform except those listed. If any positive entry exists, then at least one entry must match positively to the currently running platform. Currently supported LuaRocks platform identifiers are: "unix", "windows", "win32", "cygwin", "macosx", "linux", "freebsd". Platforms may have more than one valid identifier; e.g. Linux defines both "unix" and "linux". Note that, as of 0.6, Cygwin under Windows defines {"unix", "cygwin"} but *not* "windows".
24* **dependencies** (array of strings) - Each string represents a package this rock depends on, containing a package name followed by a comma-separated list of constraints. Example: `{"lfs >= 1.0, &lt; 2.0"}`. Accepted operators are the relational operators of Lua: `==` `~=` `<` `>` `<=` `>=` , as well as a special operator, `~>`, inspired by the "pessimistic operator" of RubyGems (`"~> 2"` means `">= 2, < 3"`; `"~> 2.4"` means `">= 2.4, < 2.5"`). The absence of an operator means an implicit `==` (i.e., `"lfs 1.0"` is the same as `"lfs == 1.0"`). "lua" is an special dependency name; it matches not a rock, but the version of Lua in use. Supports [per-platform overrides](platform-overrides). 24* **dependencies** (array of strings) - Each string represents a package this rock depends on, containing a package name followed by a comma-separated list of constraints. Example: `{"lfs >= 1.0, &lt; 2.0"}`. Accepted operators are the relational operators of Lua: `==` `~=` `<` `>` `<=` `>=` , as well as a special operator, `~>`, inspired by the "pessimistic operator" of RubyGems (`"~> 2"` means `">= 2, < 3"`; `"~> 2.4"` means `">= 2.4, < 2.5"`). The absence of an operator means an implicit `==` (i.e., `"lfs 1.0"` is the same as `"lfs == 1.0"`). "lua" is an special dependency name; it matches not a rock, but the version of Lua in use. Supports [per-platform overrides](platform_overrides.md).
25* **build_dependencies** (array of strings) (since 3.0) - Dependencies that apply at build-time only, but not when installing binary (`.<platform>.rock`) or pure-Lua (`.all.rock`) rocks. Each string represents a package this rock depends on at build time, containing a package name followed by a comma-separated list of constraints. The syntax in the same as the `dependencies` field. Supports [per-platform overrides](platform-overrides). 25* **build_dependencies** (array of strings) (since 3.0) - Dependencies that apply at build-time only, but not when installing binary (`.<platform>.rock`) or pure-Lua (`.all.rock`) rocks. Each string represents a package this rock depends on at build time, containing a package name followed by a comma-separated list of constraints. The syntax in the same as the `dependencies` field. Supports [per-platform overrides](platform_overrides.md).
26* **external_dependencies** (table) - For each key in the external_dependencies table in the rockspec file, four variables available to the build rules are created: <i>key</i>_DIR, <i>key</i>_BINDIR, <i>key</i>_INCDIR and <i>key</i>_LIBDIR. These are not overwritten if already set (e.g. by the LuaRocks config file or through the command-line). The base prefix for these can be given explicitly setting <i>key</i>_DIR in the config file or through the command-line, or implicitly, defaulting to the value of default_external_deps_dir, set in the config file. Values in the external_dependencies table are tables that may contain a "header" or a "library" field, with filenames to be tested for existence. Example: `{ EXPAT = { header = "expat.h" } }` -- on Unix, this will check that EXPAT_DIR/include/expat.h exists and will create variables accordingly. You can also use platform overrides or specify files of external dependencies in a [platform-agnostic manner](platform-agnostic-external-dependencies). Supports [per-platform overrides](platform-overrides). 26* **external_dependencies** (table) - For each key in the external_dependencies table in the rockspec file, four variables available to the build rules are created: <i>key</i>_DIR, <i>key</i>_BINDIR, <i>key</i>_INCDIR and <i>key</i>_LIBDIR. These are not overwritten if already set (e.g. by the LuaRocks config file or through the command-line). The base prefix for these can be given explicitly setting <i>key</i>_DIR in the config file or through the command-line, or implicitly, defaulting to the value of default_external_deps_dir, set in the config file. Values in the external_dependencies table are tables that may contain a "header" or a "library" field, with filenames to be tested for existence. Example: `{ EXPAT = { header = "expat.h" } }` -- on Unix, this will check that EXPAT_DIR/include/expat.h exists and will create variables accordingly. You can also use platform overrides or specify files of external dependencies in a [platform-agnostic manner](platform_agnostic_external_dependencies.md). Supports [per-platform overrides](platform_overrides.md).
27* **test_dependencies** (array of strings) (since 3.0) - Dependencies that apply at test-time only, that is, only needed when running `luarocks test`. Each string represents a package this rock depends on at test time, containing a package name followed by a comma-separated list of constraints. The syntax in the same as the `dependencies` field. Supports [per-platform overrides](platform-overrides). 27* **test_dependencies** (array of strings) (since 3.0) - Dependencies that apply at test-time only, that is, only needed when running `luarocks test`. Each string represents a package this rock depends on at test time, containing a package name followed by a comma-separated list of constraints. The syntax in the same as the `dependencies` field. Supports [per-platform overrides](platform_overrides.md).
28 28
29## Build rules 29## Build rules
30 30
31* **source** (table, mandatory field) - Contains information on how to fetch sources to build this rock. Supports [per-platform overrides](platform-overrides). 31* **source** (table, mandatory field) - Contains information on how to fetch sources to build this rock. Supports [per-platform overrides](platform_overrides.md).
32 * **source.url** (string, mandatory field) - the URL of the package source archive. Examples: "http://github.com/downloads/keplerproject/wsapi/wsapi-1.3.4.tar.gz", "git://github.com/keplerproject/wsapi.git". Note that this field is ignored when running [luarocks make](luarocks_make.md), which uses the sources from your current directory instead. Different protocols are supported: 32 * **source.url** (string, mandatory field) - the URL of the package source archive. Examples: "https://github.com/keplerproject/wsapi/archive/v1.3.4.tar.gz, "git://github.com/keplerproject/wsapi.git". Note that this field is ignored when running [luarocks make](luarocks_make.md), which uses the sources from your current directory instead. Different protocols are supported:
33 * `cvs://` - for the CVS source control manager 33 * `cvs://` - for the CVS source control manager
34 * `file://` - for URLs in the local filesystem (note that for Unix paths, the root slash is the third slash, resulting in paths like `"file:///full/path/filename"` 34 * `file://` - for URLs in the local filesystem to archive file (note that for Unix paths, the root slash is the third slash, resulting in paths like `"file:///full/path/filename"`)
35 * `ftp://` - for FTP URLs 35 * `ftp://` - for FTP URLs to archive file
36 * `git://` - for the Git source control manager 36 * `git://` - for the Git source control manager
37 * `git+file://` - for the Git source control manager when using repositories that need file:// URLs 37 * `git+file://` - for the Git source control manager when using repositories that need file:// URLs
38 * `git+http://` - for the Git source control manager when using repositories that need http:// URLs 38 * `git+http://` - for the Git source control manager when using repositories that need http:// URLs
@@ -42,18 +42,18 @@ Dependencies are represented in LuaRocks through strings with a package name fol
42 * `hg+http://` - for the Mercurial source control manager using repositories that need http:// URLs 42 * `hg+http://` - for the Mercurial source control manager using repositories that need http:// URLs
43 * `hg+https://` - for the Mercurial source control manager using repositories that need https:// URLs 43 * `hg+https://` - for the Mercurial source control manager using repositories that need https:// URLs
44 * `hg+ssh://` - for the Mercurial source control manager using repositories that need SSH login 44 * `hg+ssh://` - for the Mercurial source control manager using repositories that need SSH login
45 * `http://` - for HTTP URLs 45 * `http://` - for HTTP URLs to archive file
46 * `https://` - for HTTPS URLs 46 * `https://` - for HTTPS URLs to archive file
47 * `hg://` - for the Mercurial source control manager
48 * `sscm://` - for the SurroundSCM source control manager 47 * `sscm://` - for the SurroundSCM source control manager
49 * `svn://` - for the Subversion source control manager 48 * `svn://` - for the Subversion source control manager
49 * **Important:** A source control manager URL cannot start with `http://` `https://`, `ftp://` or `file://`. For example, `https://github.com/keplerproject/wsapi.git` is incorrect, even though it works perfectly fine with `git clone`. The correct one is `git+https://github.com/keplerproject/wsapi.git`. Also note that only for GitHub URLs `git://` is being automatically handled internally as if it was `git+https://`. This is due to preserve backwards compatibility while still working with [GitHub's increased default security](https://github.blog/security/application-security/improving-git-protocol-security-github/) measures in blocking insecure connection types.
50 * **source.md5** (string) - the MD5 sum for the source archive. Example: "9ca22fd9f9413b54802d3d40b38c4e5c" 50 * **source.md5** (string) - the MD5 sum for the source archive. Example: "9ca22fd9f9413b54802d3d40b38c4e5c"
51 * **source.file** (string) - the filename of the source archive. Can be omitted if it can be inferred from the `source.url` field. Example: "luasocket-2.0.1.tar.gz" 51 * **source.file** (string) - the filename of the source archive. Can be omitted if it can be inferred from the `source.url` field. Example: "luasocket-2.0.1.tar.gz"
52 * **source.dir** (string) - the name of the directory created when the source archive is unpacked. Can be omitted if it can be inferred from the `source.file` field. Example: "luasocket-2.0.1" 52 * **source.dir** (string) - the name of the directory created when the source archive is unpacked. Can be omitted if it can be inferred from the `source.file` field. Example: "luasocket-2.0.1"
53 * **source.tag** (string) - for SCM-based URL protocols such as "cvs://" and "git://", this field can be used to specify a tag for checking out sources. Example: "HEAD" (For compatibility reasons, `source.cvs_tag` is also accepted.) 53 * **source.tag** (string) - for SCM-based URL protocols such as "cvs://" and "git://", this field can be used to specify a tag for checking out sources. Example: "HEAD" (For compatibility reasons, `source.cvs_tag` is also accepted.)
54 * **source.branch** (string) - for SCM-based URL protocols such as "git://", this field can be used to specify a branch for checking out sources. Example: "v1.0" 54 * **source.branch** (string) - for SCM-based URL protocols such as "git://", this field can be used to specify a branch for checking out sources. Example: "v1.0"
55 * **source.module** (string) - for SCM-based URL protocols such as "cvs://" and "git://", this field can be used to specify the module to be checked out. Can be omitted if it is the same as the basename of the `source.url` field. Example: "cgilua" (For compatibility reasons, `source.cvs_module` is also accepted.) 55 * **source.module** (string) - for SCM-based URL protocols such as "cvs://" and "git://", this field can be used to specify the module to be checked out. Can be omitted if it is the same as the basename of the `source.url` field. Example: "cgilua" (For compatibility reasons, `source.cvs_module` is also accepted.)
56* **build** (table) - Contains all information pertaining _how_ to build a rock. Supports [per-platform overrides](platform-overrides). 56* **build** (table) - Contains all information pertaining _how_ to build a rock. Supports [per-platform overrides](platform_overrides.md).
57 * **build.type** (string) - The LuaRocks build back-end to use. Example: "make" 57 * **build.type** (string) - The LuaRocks build back-end to use. Example: "make"
58 * **build.install** (table) - For packages which don't provide means to install modules and expect the user to copy the .lua or library files by hand to the proper locations. This table contains categories of files. Each category is itself a table, where the array part is a list of filenames to be copied. For module directories only, in the hash part, other keys are identifiers in Lua module format, to indicate which subdirectory the file should be copied to. For example, `build.install.lua = {["foo.bar"] = "src/bar.lua"}` will copy src/bar.lua to the foo directory under the rock's Lua files directory. The available categories are: 58 * **build.install** (table) - For packages which don't provide means to install modules and expect the user to copy the .lua or library files by hand to the proper locations. This table contains categories of files. Each category is itself a table, where the array part is a list of filenames to be copied. For module directories only, in the hash part, other keys are identifiers in Lua module format, to indicate which subdirectory the file should be copied to. For example, `build.install.lua = {["foo.bar"] = "src/bar.lua"}` will copy src/bar.lua to the foo directory under the rock's Lua files directory. The available categories are:
59 * **build.install.lua** (table) - Lua modules written in Lua. 59 * **build.install.lua** (table) - Lua modules written in Lua.
@@ -110,7 +110,7 @@ Variables expected by this back-end to be provided by the configuration file are
110 * **LIBFLAG** - Flag to be passed to the C compiler to instruct it to build a shared library. 110 * **LIBFLAG** - Flag to be passed to the C compiler to instruct it to build a shared library.
111 111
112These are usually detected by the default configuration, but can be overridden 112These are usually detected by the default configuration, but can be overridden
113by the [configuration file](config-file-format). See also the "Variables" 113by the [configuration file](config_file_format.md). See also the "Variables"
114section of the [Config file format](config_file_format.md) specification for 114section of the [Config file format](config_file_format.md) specification for
115other path variables that are defined automatically, and the documentation on 115other path variables that are defined automatically, and the documentation on
116the `external_dependencies` entry above for variables that are automatically 116the `external_dependencies` entry above for variables that are automatically
@@ -142,7 +142,7 @@ A null build back-end. Indicates that there is no build to perform.
142 142
143## Test rules 143## Test rules
144 144
145* **test** (table) - Contains all information pertaining how to test a rock. Supports [per-platform overrides](platform-overrides). 145* **test** (table) - Contains all information pertaining how to test a rock. Supports [per-platform overrides](platform_overrides.md).
146 146
147### Test back-ends 147### Test back-ends
148 148
diff --git a/docs/welcome.md b/docs/welcome.md
index 300f740e..9ac3ebe5 100644
--- a/docs/welcome.md
+++ b/docs/welcome.md
@@ -1,4 +1,4 @@
1<p align="center"><img src="http://luarocks.github.io/luarocks/luarocks.png" width="500px"/></p> 1<p align="center"><img src="https://luarocks.github.io/luarocks/luarocks.png" width="500px"/></p>
2 2
3This is **LuaRocks**, the package manager for the Lua programming language. 3This is **LuaRocks**, the package manager for the Lua programming language.
4 4
diff --git a/gen/gen.h b/gen/gen.h
index e598d2bc..9505d728 100644
--- a/gen/gen.h
+++ b/gen/gen.h
@@ -139,19 +139,19 @@ static const Gen GEN[] = {
139 }, 139 },
140 { 140 {
141 .module_name = "luarocks.test.busted", 141 .module_name = "luarocks.test.busted",
142 .source_name = "src/luarocks/test/busted.lua", 142 .source_name = "src/luarocks/test/busted.tl",
143 .length = 1432, 143 .length = 1432,
144 .code = luarocks_gen_luarocks_test_busted, 144 .code = luarocks_gen_luarocks_test_busted,
145 }, 145 },
146 { 146 {
147 .module_name = "luarocks.test.command", 147 .module_name = "luarocks.test.command",
148 .source_name = "src/luarocks/test/command.lua", 148 .source_name = "src/luarocks/test/command.tl",
149 .length = 1530, 149 .length = 1530,
150 .code = luarocks_gen_luarocks_test_command, 150 .code = luarocks_gen_luarocks_test_command,
151 }, 151 },
152 { 152 {
153 .module_name = "luarocks.deplocks", 153 .module_name = "luarocks.deplocks",
154 .source_name = "src/luarocks/deplocks.lua", 154 .source_name = "src/luarocks/deplocks.tl",
155 .length = 2334, 155 .length = 2334,
156 .code = luarocks_gen_luarocks_deplocks, 156 .code = luarocks_gen_luarocks_deplocks,
157 }, 157 },
@@ -163,295 +163,295 @@ static const Gen GEN[] = {
163 }, 163 },
164 { 164 {
165 .module_name = "luarocks.fetch", 165 .module_name = "luarocks.fetch",
166 .source_name = "src/luarocks/fetch.lua", 166 .source_name = "src/luarocks/fetch.tl",
167 .length = 15550, 167 .length = 15550,
168 .code = luarocks_gen_luarocks_fetch, 168 .code = luarocks_gen_luarocks_fetch,
169 }, 169 },
170 { 170 {
171 .module_name = "luarocks.search", 171 .module_name = "luarocks.search",
172 .source_name = "src/luarocks/search.lua", 172 .source_name = "src/luarocks/search.tl",
173 .length = 11026, 173 .length = 11026,
174 .code = luarocks_gen_luarocks_search, 174 .code = luarocks_gen_luarocks_search,
175 }, 175 },
176 { 176 {
177 .module_name = "luarocks.config", 177 .module_name = "luarocks.config",
178 .source_name = "src/luarocks/config.lua", 178 .source_name = "src/luarocks/config.tl",
179 .length = 954, 179 .length = 954,
180 .code = luarocks_gen_luarocks_config, 180 .code = luarocks_gen_luarocks_config,
181 }, 181 },
182 { 182 {
183 .module_name = "luarocks.repos", 183 .module_name = "luarocks.repos",
184 .source_name = "src/luarocks/repos.lua", 184 .source_name = "src/luarocks/repos.tl",
185 .length = 19776, 185 .length = 19776,
186 .code = luarocks_gen_luarocks_repos, 186 .code = luarocks_gen_luarocks_repos,
187 }, 187 },
188 { 188 {
189 .module_name = "luarocks.test", 189 .module_name = "luarocks.test",
190 .source_name = "src/luarocks/test.lua", 190 .source_name = "src/luarocks/test.tl",
191 .length = 2879, 191 .length = 2879,
192 .code = luarocks_gen_luarocks_test, 192 .code = luarocks_gen_luarocks_test,
193 }, 193 },
194 { 194 {
195 .module_name = "luarocks.dir", 195 .module_name = "luarocks.dir",
196 .source_name = "src/luarocks/dir.lua", 196 .source_name = "src/luarocks/dir.tl",
197 .length = 1345, 197 .length = 1345,
198 .code = luarocks_gen_luarocks_dir, 198 .code = luarocks_gen_luarocks_dir,
199 }, 199 },
200 { 200 {
201 .module_name = "luarocks.deps", 201 .module_name = "luarocks.deps",
202 .source_name = "src/luarocks/deps.lua", 202 .source_name = "src/luarocks/deps.tl",
203 .length = 24246, 203 .length = 24246,
204 .code = luarocks_gen_luarocks_deps, 204 .code = luarocks_gen_luarocks_deps,
205 }, 205 },
206 { 206 {
207 .module_name = "luarocks.build", 207 .module_name = "luarocks.build",
208 .source_name = "src/luarocks/build.lua", 208 .source_name = "src/luarocks/build.tl",
209 .length = 14170, 209 .length = 14170,
210 .code = luarocks_gen_luarocks_build, 210 .code = luarocks_gen_luarocks_build,
211 }, 211 },
212 { 212 {
213 .module_name = "luarocks.fetch.git_http", 213 .module_name = "luarocks.fetch.git_http",
214 .source_name = "src/luarocks/fetch/git_http.lua", 214 .source_name = "src/luarocks/fetch/git_http.tl",
215 .length = 509, 215 .length = 509,
216 .code = luarocks_gen_luarocks_fetch_git_http, 216 .code = luarocks_gen_luarocks_fetch_git_http,
217 }, 217 },
218 { 218 {
219 .module_name = "luarocks.fetch.hg_https", 219 .module_name = "luarocks.fetch.hg_https",
220 .source_name = "src/luarocks/fetch/hg_https.lua", 220 .source_name = "src/luarocks/fetch/hg_https.tl",
221 .length = 48, 221 .length = 48,
222 .code = luarocks_gen_luarocks_fetch_hg_https, 222 .code = luarocks_gen_luarocks_fetch_hg_https,
223 }, 223 },
224 { 224 {
225 .module_name = "luarocks.fetch.svn", 225 .module_name = "luarocks.fetch.svn",
226 .source_name = "src/luarocks/fetch/svn.lua", 226 .source_name = "src/luarocks/fetch/svn.tl",
227 .length = 1928, 227 .length = 1928,
228 .code = luarocks_gen_luarocks_fetch_svn, 228 .code = luarocks_gen_luarocks_fetch_svn,
229 }, 229 },
230 { 230 {
231 .module_name = "luarocks.fetch.hg", 231 .module_name = "luarocks.fetch.hg",
232 .source_name = "src/luarocks/fetch/hg.lua", 232 .source_name = "src/luarocks/fetch/hg.tl",
233 .length = 1811, 233 .length = 1811,
234 .code = luarocks_gen_luarocks_fetch_hg, 234 .code = luarocks_gen_luarocks_fetch_hg,
235 }, 235 },
236 { 236 {
237 .module_name = "luarocks.fetch.git", 237 .module_name = "luarocks.fetch.git",
238 .source_name = "src/luarocks/fetch/git.lua", 238 .source_name = "src/luarocks/fetch/git.tl",
239 .length = 4321, 239 .length = 4321,
240 .code = luarocks_gen_luarocks_fetch_git, 240 .code = luarocks_gen_luarocks_fetch_git,
241 }, 241 },
242 { 242 {
243 .module_name = "luarocks.fetch.hg_http", 243 .module_name = "luarocks.fetch.hg_http",
244 .source_name = "src/luarocks/fetch/hg_http.lua", 244 .source_name = "src/luarocks/fetch/hg_http.tl",
245 .length = 494, 245 .length = 494,
246 .code = luarocks_gen_luarocks_fetch_hg_http, 246 .code = luarocks_gen_luarocks_fetch_hg_http,
247 }, 247 },
248 { 248 {
249 .module_name = "luarocks.fetch.cvs", 249 .module_name = "luarocks.fetch.cvs",
250 .source_name = "src/luarocks/fetch/cvs.lua", 250 .source_name = "src/luarocks/fetch/cvs.tl",
251 .length = 1518, 251 .length = 1518,
252 .code = luarocks_gen_luarocks_fetch_cvs, 252 .code = luarocks_gen_luarocks_fetch_cvs,
253 }, 253 },
254 { 254 {
255 .module_name = "luarocks.fetch.git_file", 255 .module_name = "luarocks.fetch.git_file",
256 .source_name = "src/luarocks/fetch/git_file.lua", 256 .source_name = "src/luarocks/fetch/git_file.tl",
257 .length = 503, 257 .length = 503,
258 .code = luarocks_gen_luarocks_fetch_git_file, 258 .code = luarocks_gen_luarocks_fetch_git_file,
259 }, 259 },
260 { 260 {
261 .module_name = "luarocks.fetch.git_https", 261 .module_name = "luarocks.fetch.git_https",
262 .source_name = "src/luarocks/fetch/git_https.lua", 262 .source_name = "src/luarocks/fetch/git_https.tl",
263 .length = 48, 263 .length = 48,
264 .code = luarocks_gen_luarocks_fetch_git_https, 264 .code = luarocks_gen_luarocks_fetch_git_https,
265 }, 265 },
266 { 266 {
267 .module_name = "luarocks.fetch.git_ssh", 267 .module_name = "luarocks.fetch.git_ssh",
268 .source_name = "src/luarocks/fetch/git_ssh.lua", 268 .source_name = "src/luarocks/fetch/git_ssh.tl",
269 .length = 643, 269 .length = 643,
270 .code = luarocks_gen_luarocks_fetch_git_ssh, 270 .code = luarocks_gen_luarocks_fetch_git_ssh,
271 }, 271 },
272 { 272 {
273 .module_name = "luarocks.fetch.hg_ssh", 273 .module_name = "luarocks.fetch.hg_ssh",
274 .source_name = "src/luarocks/fetch/hg_ssh.lua", 274 .source_name = "src/luarocks/fetch/hg_ssh.tl",
275 .length = 48, 275 .length = 48,
276 .code = luarocks_gen_luarocks_fetch_hg_ssh, 276 .code = luarocks_gen_luarocks_fetch_hg_ssh,
277 }, 277 },
278 { 278 {
279 .module_name = "luarocks.fetch.sscm", 279 .module_name = "luarocks.fetch.sscm",
280 .source_name = "src/luarocks/fetch/sscm.lua", 280 .source_name = "src/luarocks/fetch/sscm.tl",
281 .length = 1373, 281 .length = 1373,
282 .code = luarocks_gen_luarocks_fetch_sscm, 282 .code = luarocks_gen_luarocks_fetch_sscm,
283 }, 283 },
284 { 284 {
285 .module_name = "luarocks.cmd", 285 .module_name = "luarocks.cmd",
286 .source_name = "src/luarocks/cmd.lua", 286 .source_name = "src/luarocks/cmd.tl",
287 .length = 25438, 287 .length = 25438,
288 .code = luarocks_gen_luarocks_cmd, 288 .code = luarocks_gen_luarocks_cmd,
289 }, 289 },
290 { 290 {
291 .module_name = "luarocks.admin.cmd.refresh_cache", 291 .module_name = "luarocks.admin.cmd.refresh_cache",
292 .source_name = "src/luarocks/admin/cmd/refresh_cache.lua", 292 .source_name = "src/luarocks/admin/cmd/refresh_cache.tl",
293 .length = 968, 293 .length = 968,
294 .code = luarocks_gen_luarocks_admin_cmd_refresh_cache, 294 .code = luarocks_gen_luarocks_admin_cmd_refresh_cache,
295 }, 295 },
296 { 296 {
297 .module_name = "luarocks.admin.cmd.make_manifest", 297 .module_name = "luarocks.admin.cmd.make_manifest",
298 .source_name = "src/luarocks/admin/cmd/make_manifest.lua", 298 .source_name = "src/luarocks/admin/cmd/make_manifest.tl",
299 .length = 1687, 299 .length = 1687,
300 .code = luarocks_gen_luarocks_admin_cmd_make_manifest, 300 .code = luarocks_gen_luarocks_admin_cmd_make_manifest,
301 }, 301 },
302 { 302 {
303 .module_name = "luarocks.admin.cmd.remove", 303 .module_name = "luarocks.admin.cmd.remove",
304 .source_name = "src/luarocks/admin/cmd/remove.lua", 304 .source_name = "src/luarocks/admin/cmd/remove.tl",
305 .length = 3270, 305 .length = 3270,
306 .code = luarocks_gen_luarocks_admin_cmd_remove, 306 .code = luarocks_gen_luarocks_admin_cmd_remove,
307 }, 307 },
308 { 308 {
309 .module_name = "luarocks.admin.cmd.add", 309 .module_name = "luarocks.admin.cmd.add",
310 .source_name = "src/luarocks/admin/cmd/add.lua", 310 .source_name = "src/luarocks/admin/cmd/add.tl",
311 .length = 4545, 311 .length = 4545,
312 .code = luarocks_gen_luarocks_admin_cmd_add, 312 .code = luarocks_gen_luarocks_admin_cmd_add,
313 }, 313 },
314 { 314 {
315 .module_name = "luarocks.admin.index", 315 .module_name = "luarocks.admin.index",
316 .source_name = "src/luarocks/admin/index.lua", 316 .source_name = "src/luarocks/admin/index.tl",
317 .length = 5779, 317 .length = 5779,
318 .code = luarocks_gen_luarocks_admin_index, 318 .code = luarocks_gen_luarocks_admin_index,
319 }, 319 },
320 { 320 {
321 .module_name = "luarocks.admin.cache", 321 .module_name = "luarocks.admin.cache",
322 .source_name = "src/luarocks/admin/cache.lua", 322 .source_name = "src/luarocks/admin/cache.tl",
323 .length = 3293, 323 .length = 3293,
324 .code = luarocks_gen_luarocks_admin_cache, 324 .code = luarocks_gen_luarocks_admin_cache,
325 }, 325 },
326 { 326 {
327 .module_name = "luarocks.cmd.search", 327 .module_name = "luarocks.cmd.search",
328 .source_name = "src/luarocks/cmd/search.lua", 328 .source_name = "src/luarocks/cmd/search.tl",
329 .length = 2918, 329 .length = 2918,
330 .code = luarocks_gen_luarocks_cmd_search, 330 .code = luarocks_gen_luarocks_cmd_search,
331 }, 331 },
332 { 332 {
333 .module_name = "luarocks.cmd.config", 333 .module_name = "luarocks.cmd.config",
334 .source_name = "src/luarocks/cmd/config.lua", 334 .source_name = "src/luarocks/cmd/config.tl",
335 .length = 11873, 335 .length = 11873,
336 .code = luarocks_gen_luarocks_cmd_config, 336 .code = luarocks_gen_luarocks_cmd_config,
337 }, 337 },
338 { 338 {
339 .module_name = "luarocks.cmd.write_rockspec", 339 .module_name = "luarocks.cmd.write_rockspec",
340 .source_name = "src/luarocks/cmd/write_rockspec.lua", 340 .source_name = "src/luarocks/cmd/write_rockspec.tl",
341 .length = 13181, 341 .length = 13181,
342 .code = luarocks_gen_luarocks_cmd_write_rockspec, 342 .code = luarocks_gen_luarocks_cmd_write_rockspec,
343 }, 343 },
344 { 344 {
345 .module_name = "luarocks.cmd.unpack", 345 .module_name = "luarocks.cmd.unpack",
346 .source_name = "src/luarocks/cmd/unpack.lua", 346 .source_name = "src/luarocks/cmd/unpack.tl",
347 .length = 4970, 347 .length = 4970,
348 .code = luarocks_gen_luarocks_cmd_unpack, 348 .code = luarocks_gen_luarocks_cmd_unpack,
349 }, 349 },
350 { 350 {
351 .module_name = "luarocks.cmd.test", 351 .module_name = "luarocks.cmd.test",
352 .source_name = "src/luarocks/cmd/test.lua", 352 .source_name = "src/luarocks/cmd/test.tl",
353 .length = 1819, 353 .length = 1819,
354 .code = luarocks_gen_luarocks_cmd_test, 354 .code = luarocks_gen_luarocks_cmd_test,
355 }, 355 },
356 { 356 {
357 .module_name = "luarocks.cmd.show", 357 .module_name = "luarocks.cmd.show",
358 .source_name = "src/luarocks/cmd/show.lua", 358 .source_name = "src/luarocks/cmd/show.tl",
359 .length = 11438, 359 .length = 11438,
360 .code = luarocks_gen_luarocks_cmd_show, 360 .code = luarocks_gen_luarocks_cmd_show,
361 }, 361 },
362 { 362 {
363 .module_name = "luarocks.cmd.build", 363 .module_name = "luarocks.cmd.build",
364 .source_name = "src/luarocks/cmd/build.lua", 364 .source_name = "src/luarocks/cmd/build.tl",
365 .length = 6034, 365 .length = 6034,
366 .code = luarocks_gen_luarocks_cmd_build, 366 .code = luarocks_gen_luarocks_cmd_build,
367 }, 367 },
368 { 368 {
369 .module_name = "luarocks.cmd.remove", 369 .module_name = "luarocks.cmd.remove",
370 .source_name = "src/luarocks/cmd/remove.lua", 370 .source_name = "src/luarocks/cmd/remove.tl",
371 .length = 2356, 371 .length = 2356,
372 .code = luarocks_gen_luarocks_cmd_remove, 372 .code = luarocks_gen_luarocks_cmd_remove,
373 }, 373 },
374 { 374 {
375 .module_name = "luarocks.cmd.install", 375 .module_name = "luarocks.cmd.install",
376 .source_name = "src/luarocks/cmd/install.lua", 376 .source_name = "src/luarocks/cmd/install.tl",
377 .length = 8529, 377 .length = 8529,
378 .code = luarocks_gen_luarocks_cmd_install, 378 .code = luarocks_gen_luarocks_cmd_install,
379 }, 379 },
380 { 380 {
381 .module_name = "luarocks.cmd.purge", 381 .module_name = "luarocks.cmd.purge",
382 .source_name = "src/luarocks/cmd/purge.lua", 382 .source_name = "src/luarocks/cmd/purge.tl",
383 .length = 2421, 383 .length = 2421,
384 .code = luarocks_gen_luarocks_cmd_purge, 384 .code = luarocks_gen_luarocks_cmd_purge,
385 }, 385 },
386 { 386 {
387 .module_name = "luarocks.cmd.init", 387 .module_name = "luarocks.cmd.init",
388 .source_name = "src/luarocks/cmd/init.lua", 388 .source_name = "src/luarocks/cmd/init.tl",
389 .length = 7199, 389 .length = 7199,
390 .code = luarocks_gen_luarocks_cmd_init, 390 .code = luarocks_gen_luarocks_cmd_init,
391 }, 391 },
392 { 392 {
393 .module_name = "luarocks.cmd.upload", 393 .module_name = "luarocks.cmd.upload",
394 .source_name = "src/luarocks/cmd/upload.lua", 394 .source_name = "src/luarocks/cmd/upload.tl",
395 .length = 4509, 395 .length = 4509,
396 .code = luarocks_gen_luarocks_cmd_upload, 396 .code = luarocks_gen_luarocks_cmd_upload,
397 }, 397 },
398 { 398 {
399 .module_name = "luarocks.cmd.make", 399 .module_name = "luarocks.cmd.make",
400 .source_name = "src/luarocks/cmd/make.lua", 400 .source_name = "src/luarocks/cmd/make.tl",
401 .length = 6528, 401 .length = 6528,
402 .code = luarocks_gen_luarocks_cmd_make, 402 .code = luarocks_gen_luarocks_cmd_make,
403 }, 403 },
404 { 404 {
405 .module_name = "luarocks.cmd.download", 405 .module_name = "luarocks.cmd.download",
406 .source_name = "src/luarocks/cmd/download.lua", 406 .source_name = "src/luarocks/cmd/download.tl",
407 .length = 1551, 407 .length = 1551,
408 .code = luarocks_gen_luarocks_cmd_download, 408 .code = luarocks_gen_luarocks_cmd_download,
409 }, 409 },
410 { 410 {
411 .module_name = "luarocks.cmd.lint", 411 .module_name = "luarocks.cmd.lint",
412 .source_name = "src/luarocks/cmd/lint.lua", 412 .source_name = "src/luarocks/cmd/lint.tl",
413 .length = 1386, 413 .length = 1386,
414 .code = luarocks_gen_luarocks_cmd_lint, 414 .code = luarocks_gen_luarocks_cmd_lint,
415 }, 415 },
416 { 416 {
417 .module_name = "luarocks.cmd.list", 417 .module_name = "luarocks.cmd.list",
418 .source_name = "src/luarocks/cmd/list.lua", 418 .source_name = "src/luarocks/cmd/list.tl",
419 .length = 3530, 419 .length = 3530,
420 .code = luarocks_gen_luarocks_cmd_list, 420 .code = luarocks_gen_luarocks_cmd_list,
421 }, 421 },
422 { 422 {
423 .module_name = "luarocks.cmd.pack", 423 .module_name = "luarocks.cmd.pack",
424 .source_name = "src/luarocks/cmd/pack.lua", 424 .source_name = "src/luarocks/cmd/pack.tl",
425 .length = 1253, 425 .length = 1253,
426 .code = luarocks_gen_luarocks_cmd_pack, 426 .code = luarocks_gen_luarocks_cmd_pack,
427 }, 427 },
428 { 428 {
429 .module_name = "luarocks.cmd.doc", 429 .module_name = "luarocks.cmd.doc",
430 .source_name = "src/luarocks/cmd/doc.lua", 430 .source_name = "src/luarocks/cmd/doc.tl",
431 .length = 5485, 431 .length = 5485,
432 .code = luarocks_gen_luarocks_cmd_doc, 432 .code = luarocks_gen_luarocks_cmd_doc,
433 }, 433 },
434 { 434 {
435 .module_name = "luarocks.cmd.which", 435 .module_name = "luarocks.cmd.which",
436 .source_name = "src/luarocks/cmd/which.lua", 436 .source_name = "src/luarocks/cmd/which.tl",
437 .length = 1121, 437 .length = 1121,
438 .code = luarocks_gen_luarocks_cmd_which, 438 .code = luarocks_gen_luarocks_cmd_which,
439 }, 439 },
440 { 440 {
441 .module_name = "luarocks.cmd.path", 441 .module_name = "luarocks.cmd.path",
442 .source_name = "src/luarocks/cmd/path.lua", 442 .source_name = "src/luarocks/cmd/path.tl",
443 .length = 3442, 443 .length = 3442,
444 .code = luarocks_gen_luarocks_cmd_path, 444 .code = luarocks_gen_luarocks_cmd_path,
445 }, 445 },
446 { 446 {
447 .module_name = "luarocks.cmd.new_version", 447 .module_name = "luarocks.cmd.new_version",
448 .source_name = "src/luarocks/cmd/new_version.lua", 448 .source_name = "src/luarocks/cmd/new_version.tl",
449 .length = 7237, 449 .length = 7237,
450 .code = luarocks_gen_luarocks_cmd_new_version, 450 .code = luarocks_gen_luarocks_cmd_new_version,
451 }, 451 },
452 { 452 {
453 .module_name = "luarocks.remove", 453 .module_name = "luarocks.remove",
454 .source_name = "src/luarocks/remove.lua", 454 .source_name = "src/luarocks/remove.tl",
455 .length = 4447, 455 .length = 4447,
456 .code = luarocks_gen_luarocks_remove, 456 .code = luarocks_gen_luarocks_remove,
457 }, 457 },
@@ -500,7 +500,7 @@ static const Gen GEN[] = {
500 { 500 {
501 .module_name = "luarocks.fs.lua", 501 .module_name = "luarocks.fs.lua",
502 .source_name = "src/luarocks/fs/lua.lua", 502 .source_name = "src/luarocks/fs/lua.lua",
503 .length = 38618, 503 .length = 38594,
504 .code = luarocks_gen_luarocks_fs_lua, 504 .code = luarocks_gen_luarocks_fs_lua,
505 }, 505 },
506 { 506 {
@@ -517,151 +517,151 @@ static const Gen GEN[] = {
517 }, 517 },
518 { 518 {
519 .module_name = "luarocks.manif.writer", 519 .module_name = "luarocks.manif.writer",
520 .source_name = "src/luarocks/manif/writer.lua", 520 .source_name = "src/luarocks/manif/writer.tl",
521 .length = 11163, 521 .length = 11163,
522 .code = luarocks_gen_luarocks_manif_writer, 522 .code = luarocks_gen_luarocks_manif_writer,
523 }, 523 },
524 { 524 {
525 .module_name = "luarocks.repo_writer", 525 .module_name = "luarocks.repo_writer",
526 .source_name = "src/luarocks/repo_writer.lua", 526 .source_name = "src/luarocks/repo_writer.tl",
527 .length = 1333, 527 .length = 1333,
528 .code = luarocks_gen_luarocks_repo_writer, 528 .code = luarocks_gen_luarocks_repo_writer,
529 }, 529 },
530 { 530 {
531 .module_name = "luarocks.manif", 531 .module_name = "luarocks.manif",
532 .source_name = "src/luarocks/manif.lua", 532 .source_name = "src/luarocks/manif.tl",
533 .length = 6368, 533 .length = 6368,
534 .code = luarocks_gen_luarocks_manif, 534 .code = luarocks_gen_luarocks_manif,
535 }, 535 },
536 { 536 {
537 .module_name = "luarocks.upload.api", 537 .module_name = "luarocks.upload.api",
538 .source_name = "src/luarocks/upload/api.lua", 538 .source_name = "src/luarocks/upload/api.tl",
539 .length = 9093, 539 .length = 9093,
540 .code = luarocks_gen_luarocks_upload_api, 540 .code = luarocks_gen_luarocks_upload_api,
541 }, 541 },
542 { 542 {
543 .module_name = "luarocks.upload.multipart", 543 .module_name = "luarocks.upload.multipart",
544 .source_name = "src/luarocks/upload/multipart.lua", 544 .source_name = "src/luarocks/upload/multipart.tl",
545 .length = 3067, 545 .length = 3067,
546 .code = luarocks_gen_luarocks_upload_multipart, 546 .code = luarocks_gen_luarocks_upload_multipart,
547 }, 547 },
548 { 548 {
549 .module_name = "luarocks.util", 549 .module_name = "luarocks.util",
550 .source_name = "src/luarocks/util.lua", 550 .source_name = "src/luarocks/util.tl",
551 .length = 14106, 551 .length = 14106,
552 .code = luarocks_gen_luarocks_util, 552 .code = luarocks_gen_luarocks_util,
553 }, 553 },
554 { 554 {
555 .module_name = "luarocks.download", 555 .module_name = "luarocks.download",
556 .source_name = "src/luarocks/download.lua", 556 .source_name = "src/luarocks/download.tl",
557 .length = 2509, 557 .length = 2509,
558 .code = luarocks_gen_luarocks_download, 558 .code = luarocks_gen_luarocks_download,
559 }, 559 },
560 { 560 {
561 .module_name = "luarocks.results", 561 .module_name = "luarocks.results",
562 .source_name = "src/luarocks/results.lua", 562 .source_name = "src/luarocks/results.tl",
563 .length = 1352, 563 .length = 1352,
564 .code = luarocks_gen_luarocks_results, 564 .code = luarocks_gen_luarocks_results,
565 }, 565 },
566 { 566 {
567 .module_name = "luarocks.type_check", 567 .module_name = "luarocks.type_check",
568 .source_name = "src/luarocks/type_check.lua", 568 .source_name = "src/luarocks/type_check.tl",
569 .length = 5608, 569 .length = 5608,
570 .code = luarocks_gen_luarocks_type_check, 570 .code = luarocks_gen_luarocks_type_check,
571 }, 571 },
572 { 572 {
573 .module_name = "luarocks.tools.zip", 573 .module_name = "luarocks.tools.zip",
574 .source_name = "src/luarocks/tools/zip.lua", 574 .source_name = "src/luarocks/tools/zip.tl",
575 .length = 14287, 575 .length = 14287,
576 .code = luarocks_gen_luarocks_tools_zip, 576 .code = luarocks_gen_luarocks_tools_zip,
577 }, 577 },
578 { 578 {
579 .module_name = "luarocks.tools.tar", 579 .module_name = "luarocks.tools.tar",
580 .source_name = "src/luarocks/tools/tar.lua", 580 .source_name = "src/luarocks/tools/tar.tl",
581 .length = 5388, 581 .length = 5388,
582 .code = luarocks_gen_luarocks_tools_tar, 582 .code = luarocks_gen_luarocks_tools_tar,
583 }, 583 },
584 { 584 {
585 .module_name = "luarocks.tools.patch", 585 .module_name = "luarocks.tools.patch",
586 .source_name = "src/luarocks/tools/patch.lua", 586 .source_name = "src/luarocks/tools/patch.tl",
587 .length = 20223, 587 .length = 20223,
588 .code = luarocks_gen_luarocks_tools_patch, 588 .code = luarocks_gen_luarocks_tools_patch,
589 }, 589 },
590 { 590 {
591 .module_name = "luarocks.pack", 591 .module_name = "luarocks.pack",
592 .source_name = "src/luarocks/pack.lua", 592 .source_name = "src/luarocks/pack.tl",
593 .length = 5644, 593 .length = 5644,
594 .code = luarocks_gen_luarocks_pack, 594 .code = luarocks_gen_luarocks_pack,
595 }, 595 },
596 { 596 {
597 .module_name = "luarocks.persist", 597 .module_name = "luarocks.persist",
598 .source_name = "src/luarocks/persist.lua", 598 .source_name = "src/luarocks/persist.tl",
599 .length = 5592, 599 .length = 5592,
600 .code = luarocks_gen_luarocks_persist, 600 .code = luarocks_gen_luarocks_persist,
601 }, 601 },
602 { 602 {
603 .module_name = "luarocks.build.builtin", 603 .module_name = "luarocks.build.builtin",
604 .source_name = "src/luarocks/build/builtin.lua", 604 .source_name = "src/luarocks/build/builtin.tl",
605 .length = 13280, 605 .length = 13280,
606 .code = luarocks_gen_luarocks_build_builtin, 606 .code = luarocks_gen_luarocks_build_builtin,
607 }, 607 },
608 { 608 {
609 .module_name = "luarocks.build.make", 609 .module_name = "luarocks.build.make",
610 .source_name = "src/luarocks/build/make.lua", 610 .source_name = "src/luarocks/build/make.tl",
611 .length = 2792, 611 .length = 2792,
612 .code = luarocks_gen_luarocks_build_make, 612 .code = luarocks_gen_luarocks_build_make,
613 }, 613 },
614 { 614 {
615 .module_name = "luarocks.build.command", 615 .module_name = "luarocks.build.command",
616 .source_name = "src/luarocks/build/command.lua", 616 .source_name = "src/luarocks/build/command.tl",
617 .length = 800, 617 .length = 800,
618 .code = luarocks_gen_luarocks_build_command, 618 .code = luarocks_gen_luarocks_build_command,
619 }, 619 },
620 { 620 {
621 .module_name = "luarocks.build.cmake", 621 .module_name = "luarocks.build.cmake",
622 .source_name = "src/luarocks/build/cmake.lua", 622 .source_name = "src/luarocks/build/cmake.tl",
623 .length = 2595, 623 .length = 2595,
624 .code = luarocks_gen_luarocks_build_cmake, 624 .code = luarocks_gen_luarocks_build_cmake,
625 }, 625 },
626 { 626 {
627 .module_name = "luarocks.queries", 627 .module_name = "luarocks.queries",
628 .source_name = "src/luarocks/queries.lua", 628 .source_name = "src/luarocks/queries.tl",
629 .length = 4562, 629 .length = 4562,
630 .code = luarocks_gen_luarocks_queries, 630 .code = luarocks_gen_luarocks_queries,
631 }, 631 },
632 { 632 {
633 .module_name = "luarocks.core.dir", 633 .module_name = "luarocks.core.dir",
634 .source_name = "src/luarocks/core/dir.lua", 634 .source_name = "src/luarocks/core/dir.tl",
635 .length = 2159, 635 .length = 2159,
636 .code = luarocks_gen_luarocks_core_dir, 636 .code = luarocks_gen_luarocks_core_dir,
637 }, 637 },
638 { 638 {
639 .module_name = "luarocks.core.vers", 639 .module_name = "luarocks.core.vers",
640 .source_name = "src/luarocks/core/vers.lua", 640 .source_name = "src/luarocks/core/vers.tl",
641 .length = 4297, 641 .length = 4297,
642 .code = luarocks_gen_luarocks_core_vers, 642 .code = luarocks_gen_luarocks_core_vers,
643 }, 643 },
644 { 644 {
645 .module_name = "luarocks.core.manif", 645 .module_name = "luarocks.core.manif",
646 .source_name = "src/luarocks/core/manif.lua", 646 .source_name = "src/luarocks/core/manif.tl",
647 .length = 3091, 647 .length = 3091,
648 .code = luarocks_gen_luarocks_core_manif, 648 .code = luarocks_gen_luarocks_core_manif,
649 }, 649 },
650 { 650 {
651 .module_name = "luarocks.core.util", 651 .module_name = "luarocks.core.util",
652 .source_name = "src/luarocks/core/util.lua", 652 .source_name = "src/luarocks/core/util.tl",
653 .length = 7346, 653 .length = 7346,
654 .code = luarocks_gen_luarocks_core_util, 654 .code = luarocks_gen_luarocks_core_util,
655 }, 655 },
656 { 656 {
657 .module_name = "luarocks.core.persist", 657 .module_name = "luarocks.core.persist",
658 .source_name = "src/luarocks/core/persist.lua", 658 .source_name = "src/luarocks/core/persist.tl",
659 .length = 1531, 659 .length = 1531,
660 .code = luarocks_gen_luarocks_core_persist, 660 .code = luarocks_gen_luarocks_core_persist,
661 }, 661 },
662 { 662 {
663 .module_name = "luarocks.core.sysdetect", 663 .module_name = "luarocks.core.sysdetect",
664 .source_name = "src/luarocks/core/sysdetect.lua", 664 .source_name = "src/luarocks/core/sysdetect.tl",
665 .length = 10375, 665 .length = 10375,
666 .code = luarocks_gen_luarocks_core_sysdetect, 666 .code = luarocks_gen_luarocks_core_sysdetect,
667 }, 667 },
@@ -673,73 +673,73 @@ static const Gen GEN[] = {
673 }, 673 },
674 { 674 {
675 .module_name = "luarocks.core.types.result", 675 .module_name = "luarocks.core.types.result",
676 .source_name = "src/luarocks/core/types/result.lua", 676 .source_name = "src/luarocks/core/types/result.tl",
677 .length = 57, 677 .length = 57,
678 .code = luarocks_gen_luarocks_core_types_result, 678 .code = luarocks_gen_luarocks_core_types_result,
679 }, 679 },
680 { 680 {
681 .module_name = "luarocks.core.types.query", 681 .module_name = "luarocks.core.types.query",
682 .source_name = "src/luarocks/core/types/query.lua", 682 .source_name = "src/luarocks/core/types/query.tl",
683 .length = 53, 683 .length = 53,
684 .code = luarocks_gen_luarocks_core_types_query, 684 .code = luarocks_gen_luarocks_core_types_query,
685 }, 685 },
686 { 686 {
687 .module_name = "luarocks.core.types.rockspec", 687 .module_name = "luarocks.core.types.rockspec",
688 .source_name = "src/luarocks/core/types/rockspec.lua", 688 .source_name = "src/luarocks/core/types/rockspec.tl",
689 .length = 213, 689 .length = 213,
690 .code = luarocks_gen_luarocks_core_types_rockspec, 690 .code = luarocks_gen_luarocks_core_types_rockspec,
691 }, 691 },
692 { 692 {
693 .module_name = "luarocks.core.path", 693 .module_name = "luarocks.core.path",
694 .source_name = "src/luarocks/core/path.lua", 694 .source_name = "src/luarocks/core/path.tl",
695 .length = 3855, 695 .length = 3855,
696 .code = luarocks_gen_luarocks_core_path, 696 .code = luarocks_gen_luarocks_core_path,
697 }, 697 },
698 { 698 {
699 .module_name = "luarocks.require", 699 .module_name = "luarocks.require",
700 .source_name = "src/luarocks/require.lua", 700 .source_name = "src/luarocks/require.tl",
701 .length = 35, 701 .length = 35,
702 .code = luarocks_gen_luarocks_require, 702 .code = luarocks_gen_luarocks_require,
703 }, 703 },
704 { 704 {
705 .module_name = "luarocks.type.manifest", 705 .module_name = "luarocks.type.manifest",
706 .source_name = "src/luarocks/type/manifest.lua", 706 .source_name = "src/luarocks/type/manifest.tl",
707 .length = 2281, 707 .length = 2281,
708 .code = luarocks_gen_luarocks_type_manifest, 708 .code = luarocks_gen_luarocks_type_manifest,
709 }, 709 },
710 { 710 {
711 .module_name = "luarocks.type.rockspec", 711 .module_name = "luarocks.type.rockspec",
712 .source_name = "src/luarocks/type/rockspec.lua", 712 .source_name = "src/luarocks/type/rockspec.tl",
713 .length = 6647, 713 .length = 6647,
714 .code = luarocks_gen_luarocks_type_rockspec, 714 .code = luarocks_gen_luarocks_type_rockspec,
715 }, 715 },
716 { 716 {
717 .module_name = "luarocks.fun", 717 .module_name = "luarocks.fun",
718 .source_name = "src/luarocks/fun.lua", 718 .source_name = "src/luarocks/fun.tl",
719 .length = 2794, 719 .length = 2794,
720 .code = luarocks_gen_luarocks_fun, 720 .code = luarocks_gen_luarocks_fun,
721 }, 721 },
722 { 722 {
723 .module_name = "luarocks.rockspecs", 723 .module_name = "luarocks.rockspecs",
724 .source_name = "src/luarocks/rockspecs.lua", 724 .source_name = "src/luarocks/rockspecs.tl",
725 .length = 5276, 725 .length = 5276,
726 .code = luarocks_gen_luarocks_rockspecs, 726 .code = luarocks_gen_luarocks_rockspecs,
727 }, 727 },
728 { 728 {
729 .module_name = "luarocks.signing", 729 .module_name = "luarocks.signing",
730 .source_name = "src/luarocks/signing.lua", 730 .source_name = "src/luarocks/signing.tl",
731 .length = 991, 731 .length = 991,
732 .code = luarocks_gen_luarocks_signing, 732 .code = luarocks_gen_luarocks_signing,
733 }, 733 },
734 { 734 {
735 .module_name = "luarocks.loader", 735 .module_name = "luarocks.loader",
736 .source_name = "src/luarocks/loader.lua", 736 .source_name = "src/luarocks/loader.tl",
737 .length = 5997, 737 .length = 5997,
738 .code = luarocks_gen_luarocks_loader, 738 .code = luarocks_gen_luarocks_loader,
739 }, 739 },
740 { 740 {
741 .module_name = "luarocks.path", 741 .module_name = "luarocks.path",
742 .source_name = "src/luarocks/path.lua", 742 .source_name = "src/luarocks/path.tl",
743 .length = 5181, 743 .length = 5181,
744 .code = luarocks_gen_luarocks_path, 744 .code = luarocks_gen_luarocks_path,
745 }, 745 },
diff --git a/gen/lua/luarocks/fs/lua.h b/gen/lua/luarocks/fs/lua.h
index be3a1822..e487b553 100644
--- a/gen/lua/luarocks/fs/lua.h
+++ b/gen/lua/luarocks/fs/lua.h
@@ -1562,375 +1562,374 @@ static const unsigned char luarocks_gen_luarocks_fs_lua[] = {
1562 95 ,112,101,114,109,115,44 ,32 ,111,99 ,116,97 ,108,95 ,116,111,95 ,114,119,120, 1562 95 ,112,101,114,109,115,44 ,32 ,111,99 ,116,97 ,108,95 ,116,111,95 ,114,119,120,
1563 91 ,99 ,93 ,41 ,10 ,32 ,32 ,32 ,101,110,100,10 ,32 ,32 ,32 ,112,101,114,109,115, 1563 91 ,99 ,93 ,41 ,10 ,32 ,32 ,32 ,101,110,100,10 ,32 ,32 ,32 ,112,101,114,109,115,
1564 32 ,61 ,32 ,116,97 ,98 ,108,101,46 ,99 ,111,110,99 ,97 ,116,40 ,110,101,119,95 , 1564 32 ,61 ,32 ,116,97 ,98 ,108,101,46 ,99 ,111,110,99 ,97 ,116,40 ,110,101,119,95 ,
1565 112,101,114,109,115,41 ,10 ,32 ,32 ,32 ,108,111,99 ,97 ,108,32 ,101,114,114,32 , 1565 112,101,114,109,115,41 ,10 ,32 ,32 ,32 ,114,101,116,117,114,110,32 ,109,105,110,
1566 61 ,32 ,109,105,110,105,112,111,115,105,120,46 ,99 ,104,109,111,100,40 ,102,105, 1566 105,112,111,115,105,120,46 ,99 ,104,109,111,100,40 ,102,105,108,101,110,97 ,109,
1567 108,101,110,97 ,109,101,44 ,32 ,112,101,114,109,115,41 ,10 ,32 ,32 ,32 ,114,101, 1567 101,44 ,32 ,112,101,114,109,115,41 ,10 ,101,110,100,10 ,10 ,102,117,110,99 ,116,
1568 116,117,114,110,32 ,101,114,114,32 ,61 ,61 ,32 ,48 ,10 ,101,110,100,10 ,10 ,102, 1568 105,111,110,32 ,102,115,95 ,108,117,97 ,46 ,99 ,117,114,114,101,110,116,95 ,117,
1569 117,110,99 ,116,105,111,110,32 ,102,115,95 ,108,117,97 ,46 ,99 ,117,114,114,101, 1569 115,101,114,40 ,41 ,10 ,32 ,32 ,32 ,114,101,116,117,114,110,32 ,109,105,110,105,
1570 110,116,95 ,117,115,101,114,40 ,41 ,10 ,32 ,32 ,32 ,114,101,116,117,114,110,32 , 1570 112,111,115,105,120,46 ,103,101,116,112,119,117,105,100,40 ,109,105,110,105,112,
1571 109,105,110,105,112,111,115,105,120,46 ,103,101,116,112,119,117,105,100,40 ,109, 1571 111,115,105,120,46 ,103,101,116,101,117,105,100,40 ,41 ,41 ,46 ,112,119,95 ,110,
1572 105,110,105,112,111,115,105,120,46 ,103,101,116,101,117,105,100,40 ,41 ,41 ,46 , 1572 97 ,109,101,10 ,101,110,100,10 ,10 ,102,117,110,99 ,116,105,111,110,32 ,102,115,
1573 112,119,95 ,110,97 ,109,101,10 ,101,110,100,10 ,10 ,102,117,110,99 ,116,105,111, 1573 95 ,108,117,97 ,46 ,105,115,95 ,115,117,112,101,114,117,115,101,114,40 ,41 ,10 ,
1574 110,32 ,102,115,95 ,108,117,97 ,46 ,105,115,95 ,115,117,112,101,114,117,115,101, 1574 32 ,32 ,32 ,114,101,116,117,114,110,32 ,109,105,110,105,112,111,115,105,120,46 ,
1575 114,40 ,41 ,10 ,32 ,32 ,32 ,114,101,116,117,114,110,32 ,109,105,110,105,112,111, 1575 103,101,116,101,117,105,100,40 ,41 ,32 ,61 ,61 ,32 ,48 ,10 ,101,110,100,10 ,10 ,
1576 115,105,120,46 ,103,101,116,101,117,105,100,40 ,41 ,32 ,61 ,61 ,32 ,48 ,10 ,101, 1576 45 ,45 ,45 ,32 ,67 ,114,101,97 ,116,101,32 ,97 ,32 ,116,101,109,112,111,114,97 ,
1577 110,100,10 ,10 ,45 ,45 ,45 ,32 ,67 ,114,101,97 ,116,101,32 ,97 ,32 ,116,101,109, 1577 114,121,32 ,100,105,114,101,99 ,116,111,114,121,46 ,10 ,45 ,45 ,32 ,64 ,112,97 ,
1578 112,111,114,97 ,114,121,32 ,100,105,114,101,99 ,116,111,114,121,46 ,10 ,45 ,45 , 1578 114,97 ,109,32 ,110,97 ,109,101,95 ,112,97 ,116,116,101,114,110,32 ,115,116,114,
1579 32 ,64 ,112,97 ,114,97 ,109,32 ,110,97 ,109,101,95 ,112,97 ,116,116,101,114,110, 1579 105,110,103,58 ,32 ,110,97 ,109,101,32 ,112,97 ,116,116,101,114,110,32 ,116,111,
1580 32 ,115,116,114,105,110,103,58 ,32 ,110,97 ,109,101,32 ,112,97 ,116,116,101,114, 1580 32 ,117,115,101,32 ,102,111,114,32 ,97 ,118,111,105,100,105,110,103,32 ,99 ,111,
1581 110,32 ,116,111,32 ,117,115,101,32 ,102,111,114,32 ,97 ,118,111,105,100,105,110, 1581 110,102,108,105,99 ,116,115,10 ,45 ,45 ,32 ,119,104,101,110,32 ,99 ,114,101,97 ,
1582 103,32 ,99 ,111,110,102,108,105,99 ,116,115,10 ,45 ,45 ,32 ,119,104,101,110,32 , 1582 116,105,110,103,32 ,116,101,109,112,111,114,97 ,114,121,32 ,100,105,114,101,99 ,
1583 99 ,114,101,97 ,116,105,110,103,32 ,116,101,109,112,111,114,97 ,114,121,32 ,100, 1583 116,111,114,121,46 ,10 ,45 ,45 ,32 ,64 ,114,101,116,117,114,110,32 ,115,116,114,
1584 105,114,101,99 ,116,111,114,121,46 ,10 ,45 ,45 ,32 ,64 ,114,101,116,117,114,110, 1584 105,110,103,32 ,111,114,32 ,40 ,110,105,108,44 ,32 ,115,116,114,105,110,103,41 ,
1585 32 ,115,116,114,105,110,103,32 ,111,114,32 ,40 ,110,105,108,44 ,32 ,115,116,114, 1585 58 ,32 ,110,97 ,109,101,32 ,111,102,32 ,116,101,109,112,111,114,97 ,114,121,32 ,
1586 105,110,103,41 ,58 ,32 ,110,97 ,109,101,32 ,111,102,32 ,116,101,109,112,111,114, 1586 100,105,114,101,99 ,116,111,114,121,32 ,111,114,32 ,40 ,110,105,108,44 ,32 ,101,
1587 97 ,114,121,32 ,100,105,114,101,99 ,116,111,114,121,32 ,111,114,32 ,40 ,110,105, 1587 114,114,111,114,32 ,109,101,115,115,97 ,103,101,41 ,32 ,111,110,32 ,102,97 ,105,
1588 108,44 ,32 ,101,114,114,111,114,32 ,109,101,115,115,97 ,103,101,41 ,32 ,111,110, 1588 108,117,114,101,46 ,10 ,102,117,110,99 ,116,105,111,110,32 ,102,115,95 ,108,117,
1589 32 ,102,97 ,105,108,117,114,101,46 ,10 ,102,117,110,99 ,116,105,111,110,32 ,102, 1589 97 ,46 ,109,97 ,107,101,95 ,116,101,109,112,95 ,100,105,114,40 ,110,97 ,109,101,
1590 115,95 ,108,117,97 ,46 ,109,97 ,107,101,95 ,116,101,109,112,95 ,100,105,114,40 , 1590 95 ,112,97 ,116,116,101,114,110,41 ,10 ,32 ,32 ,32 ,97 ,115,115,101,114,116,40 ,
1591 110,97 ,109,101,95 ,112,97 ,116,116,101,114,110,41 ,10 ,32 ,32 ,32 ,97 ,115,115, 1591 116,121,112,101,40 ,110,97 ,109,101,95 ,112,97 ,116,116,101,114,110,41 ,32 ,61 ,
1592 101,114,116,40 ,116,121,112,101,40 ,110,97 ,109,101,95 ,112,97 ,116,116,101,114, 1592 61 ,32 ,34 ,115,116,114,105,110,103,34 ,41 ,10 ,10 ,32 ,32 ,32 ,114,101,116,117,
1593 110,41 ,32 ,61 ,61 ,32 ,34 ,115,116,114,105,110,103,34 ,41 ,10 ,10 ,32 ,32 ,32 , 1593 114,110,32 ,109,105,110,105,112,111,115,105,120,46 ,109,107,100,116,101,109,112,
1594 114,101,116,117,114,110,32 ,109,105,110,105,112,111,115,105,120,46 ,109,107,100, 1594 40 ,116,101,109,112,95 ,100,105,114,95 ,112,97 ,116,116,101,114,110,40 ,110,97 ,
1595 116,101,109,112,40 ,116,101,109,112,95 ,100,105,114,95 ,112,97 ,116,116,101,114, 1595 109,101,95 ,112,97 ,116,116,101,114,110,41 ,32 ,46 ,46 ,32 ,34 ,45 ,88 ,88 ,88 ,
1596 110,40 ,110,97 ,109,101,95 ,112,97 ,116,116,101,114,110,41 ,32 ,46 ,46 ,32 ,34 , 1596 88 ,88 ,88 ,34 ,41 ,10 ,101,110,100,10 ,10 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,
1597 45 ,88 ,88 ,88 ,88 ,88 ,88 ,34 ,41 ,10 ,101,110,100,10 ,10 ,45 ,45 ,45 ,45 ,45 ,
1598 45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 , 1597 45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,
1599 45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 , 1598 45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,
1600 45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 , 1599 45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,
1601 45 ,45 ,45 ,45 ,10 ,45 ,45 ,32 ,79 ,116,104,101,114,32 ,102,117,110,99 ,116,105, 1600 10 ,45 ,45 ,32 ,79 ,116,104,101,114,32 ,102,117,110,99 ,116,105,111,110,115,10 ,
1602 111,110,115,10 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,
1603 45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 , 1601 45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,
1604 45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 , 1602 45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,
1605 45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,10 ,10 ,105,102,32 ,110,111, 1603 45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,
1606 116,32 ,102,115,95 ,108,117,97 ,46 ,109,97 ,107,101,95 ,116,101,109,112,95 ,100, 1604 45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,45 ,10 ,10 ,105,102,32 ,110,111,116,32 ,102,115,
1607 105,114,32 ,116,104,101,110,10 ,10 ,102,117,110,99 ,116,105,111,110,32 ,102,115, 1605 95 ,108,117,97 ,46 ,109,97 ,107,101,95 ,116,101,109,112,95 ,100,105,114,32 ,116,
1608 95 ,108,117,97 ,46 ,109,97 ,107,101,95 ,116,101,109,112,95 ,100,105,114,40 ,110, 1606 104,101,110,10 ,10 ,102,117,110,99 ,116,105,111,110,32 ,102,115,95 ,108,117,97 ,
1609 97 ,109,101,95 ,112,97 ,116,116,101,114,110,41 ,10 ,32 ,32 ,32 ,97 ,115,115,101, 1607 46 ,109,97 ,107,101,95 ,116,101,109,112,95 ,100,105,114,40 ,110,97 ,109,101,95 ,
1610 114,116,40 ,116,121,112,101,40 ,110,97 ,109,101,95 ,112,97 ,116,116,101,114,110, 1608 112,97 ,116,116,101,114,110,41 ,10 ,32 ,32 ,32 ,97 ,115,115,101,114,116,40 ,116,
1611 41 ,32 ,61 ,61 ,32 ,34 ,115,116,114,105,110,103,34 ,41 ,10 ,10 ,32 ,32 ,32 ,108, 1609 121,112,101,40 ,110,97 ,109,101,95 ,112,97 ,116,116,101,114,110,41 ,32 ,61 ,61 ,
1612 111,99 ,97 ,108,32 ,111,107,44 ,32 ,101,114,114,10 ,32 ,32 ,32 ,102,111,114,32 , 1610 32 ,34 ,115,116,114,105,110,103,34 ,41 ,10 ,10 ,32 ,32 ,32 ,108,111,99 ,97 ,108,
1613 95 ,32 ,61 ,32 ,49 ,44 ,32 ,51 ,32 ,100,111,10 ,32 ,32 ,32 ,32 ,32 ,32 ,108,111, 1611 32 ,111,107,44 ,32 ,101,114,114,10 ,32 ,32 ,32 ,102,111,114,32 ,95 ,32 ,61 ,32 ,
1614 99 ,97 ,108,32 ,110,97 ,109,101,32 ,61 ,32 ,116,101,109,112,95 ,100,105,114,95 , 1612 49 ,44 ,32 ,51 ,32 ,100,111,10 ,32 ,32 ,32 ,32 ,32 ,32 ,108,111,99 ,97 ,108,32 ,
1615 112,97 ,116,116,101,114,110,40 ,110,97 ,109,101,95 ,112,97 ,116,116,101,114,110, 1613 110,97 ,109,101,32 ,61 ,32 ,116,101,109,112,95 ,100,105,114,95 ,112,97 ,116,116,
1616 41 ,32 ,46 ,46 ,32 ,116,111,115,116,114,105,110,103,40 ,109,97 ,116,104,46 ,114, 1614 101,114,110,40 ,110,97 ,109,101,95 ,112,97 ,116,116,101,114,110,41 ,32 ,46 ,46 ,
1617 97 ,110,100,111,109,40 ,49 ,48 ,48 ,48 ,48 ,48 ,48 ,48 ,41 ,41 ,10 ,32 ,32 ,32 , 1615 32 ,116,111,115,116,114,105,110,103,40 ,109,97 ,116,104,46 ,114,97 ,110,100,111,
1618 32 ,32 ,32 ,111,107,44 ,32 ,101,114,114,32 ,61 ,32 ,102,115,46 ,109,97 ,107,101, 1616 109,40 ,49 ,48 ,48 ,48 ,48 ,48 ,48 ,48 ,41 ,41 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,111,
1619 95 ,100,105,114,40 ,110,97 ,109,101,41 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,105,102,32 , 1617 107,44 ,32 ,101,114,114,32 ,61 ,32 ,102,115,46 ,109,97 ,107,101,95 ,100,105,114,
1620 111,107,32 ,116,104,101,110,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,114,101,116, 1618 40 ,110,97 ,109,101,41 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,105,102,32 ,111,107,32 ,116,
1621 117,114,110,32 ,110,97 ,109,101,10 ,32 ,32 ,32 ,32 ,32 ,32 ,101,110,100,10 ,32 , 1619 104,101,110,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,114,101,116,117,114,110,32 ,
1622 32 ,32 ,101,110,100,10 ,10 ,32 ,32 ,32 ,114,101,116,117,114,110,32 ,110,105,108, 1620 110,97 ,109,101,10 ,32 ,32 ,32 ,32 ,32 ,32 ,101,110,100,10 ,32 ,32 ,32 ,101,110,
1623 44 ,32 ,101,114,114,10 ,101,110,100,10 ,10 ,101,110,100,10 ,10 ,45 ,45 ,45 ,32 , 1621 100,10 ,10 ,32 ,32 ,32 ,114,101,116,117,114,110,32 ,110,105,108,44 ,32 ,101,114,
1624 65 ,112,112,108,121,32 ,97 ,32 ,112,97 ,116,99 ,104,46 ,10 ,45 ,45 ,32 ,64 ,112, 1622 114,10 ,101,110,100,10 ,10 ,101,110,100,10 ,10 ,45 ,45 ,45 ,32 ,65 ,112,112,108,
1625 97 ,114,97 ,109,32 ,112,97 ,116,99 ,104,110,97 ,109,101,32 ,115,116,114,105,110, 1623 121,32 ,97 ,32 ,112,97 ,116,99 ,104,46 ,10 ,45 ,45 ,32 ,64 ,112,97 ,114,97 ,109,
1626 103,58 ,32 ,84 ,104,101,32 ,102,105,108,101,110,97 ,109,101,32 ,111,102,32 ,116, 1624 32 ,112,97 ,116,99 ,104,110,97 ,109,101,32 ,115,116,114,105,110,103,58 ,32 ,84 ,
1627 104,101,32 ,112,97 ,116,99 ,104,46 ,10 ,45 ,45 ,32 ,64 ,112,97 ,114,97 ,109,32 , 1625 104,101,32 ,102,105,108,101,110,97 ,109,101,32 ,111,102,32 ,116,104,101,32 ,112,
1628 112,97 ,116,99 ,104,100,97 ,116,97 ,32 ,115,116,114,105,110,103,32 ,111,114,32 , 1626 97 ,116,99 ,104,46 ,10 ,45 ,45 ,32 ,64 ,112,97 ,114,97 ,109,32 ,112,97 ,116,99 ,
1629 110,105,108,58 ,32 ,84 ,104,101,32 ,97 ,99 ,116,117,97 ,108,32 ,112,97 ,116,99 , 1627 104,100,97 ,116,97 ,32 ,115,116,114,105,110,103,32 ,111,114,32 ,110,105,108,58 ,
1630 104,32 ,97 ,115,32 ,97 ,32 ,115,116,114,105,110,103,46 ,10 ,45 ,45 ,32 ,64 ,112, 1628 32 ,84 ,104,101,32 ,97 ,99 ,116,117,97 ,108,32 ,112,97 ,116,99 ,104,32 ,97 ,115,
1631 97 ,114,97 ,109,32 ,99 ,114,101,97 ,116,101,95 ,100,101,108,101,116,101,32 ,98 , 1629 32 ,97 ,32 ,115,116,114,105,110,103,46 ,10 ,45 ,45 ,32 ,64 ,112,97 ,114,97 ,109,
1632 111,111,108,101,97 ,110,58 ,32 ,83 ,117,112,112,111,114,116,32 ,99 ,114,101,97 , 1630 32 ,99 ,114,101,97 ,116,101,95 ,100,101,108,101,116,101,32 ,98 ,111,111,108,101,
1633 116,105,110,103,32 ,97 ,110,100,32 ,100,101,108,101,116,105,110,103,32 ,102,105, 1631 97 ,110,58 ,32 ,83 ,117,112,112,111,114,116,32 ,99 ,114,101,97 ,116,105,110,103,
1634 108,101,115,32 ,105,110,32 ,97 ,32 ,112,97 ,116,99 ,104,46 ,10 ,102,117,110,99 , 1632 32 ,97 ,110,100,32 ,100,101,108,101,116,105,110,103,32 ,102,105,108,101,115,32 ,
1635 116,105,111,110,32 ,102,115,95 ,108,117,97 ,46 ,97 ,112,112,108,121,95 ,112,97 , 1633 105,110,32 ,97 ,32 ,112,97 ,116,99 ,104,46 ,10 ,102,117,110,99 ,116,105,111,110,
1636 116,99 ,104,40 ,112,97 ,116,99 ,104,110,97 ,109,101,44 ,32 ,112,97 ,116,99 ,104, 1634 32 ,102,115,95 ,108,117,97 ,46 ,97 ,112,112,108,121,95 ,112,97 ,116,99 ,104,40 ,
1637 100,97 ,116,97 ,44 ,32 ,99 ,114,101,97 ,116,101,95 ,100,101,108,101,116,101,41 , 1635 112,97 ,116,99 ,104,110,97 ,109,101,44 ,32 ,112,97 ,116,99 ,104,100,97 ,116,97 ,
1638 10 ,32 ,32 ,32 ,108,111,99 ,97 ,108,32 ,112,44 ,32 ,97 ,108,108,95 ,111,107,32 , 1636 44 ,32 ,99 ,114,101,97 ,116,101,95 ,100,101,108,101,116,101,41 ,10 ,32 ,32 ,32 ,
1639 61 ,32 ,112,97 ,116,99 ,104,46 ,114,101,97 ,100,95 ,112,97 ,116,99 ,104,40 ,112, 1637 108,111,99 ,97 ,108,32 ,112,44 ,32 ,97 ,108,108,95 ,111,107,32 ,61 ,32 ,112,97 ,
1640 97 ,116,99 ,104,110,97 ,109,101,44 ,32 ,112,97 ,116,99 ,104,100,97 ,116,97 ,41 , 1638 116,99 ,104,46 ,114,101,97 ,100,95 ,112,97 ,116,99 ,104,40 ,112,97 ,116,99 ,104,
1641 10 ,32 ,32 ,32 ,105,102,32 ,110,111,116,32 ,97 ,108,108,95 ,111,107,32 ,116,104, 1639 110,97 ,109,101,44 ,32 ,112,97 ,116,99 ,104,100,97 ,116,97 ,41 ,10 ,32 ,32 ,32 ,
1642 101,110,10 ,32 ,32 ,32 ,32 ,32 ,32 ,114,101,116,117,114,110,32 ,110,105,108,44 , 1640 105,102,32 ,110,111,116,32 ,97 ,108,108,95 ,111,107,32 ,116,104,101,110,10 ,32 ,
1643 32 ,34 ,70 ,97 ,105,108,101,100,32 ,114,101,97 ,100,105,110,103,32 ,112,97 ,116, 1641 32 ,32 ,32 ,32 ,32 ,114,101,116,117,114,110,32 ,110,105,108,44 ,32 ,34 ,70 ,97 ,
1644 99 ,104,32 ,34 ,46 ,46 ,112,97 ,116,99 ,104,110,97 ,109,101,10 ,32 ,32 ,32 ,101, 1642 105,108,101,100,32 ,114,101,97 ,100,105,110,103,32 ,112,97 ,116,99 ,104,32 ,34 ,
1645 110,100,10 ,32 ,32 ,32 ,105,102,32 ,112,32 ,116,104,101,110,10 ,32 ,32 ,32 ,32 , 1643 46 ,46 ,112,97 ,116,99 ,104,110,97 ,109,101,10 ,32 ,32 ,32 ,101,110,100,10 ,32 ,
1646 32 ,32 ,114,101,116,117,114,110,32 ,112,97 ,116,99 ,104,46 ,97 ,112,112,108,121, 1644 32 ,32 ,105,102,32 ,112,32 ,116,104,101,110,10 ,32 ,32 ,32 ,32 ,32 ,32 ,114,101,
1647 95 ,112,97 ,116,99 ,104,40 ,112,44 ,32 ,49 ,44 ,32 ,99 ,114,101,97 ,116,101,95 , 1645 116,117,114,110,32 ,112,97 ,116,99 ,104,46 ,97 ,112,112,108,121,95 ,112,97 ,116,
1648 100,101,108,101,116,101,41 ,10 ,32 ,32 ,32 ,101,110,100,10 ,101,110,100,10 ,10 , 1646 99 ,104,40 ,112,44 ,32 ,49 ,44 ,32 ,99 ,114,101,97 ,116,101,95 ,100,101,108,101,
1649 45 ,45 ,45 ,32 ,77 ,111,118,101,32 ,97 ,32 ,102,105,108,101,46 ,10 ,45 ,45 ,32 , 1647 116,101,41 ,10 ,32 ,32 ,32 ,101,110,100,10 ,101,110,100,10 ,10 ,45 ,45 ,45 ,32 ,
1650 64 ,112,97 ,114,97 ,109,32 ,115,114,99 ,32 ,115,116,114,105,110,103,58 ,32 ,80 , 1648 77 ,111,118,101,32 ,97 ,32 ,102,105,108,101,46 ,10 ,45 ,45 ,32 ,64 ,112,97 ,114,
1651 97 ,116,104,110,97 ,109,101,32 ,111,102,32 ,115,111,117,114,99 ,101,10 ,45 ,45 , 1649 97 ,109,32 ,115,114,99 ,32 ,115,116,114,105,110,103,58 ,32 ,80 ,97 ,116,104,110,
1652 32 ,64 ,112,97 ,114,97 ,109,32 ,100,101,115,116,32 ,115,116,114,105,110,103,58 , 1650 97 ,109,101,32 ,111,102,32 ,115,111,117,114,99 ,101,10 ,45 ,45 ,32 ,64 ,112,97 ,
1653 32 ,80 ,97 ,116,104,110,97 ,109,101,32 ,111,102,32 ,100,101,115,116,105,110,97 , 1651 114,97 ,109,32 ,100,101,115,116,32 ,115,116,114,105,110,103,58 ,32 ,80 ,97 ,116,
1654 116,105,111,110,10 ,45 ,45 ,32 ,64 ,112,97 ,114,97 ,109,32 ,112,101,114,109,115, 1652 104,110,97 ,109,101,32 ,111,102,32 ,100,101,115,116,105,110,97 ,116,105,111,110,
1655 32 ,115,116,114,105,110,103,32 ,40 ,34 ,114,101,97 ,100,34 ,32 ,111,114,32 ,34 , 1653 10 ,45 ,45 ,32 ,64 ,112,97 ,114,97 ,109,32 ,112,101,114,109,115,32 ,115,116,114,
1656 101,120,101,99 ,34 ,41 ,32 ,111,114,32 ,110,105,108,58 ,32 ,80 ,101,114,109,105, 1654 105,110,103,32 ,40 ,34 ,114,101,97 ,100,34 ,32 ,111,114,32 ,34 ,101,120,101,99 ,
1657 115,115,105,111,110,115,32 ,102,111,114,32 ,100,101,115,116,105,110,97 ,116,105, 1655 34 ,41 ,32 ,111,114,32 ,110,105,108,58 ,32 ,80 ,101,114,109,105,115,115,105,111,
1658 111,110,10 ,45 ,45 ,32 ,102,105,108,101,32 ,111,114,32 ,110,105,108,32 ,116,111, 1656 110,115,32 ,102,111,114,32 ,100,101,115,116,105,110,97 ,116,105,111,110,10 ,45 ,
1659 32 ,117,115,101,32 ,116,104,101,32 ,115,111,117,114,99 ,101,32 ,102,105,108,101, 1657 45 ,32 ,102,105,108,101,32 ,111,114,32 ,110,105,108,32 ,116,111,32 ,117,115,101,
1660 32 ,112,101,114,109,105,115,115,105,111,110,115,46 ,10 ,45 ,45 ,32 ,64 ,114,101, 1658 32 ,116,104,101,32 ,115,111,117,114,99 ,101,32 ,102,105,108,101,32 ,112,101,114,
1661 116,117,114,110,32 ,98 ,111,111,108,101,97 ,110,32 ,111,114,32 ,40 ,98 ,111,111, 1659 109,105,115,115,105,111,110,115,46 ,10 ,45 ,45 ,32 ,64 ,114,101,116,117,114,110,
1662 108,101,97 ,110,44 ,32 ,115,116,114,105,110,103,41 ,58 ,32 ,116,114,117,101,32 , 1660 32 ,98 ,111,111,108,101,97 ,110,32 ,111,114,32 ,40 ,98 ,111,111,108,101,97 ,110,
1663 111,110,32 ,115,117,99 ,99 ,101,115,115,44 ,32 ,102,97 ,108,115,101,32 ,111,110, 1661 44 ,32 ,115,116,114,105,110,103,41 ,58 ,32 ,116,114,117,101,32 ,111,110,32 ,115,
1664 32 ,102,97 ,105,108,117,114,101,44 ,10 ,45 ,45 ,32 ,112,108,117,115,32 ,97 ,110, 1662 117,99 ,99 ,101,115,115,44 ,32 ,102,97 ,108,115,101,32 ,111,110,32 ,102,97 ,105,
1665 32 ,101,114,114,111,114,32 ,109,101,115,115,97 ,103,101,46 ,10 ,102,117,110,99 , 1663 108,117,114,101,44 ,10 ,45 ,45 ,32 ,112,108,117,115,32 ,97 ,110,32 ,101,114,114,
1666 116,105,111,110,32 ,102,115,95 ,108,117,97 ,46 ,109,111,118,101,40 ,115,114,99 , 1664 111,114,32 ,109,101,115,115,97 ,103,101,46 ,10 ,102,117,110,99 ,116,105,111,110,
1667 44 ,32 ,100,101,115,116,44 ,32 ,112,101,114,109,115,41 ,10 ,32 ,32 ,32 ,97 ,115, 1665 32 ,102,115,95 ,108,117,97 ,46 ,109,111,118,101,40 ,115,114,99 ,44 ,32 ,100,101,
1668 115,101,114,116,40 ,115,114,99 ,32 ,97 ,110,100,32 ,100,101,115,116,41 ,10 ,32 , 1666 115,116,44 ,32 ,112,101,114,109,115,41 ,10 ,32 ,32 ,32 ,97 ,115,115,101,114,116,
1669 32 ,32 ,105,102,32 ,102,115,46 ,101,120,105,115,116,115,40 ,100,101,115,116,41 , 1667 40 ,115,114,99 ,32 ,97 ,110,100,32 ,100,101,115,116,41 ,10 ,32 ,32 ,32 ,105,102,
1670 32 ,97 ,110,100,32 ,110,111,116,32 ,102,115,46 ,105,115,95 ,100,105,114,40 ,100, 1668 32 ,102,115,46 ,101,120,105,115,116,115,40 ,100,101,115,116,41 ,32 ,97 ,110,100,
1671 101,115,116,41 ,32 ,116,104,101,110,10 ,32 ,32 ,32 ,32 ,32 ,32 ,114,101,116,117, 1669 32 ,110,111,116,32 ,102,115,46 ,105,115,95 ,100,105,114,40 ,100,101,115,116,41 ,
1672 114,110,32 ,102,97 ,108,115,101,44 ,32 ,34 ,70 ,105,108,101,32 ,97 ,108,114,101, 1670 32 ,116,104,101,110,10 ,32 ,32 ,32 ,32 ,32 ,32 ,114,101,116,117,114,110,32 ,102,
1673 97 ,100,121,32 ,101,120,105,115,116,115,58 ,32 ,34 ,46 ,46 ,100,101,115,116,10 , 1671 97 ,108,115,101,44 ,32 ,34 ,70 ,105,108,101,32 ,97 ,108,114,101,97 ,100,121,32 ,
1674 32 ,32 ,32 ,101,110,100,10 ,32 ,32 ,32 ,108,111,99 ,97 ,108,32 ,111,107,44 ,32 , 1672 101,120,105,115,116,115,58 ,32 ,34 ,46 ,46 ,100,101,115,116,10 ,32 ,32 ,32 ,101,
1675 101,114,114,32 ,61 ,32 ,102,115,46 ,99 ,111,112,121,40 ,115,114,99 ,44 ,32 ,100, 1673 110,100,10 ,32 ,32 ,32 ,108,111,99 ,97 ,108,32 ,111,107,44 ,32 ,101,114,114,32 ,
1676 101,115,116,44 ,32 ,112,101,114,109,115,41 ,10 ,32 ,32 ,32 ,105,102,32 ,110,111, 1674 61 ,32 ,102,115,46 ,99 ,111,112,121,40 ,115,114,99 ,44 ,32 ,100,101,115,116,44 ,
1677 116,32 ,111,107,32 ,116,104,101,110,10 ,32 ,32 ,32 ,32 ,32 ,32 ,114,101,116,117, 1675 32 ,112,101,114,109,115,41 ,10 ,32 ,32 ,32 ,105,102,32 ,110,111,116,32 ,111,107,
1678 114,110,32 ,102,97 ,108,115,101,44 ,32 ,101,114,114,10 ,32 ,32 ,32 ,101,110,100, 1676 32 ,116,104,101,110,10 ,32 ,32 ,32 ,32 ,32 ,32 ,114,101,116,117,114,110,32 ,102,
1679 10 ,32 ,32 ,32 ,102,115,46 ,100,101,108,101,116,101,40 ,115,114,99 ,41 ,10 ,32 , 1677 97 ,108,115,101,44 ,32 ,101,114,114,10 ,32 ,32 ,32 ,101,110,100,10 ,32 ,32 ,32 ,
1680 32 ,32 ,105,102,32 ,102,115,46 ,101,120,105,115,116,115,40 ,115,114,99 ,41 ,32 , 1678 102,115,46 ,100,101,108,101,116,101,40 ,115,114,99 ,41 ,10 ,32 ,32 ,32 ,105,102,
1681 116,104,101,110,10 ,32 ,32 ,32 ,32 ,32 ,32 ,114,101,116,117,114,110,32 ,102,97 , 1679 32 ,102,115,46 ,101,120,105,115,116,115,40 ,115,114,99 ,41 ,32 ,116,104,101,110,
1682 108,115,101,44 ,32 ,34 ,70 ,97 ,105,108,101,100,32 ,109,111,118,101,58 ,32 ,99 , 1680 10 ,32 ,32 ,32 ,32 ,32 ,32 ,114,101,116,117,114,110,32 ,102,97 ,108,115,101,44 ,
1683 111,117,108,100,32 ,110,111,116,32 ,100,101,108,101,116,101,32 ,34 ,46 ,46 ,115, 1681 32 ,34 ,70 ,97 ,105,108,101,100,32 ,109,111,118,101,58 ,32 ,99 ,111,117,108,100,
1684 114,99 ,46 ,46 ,34 ,32 ,97 ,102,116,101,114,32 ,99 ,111,112,121,46 ,34 ,10 ,32 , 1682 32 ,110,111,116,32 ,100,101,108,101,116,101,32 ,34 ,46 ,46 ,115,114,99 ,46 ,46 ,
1685 32 ,32 ,101,110,100,10 ,32 ,32 ,32 ,114,101,116,117,114,110,32 ,116,114,117,101, 1683 34 ,32 ,97 ,102,116,101,114,32 ,99 ,111,112,121,46 ,34 ,10 ,32 ,32 ,32 ,101,110,
1686 10 ,101,110,100,10 ,10 ,108,111,99 ,97 ,108,32 ,102,117,110,99 ,116,105,111,110, 1684 100,10 ,32 ,32 ,32 ,114,101,116,117,114,110,32 ,116,114,117,101,10 ,101,110,100,
1687 32 ,103,101,116,95 ,108,111,99 ,97 ,108,95 ,116,114,101,101,40 ,41 ,10 ,32 ,32 , 1685 10 ,10 ,108,111,99 ,97 ,108,32 ,102,117,110,99 ,116,105,111,110,32 ,103,101,116,
1688 32 ,102,111,114,32 ,95 ,44 ,32 ,116,114,101,101,32 ,105,110,32 ,105,112,97 ,105, 1686 95 ,108,111,99 ,97 ,108,95 ,116,114,101,101,40 ,41 ,10 ,32 ,32 ,32 ,102,111,114,
1689 114,115,40 ,99 ,102,103,46 ,114,111,99 ,107,115,95 ,116,114,101,101,115,41 ,32 , 1687 32 ,95 ,44 ,32 ,116,114,101,101,32 ,105,110,32 ,105,112,97 ,105,114,115,40 ,99 ,
1690 100,111,10 ,32 ,32 ,32 ,32 ,32 ,32 ,105,102,32 ,116,121,112,101,40 ,116,114,101, 1688 102,103,46 ,114,111,99 ,107,115,95 ,116,114,101,101,115,41 ,32 ,100,111,10 ,32 ,
1691 101,41 ,32 ,61 ,61 ,32 ,34 ,116,97 ,98 ,108,101,34 ,32 ,97 ,110,100,32 ,116,114, 1689 32 ,32 ,32 ,32 ,32 ,105,102,32 ,116,121,112,101,40 ,116,114,101,101,41 ,32 ,61 ,
1692 101,101,46 ,110,97 ,109,101,32 ,61 ,61 ,32 ,34 ,117,115,101,114,34 ,32 ,116,104, 1690 61 ,32 ,34 ,116,97 ,98 ,108,101,34 ,32 ,97 ,110,100,32 ,116,114,101,101,46 ,110,
1693 101,110,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,114,101,116,117,114,110,32 ,102, 1691 97 ,109,101,32 ,61 ,61 ,32 ,34 ,117,115,101,114,34 ,32 ,116,104,101,110,10 ,32 ,
1694 115,46 ,97 ,98 ,115,111,108,117,116,101,95 ,110,97 ,109,101,40 ,116,114,101,101, 1692 32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,114,101,116,117,114,110,32 ,102,115,46 ,97 ,98 ,
1695 46 ,114,111,111,116,41 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,101,110,100,10 ,32 ,32 ,32 , 1693 115,111,108,117,116,101,95 ,110,97 ,109,101,40 ,116,114,101,101,46 ,114,111,111,
1696 101,110,100,10 ,101,110,100,10 ,10 ,108,111,99 ,97 ,108,32 ,102,117,110,99 ,116, 1694 116,41 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,101,110,100,10 ,32 ,32 ,32 ,101,110,100,10 ,
1697 105,111,110,32 ,105,115,95 ,108,111,99 ,97 ,108,95 ,116,114,101,101,95 ,105,110, 1695 101,110,100,10 ,10 ,108,111,99 ,97 ,108,32 ,102,117,110,99 ,116,105,111,110,32 ,
1698 95 ,101,110,118,40 ,108,111,99 ,97 ,108,95 ,116,114,101,101,41 ,10 ,32 ,32 ,32 , 1696 105,115,95 ,108,111,99 ,97 ,108,95 ,116,114,101,101,95 ,105,110,95 ,101,110,118,
1699 108,111,99 ,97 ,108,32 ,108,117,97 ,95 ,112,97 ,116,104,10 ,32 ,32 ,32 ,105,102, 1697 40 ,108,111,99 ,97 ,108,95 ,116,114,101,101,41 ,10 ,32 ,32 ,32 ,108,111,99 ,97 ,
1700 32 ,95 ,86 ,69 ,82 ,83 ,73 ,79 ,78 ,32 ,61 ,61 ,32 ,34 ,76 ,117,97 ,32 ,53 ,46 , 1698 108,32 ,108,117,97 ,95 ,112,97 ,116,104,10 ,32 ,32 ,32 ,105,102,32 ,95 ,86 ,69 ,
1701 49 ,34 ,32 ,116,104,101,110,10 ,32 ,32 ,32 ,32 ,32 ,32 ,108,117,97 ,95 ,112,97 , 1699 82 ,83 ,73 ,79 ,78 ,32 ,61 ,61 ,32 ,34 ,76 ,117,97 ,32 ,53 ,46 ,49 ,34 ,32 ,116,
1702 116,104,32 ,61 ,32 ,111,115,46 ,103,101,116,101,110,118,40 ,34 ,76 ,85 ,65 ,95 , 1700 104,101,110,10 ,32 ,32 ,32 ,32 ,32 ,32 ,108,117,97 ,95 ,112,97 ,116,104,32 ,61 ,
1703 80 ,65 ,84 ,72 ,34 ,41 ,10 ,32 ,32 ,32 ,101,108,115,101,10 ,32 ,32 ,32 ,32 ,32 , 1701 32 ,111,115,46 ,103,101,116,101,110,118,40 ,34 ,76 ,85 ,65 ,95 ,80 ,65 ,84 ,72 ,
1704 32 ,108,117,97 ,95 ,112,97 ,116,104,32 ,61 ,32 ,111,115,46 ,103,101,116,101,110, 1702 34 ,41 ,10 ,32 ,32 ,32 ,101,108,115,101,10 ,32 ,32 ,32 ,32 ,32 ,32 ,108,117,97 ,
1705 118,40 ,34 ,76 ,85 ,65 ,95 ,80 ,65 ,84 ,72 ,95 ,34 ,32 ,46 ,46 ,32 ,95 ,86 ,69 , 1703 95 ,112,97 ,116,104,32 ,61 ,32 ,111,115,46 ,103,101,116,101,110,118,40 ,34 ,76 ,
1706 82 ,83 ,73 ,79 ,78 ,58 ,115,117,98 ,40 ,53 ,41 ,58 ,103,115,117,98 ,40 ,34 ,37 , 1704 85 ,65 ,95 ,80 ,65 ,84 ,72 ,95 ,34 ,32 ,46 ,46 ,32 ,95 ,86 ,69 ,82 ,83 ,73 ,79 ,
1707 46 ,34 ,44 ,32 ,34 ,95 ,34 ,41 ,41 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 , 1705 78 ,58 ,115,117,98 ,40 ,53 ,41 ,58 ,103,115,117,98 ,40 ,34 ,37 ,46 ,34 ,44 ,32 ,
1708 32 ,32 ,32 ,32 ,32 ,32 ,32 ,111,114,32 ,111,115,46 ,103,101,116,101,110,118,40 , 1706 34 ,95 ,34 ,41 ,41 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,
1709 34 ,76 ,85 ,65 ,95 ,80 ,65 ,84 ,72 ,34 ,41 ,10 ,32 ,32 ,32 ,101,110,100,10 ,32 , 1707 32 ,32 ,32 ,111,114,32 ,111,115,46 ,103,101,116,101,110,118,40 ,34 ,76 ,85 ,65 ,
1710 32 ,32 ,105,102,32 ,108,117,97 ,95 ,112,97 ,116,104,32 ,97 ,110,100,32 ,108,117, 1708 95 ,80 ,65 ,84 ,72 ,34 ,41 ,10 ,32 ,32 ,32 ,101,110,100,10 ,32 ,32 ,32 ,105,102,
1711 97 ,95 ,112,97 ,116,104,58 ,109,97 ,116,99 ,104,40 ,108,111,99 ,97 ,108,95 ,116, 1709 32 ,108,117,97 ,95 ,112,97 ,116,104,32 ,97 ,110,100,32 ,108,117,97 ,95 ,112,97 ,
1712 114,101,101,44 ,32 ,49 ,44 ,32 ,116,114,117,101,41 ,32 ,116,104,101,110,10 ,32 , 1710 116,104,58 ,109,97 ,116,99 ,104,40 ,108,111,99 ,97 ,108,95 ,116,114,101,101,44 ,
1713 32 ,32 ,32 ,32 ,32 ,114,101,116,117,114,110,32 ,116,114,117,101,10 ,32 ,32 ,32 , 1711 32 ,49 ,44 ,32 ,116,114,117,101,41 ,32 ,116,104,101,110,10 ,32 ,32 ,32 ,32 ,32 ,
1714 101,110,100,10 ,101,110,100,10 ,10 ,45 ,45 ,45 ,32 ,67 ,104,101,99 ,107,32 ,105, 1712 32 ,114,101,116,117,114,110,32 ,116,114,117,101,10 ,32 ,32 ,32 ,101,110,100,10 ,
1715 102,32 ,117,115,101,114,32 ,104,97 ,115,32 ,119,114,105,116,101,32 ,112,101,114, 1713 101,110,100,10 ,10 ,45 ,45 ,45 ,32 ,67 ,104,101,99 ,107,32 ,105,102,32 ,117,115,
1716 109,105,115,115,105,111,110,115,32 ,102,111,114,32 ,116,104,101,32 ,99 ,111,109, 1714 101,114,32 ,104,97 ,115,32 ,119,114,105,116,101,32 ,112,101,114,109,105,115,115,
1717 109,97 ,110,100,46 ,10 ,45 ,45 ,32 ,65 ,115,115,117,109,101,115,32 ,116,104,101, 1715 105,111,110,115,32 ,102,111,114,32 ,116,104,101,32 ,99 ,111,109,109,97 ,110,100,
1718 32 ,99 ,111,110,102,105,103,117,114,97 ,116,105,111,110,32 ,118,97 ,114,105,97 , 1716 46 ,10 ,45 ,45 ,32 ,65 ,115,115,117,109,101,115,32 ,116,104,101,32 ,99 ,111,110,
1719 98 ,108,101,115,32 ,117,110,100,101,114,32 ,99 ,102,103,32 ,104,97 ,118,101,32 , 1717 102,105,103,117,114,97 ,116,105,111,110,32 ,118,97 ,114,105,97 ,98 ,108,101,115,
1720 98 ,101,101,110,32 ,112,114,101,118,105,111,117,115,108,121,32 ,115,101,116,32 , 1718 32 ,117,110,100,101,114,32 ,99 ,102,103,32 ,104,97 ,118,101,32 ,98 ,101,101,110,
1721 117,112,46 ,10 ,45 ,45 ,32 ,64 ,112,97 ,114,97 ,109,32 ,97 ,114,103,115,32 ,116, 1719 32 ,112,114,101,118,105,111,117,115,108,121,32 ,115,101,116,32 ,117,112,46 ,10 ,
1722 97 ,98 ,108,101,58 ,32 ,116,104,101,32 ,97 ,114,103,115,32 ,116,97 ,98 ,108,101, 1720 45 ,45 ,32 ,64 ,112,97 ,114,97 ,109,32 ,97 ,114,103,115,32 ,116,97 ,98 ,108,101,
1723 32 ,112,97 ,115,115,101,100,32 ,116,111,32 ,114,117,110,40 ,41 ,32 ,100,114,105, 1721 58 ,32 ,116,104,101,32 ,97 ,114,103,115,32 ,116,97 ,98 ,108,101,32 ,112,97 ,115,
1724 118,101,114,115,46 ,10 ,45 ,45 ,32 ,64 ,114,101,116,117,114,110,32 ,98 ,111,111, 1722 115,101,100,32 ,116,111,32 ,114,117,110,40 ,41 ,32 ,100,114,105,118,101,114,115,
1725 108,101,97 ,110,32 ,111,114,32 ,40 ,98 ,111,111,108,101,97 ,110,44 ,32 ,115,116, 1723 46 ,10 ,45 ,45 ,32 ,64 ,114,101,116,117,114,110,32 ,98 ,111,111,108,101,97 ,110,
1726 114,105,110,103,41 ,58 ,32 ,116,114,117,101,32 ,111,110,32 ,115,117,99 ,99 ,101, 1724 32 ,111,114,32 ,40 ,98 ,111,111,108,101,97 ,110,44 ,32 ,115,116,114,105,110,103,
1727 115,115,44 ,32 ,102,97 ,108,115,101,32 ,111,110,32 ,102,97 ,105,108,117,114,101, 1725 41 ,58 ,32 ,116,114,117,101,32 ,111,110,32 ,115,117,99 ,99 ,101,115,115,44 ,32 ,
1728 44 ,10 ,45 ,45 ,32 ,112,108,117,115,32 ,97 ,110,32 ,101,114,114,111,114,32 ,109, 1726 102,97 ,108,115,101,32 ,111,110,32 ,102,97 ,105,108,117,114,101,44 ,10 ,45 ,45 ,
1729 101,115,115,97 ,103,101,46 ,10 ,102,117,110,99 ,116,105,111,110,32 ,102,115,95 , 1727 32 ,112,108,117,115,32 ,97 ,110,32 ,101,114,114,111,114,32 ,109,101,115,115,97 ,
1730 108,117,97 ,46 ,99 ,104,101,99 ,107,95 ,99 ,111,109,109,97 ,110,100,95 ,112,101, 1728 103,101,46 ,10 ,102,117,110,99 ,116,105,111,110,32 ,102,115,95 ,108,117,97 ,46 ,
1731 114,109,105,115,115,105,111,110,115,40 ,97 ,114,103,115,41 ,10 ,32 ,32 ,32 ,108, 1729 99 ,104,101,99 ,107,95 ,99 ,111,109,109,97 ,110,100,95 ,112,101,114,109,105,115,
1732 111,99 ,97 ,108,32 ,111,107,32 ,61 ,32 ,116,114,117,101,10 ,32 ,32 ,32 ,108,111, 1730 115,105,111,110,115,40 ,97 ,114,103,115,41 ,10 ,32 ,32 ,32 ,108,111,99 ,97 ,108,
1733 99 ,97 ,108,32 ,101,114,114,32 ,61 ,32 ,34 ,34 ,10 ,32 ,32 ,32 ,105,102,32 ,97 , 1731 32 ,111,107,32 ,61 ,32 ,116,114,117,101,10 ,32 ,32 ,32 ,108,111,99 ,97 ,108,32 ,
1734 114,103,115,46 ,95 ,99 ,111,109,109,97 ,110,100,95 ,112,101,114,109,105,115,115, 1732 101,114,114,32 ,61 ,32 ,34 ,34 ,10 ,32 ,32 ,32 ,105,102,32 ,97 ,114,103,115,46 ,
1735 105,111,110,115,95 ,99 ,104,101,99 ,107,101,100,32 ,116,104,101,110,10 ,32 ,32 , 1733 95 ,99 ,111,109,109,97 ,110,100,95 ,112,101,114,109,105,115,115,105,111,110,115,
1736 32 ,32 ,32 ,32 ,114,101,116,117,114,110,32 ,116,114,117,101,10 ,32 ,32 ,32 ,101, 1734 95 ,99 ,104,101,99 ,107,101,100,32 ,116,104,101,110,10 ,32 ,32 ,32 ,32 ,32 ,32 ,
1737 110,100,10 ,32 ,32 ,32 ,102,111,114,32 ,95 ,44 ,32 ,100,105,114,101,99 ,116,111, 1735 114,101,116,117,114,110,32 ,116,114,117,101,10 ,32 ,32 ,32 ,101,110,100,10 ,32 ,
1738 114,121,32 ,105,110,32 ,105,112,97 ,105,114,115,32 ,123,32 ,99 ,102,103,46 ,114, 1736 32 ,32 ,102,111,114,32 ,95 ,44 ,32 ,100,105,114,101,99 ,116,111,114,121,32 ,105,
1739 111,99 ,107,115,95 ,100,105,114,44 ,32 ,99 ,102,103,46 ,100,101,112,108,111,121, 1737 110,32 ,105,112,97 ,105,114,115,32 ,123,32 ,99 ,102,103,46 ,114,111,99 ,107,115,
1740 95 ,108,117,97 ,95 ,100,105,114,44 ,32 ,99 ,102,103,46 ,100,101,112,108,111,121, 1738 95 ,100,105,114,44 ,32 ,99 ,102,103,46 ,100,101,112,108,111,121,95 ,108,117,97 ,
1741 95 ,98 ,105,110,95 ,100,105,114,44 ,32 ,99 ,102,103,46 ,100,101,112,108,111,121, 1739 95 ,100,105,114,44 ,32 ,99 ,102,103,46 ,100,101,112,108,111,121,95 ,98 ,105,110,
1742 95 ,108,117,97 ,95 ,100,105,114,32 ,125,32 ,100,111,10 ,32 ,32 ,32 ,32 ,32 ,32 , 1740 95 ,100,105,114,44 ,32 ,99 ,102,103,46 ,100,101,112,108,111,121,95 ,108,117,97 ,
1743 105,102,32 ,102,115,46 ,101,120,105,115,116,115,40 ,100,105,114,101,99 ,116,111, 1741 95 ,100,105,114,32 ,125,32 ,100,111,10 ,32 ,32 ,32 ,32 ,32 ,32 ,105,102,32 ,102,
1744 114,121,41 ,32 ,116,104,101,110,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,105,102, 1742 115,46 ,101,120,105,115,116,115,40 ,100,105,114,101,99 ,116,111,114,121,41 ,32 ,
1745 32 ,110,111,116,32 ,102,115,46 ,105,115,95 ,119,114,105,116,97 ,98 ,108,101,40 , 1743 116,104,101,110,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,105,102,32 ,110,111,116,
1746 100,105,114,101,99 ,116,111,114,121,41 ,32 ,116,104,101,110,10 ,32 ,32 ,32 ,32 , 1744 32 ,102,115,46 ,105,115,95 ,119,114,105,116,97 ,98 ,108,101,40 ,100,105,114,101,
1747 32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,111,107,32 ,61 ,32 ,102,97 ,108,115,101,10 ,32 , 1745 99 ,116,111,114,121,41 ,32 ,116,104,101,110,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,
1748 32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,101,114,114,32 ,61 ,32 ,34 ,89 ,111, 1746 32 ,32 ,32 ,32 ,111,107,32 ,61 ,32 ,102,97 ,108,115,101,10 ,32 ,32 ,32 ,32 ,32 ,
1749 117,114,32 ,117,115,101,114,32 ,100,111,101,115,32 ,110,111,116,32 ,104,97 ,118, 1747 32 ,32 ,32 ,32 ,32 ,32 ,32 ,101,114,114,32 ,61 ,32 ,34 ,89 ,111,117,114,32 ,117,
1750 101,32 ,119,114,105,116,101,32 ,112,101,114,109,105,115,115,105,111,110,115,32 , 1748 115,101,114,32 ,100,111,101,115,32 ,110,111,116,32 ,104,97 ,118,101,32 ,119,114,
1751 105,110,32 ,34 ,32 ,46 ,46 ,32 ,100,105,114,101,99 ,116,111,114,121,10 ,32 ,32 , 1749 105,116,101,32 ,112,101,114,109,105,115,115,105,111,110,115,32 ,105,110,32 ,34 ,
1752 32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,98 ,114,101,97 ,107,10 ,32 ,32 ,32 ,32 , 1750 32 ,46 ,46 ,32 ,100,105,114,101,99 ,116,111,114,121,10 ,32 ,32 ,32 ,32 ,32 ,32 ,
1753 32 ,32 ,32 ,32 ,32 ,101,110,100,10 ,32 ,32 ,32 ,32 ,32 ,32 ,101,108,115,101,10 , 1751 32 ,32 ,32 ,32 ,32 ,32 ,98 ,114,101,97 ,107,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,
1754 32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,108,111,99 ,97 ,108,32 ,114,111,111,116,32 , 1752 32 ,101,110,100,10 ,32 ,32 ,32 ,32 ,32 ,32 ,101,108,115,101,10 ,32 ,32 ,32 ,32 ,
1755 61 ,32 ,102,115,46 ,114,111,111,116,95 ,111,102,40 ,100,105,114,101,99 ,116,111, 1753 32 ,32 ,32 ,32 ,32 ,108,111,99 ,97 ,108,32 ,114,111,111,116,32 ,61 ,32 ,102,115,
1756 114,121,41 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,108,111,99 ,97 ,108,32 ,112, 1754 46 ,114,111,111,116,95 ,111,102,40 ,100,105,114,101,99 ,116,111,114,121,41 ,10 ,
1757 97 ,114,101,110,116,32 ,61 ,32 ,100,105,114,101,99 ,116,111,114,121,10 ,32 ,32 , 1755 32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,108,111,99 ,97 ,108,32 ,112,97 ,114,101,110,
1758 32 ,32 ,32 ,32 ,32 ,32 ,32 ,114,101,112,101,97 ,116,10 ,32 ,32 ,32 ,32 ,32 ,32 , 1756 116,32 ,61 ,32 ,100,105,114,101,99 ,116,111,114,121,10 ,32 ,32 ,32 ,32 ,32 ,32 ,
1759 32 ,32 ,32 ,32 ,32 ,32 ,112,97 ,114,101,110,116,32 ,61 ,32 ,100,105,114,46 ,100, 1757 32 ,32 ,32 ,114,101,112,101,97 ,116,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,
1760 105,114,95 ,110,97 ,109,101,40 ,112,97 ,114,101,110,116,41 ,10 ,32 ,32 ,32 ,32 , 1758 32 ,32 ,112,97 ,114,101,110,116,32 ,61 ,32 ,100,105,114,46 ,100,105,114,95 ,110,
1761 32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,105,102,32 ,112,97 ,114,101,110,116,32 ,61 ,61 , 1759 97 ,109,101,40 ,112,97 ,114,101,110,116,41 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,
1762 32 ,34 ,34 ,32 ,116,104,101,110,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 , 1760 32 ,32 ,32 ,32 ,105,102,32 ,112,97 ,114,101,110,116,32 ,61 ,61 ,32 ,34 ,34 ,32 ,
1763 32 ,32 ,32 ,32 ,112,97 ,114,101,110,116,32 ,61 ,32 ,114,111,111,116,10 ,32 ,32 , 1761 116,104,101,110,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,
1764 32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,101,110,100,10 ,32 ,32 ,32 ,32 ,32 ,32 , 1762 112,97 ,114,101,110,116,32 ,61 ,32 ,114,111,111,116,10 ,32 ,32 ,32 ,32 ,32 ,32 ,
1765 32 ,32 ,32 ,117,110,116,105,108,32 ,112,97 ,114,101,110,116,32 ,61 ,61 ,32 ,114, 1763 32 ,32 ,32 ,32 ,32 ,32 ,101,110,100,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,117,
1766 111,111,116,32 ,111,114,32 ,102,115,46 ,101,120,105,115,116,115,40 ,112,97 ,114, 1764 110,116,105,108,32 ,112,97 ,114,101,110,116,32 ,61 ,61 ,32 ,114,111,111,116,32 ,
1767 101,110,116,41 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,105,102,32 ,110,111,116, 1765 111,114,32 ,102,115,46 ,101,120,105,115,116,115,40 ,112,97 ,114,101,110,116,41 ,
1768 32 ,102,115,46 ,105,115,95 ,119,114,105,116,97 ,98 ,108,101,40 ,112,97 ,114,101, 1766 10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,105,102,32 ,110,111,116,32 ,102,115,46 ,
1769 110,116,41 ,32 ,116,104,101,110,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 , 1767 105,115,95 ,119,114,105,116,97 ,98 ,108,101,40 ,112,97 ,114,101,110,116,41 ,32 ,
1770 32 ,111,107,32 ,61 ,32 ,102,97 ,108,115,101,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 , 1768 116,104,101,110,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,111,107,32 ,
1771 32 ,32 ,32 ,32 ,101,114,114,32 ,61 ,32 ,100,105,114,101,99 ,116,111,114,121,46 , 1769 61 ,32 ,102,97 ,108,115,101,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,
1772 46 ,34 ,32 ,100,111,101,115,32 ,110,111,116,32 ,101,120,105,115,116,92 ,110,97 , 1770 101,114,114,32 ,61 ,32 ,100,105,114,101,99 ,116,111,114,121,46 ,46 ,34 ,32 ,100,
1773 110,100,32 ,121,111,117,114,32 ,117,115,101,114,32 ,100,111,101,115,32 ,110,111, 1771 111,101,115,32 ,110,111,116,32 ,101,120,105,115,116,92 ,110,97 ,110,100,32 ,121,
1774 116,32 ,104,97 ,118,101,32 ,119,114,105,116,101,32 ,112,101,114,109,105,115,115, 1772 111,117,114,32 ,117,115,101,114,32 ,100,111,101,115,32 ,110,111,116,32 ,104,97 ,
1775 105,111,110,115,32 ,105,110,32 ,34 ,32 ,46 ,46 ,32 ,112,97 ,114,101,110,116,10 , 1773 118,101,32 ,119,114,105,116,101,32 ,112,101,114,109,105,115,115,105,111,110,115,
1776 32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,98 ,114,101,97 ,107,10 ,32 ,32 , 1774 32 ,105,110,32 ,34 ,32 ,46 ,46 ,32 ,112,97 ,114,101,110,116,10 ,32 ,32 ,32 ,32 ,
1777 32 ,32 ,32 ,32 ,32 ,32 ,32 ,101,110,100,10 ,32 ,32 ,32 ,32 ,32 ,32 ,101,110,100, 1775 32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,98 ,114,101,97 ,107,10 ,32 ,32 ,32 ,32 ,32 ,32 ,
1778 10 ,32 ,32 ,32 ,101,110,100,10 ,32 ,32 ,32 ,105,102,32 ,111,107,32 ,116,104,101, 1776 32 ,32 ,32 ,101,110,100,10 ,32 ,32 ,32 ,32 ,32 ,32 ,101,110,100,10 ,32 ,32 ,32 ,
1779 110,10 ,32 ,32 ,32 ,32 ,32 ,32 ,97 ,114,103,115,46 ,95 ,99 ,111,109,109,97 ,110, 1777 101,110,100,10 ,32 ,32 ,32 ,105,102,32 ,111,107,32 ,116,104,101,110,10 ,32 ,32 ,
1780 100,95 ,112,101,114,109,105,115,115,105,111,110,115,95 ,99 ,104,101,99 ,107,101, 1778 32 ,32 ,32 ,32 ,97 ,114,103,115,46 ,95 ,99 ,111,109,109,97 ,110,100,95 ,112,101,
1781 100,32 ,61 ,32 ,116,114,117,101,10 ,32 ,32 ,32 ,32 ,32 ,32 ,114,101,116,117,114, 1779 114,109,105,115,115,105,111,110,115,95 ,99 ,104,101,99 ,107,101,100,32 ,61 ,32 ,
1782 110,32 ,116,114,117,101,10 ,32 ,32 ,32 ,101,108,115,101,10 ,32 ,32 ,32 ,32 ,32 , 1780 116,114,117,101,10 ,32 ,32 ,32 ,32 ,32 ,32 ,114,101,116,117,114,110,32 ,116,114,
1783 32 ,105,102,32 ,97 ,114,103,115,91 ,34 ,108,111,99 ,97 ,108,34 ,93 ,32 ,111,114, 1781 117,101,10 ,32 ,32 ,32 ,101,108,115,101,10 ,32 ,32 ,32 ,32 ,32 ,32 ,105,102,32 ,
1784 32 ,99 ,102,103,46 ,108,111,99 ,97 ,108,95 ,98 ,121,95 ,100,101,102,97 ,117,108, 1782 97 ,114,103,115,91 ,34 ,108,111,99 ,97 ,108,34 ,93 ,32 ,111,114,32 ,99 ,102,103,
1785 116,32 ,116,104,101,110,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,101,114,114,32 , 1783 46 ,108,111,99 ,97 ,108,95 ,98 ,121,95 ,100,101,102,97 ,117,108,116,32 ,116,104,
1786 61 ,32 ,101,114,114,32 ,46 ,46 ,32 ,34 ,92 ,110,92 ,110,80 ,108,101,97 ,115,101, 1784 101,110,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,101,114,114,32 ,61 ,32 ,101,114,
1787 32 ,99 ,104,101,99 ,107,32 ,121,111,117,114,32 ,112,101,114,109,105,115,115,105, 1785 114,32 ,46 ,46 ,32 ,34 ,92 ,110,92 ,110,80 ,108,101,97 ,115,101,32 ,99 ,104,101,
1788 111,110,115,46 ,92 ,110,34 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,101,108,115,101,10 ,32 , 1786 99 ,107,32 ,121,111,117,114,32 ,112,101,114,109,105,115,115,105,111,110,115,46 ,
1789 32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,108,111,99 ,97 ,108,32 ,108,111,99 ,97 ,108,95 , 1787 92 ,110,34 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,101,108,115,101,10 ,32 ,32 ,32 ,32 ,32 ,
1790 116,114,101,101,32 ,61 ,32 ,103,101,116,95 ,108,111,99 ,97 ,108,95 ,116,114,101, 1788 32 ,32 ,32 ,32 ,108,111,99 ,97 ,108,32 ,108,111,99 ,97 ,108,95 ,116,114,101,101,
1791 101,40 ,41 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,105,102,32 ,108,111,99 ,97 , 1789 32 ,61 ,32 ,103,101,116,95 ,108,111,99 ,97 ,108,95 ,116,114,101,101,40 ,41 ,10 ,
1792 108,95 ,116,114,101,101,32 ,116,104,101,110,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 , 1790 32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,105,102,32 ,108,111,99 ,97 ,108,95 ,116,114,
1793 32 ,32 ,32 ,32 ,101,114,114,32 ,61 ,32 ,101,114,114,32 ,46 ,46 ,32 ,34 ,92 ,110, 1791 101,101,32 ,116,104,101,110,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,
1794 92 ,110,89 ,111,117,32 ,109,97 ,121,32 ,119,97 ,110,116,32 ,116,111,32 ,114,117, 1792 101,114,114,32 ,61 ,32 ,101,114,114,32 ,46 ,46 ,32 ,34 ,92 ,110,92 ,110,89 ,111,
1795 110,32 ,97 ,115,32 ,97 ,32 ,112,114,105,118,105,108,101,103,101,100,32 ,117,115, 1793 117,32 ,109,97 ,121,32 ,119,97 ,110,116,32 ,116,111,32 ,114,117,110,32 ,97 ,115,
1796 101,114,44 ,34 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 , 1794 32 ,97 ,32 ,112,114,105,118,105,108,101,103,101,100,32 ,117,115,101,114,44 ,34 ,
1797 32 ,32 ,32 ,32 ,32 ,32 ,32 ,46 ,46 ,32 ,34 ,92 ,110,111,114,32 ,117,115,101,32 , 1795 10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,
1798 45 ,45 ,108,111,99 ,97 ,108,32 ,116,111,32 ,105,110,115,116,97 ,108,108,32 ,105, 1796 32 ,32 ,32 ,46 ,46 ,32 ,34 ,92 ,110,111,114,32 ,117,115,101,32 ,45 ,45 ,108,111,
1799 110,116,111,32 ,121,111,117,114,32 ,108,111,99 ,97 ,108,32 ,116,114,101,101,32 , 1797 99 ,97 ,108,32 ,116,111,32 ,105,110,115,116,97 ,108,108,32 ,105,110,116,111,32 ,
1800 97 ,116,32 ,34 ,32 ,46 ,46 ,32 ,108,111,99 ,97 ,108,95 ,116,114,101,101,10 ,32 , 1798 121,111,117,114,32 ,108,111,99 ,97 ,108,32 ,116,114,101,101,32 ,97 ,116,32 ,34 ,
1801 32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 , 1799 32 ,46 ,46 ,32 ,108,111,99 ,97 ,108,95 ,116,114,101,101,10 ,32 ,32 ,32 ,32 ,32 ,
1802 32 ,46 ,46 ,32 ,34 ,92 ,110,111,114,32 ,114,117,110,32 ,39 ,108,117,97 ,114,111, 1800 32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,46 ,46 ,32 ,
1803 99 ,107,115,32 ,99 ,111,110,102,105,103,32 ,108,111,99 ,97 ,108,95 ,98 ,121,95 , 1801 34 ,92 ,110,111,114,32 ,114,117,110,32 ,39 ,108,117,97 ,114,111,99 ,107,115,32 ,
1804 100,101,102,97 ,117,108,116,32 ,116,114,117,101,39 ,32 ,116,111,32 ,109,97 ,107, 1802 99 ,111,110,102,105,103,32 ,108,111,99 ,97 ,108,95 ,98 ,121,95 ,100,101,102,97 ,
1805 101,32 ,45 ,45 ,108,111,99 ,97 ,108,32 ,116,104,101,32 ,100,101,102,97 ,117,108, 1803 117,108,116,32 ,116,114,117,101,39 ,32 ,116,111,32 ,109,97 ,107,101,32 ,45 ,45 ,
1806 116,46 ,92 ,110,34 ,10 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,105, 1804 108,111,99 ,97 ,108,32 ,116,104,101,32 ,100,101,102,97 ,117,108,116,46 ,92 ,110,
1807 102,32 ,110,111,116,32 ,105,115,95 ,108,111,99 ,97 ,108,95 ,116,114,101,101,95 , 1805 34 ,10 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,105,102,32 ,110,111,
1808 105,110,95 ,101,110,118,40 ,108,111,99 ,97 ,108,95 ,116,114,101,101,41 ,32 ,116, 1806 116,32 ,105,115,95 ,108,111,99 ,97 ,108,95 ,116,114,101,101,95 ,105,110,95 ,101,
1809 104,101,110,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,101, 1807 110,118,40 ,108,111,99 ,97 ,108,95 ,116,114,101,101,41 ,32 ,116,104,101,110,10 ,
1810 114,114,32 ,61 ,32 ,101,114,114,32 ,46 ,46 ,32 ,34 ,92 ,110,40 ,89 ,111,117,32 , 1808 32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,101,114,114,32 ,61 ,
1811 109,97 ,121,32 ,110,101,101,100,32 ,116,111,32 ,99 ,111,110,102,105,103,117,114, 1809 32 ,101,114,114,32 ,46 ,46 ,32 ,34 ,92 ,110,40 ,89 ,111,117,32 ,109,97 ,121,32 ,
1812 101,32 ,121,111,117,114,32 ,76 ,117,97 ,32 ,112,97 ,99 ,107,97 ,103,101,32 ,112, 1810 110,101,101,100,32 ,116,111,32 ,99 ,111,110,102,105,103,117,114,101,32 ,121,111,
1813 97 ,116,104,115,92 ,110,116,111,32 ,117,115,101,32 ,116,104,101,32 ,108,111,99 , 1811 117,114,32 ,76 ,117,97 ,32 ,112,97 ,99 ,107,97 ,103,101,32 ,112,97 ,116,104,115,
1814 97 ,108,32 ,116,114,101,101,44 ,32 ,115,101,101,32 ,39 ,108,117,97 ,114,111,99 , 1812 92 ,110,116,111,32 ,117,115,101,32 ,116,104,101,32 ,108,111,99 ,97 ,108,32 ,116,
1815 107,115,32 ,112,97 ,116,104,32 ,45 ,45 ,104,101,108,112,39 ,41 ,92 ,110,34 ,10 , 1813 114,101,101,44 ,32 ,115,101,101,32 ,39 ,108,117,97 ,114,111,99 ,107,115,32 ,112,
1816 32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,101,110,100,10 ,32 ,32 ,32 ,32 , 1814 97 ,116,104,32 ,45 ,45 ,104,101,108,112,39 ,41 ,92 ,110,34 ,10 ,32 ,32 ,32 ,32 ,
1817 32 ,32 ,32 ,32 ,32 ,101,108,115,101,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 , 1815 32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,101,110,100,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,
1818 32 ,32 ,101,114,114,32 ,61 ,32 ,101,114,114,32 ,46 ,46 ,32 ,34 ,92 ,110,92 ,110, 1816 32 ,101,108,115,101,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,101,114,
1819 89 ,111,117,32 ,109,97 ,121,32 ,119,97 ,110,116,32 ,116,111,32 ,114,117,110,32 , 1817 114,32 ,61 ,32 ,101,114,114,32 ,46 ,46 ,32 ,34 ,92 ,110,92 ,110,89 ,111,117,32 ,
1820 97 ,115,32 ,97 ,32 ,112,114,105,118,105,108,101,103,101,100,32 ,117,115,101,114, 1818 109,97 ,121,32 ,119,97 ,110,116,32 ,116,111,32 ,114,117,110,32 ,97 ,115,32 ,97 ,
1821 46 ,92 ,110,34 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,101,110,100,10 ,32 ,32 , 1819 32 ,112,114,105,118,105,108,101,103,101,100,32 ,117,115,101,114,46 ,92 ,110,34 ,
1822 32 ,32 ,32 ,32 ,101,110,100,10 ,32 ,32 ,32 ,32 ,32 ,32 ,114,101,116,117,114,110, 1820 10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,101,110,100,10 ,32 ,32 ,32 ,32 ,32 ,32 ,
1823 32 ,110,105,108,44 ,32 ,101,114,114,10 ,32 ,32 ,32 ,101,110,100,10 ,101,110,100, 1821 101,110,100,10 ,32 ,32 ,32 ,32 ,32 ,32 ,114,101,116,117,114,110,32 ,110,105,108,
1824 10 ,10 ,45 ,45 ,45 ,32 ,67 ,104,101,99 ,107,32 ,119,104,101,116,104,101,114,32 , 1822 44 ,32 ,101,114,114,10 ,32 ,32 ,32 ,101,110,100,10 ,101,110,100,10 ,10 ,45 ,45 ,
1825 97 ,32 ,102,105,108,101,32 ,105,115,32 ,97 ,32 ,76 ,117,97 ,32 ,115,99 ,114,105, 1823 45 ,32 ,67 ,104,101,99 ,107,32 ,119,104,101,116,104,101,114,32 ,97 ,32 ,102,105,
1826 112,116,10 ,45 ,45 ,32 ,87 ,104,101,110,32 ,116,104,101,32 ,102,105,108,101,32 , 1824 108,101,32 ,105,115,32 ,97 ,32 ,76 ,117,97 ,32 ,115,99 ,114,105,112,116,10 ,45 ,
1827 99 ,97 ,110,32 ,98 ,101,32 ,115,117,99 ,99 ,101,115,115,102,117,108,108,121,32 , 1825 45 ,32 ,87 ,104,101,110,32 ,116,104,101,32 ,102,105,108,101,32 ,99 ,97 ,110,32 ,
1828 99 ,111,109,112,105,108,101,100,32 ,98 ,121,32 ,116,104,101,32 ,99 ,111,110,102, 1826 98 ,101,32 ,115,117,99 ,99 ,101,115,115,102,117,108,108,121,32 ,99 ,111,109,112,
1829 105,103,117,114,101,100,10 ,45 ,45 ,32 ,76 ,117,97 ,32 ,105,110,116,101,114,112, 1827 105,108,101,100,32 ,98 ,121,32 ,116,104,101,32 ,99 ,111,110,102,105,103,117,114,
1830 114,101,116,101,114,44 ,32 ,105,116,39 ,115,32 ,99 ,111,110,115,105,100,101,114, 1828 101,100,10 ,45 ,45 ,32 ,76 ,117,97 ,32 ,105,110,116,101,114,112,114,101,116,101,
1831 101,100,32 ,116,111,32 ,98 ,101,32 ,97 ,32 ,118,97 ,108,105,100,32 ,76 ,117,97 , 1829 114,44 ,32 ,105,116,39 ,115,32 ,99 ,111,110,115,105,100,101,114,101,100,32 ,116,
1832 32 ,102,105,108,101,46 ,10 ,45 ,45 ,32 ,64 ,112,97 ,114,97 ,109,32 ,102,105,108, 1830 111,32 ,98 ,101,32 ,97 ,32 ,118,97 ,108,105,100,32 ,76 ,117,97 ,32 ,102,105,108,
1833 101,110,97 ,109,101,32 ,102,105,108,101,110,97 ,109,101,32 ,111,102,32 ,102,105, 1831 101,46 ,10 ,45 ,45 ,32 ,64 ,112,97 ,114,97 ,109,32 ,102,105,108,101,110,97 ,109,
1834 108,101,32 ,116,111,32 ,99 ,104,101,99 ,107,10 ,45 ,45 ,32 ,64 ,114,101,116,117, 1832 101,32 ,102,105,108,101,110,97 ,109,101,32 ,111,102,32 ,102,105,108,101,32 ,116,
1835 114,110,32 ,98 ,111,111,108,101,97 ,110,32 ,116,114,117,101,44 ,32 ,105,102,32 , 1833 111,32 ,99 ,104,101,99 ,107,10 ,45 ,45 ,32 ,64 ,114,101,116,117,114,110,32 ,98 ,
1836 105,116,32 ,105,115,32 ,97 ,32 ,76 ,117,97 ,32 ,115,99 ,114,105,112,116,44 ,32 , 1834 111,111,108,101,97 ,110,32 ,116,114,117,101,44 ,32 ,105,102,32 ,105,116,32 ,105,
1837 102,97 ,108,115,101,32 ,111,116,104,101,114,119,105,115,101,10 ,102,117,110,99 , 1835 115,32 ,97 ,32 ,76 ,117,97 ,32 ,115,99 ,114,105,112,116,44 ,32 ,102,97 ,108,115,
1838 116,105,111,110,32 ,102,115,95 ,108,117,97 ,46 ,105,115,95 ,108,117,97 ,40 ,102, 1836 101,32 ,111,116,104,101,114,119,105,115,101,10 ,102,117,110,99 ,116,105,111,110,
1839 105,108,101,110,97 ,109,101,41 ,10 ,32 ,32 ,102,105,108,101,110,97 ,109,101,32 , 1837 32 ,102,115,95 ,108,117,97 ,46 ,105,115,95 ,108,117,97 ,40 ,102,105,108,101,110,
1840 61 ,32 ,102,105,108,101,110,97 ,109,101,58 ,103,115,117,98 ,40 ,91 ,91 ,37 ,92 , 1838 97 ,109,101,41 ,10 ,32 ,32 ,102,105,108,101,110,97 ,109,101,32 ,61 ,32 ,102,105,
1841 93 ,93 ,44 ,34 ,47 ,34 ,41 ,32 ,32 ,32 ,45 ,45 ,32 ,110,111,114,109,97 ,108,105, 1839 108,101,110,97 ,109,101,58 ,103,115,117,98 ,40 ,91 ,91 ,37 ,92 ,93 ,93 ,44 ,34 ,
1842 122,101,32 ,111,110,32 ,102,119,32 ,115,108,97 ,115,104,32 ,116,111,32 ,112,114, 1840 47 ,34 ,41 ,32 ,32 ,32 ,45 ,45 ,32 ,110,111,114,109,97 ,108,105,122,101,32 ,111,
1843 101,118,101,110,116,32 ,101,115,99 ,97 ,112,105,110,103,32 ,105,115,115,117,101, 1841 110,32 ,102,119,32 ,115,108,97 ,115,104,32 ,116,111,32 ,112,114,101,118,101,110,
1844 115,10 ,32 ,32 ,108,111,99 ,97 ,108,32 ,108,117,97 ,32 ,61 ,32 ,102,115,46 ,81 , 1842 116,32 ,101,115,99 ,97 ,112,105,110,103,32 ,105,115,115,117,101,115,10 ,32 ,32 ,
1845 40 ,99 ,102,103,46 ,118,97 ,114,105,97 ,98 ,108,101,115,46 ,76 ,85 ,65 ,41 ,32 , 1843 108,111,99 ,97 ,108,32 ,108,117,97 ,32 ,61 ,32 ,102,115,46 ,81 ,40 ,99 ,102,103,
1846 32 ,45 ,45 ,32 ,103,101,116,32 ,108,117,97 ,32 ,105,110,116,101,114,112,114,101, 1844 46 ,118,97 ,114,105,97 ,98 ,108,101,115,46 ,76 ,85 ,65 ,41 ,32 ,32 ,45 ,45 ,32 ,
1847 116,101,114,32 ,99 ,111,110,102,105,103,117,114,101,100,10 ,32 ,32 ,45 ,45 ,32 , 1845 103,101,116,32 ,108,117,97 ,32 ,105,110,116,101,114,112,114,101,116,101,114,32 ,
1848 101,120,101,99 ,117,116,101,32 ,111,110,32 ,99 ,111,110,102,105,103,117,114,101, 1846 99 ,111,110,102,105,103,117,114,101,100,10 ,32 ,32 ,45 ,45 ,32 ,101,120,101,99 ,
1849 100,32 ,105,110,116,101,114,112,114,101,116,101,114,44 ,32 ,109,105,103,104,116, 1847 117,116,101,32 ,111,110,32 ,99 ,111,110,102,105,103,117,114,101,100,32 ,105,110,
1850 32 ,110,111,116,32 ,98 ,101,32 ,116,104,101,32 ,115,97 ,109,101,32 ,97 ,115,32 , 1848 116,101,114,112,114,101,116,101,114,44 ,32 ,109,105,103,104,116,32 ,110,111,116,
1851 116,104,101,32 ,105,110,116,101,114,112,114,101,116,101,114,32 ,76 ,82 ,32 ,105, 1849 32 ,98 ,101,32 ,116,104,101,32 ,115,97 ,109,101,32 ,97 ,115,32 ,116,104,101,32 ,
1852 115,32 ,114,117,110,32 ,111,110,10 ,32 ,32 ,108,111,99 ,97 ,108,32 ,114,101,115, 1850 105,110,116,101,114,112,114,101,116,101,114,32 ,76 ,82 ,32 ,105,115,32 ,114,117,
1853 117,108,116,32 ,61 ,32 ,102,115,46 ,101,120,101,99 ,117,116,101,95 ,115,116,114, 1851 110,32 ,111,110,10 ,32 ,32 ,108,111,99 ,97 ,108,32 ,114,101,115,117,108,116,32 ,
1854 105,110,103,40 ,108,117,97 ,46 ,46 ,91 ,91 ,32 ,45 ,101,32 ,34 ,105,102,32 ,108, 1852 61 ,32 ,102,115,46 ,101,120,101,99 ,117,116,101,95 ,115,116,114,105,110,103,40 ,
1855 111,97 ,100,102,105,108,101,40 ,39 ,93 ,93 ,46 ,46 ,102,105,108,101,110,97 ,109, 1853 108,117,97 ,46 ,46 ,91 ,91 ,32 ,45 ,101,32 ,34 ,105,102,32 ,108,111,97 ,100,102,
1856 101,46 ,46 ,91 ,91 ,39 ,41 ,32 ,116,104,101,110,32 ,111,115,46 ,101,120,105,116, 1854 105,108,101,40 ,39 ,93 ,93 ,46 ,46 ,102,105,108,101,110,97 ,109,101,46 ,46 ,91 ,
1857 40 ,48 ,41 ,32 ,101,108,115,101,32 ,111,115,46 ,101,120,105,116,40 ,49 ,41 ,32 , 1855 91 ,39 ,41 ,32 ,116,104,101,110,32 ,111,115,46 ,101,120,105,116,40 ,48 ,41 ,32 ,
1858 101,110,100,34 ,93 ,93 ,41 ,10 ,32 ,32 ,114,101,116,117,114,110,32 ,40 ,114,101, 1856 101,108,115,101,32 ,111,115,46 ,101,120,105,116,40 ,49 ,41 ,32 ,101,110,100,34 ,
1859 115,117,108,116,32 ,61 ,61 ,32 ,116,114,117,101,41 ,10 ,101,110,100,10 ,10 ,45 , 1857 93 ,93 ,41 ,10 ,32 ,32 ,114,101,116,117,114,110,32 ,40 ,114,101,115,117,108,116,
1860 45 ,45 ,32 ,85 ,110,112,97 ,99 ,107,32 ,97 ,110,32 ,97 ,114,99 ,104,105,118,101, 1858 32 ,61 ,61 ,32 ,116,114,117,101,41 ,10 ,101,110,100,10 ,10 ,45 ,45 ,45 ,32 ,85 ,
1861 46 ,10 ,45 ,45 ,32 ,69 ,120,116,114,97 ,99 ,116,32 ,116,104,101,32 ,99 ,111,110, 1859 110,112,97 ,99 ,107,32 ,97 ,110,32 ,97 ,114,99 ,104,105,118,101,46 ,10 ,45 ,45 ,
1862 116,101,110,116,115,32 ,111,102,32 ,97 ,110,32 ,97 ,114,99 ,104,105,118,101,44 , 1860 32 ,69 ,120,116,114,97 ,99 ,116,32 ,116,104,101,32 ,99 ,111,110,116,101,110,116,
1863 32 ,100,101,116,101,99 ,116,105,110,103,32 ,105,116,115,32 ,102,111,114,109,97 , 1861 115,32 ,111,102,32 ,97 ,110,32 ,97 ,114,99 ,104,105,118,101,44 ,32 ,100,101,116,
1864 116,32 ,98 ,121,10 ,45 ,45 ,32 ,102,105,108,101,110,97 ,109,101,32 ,101,120,116, 1862 101,99 ,116,105,110,103,32 ,105,116,115,32 ,102,111,114,109,97 ,116,32 ,98 ,121,
1865 101,110,115,105,111,110,46 ,10 ,45 ,45 ,32 ,64 ,112,97 ,114,97 ,109,32 ,97 ,114, 1863 10 ,45 ,45 ,32 ,102,105,108,101,110,97 ,109,101,32 ,101,120,116,101,110,115,105,
1866 99 ,104,105,118,101,32 ,115,116,114,105,110,103,58 ,32 ,70 ,105,108,101,110,97 , 1864 111,110,46 ,10 ,45 ,45 ,32 ,64 ,112,97 ,114,97 ,109,32 ,97 ,114,99 ,104,105,118,
1867 109,101,32 ,111,102,32 ,97 ,114,99 ,104,105,118,101,46 ,10 ,45 ,45 ,32 ,64 ,114, 1865 101,32 ,115,116,114,105,110,103,58 ,32 ,70 ,105,108,101,110,97 ,109,101,32 ,111,
1868 101,116,117,114,110,32 ,98 ,111,111,108,101,97 ,110,32 ,111,114,32 ,40 ,98 ,111, 1866 102,32 ,97 ,114,99 ,104,105,118,101,46 ,10 ,45 ,45 ,32 ,64 ,114,101,116,117,114,
1869 111,108,101,97 ,110,44 ,32 ,115,116,114,105,110,103,41 ,58 ,32 ,116,114,117,101, 1867 110,32 ,98 ,111,111,108,101,97 ,110,32 ,111,114,32 ,40 ,98 ,111,111,108,101,97 ,
1870 32 ,111,110,32 ,115,117,99 ,99 ,101,115,115,44 ,32 ,102,97 ,108,115,101,32 ,97 , 1868 110,44 ,32 ,115,116,114,105,110,103,41 ,58 ,32 ,116,114,117,101,32 ,111,110,32 ,
1871 110,100,32 ,97 ,110,32 ,101,114,114,111,114,32 ,109,101,115,115,97 ,103,101,32 , 1869 115,117,99 ,99 ,101,115,115,44 ,32 ,102,97 ,108,115,101,32 ,97 ,110,100,32 ,97 ,
1872 111,110,32 ,102,97 ,105,108,117,114,101,46 ,10 ,102,117,110,99 ,116,105,111,110, 1870 110,32 ,101,114,114,111,114,32 ,109,101,115,115,97 ,103,101,32 ,111,110,32 ,102,
1873 32 ,102,115,95 ,108,117,97 ,46 ,117,110,112,97 ,99 ,107,95 ,97 ,114,99 ,104,105, 1871 97 ,105,108,117,114,101,46 ,10 ,102,117,110,99 ,116,105,111,110,32 ,102,115,95 ,
1874 118,101,40 ,97 ,114,99 ,104,105,118,101,41 ,10 ,32 ,32 ,32 ,97 ,115,115,101,114, 1872 108,117,97 ,46 ,117,110,112,97 ,99 ,107,95 ,97 ,114,99 ,104,105,118,101,40 ,97 ,
1875 116,40 ,116,121,112,101,40 ,97 ,114,99 ,104,105,118,101,41 ,32 ,61 ,61 ,32 ,34 , 1873 114,99 ,104,105,118,101,41 ,10 ,32 ,32 ,32 ,97 ,115,115,101,114,116,40 ,116,121,
1876 115,116,114,105,110,103,34 ,41 ,10 ,10 ,32 ,32 ,32 ,108,111,99 ,97 ,108,32 ,111, 1874 112,101,40 ,97 ,114,99 ,104,105,118,101,41 ,32 ,61 ,61 ,32 ,34 ,115,116,114,105,
1877 107,44 ,32 ,101,114,114,10 ,32 ,32 ,32 ,97 ,114,99 ,104,105,118,101,32 ,61 ,32 , 1875 110,103,34 ,41 ,10 ,10 ,32 ,32 ,32 ,108,111,99 ,97 ,108,32 ,111,107,44 ,32 ,101,
1878 102,115,46 ,97 ,98 ,115,111,108,117,116,101,95 ,110,97 ,109,101,40 ,97 ,114,99 , 1876 114,114,10 ,32 ,32 ,32 ,97 ,114,99 ,104,105,118,101,32 ,61 ,32 ,102,115,46 ,97 ,
1879 104,105,118,101,41 ,10 ,32 ,32 ,32 ,105,102,32 ,97 ,114,99 ,104,105,118,101,58 , 1877 98 ,115,111,108,117,116,101,95 ,110,97 ,109,101,40 ,97 ,114,99 ,104,105,118,101,
1880 109,97 ,116,99 ,104,40 ,34 ,37 ,46 ,116,97 ,114,37 ,46 ,103,122,36 ,34 ,41 ,32 , 1878 41 ,10 ,32 ,32 ,32 ,105,102,32 ,97 ,114,99 ,104,105,118,101,58 ,109,97 ,116,99 ,
1881 116,104,101,110,10 ,32 ,32 ,32 ,32 ,32 ,32 ,108,111,99 ,97 ,108,32 ,116,97 ,114, 1879 104,40 ,34 ,37 ,46 ,116,97 ,114,37 ,46 ,103,122,36 ,34 ,41 ,32 ,116,104,101,110,
1882 95 ,102,105,108,101,110,97 ,109,101,32 ,61 ,32 ,97 ,114,99 ,104,105,118,101,58 , 1880 10 ,32 ,32 ,32 ,32 ,32 ,32 ,108,111,99 ,97 ,108,32 ,116,97 ,114,95 ,102,105,108,
1883 103,115,117,98 ,40 ,34 ,37 ,46 ,103,122,36 ,34 ,44 ,32 ,34 ,34 ,41 ,10 ,32 ,32 , 1881 101,110,97 ,109,101,32 ,61 ,32 ,97 ,114,99 ,104,105,118,101,58 ,103,115,117,98 ,
1884 32 ,32 ,32 ,32 ,111,107,44 ,32 ,101,114,114,32 ,61 ,32 ,102,115,46 ,103,117,110, 1882 40 ,34 ,37 ,46 ,103,122,36 ,34 ,44 ,32 ,34 ,34 ,41 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,
1885 122,105,112,40 ,97 ,114,99 ,104,105,118,101,44 ,32 ,116,97 ,114,95 ,102,105,108, 1883 111,107,44 ,32 ,101,114,114,32 ,61 ,32 ,102,115,46 ,103,117,110,122,105,112,40 ,
1884 97 ,114,99 ,104,105,118,101,44 ,32 ,116,97 ,114,95 ,102,105,108,101,110,97 ,109,
1885 101,41 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,105,102,32 ,111,107,32 ,116,104,101,110,10 ,
1886 32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,111,107,44 ,32 ,101,114,114,32 ,61 ,32 ,116,
1887 97 ,114,46 ,117,110,116,97 ,114,40 ,116,97 ,114,95 ,102,105,108,101,110,97 ,109,
1888 101,44 ,32 ,34 ,46 ,34 ,41 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,101,110,100,10 ,32 ,32 ,
1889 32 ,101,108,115,101,105,102,32 ,97 ,114,99 ,104,105,118,101,58 ,109,97 ,116,99 ,
1890 104,40 ,34 ,37 ,46 ,116,103,122,36 ,34 ,41 ,32 ,116,104,101,110,10 ,32 ,32 ,32 ,
1891 32 ,32 ,32 ,108,111,99 ,97 ,108,32 ,116,97 ,114,95 ,102,105,108,101,110,97 ,109,
1892 101,32 ,61 ,32 ,97 ,114,99 ,104,105,118,101,58 ,103,115,117,98 ,40 ,34 ,37 ,46 ,
1893 116,103,122,36 ,34 ,44 ,32 ,34 ,46 ,116,97 ,114,34 ,41 ,10 ,32 ,32 ,32 ,32 ,32 ,
1894 32 ,111,107,44 ,32 ,101,114,114,32 ,61 ,32 ,102,115,46 ,103,117,110,122,105,112,
1895 40 ,97 ,114,99 ,104,105,118,101,44 ,32 ,116,97 ,114,95 ,102,105,108,101,110,97 ,
1896 109,101,41 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,105,102,32 ,111,107,32 ,116,104,101,110,
1897 10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,111,107,44 ,32 ,101,114,114,32 ,61 ,32 ,
1898 116,97 ,114,46 ,117,110,116,97 ,114,40 ,116,97 ,114,95 ,102,105,108,101,110,97 ,
1899 109,101,44 ,32 ,34 ,46 ,34 ,41 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,101,110,100,10 ,32 ,
1900 32 ,32 ,101,108,115,101,105,102,32 ,97 ,114,99 ,104,105,118,101,58 ,109,97 ,116,
1901 99 ,104,40 ,34 ,37 ,46 ,116,97 ,114,37 ,46 ,98 ,122,50 ,36 ,34 ,41 ,32 ,116,104,
1902 101,110,10 ,32 ,32 ,32 ,32 ,32 ,32 ,108,111,99 ,97 ,108,32 ,116,97 ,114,95 ,102,
1903 105,108,101,110,97 ,109,101,32 ,61 ,32 ,97 ,114,99 ,104,105,118,101,58 ,103,115,
1904 117,98 ,40 ,34 ,37 ,46 ,98 ,122,50 ,36 ,34 ,44 ,32 ,34 ,34 ,41 ,10 ,32 ,32 ,32 ,
1905 32 ,32 ,32 ,111,107,44 ,32 ,101,114,114,32 ,61 ,32 ,102,115,46 ,98 ,117,110,122,
1906 105,112,50 ,40 ,97 ,114,99 ,104,105,118,101,44 ,32 ,116,97 ,114,95 ,102,105,108,
1886 101,110,97 ,109,101,41 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,105,102,32 ,111,107,32 ,116, 1907 101,110,97 ,109,101,41 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,105,102,32 ,111,107,32 ,116,
1887 104,101,110,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,111,107,44 ,32 ,101,114,114, 1908 104,101,110,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,111,107,44 ,32 ,101,114,114,
1888 32 ,61 ,32 ,116,97 ,114,46 ,117,110,116,97 ,114,40 ,116,97 ,114,95 ,102,105,108, 1909 32 ,61 ,32 ,116,97 ,114,46 ,117,110,116,97 ,114,40 ,116,97 ,114,95 ,102,105,108,
1889 101,110,97 ,109,101,44 ,32 ,34 ,46 ,34 ,41 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,101,110, 1910 101,110,97 ,109,101,44 ,32 ,34 ,46 ,34 ,41 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,101,110,
1890 100,10 ,32 ,32 ,32 ,101,108,115,101,105,102,32 ,97 ,114,99 ,104,105,118,101,58 , 1911 100,10 ,32 ,32 ,32 ,101,108,115,101,105,102,32 ,97 ,114,99 ,104,105,118,101,58 ,
1891 109,97 ,116,99 ,104,40 ,34 ,37 ,46 ,116,103,122,36 ,34 ,41 ,32 ,116,104,101,110, 1912 109,97 ,116,99 ,104,40 ,34 ,37 ,46 ,122,105,112,36 ,34 ,41 ,32 ,116,104,101,110,
1892 10 ,32 ,32 ,32 ,32 ,32 ,32 ,108,111,99 ,97 ,108,32 ,116,97 ,114,95 ,102,105,108,
1893 101,110,97 ,109,101,32 ,61 ,32 ,97 ,114,99 ,104,105,118,101,58 ,103,115,117,98 ,
1894 40 ,34 ,37 ,46 ,116,103,122,36 ,34 ,44 ,32 ,34 ,46 ,116,97 ,114,34 ,41 ,10 ,32 ,
1895 32 ,32 ,32 ,32 ,32 ,111,107,44 ,32 ,101,114,114,32 ,61 ,32 ,102,115,46 ,103,117,
1896 110,122,105,112,40 ,97 ,114,99 ,104,105,118,101,44 ,32 ,116,97 ,114,95 ,102,105,
1897 108,101,110,97 ,109,101,41 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,105,102,32 ,111,107,32 ,
1898 116,104,101,110,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,111,107,44 ,32 ,101,114,
1899 114,32 ,61 ,32 ,116,97 ,114,46 ,117,110,116,97 ,114,40 ,116,97 ,114,95 ,102,105,
1900 108,101,110,97 ,109,101,44 ,32 ,34 ,46 ,34 ,41 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,101,
1901 110,100,10 ,32 ,32 ,32 ,101,108,115,101,105,102,32 ,97 ,114,99 ,104,105,118,101,
1902 58 ,109,97 ,116,99 ,104,40 ,34 ,37 ,46 ,116,97 ,114,37 ,46 ,98 ,122,50 ,36 ,34 ,
1903 41 ,32 ,116,104,101,110,10 ,32 ,32 ,32 ,32 ,32 ,32 ,108,111,99 ,97 ,108,32 ,116,
1904 97 ,114,95 ,102,105,108,101,110,97 ,109,101,32 ,61 ,32 ,97 ,114,99 ,104,105,118,
1905 101,58 ,103,115,117,98 ,40 ,34 ,37 ,46 ,98 ,122,50 ,36 ,34 ,44 ,32 ,34 ,34 ,41 ,
1906 10 ,32 ,32 ,32 ,32 ,32 ,32 ,111,107,44 ,32 ,101,114,114,32 ,61 ,32 ,102,115,46 , 1913 10 ,32 ,32 ,32 ,32 ,32 ,32 ,111,107,44 ,32 ,101,114,114,32 ,61 ,32 ,102,115,46 ,
1907 98 ,117,110,122,105,112,50 ,40 ,97 ,114,99 ,104,105,118,101,44 ,32 ,116,97 ,114, 1914 117,110,122,105,112,40 ,97 ,114,99 ,104,105,118,101,41 ,10 ,32 ,32 ,32 ,101,108,
1908 95 ,102,105,108,101,110,97 ,109,101,41 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,105,102,32 , 1915 115,101,105,102,32 ,97 ,114,99 ,104,105,118,101,58 ,109,97 ,116,99 ,104,40 ,34 ,
1909 111,107,32 ,116,104,101,110,10 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,32 ,111,107,44 , 1916 37 ,46 ,108,117,97 ,36 ,34 ,41 ,32 ,111,114,32 ,97 ,114,99 ,104,105,118,101,58 ,
1910 32 ,101,114,114,32 ,61 ,32 ,116,97 ,114,46 ,117,110,116,97 ,114,40 ,116,97 ,114, 1917 109,97 ,116,99 ,104,40 ,34 ,37 ,46 ,99 ,36 ,34 ,41 ,32 ,116,104,101,110,10 ,32 ,
1911 95 ,102,105,108,101,110,97 ,109,101,44 ,32 ,34 ,46 ,34 ,41 ,10 ,32 ,32 ,32 ,32 , 1918 32 ,32 ,32 ,32 ,32 ,45 ,45 ,32 ,73 ,103,110,111,114,101,32 ,46 ,108,117,97 ,32 ,
1912 32 ,32 ,101,110,100,10 ,32 ,32 ,32 ,101,108,115,101,105,102,32 ,97 ,114,99 ,104, 1919 97 ,110,100,32 ,46 ,99 ,32 ,102,105,108,101,115,59 ,32 ,116,104,101,121,32 ,100,
1913 105,118,101,58 ,109,97 ,116,99 ,104,40 ,34 ,37 ,46 ,122,105,112,36 ,34 ,41 ,32 , 1920 111,110,39 ,116,32 ,110,101,101,100,32 ,116,111,32 ,98 ,101,32 ,101,120,116,114,
1914 116,104,101,110,10 ,32 ,32 ,32 ,32 ,32 ,32 ,111,107,44 ,32 ,101,114,114,32 ,61 , 1921 97 ,99 ,116,101,100,46 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,114,101,116,117,114,110,32 ,
1915 32 ,102,115,46 ,117,110,122,105,112,40 ,97 ,114,99 ,104,105,118,101,41 ,10 ,32 , 1922 116,114,117,101,10 ,32 ,32 ,32 ,101,108,115,101,10 ,32 ,32 ,32 ,32 ,32 ,32 ,114,
1916 32 ,32 ,101,108,115,101,105,102,32 ,97 ,114,99 ,104,105,118,101,58 ,109,97 ,116, 1923 101,116,117,114,110,32 ,102,97 ,108,115,101,44 ,32 ,34 ,67 ,111,117,108,100,110,
1917 99 ,104,40 ,34 ,37 ,46 ,108,117,97 ,36 ,34 ,41 ,32 ,111,114,32 ,97 ,114,99 ,104, 1924 39 ,116,32 ,101,120,116,114,97 ,99 ,116,32 ,97 ,114,99 ,104,105,118,101,32 ,34 ,
1918 105,118,101,58 ,109,97 ,116,99 ,104,40 ,34 ,37 ,46 ,99 ,36 ,34 ,41 ,32 ,116,104, 1925 46 ,46 ,97 ,114,99 ,104,105,118,101,46 ,46 ,34 ,58 ,32 ,117,110,114,101,99 ,111,
1919 101,110,10 ,32 ,32 ,32 ,32 ,32 ,32 ,45 ,45 ,32 ,73 ,103,110,111,114,101,32 ,46 , 1926 103,110,105,122,101,100,32 ,102,105,108,101,110,97 ,109,101,32 ,101,120,116,101,
1920 108,117,97 ,32 ,97 ,110,100,32 ,46 ,99 ,32 ,102,105,108,101,115,59 ,32 ,116,104, 1927 110,115,105,111,110,34 ,10 ,32 ,32 ,32 ,101,110,100,10 ,32 ,32 ,32 ,105,102,32 ,
1921 101,121,32 ,100,111,110,39 ,116,32 ,110,101,101,100,32 ,116,111,32 ,98 ,101,32 , 1928 110,111,116,32 ,111,107,32 ,116,104,101,110,10 ,32 ,32 ,32 ,32 ,32 ,32 ,114,101,
1922 101,120,116,114,97 ,99 ,116,101,100,46 ,10 ,32 ,32 ,32 ,32 ,32 ,32 ,114,101,116, 1929 116,117,114,110,32 ,102,97 ,108,115,101,44 ,32 ,34 ,70 ,97 ,105,108,101,100,32 ,
1923 117,114,110,32 ,116,114,117,101,10 ,32 ,32 ,32 ,101,108,115,101,10 ,32 ,32 ,32 , 1930 101,120,116,114,97 ,99 ,116,105,110,103,32 ,34 ,46 ,46 ,97 ,114,99 ,104,105,118,
1924 32 ,32 ,32 ,114,101,116,117,114,110,32 ,102,97 ,108,115,101,44 ,32 ,34 ,67 ,111, 1931 101,46 ,46 ,34 ,58 ,32 ,34 ,46 ,46 ,101,114,114,10 ,32 ,32 ,32 ,101,110,100,10 ,
1925 117,108,100,110,39 ,116,32 ,101,120,116,114,97 ,99 ,116,32 ,97 ,114,99 ,104,105, 1932 32 ,32 ,32 ,114,101,116,117,114,110,32 ,116,114,117,101,10 ,101,110,100,10 ,10 ,
1926 118,101,32 ,34 ,46 ,46 ,97 ,114,99 ,104,105,118,101,46 ,46 ,34 ,58 ,32 ,117,110, 1933 114,101,116,117,114,110,32 ,102,115,95 ,108,117,97 ,10 ,
1927 114,101,99 ,111,103,110,105,122,101,100,32 ,102,105,108,101,110,97 ,109,101,32 ,
1928 101,120,116,101,110,115,105,111,110,34 ,10 ,32 ,32 ,32 ,101,110,100,10 ,32 ,32 ,
1929 32 ,105,102,32 ,110,111,116,32 ,111,107,32 ,116,104,101,110,10 ,32 ,32 ,32 ,32 ,
1930 32 ,32 ,114,101,116,117,114,110,32 ,102,97 ,108,115,101,44 ,32 ,34 ,70 ,97 ,105,
1931 108,101,100,32 ,101,120,116,114,97 ,99 ,116,105,110,103,32 ,34 ,46 ,46 ,97 ,114,
1932 99 ,104,105,118,101,46 ,46 ,34 ,58 ,32 ,34 ,46 ,46 ,101,114,114,10 ,32 ,32 ,32 ,
1933 101,110,100,10 ,32 ,32 ,32 ,114,101,116,117,114,110,32 ,116,114,117,101,10 ,101,
1934 110,100,10 ,10 ,114,101,116,117,114,110,32 ,102,115,95 ,108,117,97 ,10 ,
1935}; 1934};
1936 1935
diff --git a/gen/main.h b/gen/main.h
index dfa9d106..83fd6e92 100644
--- a/gen/main.h
+++ b/gen/main.h
@@ -1,59 +1,68 @@
1/* automatically generated by bootstrap.tl */ 1/* automatically generated by bootstrap.tl */
2 2
3static const unsigned char luarocks_gen_main[] = { 3static const unsigned char luarocks_gen_main[] = {
4 10 ,45 ,45 ,32 ,76 ,111,97 ,100,32 ,99 ,102,103,32 ,102,105,114,115,116,32 ,115, 4 10 ,105,102,32 ,111,115,46 ,103,101,116,101,110,118,40 ,34 ,76 ,85 ,65 ,82 ,79 ,
5 111,32 ,116,104,97 ,116,32 ,116,104,101,32 ,108,111,97 ,100,101,114,32 ,107,110, 5 67 ,75 ,83 ,95 ,68 ,69 ,66 ,85 ,71 ,34 ,41 ,32 ,116,104,101,110,10 ,32 ,32 ,32 ,
6 111,119,115,32 ,105,116,32 ,105,115,32 ,114,117,110,110,105,110,103,32 ,105,110, 6 108,111,99 ,97 ,108,32 ,116,108,32 ,61 ,32 ,114,101,113,117,105,114,101,40 ,34 ,
7 115,105,100,101,32 ,76 ,117,97 ,82 ,111,99 ,107,115,10 ,108,111,99 ,97 ,108,32 , 7 116,108,34 ,41 ,10 ,32 ,32 ,32 ,116,108,46 ,112,97 ,116,104,32 ,61 ,32 ,34 ,46 ,
8 99 ,102,103,32 ,61 ,32 ,114,101,113,117,105,114,101,40 ,34 ,108,117,97 ,114,111, 8 47 ,115,114,99 ,47 ,63 ,46 ,116,108,34 ,10 ,32 ,32 ,32 ,116,108,46 ,108,111,97 ,
9 99 ,107,115,46 ,99 ,111,114,101,46 ,99 ,102,103,34 ,41 ,10 ,10 ,108,111,99 ,97 , 9 100,101,114,40 ,41 ,10 ,32 ,32 ,32 ,108,111,99 ,97 ,108,32 ,116,108,95 ,108,111,
10 108,32 ,108,111,97 ,100,101,114,32 ,61 ,32 ,114,101,113,117,105,114,101,40 ,34 , 10 97 ,100,101,114,32 ,61 ,32 ,116,97 ,98 ,108,101,46 ,114,101,109,111,118,101,40 ,
11 108,117,97 ,114,111,99 ,107,115,46 ,108,111,97 ,100,101,114,34 ,41 ,10 ,108,111, 11 112,97 ,99 ,107,97 ,103,101,46 ,115,101,97 ,114,99 ,104,101,114,115,44 ,32 ,50 ,
12 99 ,97 ,108,32 ,99 ,109,100,32 ,61 ,32 ,114,101,113,117,105,114,101,40 ,34 ,108, 12 41 ,10 ,32 ,32 ,32 ,116,97 ,98 ,108,101,46 ,105,110,115,101,114,116,40 ,112,97 ,
13 117,97 ,114,111,99 ,107,115,46 ,99 ,109,100,34 ,41 ,10 ,10 ,108,111,99 ,97 ,108, 13 99 ,107,97 ,103,101,46 ,115,101,97 ,114,99 ,104,101,114,115,44 ,32 ,49 ,44 ,32 ,
14 32 ,100,101,115,99 ,114,105,112,116,105,111,110,32 ,61 ,32 ,34 ,76 ,117,97 ,82 , 14 116,108,95 ,108,111,97 ,100,101,114,41 ,10 ,101,110,100,10 ,10 ,45 ,45 ,32 ,76 ,
15 111,99 ,107,115,32 ,109,97 ,105,110,32 ,99 ,111,109,109,97 ,110,100,45 ,108,105, 15 111,97 ,100,32 ,99 ,102,103,32 ,102,105,114,115,116,32 ,115,111,32 ,116,104,97 ,
16 110,101,32 ,105,110,116,101,114,102,97 ,99 ,101,34 ,10 ,10 ,108,111,99 ,97 ,108, 16 116,32 ,116,104,101,32 ,108,111,97 ,100,101,114,32 ,107,110,111,119,115,32 ,105,
17 32 ,99 ,111,109,109,97 ,110,100,115,32 ,61 ,32 ,123,10 ,32 ,32 ,32 ,105,110,105, 17 116,32 ,105,115,32 ,114,117,110,110,105,110,103,32 ,105,110,115,105,100,101,32 ,
18 116,32 ,61 ,32 ,34 ,108,117,97 ,114,111,99 ,107,115,46 ,99 ,109,100,46 ,105,110, 18 76 ,117,97 ,82 ,111,99 ,107,115,10 ,10 ,108,111,99 ,97 ,108,32 ,99 ,102,103,32 ,
19 105,116,34 ,44 ,10 ,32 ,32 ,32 ,112,97 ,99 ,107,32 ,61 ,32 ,34 ,108,117,97 ,114, 19 61 ,32 ,114,101,113,117,105,114,101,40 ,34 ,108,117,97 ,114,111,99 ,107,115,46 ,
20 111,99 ,107,115,46 ,99 ,109,100,46 ,112,97 ,99 ,107,34 ,44 ,10 ,32 ,32 ,32 ,117, 20 99 ,111,114,101,46 ,99 ,102,103,34 ,41 ,10 ,10 ,108,111,99 ,97 ,108,32 ,99 ,109,
21 110,112,97 ,99 ,107,32 ,61 ,32 ,34 ,108,117,97 ,114,111,99 ,107,115,46 ,99 ,109, 21 100,32 ,61 ,32 ,114,101,113,117,105,114,101,40 ,34 ,108,117,97 ,114,111,99 ,107,
22 100,46 ,117,110,112,97 ,99 ,107,34 ,44 ,10 ,32 ,32 ,32 ,98 ,117,105,108,100,32 , 22 115,46 ,99 ,109,100,34 ,41 ,10 ,10 ,108,111,99 ,97 ,108,32 ,100,101,115,99 ,114,
23 61 ,32 ,34 ,108,117,97 ,114,111,99 ,107,115,46 ,99 ,109,100,46 ,98 ,117,105,108, 23 105,112,116,105,111,110,32 ,61 ,32 ,34 ,76 ,117,97 ,82 ,111,99 ,107,115,32 ,109,
24 100,34 ,44 ,10 ,32 ,32 ,32 ,105,110,115,116,97 ,108,108,32 ,61 ,32 ,34 ,108,117, 24 97 ,105,110,32 ,99 ,111,109,109,97 ,110,100,45 ,108,105,110,101,32 ,105,110,116,
25 97 ,114,111,99 ,107,115,46 ,99 ,109,100,46 ,105,110,115,116,97 ,108,108,34 ,44 , 25 101,114,102,97 ,99 ,101,34 ,10 ,10 ,108,111,99 ,97 ,108,32 ,99 ,111,109,109,97 ,
26 10 ,32 ,32 ,32 ,115,101,97 ,114,99 ,104,32 ,61 ,32 ,34 ,108,117,97 ,114,111,99 , 26 110,100,115,32 ,61 ,32 ,123,10 ,32 ,32 ,32 ,105,110,105,116,32 ,61 ,32 ,34 ,108,
27 107,115,46 ,99 ,109,100,46 ,115,101,97 ,114,99 ,104,34 ,44 ,10 ,32 ,32 ,32 ,108, 27 117,97 ,114,111,99 ,107,115,46 ,99 ,109,100,46 ,105,110,105,116,34 ,44 ,10 ,32 ,
28 105,115,116,32 ,61 ,32 ,34 ,108,117,97 ,114,111,99 ,107,115,46 ,99 ,109,100,46 , 28 32 ,32 ,112,97 ,99 ,107,32 ,61 ,32 ,34 ,108,117,97 ,114,111,99 ,107,115,46 ,99 ,
29 108,105,115,116,34 ,44 ,10 ,32 ,32 ,32 ,114,101,109,111,118,101,32 ,61 ,32 ,34 , 29 109,100,46 ,112,97 ,99 ,107,34 ,44 ,10 ,32 ,32 ,32 ,117,110,112,97 ,99 ,107,32 ,
30 108,117,97 ,114,111,99 ,107,115,46 ,99 ,109,100,46 ,114,101,109,111,118,101,34 , 30 61 ,32 ,34 ,108,117,97 ,114,111,99 ,107,115,46 ,99 ,109,100,46 ,117,110,112,97 ,
31 44 ,10 ,32 ,32 ,32 ,109,97 ,107,101,32 ,61 ,32 ,34 ,108,117,97 ,114,111,99 ,107, 31 99 ,107,34 ,44 ,10 ,32 ,32 ,32 ,98 ,117,105,108,100,32 ,61 ,32 ,34 ,108,117,97 ,
32 115,46 ,99 ,109,100,46 ,109,97 ,107,101,34 ,44 ,10 ,32 ,32 ,32 ,100,111,119,110, 32 114,111,99 ,107,115,46 ,99 ,109,100,46 ,98 ,117,105,108,100,34 ,44 ,10 ,32 ,32 ,
33 108,111,97 ,100,32 ,61 ,32 ,34 ,108,117,97 ,114,111,99 ,107,115,46 ,99 ,109,100, 33 32 ,105,110,115,116,97 ,108,108,32 ,61 ,32 ,34 ,108,117,97 ,114,111,99 ,107,115,
34 46 ,100,111,119,110,108,111,97 ,100,34 ,44 ,10 ,32 ,32 ,32 ,112,97 ,116,104,32 , 34 46 ,99 ,109,100,46 ,105,110,115,116,97 ,108,108,34 ,44 ,10 ,32 ,32 ,32 ,115,101,
35 61 ,32 ,34 ,108,117,97 ,114,111,99 ,107,115,46 ,99 ,109,100,46 ,112,97 ,116,104, 35 97 ,114,99 ,104,32 ,61 ,32 ,34 ,108,117,97 ,114,111,99 ,107,115,46 ,99 ,109,100,
36 34 ,44 ,10 ,32 ,32 ,32 ,115,104,111,119,32 ,61 ,32 ,34 ,108,117,97 ,114,111,99 , 36 46 ,115,101,97 ,114,99 ,104,34 ,44 ,10 ,32 ,32 ,32 ,108,105,115,116,32 ,61 ,32 ,
37 107,115,46 ,99 ,109,100,46 ,115,104,111,119,34 ,44 ,10 ,32 ,32 ,32 ,110,101,119, 37 34 ,108,117,97 ,114,111,99 ,107,115,46 ,99 ,109,100,46 ,108,105,115,116,34 ,44 ,
38 95 ,118,101,114,115,105,111,110,32 ,61 ,32 ,34 ,108,117,97 ,114,111,99 ,107,115, 38 10 ,32 ,32 ,32 ,114,101,109,111,118,101,32 ,61 ,32 ,34 ,108,117,97 ,114,111,99 ,
39 46 ,99 ,109,100,46 ,110,101,119,95 ,118,101,114,115,105,111,110,34 ,44 ,10 ,32 , 39 107,115,46 ,99 ,109,100,46 ,114,101,109,111,118,101,34 ,44 ,10 ,32 ,32 ,32 ,109,
40 32 ,32 ,108,105,110,116,32 ,61 ,32 ,34 ,108,117,97 ,114,111,99 ,107,115,46 ,99 , 40 97 ,107,101,32 ,61 ,32 ,34 ,108,117,97 ,114,111,99 ,107,115,46 ,99 ,109,100,46 ,
41 109,100,46 ,108,105,110,116,34 ,44 ,10 ,32 ,32 ,32 ,119,114,105,116,101,95 ,114, 41 109,97 ,107,101,34 ,44 ,10 ,32 ,32 ,32 ,100,111,119,110,108,111,97 ,100,32 ,61 ,
42 111,99 ,107,115,112,101,99 ,32 ,61 ,32 ,34 ,108,117,97 ,114,111,99 ,107,115,46 , 42 32 ,34 ,108,117,97 ,114,111,99 ,107,115,46 ,99 ,109,100,46 ,100,111,119,110,108,
43 99 ,109,100,46 ,119,114,105,116,101,95 ,114,111,99 ,107,115,112,101,99 ,34 ,44 , 43 111,97 ,100,34 ,44 ,10 ,32 ,32 ,32 ,112,97 ,116,104,32 ,61 ,32 ,34 ,108,117,97 ,
44 10 ,32 ,32 ,32 ,112,117,114,103,101,32 ,61 ,32 ,34 ,108,117,97 ,114,111,99 ,107, 44 114,111,99 ,107,115,46 ,99 ,109,100,46 ,112,97 ,116,104,34 ,44 ,10 ,32 ,32 ,32 ,
45 115,46 ,99 ,109,100,46 ,112,117,114,103,101,34 ,44 ,10 ,32 ,32 ,32 ,100,111,99 , 45 115,104,111,119,32 ,61 ,32 ,34 ,108,117,97 ,114,111,99 ,107,115,46 ,99 ,109,100,
46 32 ,61 ,32 ,34 ,108,117,97 ,114,111,99 ,107,115,46 ,99 ,109,100,46 ,100,111,99 , 46 46 ,115,104,111,119,34 ,44 ,10 ,32 ,32 ,32 ,110,101,119,95 ,118,101,114,115,105,
47 34 ,44 ,10 ,32 ,32 ,32 ,117,112,108,111,97 ,100,32 ,61 ,32 ,34 ,108,117,97 ,114, 47 111,110,32 ,61 ,32 ,34 ,108,117,97 ,114,111,99 ,107,115,46 ,99 ,109,100,46 ,110,
48 111,99 ,107,115,46 ,99 ,109,100,46 ,117,112,108,111,97 ,100,34 ,44 ,10 ,32 ,32 , 48 101,119,95 ,118,101,114,115,105,111,110,34 ,44 ,10 ,32 ,32 ,32 ,108,105,110,116,
49 32 ,99 ,111,110,102,105,103,32 ,61 ,32 ,34 ,108,117,97 ,114,111,99 ,107,115,46 , 49 32 ,61 ,32 ,34 ,108,117,97 ,114,111,99 ,107,115,46 ,99 ,109,100,46 ,108,105,110,
50 99 ,109,100,46 ,99 ,111,110,102,105,103,34 ,44 ,10 ,32 ,32 ,32 ,119,104,105,99 , 50 116,34 ,44 ,10 ,32 ,32 ,32 ,119,114,105,116,101,95 ,114,111,99 ,107,115,112,101,
51 104,32 ,61 ,32 ,34 ,108,117,97 ,114,111,99 ,107,115,46 ,99 ,109,100,46 ,119,104, 51 99 ,32 ,61 ,32 ,34 ,108,117,97 ,114,111,99 ,107,115,46 ,99 ,109,100,46 ,119,114,
52 105,99 ,104,34 ,44 ,10 ,32 ,32 ,32 ,116,101,115,116,32 ,61 ,32 ,34 ,108,117,97 , 52 105,116,101,95 ,114,111,99 ,107,115,112,101,99 ,34 ,44 ,10 ,32 ,32 ,32 ,112,117,
53 114,111,99 ,107,115,46 ,99 ,109,100,46 ,116,101,115,116,34 ,44 ,10 ,125,10 ,10 , 53 114,103,101,32 ,61 ,32 ,34 ,108,117,97 ,114,111,99 ,107,115,46 ,99 ,109,100,46 ,
54 99 ,109,100,46 ,114,117,110,95 ,99 ,111,109,109,97 ,110,100,40 ,100,101,115,99 , 54 112,117,114,103,101,34 ,44 ,10 ,32 ,32 ,32 ,100,111,99 ,32 ,61 ,32 ,34 ,108,117,
55 114,105,112,116,105,111,110,44 ,32 ,99 ,111,109,109,97 ,110,100,115,44 ,32 ,34 , 55 97 ,114,111,99 ,107,115,46 ,99 ,109,100,46 ,100,111,99 ,34 ,44 ,10 ,32 ,32 ,32 ,
56 108,117,97 ,114,111,99 ,107,115,46 ,99 ,109,100,46 ,101,120,116,101,114,110,97 , 56 117,112,108,111,97 ,100,32 ,61 ,32 ,34 ,108,117,97 ,114,111,99 ,107,115,46 ,99 ,
57 108,34 ,44 ,32 ,46 ,46 ,46 ,41 ,10 , 57 109,100,46 ,117,112,108,111,97 ,100,34 ,44 ,10 ,32 ,32 ,32 ,99 ,111,110,102,105,
58 103,32 ,61 ,32 ,34 ,108,117,97 ,114,111,99 ,107,115,46 ,99 ,109,100,46 ,99 ,111,
59 110,102,105,103,34 ,44 ,10 ,32 ,32 ,32 ,119,104,105,99 ,104,32 ,61 ,32 ,34 ,108,
60 117,97 ,114,111,99 ,107,115,46 ,99 ,109,100,46 ,119,104,105,99 ,104,34 ,44 ,10 ,
61 32 ,32 ,32 ,116,101,115,116,32 ,61 ,32 ,34 ,108,117,97 ,114,111,99 ,107,115,46 ,
62 99 ,109,100,46 ,116,101,115,116,34 ,44 ,10 ,125,10 ,10 ,99 ,109,100,46 ,114,117,
63 110,95 ,99 ,111,109,109,97 ,110,100,40 ,100,101,115,99 ,114,105,112,116,105,111,
64 110,44 ,32 ,99 ,111,109,109,97 ,110,100,115,44 ,32 ,34 ,108,117,97 ,114,111,99 ,
65 107,115,46 ,99 ,109,100,46 ,101,120,116,101,114,110,97 ,108,34 ,44 ,32 ,46 ,46 ,
66 46 ,41 ,10 ,
58}; 67};
59 68
diff --git a/publishrelease b/publishrelease
index f11218ec..808202e4 100755
--- a/publishrelease
+++ b/publishrelease
@@ -43,6 +43,10 @@ do
43 } 43 }
44done 44done
45 45
46source_digest="$(
47 sha256sum "luarocks-${v}.tar.gz" | cut -d' ' -f1
48)"
49
46####################################### 50#######################################
47# utility 51# utility
48####################################### 52#######################################
@@ -120,7 +124,8 @@ gawk '
120 print "\"'$v'\": {" 124 print "\"'$v'\": {"
121 print "\"date\": \"'$(date +'%Y-%m-%d')'\"," 125 print "\"date\": \"'$(date +'%Y-%m-%d')'\","
122 print "\"files\": [\"luarocks-'$v'.tar.gz\", \"luarocks-'$v'.tar.gz.asc\", \"luarocks-'$v'-win32.zip\", \"luarocks-'$v'-win32.zip.asc\", \"luarocks-'$v'-windows-32.zip\", \"luarocks-'$v'-windows-32.zip.asc\", \"luarocks-'$v'-windows-64.zip\", \"luarocks-'$v'-windows-64.zip.asc\", \"luarocks-'$v'-linux-x86_64.zip\", \"luarocks-'$v'-linux-x86_64.zip.asc\"]," 126 print "\"files\": [\"luarocks-'$v'.tar.gz\", \"luarocks-'$v'.tar.gz.asc\", \"luarocks-'$v'-win32.zip\", \"luarocks-'$v'-win32.zip.asc\", \"luarocks-'$v'-windows-32.zip\", \"luarocks-'$v'-windows-32.zip.asc\", \"luarocks-'$v'-windows-64.zip\", \"luarocks-'$v'-windows-64.zip.asc\", \"luarocks-'$v'-linux-x86_64.zip\", \"luarocks-'$v'-linux-x86_64.zip.asc\"],"
123 print "\"about\": []" 127 print "\"about\": []",
128 print "\"source_digest\": \"'$source_digest'\""
124 print "}}," 129 print "}},"
125 } 130 }
126} 131}
diff --git a/spec/build_spec.lua b/spec/build_spec.lua
index 034c70d7..2e139a41 100644
--- a/spec/build_spec.lua
+++ b/spec/build_spec.lua
@@ -373,6 +373,101 @@ describe("LuaRocks build #integration", function()
373 end) 373 end)
374 end) 374 end)
375 375
376 describe("rockspec format 3.1", function()
377 it("version of Lua is not provided for old format", function()
378 test_env.run_in_tmp(function(tmpdir)
379 write_file("verify_argument.lua", string.format("assert(arg[1] == %q)", test_env.lua_version))
380 write_file("uses_luaversion_variable-3.1-11.rockspec", [[
381 package = "uses_luaversion_variable"
382 version = "3.1-11"
383 source = {
384 url = "file://]] .. tmpdir:gsub("\\", "/") .. [[/verify_argument.lua"
385 }
386 dependencies = {
387 "lua >= 5.1"
388 }
389 build = {
390 type = "command",
391 build_command = "$(LUA) verify_argument.lua $(LUA_VERSION)",
392 }
393 ]])
394 assert.is_false(run.luarocks_bool("build uses_luaversion_variable-3.1-11.rockspec"))
395 end, finally)
396 end)
397
398 it("version of Lua is provided as variable", function()
399 test_env.run_in_tmp(function(tmpdir)
400 write_file("verify_argument.lua", string.format("assert(arg[1] == %q)", test_env.lua_version))
401 write_file("uses_luaversion_variable-3.1-11.rockspec", [[
402 rockspec_format = "3.1"
403 package = "uses_luaversion_variable"
404 version = "3.1-11"
405 source = {
406 url = "file://]] .. tmpdir:gsub("\\", "/") .. [[/verify_argument.lua"
407 }
408 dependencies = {
409 "lua >= 5.1"
410 }
411 build = {
412 type = "command",
413 build_command = "$(LUA) verify_argument.lua $(LUA_VERSION)",
414 }
415 ]])
416 assert.is_truthy(run.luarocks_bool("build uses_luaversion_variable-3.1-11.rockspec"))
417 assert.is.truthy(run.luarocks("show uses_luaversion_variable"))
418 end, finally)
419 end)
420
421
422 it("dependency directory is not provided for old format", function()
423 test_env.run_in_tmp(function(tmpdir)
424 local rocks_tree = run.luarocks("config variables.ROCKS_TREE")
425 local rocks_path = table.concat({rocks_tree, "a_rock", "1.0-1"}, package.config:sub(1, 1))
426 write_file("verify_argument.lua", string.format("assert(arg[1] == %q)", rocks_path))
427 write_file("uses_rockdir_variable-3.1-11.rockspec", [[
428 package = "uses_rockdir_variable"
429 version = "3.1-11"
430 source = {
431 url = "file://]] .. tmpdir:gsub("\\", "/") .. [[/verify_argument.lua"
432 }
433 dependencies = {
434 "a_rock 1.0"
435 }
436 build = {
437 type = "command",
438 build_command = "$(LUA) verify_argument.lua $(A_ROCK_ROCKDIR)",
439 }
440 ]])
441 assert.is_false(run.luarocks_bool("build uses_rockdir_variable-3.1-11.rockspec"))
442 end, finally)
443 end)
444
445 it("dependency directory is provided as variable", function()
446 test_env.run_in_tmp(function(tmpdir)
447 local rocks_tree = run.luarocks("config variables.ROCKS_TREE")
448 local rocks_path = table.concat({rocks_tree, "a_rock", "1.0-1"}, package.config:sub(1, 1))
449 write_file("verify_argument.lua", string.format("assert(arg[1] == %q)", rocks_path))
450 write_file("uses_rockdir_variable-3.1-11.rockspec", [[
451 rockspec_format = "3.1"
452 package = "uses_rockdir_variable"
453 version = "3.1-11"
454 source = {
455 url = "file://]] .. tmpdir:gsub("\\", "/") .. [[/verify_argument.lua"
456 }
457 dependencies = {
458 "a_rock 1.0"
459 }
460 build = {
461 type = "command",
462 build_command = "$(LUA) verify_argument.lua $(A_ROCK_ROCKDIR)",
463 }
464 ]])
465 assert.is_truthy(run.luarocks_bool("build uses_rockdir_variable-3.1-11.rockspec"))
466 assert.is.truthy(run.luarocks("show uses_rockdir_variable"))
467 end, finally)
468 end)
469 end)
470
376 describe("#mock external dependencies", function() 471 describe("#mock external dependencies", function()
377 lazy_setup(function() 472 lazy_setup(function()
378 test_env.setup_specs(nil, "mock") 473 test_env.setup_specs(nil, "mock")
diff --git a/src/luarocks/build/cmake.lua b/src/luarocks/build/cmake.lua
index ea132a3e..b9954cf4 100644
--- a/src/luarocks/build/cmake.lua
+++ b/src/luarocks/build/cmake.lua
@@ -27,11 +27,6 @@ function cmake.run(rockspec, no_install)
27 local build = rockspec.build 27 local build = rockspec.build
28 local variables = build.variables or {} 28 local variables = build.variables or {}
29 29
30
31 variables.CMAKE_MODULE_PATH = os.getenv("CMAKE_MODULE_PATH")
32 variables.CMAKE_LIBRARY_PATH = os.getenv("CMAKE_LIBRARY_PATH")
33 variables.CMAKE_INCLUDE_PATH = os.getenv("CMAKE_INCLUDE_PATH")
34
35 util.variable_substitutions(variables, rockspec.variables) 30 util.variable_substitutions(variables, rockspec.variables)
36 31
37 local ok, err_msg = fs.is_tool_available(rockspec.variables.CMAKE, "CMake") 32 local ok, err_msg = fs.is_tool_available(rockspec.variables.CMAKE, "CMake")
diff --git a/src/luarocks/build/cmake.tl b/src/luarocks/build/cmake.tl
index 9a512d1e..35e64bd6 100644
--- a/src/luarocks/build/cmake.tl
+++ b/src/luarocks/build/cmake.tl
@@ -27,11 +27,6 @@ function cmake.run(rockspec: Rockspec, no_install: boolean): boolean, string, st
27 local build = rockspec.build as cmake.CMakeBuild 27 local build = rockspec.build as cmake.CMakeBuild
28 local variables = build.variables or {} 28 local variables = build.variables or {}
29 29
30 -- Pass Env variables
31 variables.CMAKE_MODULE_PATH=os.getenv("CMAKE_MODULE_PATH")
32 variables.CMAKE_LIBRARY_PATH=os.getenv("CMAKE_LIBRARY_PATH")
33 variables.CMAKE_INCLUDE_PATH=os.getenv("CMAKE_INCLUDE_PATH")
34
35 util.variable_substitutions(variables, rockspec.variables) 30 util.variable_substitutions(variables, rockspec.variables)
36 31
37 local ok, err_msg = fs.is_tool_available(rockspec.variables.CMAKE, "CMake") 32 local ok, err_msg = fs.is_tool_available(rockspec.variables.CMAKE, "CMake")
diff --git a/src/luarocks/cmd/upload.lua b/src/luarocks/cmd/upload.lua
index 755dd4e7..e4319bb1 100644
--- a/src/luarocks/cmd/upload.lua
+++ b/src/luarocks/cmd/upload.lua
@@ -1,4 +1,4 @@
1local _tl_compat; if (tonumber((_VERSION or ''):match('[%d.]*$')) or 0) < 5.3 then local p, m = pcall(require, 'compat53.module'); if p then _tl_compat = m end end; local string = _tl_compat and _tl_compat.string or string 1local _tl_compat; if (tonumber((_VERSION or ''):match('[%d.]*$')) or 0) < 5.3 then local p, m = pcall(require, 'compat53.module'); if p then _tl_compat = m end end; local math = _tl_compat and _tl_compat.math or math; local string = _tl_compat and _tl_compat.string or string
2local upload = { Response = { version = {} } } 2local upload = { Response = { version = {} } }
3 3
4 4
@@ -132,7 +132,8 @@ function upload.command(args)
132 return nil, "Invalid response from server." 132 return nil, "Invalid response from server."
133 end 133 end
134 util.printout(("Sending " .. tostring(rock_fname) .. " ...")) 134 util.printout(("Sending " .. tostring(rock_fname) .. " ..."))
135 res, err = api:method("upload_rock/" .. ("%d"):format(res.version.id), nil, { 135 local id = math.tointeger(res.version.id)
136 res, err = api:method("upload_rock/" .. ("%d"):format(id), nil, {
136 rock_file = multipart.new_file(rock_fname), 137 rock_file = multipart.new_file(rock_fname),
137 rock_sig = rock_sigfname and multipart.new_file(rock_sigfname), 138 rock_sig = rock_sigfname and multipart.new_file(rock_sigfname),
138 }) 139 })
diff --git a/src/luarocks/cmd/upload.tl b/src/luarocks/cmd/upload.tl
index 5b6e3314..a12b30c0 100644
--- a/src/luarocks/cmd/upload.tl
+++ b/src/luarocks/cmd/upload.tl
@@ -132,7 +132,8 @@ function upload.command(args: Args): boolean, string, string
132 return nil, "Invalid response from server." 132 return nil, "Invalid response from server."
133 end 133 end
134 util.printout(("Sending " .. tostring(rock_fname) .. " ...")) 134 util.printout(("Sending " .. tostring(rock_fname) .. " ..."))
135 res, err = api:method("upload_rock/" .. ("%d"):format(res.version.id), nil, { 135 local id = math.tointeger(res.version.id)
136 res, err = api:method("upload_rock/" .. ("%d"):format(id), nil, {
136 rock_file = multipart.new_file(rock_fname), 137 rock_file = multipart.new_file(rock_fname),
137 rock_sig = rock_sigfname and multipart.new_file(rock_sigfname), 138 rock_sig = rock_sigfname and multipart.new_file(rock_sigfname),
138 }) as (Response, string) 139 }) as (Response, string)
diff --git a/src/luarocks/core/cfg.lua b/src/luarocks/core/cfg.lua
index 8c2d7d79..1be65c27 100644
--- a/src/luarocks/core/cfg.lua
+++ b/src/luarocks/core/cfg.lua
@@ -413,13 +413,24 @@ local function make_defaults(lua_version, target_cpu, platforms, home)
413 end 413 end
414 414
415 if platforms.cygwin then 415 if platforms.cygwin then
416 defaults.lib_extension = "so" -- can be overridden in the config file for mingw builds 416 defaults.lib_extension = "dll"
417 defaults.arch = "cygwin-"..target_cpu 417 defaults.arch = "cygwin-"..target_cpu
418 defaults.cmake_generator = "Unix Makefiles" 418 defaults.cmake_generator = "Unix Makefiles"
419 defaults.variables.CC = "echo -llua | xargs " .. (os.getenv("CC") or "gcc") 419 defaults.variables.CC = "echo -llua | xargs " .. (os.getenv("CC") or "gcc")
420 defaults.variables.LD = "echo -llua | xargs " .. (os.getenv("CC") or "gcc") 420 defaults.variables.LD = "echo -llua | xargs " .. (os.getenv("CC") or "gcc")
421 defaults.variables.LIBFLAG = "-shared" 421 defaults.variables.LIBFLAG = "-shared"
422 defaults.link_lua_explicitly = true 422 defaults.link_lua_explicitly = true
423 defaults.external_deps_patterns = {
424 bin = { "?.exe", "?.bat", "?" },
425 lib = { "cyg?.dll", "lib?.so", "lib?.so.*", "lib?.dll.a", "?.dll.a",
426 "lib?.a", "lib?.dll", "?.dll" },
427 include = { "?.h" }
428 }
429 defaults.runtime_external_deps_patterns = {
430 bin = { "?.exe", "?.bat" },
431 lib = { "cyg?.dll", "lib?.so", "?.dll", "lib?.dll" },
432 include = { "?.h" }
433 }
423 end 434 end
424 435
425 if platforms.msys then 436 if platforms.msys then
diff --git a/src/luarocks/deps.lua b/src/luarocks/deps.lua
index e02d4694..5802601e 100644
--- a/src/luarocks/deps.lua
+++ b/src/luarocks/deps.lua
@@ -1,4 +1,4 @@
1local _tl_compat; if (tonumber((_VERSION or ''):match('[%d.]*$')) or 0) < 5.3 then local p, m = pcall(require, 'compat53.module'); if p then _tl_compat = m end end; local assert = _tl_compat and _tl_compat.assert or assert; local io = _tl_compat and _tl_compat.io or io; local ipairs = _tl_compat and _tl_compat.ipairs or ipairs; local pairs = _tl_compat and _tl_compat.pairs or pairs; local string = _tl_compat and _tl_compat.string or string; local table = _tl_compat and _tl_compat.table or table; local type = type 1local _tl_compat; if (tonumber((_VERSION or ''):match('[%d.]*$')) or 0) < 5.3 then local p, m = pcall(require, 'compat53.module'); if p then _tl_compat = m end end; local assert = _tl_compat and _tl_compat.assert or assert; local io = _tl_compat and _tl_compat.io or io; local ipairs = _tl_compat and _tl_compat.ipairs or ipairs; local math = _tl_compat and _tl_compat.math or math; local pairs = _tl_compat and _tl_compat.pairs or pairs; local string = _tl_compat and _tl_compat.string or string; local table = _tl_compat and _tl_compat.table or table; local type = type
2 2
3local deps = {} 3local deps = {}
4 4
@@ -201,7 +201,7 @@ function deps.report_missing_dependencies(name, version, dependencies, deps_mode
201 first_missing_dep = false 201 first_missing_dep = false
202 end 202 end
203 203
204 util.printout((" %s (%s)"):format(tostring(depq), rock_status(depq, get_versions))) 204 util.printout((" %s (%s)"):format(tostring(depq), (rock_status(depq, get_versions))))
205 end 205 end
206 end 206 end
207end 207end
@@ -301,7 +301,7 @@ function deps.fulfill_dependencies(rockspec, depskey, deps_mode, verify, deplock
301 local depq = queries.new(dname, dnamespace, dversion) 301 local depq = queries.new(dname, dnamespace, dversion)
302 302
303 util.printout(("%s %s is pinned to %s (%s)"):format( 303 util.printout(("%s %s is pinned to %s (%s)"):format(
304 name, version, tostring(depq), rock_status(depq, get_versions))) 304 name, version, tostring(depq), (rock_status(depq, get_versions))))
305 305
306 local okfullfill, errfullfill = deps.fulfill_dependency(depq, "none", rocks_provided, verify, depskey) 306 local okfullfill, errfullfill = deps.fulfill_dependency(depq, "none", rocks_provided, verify, depskey)
307 if not okfullfill then 307 if not okfullfill then
@@ -327,11 +327,14 @@ function deps.fulfill_dependencies(rockspec, depskey, deps_mode, verify, deplock
327 for _, depq in ipairs((rockspec)[depskey].queries) do 327 for _, depq in ipairs((rockspec)[depskey].queries) do
328 328
329 util.printout(("%s %s depends on %s (%s)"):format( 329 util.printout(("%s %s depends on %s (%s)"):format(
330 name, version, tostring(depq), rock_status(depq, get_versions))) 330 name, version, tostring(depq), (rock_status(depq, get_versions))))
331 331
332 local okfulfill, found_or_err, _ = deps.fulfill_dependency(depq, deps_mode, rocks_provided, verify, depskey) 332 local okfulfill, version_or_err, tree = deps.fulfill_dependency(depq, deps_mode, rocks_provided, verify, depskey)
333 if okfulfill then 333 if okfulfill then
334 deplocks.add(depskey, depq.name, found_or_err) 334 deplocks.add(depskey, depq.name, version_or_err)
335 if tree and rockspec:format_is_at_least("3.1") then
336 rockspec.variables[depq.name:upper() .. "_ROCKDIR"] = path.install_dir(depq.name, version_or_err, tree)
337 end
335 else 338 else
336 if depq.constraints and depq.constraints[1] and depq.constraints[1].no_upgrade then 339 if depq.constraints and depq.constraints[1] and depq.constraints[1].no_upgrade then
337 util.printerr("This version of " .. name .. " is designed for use with") 340 util.printerr("This version of " .. name .. " is designed for use with")
@@ -341,7 +344,7 @@ function deps.fulfill_dependencies(rockspec, depskey, deps_mode, verify, deplock
341 util.printerr("or look for a suitable version of " .. name .. " with") 344 util.printerr("or look for a suitable version of " .. name .. " with")
342 util.printerr(" luarocks search " .. name) 345 util.printerr(" luarocks search " .. name)
343 end 346 end
344 return nil, found_or_err 347 return nil, version_or_err
345 end 348 end
346 end 349 end
347 350
@@ -703,7 +706,7 @@ end
703 706
704local function lua_h_exists(d, luaver) 707local function lua_h_exists(d, luaver)
705 local major, minor = luaver:match("(%d+)%.(%d+)") 708 local major, minor = luaver:match("(%d+)%.(%d+)")
706 local luanum = ("%s%02d"):format(major, tonumber(minor)) 709 local luanum = ("%s%02d"):format(major, math.tointeger(minor))
707 710
708 local lua_h = dir.path(d, "lua.h") 711 local lua_h = dir.path(d, "lua.h")
709 local fd = io.open(lua_h) 712 local fd = io.open(lua_h)
diff --git a/src/luarocks/deps.tl b/src/luarocks/deps.tl
index 5ca9c879..d127288e 100644
--- a/src/luarocks/deps.tl
+++ b/src/luarocks/deps.tl
@@ -201,7 +201,7 @@ function deps.report_missing_dependencies(name: string, version: string, depende
201 first_missing_dep = false 201 first_missing_dep = false
202 end 202 end
203 203
204 util.printout((" %s (%s)"):format(tostring(depq), rock_status(depq, get_versions))) 204 util.printout((" %s (%s)"):format(tostring(depq), (rock_status(depq, get_versions))))
205 end 205 end
206 end 206 end
207end 207end
@@ -301,7 +301,7 @@ function deps.fulfill_dependencies(rockspec: Rockspec, depskey: DepsKey, deps_mo
301 local depq = queries.new(dname, dnamespace, dversion) 301 local depq = queries.new(dname, dnamespace, dversion)
302 302
303 util.printout(("%s %s is pinned to %s (%s)"):format( 303 util.printout(("%s %s is pinned to %s (%s)"):format(
304 name, version, tostring(depq), rock_status(depq, get_versions))) 304 name, version, tostring(depq), (rock_status(depq, get_versions))))
305 305
306 local okfullfill, errfullfill = deps.fulfill_dependency(depq, "none", rocks_provided, verify, depskey) 306 local okfullfill, errfullfill = deps.fulfill_dependency(depq, "none", rocks_provided, verify, depskey)
307 if not okfullfill then 307 if not okfullfill then
@@ -327,11 +327,14 @@ function deps.fulfill_dependencies(rockspec: Rockspec, depskey: DepsKey, deps_mo
327 for _, depq in ipairs((rockspec as {string: Dependencies})[depskey].queries) do 327 for _, depq in ipairs((rockspec as {string: Dependencies})[depskey].queries) do
328 328
329 util.printout(("%s %s depends on %s (%s)"):format( 329 util.printout(("%s %s depends on %s (%s)"):format(
330 name, version, tostring(depq), rock_status(depq, get_versions))) 330 name, version, tostring(depq), (rock_status(depq, get_versions))))
331 331
332 local okfulfill, found_or_err, _ = deps.fulfill_dependency(depq, deps_mode, rocks_provided, verify, depskey) 332 local okfulfill, version_or_err, tree = deps.fulfill_dependency(depq, deps_mode, rocks_provided, verify, depskey)
333 if okfulfill then 333 if okfulfill then
334 deplocks.add(depskey, depq.name, found_or_err) 334 deplocks.add(depskey, depq.name, version_or_err)
335 if tree and rockspec:format_is_at_least("3.1") then
336 rockspec.variables[depq.name:upper() .. "_ROCKDIR"] = path.install_dir(depq.name, version_or_err, tree)
337 end
335 else 338 else
336 if depq.constraints and depq.constraints[1] and depq.constraints[1].no_upgrade then 339 if depq.constraints and depq.constraints[1] and depq.constraints[1].no_upgrade then
337 util.printerr("This version of "..name.." is designed for use with") 340 util.printerr("This version of "..name.." is designed for use with")
@@ -341,7 +344,7 @@ function deps.fulfill_dependencies(rockspec: Rockspec, depskey: DepsKey, deps_mo
341 util.printerr("or look for a suitable version of "..name.." with") 344 util.printerr("or look for a suitable version of "..name.." with")
342 util.printerr(" luarocks search "..name) 345 util.printerr(" luarocks search "..name)
343 end 346 end
344 return nil, found_or_err 347 return nil, version_or_err
345 end 348 end
346 end 349 end
347 350
@@ -703,7 +706,7 @@ end
703 706
704local function lua_h_exists(d: string, luaver: string): boolean, string, string, integer 707local function lua_h_exists(d: string, luaver: string): boolean, string, string, integer
705 local major, minor = luaver:match("(%d+)%.(%d+)") 708 local major, minor = luaver:match("(%d+)%.(%d+)")
706 local luanum = ("%s%02d"):format(major, tonumber(minor)) 709 local luanum = ("%s%02d"):format(major, math.tointeger(minor))
707 710
708 local lua_h = dir.path(d, "lua.h") 711 local lua_h = dir.path(d, "lua.h")
709 local fd = io.open(lua_h) 712 local fd = io.open(lua_h)
@@ -749,7 +752,7 @@ local function find_lua_incdir(prefix: string, luaver: string, luajitver: string
749end 752end
750 753
751function deps.check_lua_incdir(vars: {string: string}): boolean, string, string 754function deps.check_lua_incdir(vars: {string: string}): boolean, string, string
752 if vars.LUA_INCDIR_OK == "ok" 755 if vars.LUA_INCDIR_OK == "ok"
753 then return true 756 then return true
754 end 757 end
755 758
@@ -777,7 +780,7 @@ function deps.check_lua_incdir(vars: {string: string}): boolean, string, string
777end 780end
778 781
779function deps.check_lua_libdir(vars: {string: string}): boolean, string, string, {string : {string}} 782function deps.check_lua_libdir(vars: {string: string}): boolean, string, string, {string : {string}}
780 if vars.LUA_LIBDIR_OK == "ok" 783 if vars.LUA_LIBDIR_OK == "ok"
781 then return true 784 then return true
782 end 785 end
783 786
@@ -814,7 +817,7 @@ function deps.check_lua_libdir(vars: {string: string}): boolean, string, string,
814 -- if filename isn't versioned, check file contents 817 -- if filename isn't versioned, check file contents
815 local txt = fd:read("*a") 818 local txt = fd:read("*a")
816 ok = txt:find("Lua " .. cfg.lua_version, 1, true) 819 ok = txt:find("Lua " .. cfg.lua_version, 1, true)
817 or txt:find("lua" .. (cfg.lua_version:gsub("%.", "")), 1, true) 820 or txt:find("lua" .. (cfg.lua_version:gsub("%.", "")), 1, true)
818 and true 821 and true
819 if not ok then 822 if not ok then
820 err = "Lua library at " .. filename .. " does not match Lua version " .. cfg.lua_version .. ". You can use `luarocks config variables.LUA_LIBDIR <path>` to set the correct location." 823 err = "Lua library at " .. filename .. " does not match Lua version " .. cfg.lua_version .. ". You can use `luarocks config variables.LUA_LIBDIR <path>` to set the correct location."
diff --git a/src/luarocks/fs/unix.lua b/src/luarocks/fs/unix.lua
index 41a9ba8b..2c99ff0d 100644
--- a/src/luarocks/fs/unix.lua
+++ b/src/luarocks/fs/unix.lua
@@ -145,13 +145,14 @@ function unix.is_actual_binary(filename)
145 if not file then 145 if not file then
146 return true 146 return true
147 end 147 end
148 local first = file:read(2) 148 local first = file:read()
149 file:close() 149 file:close()
150 if not first then 150 if not first then
151 util.warning("could not read "..filename) 151 util.warning("could not read "..filename)
152 return true 152 return true
153 end 153 end
154 return first ~= "#!" 154 -- only create wrapper for lua scripts with `#!/usr/bin/env lua` or `#!/usr/bin/lua`
155 return first:match('^#!.*[ /]lua.*') == first
155end 156end
156 157
157function unix.copy_binary(filename, dest) 158function unix.copy_binary(filename, dest)
diff --git a/src/luarocks/rockspecs.lua b/src/luarocks/rockspecs.lua
index 6a9a376c..8a1a528e 100644
--- a/src/luarocks/rockspecs.lua
+++ b/src/luarocks/rockspecs.lua
@@ -83,6 +83,9 @@ local function configure_paths(rockspec)
83 vars.CONFDIR = path.conf_dir(name, version) 83 vars.CONFDIR = path.conf_dir(name, version)
84 vars.BINDIR = path.bin_dir(name, version) 84 vars.BINDIR = path.bin_dir(name, version)
85 vars.DOCDIR = path.doc_dir(name, version) 85 vars.DOCDIR = path.doc_dir(name, version)
86 if rockspec:format_is_at_least("3.1") then
87 vars.LUA_VERSION = cfg.lua_version
88 end
86 rockspec.variables = vars 89 rockspec.variables = vars
87end 90end
88 91
diff --git a/src/luarocks/rockspecs.tl b/src/luarocks/rockspecs.tl
index a34c0dbf..9f12649c 100644
--- a/src/luarocks/rockspecs.tl
+++ b/src/luarocks/rockspecs.tl
@@ -83,6 +83,9 @@ local function configure_paths(rockspec: Rockspec)
83 vars.CONFDIR = path.conf_dir(name, version) 83 vars.CONFDIR = path.conf_dir(name, version)
84 vars.BINDIR = path.bin_dir(name, version) 84 vars.BINDIR = path.bin_dir(name, version)
85 vars.DOCDIR = path.doc_dir(name, version) 85 vars.DOCDIR = path.doc_dir(name, version)
86 if rockspec:format_is_at_least("3.1") then
87 vars.LUA_VERSION = cfg.lua_version
88 end
86 rockspec.variables = vars 89 rockspec.variables = vars
87end 90end
88 91
diff --git a/src/luarocks/tools/patch.lua b/src/luarocks/tools/patch.lua
index 8dc188a6..d1575cb0 100644
--- a/src/luarocks/tools/patch.lua
+++ b/src/luarocks/tools/patch.lua
@@ -129,14 +129,13 @@ local function file_lines(f)
129 end 129 end
130 end 130 end
131 end 131 end
132 local posi = math.tointeger(pos) 132 if not pos then
133 if not posi then 133 pos = #buffer
134 posi = #buffer
135 elseif chars == '\r\n' then 134 elseif chars == '\r\n' then
136 posi = posi + 1 135 pos = pos + 1
137 end 136 end
138 local line = buffer:sub(pos_beg, posi) 137 local line = buffer:sub(pos_beg, pos)
139 pos_beg = posi + 1 138 pos_beg = pos + 1
140 if #line > 0 then 139 if #line > 0 then
141 return line 140 return line
142 end 141 end
diff --git a/src/luarocks/tools/patch.tl b/src/luarocks/tools/patch.tl
index 83c16ab7..553964e3 100644
--- a/src/luarocks/tools/patch.tl
+++ b/src/luarocks/tools/patch.tl
@@ -114,7 +114,7 @@ local function file_lines(f: FILE): function(): string
114 local buffer = "" 114 local buffer = ""
115 local pos_beg = 1 115 local pos_beg = 1
116 return function(): string 116 return function(): string
117 local pos, chars: string, string 117 local pos, chars: integer, string
118 while 1 do 118 while 1 do
119 pos, chars = buffer:match('()([\r\n].)', pos_beg) 119 pos, chars = buffer:match('()([\r\n].)', pos_beg)
120 if pos or not f then 120 if pos or not f then
@@ -129,14 +129,13 @@ local function file_lines(f: FILE): function(): string
129 end 129 end
130 end 130 end
131 end 131 end
132 local posi = math.tointeger(pos) 132 if not pos then
133 if not posi then 133 pos = #buffer
134 posi = #buffer
135 elseif chars == '\r\n' then 134 elseif chars == '\r\n' then
136 posi = posi + 1 135 pos = pos + 1
137 end 136 end
138 local line = buffer:sub(pos_beg, posi) 137 local line = buffer:sub(pos_beg, pos)
139 pos_beg = posi + 1 138 pos_beg = pos + 1
140 if #line > 0 then 139 if #line > 0 then
141 return line 140 return line
142 end 141 end
diff --git a/src/luarocks/type/rockspec.lua b/src/luarocks/type/rockspec.lua
index cd4044f6..10b06690 100644
--- a/src/luarocks/type/rockspec.lua
+++ b/src/luarocks/type/rockspec.lua
@@ -11,7 +11,7 @@ local type_check = require("luarocks.type_check")
11 11
12 12
13 13
14type_rockspec.rockspec_format = "3.0" 14type_rockspec.rockspec_format = "3.1"
15 15
16 16
17 17
@@ -174,6 +174,9 @@ local rockspec_formats, versions = type_check.declare_schemas({
174 }, 174 },
175 }, 175 },
176 }, 176 },
177
178 ["3.1"] = {},
179
177}) 180})
178 181
179 182
diff --git a/src/luarocks/type/rockspec.tl b/src/luarocks/type/rockspec.tl
index 599c13ce..52ad7909 100644
--- a/src/luarocks/type/rockspec.tl
+++ b/src/luarocks/type/rockspec.tl
@@ -11,7 +11,7 @@ local type_check = require("luarocks.type_check")
11 11
12-- local type TableSchema = type_check.TableSchema 12-- local type TableSchema = type_check.TableSchema
13 13
14type_rockspec.rockspec_format = "3.0" 14type_rockspec.rockspec_format = "3.1"
15 15
16-- Syntax for type-checking tables: 16-- Syntax for type-checking tables:
17-- 17--
@@ -173,7 +173,10 @@ local rockspec_formats, versions = type_check.declare_schemas({
173 _more = true, 173 _more = true,
174 }, 174 },
175 } 175 }
176 } 176 },
177
178 ["3.1"] = {},
179
177}) 180})
178 181
179-- type_rockspec.order = {"rockspec_format", "package", "version", 182-- type_rockspec.order = {"rockspec_format", "package", "version",