Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Intel 82574L ethernet driver selftest shows unexpected hardware counter values #1

Closed
lukego opened this issue Dec 13, 2012 · 17 comments
Labels
Milestone

Comments

@lukego
Copy link
Member

lukego commented Dec 13, 2012

The Intel 82574L device driver's self-test function is showing unexpected counter values. The test attempts to transmit 100,000 packets, and optionally to receive them again with loopback mode. Displaying the hardware counters shows some values that are expected and others that are surprisingly low.

Here are example results when attempting to transmit 100,000 packets
of 1000 bytes each:

Statistics for PCI device 0000:00:04.0:
              54,306 GPTC       Good Packets Transmitted Count
          54,306,000 GOTCL      Good Octets Transmitted Count
         100,000,000 TOTL       Total Octets Transmitted (Low)
              54,306 TPT        Total Packets Transmitted 
             100,000 PTC1023    Packets Transmitted [512–1023 Bytes] Count

Why do some counters show 100,000 and others only 54,306?

Here are similar results with MAC loopback mode engaged:

Statistics for PCI device 0000:00:04.0:
             100,000 PRC1023    Packets Received [512–1023 Bytes] Count
              14,618 GPRC       Good Packets Received Count
              14,618 GPTC       Good Packets Transmitted Count
          14,618,000 GORCL      Good Octets Received Count
          14,618,000 GOTCL      Good Octets Transmitted Count
         100,000,000 TORL       Total Octets Received (Low)
         100,000,000 TOTL       Total Octets Transmitted (Low)
             100,000 TPR        Total Packets Received 
              14,618 TPT        Total Packets Transmitted 
             100,000 PTC1023    Packets Transmitted [512–1023 Bytes] Count

Curious that TPR shows 100,000 while TPT, GPRC, GPTC all show less.

Here's how to reproduce the problem:

  • Get a Linux machine with an 82574L ethernet controller. Hint: hetzner.de servers have a spare 82574L device on the motherboard. (Or send Luke a VM image and he'll boot it with the right hardware and give you remote access.)

  • Checkout and build snabb switch:

    $ git clone --recursive git@github.com:SnabbCo/snabbswitch.git
    $ cd snabbswitch
    $ make
    ...
    Firmware: 536K snabbswitch

    Run self-test

    $ src/snabbswitch

Here are ideas for how to investigate:

  • First, reproduce the issue on your own environment. It really happens, right?
  • Check the 82574L data sheet documentation to verify that it really is a problem.
  • Look for the bug in intel.lua: in TX, in RX, in statistics reading, ...
  • Get help from Intel experts on the e1000-devel mailing list.
  • Post questions and new information on this issue and get feedback.
@lukego
Copy link
Member Author

lukego commented Dec 13, 2012

Here are additional things you need to do in order to run snabbswitch and reproduce the problem:

  • Reboot Linux with a kernel parameter to reserve physical memory for Snabb Switch DMA: memmap=16M$0x10000000
  • Unbind your NIC from the OS: echo 0000:00:04.0 > '/sys/bus/pci/devices/0000:00:04.0/subsystem/drivers/e1000e/unbind'

In the likely event that the NIC you want to test with does not have PCI address 0000:00:04.0 then you need to substitute the actual address in the command above, and in src/selftest.lua. Use lspci -v to find the right card.

@lukego
Copy link
Member Author

lukego commented Jan 7, 2013

Here is an update on how to experiment, written in response to the first interested user!

The Snabb Lab: I have two EX6 servers colocated at hetzner.de that each have one spare Intel ethernet port and have a cross-cable connecting them together. The hostnames are arbon.snabb.co and bern.snabb.co. I'm currently developing inside a VM on arbon and occasionally running tcpdump/dstat/ifconfig/etc on bern to check what's being output.

To connect to the development VM (running Ubuntu v12 "cloud image") on arbon use:
ssh -p 54322 $user@arbon.snabb.co
and to connect to bern use:
ssh $user@snabb.co

where $user is an account that I have created for you (just leave a comment here with your ssh public key if you want to have one for trying out the switch).

Given today's selftest workload I feel the NIC is only in use about 1% of the time so this lab setup should be able to scale up to a few people. Here's an important tip to avoid multiple people running snabbswitch at the same time (which would be very confusing): instead of "./snabbswitch" always run "flock -x /tmp/snabb.lock ./snabbswitch". This way only one process will run at a time and any extra ones will automatically block until they have a turn.

Please leave the servers as you found them! no wild global configuration changes etc. do whatever you want in your home directory and feel free to sudo and install software you need etc. Mail luke@snabb.co if something crashes or needs rebooting, no stress :)

@lukego
Copy link
Member Author

lukego commented Jan 7, 2013

rahul@serverstack.info commented by mail that the Intel e1000 driver in Linux is very well-debugged and high-quality code. definitely a good resource for comparing to understand where the snabb switch bug is.

@lukego
Copy link
Member Author

lukego commented Jan 7, 2013

Great!

I see that changes I made to the selftest procedure (now calling selftest2() instead of selftest() in intel.lua) means this Issue doesn't reproduce out of the box. Sorry about that. I will try to make a fix now so that running the switch reproduces the problem again. Update to follow.

Does the code compile and run for you btw?

@rahul-mr
Copy link
Contributor

rahul-mr commented Jan 7, 2013

Hi Luke,

On 01/07/2013 07:56 PM, Luke Gorrie wrote:

I see that changes I made to the selftest procedure (now calling selftest2() instead of selftest() in intel.lua) means this Issue doesn't reproduce out of the box. Sorry about that. I will try to make a fix now so that running the switch reproduces the problem again. Update to follow.

Does the code compile and run for you btw?

I can confirm that the selftest2() procedure seems to be working, but
the selftest() procedure is not printing any statistic.

Regards,
Rahul

@lukego
Copy link
Member Author

lukego commented Jan 7, 2013

Wow cool that it runs! :-) You are the second person after me to run the switch!

Looks like I have broken selftest() quite a bit with recent hacking. I will now extend selftest2() to also support receive and then we can try to reproduce the problem with that.

Does the code make any sense btw? I am still learning Lua and I think especially the way I'm doing object-oriented programming - lots of "M." prefixes - is a bit clunky and can be better.

@rahul-mr
Copy link
Contributor

rahul-mr commented Jan 7, 2013

On 01/07/2013 08:20 PM, Luke Gorrie wrote:

