Re: D Embedded Database v0.1 Released

2016-05-31 Thread Piotrek via Digitalmars-d-announce

On Tuesday, 31 May 2016 at 22:08:00 UTC, Stefan Koch wrote:
Nice effort. How would you like collaboration with the SQLite-D 
project.


Thanks. Correct me if I'm wrong but SQLite-D is a compile time 
SQLite3 file reader. If so, I can predict not many common parts. 
Maybe the one would be a data deserialization component however I 
didn't check how it's done in SQLite-D.



With has similar goals albeit file format compatible to SQLite.


When I was selecting possible file format I was thinking about 
SQLite one. I am actually a fan of the SQLite project. However 
there are some shortcomings present in current SQlite3 format:


- SQlite3 is not really a one file storage (i.e. journal file)
- it gets fragmented very quickly (check out design goals for 
SQLite4)
- it's overcomplicated and non deterministic with respect to real 
time software
- it has unnecessary overhead because every column is actually a 
variant type


Add to this the main goal of replacing SQL with D 
ranges+algorithms. In result it turned out it would be great to 
have an alternate format.


BTW. Would someone be so kind and post the above paragraph on 
Reddit under a comment about Sqlite db. I'm not registered there.


Piotrek


Re: Reddit announcements

2016-05-31 Thread Jason White via Digitalmars-d-announce

On Tuesday, 31 May 2016 at 18:57:29 UTC, o-genki-desu-ka wrote:

Many nice announcements here last week. I put some on reddit.


Thank you for doing this! I agree previous posts though, that 
this is too many at once. Also, I think posting a link directly 
to the project instead of the forum post would have been better.


Re: Button: A fast, correct, and elegantly simple build system.

2016-05-31 Thread Jason White via Digitalmars-d-announce

On Tuesday, 31 May 2016 at 14:28:02 UTC, Dicebot wrote:
Can it be built from just plain dmd/phobos install available? 
One of major concernc behind discussion that resulted in Atila 
reggae effort is that propagating additional third-party 
dependencies is very damaging for build systems. Right now 
Button seems to fail rather hard on this front (i.e. Lua for 
build description + uncertain amount of build dependencies for 
Button itself).


Building it only requires dmd+phobos+dub.

Why is having dependencies so damaging for build systems? Does it 
really matter with a package manager like Dub? If there is 
another thread that answers these questions, please point me to 
it.


The two dependencies Button itself has could easily be moved into 
the same project. I kept them separate because they can be useful 
for others. These are the command-line parser and IO stream 
libraries.


As for the dependency on Lua, it is statically linked into a 
separate executable (called "button-lua") and building it is 
dead-simple (just run make). Using the Lua build description 
generator is actually optional, it's just that writing build 
descriptions in JSON would be horribly tedious.


Re: Button: A fast, correct, and elegantly simple build system.

2016-05-31 Thread Jason White via Digitalmars-d-announce

On Tuesday, 31 May 2016 at 10:15:14 UTC, Atila Neves wrote:

On Monday, 30 May 2016 at 19:16:50 UTC, Jason White wrote:
I am pleased to finally announce the build system I've been 
slowly working on for over a year in my spare time:


snip
In fact, there is some experimental support for automatic 
conversion of Makefiles to Button's build description format 
using a fork of GNU Make itself: 
https://github.com/jasonwhite/button-make


I'm going to take a look at that!


I think the Makefile converter is probably the coolest thing 
about this build system. I don't know of any other build system 
that has done this. The only problem is that it doesn't do well 
with Makefiles that invoke make recursively. I tried compiling 
Git using it, but Git does some funky stuff with recursive make 
like grepping the output of the sub-make.


- Can automatically build when an input file is modified 
(using inotify).


Nope, I never found that interesting. Possibly because I keep 
saving after every edit in OCD style and I really don't want 
things running automatically.


I constantly save like a madman too. If an incremental build is 
sufficiently fast, it doesn't really matter. You can also specify 
a delay so it accumulates changes and then after X milliseconds 
it runs a build.


- Recursive: It can build the build description as part of the 
build.


I'm not sure what that means. reggae copies CMake here and runs 
itself when the build description changes, if that's what you 
mean.


It means that Button can run Button as a build task (and it does 
it correctly). A child Button process reports its dependencies to 
the parent Button process via a pipe. This is the same mechanism 
that detects dependencies for ordinary tasks. Thus, there is no 
danger of doing incorrect incremental builds when recursively 
running Button like there is with Make.



- Lua is the primary build description language.


In reggae you can pick from D, Python, Ruby, Javascript and Lua.


