Skip to content

Snabb 2019.06 “Deltadromeus”

Compare
Choose a tag to compare
@eugeneia eugeneia released this 06 Jun 12:09
· 1173 commits to master since this release

This long awaited release is the first Snabb to ship with RaptorJIT and runtime support for the Studio diagnostics environment. The Snabb top monitoring tool is replaced bya more interactive rewrite, and its basic SHM object listing functionality is spun out to the new snabb shm utility. In addition to bug fixes and optimizations, this release also includes improvements to lib.yang and our IPv6 fragmentation apps as well as support for current versions of nDPI.

Changes

  • #1316 Integrate RaptorJIT with Snabb
  • #1401 Merged lwAFTR release v2018.09.02
  • #1386 Add snabb shm: simple tool to print information about Snabb SHM objects
  • #1384 apps.ipv6.reassemble: add expiration of incomplete reassembly buffers
  • #1383 Add path MTU discovery to IPv6 fragmenter (apps.ipv6.fragment)
  • #1275 lib.checksum: optimize IP checksum computation using DynASM
  • #1368 Support nDPI 2.X in ljndpi
  • #1380 Fix a bug in apps.vhost.vhost_user with regard to NUL-termination
  • #1385 Move logger in core.lib to lib.logger
  • #1392 VlanMux: optimize tag pop/push (apps.vlan)
  • #1394 #1395 #1396 Ctype diversity related optimizations

Contributors

Alexander Gall (22):

  • 796597d: lj_trace.c: unpatch blacklisted bytecodes when flushing traces
  • 2ad6817: ipv6.reassembly: avoid packet cloning
  • 0463915: ipv6.reassembly: expire stale reassembly buffers
  • ffd584c: ipv6.reassembly: reduce scope of local variables in handle_fragment()
  • 66a7575: Add PMTUD to apps.ipv6.fragment
  • a9a4b72: ipv6.fragment: improve performance, reduce garbage
  • 7f0703a: ipv6.reassembly: perform reassembly in separate loop
  • dd9bb12: Refactor the logger facility
  • 2bbaa39: lib.tsc: cache calibration of rdtsc
  • 477b4c5: VlanMux: optimize tag pop/push
  • 8f76782: intel_mp: fix ctype diversity for txdesc_t
  • cff919c: packet: cast pointer arg in from_pointer()
  • f896458: datagram: canonicalize pointers in packet append() and prepend() calls
  • d06314c: lwaftr.ctable_wrapper: add cleanup function to random eviction
  • a44d8e1: apps.ipv6.fragment: canonicalize pointers, simplify ICMP matching
  • 4e28690: apps.ipv6.reassemble: fix packet leak
  • d7a51c6: apps.ipv6.reassemble: avoid spurious sort
  • 2e5b5e8: apps.ipv6.reassemble: copy header from first fragment
  • f7a00ff: apps.ipv6.fragment: fix bug in ICMP type match
  • 57cc280: apps.ipv6.reassemble: remove over-eager optimization of module operator
  • d054ec0: apps.ipv6.reassemble: use max_payload constant in packet size check
  • 69473eb: apps.ipv6.reassemble: fix check for valid packet length

