Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
oclminify is an OpenCL™ <https://www.khronos.org/opencl/>
__ source
minifier. It takes OpenCL source code and makes it as small as possible
by stripping comments, removing unnecessary space, renaming symbols,
rewriting vector indices, etc. The minified source can be optionally
compressed and then saved as is or as a C header. The latter makes it
very easy to embed into a compiled application. The original source and
the minified source are functionally identical and should compile into
the exact same byte code.
If you're targeting platforms with OpenCL 2.0 or later support, you
should consider using SPIR™ <https://www.khronos.org/spir>
__ instead.
oclminify was originally developed by the
Phoduit <https://phoduit.com>
__ team.
Python® <https://www.python.org/>
__ >= 2.7 (Python 3 is also
supported)pycparser <https://github.com/eliben/pycparser>
__ >= 2.17pycparserext <https://github.com/inducer/pycparserext>
__ >= 2016.2pyopencl <https://mathema.tician.de/software/pyopencl/>
__ >= 2016.1
(optional, checks if source can be compiled before minifying)GCC <https://gcc.gnu.org/>
, cpp <https://gcc.gnu.org/>
,
MSVC <https://www.visualstudio.com/>
__ or another C preprocessorFrom the command line:
::
pip install oclminify
If you want oclminify to support a compile check before minification, with an actual OpenCL driver, install pyopencl with:
::
pip install pyopencl
::
oclminify [-h] [--preprocessor-command PREPROCESSOR_COMMAND]
[--preprocessor-no-stdin] [--no-preprocess] [--no-minify]
[--compress] [--strip-zlib-header] [--header]
[--header-function-args] [--minify-kernel-names]
[--global-postfix GLOBAL_POSTFIX] [--try-build]
[--output-file OUTPUT_FILE]
input
oclminify takes a single input file. If the input file is - (a single hyphen), input will be read from STDIN. If the --output-file option is omitted, the output is written to STDOUT.
The available options are:
::
-h, --help show this help message and exit
--preprocessor-command PREPROCESSOR_COMMAND
Command to preprocess input source before
minification. Defaults to "gcc -E -undef -P -std=c99
-"
--preprocessor-no-stdin
Pass input to preprocessor using a temporary file
instead of stdin.
--no-preprocess Skip preprocessing step. Implies --no-minify.
--no-minify Skip minification step. Useful when debugging.
--compress Compress output using zlib.
--strip-zlib-header Strips the two byte zlib header from the compressed
output when --compress is used.
--header Embed output in a C header file.
--header-function-args
Include function argument mappings in C header file.
--minify-kernel-names
Replace kernel function names with shorter names.
--global-postfix GLOBAL_POSTFIX
Postfix appended to each symbol name in the global
scope. Used for preventing name collisions when
minifying multiple source files separately. Implies
--minify-kernel-names.
--try-build Try to build the input using an OpenCL compiler before
minifying. The compiled output is discarded. Requires
pyopencl.
--output-file OUTPUT_FILE
File path where output should be saved. Omit to write
to stdout.
To simply minify an OpenCL source file and write the result to file, run:
::
oclminify --output-file output.minified.cl input.cl
The examples directory contains more examples:
examples/minimal
— shows how to create a minimal project that
minifies an OpenCL source file and builds a C based project using a
shell script.
examples/cmake
— shows how to integrate oclminify with a
CMake <https://cmake.org/>
__ based C++ project.
examples/compress
— shows how to use oclminify in a CMake project
to compress an OpenCL source file at compile time and then decompress
it at run time.
FAQs
Minify OpenCL source files.
We found that oclminify demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.