Wow cool that it runs! :-) You are the second person after me to run the switch!
He He 8-)
Looks like I have broken selftest() quite a bit with recent hacking. I will now extend selftest2() to also support receive and then we can try to reproduce the problem with that.
OK.
Does the code make any sense btw? I am still learning Lua and I think especially the way I'm doing object-oriented programming - lots of "M." prefixes - is a bit clunky and can be better.

I haven't played with lua much (I mostly program in python, D). Since
Lua wasn't really designed for heavy-duty OOP, I guess it'll always look
a bit awkward (but hey, it works!). The code does make sense btw :-)

Looking forward for the updated selftest.

Regards,
Rahul

@lukego
Copy link
Member Author

lukego commented Jan 7, 2013

OK! The updated selftest is checked in now with commit b3867ca.

Now selftest2() is extended to also handle RX and is renamed to selftest() replacing the old one.

The problem that shows up now is that the transmit+receive+loopback test drops most of the packets. Do you see this too? I don't know why that is but it's a bug that would be good to fix. Welcome to have a look :). Probably best to create a new Issue.

The original problem from this issue doesn't seem to be reproducible now? Could be that it was fixed by changes to the logic that says when descriptor rings are full/empty (I think I fixed stuff there last week), or could be that it still exists and I'm just not seeing it.

btw: another interesting but larger thing to hack on in this source file is the add_txbuf_tso() function that is currently just a stub. The goal is to use the TCP segmentation offload hardware features so we would have a test case transmits really big packets (~64K) and then (by loopback) receives the same data back in more smaller packets. This would be a major step towards implementing STT in the future (possibly being the first open source implementation...)

Dinner time over here! :-)

@rahul-mr
Copy link
Contributor

rahul-mr commented Jan 8, 2013

I'm having a look at the updated selftest. Will report any interesting findings.

Regards,
Rahul

@rahul-mr
Copy link
Contributor

rahul-mr commented Jan 9, 2013

OK, Found something interesting:

File: intel.lua ; function init_receive(): Line 252:

regs[RXDCTL] = bits({GRAN=24, WTHRESH0=16})

this line which sets Receiver Descriptor Control (RXDCTL) register was commented out. Un-commenting the line, has drastically cut down the Missed Packets Count, while increasing the Receive No Buffers Count.

BEFORE:

Statistics for PCI device 0000:00:04.0:
       1,109,458 MPC        Missed Packets Count
          80,667 PRC64      Packets Received [64 Bytes] Count
          80,667 GPRC       Good Packets Received Count
       1,190,213 GPTC       Good Packets Transmitted Count
       5,162,688 GORCL      Good Octets Received Count
      76,174,336 GOTCL      Good Octets Transmitted Count
               2 RNBC       Receive No Buffers Count
      76,176,896 TORL       Total Octets Received (Low)
      76,177,408 TOTL       Total Octets Transmitted (Low)
       1,190,279 TPR        Total Packets Received
       1,190,283 TPT        Total Packets Transmitted
       1,190,286 PTC64      Packets Transmitted [64 Bytes] Count

AFTER:

Statistics for PCI device 0000:00:04.0:
         232,479 MPC        Missed Packets Count
         818,720 PRC64      Packets Received [64 Bytes] Count
         818,734 GPRC       Good Packets Received Count
       1,051,232 GPTC       Good Packets Transmitted Count
      52,399,680 GORCL      Good Octets Received Count
      67,279,488 GOTCL      Good Octets Transmitted Count
              24 RNBC       Receive No Buffers Count
      67,281,472 TORL       Total Octets Received (Low)
      67,281,856 TOTL       Total Octets Transmitted (Low)
       1,051,283 TPR        Total Packets Received
       1,051,286 TPT        Total Packets Transmitted
       1,051,289 PTC64      Packets Transmitted [64 Bytes] Count

Maybe the thresholds in RXDCTL register needs adjustment?

@lukego
Copy link
Member Author

lukego commented Jan 9, 2013

Great! Thanks!

So I'm a Github newbie and I'm curious to see how it works. Do you think you could send that fix over as a "Pull request" so that we can test the workflow?

@rahul-mr
Copy link
Contributor

rahul-mr commented Jan 9, 2013

OK, I've sent a pull request: #31

@lukego
Copy link
Member Author

lukego commented Jan 9, 2013

Great, it worked fine! :-D

@lukego
Copy link
Member Author

lukego commented Jan 9, 2013

Congratulations you are the first contributor of a patch :-)

@rahul-mr
Copy link
Contributor

rahul-mr commented Jan 9, 2013

On 01/09/2013 07:01 PM, Luke Gorrie wrote:

Congratulations you are the first contributor of a patch:-)

Yay! :-)

@rahul-mr
Copy link
Contributor

rahul-mr commented Jan 9, 2013

Luke, do you think this issue should be closed as it is no longer reproducible as originally described?

@lukego
Copy link
Member Author

lukego commented Jan 9, 2013

Yes.

@lukego lukego closed this as completed Jan 9, 2013
lukego added a commit that referenced this issue Jul 5, 2013
Lets you place blocks of memory with well-defined contents -
"canaries" - around the heap and detect if they are overwritten.

selftest looks like this:

    $ ./snabbswitch -t canary
    Checking with live canaries..
    Checking with dead canaries..
    canary 'canary #1' died. Stomach contents:
    ff 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
    10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f
    20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f
    30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f

    canary 'canary #2' died. Stomach contents:
    00 ff 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
    10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f
    20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f
    30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f
lukego pushed a commit that referenced this issue Jan 26, 2015
Straight line: Fixes to make more tests cases pass
lukego pushed a commit that referenced this issue Jan 19, 2016
lukego pushed a commit that referenced this issue Mar 14, 2016
braindump on performance parameters
benagricola pushed a commit to benagricola/snabb that referenced this issue Nov 28, 2016
nzinfo pushed a commit to coreseekdev/snabb that referenced this issue Jan 17, 2017
This obtains at runtime the version of the nDPI library using the
ndpi_revision() function, and exposes it as a table at "ndpi.lib_version".
This table has fields .major, .minor, and .patch with their usual meanings.

Additionally, the existing ndpi.protocol_ids module is renamed to
ndpi.protocol_ids_1_7, and a new ndpi.protocol_ids_1_8 module is added
(created using tools/update-protocol-ids). The detected library version
numbers are used to determine which one of the versioned protocol_ids
submodule has to be loaded.