That's pretty cool. It is possible for Button to do the same, but 
I don't really want to support that many languages. In fact, the 
Make and Lua build descriptions both work the same exact way - 
they output a JSON build description for Button to use. So long 
as someone can write a program to do this, they can write their 
build description in it.


Re: Button: A fast, correct, and elegantly simple build system.

2016-05-31 Thread Jason White via Digitalmars-d-announce

On Tuesday, 31 May 2016 at 03:40:32 UTC, rikki cattermole wrote:

Are you on Freenode (no nick to name right now)?
I would like to talk to you about a few ideas relating to lua 
and D.


No, I'm not on IRC. I'll see if I can find the time to hop on 
this weekend.


Re: Reddit announcements

2016-05-31 Thread Andrei Alexandrescu via Digitalmars-d-announce

On 5/31/16 2:57 PM, o-genki-desu-ka wrote:

Many nice announcements here last week. I put some on reddit.

https://www.reddit.com/r/programming/comments/4lwufi/d_embedded_database_v01_released/


https://www.reddit.com/r/programming/comments/4lwubv/c_to_d_converter_based_on_clang/


https://www.reddit.com/r/programming/comments/4lwu5p/coedit_2_ide_update_6_released/


https://www.reddit.com/r/programming/comments/4lwtxw/compiletime_sqlite_for_d_beta_release/


https://www.reddit.com/r/programming/comments/4lwtr0/button_a_fast_correct_and_elegantly_simple_build/


https://www.reddit.com/r/programming/comments/4lwtn9/first_release_of_powernex_an_os_kernel_written_in/


Very nice. Response has been positive. Thank you very much! -- Andrei


Re: Reddit announcements

2016-05-31 Thread Seb via Digitalmars-d-announce

On Tuesday, 31 May 2016 at 20:47:39 UTC, cym13 wrote:

On Tuesday, 31 May 2016 at 19:33:46 UTC, John Colvin wrote:

On Tuesday, 31 May 2016 at 18:57:29 UTC, o-genki-desu-ka wrote:

Many nice announcements here last week. I put some on reddit.

https://www.reddit.com/r/programming/comments/4lwufi/d_embedded_database_v01_released/

https://www.reddit.com/r/programming/comments/4lwubv/c_to_d_converter_based_on_clang/

https://www.reddit.com/r/programming/comments/4lwu5p/coedit_2_ide_update_6_released/

https://www.reddit.com/r/programming/comments/4lwtxw/compiletime_sqlite_for_d_beta_release/

https://www.reddit.com/r/programming/comments/4lwtr0/button_a_fast_correct_and_elegantly_simple_build/

https://www.reddit.com/r/programming/comments/4lwtn9/first_release_of_powernex_an_os_kernel_written_in/


I'm a bit concerned that people will react negatively to them 
all being dumped at once.


 Same here, moreover while some annoncements are about "ready 
to show" projects (button or powernex for example) others like 
"D embedded database" clearly are too young not to annoye 
/programming/ people IMHO.


Currently there's a bot that posts everything to reddit, but it 
also somehow kills every discussion there.


https://www.reddit.com/r/d_language/

Btw if you have better ideas how to solve this problem, you might 
get involved in this discussion:


https://github.com/CyberShadow/DFeed/issues/63


Re: D Embedded Database v0.1 Released

2016-05-31 Thread Stefan Koch via Digitalmars-d-announce

On Saturday, 28 May 2016 at 14:08:18 UTC, Piotrek wrote:

Short description

A database engine for quick and easy integration into any D 
program. Full compatibility with D types and ranges.


Design Goals (none is accomplished yet)

- ACID
- No external dependencies
- Single file storage
- Multithread support
- Suitable for microcontrollers


More info for interested at:

Docs:

https://gitlab.com/PiotrekDlang/DraftLib/blob/master/docs/database/index.md


Code:
https://gitlab.com/PiotrekDlang/DraftLib/tree/master/src

The project is at its early stage of development.

Piotrek


Nice effort. How would you like collaboration with the SQLite-D 
project.

With has similar goals albeit file format compatible to SQLite.



Re: Reddit announcements

2016-05-31 Thread cym13 via Digitalmars-d-announce

On Tuesday, 31 May 2016 at 19:33:46 UTC, John Colvin wrote:

On Tuesday, 31 May 2016 at 18:57:29 UTC, o-genki-desu-ka wrote:

Many nice announcements here last week. I put some on reddit.

https://www.reddit.com/r/programming/comments/4lwufi/d_embedded_database_v01_released/

https://www.reddit.com/r/programming/comments/4lwubv/c_to_d_converter_based_on_clang/

