Re: D Embedded Database v0.1 Released
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
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.
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.
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.
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
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
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
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
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
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
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
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
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
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
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
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.
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.
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!
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!
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