Thread overview | |||||||
---|---|---|---|---|---|---|---|
|
April 15, 2014 sqlite-statement CTFE Generation (UniformAccess) / Benchmark | ||||
---|---|---|---|---|
| ||||
Lately I had to write some sqlite3 code in D. And I really hated writing it. So I wrote me some CTFE generator for it. It uses all the fun UDA, CTFE string mixin template magic, we all love. The generated code is as fast as the hand written one. I wrote some of it down. http://rburners.tumblr.com/ The article also holds a link to the source/benchmark. Maybe this is to some interest to other people as well. Best Regards Robert p.s. PRs and corrections welcome |
April 15, 2014 Re: sqlite-statement CTFE Generation (UniformAccess) / Benchmark | ||||
---|---|---|---|---|
| ||||
Posted in reply to Robert Schadek | On Tuesday, 15 April 2014 at 15:57:13 UTC, Robert Schadek wrote:
> Lately I had to write some sqlite3 code in D. And I really hated writing
> it. So I wrote me some CTFE generator for it. It uses all the fun UDA,
> CTFE string mixin template magic, we all love. The generated code is as
> fast as the hand written one. I wrote some of it down.
> http://rburners.tumblr.com/ The article also holds a link to the
> source/benchmark. Maybe this is to some interest to other people as well.
>
> Best Regards
> Robert
>
> p.s. PRs and corrections welcome
Some quick observations:
1) toStringz(insertStmt) -> as inserStmt is actually a string literal, no need to use toStringz, literals are alway null-terminated.
2) in block immediately after `throw` has extra level of indentation
3) excessive sqlite3_finalize(stmt), one from first scope(exit) should have been enough
Will read actual article a bit later :P
|
April 15, 2014 Re: sqlite-statement CTFE Generation (UniformAccess) / Benchmark | ||||
---|---|---|---|---|
| ||||
Posted in reply to Dicebot | On 04/15/2014 07:05 PM, Dicebot wrote: > Some quick observations: > > 1) toStringz(insertStmt) -> as inserStmt is actually a string literal, > no need to use toStringz, literals are alway null-terminated. did not know that. Thanks > > 2) in block immediately after `throw` has extra level of indentation will check > > 3) excessive sqlite3_finalize(stmt), one from first scope(exit) should > have been enough will check > > Will read actual article a bit later :P |
April 15, 2014 Re: sqlite-statement CTFE Generation (UniformAccess) / Benchmark | ||||
---|---|---|---|---|
| ||||
Posted in reply to Robert Schadek | On 04/15/2014 08:51 AM, Robert Schadek wrote:
> Lately I had to write some sqlite3 code in D. And I really hated writing
> it. So I wrote me some CTFE generator for it. It uses all the fun UDA,
> CTFE string mixin template magic, we all love. The generated code is as
> fast as the hand written one. I wrote some of it down.
> http://rburners.tumblr.com/ The article also holds a link to the
> source/benchmark. Maybe this is to some interest to other people as well.
>
> Best Regards
> Robert
>
> p.s. PRs and corrections welcome
>
Here is my non-technical input. :) Typos:
snipped -> snippet (Also, there shouldn't be any comma in that sentence.)
simular -> similar
Than it -> Then it
by a @ -> by an @ (not sure about that one)
an decleration -> a declaration
associcated -> associate
all it UDAs -> all its UDAs
table creating -> table create
iteratable -> iterable
not to difficult as well -> not too difficult either
I wound -> I won't
C++ Version -> C++ version
I test dmd -> I tested dmd
datebase -> database
feel to create -> feel free to create
request to for -> request for
it seams, that most time -> it seems that most of the time
spend -> spent
ldc, because -> ldc because
joins seam -> joins seem
Become SQL -> Make SQL
Ali
|
April 15, 2014 Re: sqlite-statement CTFE Generation (UniformAccess) / Benchmark | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ali Çehreli |
> Here is my non-technical input. :) Typos:
>
> snipped -> snippet (Also, there shouldn't be any comma in that sentence.)
>
> simular -> similar
>
> Than it -> Then it
>
> by a @ -> by an @ (not sure about that one)
>
> an decleration -> a declaration
>
> associcated -> associate
>
> all it UDAs -> all its UDAs
>
> table creating -> table create
>
> iteratable -> iterable
>
> not to difficult as well -> not too difficult either
>
> I wound -> I won't
>
> C++ Version -> C++ version
>
> I test dmd -> I tested dmd
>
> datebase -> database
>
> feel to create -> feel free to create
>
> request to for -> request for
>
> it seams, that most time -> it seems that most of the time
>
> spend -> spent
>
> ldc, because -> ldc because
>
> joins seam -> joins seem
>
> Become SQL -> Make SQL
>
> Ali
>
thank you
|
Copyright © 1999-2021 by the D Language Foundation