digitalmars.D - nginx module bindings
- Shammah Chancellor (7/7) Apr 17 2015 Hello DForum!
- Meta (4/13) Apr 17 2015 Have you tried dstep?
- Shammah Chancellor (4/19) Apr 17 2015 I did try to compile it, but it started pulling in tango 1.0 and
- ketmar (4/10) Apr 17 2015 it will not compile with 2.067, only with 2.066.
- Shammah Chancellor (4/16) Apr 18 2015 Yeah, I am at an impasse. It either segfaults or spits out lots
- Jacob Carlborg (4/7) Apr 18 2015 Which headers are it complaining about?
- Shammah Chancellor (26/36) Apr 18 2015 File(10B2B20F0, "")warning: ../../src/event: 'linker' input
- Jacob Carlborg (21/29) Apr 18 2015 These three are Clang built-in headers. They're shipped with Clang and
- Shammah Chancellor (5/41) Apr 18 2015 I included the -I flag for the location of those included headers. It
- Jacob Carlborg (10/13) Apr 19 2015 Is there a build script you can inspect to see if it does anything magic...
- Jacob Carlborg (9/11) Apr 18 2015 It's up to date and is working. It builds with DMD 2.066.1 and the test
- w0rp (17/26) Apr 18 2015 You might have to create the bindings yourself, if you do, please
Hello DForum! I wanted to attempt to write an nginx module in Dlang. However, the first step of generating some bindings is proving to be a pain on linux. Htod is windows only, and the other projects either generate incomprehensible modules, or are way out of date (it seems). Any pointers, or pre-existing bindings for nginx modules would be appreciated. -Shammah
Apr 17 2015
On Saturday, 18 April 2015 at 02:03:40 UTC, Shammah Chancellor wrote:Hello DForum! I wanted to attempt to write an nginx module in Dlang. However, the first step of generating some bindings is proving to be a pain on linux. Htod is windows only, and the other projects either generate incomprehensible modules, or are way out of date (it seems). Any pointers, or pre-existing bindings for nginx modules would be appreciated. -ShammahHave you tried dstep? https://github.com/jacob-carlborg/dstep
Apr 17 2015
On 2015-04-18 02:24:52 +0000, Meta said:On Saturday, 18 April 2015 at 02:03:40 UTC, Shammah Chancellor wrote:I did try to compile it, but it started pulling in tango 1.0 and whatnot -- I figured it was not up to date. Is this wrong? -ShammahHello DForum! I wanted to attempt to write an nginx module in Dlang. However, the first step of generating some bindings is proving to be a pain on linux. Htod is windows only, and the other projects either generate incomprehensible modules, or are way out of date (it seems). Any pointers, or pre-existing bindings for nginx modules would be appreciated. -ShammahHave you tried dstep? https://github.com/jacob-carlborg/dstep
Apr 17 2015
On Fri, 17 Apr 2015 22:50:28 -0700, Shammah Chancellor wrote:it will not compile with 2.067, only with 2.066. dunno if it really works though, as built dstep segfaults when i'm trying=20 to convert anything. the only thing i can see is CLI help.=Have you tried dstep? =20 https://github.com/jacob-carlborg/dstep=20 I did try to compile it, but it started pulling in tango 1.0 and whatnot -- I figured it was not up to date. Is this wrong?
Apr 17 2015
On Saturday, 18 April 2015 at 06:34:34 UTC, ketmar wrote:On Fri, 17 Apr 2015 22:50:28 -0700, Shammah Chancellor wrote:Yeah, I am at an impasse. It either segfaults or spits out lots of errors about not being able to find headers despite adding all the -I paths.it will not compile with 2.067, only with 2.066. dunno if it really works though, as built dstep segfaults when i'm trying to convert anything. the only thing i can see is CLI help.Have you tried dstep? https://github.com/jacob-carlborg/dstepI did try to compile it, but it started pulling in tango 1.0 and whatnot -- I figured it was not up to date. Is this wrong?
Apr 18 2015
On 2015-04-18 09:33, Shammah Chancellor wrote:Yeah, I am at an impasse. It either segfaults or spits out lots of errors about not being able to find headers despite adding all the -I paths.Which headers are it complaining about? -- /Jacob Carlborg
Apr 18 2015
On Saturday, 18 April 2015 at 08:17:15 UTC, Jacob Carlborg wrote:On 2015-04-18 09:33, Shammah Chancellor wrote:Here is the command I was running.Yeah, I am at an impasse. It either segfaults or spits out lots of errors about not being able to find headers despite adding all the -I paths.Which headers are it complaining about?File(10B2B20F0, "")warning: ../../src/event: 'linker' input unused [-Wunused-command-line-argument] File(10B2B20F0, "")warning: ../../src/core: 'linker' input unused [-Wunused-command-line-argument] File(10B2B20F0, "")/usr/include/module.map:1:25: warning: unknown attribute 'extern_c' [-Wignored-attributes] File(10B2B20F0, "")/usr/include/module.map:36:14: error: header 'float.h' not found File(10B2B20F0, "")/usr/include/module.map:81:14: error: header 'stdarg.h' not found File(10B2B20F0, "")/usr/include/module.map:113:14: error: header 'tgmath.h' not found File(10B2B20F0, "")/usr/include/module.map:1561:21: warning: unknown attribute 'extern_c' [-Wignored-attributes] File(10B2B20F0, "")/usr/include/module.map:1577:26: warning: unknown attribute 'extern_c' [-Wignored-attributes] File(10B2B20F0, "")/usr/include/module.map:1602:23: warning: unknown attribute 'extern_c' [-Wignored-attributes] File(10B2B20F0, "")/usr/include/module.map:1635:23: warning: unknown attribute 'extern_c' [-Wignored-attributes] File(10B2B20F0, "")/usr/include/module.map:1662:22: warning: unknown attribute 'extern_c' [-Wignored-attributes] File(10B2B20F0, "")./ngx_config.h:12:10: fatal error: 'ngx_auto_headers.h' file not founddstep -I~/nginx-build/nginx-1.6.2/objs/ngx_auto_headers.h -I../../src/os/unix/ -I ../../src/core -I ../../src/event -I~/d/llvm/tools/clang/lib/Headers/ ngx_conf_file.h
Apr 18 2015
On 2015-04-18 17:25, Shammah Chancellor wrote:File(10B2B20F0, "")/usr/include/module.map:36:14: error: header 'float.h' not found File(10B2B20F0, "")/usr/include/module.map:81:14: error: header 'stdarg.h' not found File(10B2B20F0, "")/usr/include/module.map:113:14: error: header 'tgmath.h' not foundThese three are Clang built-in headers. They're shipped with Clang and need to be place in the standard include paths or explicitly added using the -I flag. See the information about libclang [1]. This is fixed in master, the files are shipped with DStep now. Although, I may not have included all, I have mostly added them as I need.File(10B2B20F0, "")./ngx_config.h:12:10: fatal error: 'ngx_auto_headers.h' file not foundI'm not sure about this but it could be an related to how these headers are used. DStep is built to generate bindings from one file at a time. That might not always be compatible with the build system a library uses. For example, some headers could be generated in a build step. I've seen some headers using types without including a single header, that still works since another header will include this one plus the other headers that are needed. Please read the limitations at the bottom of the documentation [2] to see if any of those apply in your case. BTW, I updated the code so it can be built with DMD 2.067.0. I'm just waiting for the Travis build to pass before merging it to master. [1] https://github.com/jacob-carlborg/dstep#libclang [2] https://github.com/jacob-carlborg/dstep#limitationsknown-issues -- /Jacob Carlborg
Apr 18 2015
On 2015-04-18 19:15:09 +0000, Jacob Carlborg said:On 2015-04-18 17:25, Shammah Chancellor wrote:I included the -I flag for the location of those included headers. It seems as if maybe it is not including anything. With that said, I am using clan release_34, because I cannot build 32 on MacOS X. -ShammahFile(10B2B20F0, "")/usr/include/module.map:36:14: error: header 'float.h' not found File(10B2B20F0, "")/usr/include/module.map:81:14: error: header 'stdarg.h' not found File(10B2B20F0, "")/usr/include/module.map:113:14: error: header 'tgmath.h' not foundThese three are Clang built-in headers. They're shipped with Clang and need to be place in the standard include paths or explicitly added using the -I flag. See the information about libclang [1]. This is fixed in master, the files are shipped with DStep now. Although, I may not have included all, I have mostly added them as I need.File(10B2B20F0, "")./ngx_config.h:12:10: fatal error: 'ngx_auto_headers.h' file not foundI'm not sure about this but it could be an related to how these headers are used. DStep is built to generate bindings from one file at a time. That might not always be compatible with the build system a library uses. For example, some headers could be generated in a build step. I've seen some headers using types without including a single header, that still works since another header will include this one plus the other headers that are needed. Please read the limitations at the bottom of the documentation [2] to see if any of those apply in your case. BTW, I updated the code so it can be built with DMD 2.067.0. I'm just waiting for the Travis build to pass before merging it to master. [1] https://github.com/jacob-carlborg/dstep#libclang [2] https://github.com/jacob-carlborg/dstep#limitationsknown-issues
Apr 18 2015
On 2015-04-19 01:03, Shammah Chancellor wrote:I included the -I flag for the location of those included headers. It seems as if maybe it is not including anything. With that said, I am using clan release_34, because I cannot build 32 on MacOS X.Is there a build script you can inspect to see if it does anything magic? These [1] are the versions that are tested by Travis on OS X. You can always download pre-compiled versions of libclang here [2]. libclang can be placed in any of the standard search paths or in the same directory as the binary. [1] https://github.com/jacob-carlborg/dstep/blob/master/test.d#L321-L327 [2] http://llvm.org/releases/index.html -- /Jacob Carlborg
Apr 19 2015
On 2015-04-18 07:50, Shammah Chancellor wrote:I did try to compile it, but it started pulling in tango 1.0 and whatnot -- I figured it was not up to date. Is this wrong?It's up to date and is working. It builds with DMD 2.066.1 and the test suite passes. Pre-compiled binaries are available here [1] for Linux, OS X and FreeBSD. I noticed the binaries are a bit outdated but it shouldn't be that bad. Please report any issues you encounter to [2]. [1] https://github.com/jacob-carlborg/dstep/releases/latest [2] https://github.com/jacob-carlborg/dstep/issues -- /Jacob Carlborg
Apr 18 2015
On Saturday, 18 April 2015 at 02:03:40 UTC, Shammah Chancellor wrote:Hello DForum! I wanted to attempt to write an nginx module in Dlang. However, the first step of generating some bindings is proving to be a pain on linux. Htod is windows only, and the other projects either generate incomprehensible modules, or are way out of date (it seems). Any pointers, or pre-existing bindings for nginx modules would be appreciated. -ShammahYou might have to create the bindings yourself, if you do, please put them on GitHub and in a DUB package so others can benefit from them. I have been creating bindings for the Pebble SDK recently, and during my time working on that, I have come up with a process for creating the C bindings. 1. Apply dstep to the headers. Remove any parts from the header files which it won't accept. 2. Open the .d files and the .h files, and compare the two. 3. Implement whatever dstep missed out. dstep doesn't get you 100% of the way there, but it's a lot better than starting from nothing. I also have spent hours and hours working on the Pebble SDK headers recently, but that's only because I have been obsessed with translating all of the documentation to DDoc comments.
Apr 18 2015