|
 |
zkl Downloads
To get started using zkl, all you need is the
zkl binary and documentation. The binary is self contained and
will run the documentation examples.
Downloads: Documentation (PDFs)
Software License: The
zlib/libpng License, http://www.opensource.org/licenses/zlib-license.php.
This license only covers the software I've written, anything
consumed or produced by these tools is yours. This is a OSI
approved open license.
Downloads: zkl Source Code
- zkl_vm_src.zip:
Source code for the zkl VM (which is zkl). ANSI C (C99) + "//"
comments + inline. Project files for Microsoft Visual C 14
(Win10) and a Makefile for Linux/FreeBSD/PC-BSD/clang
- v1.14.7; 2020-02-02; 82 files (652,203
bytes)
- zkl_tests.zip:
The test suites (8,700+ tests). It takes under 1 minute to run
these tests on my Intel i7 4 core desktop Linux machine, about 1
minute on for Windows 10 running in a VM on the same machine.
- 2020-02-02; 58 source files (309K bytes)
- zkl_scripts.zip:
The scripts (all eight of them!)
- hexDump: Print the contents of a file in
hex and ascii, ala Debug.
- find: A "sorta like" Unix find, for when Windows search
drives you nuts.
- manifest: The program I use to back up and/or create the
package zip files.
See "manifest" in this package for an example.
This package was created with: zkl manifest --zip
Scripts/manifest
Not documented.
- hash: Print the message hash (MD5 or others) of one or
more files. Also can use SHA-256 (if you have zklMsgHash).
- sinebar: Useful for machinists doing precision work with
gage blocks.
Calculates the gage blocks need to make a stack, a sine bar
stack or two stacks of the same height.
Uses an 81 piece inch gage block set.
- zgrep: A combo find + fgrep for non unix machines (it does
work on unix just fine but is redundant).
- iso8601.zkl:
Code for working with the ISO 8601 time standard.
- (2011-09-01, 20kb). Put this in
?/ZKL/Src/Time/. If you use this a lot or are annoyed by the
load time, you can pre-compile: "zkl -c Src/Time/iso8601 -O
Src"
- Documentation: zklISO8601.pdf (8 pages, 192kb)
Downloads: Extension Libraries
Source code is ANSI C (C99) + "//" comments or
C++. You can compile the Windows code with Microsoft's Visual C++
Express Edition, which is free from http://www.microsoft.com/express/download/.
The code also compiles on Linux, FreeBSD & PC-BSD with clang
(GCC has issues).
- BigNum: Glue for infinite
precision integer libraries MPIR (http://mpir.org/,
Windows) or GMP (http://gmplib.org/,
Linux). MPIR is a fork of GMP that is source compatible.
- Example:
zkl: var BigNum=Import("zklBigNum")
zkl: fcn fact(n) { return(n and n*self.fcn(n - 1) or 1); }
zkl: fact(BigNum(42)).toString(10,3,",") // 42! pretty
printed
1,405,006,117,752,879,898,543,142,606,244,511,569,936,384,000,000,000
zkl: fact(BigNum(42)) : "%,d".fmt(_) // same thing
zkl: "%,d".fmt(fact(BigNum(42))) // same thing
- zkl_dll_bignum_src.zip:
Source (MSVC14, Linux/FreeBSD/PC-BSD/Win10)
- 2017-07-01; 10 files (38kB bytes)
- Curl: A very small/simple
front end to cURL (https://curl.haxx.se/).
The only functionality is to load a URL (of the very many types
that cURL supports).
- Example:
zkl: var ZC=Import("zklCurl")
zkl: var data=ZC().get("https://www.google.com")
L(Data(46,290),794,0) // (text, bytes of header, bytes
post body)
- zkl_dll_curl_src.zip: Source
(Linux/FreeBSD/PC-BSD/SWin10)
- (2017-12-01; 9 files, 12kb bytes).
- EditLine: A very minimal
front end to libEdit, a line editor (like GNU read line).
Unix/Linux/FreeBSD only (Windows CMD has this functionality).
Get this if you use zkl on Linix/FreeBSD, it gives you command
line editing. Includes saving history across sessions.
- GSL: A front end to libGSL,
the GNU Scientific Library (https://www.gnu.org/software/gsl).
GSL does complex, vector (real and complex) and matrix (real)
math and linear algebra.
- Example:
var GSL=Import("zklGSL");
var xs=GSL.VectorFromData(0,1, 2, 3, 4, 5, 6, 7, 8, 9,
10);
var
ys=GSL.VectorFromData(1,6,17,34,57,86,121,162,209,262,321);
var v=GSL.polyFit(xs,ys,2);
v.format()
1.00,2.00,3.00 # == 1 + 2x + 3x2
- GSL.Helpers.polyString(v)
1 + 2x + 3x^2
GSL.Helpers.polyEval(v,xs).format();
1.00,6.00,17.00,34.00,57.00,86.00,121.00,162.00,209.00,262.00,321.00
- zkl_dll_GSL_src.zip: Source
(Linux/PC-BSD)
- 2017-07-01; 8 files (28kB bytes)
- MsgHash:
Calculate message/digest hashes: SHA-256, SHA-1, RIPEMD-160 and
base64/32 codec plus keyed-hash message authentication code
(HMAC).
Example:
var MsgHash = Import("zklMsgHash");
MsgHash.SHA256("message")
ab530a13e45914982b79f9b7e3fba994cfd1f3fb22f71cea1afbf02b460c6d1d
- testDll: A small test dll to
see if you can compile and run a zkl dll/shared library
extension.
- zeelib: A zlib (gzip)
interface (zlib home
page). The interface is a streaming one (file like), you
can use it to stream compressed data between threads (among many
other things). Refer to Appendix B in the manual. Also includes
a program that compresses files into a zip file (which I use to
create these downloadable zip files).
Example:
C:\ZKL>zkl
zkl: var gz = Import("zeelib").Compressor(True)
zkl: var f = File("text.gz","wb");
zkl: f.write(gz.write("This is a test").close().drain())
32
zkl: f.close()
zkl: ^C
C:\ZKL>gzip -d < text.gz
This is a test
- zkl_dll_zeelib_src.zip:Source (MSVC 14,
Linux/FreeBSD/PC-BSD/Win10)
- 2017-06-01; 14 files (40kb bytes)
|