www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Writing Postgresql extension in D

reply Ranjan <Company.ranjan gmail.com> writes:
This is my first time on the Dlang forum. I like the language but 
my usecase is a bit different.

I want to write Postgresql extension in D. Currently extension 
can be written in C or C linked languages. Has anyone done this 
or can point me to some code.

Thanks
Nov 15 2018
parent reply Andrea Fontana <nospam example.com> writes:
On Thursday, 15 November 2018 at 13:05:59 UTC, Ranjan wrote:
 This is my first time on the Dlang forum. I like the language 
 but my usecase is a bit different.

 I want to write Postgresql extension in D. Currently extension 
 can be written in C or C linked languages. Has anyone done this 
 or can point me to some code.

 Thanks
Did you read this: https://dlang.org/spec/interfaceToC.html ? Andrea
Nov 15 2018
parent reply Ranjan <Company.ranjan gmail.com> writes:
On Thursday, 15 November 2018 at 17:03:55 UTC, Andrea Fontana 
wrote:
 On Thursday, 15 November 2018 at 13:05:59 UTC, Ranjan wrote:
 This is my first time on the Dlang forum. I like the language 
 but my usecase is a bit different.

 I want to write Postgresql extension in D. Currently extension 
 can be written in C or C linked languages. Has anyone done 
 this or can point me to some code.

 Thanks
Did you read this: https://dlang.org/spec/interfaceToC.html ? Andrea
Yes, but it's not useful, in Postgesql extension C code needs to call D, without GarbageCollection. I am able to do this in RustLang but I am not sure how to in D, as it has a GC. Looking for examples from the community. Thanks
Nov 15 2018
next sibling parent rikki cattermole <rikki cattermole.co.nz> writes:
On 16/11/2018 3:18 PM, Ranjan wrote:
 On Thursday, 15 November 2018 at 17:03:55 UTC, Andrea Fontana wrote:
 On Thursday, 15 November 2018 at 13:05:59 UTC, Ranjan wrote:
 This is my first time on the Dlang forum. I like the language but my 
 usecase is a bit different.

 I want to write Postgresql extension in D. Currently extension can be 
 written in C or C linked languages. Has anyone done this or can point 
 me to some code.

 Thanks
Did you read this: https://dlang.org/spec/interfaceToC.html ? Andrea
Yes, but it's not useful, in Postgesql extension C code needs to call D, without GarbageCollection. I am able to do this in RustLang but I am not sure how to in D, as it has a GC. Looking for examples from the community. Thanks
There isn't anything special you need to learn. As long as you don't mutate anything you receive via the GC or send any GC owned memory outside of D, you'll have an easy time of it.
Nov 15 2018
prev sibling next sibling parent Radu <void null.pt> writes:
On Friday, 16 November 2018 at 02:18:11 UTC, Ranjan wrote:
 On Thursday, 15 November 2018 at 17:03:55 UTC, Andrea Fontana 
 wrote:
 On Thursday, 15 November 2018 at 13:05:59 UTC, Ranjan wrote:
 This is my first time on the Dlang forum. I like the language 
 but my usecase is a bit different.

 I want to write Postgresql extension in D. Currently 
 extension can be written in C or C linked languages. Has 
 anyone done this or can point me to some code.

 Thanks
Did you read this: https://dlang.org/spec/interfaceToC.html ? Andrea
Yes, but it's not useful, in Postgesql extension C code needs to call D, without GarbageCollection. I am able to do this in RustLang but I am not sure how to in D, as it has a GC. Looking for examples from the community. Thanks
There is -betterC [1] compiler flag that allows one to code without the D runtime and create programs that depend only on the C runtime, so there is no GC - and no GC related functionality also. You probably want to try this route for creating the extension, as it will be simpler if you know C and the Postgres API. 1. https://dlang.org/spec/betterc.html
Nov 15 2018
prev sibling parent Bienlein <jeti789 web.de> writes:
On Friday, 16 November 2018 at 02:18:11 UTC, Ranjan wrote:
 On Thursday, 15 November 2018 at 17:03:55 UTC, Andrea Fontana 
 wrote:
 On Thursday, 15 November 2018 at 13:05:59 UTC, Ranjan wrote:
 This is my first time on the Dlang forum. I like the language 
 but my usecase is a bit different.

 I want to write Postgresql extension in D. Currently 
 extension can be written in C or C linked languages. Has 
 anyone done this or can point me to some code.

 Thanks
Did you read this: https://dlang.org/spec/interfaceToC.html ? Andrea
Yes, but it's not useful, in Postgesql extension C code needs to call D, without GarbageCollection. I am able to do this in RustLang but I am not sure how to in D, as it has a GC. Looking for examples from the community. Thanks
I'm not an exert with C nor D. So I might misuderstand the issue... You can write a skeleton plugin for postgres in C that at init time starts the D runtime. From then on your C skelton plugin can call some function in D.
Nov 16 2018