TQ Hirsch
ed2694c41f
Merge pull request #172 from tomime/readme-learning
...
linked more documentation/resources
2016-08-10 15:33:55 +02:00
TQ Hirsch
91a478778b
Merge pull request #175 from tomime/local-certs
...
travis cert issue fix
2016-08-10 15:32:51 +02:00
tomime
98077b116f
remove mozroots
2016-08-10 12:51:06 +02:00
tomime
eebdf3fdd8
added note on outdated hammer primer
2016-08-01 12:54:13 +00:00
tomime
637c9b5d03
linked more documentation/resources
2016-07-30 13:02:32 +00:00
Meredith L. Patterson
5317ad89ba
Merge pull request #165 from uucidl/win32-scons
...
build on Windows with scons
2016-05-31 01:14:20 +02:00
nicolas
335c8eee9c
Add scons build to appveyor builds
...
This will guarantee we can build hammer with default arguments
2016-05-22 13:56:17 +02:00
nicolas
39e101df03
Note for later about windows port
2016-05-22 13:33:55 +02:00
nicolas
88420038f9
Replace all double quotes with single quotes
...
To homogenize the file and allow keys/strings to be searched easily.
2016-05-22 13:33:46 +02:00
nicolas
69d3e70211
Port scons build files for Windows users
...
We disable:
- the tests (which require glib) although they can be
reactivated with the `--tests` command line flag
- shared library (lack of export symbol declarations
means that although it can be built, no symbol is
exported and therefore it can't be used)
The `install` target installs the library and headers
under the `build` folder, because it's a traditional practice
to move libraries to a central location on Windows, unless
you are using cygwin. In which case pass `prefix` to the
command line.
We adapt tools\windows\build_examples.bat to take the library
that is built using scons or using tools\windows\build.bat
2016-05-22 13:29:12 +02:00
nicolas
f31e3ba4bd
Move sections around to allow porting to windows
...
We will need to use the environment's CC variable to make decisions
that apply to windows compiling and linking. Therefore we move some
existing sections below the set up of env["CC"] and env["CXX"]
2016-05-22 13:18:19 +02:00
Meredith L. Patterson
45eea0d968
Merge pull request #160 from uucidl/master
...
Finish porting parsers to windows
2016-02-24 23:40:45 +01:00
Nicolas Léveillé
f9d8f1df7f
Reactivate examples that can build on windows
...
This is proof that Hammer can be linked and used in a windows
program!
2016-01-31 18:11:27 +01:00
Nicolas Léveillé
9a7752b9a6
Finish porting hammer's library to windows
...
We port registry by importing the (public domain) openbsd implementation
of the tfind/tsearch POSIX binary tree search functions.
These are only necessary when building on non-posix platforms
2016-01-31 17:27:19 +01:00
Nicolas Léveillé
206f5044a8
Remove warning about tail "potentially uninitialized"
...
MSVC was complaining that the `tail` variable was potentially
uninitialized in the while branch. Since the while loop is actually
coupled to the if (head != NULL) that initializes the tail variable,
we move them together, which makes the warning disappear.
2016-01-31 16:55:17 +01:00
Nicolas Léveillé
d6e6911ad1
-y for install lcov
2015-12-20 12:43:34 +01:00
Nicolas Léveillé
2623d1a5f1
Add all remaining parsers that were not compiling on windows
...
The last file to port for the library is registry.c
2015-12-20 11:51:05 +01:00
Nicolas Léveillé
62d793b939
Remove warning about parser signature being wrong
2015-12-20 11:51:01 +01:00
Nicolas Léveillé
c95b2987b1
Support variable array length instantiation on MSVC
...
As MSVC doesn't implement C99, variable-length arrays
are not supported. We use _alloca instead.
2015-12-20 11:50:58 +01:00
Nicolas Léveillé
c5ca35c347
Remove c4388 signed/unsigned mismatch
...
It is the counterpart to c4018 for x64 compilations.
2015-12-20 11:50:54 +01:00
Nicolas Léveillé
b3a8403b8e
Remove more useless MSVC warnings
2015-12-20 11:50:40 +01:00
Meredith L. Patterson
efea10417c
Merge pull request #157 from moreati/python-examples
...
Added Python versions of base64 examples
2015-12-13 15:31:51 -08:00
Meredith L. Patterson
f806125ab8
Merge pull request #140 from pesco/fix-wrong_bit_length
...
Some combinators may report the wrong amount of consumed input
2015-12-13 15:19:02 -08:00
Meredith L. Patterson
68becde6d3
Merge pull request #158 from pesco/fix-dotdot-includes
...
disable warning on windows about '..' in include paths
2015-12-13 11:32:17 -08:00
Sven M. Hallberg
aa1d9b7d25
disable warning on windows about '..' in include paths
2015-12-08 15:38:35 +01:00
Sven M. Hallberg
50a73f6ab2
Merge remote-tracking branch 'upstream/master' into fix-wrong_bit_length
2015-12-07 11:05:05 +01:00
TQ Hirsch
41b890c74d
Merge pull request #155 from pesco/fix-alloc-failures
...
Handle memory allocation failures gracefully
2015-12-06 08:09:45 -08:00
Sven M. Hallberg
d28f182c4f
clear arena exception handler when exiting llk_parse_chunk_
2015-12-04 13:28:26 +01:00
Alex Willmer
c6280a98bc
Added Python versions of base64 examples
...
These are transliterations of the existing C files.
They're not particularly Pythonic or performant, but they're a start.
Example of usage
```
$ echo ' YW55IGNhcm5hbCBwbGVhcw==' | PYTHONPATH=../build/opt/src/bindings/python/ python base64.py
inputsize=27
input= YW55IGNhcm5hbCBwbGVhcw==
((((89L, 87L, 53L, 53L), (73L, 71L, 78L, 104L), (99L, 109L, 53L, 104L), (98L, 67L, 66L, 119L), (98L, 71L, 86L, 104L)), (99L, 'w', '=', '=')),)
$ echo ' YW55IGNhcm5hbCBwbGVhcw==' | PYTHONPATH=../build/opt/src/bindings/python/ python base64_sem1.py
inputsize=27
input= YW55IGNhcm5hbCBwbGVhcw==
(97L, 110L, 121L, 32L, 99L, 97L, 114L, 110L, 97L, 108L, 32L, 112L, 108L, 101L, 97L, 115L)
$ echo ' YW55IGNhcm5hbCBwbGVhcw==' | PYTHONPATH=../build/opt/src/bindings/python/ python base64_sem2.py
inputsize=27
input= YW55IGNhcm5hbCBwbGVhcw==
(97L, 110L, 121L, 32L, 99L, 97L, 114L, 110L, 97L, 108L, 32L, 112L, 108L, 101L, 97L, 115L)
```
2015-12-04 10:20:25 +00:00
Sven M. Hallberg
9602caf64f
test out-of-memory handling with a mock allocator
2015-12-02 14:10:12 +01:00
Sven M. Hallberg
7b13a82851
add __m variants to some check macros
2015-12-02 13:28:24 +01:00
Sven M. Hallberg
db4fd66eaf
try it with a smaller alloc
2015-12-01 18:12:21 +01:00
Sven M. Hallberg
e89d9f9134
delete results properly in parser test macros
2015-12-01 17:51:45 +01:00
Sven M. Hallberg
22b5611cdf
add oom handling to iterative LR engine
2015-12-01 17:10:47 +01:00
Sven M. Hallberg
384a7b9390
reset arena jmp_bufs at end of h_llk_parse_chunk
2015-12-01 17:07:04 +01:00
Sven M. Hallberg
3ce4f61cf9
add test for out-of-memory handling
2015-12-01 16:56:08 +01:00
Sven M. Hallberg
2309bd6da9
out-of-memory support for iterative LL(k)
2015-12-01 16:48:01 +01:00
Sven M. Hallberg
d5f3e13309
out-of-memory handling in LL(k), LR, and GLR backends
2015-11-30 18:07:33 +01:00
Sven M. Hallberg
5996477a5e
out-of-memory handling in packrat backend
2015-11-30 18:01:23 +01:00
Sven M. Hallberg
3fc56a0dc3
add h_alloc() which calls errx() on failure and use it for all basic allocation
...
Rationale: "Basic allocation" refers to things outside of parsing proper,
mostly initialization. If such allocations fail, the system is globally
emory-starved from which it will likely not recover by returning failure.
In this case, terminating the process is in fact the most robust strategy as
it may mean the difference between a permanent hang and a temporary crash.
2015-11-30 16:37:00 +01:00
Sven M. Hallberg
ca1d8df06c
don't allocate a new arena in h_bind, use the existing one
...
Rationale: If memory allocation fails in the inner parse and we
longjump up the stack, the temporary arena will be missed and leak.
NB: This change means that any allocations done by the continuation
(in the form of new parsers, probably) will persist for the
lifetime of the parse result. Beware of wasting too much memory
this way! The bind continuation should generally keep dynamic
allocations to a minimum.
2015-11-30 14:19:40 +01:00
Sven M. Hallberg
e26a8ff572
add libhammer.pc to gitignore
2015-11-27 17:55:18 +01:00
Sven M. Hallberg
5b3cb46c96
avoid GCC warning about potential longjmp clobbers
2015-11-14 23:26:04 +01:00
Sven M. Hallberg
6aa7db833e
Merge remote-tracking branch 'upstream/master' into fix-alloc-failures
2015-11-14 23:24:06 +01:00
Meredith L. Patterson
7017ea6d91
Merge pull request #156 from pesco/fix-libpath-order
...
fix LIBPATH order for building test_suite
2015-11-14 19:16:24 +01:00
Sven M. Hallberg
9e37fbe513
fix LIBPATH order for building test_suite
2015-11-14 18:44:53 +01:00
Sven M. Hallberg
25acd90a48
allow h_sequence(NULL) as parser for the empty sequence
2015-11-01 17:49:53 +01:00
Sven M. Hallberg
e8b1962005
out of memory handling and leak fixes in regex backend
2015-10-30 21:26:08 +01:00
Sven M. Hallberg
9ef70f2f2d
never return if h_arena_malloc fails, call errx() or longjmp()
2015-10-30 21:23:45 +01:00
Sven M. Hallberg
d5e79aa4cb
fail an assert on h_sequence(NULL) instead of segfaulting later
2015-10-29 22:03:05 +01:00