This patch is a first step towards supporting nDPI 1.8 (issue snabbco#1).
mwiget pushed a commit to mwiget/snabb that referenced this issue Jul 8, 2017
Fixed minor issue in the lwaftr monitor & a mutex issue in the daemonized app.
mwiget pushed a commit to mwiget/snabb that referenced this issue Mar 25, 2018
New key negotation protocol and implementation

Resolves snabbco#1 (KexExchange is generally broken and needs replacement)

Includes snabbco#4 (Route inbound packets via SPI)
lukego added a commit that referenced this issue Apr 4, 2018
lukego added a commit that referenced this issue Apr 4, 2018
Make test 366 pass by adding "move:" to expectation
eugeneia added a commit that referenced this issue Oct 2, 2023
54cc2a1b4 Merge PR #260 (clear hotcounts every second) into next
4cbeb1e39 lj_trace.c: amend prev. commit, do not clear SNAPCOUNT_DONE
8f36d5183 lj_trace.c: amend prev. commit, also clear trace exit hotcounts
77df770fb lj_trace.c: clear all hotcounts every second
73323b7c6 Merge pull request #246 from lukego/fix-unsinking
59fc1b06d lj_snap.c: Fix unsinking of 64-bit pointers
65ef4f455 testsuite: Add (segfaulting) test for allocation unsinking
32b08479a Merge pull request #243 from ZirconiumX/force_gc64
7954fd345 Remove LJ_LE #define
ae45cbe4e Remove LJ_BE #define
4f3dc17e9 Re-bootstrap the VM
190356e92 Prune dead code
dcd87f025 Remove LJ_HASFFI #define
2a343ef9f Remove LJ_32 #define
41b290d44 Remove LJ_64 #define
de0c96014 Remove LJ_GC64 #define
ff23fc588 Merge pull request #241 from ZirconiumX/use_sysmalloc
b060b48c6 Remove built-in dlmalloc
7a6b899f4 Merge pull request #226 from lukego/compare_hash
c5a7d2318 Merge LuaJIT/LuaJIT#243 branch 'funny-falcon/compare_hash'
bfc3b47d4 Merge pull request #221 from lukego/basic-install-test
8a80855c4 etc/raptorjit.pc: Replace s/LuaJIT/RaptorJIT/
e96e0ecdb Merge #220 branch 'lazara5/pkgconfig' into basic-install-test
72decefa5 raptorjit.nix: Check for installation of lib/pkgconfig/raptorjit.pc
33d88ea39 raptorjit.nix: Check installation of bin/raptorjit and lib/raptorjit-5.1.so
9b13bd3c3 Added back pkg-config file
f2e3705e6 Merge pull request #218 from lukego/test-libraptorjit
78d168f95 Merge pull request #217 from lukego/dwarf-not-so
5c72a3cf9 Merge #217 branch 'dwarf-not-so' into test-libraptorjit
fcdc3c61f fixup! test-libraptorjit.nix: Added test for dynamic linking libraptorjit
2a5d6fb3f .travis.yml: Add test-libraptorjit
5be341e2c test-libraptorjit.nix: Added test for dynamic linking libraptorjit
b9d801b15 src/Makefile: Fix unwanted dynamic linkage of dwarf debug info
16930c36c Merge pull request #212 from lukego/test-capi
ae0525c0d Merge pull request #209 from lukego/c-api-linkage
5af79e149 Merge branch 'c-api-linkage' into test-capi
4e9162ff3 .travis.yml: Add test-capi
bd959e359 test-capi.nix: Add basic of C-API linkage
63d415811 src/Makefile: Add -Wl,-E to make Lua API symbols visible to linked objects
572090d8d Merge pull request #200 from lukego/commercial-support
7f812f9e2 Added PROFESSIONAL-SUPPORT.md list of service providers
61c3a36b1 Merge #195 branch 'bonidjukic/update-docs'
2d386f69c Merge pull request #197 from 0xflotus/patch-1
2528860b3 fixed Quantitative
723210655 Fix README typos
31d41be Merge pull request #193 from lukego/prepare-release-1.0
56a88b2 Prepare for RaptorJIT 1.0 with installation fixes
d44450e Merge pull request #192 from lukego/log-ctype-assert
fc0c107 Merge pull request #191 from lukego/memory-leak-protection
55e7656 lj_ctype.c: Detect bad ctypeid without failing lua_assert
3b80633 lj_state.c: Restore assertion that all memory is deallocated
a667ead Fix deallocation of T->szirmcode
2a7990a Merge pull request #189 from lukego/nix-build-options
d3c149d default.nix: Test with -DLUA_USE_ASSERT and -Werror
52e2977 Merge pull request #186 from lukego/fix-jit-traces-alloc
d09927b lj_trace.c: Fix and simplify allocation of J->trace
5d235e6 Merge pull request #184 from lukego/ctype-no-loop
3f9db9e lj_ctype.c: Detect loops in ctype_repr()
9fac632 Merge pull request #183 from lukego/szirmcode-alloc-free
9959cb1 lj_asm.c: Added comment about szirmcode moving to final GCtrace
66f9234 lj_trace_alloc: Copy T->szirmcode to new trace
4782265 Fix allocation/deallocation of T->szirmcode
9056918 Merge pull request #182 from lukego/readme-vmprofile-filename
fcf138f README.md: Correct profile names to *.vmprofile (expected by studio)
5171334 Merge pull request #179 from lukego/readme-studio
4e1405d README.md: Add quick Studio getting started intro
f29bc2a Merge pull request #178 from lukego/readme-update
4891901 README.md: revised ahead of first release
5d7d873 Merge pull request #50 from lukego/Werror
0494515 Merge pull request #177 from lukego/rebrand-printouts
d4a392a Merge branch 'master' into Werror
420fa75 Minimal rebranding from LuaJIT -> RaptorJIT
48b2be9 Merge pull request #63 from lukego/auditlog
7e74425 Merge branch 'raptorjit/master' into auditlog
53eb6ae Merge branch 'master' into auditlog
a4f36d3 Merge pull request #176 from lukego/switch-sigprof-to-sigvtalrm
d38be0e Merge pull request #175 from lukego/vmprofile-exit-exclude-function-trace
ca0abe3 reusevm: Update generated code
6b72001 Use virtual instead of profile time for vmprofile
2c5faa8 Exclude function-rooted traces from global_State->lasttrace
cd172fc lj_parse.c: Set declname for file-level code to <toplevel>
473cb19 lj_ctype.c: Avoid crash when printing unprintable ctype IDs
90a15f7 lj_ctype.c, lj_trace.c: Poll for ctypes to log on trace stop/abort
9abd48a Merge pull request #168 from lukego/declname
0a588b4 Merge branch 'declname' into auditlog
96e00a6 lj_bcwrite.c: Remove unused variable
c552236 Restore older debug info fields to their original positions
d60c595 lj_prase.c: Remove old debug noise
c8b1388 Merge branch 'declname' into auditlog
8f55c03 src/reusevm: Update generated code
01f8b4c lj_bcread.c: Remove suspicious loop
73b96a4 src/reusevm: Update generated code
74b52e6 lj_bcread.c: Remove suspicious loop
4166e7a lj_bcdump.h: Bump bytecode version number (2 -> 3)
6395811 Merge branch 'declname' into auditlog
8d9d959 Extend GCproto debug with declared function name (declname)
f58daf9 Merge pull request #163 from lukego/readme-linux
9a798d7 luajit.c: Fix argument parsing bug that made "-a" fall into "-p"
92955dc src/Makefile: Add dependency from DWARF info to generated headers
a5222e7 lj_state.c: Partial fix of assertion on shutdown
1646db3 lj_audit.log.c: Fix iteration through trace constants
fe5f37d Merge branch 'master' into auditlog
e51eaa1 lj_debuginfo.h: Add missing file declaring dwarf data
229fc15 lj_auditlog.c: Log raptorjit VM DWARF debug information to audit.log
02062e9 src/Makefile: Embed DWARF debug info as binary blob
9b5ab0a lj_dwarf.c: Add lj_ircall.h and lj_ff.h for more debug information
f62c246 fixup! lj_asm.c: Fix szirmcode values
8c8731e lj_asm.c: Fix szirmcode values
d64a769 fixup! lj_auditlog.c: Log GCtrace->irmcodesz (IR-mcode mapping)
44fbf8e lj_auditlog.c: Log GCtrace->irmcodesz (IR-mcode mapping)
1d1dc9f README.md: State more clearly that Linux is required
9fb87d1 Merge pull request #162 from lukego/nix-shell
db4b5e7 Merge pull request #160 from Igalia/remove-profiler
b93738f shell.nix: Make 'nix-shell' command work as documented
486f720 lj_auditlog.c: Log GCfunc objects referenced by IR constants
1c81d51 fixup! lj_auditlog.c, lj_ctype.c: Log named ctypes to the audit log
d0191fe lj_auditlog.c, lj_ctype.c: Log named ctypes to the audit log
10764c4 lj_auditlog.c: Log strings referenced as IR constants
b0cbca7 lj_auditlog.c: Add "nanotime" timestamp to events
d0dcc75 lj_audit.log.c: Add file size limit (default 100MB)
0158240 luajit.c: Make -a and -p argument handling more consistent
8119e5d Remove references to the profiler, -jv, -jdump, and the like
cad220d lj_trace.c, lj_auditlog.c: Log auditlog event "trace_flushall"
c6347dc lj_trace.c: Clear profiler lasttrace state on flushall()
7b57a23 lj_trace.c: Allow reuse of trace numbers after jit.flush()
9be90a3 lj_jit.h: Increase default maxtrace from 1000 to 10000
389cc39 Merge remote-tracking branch 'raptorjit/master' into auditlog
8b04cd7 Merge pull request #154 from darius/master
559113a correct spelling
7484d99 Merge pull request #153 from lukego/pull-luajit-jan2018
42bb70b lj_ir.h: Fix typo made when resolving merge conflict
a8f76e5 Merge commit '4660dbf' into pull-luajit-jan2018
1a0be2e Merge commit '58d0dde' into pull-luajit-jan2018
2ff6099 Merge commit 'ea7071d' into pull-luajit-jan2018
e3e3c80 Merge commit 'd417ded' into pull-luajit-jan2018
836ba21 Merge commit '734a3fa' into pull-luajit-jan2018
653d48a Merge commit '33082a6' into pull-luajit-jan2018
7f812ff Merge commit '99cdfbf' into pull-luajit-jan2018
1753d8b Merge commit '06cd9fc' into pull-luajit-jan2018
5a6457d Merge commit '4b17a6a' into pull-luajit-jan2018
e525ef9 Merge commit '850f8c5' into pull-luajit-jan2018
0dbdc24 Merge commit 'b4ed321' into pull-luajit-jan2018
98027c8 Merge commit '6a2d8b0' into pull-luajit-jan2018
45b5028 Merge commit 'bf12f1d' into pull-luajit-jan2018
f4fbf81 Merge commit '05fbdf5' into pull-luajit-jan2018
8afd558 Merge commit '71b7bc8' into pull-luajit-jan2018
7f41f14 Merge commit '6b08248' into pull-luajit-jan2018
844ab86 Merge commit '9634fa9' into pull-luajit-jan2018
d98e699 Merge commit 'f3d7507' into pull-luajit-jan2018
91dbe23 Merge branch 'master' into v2.1
f6c52a3 Merge branch 'master' into v2.1
97356f9 Use https for freelists.org links.
e74afb9 Merge remote-tracking branch 'raptorjit/master' into auditlog
9175f10 Merge pull request #152 from lukego/gcc
4189da6 Just use the default gcc instead of clang 4.0.0.
b8204d9 Merge pull request #144 from lukego/simplify-lineinfo
eabe1de Merge branch 'raptorjit/master' into auditlog
6999d05 Merge pull request #147 from lukego/vmprofile-oneliner
e92c500 lj_vmprofile.c: Fix bug where restarting the timer would not work
44bd7a5 Merge branch 'raptorjit/master' into auditlog
9de778c Merge pull request #150 from lukego/reoptimize-string-intern
4660dbf Merge branch 'master' into v2.1
430d9f8 Fix string.format("%c", 0).
58d0dde Fix IR_BUFPUT assembly.
fcf86b8 lj_str.c: Remove special-case string interning fastpath
b53a438 Merge pull request #149 from lukego/benchmarks-fix-awk
f66fc04 testsuite/bench: Fix awk parsing of perf output
ed21034 auditlog: Log source (lex events) as msgpack binary
9dac90f auditlog: Log source code (in chunks via lexer events)
8406438 Merge branch 'vmprofile-oneliner' into auditlog
c3b59a7 Merge branch 'raptorjit/master' into auditlog
fd0e49d Support "one-liner" usage of jit.vmprofile.open()
02d596c Merge pull request #146 from lukego/vmprofile-cmdline
7844c5f Add '-p file' command line syntax for VMProfile
b2be223 Merge pull request #145 from lukego/fix-warning-and-reusevm
1fa5375 Fix compiler warning & reusevm generated code
de0f442 fixup! auditlog: Can only be opened once now (error on second open)
541d60d auditlog: Can only be opened once now (error on second open)
864a100 Merge branch 'simplify-lineinfo' into auditlog
b5056fa lj_parse.c, lj_debug.c: Remove clever tricks in lineinfo encoding
3a5aa7d lj_trace.c: Do not reuse trace numbers after flush
0b940c5 lj_auditlog.c: Glibc memory stream workaround...
623d45f lj_auditlog.c: Remove fflush() that seems problematic
2276cd8 lj_trace.c: Fix compiler warnings
588e9c3 lj_auditlog.c: Fix compiler warning
3e2d4e4 lj_auditlog.c: Use open_memstream() instead of fmemopen()
a63b5d9 Merge branch 'master' into auditlog
8f94abb Merge pull request #142 from lukego/integrate-dec2017
b83e78d Merge #141 branch 'replace-gcref-mref' into integrate
9df1238 Merge #133 branch 'fix-alloc' into integrate
6d9b473 Merge #140 branch 'vmprofile-v4' into integrate
5cf2076 Merge #120 branch 'record-blacklisted-functions' into integrate
0a33b43 Merge #101 branch 'long-running-stable' into integrate
4fafb32 Merge #98 branch 'lukego/szirmcode' into integrate
520c6d3 Merge #86 branch 'ffi-pointer-difference-div' into integrate
5454da8 Merge #79 branch 'unused-bench-param' into integrate
34f24ae Merge #81 branch 'gctrace-origin' into integrate
7e34e72 reusevm: Update generated code
07fef11 luajit.c: Add 'raptorjit -a <path> ...' command line auditlog syntax
671d770 lib_jit.c: Add 'jit.auditlog(filename)' Lua API function
857073c lj_auditlog.c: Add lj_auditlog_open(path) API function
7b9840d Merge branch 'replace-gcref-mref' into auditlog
1587377 lj_obj.h: Redefine MRef as simple void* pointer
2f5a9a3 lj_obj.h: Redefine GCRef as simple GCobj* pointer
88cc35c reusevm: update generated code
5843c53 lj_auditlog.c: Log prototype names (GCstr)
4d8b3eb auditlog: Log all loaded bytecode (GCproto objects)
b46e33a Merge branch 'fix-alloc' (incl. master) into auditlog
43691e0 reusevm: Update generated code
ad02215 Merge branch 'raptorjit/master' into fix-alloc
14120c1 Merge pull request #127 from lukego/lineinfo-no-compress
77dabca Merge pull request #132 from lukego/jit-log-bytecodes
964585e Merge pull request #134 from lukego/flush-clear-blacklist
796597d lj_trace.c: unpatch blacklisted bytecodes when flushing traces
06b9f32 lj_state.c: Fix allocation and free of IR buffer
d371db6 lj_state.c: Fix dealloc to match
bc57ceb lj_state.c: Fix bug in allocation of IR buffer
b29101e fixup! lj_auditlog: Improve logging of trace stop/abort
238c698 lj_auditlog: Improve logging of trace stop/abort
fdf39d8 Merge branch 'jit-log-bytecodes' into auditlog
9b2b467 Minor update to jit_State bytecode log
7a4e25b Add log of recorded bytecodes (BCLogRec) to jit_State
783cf2d Merge pull request #131 from lukego/jit-state-static-tmp-buffers
16121f2 Statically allocate JIT temp buffers
862727f Merge branch 'vmprofile-interp' into auditlog
a8b0f32 lj_vmprofile.c: Add assertions with lua_assert
0823d96 lj_vmprofile.c: Fix trace number overflow (into bucket 0)
ae5c6aa vm_x64.dasc: Fixes to ensure g.lasttrace is a trace number
ef08db2 Merge VMProfile 4.0 from branch 'vmprofile-interp' into auditlog
c1659d9 VMProfile 4.0: File format revision
17b3c9c lj_bcread.c: Fix warning
7f4787a Fix bug in lj_bcread_proto()
5e673ea lj_obj.h: Fix comment about lineinfo (non)compression
c734910 Remove feature to compress GCproto.lineinfo
5a3a889 Merge branch 'vmprofile-interp' into auditlog
5cac382 lj_vmprofile.c: Fix file header initialization
ea7071d MIPS64: Fix xpcall() error case.
d417ded ARM64: Fix xpcall() error case (really).
2b89796 vmprofile 3.0 with more information
bd7266d Track last exited trace (lasttrace) in global_State
089c55a lj_obj.h: Explicitly define implicit VM states
734a3fa Merge branch 'master' into v2.1
7dbf0b0 Fix saved bytecode encapsulated in ELF objects.
33082a6 ARM64: Fix xpcall() error case.
39680ca Merge pull request #123 from lukego/no-exitstate-pcreg
b6902f8 Remove EXITSTATE_PCREG
99cdfbf MIPS64: Fix register allocation in assembly of HREF.
06cd9fc ARM64: Fix assembly of HREFK.
4b17a6a Merge branch 'master' into v2.1
9f0caad Fix FOLD rule for strength reduction of widening.
f5d810e lj_record.c: Record IFUNC/IFUNCV the same as FUNC/FUNCV
c83fd4c Merge pull request #116 from lukego/jit-tracebarrier
0be85c6 src/reusevm: update generated files
e182ae8 Add jit.tracebarrier() primitive
850f8c5 LJ_GC64: Make ASMREF_L references 64 bit.
b4ed321 LJ_GC64: Fix ir_khash for non-string GCobj.
6a2d8b0 Merge branch 'master' into v2.1
0c0e7b1 DynASM/x86: Fix potential REL_A overflow.
bf12f1d MIPS64: Hide internal function.
05fbdf5 x64/LJ_GC64: Fix type-check-only variant of SLOAD.
ce6fbb4 lj_record.c: Relax heuristic for root trace meeting JIT loop
a720595 lj_trace.c: Reset hotcount table after flush
01dc844 lj_jit.h: Increase HOTCOUNT_MAX and expand HotPenalty.val
f7212cc lj_trace.c: Clear penalty slot after successful trace
c5923d8 lj_auditlog.c: Log VM definition information
71b7bc8 PPC: Add soft-float support to JIT compiler backend.
e4a76f8 Merge #98 branch 'szirmcode' into auditlog
ad14f45 GCtrace: Make it possible to map between IR and mcode insns
d400946 Merge pull request #94 from CapsAdmin/master
fabab00 x64/LJ_GC64: Fix asm_fuseloadk64()
6b08248 x64/LJ_GC64: Fix fallback case of asm_fuseloadk64().
59a3e9f Merge pull request #90 from lukego/reusevm-toplevel
53e93f1 Merge pull request #89 from lukego/readme-redux
86f23d6 README: Re-introduce goal of minimizing non-deterministic performance
1b5c2f2 fixup! README: Added note about future platform support
cc5668b README: Added note about future platform support
bebdbac Makefile: Added reusevm target at top-level
7c2a11e fixup! README: shorten intro, move Optimization Resources down
9ab33a8 README: shorten intro, move Optimization Resources down
2bc2d95 README: Make less fuss about Intel Core
88bcf00 README.md: New introduction
9634fa9 Merge branch 'master' into v2.1
f3d7507 Use https for freelists.org links.
46f00a4 Merge pull request #88 from lukego/pull-luajit
00e983c src/reusevm: update generated files
4cd536f testsuite: Enable Lua 5.2 compat
4e945d2 lj_api.c: Fix breakage in cherry-pick of ffd2610
340f702 Merge *history only* from branch 'luajit/v2.1' commit fd37da0 into pull-luajit
c0165a6 x64/LJ_GC64: Fix emit_rma().
e2cabaf Remove unused define.
07918dc Merge branch 'master' into v2.1
a0a1983 Merge branch 'master' into v2.1
a698e89 FFI: Update docs on compiler limitations.
e091baf Add FOLD rules for mixed BAND/BOR with constants.
2f7f0a2 FFI: Compile bitfield loads/stores.
bddc781 Document added C API extensions from Lua 5.2/5.3.
ffd2610 From Lua 5.2: Add lua_tonumberx() and lua_tointegerx().
9fabcf9 From Lua 5.2: Add luaL_setmetatable().
4a307c1 From Lua 5.2: Add luaL_testudata().
9a520cb From Lua 5.3: Add lua_isyieldable().
f1264bf From Lua 5.2: Add lua_copy().
eaf262d From Lua 5.2: Add lua_version().
b28c891 Refactor with LUA_OK.
d6db005 Add some more changes and extensions from Lua 5.2.
dbe5619 Remove old Lua 5.0 compatibility defines.
e834e9c Merge branch 'master' into v2.1
de9a886 x64/LJ_GC64: Fix emit_loadk64().
5126a06 LJ_GC64: Fix BC_CALLM snapshot handling.
07f976a Remove Lua 5.0 compatibility defines.
cf655d9 lj_crecord.c: JIT pointer difference for all element sizes
48be218 Merge branch 'unique-trace-numbers' into auditlog
4b4dcb0 lj_trace.c: Make trace numbers unique (stop reusing them)
a292144 Merge branch 'vmprofile' into auditlog
4a06d4a lj_vmprofile.c: Fixed to set file magic number with C API calls
8fc672c Merge branch 'gctrace-origin' into auditlog
fcf7053 check-generated-code.nix: Add more verbosity
4aaa844 lj_jit.h: Save 'parent' and 'exitno' fields in GCtrace
5708b06 Merge pull request #80 from lukego/fix-build
300d14e reusevm: Updated generated code
d27d4d4 check-generated-code.nix: Tweak order of diff args
076d161 check-generated-code.nix: Fixed
8ec77f9 .travis.yml: Update Travis-CI config (was not testing)
d095eae raptorjit.nix: Fix executable name / broken build
f8d1c9e Merge branch 'raptorjit/master' into auditlog
eaf418c Merge pull request #77 from lukego/vmprofile
d7fd44e testsuite/bench: Remove PARAM_* for unsupported platforms
8cd8f7e vmprofile: Extend Lua API and add test cases
fd37da0 PPC: Add soft-float support to interpreter.
7e662e4 x64/LJ_GC64: Fix emit_rma().
89407be Merge #64 branch 'lukego/dwarf' into auditlog
a68c8d2 Merge pull request #37 from lukego/cleanup
8ca5612 Merge pull request #66 from lukego/vmprofile
f8bd4d8 Merge pull request #59 from lukego/nix-benchmarks
66fab90 Merge branch 'master' into nix-benchmarks
67864a9 Merge pull request #70 from lukego/split-build
c297923 Makefile: New 'reusevm' target & bootstrap-skipping method
9fe3967 .travis.yml: Include check-generated-code test
2cf9924 check-generated-code.nix: Check if in-tree VM code is stale
726cc9c raptorjit.nix: preBuild = 'make bootstrapclean'
964cbe4 Makefile: New target 'bootstrapclean' removes in-tree generated code
3ca3df8 README: Update build procedure description
196a9e2 Makefile: s/LuaJIT 2.1.0-beta2/RaptorJIT 1.0.0-alpha1/
086b4c9 Exclude generated code from .gitignore
6d7a8d2 Add VM generated code to the repository
45c2d44 Merge pull request #69 from lukego/simplify-makefile
f9d7cdd src/Makefile: Shrink by removing obsolete platform logic
65675f5 lj_vmprofile: Port & adapt revisions
24f82aa Merge branch 'lukego-luajit/vmprofile' into vmprofile
0acc230 lj_auditlog: Log the memory containing IR instructions
cf2dfaf Merge branch 'master' into v2.1
82151a4 Modify fix for warning from 'ar'.
6a71e71 Remove unused define.
b0ecc6d FreeBSD/x64: Avoid changing resource limits, if not needed.
a057a07 MIPS64: Add soft-float support to JIT compiler backend.
0e4a551 Merge branch 'master' into v2.1
c7c3c4d MIPS: Fix handling of spare long-range jump slots.
79fe578 Merge branch 'master' into v2.1
7381b62 MIPS: Use precise search for exit jump patching.
0a55469 Generate separate DWARF debug info
376fb58 lj_trace: Log trace aborts to auditlog
2dfdb73 lj_auditlog: Implement logging of trace_abort
b302c6e lj_auditlog: Add "event" object
76be283 lj_auditlog: remove redundant "size" field
5ea4b74 lj_auditlog: use msgpack format for audit log
cb132d1 Add lj_auditlog (very preliminary)
6259c0b Merge branch 'master' into v2.1
630ff31 Add missing LJ_MAX_JSLOTS check.
31afda3 Merge branch 'master' into v2.1
1c89933 Fix LJ_MAX_JSLOTS assertion in rec_check_slots().
8271c64 RELEASE LuaJIT-2.1.0-beta3
e9f8abf Update changelog.
16dc7fb Merge branch 'master' into v2.1
0bf80b0 RELEASE LuaJIT-2.0.5
ae0d438 Update changelog.
b608891 FFI: Update docs on compiler limitations.
cf8a5be Add FOLD rules for mixed BAND/BOR with constants.
fbfbd7b FFI: Compile bitfield loads/stores.
dc5eb65 Merge branch 'master' into v2.1
02b4b1e Add workaround for MSVC 2015 stdio changes.
ed54eac MIPS64: Fix stores of MULTRES.
58aaac3 MIPS64: Fix write barrier in BC_USETV.
18efb33 ARM64: Fix stores to vmstate.
cced178 Document added C API extensions from Lua 5.2/5.3.
de26f76 From Lua 5.2: Add lua_tonumberx() and lua_tointegerx().
2b8de8c From Lua 5.2: Add luaL_setmetatable().
cde968f From Lua 5.2: Add luaL_testudata().
f2e2a3f From Lua 5.3: Add lua_isyieldable().
ef23b70 From Lua 5.2: Add lua_copy().
c67a098 From Lua 5.2: Add lua_version().
9c685f7 Refactor with LUA_OK.
22dfa63 Allow building on Haiku OS.
7c7843e Merge branch 'master' into v2.1
247b362 OSX: Fix build with recent XCode.
ca49220 Merge pull request #60 from lukego/logo
7bf26e6 Add new "uplifting" RaptorJIT logo
de97b9d Add some more changes and extensions from Lua 5.2.
dc320ca Remove old Lua 5.0 compatibility defines.
c29afcb Merge branch 'master' into v2.1
e205ad0 FFI: Fix FOLD rules for int64_t comparisons.
3143b21 ARM64: Add big-endian support.
4318163 testsuite/bench: Tweaked tests to run longer
f5aa329 README.md: Add note about where benchmark visualizations go
b1b52db Fix markdown goof in README.md
7a35839 Import revamped nix benchmark framework
742104f Merge pull request #55 from lukego/slow-lea
7356708 md5 benchmark 15% speed by removing "slow LEA"
78f5f1c x64/LJ_GC64: Fix emit_loadk64().
024ade7 LJ_GC64: Fix BC_CALLM snapshot handling.
fa126c5 x64/LJ_GC64: Fix assembly of CNEWI with 64 bit constant pointer.
779a1eb ARM64: Fix Nintendo Switch build.
0cf7885 ARM64: Fix XLOAD/XSTORE with FP operand.
d54947d Merge pull request #52 from lukego/nix-update
398bd28 Cleaned up nix expressions
82487c7 Travis-CI: Update now that nix runs the test suite
c025664 nix: pin nixpkgs, pin clang 4.0, run test suite
010a99b Add 'testsuite/' from commit '96f816c5e5acbaf33af723e28fba6f4a45e05b6b'
0659092 Remove submodule for testsuite
3ec0f9c Merge pull request #49 from lukego/fix-kkptr
b1bc13b Compile with -Werror (treat warnings as errors)
fb32f91 Fix IR_KKPTR case of b1cfd27
693909f Merge pull request #47 from lukego/travis-jit-options
b1cfd27 lj_asm_x86.h: Fix CNEWI for constant pointers
9fcb036 Merge pull request #44 from lukego/rm-vm-ifdef
d286c95 Fixed typo in jit=-O1
03ad911 Travis CI: Test -O3/-O2/-O1/-joff separately
96f816c Merge branch 'lukego/branchmarks'
c8b2b1c vm_x64.dasc: Resolve +JIT +FFI -X64WIN
684f0f7 Merge pull request #43 from lukego/rm-dualnum
170c3ac vm_x64.dasc: Fix FORL type coercion
f458d9e Fix mistakes in DUALNUM removal
de5568e Remove Lua 5.0 compatibility defines.
fa02289 Remove DUALNUM mode
0632142 Merge pull request #40 from lukego/readme-optimize
5f263f2 README.md: Add software optimization links
7a75b53 Merge pull request #39 from lukego/readme8
f7122f1 README: Declared CPU & Optimization policy
85df062 Merge pull request #38 from lukego/no-unwind
d0cb401 Merge pull request #36 from lukego/rm-introspect
5660da3 README.md: Note +NO_UNWIND
8f2744a ifdef-defile: Correct spelling of LJ_NO_UNWIND
f7dc94a Define NO_UNWIND
e2e5689 Remove unused lj_vm_profhook() prototype
972fc1e lib_jit.c: Remove introspection and jit.attach()
521a874 Merge pull request #35 from lukego/rm-vmevent
df45ff5 Remove PROFILE and VMEVENT features
c40e6bf Merge pull request #33 from lukego/rm-amalg
0b4a0d2 Merge pull request #34 from lukego/rm-dotbat
eb052df Remove '*.bat' console build batchfiles
84379d3 Remove "amalg" amalgamated build"
aa188bc Merge pull request #32 from lukego/nix-comments
cd0e416 README.md: Add link to default.nix
3a523de default.nix: Commented
937375e Merge pull request #30 from lukego/readme7
a4a5720 README.md: Updated build instructions
631e214 Merge pull request #27 from lukego/testsuite-plusslow
1c74123 Merge branch 'master' into testsuite-plusslow
03875be Merge pull request #29 from lukego/nix
1124340 Travis-CI update for nix-based build.
60aa095 Specify build dependencies with nix
78f9acf Makefile: Replace minilua with luajit dependency
5726c88 Switch from gcc to clang
9fedd59 Travis-CI: Added '+slow' argument to test suite
a717eb1 Merge pull request #21 from lukego/raptorjit-testsuite
bfe7ddc Update Travis-CI to use raptorjit-testsuite
d5b9354 Add raptorjit-testsuite submodule
66b4822 Removed luajit-test-cleanup submodule
e094845 Merge pull request #1 from lukego/fix366
5ccbcfe Make test 366 pass by adding "move:" to expectation
235e82b Merge pull request #20 from lukego/readme6
28f0f6b README.md: Indulge in more pithy quotations
5af7ae7 Merge pull request #19 from lukego/dce-fastcall
ac6311d Remove definition of LJ_FASTCALL (a NOP)
ac49377 Remove all uses of LJ_FASTCALL (a NOP)
ad950cc Merge pull request #17 from lukego/readme5
0e8e997 Revised README.md
3523a63 Merge pull request #16 from lukego/copyright
d32cb90 Merge pull request #15 from lukego/contributing
43e53c7 COPYRIGHT: Update the COPYRIGHT file inherited from LuaJIT
9359d14 Added CONTRIBUTING.md
e2eb703 Merge pull request #14 from lukego/testsuite
09b2f3e Add LuaJIT test suite to Travis-CI
8796648 Add LuaJIT/LuaJIT-test-cleanup to submodules/
3ec733f Merge pull request #12 from lukego/readme4
a168dc6 README.md: Add quotes, fix benchmarks link
7aab422 Merge pull request #10 from lukego/rm-dynasm
7237ba5 Merge pull request #9 from lukego/rm-jit
e2968cc Removed dynasm modules for unsupported architectures
b270bf0 Remove jit.p, jit.v, jit.dump, disassemblers
7446725 Merge pull request #8 from lukego/readme3
7fe552f Revised README.md
33e308e Merge pull request #7 from lukego/perftest
f4c8ca6 README.md: Performance regression tests link
18225a6 Merge pull request #6 from lukego/travis
1842bc3 README.md: Added Travis-CI status badge.
0213af2 Added absolute minimum .travis.yml
2fcc0a4 Merge pull request #5 from lukego/bigbang
c2d3d70 Merge pull request #4 from lukego/conduct
4daf440 Merge pull request #3 from lukego/apache2
78a072c Merge pull request #2 from lukego/readme2
40381fa Remove unused code.
58b063b CONDUCT.md: Add simple code of conduct
3127cb0 COPYING: Switch to Apache License 2.0 for new code
827e3d6 Add ifdef-defile config for 'unifdef'
7beb3b2 Remove all architectures except x86-64.
d1c0e13 Remove LUAJIT_USE_PERFTOOLS
006018f Change wording of README
dcda227 Merge pull request #1 from lukego/luajit-v2.1
50ed432 Merge remote-tracking branch 'luajit/v2.1'
5c74044 Added initial README.md
6a66f5d Added LUAJIT_VMPROFILE: new profiler backend
fe8abc881 strings: compare hash as well
014708b Add test for BC_VARG slot revival
63a6f7e Add test for BC_KNIL slot revival under LJ_GC64
14c132e Add tests for table indexing (inspired by #221)
73139f8 Disable some tests under 5.2 compatibility
f333908 Added bench/PARAM_x86_CI.txt (CI params)
bcf938b Extend cdata_var test slightly
071f050 Exercise string concat some more
e7b029b issue #8 removing tests
7897e7f Add tests for allocation of variable-sized cdata
6fe6fbe add coroutine.lua
ad494d6 issue #8 add strings.lua and literals.lua to the execution
2faff35 issue #8 add strings.lua and literals.lua to the execution
8e20d26 Update README.md
318dedd Update README.md
9b1b6bc Merge branch 'roulette' into maintainer
a71cd6d roulette: Stop seeding the random number generator
96cfbb3 Merge branch 'roulette' into maintainer
b0a75b4 Added bench/roulette.lua
cd42900 issue #8 add dummy file to ensure directory is saved in git
3e73138 issue #8 add dummy file to ensure directory is saved in git
a1dccdb issue #8
6e2030f issue #8 add 5.2.2 tests
ef23b70 issue #8 add 5.2.2 tests
7b022d4 Merge branch 'lua-51-testsuite' of https://github.com/LuaJIT/LuaJIT-test-cleanup into lua-51-testsuite
ea00add issue #8 add 5.2.2 tests
b116313 Update README.md
45b2258 issue #8 initial attempt to get the tests running
0497c7b issue #8 initial attempt to get the tests running
a6bb93e Merge branch 'lua-51-testsuite' of https://github.com/LuaJIT/LuaJIT-test-cleanup into lua-51-testsuite
1cb6161 issue #8 initial attempt to get the tests running
e832e54 Update README.md
e6fc702 Create README.md
0dda7b2 issue #8 baseline checkin of Lua 5.1 test suite
c3224bb Exercise TSETR and TSETM slow paths.
703e9cf Skip some tests under LuaJIT 2.0
d7985d1 Modernise more ffi tests.
a82c499 Modernise some FFI tests.
9c27a59 Fix batch modifier application.
9f1451d Normalise line endings.
3e5cca7 Modernise some tests.
bcd286b Modernise more tests.
1bee68f PUC-Rio Lua compatibility.
6a7e342 Modernise misc/meta_* tests.
e002a08 Improve reporting of failing tests in --quiet mode.
f40304d Modernise string_op test.
b8bbda3 Modernise goto test.
74d256f Remove some already-modernised tests from misc.
c2da6d8 Merge pull request #7 from corsix/shakeup
488e3fb Shake things up.
634b212 Merge pull request #6 from ladc/master
581a474 Put subtests in 'test' dir
1d7aaed Moved proposed test runner and examples into 'experimental' directory.
82586b1 Improve filenames of extracted tests and error reporting in test runner
91cb29b Add workdir argument to extract() in tester module
a6e5102 Capture stderr when tests are run externally in run_single()
14bfa87 Add --runcmd='x' option to test runner
765714f Put @key: value pairs in separate attributes table in parse()
16b3293 Don't print an empty description in build_codestring() in tester module
8859058 Implement @key: value matching in parse() function of tester module
0d975fa Clean up test script (args, tag patterns)
5f331e7 Avoid string.rep in test.lua
24d2b97 Move some tests into new structure and adapt comments to test runner.
b0b3a20 Add test.lua for running and filtering tests.
af54fa1 Add verbose option to run() and run_single()
639480b Add filter() to tester module for filtering tags
a4dd1e0 Add run_single() and run() to tester module.
a4ec002 Add index() and extract() to tester module.
46e1fea Add first part of test framework: parse tests.
a273241 Initial commit

git-subtree-dir: lib/luajit
git-subtree-split: 54cc2a1b4c8ccf6e0c227e9c789947250944b322
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants