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

2016-05-30 Thread rikki cattermole via Digitalmars-d-announce

On 31/05/2016 7:16 AM, 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:

Docs:   http://jasonwhite.github.io/button/
Source: https://github.com/jasonwhite/button

Features:

- Correct incremental builds.
- Automatic dependency detection (for any build task, even shell scripts).
- Build graph visualization using GraphViz.
- Language-independent. It can build anything.
- Can automatically build when an input file is modified (using inotify).
- Recursive: It can build the build description as part of the build.
- Lua is the primary build description language.

A ton of design work went into this. Over the past few years, I went
through many different designs and architectures. I finally settled on
this one about a year ago and then went to work on implementing it. I am
very happy with how it turned out.

Note that this is still a ways off from being production-ready. It needs
some polishing. Feedback would be most appreciated (file some issues!).
I really want to make this one of the best build systems out there.

Here is an example build description for DMD:

https://github.com/jasonwhite/dmd/blob/button/src/BUILD.lua

I'd say that's a lot easier to read than this crusty thing:

https://github.com/dlang/dmd/blob/master/src/posix.mak

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

Finally, a few notes:

- I was hoping to give a talk on this at DConf, but sadly my submission
was turned down. :'(

- 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.

- You might also be interested in the two other libraries I wrote
specifically for this project:

  - https://github.com/jasonwhite/darg (A command-line parser)
  - https://github.com/jasonwhite/io (An IO streams library)


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.


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

2016-05-30 Thread Joel 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]
Button:

 - https://github.com/jasonwhite/darg (A command-line parser)
 - https://github.com/jasonwhite/io (An IO streams library)


That's great, sharing your D tools.


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

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

On Monday, 30 May 2016 at 20:58:51 UTC, poliklosio wrote:

- Lua is the primary build description language.


Why not D?


Generating the JSON build description should entirely 
deterministic. With Lua, this can be guaranteed. You can create a 
sandbox where only certain operations are permitted. For example, 
reading files is permitted, but writing to them is not. I can 
also intercept all file reads and mark the files that get read as 
dependencies.


It certainly could be done in D, or any other language for that 
matter. All that needs to be done is to write a program that can 
output the fundamental JSON build description.


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

2016-05-30 Thread poliklosio 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:


Docs:   http://jasonwhite.github.io/button/
Source: https://github.com/jasonwhite/button



Great news! Love to see innovation in this area.


- Lua is the primary build description language.


Why not D?



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

2016-05-30 Thread Jason White via Digitalmars-d-announce
I am pleased to finally announce the build system I've been 
slowly working on for over a year in my spare time:


Docs:   http://jasonwhite.github.io/button/
Source: https://github.com/jasonwhite/button

Features:

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

- Build graph visualization using GraphViz.
- Language-independent. It can build anything.
- Can automatically build when an input file is modified (using 
inotify).
- Recursive: It can build the build description as part of the 
build.

- Lua is the primary build description language.

A ton of design work went into this. Over the past few years, I 
went through many different designs and architectures. I finally 
settled on this one about a year ago and then went to work on 
implementing it. I am very happy with how it turned out.


Note that this is still a ways off from being production-ready. 
It needs some polishing. Feedback would be most appreciated (file 
some issues!). I really want to make this one of the best build 
systems out there.


Here is an example build description for DMD:

https://github.com/jasonwhite/dmd/blob/button/src/BUILD.lua

I'd say that's a lot easier to read than this crusty thing:

https://github.com/dlang/dmd/blob/master/src/posix.mak

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


Finally, a few notes:

- I was hoping to give a talk on this at DConf, but sadly my 
submission was turned down. :'(


- 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.


- You might also be interested in the two other libraries I wrote 
specifically for this project:


  - https://github.com/jasonwhite/darg (A command-line parser)
  - https://github.com/jasonwhite/io (An IO streams library)


SQLite-D goes beta!

2016-05-30 Thread Stefan Koch via Digitalmars-d-announce
It is my pleasure to announce that I now consider SQLite-D to be 
in Beta stage.
The reader is now stable enough to read all the test tables I 
have been given.


The fact that it took around 20 minutes to complete index-tree 
support convinced mt that I have chosen a solid design.


I have received the request to add examples and documentation to 
sqlite-d.

And I will do so as time permits.

This project will be boost licensed.

So don't be shy :)

https://github.com/UplinkCoder/sqlite-d


Re: A ready to use Vulkan triangle example for D

2016-05-30 Thread maik klein via Digitalmars-d-announce

On Monday, 30 May 2016 at 11:30:24 UTC, Manuel König wrote:

On Fri, 27 May 2016 18:40:24 +, maik klein wrote:


[...]


Nice, runs without errors for me. I have a triangle example 
project too, but weird stuff happens when I resize my window. I 
see your window has fixed size, maybe I have more luck adding 
window resizing to your example. Will tell you when I get it to 
work.


Does anyone here have a working vulkan window with a resizable 
window?

I think its more of an xcb issue than a vulkan issue in my code,
because even when I do
- create xcb window with dimensions (w1, h1)
- resize it to dimensions (w2, h2) (no vulkan interaction yet)
- create a vulkan surface from that window
- render
the rendered image still has the original size (w1, h1), and I 
loose my
vulkan device when (w2, h2) deviates too much from the original 
size.


You probably have to update a lot of code

https://github.com/MaikKlein/VulkanTriangleD/blob/master/source/app.d

Do a ctrl+f vkcontext.width and you will see all the code that 
needs to be updated.


Re: A ready to use Vulkan triangle example for D

2016-05-30 Thread Manuel König via Digitalmars-d-announce
On Fri, 27 May 2016 18:40:24 +, maik klein wrote:

> https://github.com/MaikKlein/VulkanTriangleD
> 
> Currently only Linux is supported but it should be fairly easy to 
> also add Windows support. Only the surface extensions have to be 
> changed.
> 
> The example requires Vulkan ready hardware + driver + LunarG sdk 
> with validation layer + sdl2.

Nice, runs without errors for me. I have a triangle example project
too, but weird stuff happens when I resize my window. I see your
window has fixed size, maybe I have more luck adding window resizing to
your example. Will tell you when I get it to work.

Does anyone here have a working vulkan window with a resizable window?
I think its more of an xcb issue than a vulkan issue in my code,
because even when I do
- create xcb window with dimensions (w1, h1)
- resize it to dimensions (w2, h2) (no vulkan interaction yet)
- create a vulkan surface from that window
- render
the rendered image still has the original size (w1, h1), and I loose my
vulkan device when (w2, h2) deviates too much from the original size.



Re: Beta D 2.071.1-b2

2016-05-30 Thread Johan Engelen via Digitalmars-d-announce

On Sunday, 29 May 2016 at 21:53:23 UTC, Martin Nowak wrote:

Second beta for the 2.071.1 release.

http://dlang.org/download.html#dmd_beta 
http://dlang.org/changelog/2.071.1.html


Please report any bugs at https://issues.dlang.org


I've merged it into LDC, CI testers are running!