Andy Wingo (122):

  • 634ab24: Remove duplicate lj_auditlog.c
  • 2914e5a: Make file-local auditlog variables static
  • 8119e5d: Remove references to the profiler, -jv, -jdump, and the like
  • bbd7635: Remove references to -jv, -jdump, and the like
  • 6943135: Revert "Merge pull request #1040 from lukego/dynasm-gc64-nocoerce"
  • a91e457: Add ring buffer module
  • 252257c: Add basic IO streams
  • 5ceb3c8: Add file stream implementation
  • ddb6a8e: Add full replacement for Lua's "io" module
  • fed2034: Move io.open implementation to lib.stream.file
  • 5ee5357: YANG output byte streams use new Lua streams
  • 311bea2: Move tmpfile() impl to file.lua; add optional perms arg
  • 8a0b098: More YANG output byte stream refactoring
  • 55deb49: Add some helper methods to Lua streams
  • b27a00c: Remove calls to :align() output to ffi natural sizes
  • a2fda31: Remove unused open_output_byte_stream function
  • 0e5f45f: Remove unused lwaftr rangemap load/save capabilities
  • a361697: Replace lib.yang streams with lib.stream streams
  • 0512a8f: Remove YANG streams
  • 810c81e: Add memory-backed stream implementation
  • 5d1b830: Migrate YANG and related libs away from ad-hoc string_io_file
  • 949e663: YANG syntax parser is now streaming
  • 7e45ce3: Fix use of undeclared variable (refactor residue)
  • 1a33991: Fix default EOL handling style
  • ce3b8ad: Fix error reporting in "listen" test
  • 3805a3a: Fix top-level scalar parsers to take stream as argument
  • ac8e74e: File streams query OS for appropriate block size
  • 91560fa: Adapt "snabb config listen" to streaming parse
  • 38f1ad4: Fix conversion of listen to streams
  • e135a02: call_with_output_string flushes stream
  • 4129dec: Add timer wheel
  • 1edd231: Add fibers scheduler
  • 1d2e560: Add fibers
  • c6beee9: Add concurrent ML operations and channels
  • f9a37a6: Move sleep and timeout-related operations to sleep.lua
  • 18467fb: Add epoll wrapper
  • 28ca806: Rework complete tasks to be more centralized
  • 650f7c2: Add epoll-based nonblocking file I/O
  • 2974b06: Supervisor process restores blocking flags on stdin,stdout,stderr
  • 6bf7425: Add Concurrent ML buffered channel
  • 149360b: Convert "snabb config listen" over to use fibers
  • 2a5b526: Convert lib.ptree.trace to use new streams
  • e26a4b6: Adapt new JSON library to return nil on EOF
  • 19e422c: Rewrite "snabb config bench" to use fibers and new streams
  • a6654ce: Replace old ptree JSON library
  • e1b0324: Fix fibers sleep self-test
  • 70fde0b: Add sockets library that integrates with blocking handlers
  • fb7c091: Improve error handling in "snabb config" tools
  • 007be9b: Add support for orderly scheduler shutdown
  • 37053d2: Convert ptree manager to use fibers
  • 0d7d94a: Minor cleanup when reading string table
  • 7466c74: Fix YANG binary serialization of by-reference cdata leaf values
  • 8ef996b: Add assertion to Stream:write_scalar
  • fdec9b7: YANG binary serialization allows for >4GB files
  • f6f8755: Avoid copy when reading in ctable
  • ee1a81a: Use more relaxed NUMA memory binding policy
  • 855aae7: Simplify alarm notifications listener
  • 3ee13d9: Fix socket API change
  • 9bb068e: Add condition variables to fibers
  • a6ea6ff: Fix typo in channels self-test
  • f3cf804: Update fibers file API to allow wait-for-readable ops
  • b47a55f: Add inotify module to ptree
  • 90dacea: Add EINTR handling to epoll module
  • f4a4ab9: Add :next_entry_time() method to timer wheel
  • af60f95: Add scheduler :main method
  • b0bc5b3: Use fiber main method in programs
  • 598745a: Restore schedule_tasks call on event waiter
  • 5426d18: Fix duplicated method
  • 032d187: Minor scheduler refactor
  • cd99fe3: Inotify is_dir() function uses lstat
  • c16edb7: Make lib.comma_value work better for large uint64 values
  • 5c8cabd: Rewrite "snabb top" with fibers
  • b74014c: Fix error case for histogram summaries
  • 4fa0ca8: Arrows change focus in snabb top
  • 600cbee: Remove snabbvmx top.
  • 270bddb: Fix "snabb lwaftr query"
  • 1914a86: Add round-robin database library
  • bfe4f3d: Back off RRD version to 3
  • c29f095: Refactor ptree manager treatment of counters
  • d08292e: Fix reading of "snabb config" configurations from stdin
  • 225878d: Make sure recursive inotify drains all nested events before returning
  • 57b8c18: Swap argument order for file names and initargs in rrd create
  • 5eedfef: Fix RRD bugs
  • 8a7ab76: Ptree manager samples worker and aggregated counters into RRDs
  • 81a54ed: "snabb top" reads rrd files
  • 59d372d: snabb top doesn't monitor itself
  • 5d033e1: Add "interface view"
  • abe2d58: Improve spacing and column width allocation in snabb top grids
  • cf8992f: Switch "snabb top" to prune state tree in UI
  • 2e95609: Wrap "snabb top" counter leaves in an object
  • 6530a0d: Sort rrd lookup results
  • c3fef25: top: Add ability to skim back and forward through time
  • 1e77c9d: Add fallback version of directory monitor if inotify is unavailable
  • 2ba44e8: Make alarms codec use stream i/o routines
  • 6806b59: Tweaks to make alarm encoding have less overhead
  • 74e78e3: Cache array types in stream.lua
  • d6a8c98: Fix another snabb top problem
  • 53f4e05: Update "snabb top" docs
  • 607f7c1: Add ptree docs on counter collection and aggregation
  • a533ed4: Fix typo
  • 26812c6: Remove some indirection in alarm_codec
  • 34ec6c8: Fix broken encode_raise_alarm
  • 15be803: Simplify alarms API
  • 93090ae: alarm_codec doesn't require unpacked args
  • 047f6e7: Fix bug introduced in previous commit
  • a99cd30: Ptree extends alarms by installing alarm handler
  • 3930e90: NDP uses a pre-allocated pseudoheader
  • 0cb4122: Remove some loops-within-loops in stream.lua
  • dbdb0d1: Micro-optimizations
  • 9930715: Fix to alarm:raise
  • 84c2901: Expand on some Changelog features
  • 6ce2990: Minor wording changes around the RRD feature
  • dd54c80: Revert "Show rxbits and txbits instead of bytes"
  • 7b75fbf: Ensure vhost-user socket paths are NUL-terminated
  • 44ef127: intel_mp app instantiations make stats symlink counter forest
  • 5fa0d15: Remove unused symlink creation routines
  • edad14b: Minor formatting change
  • 71bf219: Update l2vpn for intel_mp stats change
  • a24bb8d: Remove extraneous diff
  • fa913d5: Remove more extraneous diff
  • 8f54869: Revert "Minor formatting change"
  • 144c589: intel_mp: Don't eagerly open shared counters

Asumu Takikawa (30):

  • b145d27: tap: bump selftest timeout to 0.05 seconds
  • c4681a6: Use virtual instead of profile time for vmprofile
  • fdf5d02: Restore use of LUAJIT_CFLAGS
  • 4bd9d6e: intel_mp: store shm stats in global directory
  • 2a638fe: Go back to avoiding setting run_stats
  • 0d641de: inotify: adjust is_dir to allow symlinks to dirs
  • 373d195: Filter queue counters based on enabled bitmap
  • 1c536e2: intel_mp: add a new test for rxcounters & workers
  • c40f0ea: snabb top: refactor queue stats filtering
  • af8c75f: snabb top: fix worker nesting with shared pci
  • 5388c98: intel_mp: add 10g test for shared RX counters
  • 6b72001: Use virtual instead of profile time for vmprofile
  • 504e2a6: Start changelog for lwAFTR v2018.06.01
  • 102f990: Add a benchmarking script for lwAFTR releases
  • fd0f29e: Adjust benchmark to check SNABB_PCI env vars
  • 929bb7a: Add CPU env var for lwAFTR benchmark script
  • c02519f: Provide info if lwAFTR errors during benchmark run
  • d627abd: Fix typo in env var check in benchmarking script
  • ece8074: Parameterize CPUs used for loadtest in benchmark
  • cf5dc3f: Set CPU affinity on two CPUs for RSS release test
  • 79d4546: Use self.shm frame in get_rxstats / get_txstats
  • 07c3be8: Adjust test_10g_counters.sh for new location
  • 5b21794: Remove remove_stats_symlinks call
  • 2ae4ea4: lib.yang.data: use stream ops to open test data
  • 89d5e6e: lib.yang.parser: use error() instead of os.exit()
  • 9703dd0: intel_mp: fix delayed counter read
  • bcbc3fe: Add changelog for lwAFTR v2018.09.01
  • 987f60c: snabbnfv: bump telnet timeout for selftest
  • 90e9b67: ljsyscall: ensure size matches mask for get_mempolicy
  • 08ff28f: ljsyscall: ensure size matches mask for get_mempolicy