https://www.reddit.com/r/programming/comments/4lwu5p/coedit_2_ide_update_6_released/

https://www.reddit.com/r/programming/comments/4lwtxw/compiletime_sqlite_for_d_beta_release/

https://www.reddit.com/r/programming/comments/4lwtr0/button_a_fast_correct_and_elegantly_simple_build/

https://www.reddit.com/r/programming/comments/4lwtn9/first_release_of_powernex_an_os_kernel_written_in/


I'm a bit concerned that people will react negatively to them 
all being dumped at once.


 Same here, moreover while some annoncements are about "ready to 
show" projects (button or powernex for example) others like "D 
embedded database" clearly are too young not to annoye 
/programming/ people IMHO.


Re: D Embedded Database v0.1 Released

2016-05-31 Thread Dmitri via Digitalmars-d-announce

On Saturday, 28 May 2016 at 14:08:18 UTC, Piotrek wrote:

Short description

A database engine for quick and easy integration into any D 
program. Full compatibility with D types and ranges.


Design Goals (none is accomplished yet)

- ACID
- No external dependencies
- Single file storage
- Multithread support
- Suitable for microcontrollers


Example code:

import draft.database;

import std.stdio;

void main(string[] args)
{
static struct Test
{
int a;
string s;
}

auto db = DataBase("testme.db");
auto collection = 
db.collection!Test("collection_name",true);


collection.put(Test(1,"Hello DB"));


writeln(db.collection!Test("collection_name"));
}


More info for interested at:

Docs:

https://gitlab.com/PiotrekDlang/DraftLib/blob/master/docs/database/index.md


Code:
https://gitlab.com/PiotrekDlang/DraftLib/tree/master/src

The project is at its early stage of development.

Piotrek


This might provide useful information if you're aiming for 
something like sqlite (hopefully not offtopic):


https://github.com/cznic/ql

It's an embeddable database engine in Go with goals similar to 
yours and at an advanced stage.


regards,
dmitri.


Re: Reddit announcements

2016-05-31 Thread John Colvin via Digitalmars-d-announce

On Tuesday, 31 May 2016 at 18:57:29 UTC, o-genki-desu-ka wrote:

Many nice announcements here last week. I put some on reddit.

https://www.reddit.com/r/programming/comments/4lwufi/d_embedded_database_v01_released/

https://www.reddit.com/r/programming/comments/4lwubv/c_to_d_converter_based_on_clang/

https://www.reddit.com/r/programming/comments/4lwu5p/coedit_2_ide_update_6_released/

https://www.reddit.com/r/programming/comments/4lwtxw/compiletime_sqlite_for_d_beta_release/

https://www.reddit.com/r/programming/comments/4lwtr0/button_a_fast_correct_and_elegantly_simple_build/

https://www.reddit.com/r/programming/comments/4lwtn9/first_release_of_powernex_an_os_kernel_written_in/


I'm a bit concerned that people will react negatively to them all 
being dumped at once.


Reddit announcements

2016-05-31 Thread o-genki-desu-ka via Digitalmars-d-announce

Many nice announcements here last week. I put some on reddit.

https://www.reddit.com/r/programming/comments/4lwufi/d_embedded_database_v01_released/

https://www.reddit.com/r/programming/comments/4lwubv/c_to_d_converter_based_on_clang/

https://www.reddit.com/r/programming/comments/4lwu5p/coedit_2_ide_update_6_released/

https://www.reddit.com/r/programming/comments/4lwtxw/compiletime_sqlite_for_d_beta_release/

https://www.reddit.com/r/programming/comments/4lwtr0/button_a_fast_correct_and_elegantly_simple_build/

https://www.reddit.com/r/programming/comments/4lwtn9/first_release_of_powernex_an_os_kernel_written_in/




Re: PowerNex - New release of my D kernel

2016-05-31 Thread Joakim Brännström via Digitalmars-d-announce

On Sunday, 29 May 2016 at 23:15:13 UTC, Wild wrote:

Hopefully someone will find this interesting.
All feedback is appreciated.

-Dan


Really cool. Good job :)


Re: PowerNex - New release of my D kernel

2016-05-31 Thread Vadim Lopatin via Digitalmars-d-announce

On Sunday, 29 May 2016 at 23:15:13 UTC, Wild wrote:

Hey!

I have new release of my D kernel called PowerNex.
This release should be a bit more interesting than the last one 
that I release back in November 2015.


This one contains a working memory manager, a custom TTY 
renderer, BMP image renderer, a VFS, etc.

More information is in the Github release.

https://github.com/Vild/PowerNex/releases/tag/v0.1.0-ALPHA
The Github release also have a precompiled ISO.

