The header section in mlm_client_custom.xml needs to escape the xml char
'<' and '>' as they would otherwise be read by gsl. When using zproto
client with zproject it will generate an API otherwise it will generate a C
header file. Thus no XML is inserted into the header file. This mix of old
(before zproject) and new generation is indeed confusing, so instead of
defining custom API in mlm_client_custom.xml we could place it into
mlm_client_custom.api. Thereby keeping mlm_client_custom.xml free of any
XML strings. The custom API functionality would of course only work if
using it with zproject.

2016-04-18 21:34 GMT+02:00 Matjaž Ostroveršnik <
matjaz.ostrovers...@gmail.com>:

> Hi Veterans,
>
> The bug is clearer now. The generator includes xml tags into c header
> (mlm_client.h) instead of generated c function prototypes.
>
> see /usr/local/bin/zproto_client_c.gsl line 528
>
> .for class.custom
> .   for header
> $(header.:)     <--- problematic line
> .   endfor
> .endfor
>
> The bug manifests itself only if the custom code is included
> (mlm_client_custom.xml). When you check the file it becomes fishy.
> The header tag contains &lt; and &gt; markers instead of < and >. It seems
> somebody wanted to include the xml definition and one step (as string)
>
> What the "custom" xml definition should contain in header and source tag?
> (C code or xml definitions?)
>
> I started to fix with that, but I do not want to reinvent the wheel. I am
> sure that there is already a gsl function which from method definition
> outputs C function prototype. Am I wrong?
>
> Best regards
>
> Matjaž
>
>
> On 14.4.2016 17:05, Matjaž Ostroveršnik wrote:
>
> In the mean time I found out that it is not necessary to change anything.
> Just do gsl on mlm_client.xml (started from src folder as required by
> Pieter).
> I am working on ostri/malamute, but it should be in sync with
> zeromq/malamute.
>
> On 14.4.2016 16:33, Osiris Pedroso wrote:
>
> Hi Matjaz,
>
> Can you provide a repository with the modified file checked in?
>
> I would like to try it as well.
>
> Thanks,
> Osiris
>
> On Thu, Apr 14, 2016 at 9:12 AM Matjaž Ostroveršnik <
> matjaz.ostrovers...@gmail.com> wrote:
>
>> Hi,
>>
>> I tried to add a new method to the mlm_client.xml and then regenerate all
>> dependant files.
>> Generation of include/mlm_client.h is unsuccesful (i.e. one gets xml
>> garbage within the c header sources)
>>
>> Am I doing something wrong or this is a bug?
>> Guys how do you regenerate when you change some xml file (ok I know for
>> project.xml)
>> I think it is something wrong with an inclusion of custom file
>>     <custom filename = "mlm_client_custom.xml" language = "C" />
>> It seems that gsl is including header tag instead of source tag.
>>
>> How to reproduce:
>> *git reset --hard*
>> HEAD is now at c097dcf Merge pull request #164 from
>> opedroso/WIN_CRLF_REGEN
>> *git status*
>> On branch master
>> Your branch is up-to-date with 'origin/master'.
>> nothing to commit, working directory clean
>> *cd src*
>> *gsl mlm_client.xml                                     *
>> GSL/4.1c Copyright (c) 1996-2016 iMatix Corporation
>> gsl/4 I: Processing mlm_client.xml...
>> *cd ..*
>> *make*
>> Making all in doc
>> make[1]: Entering directory '/home/ostri/zstuff/malamute/doc'
>> make[1]: Nothing to be done for 'all'.
>> make[1]: Leaving directory '/home/ostri/zstuff/malamute/doc'
>> make[1]: Entering directory '/home/ostri/zstuff/malamute'
>>   CC       src/src_libmlm_la-mlm_msg.lo
>> In file included from src/../include/mlm_library.h:66:0,
>>                  from src/../include/malamute.h:17,
>>                  from src/mlm_classes.h:24,
>>                  from src/mlm_msg.c:20:
>> src/../include/mlm_client.h:157:5: error: expected identifier or ‘(’
>> before ‘<’ token
>>      <method name = "sendx">
>>      ^
>> src/../include/mlm_client.h:159:61: error: identifier "or" is a special
>> operator name in C++ [-Werror=c++-compat]
>>          Returns 0 if OK, -1 if failed due to lack of memory or other
>> error.
>>                                                              ^
>> src/../include/mlm_client.h:167:61: error: identifier "or" is a special
>> operator name in C++ [-Werror=c++-compat]
>>          Returns 0 if OK, -1 if failed due to lack of memory or other
>> error.
>>                                                              ^
>> src/../include/mlm_client.h:176:61: error: identifier "or" is a special
>> operator name in C++ [-Werror=c++-compat]
>>          Returns 0 if OK, -1 if failed due to lack of memory or other
>> error.
>>                                                              ^
>> src/../include/mlm_client.h:184:27: error: identifier "and" is a special
>> operator name in C++ [-Werror=c++-compat]
>>          Receive a subject and string content from the server. The
>> content may be
>>                            ^
>> src/../include/mlm_client.h:185:11: error: identifier "or" is a special
>> operator name in C++ [-Werror=c++-compat]
>>          1 or more string frames. This method is orthogonal to the sendx
>> methods.
>>            ^
>> src/../include/mlm_client.h:186:58: error: identifier "not" is a special
>> operator name in C++ [-Werror=c++-compat]
>>          End the string arguments with NULL. If there are not enough
>> frames in
>>                                                           ^
>> src/../include/mlm_client.h:188:38: error: identifier "or" is a special
>> operator name in C++ [-Werror=c++-compat]
>>          of string contents received, or -1 in case of error. Free the
>> returned
>>                                       ^
>> src/../include/mlm_client.h:189:17: error: identifier "and" is a special
>> operator name in C++ [-Werror=c++-compat]
>>          subject and content strings when finished with them. To get the
>> type of
>>                  ^
>> cc1: all warnings being treated as errors
>> Makefile:1027: recipe for target 'src/src_libmlm_la-mlm_msg.lo' failed
>> make[1]: *** [src/src_libmlm_la-mlm_msg.lo] Error 1
>> make[1]: Leaving directory '/home/ostri/zstuff/malamute'
>> Makefile:1260: recipe for target 'all-recursive' failed
>> make: *** [all-recursive] Error 1
>>
>> *gsl -v*
>> GSL/4.1c
>> Built from http://github.com/imatix/gsl.git master
>> Copyright (c) 1996-2016 iMatix Corporation
>> Compiler: gcc -c -O2 -D_REENTRANT -D_GNU_SOURCE -Wall -Wno-unused
>> -fno-strict-aliasing -DBASE_THREADSAFE -I. gsl.c
>>
>>
>>
>> Best regards
>>
>> Matjaž
>>
>> _______________________________________________
>> zeromq-dev mailing list
>> zeromq-dev@lists.zeromq.org
>> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>>
>
>
> _______________________________________________
> zeromq-dev mailing 
> listzeromq-dev@lists.zeromq.orghttp://lists.zeromq.org/mailman/listinfo/zeromq-dev
>
>
>
>
> _______________________________________________
> zeromq-dev mailing list
> zeromq-dev@lists.zeromq.org
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>
>
_______________________________________________
zeromq-dev mailing list
zeromq-dev@lists.zeromq.org
http://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to