Ben Agricola (4):

  • 39dc245: Fix notification_peers is nil error in ptree
  • af4363e: Fix incorrect status sent as alarm-notification
  • e0a5738: Add alt-resource support to yang.alarms.
  • ebfb2c6: Add missing cltable include

CapsAdmin (1):

  • fabab00: x64/LJ_GC64: Fix asm_fuseloadk64()

Darius Bacon (1):

Dibyendu Majumdar (17):

Diego Pino Garcia (154):

  • 044a458: Enable vmprofiling in workers
  • 92adb41: Hoist enable_auditlog out of loop
  • 360a504: Implement alarm-notification logic
  • 129f33c: Basic notification push mechanism
  • 7fa656a: Fetch notifications from alarms state
  • 911917d: Serialize notifications to JSON
  • f4e9a7e: Add alarms listen subprogram
  • 65df2ca: Push notifications over socket using a queue
  • 3feb451: Fix error while parsing ipv4 and ipv6 prefix
  • f8bc570: Remove unused function
  • 3e77868: Fix impendance mismatch in ipv4-prefix
  • 6334a30: Add test case for inet:ip-prefix
  • b457851: Adapt alarm notifications management to new API
  • a466120: Add identificator name in alarms
  • 050c9fb: Add basic support for influxdb format
  • 2911d5a: Prevent potential error if value is nil
  • a8180aa: Initialize root variable if nil
  • 031e69e: Detect nodes uniqueness as a function of the schema
  • cf35209: Fix several errors in serialization of arrays
  • 682a0ef: Escape influxdb tags and values
  • 07a0dc8: Add influxdb printer tests
  • 39e9325: Disambiguate keys
  • 89d7b19: Use '%position' as tag key for leaf-list nodes
  • 8352fd5: Schema markers need to be reset on each load
  • 42717a9: Test more data types in test case
  • a25deeb: Handle integer data types
  • f7ee499: Append '/' to uniquified names
  • 43c0636: Collect node uniqueness in extra pass
  • 9f8dda9: Set TTL=64 in ICMPv4 echo response
  • 18f50c8: Set hop_limit=64 in ICMPv6 echo response
  • aafbe6e: Add end-to-end tests for pings with TTL lower than 64
  • 1504200: Simplify monitor behavior
  • 19ff598: Add function is_iface to core.lib
  • 93a32fe: Indent
  • 83f8316: Support tap interfaces in v4 and v6 arguments
  • ca2a3f0: Support tap interfaces in on-a-stick mode
  • 55d387e: Change load_tap to load_iface using RawSocket
  • f49c9c6: Change load_on_a_stick_tap to load_on_a_stick_iface using RawSocket
  • fd4ab22: Reduce size of packet
  • e12cc2b: Rework function 'is_iface'
  • 4842d81: Rename references to iface as kernel iface
  • d88e019: Open channel in worker for listening to directory events
  • 3abdc1f: Initialize aggregated counters in manager process
  • 918bd28: Cache counters
  • 3039ce8: Archive counters on delete
  • 5691169: Move fiber for managing aggregated counters (creation and destruction)
  • 6060744: Create fiber to update aggregated counters
  • b5f26d8: On archiving counter, perform counter.delete
  • 4aeeafc: Merge create and update counter logic
  • c02c079: Sum counters of all workers and commit on each iteration
  • 514cd51: Emit cancel operation on workers shutdown
  • ef4f9b8: Rework archive_counter
  • 4134c1b: Call scheduler shutdown for 0.1s or until it returns true
  • c7388a2: Sum of archived aggregated counter should be accumulative
  • 5e7793a: Rework aggregate counters logic
  • 5e1fced: Fix aggregated counter retrieval
  • f5fd15e: Fix attempt to index a nil value
  • 2a6498e: Implement leafref value
  • a510b71: Add leafref test
  • 4db39d7: Implement consistency checker
  • 84397f8: Resolve circular reference by moving consistency code to path_data
  • ec0223a: Visit leafref nodes with an iterator
  • d4cc98d: Implement require-instance constraints in leafref
  • 2224f9d: Precompute getter outside of calling function
  • 618d552: Synchronize daylight-save flag between utc time and local time
  • 2e59e6d: Fix parsing of ISO8601 date format
  • 60b37d4: Show command 'listen' in list of available 'alarms' subcommands
  • 0e306ee: Remove undeclared variable
  • 660e9b2: Enable leafrefs in ietf-alarms
  • 720a1d7: Run consistency checker after loading configuration
  • 19d14c9: Improve parse_path
  • 63355f4: Getter should be of parent path
  • 56ad8ee: Return path if path is absolute
  • 8152cf7: Resolve current() to current node_path
  • 597d79f: Rename arguments
  • bc2333e: Only add leafrefs if successfully obtained a getter
  • d1b8ae5: Add consistency checker of ietf-alarms
  • 4651a92: Fix typo in lwAFTR configuration docs
  • f4bb339: Print out value as mac address if label is 'macaddr'
  • 7dd4fe0: Fix undefined variable
  • 4af258a: Add guard when retrieving speed and macaddr values
  • 95e57cc: Fix function require_splitter
  • 6c4e928: Determine whether a configuration should run on-a-stick
  • cdd79cf: Add on-a-stick assert and prepare migration
  • e649e60: Scale packet drops
  • ed53161: Initialize stats queue number
  • c444683: Set run_stats true for all nic setups
  • 6c1dd95: Sync only statistics if instance is master
  • 004b01d: Sync stats for relevant queue only if rxcounter defined
  • 14e6b47: Fix test
  • 1c3115b: Update some stats counters always
  • b57d9ad: Sync device stats refardless of run_stats value
  • 227f996: Iterate queue stats registers in order
  • a1cbf72: Honor txcounter when updating queue stats
  • 709b99f: Blacklist of counters which should not be aggregated
  • 0c2785f: Check sync_timer exists before calling it
  • 30412f0: Skip blacklisted counters in aggregated counter list
  • e68b756: Skip blacklisted without goto and refactor blacklisted
  • 5d4683a: Update Snabb lwAFTR version
  • b026f21: Improve CPUSet:acquire warning message
  • 51dc6aa: Reintroduce subcommand compile-binding-table
  • 0faa677: Modify generate-binding-table to generate a configuration file instead
  • b451155: Rename generate-binding-table to generate-config
  • c19905f: Rename compile-binding-table to compile-config
  • 6fb022b: Update lwAFTR README
  • 75e61ec: Fix test
  • d742a6b: Fix indentation
  • e27f506: Change instance template to id 0
  • 3628303: Restrict condition for use of V4V6 splitter
  • 7ba21bf: Fix parsing of path in setter and remover for grammar
  • dc67aee: Remove dead code
  • eb80657: Do not skip psid=0 if psid-length is zero
  • 436d311: Fix error while opening rrd.file
  • fe72a43: Show rxbits and txbits instead of bytes
  • 73d0072: Print out user-friendly error message
  • 12b8f19: Fix MAC address comparison
  • cd5aa38: Change MAC addresses in configuration file
  • a81e7d2: Select ping6 program
  • 1582927: Missing argument in Manager:update_configuration
  • f0c6011: Implement checksum computation using DynASM
  • 9a96d57: Add reference implementation of checksum computation in Lua
  • d42747c: Convert loops to ifs
  • 9da791f: Remove unnecessary label
  • f3969f0: Add at 16 bytes strides
  • 52e8457: Fix comments
  • 12fd28c: Sum at 32 bytes strides
  • 1ed8aa5: Remove unnecessary assignment to register
  • a7bac04: Print out nanseconds by byte and per csum
  • ca059dd: Check AVX2 and SSE2 are available
  • f38ec15: Add function for verifying correctness of new checksum computation
  • 7d5eeab: Remove AVX2 and SSE2 checksum computations
  • 24ee9fb: Use new checksum function by default
  • ced7500: Add snabbmark checksum subprogram
  • 542a179: Benchmark checksum using PMU utilities
  • b163b10: Fix runtime error in lwAFTR verbose mode (-v)
  • 08ea6a1: Don't print out stacktrace on reporting parsing error
  • e081d27: Report parsing errors using Parser:error and not assert
  • 8f8b43b: Extract method parse list of cpus
  • 1579392: Bind manager process to first available CPU in NUMA node
  • b636355: Make CPUSet:bind_to_numa bind to CPU too
  • 7845eec: Compute available cores by subtracting total cores - isolated
  • b6d50e6: Bind manager process to a set of available cpus
  • 56876bd: Randomize name parameter in test to avoid collisions
  • 321ee18: Disable snabbvmx nexthop test
  • b858c9e: Allow setting flow-label in ingress packets
  • b75190d: CPU parsing should return an empty list if string is blank
  • 3c2218f: Trim list of cpus
  • 14690f2: Make flow-label YANG leaf default to 0
  • 03dd8e1: Show nexthop MAC in top
  • c64426a: Skip memory binding in blackisted kernels
  • 1600fb9: Allow to blacklist kernel versions that are greater or equals than a certain version
  • 8aea089: Add assert limit for width value
  • 6489f0e: Memoize specialized functions
  • 6907604: Save next-hop MAC resolution in ARP and NDP apps respectively