The project is fully open source and located at 
https://github.com/Vild/PowerNex under the MPLv2 license.


Hopefully someone will find this interesting.
All feedback is appreciated.

-Dan


Cool.


Re: PowerNex - New release of my D kernel

2016-05-31 Thread Bauss via Digitalmars-d-announce

On Sunday, 29 May 2016 at 23:15:13 UTC, Wild wrote:

Hey!

I have new release of my D kernel called PowerNex.
This release should be a bit more interesting than the last one 
that I release back in November 2015.


This one contains a working memory manager, a custom TTY 
renderer, BMP image renderer, a VFS, etc.

More information is in the Github release.

https://github.com/Vild/PowerNex/releases/tag/v0.1.0-ALPHA
The Github release also have a precompiled ISO.

The project is fully open source and located at 
https://github.com/Vild/PowerNex under the MPLv2 license.


Hopefully someone will find this interesting.
All feedback is appreciated.

-Dan


This is really amazing!


Re: PowerNex - New release of my D kernel

2016-05-31 Thread WebFreak001 via Digitalmars-d-announce

On Sunday, 29 May 2016 at 23:15:13 UTC, Wild wrote:

I have new release of my D kernel called PowerNex.


For those who want to see some screenshots of it but not download 
or test it yourself, I made some screenshots:


Directly after boot: https://i.webfreak.org/f5z9Q8
A few commands: https://i.webfreak.org/f5znY0


Re: Button: A fast, correct, and elegantly simple build system.

2016-05-31 Thread Dicebot via Digitalmars-d-announce
Can it be built from just plain dmd/phobos install available? One of
major concernc behind discussion that resulted in Atila reggae effort is
that propagating additional third-party dependencies is very damaging
for build systems. Right now Button seems to fail rather hard on this
front (i.e. Lua for build description + uncertain amount of build
dependencies for Button itself).


Re: Button: A fast, correct, and elegantly simple build system.

2016-05-31 Thread Atila Neves via Digitalmars-d-announce

On Monday, 30 May 2016 at 19:16:50 UTC, Jason White wrote:
I am pleased to finally announce the build system I've been 
slowly working on for over a year in my spare time:


snip
In fact, there is some experimental support for automatic 
conversion of Makefiles to Button's build description format 
using a fork of GNU Make itself: 
https://github.com/jasonwhite/button-make


I'm going to take a look at that!

- I am aware of Reggae, another build system written in D. 
Although, I admit I haven't looked at it very closely. I am 
curious how it compares.


Since I wrote reggae, let me compare ;)


- Correct incremental builds.


Yep.

- Automatic dependency detection (for any build task, even 
shell scripts).


Yes for C/C++/D, no for random tasks in general, but yes if you 
use the tup backend.



- Build graph visualization using GraphViz.


Use the ninja backend, get it for free.


- Language-independent. It can build anything.


So can reggae, but the built-in high-level rules only do C/C++/D 
right now.


- Can automatically build when an input file is modified (using 
inotify).


Nope, I never found that interesting. Possibly because I keep 
saving after every edit in OCD style and I really don't want 
things running automatically.


- Recursive: It can build the build description as part of the 
build.


I'm not sure what that means. reggae copies CMake here and runs 
itself when the build description changes, if that's what you 
mean.



- Lua is the primary build description language.


In reggae you can pick from D, Python, Ruby, Javascript and Lua.

Atila



Re: foo => "bar" key/value literals in D!

2016-05-31 Thread Era Scarecrow via Digitalmars-d-announce

On Monday, 23 May 2016 at 19:00:40 UTC, Adam D. Ruppe wrote:

Have I gone completely mad?!?!

---
void main() {
import std.stdio;
writeln(obj!(
foo => "bar",
baz => 12
));
}
---

Prints out:

{
foo: bar
baz: 12
}


 Pretty snazzy :) Like enums, except not...


Re: foo => "bar" key/value literals in D!

2016-05-31 Thread Andrei Alexandrescu via Digitalmars-d-announce

On 5/27/16 10:17 PM, Taylor Hillegeist wrote:

On Friday, 27 May 2016 at 18:10:59 UTC, Vladimir Panteleev wrote:

On Monday, 23 May 2016 at 19:00:40 UTC, Adam D. Ruppe wrote:

Have I gone completely mad?!?!


Yes, though what does it have to do with this thread? :D

This is by far the most appealing way to implement named arguments
that I've seen so far:

https://github.com/CyberShadow/ae/blob/master/utils/meta/args.d


This is very nice... way more clean than I imagined possible.


s/args/make/g and we have a nice function for std.conv. -- Andrei