jose luis ferrer
d9240320c1
compiler: Allocate all possible space for constants
...
When the c-capnp compiler runs, currently only takes the len of 1st
segment in the list as a capacity used in the generator for constants
definitions.
This works when the schema processing only generates 1 segment, or the
1st segment has 8192 bytes. There are cases where the fd returns
multiple segments an the first one has very low capacity (e.g. 96 or 80).
Hence, if more constants require to be allocated for the current schema
it will have misleading positions.
This commit takes a conservative approach by summing up all the lenghts
of capnproto segments obtained at the fd_init call of the compiler.
Those values are taken to set the memory allocation and the max
capacity for the segment utilized in the code generation.
2018-02-01 15:13:18 +01:00
Alexis Ballier
704a34fa65
Use proper format specifiers for size_t.
2017-05-19 19:26:47 +02:00
David Lamparter
aa1f31d401
Silence empty struct warning
...
Last but not least, -Wpedantic warns about empty structs. With this,
-Wpedantic build is now clean of warnings on gcc 5.4.0 and clang 4.0.
2017-05-19 09:45:01 +02:00
David Lamparter
b0810da2c3
Silence warning on unused struct parameter
...
When generating code for an empty struct, the read_/write_ functions
would print warnings about the unused "s" pointer. Silence these.
2017-05-19 09:40:37 +02:00
David Lamparter
99e9412c02
Silence GCC unnamed union warning
...
We need the unnamed struct/union support, this is user-facing API.
So, silence the -Wpedantic warning.
2017-05-19 09:35:09 +02:00
Alex Helfet
989acc3414
Most .capnp files use "/c.capnp".fieldgetset. Recompile from schema files.
2017-03-26 23:40:55 +01:00
Alex Helfet
a379aa89ac
Compiler generates absolute #include paths from .capnp imports with leading /'s.
...
As specified in https://capnproto.org/language.html#imports and implemented
in the C++ compiler output plugin.
2017-03-26 18:43:57 +01:00
Alex Helfet
6b52d615a2
Add all .capnp files to make dist archive.
2017-03-26 15:23:35 +01:00
Alex Helfet
362173091d
compiler: If an explicit symbol wasn't provided, make generated capn_val%d variables static.
2017-03-23 20:18:29 +00:00
Alex Helfet
f16fae57b3
Fix GCC warnings in initializers for capn_val0 and capn_seg.
2017-03-22 06:48:58 +00:00
David Lamparter
54a7bb7ffb
compiler: drop outdated find_node comment & IDs
2016-07-20 08:48:22 +02:00
David Lamparter
c322bc9618
compiler: apply name infix on include filenames
...
This fixes #include output when $C.nameinfix is used.
2016-07-19 15:21:56 +02:00
David Lamparter
da663f83ef
compiler: add annotation to enable field get/set
...
Generating per-field getters/setters adds a lot of functions; this makes
them switchable with an annotation in the source schema.
2016-07-19 15:21:05 +02:00
David Lamparter
52ca907f14
compiler: add find_node_mayfail(), remove hack
...
Fixes github issue #11 , also makes it easier to use annotations.
2016-07-19 15:14:00 +02:00
David Lamparter
5d787b698e
compiler: add "C::nameinfix" annotation
...
allows changing output filenames from "foo.capnp.c" to
"foo.capnpSOMETHING.c" where SOMETHING is the argument to the
annotation.
2016-06-22 15:16:40 +02:00
David Lamparter
87591da455
Update autogenerated files
2016-06-22 14:24:28 +02:00
David Lamparter
48535d02bd
whitespace fixes
2016-06-22 13:44:56 +02:00
Michael Gartsbein
05f5884385
add u to avoid undefined shl
2016-05-05 11:40:13 +03:00
Michael Gartsbein
12ad949df8
working with stricter compiler flags
2016-04-28 12:01:08 +03:00
David Lamparter
e9df12b387
don't write out empty structs
...
"struct { } foo" is not valid ISO C99; while gcc/clang/icc support it,
other compilers and tools don't (e.g. pycparser)
2016-04-06 14:18:29 -03:00
Michael Gartsbein
61a43a4998
static const instead of function in size getters
2016-03-29 10:25:33 +03:00
Michael Gartsbein
e870b5d605
generate setter and getter
2016-03-27 16:35:11 +03:00
David Lamparter
4de69a555d
test.schema: drop interface & generic, regenerate
2016-03-19 00:46:05 +01:00
David Lamparter
7ecadefbfd
compiler: fix remaining warnings
2016-03-19 00:39:30 +01:00
David Lamparter
811d3046e1
rename to "[lib]capnp_c", use lib/ subdir
2016-03-19 00:39:29 +01:00
David Lamparter
d3b1cad50f
compiler: regenerate schema.c with enum/int cast
2016-03-19 00:39:25 +01:00
David Lamparter
41462901df
lib: fix warning on uint16->enum cast
2016-03-19 00:36:24 +01:00
David Lamparter
ae746a3e08
add approprate per-file license headers
2016-02-28 12:47:42 +01:00
David Lamparter
b55d847db6
Re-fix signed/unsigned warnings
2016-02-28 12:42:52 +01:00
David Lamparter
02268ff818
Merge branch 'kylemanna' into merge
...
Conflicts: (manually resolved)
capn-malloc.c
capn-stream.c
capn-test.cpp
capn.c
capn.h
compiler/capnpc-c.c
2016-02-28 12:32:59 +01:00
David Lamparter
0ddba4f2f1
Merge branch 'baruch' into merge
...
Conflicts:
Makefile -- manually resolved
compiler/schema.capnp -- used from liamstask
compiler/test.capnp -- used from liamstask
2016-02-28 12:17:57 +01:00
Kyle Manna
376b63fb81
signedness: Fix less obvious issues
...
* My compilers mark these as errors
* Attempt to be more correct
* Tested on gcc-5.2.0 and clang-3.6.2
2015-08-17 18:52:36 -07:00
Kyle Manna
e933510236
compiler: Fix missing comments
...
* Later versions of compilers/pre-processors are upset about the syntax
* Bracket unterminated string with proper comment tags
2015-08-17 18:50:53 -07:00
Kyle Manna
7d2e122f2f
signedness: Fix obvious sign problems
...
* These should be easily verified as correct.
* Tested on gcc-5.2.0 and clang-3.6.2
2015-08-17 18:48:17 -07:00
Liam Staskawicz
cdf7e1f007
compiler: notes on updating from upstream
2015-08-04 12:04:49 -07:00
Liam Staskawicz
560366c7d4
compiler: introduce workaround for annotation ids in nestednode list (see comments), and regenerate schema .{c|h} files based on capnproto v0.5.2
2015-08-04 11:56:00 -07:00
Liam Staskawicz
98c2d02744
compiler: update schemas from v0.5.2
2015-08-04 11:55:23 -07:00
Liam Staskawicz
0b6f95294e
all: use unsigned types for more variables that represent length
...
resolve build warnings on multiple platforms/toolchains
2015-08-04 10:44:22 -07:00
Liam Staskawicz
125c638c11
unreal: gcc complains about missing ‘ character in #if 0 block
2015-08-04 10:25:08 -07:00
Baruch Even
d785521932
Recompile capnpc schemas for capnpc 0.4
2014-08-03 23:22:28 +03:00
Johan De Claville Christiansen
d84a635fb0
Fixed compilation by removing 32-bit padding
2014-03-25 19:12:58 +01:00
Johan De Claville Christiansen
bf5eb7f92c
Added gtest 1.6.0, since the included version lacked the headers
2014-03-25 18:55:18 +01:00
Johan De Claville Christiansen
1d79a28091
Fixed: missing terminating ' character
2014-03-25 17:50:39 +01:00
James McKaskill
ff44e4df26
remove CAPN_COMPOSITE_LIST and add capn_len
2013-09-16 16:53:33 -04:00
James McKaskill
59f827e93d
change ptrsz to ptrs to free up space in capn_ptr
2013-09-13 10:02:03 -04:00
James McKaskill
7b0bfece26
add version checks
2013-09-12 23:28:36 -04:00
James McKaskill
081c783bbf
don't autoresolve pointers
2013-09-12 17:26:51 -04:00
James McKaskill
bba43e67ea
Add test schema
2013-09-12 14:55:42 -04:00
James McKaskill
9682fb2611
list out constants in declaration order
2013-09-12 14:48:11 -04:00
James McKaskill
ca1d07f657
Round trip the schema through the compiler
2013-09-12 14:37:15 -04:00