Jessica Tallon (10):

  • d84e630: Preserve the version number for lwaftr release
  • ce6313e: Remove unreleased note from changelog
  • 69b5d0a: Fix loadtest find-limit arguments for short form.
  • f8fec8d: Add changelog items for 2018.06.01
  • 3934c33: Fix few nits in changelog
  • bb25545: Fix version number
  • ae0ca39: Fix errors due to bad strncpy behavour.
  • 012c293: Update CHANGELOG.md with 2019.09.02 release
  • 8dbdad0: Add testing 2 instances with 4 queues (RSS).
  • fa0e13e: Add improvement to benchmarking script to CHANGELOG.md

Lesley De Cruz (18):

  • 46e1fea: Add first part of test framework: parse tests.
  • a4ec002: Add index() and extract() to tester module.
  • a4dd1e0: Add run_single() and run() to tester module.
  • 639480b: Add filter() to tester module for filtering tags
  • af54fa1: Add verbose option to run() and run_single()
  • b0b3a20: Add test.lua for running and filtering tests.
  • 24d2b97: Move some tests into new structure and adapt comments to test runner.
  • 5f331e7: Avoid string.rep in test.lua
  • 0d975fa: Clean up test script (args, tag patterns)
  • 8859058: Implement @key: value matching in parse() function of tester module
  • 16b3293: Don't print an empty description in build_codestring() in tester module
  • 765714f: Put @key: value pairs in separate attributes table in parse()
  • 14bfa87: Add --runcmd='x' option to test runner
  • a6e5102: Capture stderr when tests are run externally in run_single()
  • 91cb29b: Add workdir argument to extract() in tester module
  • 82586b1: Improve filenames of extracted tests and error reporting in test runner
  • 1d7aaed: Moved proposed test runner and examples into 'experimental' directory.
  • 581a474: Put subtests in 'test' dir

