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
Sven M. Hallberg
3765fd64e1
don't pre-allocate all space when parsing an h_length_value
2015-10-29 13:12:16 +01:00
Sven M. Hallberg
d2ade1f5b4
call h_arena_free when resizing in h_carray_append
2015-10-29 13:11:32 +01:00
TQ Hirsch
a3290770e2
Merge pull request #154 from abiggerhammer/master
...
Don't try to recall() primitive results
2015-10-04 16:28:51 +02:00
TQ Hirsch
2c4c4ce146
Merge pull request #153 from abiggerhammer/master
...
fix --coverage build option; building with it now creates .gcda files…
2015-10-04 15:54:34 +02:00
Meredith L. Patterson
99ca500d2b
Don't try to recall() primitive results
2015-10-04 15:32:32 +02:00
Meredith L. Patterson
9235bf793c
Only do coverage with the C builds; otherwise the bindings tests don't work
2015-10-04 03:36:02 +02:00
Meredith L. Patterson
4fed9327a4
now both clang and gcc have coverage without any dumb hacks
2015-10-04 02:53:54 +02:00
Meredith L. Patterson
d809bbd1a9
slightly less ugly
2015-10-04 01:59:20 +02:00
Meredith L. Patterson
d8d106d035
typo
2015-10-04 01:55:11 +02:00
Meredith L. Patterson
2915a8f174
dirty hack continues
2015-10-04 01:52:26 +02:00
Meredith L. Patterson
2b637946fa
nope, guess we need -lgcov after all
2015-10-04 01:49:39 +02:00
Meredith L. Patterson
ff65571474
this is a dirty hack, but it solves the Program builder not honoring LDFLAGS
2015-10-04 01:43:44 +02:00
Meredith L. Patterson
10997afcbb
adding code coverage to automation
2015-10-04 00:42:28 +02:00
TQ Hirsch
f24b24ad8d
Merge pull request #152 from abiggerhammer/master
...
Don't create dummy LR-cache entries for parsers that will never recurse
2015-10-04 00:09:39 +02:00
Meredith L. Patterson
9dbd2debda
fix --coverage build option; building with it now creates .gcda files that gcov can use
2015-10-04 00:03:24 +02:00
Meredith L. Patterson
755b771ee2
more thorough comments
2015-10-03 22:26:40 +02:00
Meredith L. Patterson
969d768205
Don't cache dummy results for primitive parsers.
2015-10-03 17:54:11 +02:00
TQ Hirsch
65dcf8d0d6
Merge pull request #151 from abiggerhammer/master
...
add platform.h to distribution headers
2015-10-03 16:47:43 +02:00
Meredith L. Patterson
578ac05154
add platform.h to distribution headers
2015-10-03 14:32:54 +02:00
Meredith L. Patterson
fea3a69d4b
Merge pull request #149 from pesco/fix-charset_bits
...
Allocate 256 bits, not 256 bytes, for a charset
2015-09-26 17:45:41 +02:00
Meredith L. Patterson
9c89b999a1
Merge pull request #148 from pesco/fix-charset_conflicts
...
Fix charset conflicts
2015-09-26 17:44:36 +02:00
Sven M. Hallberg
f3011f8263
allocate 256 bits, not 256 bytes, for a charset
2015-09-25 16:48:32 +02:00
Sven M. Hallberg
c770fbab1b
add regression test for charset over-allocation
2015-09-25 16:47:07 +02:00
Sven M. Hallberg
df179eba43
fix conflict resolution with charset productions
2015-09-25 01:28:52 +02:00
Sven M. Hallberg
c9de11c883
Merge branch 'master' of git://github.com/UpstandingHackers/hammer into iterative
2015-09-24 16:36:53 +02:00
Sven M. Hallberg
520884739c
cosmetic changes
2015-09-24 16:33:13 +02:00
Meredith L. Patterson
690985dddd
Merge pull request #147 from pesco/iterative
...
Report correct token position from LR backends
2015-09-24 16:31:11 +02:00
Sven M. Hallberg
65dbcf56fc
make sure LALR doesn't confuse terminal symbols in the enhanced grammar
2015-09-24 16:29:56 +02:00
Sven M. Hallberg
96503ac497
Merge remote-tracking branch 'upstream/master' into iterative
2015-09-24 16:12:32 +02:00
Meredith L. Patterson
cb93c3b4ec
Merge pull request #141 from pesco/iterative
...
Iterative (chunked) input processing
2015-09-23 10:52:22 +02:00
Meredith L. Patterson
8d631d0724
Merge pull request #146 from uucidl/master
...
Remove now unneeded workaround
2015-09-22 15:44:08 +02:00