Thanks for the quick responses and clarifications!
My actual schema file is compiled in C++ and Java. As such, it has the
following preamble:
using Cxx = import "/capnp/c++.capnp";
$Cxx.namespace("MyNamespace");
using Java = import "/capnp/java.capnp";
$Java.package("com.myorg");
$Java.outerClassname("MyOuterClass");
When I try to run capnp compile, I get the following:
error: Import failed: /capnp/java.capnp
I have tried some of the workarounds in this thread but had no luck:
https://github.com/capnproto/capnproto-java/issues/17
If I comment out the Java bits and just compile in C++ (which works for
me), will this have any effect on the unique IDs for the structs in my
schema file?
Thanks!
On Wednesday, November 25, 2020 at 3:15:57 PM UTC-5 [email protected]
wrote:
> Erin is correct.
>
> For #2, the command-line syntax to have the compiler echo back capnp
> format (with all type IDs defined explicitly) is:
>
> capnp compile -ocapnp foo.capnp
>
> This of course requires that `capnp` and the generator plugin
> `capnpc-capnp` are in your $PATH, which they should be after installing
> Cap'n Proto globally. If you haven't installed it globally, you can do:
>
> path/to/capnp compile -opath/to/capnpc-capnp foo.capnp
>
> In any case, the output will go to the terminal (no files are generated).
>
> -Kenton
>
> On Wed, Nov 25, 2020 at 1:52 PM Erin Shepherd <[email protected]> wrote:
>
>> 1. This depends. The only places that the IDs get used "behind the
>> scenes" are (a) those on interfaces are used in RPC calls to identify the
>> interface and (b) when encoding schema annotations
>>
>> On the other hand, someone might be explicitly reading the ID from the
>> schema file or the constant from the generated code
>>
>> 2. capnpc can be asked to generate capnp format output. In that case,
>> it'll emit a copy of the schema with comments stripped and all
>> automatically generated IDs inserted. You can grab the ID (and syntax) from
>> there
>>
>> - Erin
>>
>> On Wed, 25 Nov 2020, at 20:39, Matt Stern wrote:
>>
>> Hi all,
>>
>> Suppose I have a simple schema file:
>>
>> 0xabbeabbeabbeabbe;
>>
>> struct Foo {
>> val @0 : UInt32;
>> };
>> struct Bar {
>> val @1 : UInt32;
>> };
>>
>> I would like to move Bar into a separate schema file. If I understand the
>> docs <https://capnproto.org/language.html#unique-ids> correctly, then
>> this will change Bar's unique ID.
>>
>> I have two questions about that:
>>
>> 1. Will changing Bar's unique ID cause backwards incompatibility with
>> old messages that are serialized with the old ID?
>> 2. If so, what can I do to prevent this? I would like my change to
>> have no side-effects (a pure no-op).
>>
>> Thanks!
>>
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Cap'n Proto" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/capnproto/aa247efb-ca69-40fa-97a7-415792fd0c1dn%40googlegroups.com
>>
>> <https://groups.google.com/d/msgid/capnproto/aa247efb-ca69-40fa-97a7-415792fd0c1dn%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Cap'n Proto" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>>
> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/capnproto/a98c4968-c814-4c16-a7ed-a299b3d10688%40www.fastmail.com
>>
>> <https://groups.google.com/d/msgid/capnproto/a98c4968-c814-4c16-a7ed-a299b3d10688%40www.fastmail.com?utm_medium=email&utm_source=footer>
>> .
>>
>
--
You received this message because you are subscribed to the Google Groups
"Cap'n Proto" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/capnproto/40e32c13-631f-4f31-85e1-89eb9ef3b49cn%40googlegroups.com.