Luke Gorrie (242):

  • b0a75b4: Added bench/roulette.lua
  • a71cd6d: roulette: Stop seeding the random number generator
  • f333908: Added bench/PARAM_x86_CI.txt (CI params)
  • 6a66f5d: Added LUAJIT_VMPROFILE: new profiler backend
  • 5c74044: Added initial README.md
  • 006018f: Change wording of README
  • d1c0e13: Remove LUAJIT_USE_PERFTOOLS
  • 7beb3b2: Remove all architectures except x86-64.
  • 827e3d6: Add ifdef-defile config for 'unifdef'
  • 3127cb0: COPYING: Switch to Apache License 2.0 for new code
  • 58b063b: CONDUCT.md: Add simple code of conduct
  • 40381fa: Remove unused code.
  • 0213af2: Added absolute minimum .travis.yml
  • 1842bc3: README.md: Added Travis-CI status badge.
  • f4c8ca6: README.md: Performance regression tests link
  • 7fe552f: Revised README.md
  • b270bf0: Remove jit.p, jit.v, jit.dump, disassemblers
  • e2968cc: Removed dynasm modules for unsupported architectures
  • a168dc6: README.md: Add quotes, fix benchmarks link
  • 8796648: Add LuaJIT/LuaJIT-test-cleanup to submodules/
  • 09b2f3e: Add LuaJIT test suite to Travis-CI
  • 9359d14: Added CONTRIBUTING.md
  • 43e53c7: COPYRIGHT: Update the COPYRIGHT file inherited from LuaJIT
  • 0e8e997: Revised README.md
  • ac49377: Remove all uses of LJ_FASTCALL (a NOP)
  • ac6311d: Remove definition of LJ_FASTCALL (a NOP)
  • 28f0f6b: README.md: Indulge in more pithy quotations
  • 5ccbcfe: Make test 366 pass by adding "move:" to expectation
  • 66b4822: Removed luajit-test-cleanup submodule
  • d5b9354: Add raptorjit-testsuite submodule
  • bfe7ddc: Update Travis-CI to use raptorjit-testsuite
  • 9fedd59: Travis-CI: Added '+slow' argument to test suite
  • 5726c88: Switch from gcc to clang
  • 78f9acf: Makefile: Replace minilua with luajit dependency
  • 60aa095: Specify build dependencies with nix
  • 1124340: Travis-CI update for nix-based build.
  • a4a5720: README.md: Updated build instructions
  • 3a523de: default.nix: Commented
  • cd0e416: README.md: Add link to default.nix
  • 84379d3: Remove "amalg" amalgamated build"
  • eb052df: Remove '*.bat' console build batchfiles
  • df45ff5: Remove PROFILE and VMEVENT features
  • 972fc1e: lib_jit.c: Remove introspection and jit.attach()
  • e2e5689: Remove unused lj_vm_profhook() prototype
  • f7dc94a: Define NO_UNWIND
  • 8f2744a: ifdef-defile: Correct spelling of LJ_NO_UNWIND
  • 5660da3: README.md: Note +NO_UNWIND
  • f7122f1: README: Declared CPU & Optimization policy
  • 5f263f2: README.md: Add software optimization links
  • fa02289: Remove DUALNUM mode
  • f458d9e: Fix mistakes in DUALNUM removal
  • 170c3ac: vm_x64.dasc: Fix FORL type coercion
  • c8b2b1c: vm_x64.dasc: Resolve +JIT +FFI -X64WIN
  • 03ad911: Travis CI: Test -O3/-O2/-O1/-joff separately
  • d286c95: Fixed typo in jit=-O1
  • b1cfd27: lj_asm_x86.h: Fix CNEWI for constant pointers
  • fb32f91: Fix IR_KKPTR case of b1cfd27
  • b1bc13b: Compile with -Werror (treat warnings as errors)
  • 0659092: Remove submodule for testsuite
  • c025664: nix: pin nixpkgs, pin clang 4.0, run test suite
  • 82487c7: Travis-CI: Update now that nix runs the test suite
  • 398bd28: Cleaned up nix expressions
  • 7356708: md5 benchmark 15% speed by removing "slow LEA"
  • 7a35839: Import revamped nix benchmark framework
  • b1b52db: Fix markdown goof in README.md
  • f5aa329: README.md: Add note about where benchmark visualizations go
  • 4318163: testsuite/bench: Tweaked tests to run longer
  • 7bf26e6: Add new "uplifting" RaptorJIT logo
  • cb132d1: Add lj_auditlog (very preliminary)
  • 5ea4b74: lj_auditlog: use msgpack format for audit log
  • 76be283: lj_auditlog: remove redundant "size" field
  • b302c6e: lj_auditlog: Add "event" object
  • 2dfdb73: lj_auditlog: Implement logging of trace_abort
  • 376fb58: lj_trace: Log trace aborts to auditlog
  • 0a55469: Generate separate DWARF debug info
  • 0acc230: lj_auditlog: Log the memory containing IR instructions
  • 65675f5: lj_vmprofile: Port & adapt revisions
  • a86ca93: raptorjit build: remove jit.* and disassembler symlinks
  • 27e600f: raptorjit build: hackey update of makefiles and nix exprs
  • c6aae30: core.app, core.main: drop jit.zone dependency (dangling)
  • f9d7cdd: src/Makefile: Shrink by removing obsolete platform logic
  • 6d7a8d2: Add VM generated code to the repository
  • 086b4c9: Exclude generated code from .gitignore
  • 196a9e2: Makefile: s/LuaJIT 2.1.0-beta2/RaptorJIT 1.0.0-alpha1/
  • 3ca3df8: README: Update build procedure description
  • 964cbe4: Makefile: New target 'bootstrapclean' removes in-tree generated code
  • 726cc9c: raptorjit.nix: preBuild = 'make bootstrapclean'
  • 2cf9924: check-generated-code.nix: Check if in-tree VM code is stale
  • 9fe3967: .travis.yml: Include check-generated-code test
  • c297923: Makefile: New 'reusevm' target & bootstrap-skipping method
  • 8cd8f7e: vmprofile: Extend Lua API and add test cases
  • d7fd44e: testsuite/bench: Remove PARAM_* for unsupported platforms
  • d095eae: raptorjit.nix: Fix executable name / broken build
  • 8ec77f9: .travis.yml: Update Travis-CI config (was not testing)
  • 076d161: check-generated-code.nix: Fixed
  • d27d4d4: check-generated-code.nix: Tweak order of diff args
  • 300d14e: reusevm: Updated generated code
  • 4aaa844: lj_jit.h: Save 'parent' and 'exitno' fields in GCtrace
  • fcf7053: check-generated-code.nix: Add more verbosity
  • 4a06d4a: lj_vmprofile.c: Fixed to set file magic number with C API calls
  • 4b4dcb0: lj_trace.c: Make trace numbers unique (stop reusing them)
  • 2b8d1a3: Makefile: Add 'make reusevm' for raptorjit
  • 1d81da7: src/Makefile: Switch "luajit" command to "raptorjit"
  • bbbd4b6: src/Makefile: Fix path to raptorjit.a
  • 55ac7f5: snabbnfv.traffic: Remove jit.p and jit.dump calls (not in raptorjit)
  • cf655d9: lj_crecord.c: JIT pointer difference for all element sizes
  • 4e945d2: lj_api.c: Fix breakage in cherry-pick of ffd2610
  • 4cd536f: testsuite: Enable Lua 5.2 compat
  • 00e983c: src/reusevm: update generated files
  • 88bcf00: README.md: New introduction
  • 2bc2d95: README: Make less fuss about Intel Core
  • 9ab33a8: README: shorten intro, move Optimization Resources down
  • 7c2a11e: fixup! README: shorten intro, move Optimization Resources down
  • bebdbac: Makefile: Added reusevm target at top-level
  • cc5668b: README: Added note about future platform support
  • 1b5c2f2: fixup! README: Added note about future platform support
  • 86f23d6: README: Re-introduce goal of minimizing non-deterministic performance
  • ad14f45: GCtrace: Make it possible to map between IR and mcode insns
  • c5923d8: lj_auditlog.c: Log VM definition information
  • f7212cc: lj_trace.c: Clear penalty slot after successful trace
  • 01dc844: lj_jit.h: Increase HOTCOUNT_MAX and expand HotPenalty.val
  • a720595: lj_trace.c: Reset hotcount table after flush
  • ce6fbb4: lj_record.c: Relax heuristic for root trace meeting JIT loop
  • e182ae8: Add jit.tracebarrier() primitive
  • 0be85c6: src/reusevm: update generated files
  • f5d810e: lj_record.c: Record IFUNC/IFUNCV the same as FUNC/FUNCV
  • b6902f8: Remove EXITSTATE_PCREG
  • 089c55a: lj_obj.h: Explicitly define implicit VM states
  • bd7266d: Track last exited trace (lasttrace) in global_State
  • 2b89796: vmprofile 3.0 with more information
  • 5cac382: lj_vmprofile.c: Fix file header initialization
  • c734910: Remove feature to compress GCproto.lineinfo
  • 5e673ea: lj_obj.h: Fix comment about lineinfo (non)compression
  • 7f4787a: Fix bug in lj_bcread_proto()
  • 17b3c9c: lj_bcread.c: Fix warning
  • c1659d9: VMProfile 4.0: File format revision
  • ae5c6aa: vm_x64.dasc: Fixes to ensure g.lasttrace is a trace number
  • 0823d96: lj_vmprofile.c: Fix trace number overflow (into bucket 0)
  • a8b0f32: lj_vmprofile.c: Add assertions with lua_assert
  • 16121f2: Statically allocate JIT temp buffers
  • 7a4e25b: Add log of recorded bytecodes (BCLogRec) to jit_State
  • 9b2b467: Minor update to jit_State bytecode log
  • 238c698: lj_auditlog: Improve logging of trace stop/abort
  • b29101e: fixup! lj_auditlog: Improve logging of trace stop/abort
  • bc57ceb: lj_state.c: Fix bug in allocation of IR buffer
  • d371db6: lj_state.c: Fix dealloc to match
  • 06b9f32: lj_state.c: Fix allocation and free of IR buffer
  • 43691e0: reusevm: Update generated code
  • 4d8b3eb: auditlog: Log all loaded bytecode (GCproto objects)
  • 5843c53: lj_auditlog.c: Log prototype names (GCstr)
  • 88cc35c: reusevm: update generated code
  • 2f5a9a3: lj_obj.h: Redefine GCRef as simple GCobj* pointer
  • 1587377: lj_obj.h: Redefine MRef as simple void* pointer
  • 857073c: lj_auditlog.c: Add lj_auditlog_open(path) API function
  • 671d770: lib_jit.c: Add 'jit.auditlog(filename)' Lua API function
  • 07fef11: luajit.c: Add 'raptorjit -a ...' command line auditlog syntax
  • 7e34e72: reusevm: Update generated code
  • 3e2d4e4: lj_auditlog.c: Use open_memstream() instead of fmemopen()
  • 588e9c3: lj_auditlog.c: Fix compiler warning
  • 2276cd8: lj_trace.c: Fix compiler warnings
  • 623d45f: lj_auditlog.c: Remove fflush() that seems problematic
  • 0b940c5: lj_auditlog.c: Glibc memory stream workaround...
  • 3a5aa7d: lj_trace.c: Do not reuse trace numbers after flush
  • b5056fa: lj_parse.c, lj_debug.c: Remove clever tricks in lineinfo encoding
  • 541d60d: auditlog: Can only be opened once now (error on second open)
  • de0f442: fixup! auditlog: Can only be opened once now (error on second open)
  • 1fa5375: Fix compiler warning & reusevm generated code
  • 7844c5f: Add '-p file' command line syntax for VMProfile
  • fd0e49d: Support "one-liner" usage of jit.vmprofile.open()
  • 9dac90f: auditlog: Log source code (in chunks via lexer events)
  • ed21034: auditlog: Log source (lex events) as msgpack binary
  • f66fc04: testsuite/bench: Fix awk parsing of perf output
  • fcf86b8: lj_str.c: Remove special-case string interning fastpath
  • fe89c10: luajit/lib_jit.c: Fix merge conflict (duplicate of jit.tracebarrier)
  • 072d23e: src/Makefile: Fix raptorjit build
  • 4db5edf: engine: Enable RaptorJIT auditlog and vmprofile
  • 8c09d57: core.shm: Add function path(name)
  • b021efb: src/Makefile: Fix s/luajit/raptorjit/ bug
  • c2c2ed2: lj_auditlog.c: Pick latest working version from lukego/auditlog
  • e92c500: lj_vmprofile.c: Fix bug where restarting the timer would not work
  • 4189da6: Just use the default gcc instead of clang 4.0.0.
  • 42bb70b: lj_ir.h: Fix typo made when resolving merge conflict
  • 0dea74e: lj_lex.c: don't log lexer events for bytecodes
  • 9be90a3: lj_jit.h: Increase default maxtrace from 1000 to 10000
  • 7b57a23: lj_trace.c: Allow reuse of trace numbers after jit.flush()
  • c6347dc: lj_trace.c: Clear profiler lasttrace state on flushall()
  • cad220d: lj_trace.c, lj_auditlog.c: Log auditlog event "trace_flushall"
  • cc311cf: dasm: Error when a 64-bit value is used as a 32-bit immediate
  • 7bc8597: Move lj_auditlog.c out of Snabb and into RaptorJIT
  • 0158240: luajit.c: Make -a and -p argument handling more consistent
  • d0dcc75: lj_audit.log.c: Add file size limit (default 100MB)
  • b0cbca7: lj_auditlog.c: Add "nanotime" timestamp to events
  • f4ff59e: lj_auditlog.c: Increase in-memory log limit to 10MB (from 1MB)
  • 10764c4: lj_auditlog.c: Log strings referenced as IR constants
  • d0191fe: lj_auditlog.c, lj_ctype.c: Log named ctypes to the audit log
  • 1c81d51: fixup! lj_auditlog.c, lj_ctype.c: Log named ctypes to the audit log
  • 486f720: lj_auditlog.c: Log GCfunc objects referenced by IR constants
  • b93738f: shell.nix: Make 'nix-shell' command work as documented
  • 1d1dc9f: README.md: State more clearly that Linux is required
  • 44fbf8e: lj_auditlog.c: Log GCtrace->irmcodesz (IR-mcode mapping)
  • d64a769: fixup! lj_auditlog.c: Log GCtrace->irmcodesz (IR-mcode mapping)
  • 8c8731e: lj_asm.c: Fix szirmcode values
  • f62c246: fixup! lj_asm.c: Fix szirmcode values
  • 9b5ab0a: lj_dwarf.c: Add lj_ircall.h and lj_ff.h for more debug information
  • 02062e9: src/Makefile: Embed DWARF debug info as binary blob
  • 229fc15: lj_auditlog.c: Log raptorjit VM DWARF debug information to audit.log
  • e51eaa1: lj_debuginfo.h: Add missing file declaring dwarf data
  • 1646db3: lj_audit.log.c: Fix iteration through trace constants
  • a5222e7: lj_state.c: Partial fix of assertion on shutdown
  • 92955dc: src/Makefile: Add dependency from DWARF info to generated headers
  • 9a798d7: luajit.c: Fix argument parsing bug that made "-a" fall into "-p"
  • 8d9d959: Extend GCproto debug with declared function name (declname)
  • 4166e7a: lj_bcdump.h: Bump bytecode version number (2 -> 3)
  • 74b52e6: lj_bcread.c: Remove suspicious loop
  • 73b96a4: src/reusevm: Update generated code
  • 01f8b4c: lj_bcread.c: Remove suspicious loop
  • 8f55c03: src/reusevm: Update generated code
  • d60c595: lj_prase.c: Remove old debug noise
  • c552236: Restore older debug info fields to their original positions
  • 96e00a6: lj_bcwrite.c: Remove unused variable
  • 90a15f7: lj_ctype.c, lj_trace.c: Poll for ctypes to log on trace stop/abort
  • 473cb19: lj_ctype.c: Avoid crash when printing unprintable ctype IDs
  • cd172fc: lj_parse.c: Set declname for file-level code to
  • 2c5faa8: Exclude function-rooted traces from global_State->lasttrace
  • ca0abe3: reusevm: Update generated code
  • 420fa75: Minimal rebranding from LuaJIT -> RaptorJIT
  • 4891901: README.md: revised ahead of first release
  • 4e1405d: README.md: Add quick Studio getting started intro
  • fcf138f: README.md: Correct profile names to *.vmprofile (expected by studio)
  • 4782265: Fix allocation/deallocation of T->szirmcode
  • 66f9234: lj_trace_alloc: Copy T->szirmcode to new trace
  • 9959cb1: lj_asm.c: Added comment about szirmcode moving to final GCtrace
  • 3f9db9e: lj_ctype.c: Detect loops in ctype_repr()
  • d09927b: lj_trace.c: Fix and simplify allocation of J->trace
  • d3c149d: default.nix: Test with -DLUA_USE_ASSERT and -Werror
  • a667ead: Fix deallocation of T->szirmcode
  • 3b80633: lj_state.c: Restore assertion that all memory is deallocated
  • 55e7656: lj_ctype.c: Detect bad ctypeid without failing lua_assert
  • 56a88b2: Prepare for RaptorJIT 1.0 with installation fixes
  • fe6324e: .version: Step to v2019.01
  • 15b1a62: .version: Fix conflict
  • a9fe280: core.engine: Add .vmprofile suffix to filenames to help Studio

