neulab/tldr huggingface dataset:
-e, --eta Turn the ETA timer on.  This will attempt to guess, based on previous transfer rates and the total data size, how long it will be before completion.  This option will have no effect if the total data size cannot be determined.
-I, --fineta Turn the ETA timer on, but display the estimated local time of arrival instead of time left.  When the estimated time is more than 6 hours in the future, the date is shown as well.
-r, --rate Turn the rate counter on.  This will display the current rate of data transfer.
-a, --average-rate Turn the average rate counter on.  This will display the average rate of data transfer so far.
-b, --bytes Turn the total byte counter on.  This will display the total amount of data transferred so far.
-T, --buffer-percent Turn on the transfer buffer percentage display.  This will show the percentage of the transfer buffer in use - but see the caveat under %T in the FORMATTING section below.  Implies -C.
-A, --last-written NUM Show the last NUM bytes written - but see the caveat under %nA in the FORMATTING section below.  Implies -C.
-F, --format FORMAT Ignore the options -p, -t, -e, -r, -a, -b, -T, and -A, and instead use the format string FORMAT to determine the output format.  See the FORMATTING section below.
-n, --numeric Numeric output.  Instead of giving a visual indication of progress, pv will give an integer percentage, one per line, on standard error, suitable for piping (via convoluted redirection) into dialog(1).  Note that -f is not required if -n is being used.
Note that if --numeric is in use, then adding --bytes will cause the number of bytes processed so far to be output instead of a percentage; if --line-mode is also in use, then instead of bytes or a percentage, the number of lines so far is output.  And finally, if --timer is also in use, then each output line is prefixed with the elapsed time so far, as a decimal number of seconds.
-q, --quiet No output.  Useful if the -L option is being used on its own to just limit the transfer rate of a pipe.
-W, --wait Wait until the first byte has been transferred before showing any progress information or calculating any ETAs.  Useful if the program you are piping to or from requires extra information before it starts, eg piping data into gpg(1) or mcrypt(1) which require a passphrase before data can be processed.
-D, --delay-start SEC Wait until SEC seconds have passed before showing any progress information, for example in a script where you only want to show a progress bar if it starts taking a long time.  Note that this can be a decimal such as 0.5.
-s SIZE, --size SIZE Assume the total amount of data to be transferred is SIZE bytes when calculating percentages and ETAs.  The same suffixes of "k", "m" etc can be used as with -L.
Has no effect if used with -d PID to watch all file descriptors of a process, but will work with -d PID:FD.
-l, --line-mode Instead of counting bytes, count lines (newline characters). The progress bar will only move when a new line is found, and the value passed to the -s option will be interpreted as a line count. Note that file sizes are not automatically calculated when this option is used, to avoid having to read all files twice.
-0, --null Count lines as null terminated.  This option implies --line-mode.
-i SEC, --interval SEC Wait SEC seconds between updates.  The default is to update every second.  Note that this can be a decimal such as 0.1.
-w WIDTH, --width WIDTH Assume the terminal is WIDTH characters wide, instead of trying to work it out (or assuming 80 if it cannot be guessed).
-H HEIGHT, --height HEIGHT Assume the terminal is HEIGHT rows high, instead of trying to work it out (or assuming 25 if it cannot be guessed).
-N NAME, --name NAME Prefix the output information with NAME.  Useful in conjunction with -c if you have a complicated pipeline and you want to be able to tell different parts of it apart.
-f, --force Force output.  Normally, pv will not output any visual display if standard error is not a terminal.  This option forces it to do so.
-c, --cursor Use cursor positioning escape sequences instead of just using carriage returns.  This is useful in conjunction with -N (name) if you are using multiple pv invocations in a single, long, pipeline.
-L RATE, --rate-limit RATE Limit the transfer to a maximum of RATE bytes per second.  A suffix of "K", "M", "G", or "T" can be added to denote kibibytes (*1024), mebibytes, and so on.
-B BYTES, --buffer-size BYTES Use a transfer buffer size of BYTES bytes.  A suffix of "K", "M", "G", or "T" can be added to denote kibibytes (*1024), mebibytes, and so on.  The default buffer size is the block size of the input file's filesystem multiplied by 32 (512KiB max), or 400KiB if the block size cannot be determined.  This can be useful on platforms like MacOS which perform better in pipelines with specific buffer sizes such as 1024.  Implies -C.
-C, --no-splice Never use splice(2), even if it would normally be possible.  The splice(2) system call is a more efficient way of transferring data from or to a pipe than regular read(2) and write(2), but means that the transfer buffer may not be used.  This prevents -A and -T from working, and makes -B redundant, so using -A, -T, or -B automatically switches on -C.  Switching on -C results in a small loss of transfer efficiency.  (This option has no effect on systems where splice(2) is unavailable).
-E, --skip-errors Ignore read errors by attempting to skip past the offending sections.  The corresponding parts of the output will be null bytes.  At first only a few bytes will be skipped, but if there are many errors in a row then the skips will move up to chunks of 512.  This is intended to be similar to dd conv=sync,noerror but has not been as thoroughly tested.
Specify -E twice to only report a read error once per file, instead of reporting each byte range skipped.
-S, --stop-at-size If a size was specified with -s, stop transferring data once that many bytes have been written, instead of continuing to the end of input.
-d PID[:FD], --watchfd PID[:FD] Instead of transferring data, watch file descriptor FD of process PID, and show its progress.  The pv process will exit when FD either changes to a different file, changes read/write mode, or is closed; other data transfer modifiers - and remote control - may not be used with this option.
If only a PID is specified, then that process will be watched, and all regular files and block devices it opens will be shown with a progress bar.  The pv process will exit when process PID exits.
-R PID, --remote PID If PID is an instance of pv that is already running, -R PID will cause that instance to act as though it had been given this instance's command line instead.  For example, if pv -L 123K is running with process ID 9876, then running pv -R 9876 -L 321K will cause it to start using a rate limit of 321KiB instead of 123KiB. Note that some options cannot be changed while running, such as -c, -l, -f, -D, -E, and -S.
-P FILE, --pidfile FILE Save the process ID of pv in FILE.  The file will be truncated if it already exists, and will be removed when pv exits.  While pv is running, it will contain a single number - the process ID of pv - followed by a newline.
-V, --version Print version information on standard output and exit successfully.
If the -F option is given, then the output format is determined by the given format string.  Within that string, the following sequences can be used:
%p     Progress bar.  Expands to fill the remaining space. Should only be specified once.  Equivalent to -p.
%t     Elapsed time.  Equivalent to -t.
%e     ETA as time remaining.  Equivalent to -e.
%I     ETA as local time of completion.  Equivalent to -I.
%r     Current data transfer rate.  Equivalent to -r.
%a     Average data transfer rate.  Equivalent to -a.
%b     Bytes transferred so far (or lines if -l was specified). Equivalent to -b.
%T     Percentage of the transfer buffer in use.  Equivalent to -T. Shows "{----}" if the transfer is being done with splice(2), since splicing to or from pipes does not use the buffer.
%nA    Show the last n bytes written (e.g.  %16A for the last 16 bytes). Shows only dots if the transfer is being done with splice(2), since splicing to or from pipes does not use the buffer.
%N     Name prefix given by -N.  Padded to 9 characters with spaces, and suffixed with :.
%%     A single %.
The format string equivalent of turning on all display switches is `%N %b %T %t %r %a %p %e'.
Some suggested common switch combinations:
pv -ptebar Show a progress bar, elapsed time, estimated completion time, byte counter, average rate, and current rate.
pv -betlap Show a progress bar, elapsed time, estimated completion time, line counter, and average rate, counting lines instead of bytes.
pv -t  Show only the elapsed time - useful as a simple timer, e.g.  sleep 10m | pv -t.
pv -pterb The default behaviour: progress bar, elapsed time, estimated completion time, current rate, and byte counter.
On MacOS, it may be useful to specify -B 1024 in a pipeline, as this may improve performance.
An exit status of 1 indicates a problem with the -R or -P options.
Any other exit status is a bitmask of the following:
2      One or more files could not be accessed, stat(2)ed, or opened.
4      An input file was the same as the output file.
8      Internal error with closing a file or moving to the next file.
16     There was an error while transferring data from one or more input files.
32     A signal was caught that caused an early exit.
64     Memory allocation failed.
A zero exit status indicates no problems.
Written by Andrew Wood, with patches submitted by various other people. Please see the package README for a complete list of contributors.
The following problems are known to exist in pv:
*      The -c option does not work properly on Cygwin without cygserver running, if started near the bottom of the screen (IPC is needed to handle the terminal scrolling).  To fix this, start cygserver before using pv -c.
*      The -R option is not available on Cygwin without cygserver running (SYSV IPC is needed). To fix this, start cygserver before running the instance of pv you want, at runtime, to change the parameters of.
If you find any other problems, please report them.
Report bugs in pv to pv@ivarch.com or use the contact form linked from the pv home page: <http://www.ivarch.com/programs/pv.shtml>
cat(1), dialog(1), splice(2)
This is free software, distributed under the ARTISTIC 2.0 license.
POWERTOP(8)                   System Administration                  POWERTOP(8)
powertop - a power consumption and power management diagnosis tool.
powertop [options]
powertop is a program that helps to diagnose various issues with power consumption and power management.  It also has an interactive mode allowing one to experiment with various power management settings.  When invoking powertop without arguments powertop starts in interactive mode.
--auto-tune Set all tunable options to their good setting without interaction.
-c, --calibrate Runs powertop in calibration mode.  When running on battery, powertop can track power consumption as well as system activity. When there are enough measurements, powertop can start to report power estimates.  One can get more accurate estimates by using this option to enable a calibration cycle.  This will cycle through various display levels and USB device activities and workloads.
-C, --csv[=filename] Generate a CSV report.  If a filename is not specified then the default name powertop.csv is used.  The CSV report can be used for reporting and data analysis.
--debug Run in debug mode.
--extech=devnode Use the Extech Power Analyzer for measurements.  This allows one to specify the serial device node of the serial to USB adaptor connecting to the Extech Power Analyzer, for example /dev/ttyUSB0.
-r, --html[=filename] Generate an HTML report.  If a filename is not specified then the default name powertop.html is used.  The HTML report can be sent to others to help diagnose power issues.
-i, --iteration[=iterations] Number of times to run each test.
-q, --quiet Suppress stderr output.
-t, --time[=seconds] Generate a report for a specified number of seconds.
-w, --workload[=workload] Execute workload file as a part of calibration before making a report.
-V, --version Print version information and exit.
-h, --help Show the help message and exit.
In interactive mode, the following key bindings are available:
Tab                    Show next tab BackTab                Show previous tab Right Arrow            Scroll to the right Left Arrow             Scroll to the left Up Arrow, PageUp       Scroll up or select previous item Down Arrow, PageDown   Scroll down or select next item Space, Return          Activate current item s                      Set refresh timeout r                      Refresh window q, Ctrl-C, Escape      Exit powertop
Send bug reports to ⟨powertop@lists.01.org⟩
The program is more fully described at ⟨https://01.org/powertop⟩
powertop was written by Arjan van de Ven ⟨arjan@linux.intel.com⟩, and is currently maintained by Chris E Ferron ⟨chris.e.ferron@linux.intel.com⟩.
gh-issue - Manage issues
gh issue <command> [flags]
Work with GitHub issues
$ gh issue list $ gh issue create --label bug $ gh issue view --web
gh(1), gh-issue-close(1), gh-issue-comment(1), gh-issue-create(1), gh- issue-delete(1), gh-issue-edit(1), gh-issue-list(1), gh-issue-reopen(1), gh-issue-status(1), gh-issue-transfer(1), gh-issue-view(1)
PKGCONF(1)                 BSD General Commands Manual                PKGCONF(1)
pkgconf — a system for configuring build dependency information
pkgconf [options] [list of modules]
pkgconf is a program which helps to configure compiler and linker flags for development libraries.  This allows build systems to detect other dependencies and use them with the system toolchain.
--version Display the supported pkg-config version and exit.
--atleast-pkgconfig-version=VERSION Exit with error if we do not support the requested pkg-config version.
--errors-to-stdout Print all errors on the main output stream instead of the error output stream.
--silence-errors Do not display any errors at all.
--list-all Walk all directories listed in the PKG_CONFIG_PATH environmental variable and display information on packages which have registered information there.
--simulate Simulates resolving a dependency graph based on the requested modules on the command line.  Dumps a series of trees denoting pkgconf's resolver state.
--no-cache Skip caching packages when they are loaded into the internal resolver.  This may result in an alternate dependency graph being computed.
--ignore-conflicts Ignore ‘Conflicts’ rules in modules.
--env-only Learn about pkgconf's configuration strictly from environmental variables.
--validate package ... Validate specific ‘.pc’ files for correctness.
--maximum-traverse-depth=DEPTH Impose a limit on the allowed depth in the dependency graph.  For example, a depth of 2 will restrict the resolver from acting on child dependencies of modules added to the resolver's solution.
--static Compute a deeper dependency graph and use compiler/linker flags intended for static linking.
--shared Compute a simple dependency graph that is only suitable for shared linking.
--pure  Treats the computed dependency graph as if it were pure.  This is mainly intended for use with the --static flag.
--no-provides Ignore ‘Provides’ rules in modules when resolving dependencies.
--with-path=PATH Adds a new module search path to pkgconf's dependency resolver. Paths added in this way are given preference before other paths.
--define-prefix Attempts to determine the prefix variable to use for CFLAGS and LIBS entry relocations.  This is mainly useful for platforms where framework SDKs are relocatable, such as Windows.
--dont-define-prefix Disables the ‘define-prefix’ feature.
--prefix-variable=VARIABLE Sets the ‘prefix’ variable used by the ‘define-prefix’ feature.
--relocate=PATH Relocates a path using the pkgconf_path_relocate API.  This is mainly used by the testsuite to provide a guaranteed interface to the system's path relocation backend.
--dont-relocate-paths Disables the path relocation feature.
MODULE-SPECIFIC OPTIONS --atleast-version=VERSION Exit with error if a module's version is less than the specified version.
--exact-version=VERSION Exit with error if a module's version is not exactly the specified version.
--max-version=VERSION Exit with error if a module's version is greater than the specified version.
--exists Exit with a non-zero result if the dependency resolver was unable to find all of the requested modules.
--uninstalled Exit with a non-zero result if the dependency resolver uses an ‘uninstalled’ module as part of its solution.
--no-uninstalled Forbids the dependency resolver from considering 'uninstalled' modules as part of a solution.
QUERY-SPECIFIC OPTIONS --cflags, --cflags-only-I, --cflags-only-other Display either all CFLAGS, only -I CFLAGS or only CFLAGS that are not -I.
--libs, --libs-only-L, --libs-only-l, --libs-only-other Display either all linker flags, only -L linker flags, only -l linker flags or only linker flags that are not -L or -l.
--keep-system-cflags, --keep-system-libs Keep CFLAGS or linker flag fragments that would be filtered due to being included by default in the compiler.
--define-variable=VARNAME=VALUE Define VARNAME as VALUE.  Variables are used in query output, and some modules' results may change based on the presence of a variable definition.
--print-variables Print all seen variables for a module to the output channel.
--print-provides Print all relevant ‘Provides’ entries for a module to the output channel.
--variable=VARNAME Print the value of VARNAME.
--print-requires, --print-requires-private Print the modules included in either the Requires field or the Requires.private field.
--digraph Dump the dependency resolver's solution as a graphviz ‘dot’ file. This can be used with graphviz to visualize module interdependencies.
--path  Display the filenames of the ‘.pc’ files used by the dependency resolver for a given dependency set.
--env=VARNAME Print the requested values as variable declarations in a similar format as the env(1) command.
--fragment-filter=TYPES Filter the fragment lists for the specified types.
--modversion Print the version of the queried module.
PKG_CONFIG_PATH List of secondary directories where ‘.pc’ files are looked up.
PKG_CONFIG_LIBDIR List of primary directories where ‘.pc’ files are looked up.
PKG_CONFIG_SYSROOT_DIR ‘sysroot’ directory, will be prepended to every path defined in PKG_CONFIG_PATH.  Useful for cross compilation.
PKG_CONFIG_TOP_BUILD_DIR Provides an alternative setting for the ‘pc_top_builddir’ global variable.
PKG_CONFIG_PURE_DEPGRAPH If set, enables the same behaviour as the --pure flag.
PKG_CONFIG_SYSTEM_INCLUDE_PATH List of paths that are considered system include paths by the toolchain.  This is a pkgconf-specific extension.
PKG_CONFIG_SYSTEM_LIBRARY_PATH List of paths that are considered system library paths by the toolchain.  This is a pkgconf-specific extension.
PKG_CONFIG_DISABLE_UNINSTALLED If set, enables the same behaviour as the --no-uninstalled flag.
PKG_CONFIG_LOG ‘logfile’ which is used for dumping audit information concerning installed module versions.
PKG_CONFIG_DEBUG_SPEW If set, enables additional debug logging.  The format of the debug log messages is implementation-specific.
PKG_CONFIG_DONT_RELOCATE_PATHS If set, disables the path relocation feature.
PKG_CONFIG_MSVC_SYNTAX If set, uses MSVC syntax for fragments.
PKG_CONFIG_FDO_SYSROOT_RULES If set, follow the sysroot prefixing rules that freedesktop.org pkg-config uses.
DESTDIR If set to PKG_CONFIG_SYSROOT_DIR, assume that PKG_CONFIG_FDO_SYSROOT_RULES is set.
Displaying the CFLAGS of a package: $ pkgconf --cflags foo -fPIC -I/usr/include/foo
pc(5), pkg.m4(7)
NETSELECT(1)                 General Commands Manual                NETSELECT(1)
netselect - choose the fastest server automatically
netselect [-v|-vv|-vvv|-vvvv] [-m HOPS] [-s SERVERS] [-t PACKETS [-I] [-D] host ...
netselect determines several facts about all of the hosts given on the command line, much faster than you would if you manually tried to use ping and traceroute.
For each host, netselect figures out the approximate ping time (though not as accurately as ping does), the number of network "hops" to reach the target, and the percentage of ping requests that got through successfully. Then netselect calculates the "score" of each operational host based on these values.  A lower score is better, in the end it prints one line showing the server with the best score.
If the DNS name has multiple IP addresses associated with IT netselect will test each of the IP addresses independently. In this case, netselect will report the IP address of the fastest server (unless the -D option is used).
If the number of found hosts is not the same as the number requested (using -s), netselect will emit a warning message. If no hosts are found at all, the program will also end with an error return value.
# netselect -vv ftp.fceia.unr.edu.ar ftp.kulnet.kuleuven.ac.be \ ftp.cdrom.com ftp.debian.org ftp.de.debian.org
This is the output:
ftp.fceia.unr.edu.ar         2792 ms  23 hops  100% ok ( 1/ 1) [ 9213] ftp.kulnet.kuleuven.ac.be    9999 ms  30 hops    0% ok ftp.cdrom.com                  94 ms   8 hops  100% ok (10/10) [  169] ftp.debian.org                 46 ms  15 hops  100% ok (10/10) [  115] ftp.de.debian.org            9999 ms  30 hops    0% ok 115 ftp.debian.org
The value in brackets is the "score" of each operational host based on these values.  A lower score is better.  The last line shows the server with the best score.  If we had not used '-vv' on the command line, only this last line would have been printed.
Note that for ftp.kulnet.kuleuven.ac.be and ftp.de.debian.org in this case, nothing got through at all.  That indicates that either the host doesn't exist, or it is down.
# netselect -vv http.us.debian.org
204.152.191.39               300 ms  17 hops   90% ok ( 9/10) [  899] 35.9.37.225                  9999 ms  30 hops    0% ok 64.50.233.100                9999 ms  30 hops    0% ok 128.30.2.36                  183 ms  15 hops   90% ok ( 9/10) [  510] 149.20.20.135                226 ms  18 hops   90% ok ( 9/10) [  702] 510 128.30.2.36
In this case, since the single name has multiple DNS addresses all of the servers will be tested independently and the fastest server will be provided.
If you notice the above output you will see that the time for some hosts is 9999 ms. This is typically an indication of remote hosts blocking the UDP probes netselect relies on. To prevent this issue you can use ICMP tests. For example, repeating the above test using ICMP, that is:
# netselect -I -vv http.us.debian.org
yields the following output:
204.152.191.39               291 ms  17 hops  100% ok (10/10) [  785] 35.9.37.225                  180 ms  19 hops   66% ok ( 2/ 3) [  783] 64.50.233.100                140 ms  12 hops  100% ok (10/10) [  308] 128.30.2.36                  182 ms  15 hops  100% ok (10/10) [  455] 149.20.20.135                227 ms  18 hops  100% ok (10/10) [  635] 308 64.50.233.100
In this last example the selected server will change since, actually, the fastest server is one that also actively blocks UDP probes.
You can also use the tag feature based on postpending the server name with itself so the result includes both the fastest IP address and the original server name. For example, running a query with tags such as this one:
# netselect -I -vv http.us.debian.org:http.us.debian.org
will yield output similar to:
35.9.37.225:http.us.debian.org        9999 ms  30 hops    0% ok 64.50.233.100:http.us.debian.org      9999 ms  30 hops    0% ok 64.50.236.52:http.us.debian.org       9999 ms  30 hops    0% ok 128.30.2.36:http.us.debian.org         189 ms  14 hops   90% ok ( 9/10) [  504] 199.6.12.70:http.us.debian.org         286 ms  17 hops   90% ok ( 9/10) [  858] 504 128.30.2.36:http.us.debian.org
Or you can use the -D option to force netselect to print out only DNS names. For example:
# netselect -I -vv -D ftp.us.debian.org ftp.ru.debian.org
128.30.2.36                  186 ms  14 hops  100% ok (10/10) [  446] 199.6.12.70                  294 ms  17 hops   87% ok ( 7/ 8) [  907] 35.9.37.225                  177 ms  19 hops   66% ok ( 2/ 3) [  768] 64.50.233.100                141 ms  12 hops  100% ok (10/10) [  310] 64.50.236.52                 162 ms  13 hops  100% ok (10/10) [  372] ftp.ru.debian.org            112 ms  18 hops  100% ok (10/10) [  313] 310 ftp.us.debian.org
As you can see here, netselect will select a DNS name (in the example 'ftp.us.debian.org') which associated with multiple IP addresses over other servers as long as there is one server in the pool faster than others. However, using the DNS name for a server configuration might lead to actually slower throughput if, on average, the different IP addresses are not as responsive. In the above example, 'ftp.ru.debian.org' is second on the list and might be a better option (again, on average) than 'ftp.us.debian.org'.
-v     Verbose mode.  Displays nameserver resolution messages to stderr. You probably want this so that you don't get bored waiting for a hundred name resolutions to finish.
-vv    Very verbose mode.  Displays nameserver resolution and statistics (not just scores) to STDERR and STDOUT.
-vvv   Very very verbose mode.  Everything -vv prints, plus it print every packet received as it happens.  Good for debugging or trying to figure out how it works.
-vvvv  Very very very verbose mode.  Everything -vvv prints, plus a trace of all packets sent.
-m HOPS Maximum TTL (time to live).  Don't accept hosts that are further than HOPS away.
-s SERVERS Print this many "top-scoring" SERVERS at the end of the list.  If SERVERS is 0, then this disables printing of high scores.
-t PACKETS Make sure at least 50% of the hosts get tested with this many PACKETS.  The more packets you use, the more accurate are the results... and the longer it takes to run.  The default is 10, which is usually okay.
-I     Use ICMP instead of UDP probes. On some occasions (e.g. firewalled hosts) UDP probes like those used in traceroute will get filtered out and hosts might be perceived as dead. Using this option will make netselect use ICMP probes instead.
-D     netselect provides the IP address of the servers that are tested if the name resolves to more than one address (i.e. the remote end is using DNS round-robin). This makes it easier to spot which is the fastest server of a pool but might not be useful if you wish to configure a system daemon with the DNS name or if the remote service does not accept calls to its IP address (as some HTTP servers do). This option forces netselect to present the final server list using the original DNS name instead of the IP address if the DNS name resolves to more than one IP address.
ping(8), traceroute(8), netselect-apt(1).
Avery Pennarun <apenwarr@gmail.com>
PIGZ(1)                      General Commands Manual                     PIGZ(1)
pigz, unpigz - compress or expand files
pigz [ -cdfhikKlLmMnNqrRtz0..9,11 ] [ -b blocksize ] [ -p threads ] [ -S suffix ] [ name ...  ] unpigz [ -cfhikKlLmMnNqrRtz ] [ -b blocksize ] [ -p threads ] [ -S suffix ] [ name ...  ]
Pigz compresses using threads to make use of multiple processors and cores.  The input is broken up into 128 KB chunks with each compressed in parallel.  The individual check value for each chunk is also calculated in parallel.  The compressed data is written in order to the output, and a combined check value is calculated from the individual check values.
The compressed data format generated is in the gzip, zlib, or single- entry zip format using the deflate compression method.  The compression produces partial raw deflate streams which are concatenated by a single write thread and wrapped with the appropriate header and trailer, where the trailer contains the combined check value.
Each partial raw deflate stream is terminated by an empty stored block (using the Z_SYNC_FLUSH option of zlib), in order to end that partial bit stream at a byte boundary.  That allows the partial streams to be concatenated simply as sequences of bytes.  This adds a very small four to five byte overhead to the output for each input chunk.
The default input block size is 128K, but can be changed with the -b option.  The number of compress threads is set by default to the number of online processors, which can be changed using the -p option. Specifying -p 1 avoids the use of threads entirely.
The input blocks, while compressed independently, have the last 32K of the previous block loaded as a preset dictionary to preserve the compression effectiveness of deflating in a single thread.  This can be turned off using the -i or --independent option, so that the blocks can be decompressed independently for partial error recovery or for random access. This also inserts an extra empty block to flag independent blocks by prefacing each with the nine-byte sequence (in hex): 00 00 FF FF 00 00 00 FF FF.
Decompression can't be parallelized, at least not without specially prepared deflate streams for that purpose.  As a result, pigz uses a single thread (the main thread) for decompression, but will create three other threads for reading, writing, and check calculation, which can speed up decompression under some circumstances.  Parallel decompression can be turned off by specifying one process ( -dp 1 or -tp 1 ).
All options on the command line are processed before any names are processed.  If no names are provided on the command line, or if "-" is given as a name (but not after "--"), then the input is taken from stdin.
Compressed files can be restored to their original form using pigz -d or unpigz.
-# --fast --best Regulate the speed of compression using the specified digit #, where -1 or --fast indicates the fastest compression method (less compression) and -9 or --best indicates the slowest compression method (best compression).  -0 is no compression.  -11 gives a few percent better compression at a severe cost in execution time, using the zopfli algorithm by Jyrki Alakuijala.  The default is -6.
-A --alias xxx Use xxx as the name for any --zip entry from stdin (the default name is "-").
-b --blocksize mmm Set compression block size to mmmK (default 128KiB).
-c --stdout --to-stdout Write all processed output to stdout (won't delete).
-C --comment ccc Include the provided comment in the gzip header or zip central file header.
-d --decompress --uncompress Decompress the compressed input.
-f --force Force overwrite, compress .gz, links, and to terminal.
-H --huffman Compress using the Huffman-only strategy.
-i --independent Compress blocks independently for damage recovery.
-k --keep Do not delete original file after processing.
-K --zip Compress to PKWare zip (.zip) single entry format.
-l --list List the contents of the compressed input.
-L --license Display the pigz license and quit.
-m --no-time Do not store or restore the modification time. -Nm will store or restore the name, but not the modification time. Note that the order of the options is important.
-M --time Store or restore the modification time. -nM will store or restore the modification time, but not the name. Note that the order of the options is important.
-n --no-name Do not store or restore the file name or the modification time. This is the default when decompressing. When the file name is not restored from the header, the name of the compressed file with the suffix stripped is the name of the decompressed file. When the modification time is not restored from the header, the modification time of the compressed file is used (not the current time).
-N --name Store or restore both the file name and the modification time. This is the default when compressing.
-p --processes n Allow up to n processes (default is the number of online processors)
-q --quiet --silent Print no messages, even on error.
-r --recursive Process the contents of all subdirectories.
-R --rsyncable Input-determined block locations for rsync.
-S --suffix .sss Use suffix .sss instead of .gz (for compression).
-t --test Test the integrity of the compressed input.
-U --rle Compress using the run length encoding strategy.
-v --verbose Provide more verbose output.
-V --version Show the version of pigz. -vV also shows the zlib version.
-z --zlib Compress to zlib (.zz) instead of gzip format.
--     All arguments after "--" are treated as file names (for names that start with "-")
These options are unique to the -11 compression level:
-F --first Do iterations first, before block split (default is last).
-I, --iterations n Number of iterations for optimization (default 15).
-J, --maxsplits n Maximum number of split blocks (default 15).
-O --oneblock Do not split into smaller blocks (default is block splitting).
This software is provided 'as-is', without any express or implied warranty.  In no event will the author be held liable for any damages arising from the use of this software.
Copyright (C) 2007-2021 Mark Adler <madler@alumni.caltech.edu>
GIT-FSCK(1)                        Git Manual                        GIT-FSCK(1)
git-fsck - Verifies the connectivity and validity of the objects in the database
git fsck [--tags] [--root] [--unreachable] [--cache] [--no-reflogs] [--[no-]full] [--strict] [--verbose] [--lost-found] [--[no-]dangling] [--[no-]progress] [--connectivity-only] [--[no-]name-objects] [<object>*]
Verifies the connectivity and validity of the objects in the database.
<object> An object to treat as the head of an unreachability trace.
If no objects are given, git fsck defaults to using the index file, all SHA-1 references in refs namespace, and all reflogs (unless --no-reflogs is given) as heads.
--unreachable Print out objects that exist but that aren’t reachable from any of the reference nodes.
--[no-]dangling Print objects that exist but that are never directly used (default). --no-dangling can be used to omit this information from the output.
--root Report root nodes.
--tags Report tags.
--cache Consider any object recorded in the index also as a head node for an unreachability trace.
--no-reflogs Do not consider commits that are referenced only by an entry in a reflog to be reachable. This option is meant only to search for commits that used to be in a ref, but now aren’t, but are still in that corresponding reflog.
--full Check not just objects in GIT_OBJECT_DIRECTORY ($GIT_DIR/objects), but also the ones found in alternate object pools listed in GIT_ALTERNATE_OBJECT_DIRECTORIES or $GIT_DIR/objects/info/alternates, and in packed Git archives found in $GIT_DIR/objects/pack and corresponding pack subdirectories in alternate object pools. This is now default; you can turn it off with --no-full.
--connectivity-only Check only the connectivity of reachable objects, making sure that any objects referenced by a reachable tag, commit, or tree is present. This speeds up the operation by avoiding reading blobs entirely (though it does still check that referenced blobs exist). This will detect corruption in commits and trees, but not do any semantic checks (e.g., for format errors). Corruption in blob objects will not be detected at all.
Unreachable tags, commits, and trees will also be accessed to find the tips of dangling segments of history. Use --no-dangling if you don’t care about this output and want to speed it up further.
--strict Enable more strict checking, namely to catch a file mode recorded with g+w bit set, which was created by older versions of Git. Existing repositories, including the Linux kernel, Git itself, and sparse repository have old objects that triggers this check, but it is recommended to check new projects with this flag.
--verbose Be chatty.
--lost-found Write dangling objects into .git/lost-found/commit/ or .git/lost-found/other/, depending on type. If the object is a blob, the contents are written into the file, rather than its object name.
--name-objects When displaying names of reachable objects, in addition to the SHA-1 also display a name that describes how they are reachable, compatible with git-rev-parse(1), e.g.  HEAD@{1234567890}~25^2:src/.
--[no-]progress Progress status is reported on the standard error stream by default when it is attached to a terminal, unless --no-progress or --verbose is specified. --progress forces progress status even if the standard error stream is not directed to a terminal.
fsck.<msg-id> During fsck git may find issues with legacy data which wouldn’t be generated by current versions of git, and which wouldn’t be sent over the wire if transfer.fsckObjects was set. This feature is intended to support working with legacy repositories containing such data.
Setting fsck.<msg-id> will be picked up by git-fsck(1), but to accept pushes of such data set receive.fsck.<msg-id> instead, or to clone or fetch it set fetch.fsck.<msg-id>.
The rest of the documentation discusses fsck.*  for brevity, but the same applies for the corresponding receive.fsck.*  and fetch.<msg-id>.*. variables.
Unlike variables like color.ui and core.editor the receive.fsck.<msg-id> and fetch.fsck.<msg-id> variables will not fall back on the fsck.<msg-id> configuration if they aren’t set. To uniformly configure the same fsck settings in different circumstances all three of them they must all set to the same values.
When fsck.<msg-id> is set, errors can be switched to warnings and vice versa by configuring the fsck.<msg-id> setting where the <msg-id> is the fsck message ID and the value is one of error, warn or ignore. For convenience, fsck prefixes the error/warning with the message ID, e.g. "missingEmail: invalid author/committer line - missing email" means that setting fsck.missingEmail = ignore will hide that issue.
In general, it is better to enumerate existing objects with problems with fsck.skipList, instead of listing the kind of breakages these problematic objects share to be ignored, as doing the latter will allow new instances of the same breakages go unnoticed.
Setting an unknown fsck.<msg-id> value will cause fsck to die, but doing the same for receive.fsck.<msg-id> and fetch.fsck.<msg-id> will only cause git to warn.
fsck.skipList The path to a list of object names (i.e. one unabbreviated SHA-1 per line) that are known to be broken in a non-fatal way and should be ignored. On versions of Git 2.20 and later comments (#), empty lines, and any leading and trailing whitespace is ignored. Everything but a SHA-1 per line will error out on older versions.
This feature is useful when an established project should be accepted despite early commits containing errors that can be safely ignored such as invalid committer email addresses. Note: corrupt objects cannot be skipped with this setting.
Like fsck.<msg-id> this variable has corresponding receive.fsck.skipList and fetch.fsck.skipList variants.
Unlike variables like color.ui and core.editor the receive.fsck.skipList and fetch.fsck.skipList variables will not fall back on the fsck.skipList configuration if they aren’t set. To uniformly configure the same fsck settings in different circumstances all three of them they must all set to the same values.
Older versions of Git (before 2.20) documented that the object names list should be sorted. This was never a requirement, the object names could appear in any order, but when reading the list we tracked whether the list was sorted for the purposes of an internal binary search implementation, which could save itself some work with an already sorted list. Unless you had a humongous list there was no reason to go out of your way to pre-sort the list. After Git version 2.20 a hash implementation is used instead, so there’s now no reason to pre-sort the list.
git-fsck tests SHA-1 and general object sanity, and it does full tracking of the resulting reachability and everything else. It prints out any corruption it finds (missing or bad objects), and if you use the --unreachable flag it will also print out objects that exist but that aren’t reachable from any of the specified head nodes (or the default set, as mentioned above).
Any corrupt objects you will have to find in backups or other archives (i.e., you can just remove them and do an rsync with some other site in the hopes that somebody else has the object you have corrupted).
If core.commitGraph is true, the commit-graph file will also be inspected using git commit-graph verify. See git-commit-graph(1).
unreachable <type> <object> The <type> object <object>, isn’t actually referred to directly or indirectly in any of the trees or commits seen. This can mean that there’s another root node that you’re not specifying or that the tree is corrupt. If you haven’t missed a root node then you might as well delete unreachable nodes since they can’t be used.
missing <type> <object> The <type> object <object>, is referred to but isn’t present in the database.
dangling <type> <object> The <type> object <object>, is present in the database but never directly used. A dangling commit could be a root node.
hash mismatch <object> The database has an object whose hash doesn’t match the object database value. This indicates a serious data integrity problem.
GIT_OBJECT_DIRECTORY used to specify the object database root (usually $GIT_DIR/objects)
GIT_INDEX_FILE used to specify the index file of the index
GIT_ALTERNATE_OBJECT_DIRECTORIES used to specify additional object database roots (usually unset)
P5()                                                                        P5()
6 "IRIT Version 8.0"
A constant defining a P5 rational control point type.
GHDL(1)                                                                  GHDL(1)
ghdl - VHDL compiler/simulator
ghdl [command] [options] files... ghdl-gcc [command] [options] files... ghdl-llvm [command] [options] files... ghdl-mcode [command] [options] files...
This manual page documents briefly the ghdl command.  This manual page was written for user of man, but is not as complete as the reference documentation.
Instead, users should read the GHDL texinfo manual
The Debian package supports installing multiple GHDL backends at the same time.  The GHDL executable ghdl is actually a wrapper that will execute the first installed backend it finds in the order mcode, gcc, llvm.  If you want to run GHDL with a specific backend you can directly run their executable, named ghdl-mcode, ghdl-gcc and ghdl-llvm respectively. Alternatively, you can run ghdl with the GHDL_BACKEND environment variable set to mcode, gcc or llvm to select a backend.  If the backend in GHDL_BACKEND is not installed or invalid, the wrapper will silently revert to selecting the first installed backend it finds.
This program follows the usual GNU command line syntax, with long options starting with two dashes (`-').  A summary of the main modes and options is included below.  For a complete description, refer to the GHDL texinfo manual.
Basic commands:
-a     Analysis, i.e. ghdl -a file.vhdl
-e     Elabortation, i.e. ghdl -e unit_name
-r     Run: run the simulation, i.e. ghdl -r unit_name
-s     Syntax-check, i.e. ghdl -s file.vhdl
--clean Clean: remove generated files, i.e. ghdl --clean
-h, --help Help, i.e. ghdl --help
--version Version, i.e. ghdl --version
Basic options:
--work=NAME Name of the WORK library, i.e.  ghdl -a --work=foo foo.vhdl
--std=STD Which VHDL standard (87|93|93c|00|02), i.e. ghdl -a --std=87 old.vhdl
--ieee=VER Which IEEE library (none|standard|synopsys|mentor), i.e. ghdl -a --ieee=synopsys broken.vhdl
--no-vital-checks Disable VITAL restriction checking, i.e. ghdl -a --no-vital-checks unsupported_vital.vhdl
There are many more modes and options; please consult the documentation.
Executables created by GHDL have addition simulation options. The most important ones are listed below:
--help Show options for simulation and execution.
--assert-level=LEVEL Assert level at which to stop simulation (none|note|warning|error|failure), i.e. ./touchy_design --assert-level=note
--stop-time=TIME Stop simuation after TIME, i.e. ./design --stop-time=50ns
--vcd=FILENAME Dump VCD to FILENAME (a waveform dump, viewable with--for instance--gtkwave), i.e. ./design --vcd=design.vcd
--sdf=[TYPE=]PATH=FILENAME Back annotate SDF onto design using TYPE (min|typ|max), instance PATH, and SDF file FILENAME, i.e. ./sdf_design --sdf=typ=top/inst=inst.sdf
gtkwave(1)
The texinfo manual fully documents GHDL. You may also browse it at <https://ghdl.github.io/ghdl/>.
This manual page was written by Wesley J. Landaker <wjl@icecavern.net>, for the Debian project (but may be used by others). It is released under the same terms as GHDL, i.e. the GNU General Public License. It was modified by Tristan Gingold to include it in the GHDL sources.
UMASK(1P)                   POSIX Programmer's Manual                  UMASK(1P)
umask — get or set the file mode creation mask
umask [-S] [mask]
The umask utility shall set the file mode creation mask of the current shell execution environment (see Section 2.12, Shell Execution Environment) to the value specified by the mask operand. This mask shall affect the initial value of the file permission bits of subsequently created files. If umask is called in a subshell or separate utility execution environment, such as one of the following:
(umask 002) nohup umask ... find . -exec umask ... \;
it shall not affect the file mode creation mask of the caller's environment.
If the mask operand is not specified, the umask utility shall write to standard output the value of the file mode creation mask of the invoking process.
The umask utility shall conform to the Base Definitions volume of POSIX.1‐2017, Section 12.2, Utility Syntax Guidelines.
The following option shall be supported:
-S        Produce symbolic output.
The default output style is unspecified, but shall be recognized on a subsequent invocation of umask on the same system as a mask operand to restore the previous file mode creation mask.
mask      A string specifying the new file mode creation mask. The string is treated in the same way as the mode operand described in the EXTENDED DESCRIPTION section for chmod.
For a symbolic_mode value, the new value of the file mode creation mask shall be the logical complement of the file permission bits portion of the file mode specified by the symbolic_mode string.
In a symbolic_mode value, the permissions op characters '+' and '-' shall be interpreted relative to the current file mode creation mask; '+' shall cause the bits for the indicated permissions to be cleared in the mask; '-' shall cause the bits for the indicated permissions to be set in the mask.
The interpretation of mode values that specify file mode bits other than the file permission bits is unspecified.
In the octal integer form of mode, the specified bits are set in the file mode creation mask.
The file mode creation mask shall be set to the resulting numeric value.
The default output of a prior invocation of umask on the same system with no operand also shall be recognized as a mask operand.
The following environment variables shall affect the execution of umask:
When the mask operand is not specified, the umask utility shall write a message to standard output that can later be used as a umask mask operand.
If -S is specified, the message shall be in the following format:
"u=%s,g=%s,o=%s\n", <owner permissions>, <group permissions>, <other permissions>
where the three values shall be combinations of letters from the set {r, w, x}; the presence of a letter shall indicate that the corresponding bit is clear in the file mode creation mask.
If a mask operand is specified, there shall be no output written to standard output.
0    The file mode creation mask was successfully changed, or no mask operand was supplied.
Since umask affects the current shell execution environment, it is generally provided as a shell regular built-in.
In contrast to the negative permission logic provided by the file mode creation mask and the octal number form of the mask argument, the symbolic form of the mask argument specifies those permissions that are left alone.
Either of the commands:
umask a=rx,ug+w
umask 002
sets the mode mask so that subsequently created files have their S_IWOTH bit cleared.
After setting the mode mask with either of the above commands, the umask command can be used to write out the current value of the mode mask:
$ umask 0002
(The output format is unspecified, but historical implementations use the octal integer mode format.)
$ umask -S u=rwx,g=rwx,o=rx
Either of these outputs can be used as the mask operand to a subsequent invocation of the umask utility.
Assuming the mode mask is set as above, the command:
umask g-w
sets the mode mask so that subsequently created files have their S_IWGRP and S_IWOTH bits cleared.
umask -- -w