Max Rottenkolber (5):

  • 6be5397: core.main: call vmprofile.start() before running program...
  • 580c87e: core.histogram: extract summarize method from snabb top
  • 1f9619c: core.histogram: add __tostring meta-method to meta-type
  • 3d5cbb4: core.packet: register SHM type with __tostring method for freelist
  • ff2d7bd: snabb shm: introduce tool to replace 'snabb top -l '

Mike Pall (83):

  • a273241: Initial commit
  • de5568e: Remove Lua 5.0 compatibility defines.
  • 0cf7885: ARM64: Fix XLOAD/XSTORE with FP operand.
  • 779a1eb: ARM64: Fix Nintendo Switch build.
  • fa126c5: x64/LJ_GC64: Fix assembly of CNEWI with 64 bit constant pointer.
  • 024ade7: LJ_GC64: Fix BC_CALLM snapshot handling.
  • 78f5f1c: x64/LJ_GC64: Fix emit_loadk64().
  • 3143b21: ARM64: Add big-endian support.
  • e205ad0: FFI: Fix FOLD rules for int64_t comparisons.
  • dc320ca: Remove old Lua 5.0 compatibility defines.
  • de97b9d: Add some more changes and extensions from Lua 5.2.
  • 247b362: OSX: Fix build with recent XCode.
  • 22dfa63: Allow building on Haiku OS.
  • 9c685f7: Refactor with LUA_OK.
  • c67a098: From Lua 5.2: Add lua_version().
  • ef23b70: From Lua 5.2: Add lua_copy().
  • f2e2a3f: From Lua 5.3: Add lua_isyieldable().
  • cde968f: From Lua 5.2: Add luaL_testudata().
  • 2b8de8c: From Lua 5.2: Add luaL_setmetatable().
  • de26f76: From Lua 5.2: Add lua_tonumberx() and lua_tointegerx().
  • cced178: Document added C API extensions from Lua 5.2/5.3.
  • 18efb33: ARM64: Fix stores to vmstate.
  • 58aaac3: MIPS64: Fix write barrier in BC_USETV.
  • ed54eac: MIPS64: Fix stores of MULTRES.
  • 02b4b1e: Add workaround for MSVC 2015 stdio changes.
  • fbfbd7b: FFI: Compile bitfield loads/stores.
  • cf8a5be: Add FOLD rules for mixed BAND/BOR with constants.
  • b608891: FFI: Update docs on compiler limitations.
  • ae0d438: Update changelog.
  • 0bf80b0: RELEASE LuaJIT-2.0.5
  • e9f8abf: Update changelog.
  • 8271c64: RELEASE LuaJIT-2.1.0-beta3
  • 1c89933: Fix LJ_MAX_JSLOTS assertion in rec_check_slots().
  • 630ff31: Add missing LJ_MAX_JSLOTS check.
  • 7381b62: MIPS: Use precise search for exit jump patching.
  • c7c3c4d: MIPS: Fix handling of spare long-range jump slots.
  • a057a07: MIPS64: Add soft-float support to JIT compiler backend.
  • b0ecc6d: FreeBSD/x64: Avoid changing resource limits, if not needed.
  • 6a71e71: Remove unused define.
  • 82151a4: Modify fix for warning from 'ar'.
  • 7e662e4: x64/LJ_GC64: Fix emit_rma().
  • fd37da0: PPC: Add soft-float support to interpreter.
  • 07f976a: Remove Lua 5.0 compatibility defines.
  • 5126a06: LJ_GC64: Fix BC_CALLM snapshot handling.
  • de9a886: x64/LJ_GC64: Fix emit_loadk64().
  • e834e9c: Merge branch 'master' into v2.1
  • dbe5619: Remove old Lua 5.0 compatibility defines.
  • d6db005: Add some more changes and extensions from Lua 5.2.
  • b28c891: Refactor with LUA_OK.
  • eaf262d: From Lua 5.2: Add lua_version().
  • f1264bf: From Lua 5.2: Add lua_copy().
  • 9a520cb: From Lua 5.3: Add lua_isyieldable().
  • 4a307c1: From Lua 5.2: Add luaL_testudata().
  • 9fabcf9: From Lua 5.2: Add luaL_setmetatable().
  • ffd2610: From Lua 5.2: Add lua_tonumberx() and lua_tointegerx().
  • bddc781: Document added C API extensions from Lua 5.2/5.3.
  • 2f7f0a2: FFI: Compile bitfield loads/stores.
  • e091baf: Add FOLD rules for mixed BAND/BOR with constants.
  • a698e89: FFI: Update docs on compiler limitations.
  • a0a1983: Merge branch 'master' into v2.1
  • 07918dc: Merge branch 'master' into v2.1
  • e2cabaf: Remove unused define.
  • c0165a6: x64/LJ_GC64: Fix emit_rma().
  • f3d7507: Use https for freelists.org links.
  • 6b08248: x64/LJ_GC64: Fix fallback case of asm_fuseloadk64().
  • 71b7bc8: PPC: Add soft-float support to JIT compiler backend.
  • 05fbdf5: x64/LJ_GC64: Fix type-check-only variant of SLOAD.
  • bf12f1d: MIPS64: Hide internal function.
  • 0c0e7b1: DynASM/x86: Fix potential REL_A overflow.
  • b4ed321: LJ_GC64: Fix ir_khash for non-string GCobj.
  • 850f8c5: LJ_GC64: Make ASMREF_L references 64 bit.
  • 9f0caad: Fix FOLD rule for strength reduction of widening.
  • 06cd9fc: ARM64: Fix assembly of HREFK.
  • 99cdfbf: MIPS64: Fix register allocation in assembly of HREF.
  • 33082a6: ARM64: Fix xpcall() error case.
  • 7dbf0b0: Fix saved bytecode encapsulated in ELF objects.
  • d417ded: ARM64: Fix xpcall() error case (really).
  • ea7071d: MIPS64: Fix xpcall() error case.
  • 58d0dde: Fix IR_BUFPUT assembly.
  • 430d9f8: Fix string.format("%c", 0).
  • 97356f9: Use https for freelists.org links.
  • f6c52a3: Merge branch 'master' into v2.1
  • 91dbe23: Merge branch 'master' into v2.1

Peter Cawley (22):

  • 488e3fb: Shake things up.
  • 74d256f: Remove some already-modernised tests from misc.
  • b8bbda3: Modernise goto test.
  • f40304d: Modernise string_op test.
  • e002a08: Improve reporting of failing tests in --quiet mode.
  • 6a7e342: Modernise misc/meta_* tests.
  • 1bee68f: PUC-Rio Lua compatibility.
  • bcd286b: Modernise more tests.
  • 3e5cca7: Modernise some tests.
  • 9f1451d: Normalise line endings.
  • 9c27a59: Fix batch modifier application.
  • a82c499: Modernise some FFI tests.
  • d7985d1: Modernise more ffi tests.
  • 703e9cf: Skip some tests under LuaJIT 2.0
  • c3224bb: Exercise TSETR and TSETM slow paths.
  • 7897e7f: Add tests for allocation of variable-sized cdata
  • 071f050: Exercise string concat some more
  • bcf938b: Extend cdata_var test slightly
  • 73139f8: Disable some tests under 5.2 compatibility
  • 14c132e: Add tests for table indexing (inspired by #221)
  • 63a6f7e: Add test for BC_KNIL slot revival under LJ_GC64
  • 014708b: Add test for BC_VARG slot revival

aouinizied (1):

  • f2bd95d: Implement nDPI2.x snabb compatibility

bandhu (2):

  • 3e73138: issue #8 add dummy file to ensure directory is saved in git
  • cd42900: issue #8 add dummy file to ensure directory is saved in git