Re: DConf Online 2020 Videos Re-edited

2021-08-24 Thread Robert burner Schadek via Digitalmars-d-announce

properly -> probably


Re: DConf Online 2020 Videos Re-edited

2021-08-24 Thread Robert burner Schadek via Digitalmars-d-announce

Awesome, properly tedious, work.

Thank you



Re: Computing the next SemVer for dlang packages with dsemver

2020-10-22 Thread Robert burner Schadek via Digitalmars-d-announce

On Wednesday, 21 October 2020 at 17:58:53 UTC, Sönke Ludwig wrote:
The thing is just that I don't think it is possible to find a 
set of rules that always work. There will always be something 
that should "obviously" be flagged as a breaking change and 
something that is extremely annoying to be detected as such 
(forcing a major version increment).


True, but if we can get 90% of the way there by a tool we would be
a lot better of then where we are today.
You should always be able to increment the SemVer by hand.



But as some kind of warning/hint and with some kind of 
integration into the version tagging process (maybe forcing a 
manual version release on the registry after warnings come up) 
it could definitely be really nice.


I'm thinking of a service that gives you a batch that shows you 
next SemVer

of the master branch, as a start.




Re: Computing the next SemVer for dlang packages with dsemver

2020-10-22 Thread Robert burner Schadek via Digitalmars-d-announce

On Wednesday, 21 October 2020 at 17:55:00 UTC, Sönke Ludwig wrote:

0.x.y vs. 1+.x.y is about the development process/state. Quite 
often a design is not yet fully fleshed out in the beginning 
and there are many incremental changes to the API. If 0.x.y 
didn't exist, that would simply mean that either the project 
gets more or less stuck with the initial (bad) design, or that 
it quickly increments major versions, effectively providing no 
more stability as in the 0.x.y case.


I think that is the one mistake SemVer does. 0.x.y is just one 
big loophole.
After the 1.x.y release an breaking api change requires a major 
version increment.
The way it should be. Stability or unstable is only mentioned in 
the 0.x.y

definitions.

You are not stuck on a bad design, break the api, improve the 
api, increment the major version number.
If you break the api in an 0.x.y version the hard part does not 
change.

In both instances the users have to update their usage.

In know in theory 0.x.y should be considered unstable. But by 
amount of 0.x.y we have you pretty much can't get anything done 
in D if you only use stable packages.

The loophole has become the normal case.

So what can we do, I see two major options:
1. we can live on the edge and use unstable packages and have no 
meaning in the

   SemVer number
2. we can acknowledge that most of them are stable, put a 1. in 
front and ignore
   the 0.x.y part of the SemVer definition and have the SemVer 
mean something


dsemver does 2.

And true there might be cases where dsemver does not increment 
the number correctly, but you can always increment by hand.


Also if your api is not stable after your 1.x.y release and you 
break everything in 2.x.y, so what. Your users are also annoyed 
when you break your api from 0.1.x to 0.1.1. Only difference is 
they could have seen in coming by looking at the SemVer.


I should stop ranting now.



Re: Computing the next SemVer for dlang packages with dsemver

2020-10-21 Thread Robert burner Schadek via Digitalmars-d-announce

On Wednesday, 21 October 2020 at 15:27:46 UTC, Sönke Ludwig wrote:

To really get it correct properly most of dmd is needed anyway.
But this might a good first step to get out under the 0.x.x rug 
we are currently in
and a lot closer to actual meaning in the semver of a lib on 
code.dlang.org




Re: Computing the next SemVer for dlang packages with dsemver

2020-10-21 Thread Robert burner Schadek via Digitalmars-d-announce

On Wednesday, 21 October 2020 at 15:27:46 UTC, Sönke Ludwig wrote:

However, I definitely don't see this as a potential feature of 
the registry in the sense that it automatically creates new 
versions for all packages.


That is why I said in an ideal world and baby steps.

Also, dsemver does not call git yet to create the new tag.


Computing the next SemVer for dlang packages with dsemver

2020-10-21 Thread Robert burner Schadek via Digitalmars-d-announce

https://code.dlang.org/packages/dsemver

is a program that computes the next SemVer for your dlang package.

It uses a slightly modified SemVer definition.

It does this by using the -X flag for dmd to get a json file of 
the symbols
and then compares them to the most recent git tag that resembles 
a SemVer.


First release is 1.0.0.
If a symbol is removed or its signature changed the major version 
is increment

and the minor and the bugfix number reset to 0.
If a new symbol is added, the minor number is incremented and the 
bug fix

number is set to 0.
If all symbol stay the same the bugfix number is incremented.

In an ideal world the dub registry would use this to compute the 
SemVer for you,

but baby steps.

I hope to see many bug reports and PRs.




Re: Article about D in the iX magazine

2019-12-21 Thread Robert burner Schadek via Digitalmars-d-announce

On Friday, 20 December 2019 at 21:26:00 UTC, Andre Pany wrote:
In the new iX (1 Januar 2020) there is also a Leserbrief for 
the article;)


Kind regards
André


I assume you wrote it? As I think the Jan. issue isn't out yet.
I hope you are not destroying the article too hard ;-)



reduxed - Redux for D

2018-08-23 Thread Robert burner Schadek via Digitalmars-d-announce
After working some with Angular and ngrx/store I really came to 
like the redux pattern.
Unfortunately, I couldn't find a package on code.dlang.org that 
filled that spot when coming back to D.

So I build my own.

It is called reduxed.
If you're interested you can find reduxed here 
https://code.dlang.org/packages/reduxed and 
https://github.com/burner/reduxed.


It is still rough around the corners and 
https://issues.dlang.org/show_bug.cgi?id=19084 gives me somewhat 
of a hard time, but give it try and scream at me because it is 
not nogc.





Re: Beta 2.078.0

2017-12-20 Thread Robert burner Schadek via Digitalmars-d-announce
I think https://issues.dlang.org/show_bug.cgi?id=18047 is also 
fixed in 2.078.
It was fixed in https://github.com/dlang/phobos/pull/5911, but it 
is not shown in the changelog.
https://issues.dlang.org/show_bug.cgi?id=17459 was also fixed in 
the same PR and

it is shown in the changelog.

Could you investigate this please?


Re: Time to move logger from experimental to std ?

2017-11-30 Thread Robert burner Schadek via Digitalmars-d
On Wednesday, 29 November 2017 at 21:40:13 UTC, Jonathan M Davis 
wrote:
It was my understanding that there were still problems with its 
design that Robert wanted to fix, but I don't know where any of 
that stands. But certainly, I don't think that it makes sense 
to push forward with trying to get the logger out of 
experimental without his feedback.


That is correct, I had the code nearly ready, but then didn't 
found time create
the PR. Its a api change, but it would make the api safer to log 
into manually
handled memory, and would reduce the gc pressure. I'll try to 
squeeze my schedule for time to get this going again.


Re: Time to move logger from experimental to std ?

2017-11-30 Thread Robert burner Schadek via Digitalmars-d

On Wednesday, 29 November 2017 at 21:14:57 UTC, Claude wrote:

...
Did I miss anything?


to write a bugzilla issue about it


Re: Time to move logger from experimental to std ?

2017-11-30 Thread Robert burner Schadek via Digitalmars-d

On Wednesday, 29 November 2017 at 19:48:44 UTC, Nathan S. wrote:
Considering that one of those issues is that the logger outputs 
garbage when given a wstring or a dstring, I would not take 
this as an indication that it's time to "graduate" the logger 
from experimental.


That was fixed at dconf17 and merged a couple of days later.



Re: args.d | a command line argument and config file parser

2017-08-02 Thread Robert burner Schadek via Digitalmars-d-announce

On Tuesday, 1 August 2017 at 17:46:57 UTC, H. S. Teoh wrote:
I think UDA-driven configuration parsing is ultimately the 
right direction to go.  And by that I mean more than just 
command-line parsing, but the parsing of configuration 
parameters in general, including command-line options, 
configuration files, etc..  Usually a lot of boilerplate is 
involved in constructing a parser, enumerating options, then 
mapping that to configuration variables, adding helpful 
descriptions, etc.. All of which are a maintenance burden on 
the programmer, because any of these components can become 
out-of-sync with each other: the parsing of parameters, the 
mapping of these parameters to internal variables, and the help 
text.


args.d uses the same parser for command line options and for the 
config file.
The parser gets adapted between the two with some compile time 
parameters.




With UDAs, it's possible to unify all three in one declaration, 
thereby ensuring things will never go out-of-sync, and also 
greatly reduces the amount of boilerplate the programmer has to 
type.


I didn't look too closely at args.d yet, but in my 
implementation, I have UDAs for specifying alternate names for 
common configuration parameters (e.g., "outfile=..." instead of 
"outputFilename=..."). This allows more user-friendly option 
names, and also decouples it from internal variable naming 
schemes.


I found that good variable names make good command line option 
names.

And you remove one indirection, which I always like.
Plus, you can always use short options, which are checked for 
uniqueness at compile time by args.d.




There's also UDAs for optionally flattening a nested struct, so 
that internally I can have separate structs for configuring 
each module, but the main program combines all of them into a 
single flattened struct, so that to the user all the options 
are top-level (can specify "outfile=..." instead of 
"backend.outputFilename=..."). The user shouldn't need to know 
how the program is organized internally, after all, yet I can 
still properly encapsulate configuration parameters relevant to 
only that module, thereby avoiding spaghetti dependencies of 
modules on a single global configuration struct.


I thought about that as well, but didn't do it because if found:

--mysql.ipAddress  Type: string   default: localhost   
Help:
--redis.ipAddress  Type: string   default: localhost   
Help:


looks and works just awesome.
At least better than --mysqlipAddress and --redisipAddress.




args.d | a command line argument and config file parser

2017-08-01 Thread Robert burner Schadek via Digitalmars-d-announce

args.d is a command line argument and config file parser.

The basic idea of args.d is that that command line options and 
config file options are basically the same or should be.
The configuration options are build from UDA annotated structs 
that can be nested.
The package can be used with dub "argsd": "~>0.2.0" 
http://code.dlang.org/packages/argsd


Less talking more example:

```D
import args;

/** args.d arguments are structures as shown below.
Each argument that should be searched for needs to have $(D 
@Arg())

attached to it.
$(D @Arg()) takes three kinds of parameter.
1. A $(D string) which is used as the help message for that 
argument.
2. A $(D char) which is used as the character for the short 
argument

selector.
3. A $(D Optional) value to make the argument as optional or not 
(default

Optional.yes).
The order of the three parameter is not relevant.
Arguments can be nested, see the nested $(D NestedArgument) $(D 
struct) in

$(D MyAppArguments).
Arguments can be of all primitive types, arrays of primitive 
types and $(D

enum)s.

All arguments take the shape "name value". Equal sign syntax is 
not

supported.
Array values can be given as separate values of as comma 
separated values.


The name of the argument will be derived from the name of the 
member in

the struct. The names are case sensitive.
Arguments in nested structs have the name of the struct prefixed 
(compare

"--nested.someFloatValue).

Short names must be unique. If they are not unique an Exception 
will be
thrown. Short names are used by prefixing the character with a 
single "-".

The short name "-h" is reserved for requestion the help page.

Long names are unique by definition. Long names are prefixed with 
"--".

The long name "--help" is reserved for requestion the help page.

If $(D parseArgsWithConfigFile) is used two more long names are 
reserved,
"--config", and "--genConfig". Both take a $(D string) as 
argument.
"--config filename" will try to parse the file with name $(I 
filename) and

assign the values in that file to the argument struct passed.

"--genConfig filename" can be used to create a config file with
the default values of the argument struct. The name of the config 
file is

again $(I filename).
*/


/** A enum used inside of NestedArguments */
enum NestedEnumArgument {
one,
two,
many
}

/** A struct nested in MyAppArguments */
static struct NestedArguments {
@Arg("Important Help Message") float someFloatValue;

// D allows to assign default values to the arguments
@Arg('z') NestedEnumArgument enumArg = NestedEnumArgument.two;
@Arg() bool someBool;
}

/** The options to the created program. */
static struct MyAppArguments {
@Arg(Optional.no) string inputFilename;
@Arg('b') int[] testValues;

/** All options inside of $(D nested) need to be prefixed with
  "nested.".
*/
@Arg() NestedArguments nested;
}

import std.algorithm.comparison : equal;
import std.format : format;
import std.math : approxEqual;

/** It is good practice to have the arguments write-protected by 
default.

The following three declarations show a possible implementation.
In order to look up a argument the developer would use the $(D 
config())
function, returning him a write-protected version of the 
arguments.
In order to populate the arguments the writable version returned 
from

$(D configWriteable) is passed to $(D parseArgsWithConfigFile).
This, and the option definitions is usually placed in a separate 
file and
the visibility of $(D MyAppArguments arguments) is set to $(D 
private).

*/
MyAppArguments arguments;

ref MyAppArguments configWriteable() {
return arguments;
}

ref const(MyAppArguments) config() {
return arguments;
}

/** This $(D string[]) serves as an example of what would be 
passed to the

$(D main) function from the command line.
*/
string[] args = ["./executablename",
"--nested.someBool",
"--nested.someFloatValue", "12.34",
"--testValues", "10",
"-b", "11,12",
"--nested.enumArg", "many",
"--inputFilename", "nice.d"];

/** Populates the argument struct returned from configWriteable 
with the

values passed in $(D args).

$(D true) is returned if the help page is requested with either 
"-h" or

"--help".
$(D parseArgsWithConfigFile), and $(D parseArgs) will remove all 
used

strings from $(D args).
After the unused strings and the application name are left in $(D 
args).


Replacing $(D parseArgsWithConfigFile) with $(D parseArgs) will 
disable

the config file parsing option.
*/
bool helpWanted = parseArgsWithConfigFile(configWriteable(), 
args);


if(helpWanted) {
/** If the help page is wanted by the user the $(D printArgsHelp)
function can be used to print help page.
*/
printArgsHelp(config(), "A text explaining the program");
}

/** Here it is tested if the parsing of $(D args) was successful. 
*/


Re: Benchmark

2017-06-02 Thread Robert burner Schadek via Digitalmars-d

On Friday, 2 June 2017 at 18:51:24 UTC, Andrei Alexandrescu wrote:
That's indeed worth it. Robert, we discussed first deploying 
the library and a driver for dmd/druntime/phobos on dub, is 
this your plan? Thanks! -- Andrei


I think a practical approach is to create another dub project 
that solely consists of benchmarks for functions of phobos, and 
prints pretty pictures of their performance.
This will properly help to find shortcomings of the benchmark 
library, and help to develop idioms for benchmarking and random 
testing.
If that works out, the next step is properly to integrate that in 
the phobos/druntime/dmd CI. Which properly means putting the 
benchmark library through the experimental integration process, 
and finding a place for the benchmarks to life.


Re: Benchmark

2017-06-02 Thread Robert burner Schadek via Digitalmars-d

On Friday, 2 June 2017 at 18:49:49 UTC, Jack Stouffer wrote:
And reject out of hand any PR which reduces performance in 
order to "ratchet" performance over time.


I would also do this to a lesser degree to DMD as well.


I think being binary about it is the wrong approach.
Lets say we fix a bug, and the function is slower afterwards. Do 
we merge the bugfix? I say yes.
Lets say we add a feature to a function that makes more useful. 
Do we merge it? I say yes.


This is just another hammer, it does not mean everything is a 
nail now.


Re: Benchmark

2017-06-01 Thread Robert burner Schadek via Digitalmars-d
On Thursday, 1 June 2017 at 21:08:43 UTC, Robert burner Schadek 
wrote:
they do not cover performance regressions. That is bad, we are 
basically, currently just hoping that performance diminishes.


diminishes -> does not diminishes



Benchmark

2017-06-01 Thread Robert burner Schadek via Digitalmars-d
At this years DConf I gave a very short overview of the 
benchmarking library I'm working on [1]. The source can be found 
here [2]


The general idea goes as following.
Unit tests in D help us to find bugs and avoid regressions, but 
they do not cover performance regressions. That is bad, we are 
basically, currently just hoping that performance diminishes.


So my idea is to eventually get this library into phobos, write 
benchmarks for all functions in phobos, execute the benchmarks 
for every merge into master, use gnuplot to display the results 
on the dlang webpage, profit.


Right now I need people to give feedback on the library. You can 
find it on code.dlang.org [3]




[1] 
https://www.youtube.com/watch?v=QELK73JSpFk=PL3jwVPmk_PRxo23yyoc0Ip_cP3-rCm7eB=30

[2] https://github.com/burner/benchmark
[3] http://code.dlang.org/packages/std_benchmark


Re: Voting for std.experimental.checkedint

2017-02-24 Thread Robert burner Schadek via Digitalmars-d

checkedint got voted in. With 2 Yes and 2 yes with remarks.

I will set the autotester to merge.

Thank you @andralex for the hard work.


Re: auto ref escaping local variable

2017-01-23 Thread Robert burner Schadek via Digitalmars-d
Nice idea, but didn't work either. Just got more errors. And my 
eyes hurt now.


auto ref escaping local variable

2017-01-23 Thread Robert burner Schadek via Digitalmars-d
I have this program that used to compile with 72 but with 73 dmd 
is complaining that

"Error: escaping reference to local variable t"

auto ref f2(T)(auto ref T t, auto ref T s) {
return t;
}

auto ref f1(T)(auto ref T t, auto ref T s) {
return f2(t, s);
}

unittest {
int a = f1(1,2);
}

I'm not sure why, or how to fix that.

https://issues.dlang.org/show_bug.cgi?id=17117


Re: Voting for std.experimental.checkedint

2017-01-13 Thread Robert burner Schadek via Digitalmars-d

On Friday, 13 January 2017 at 12:49:53 UTC, deadalnix wrote:

Is the doc available somewhere in a readable form ?


CyberShadow/DAutoTest build the docs, you can find the link at 
the end of the PR under checks


Voting for std.experimental.checkedint

2017-01-13 Thread Robert burner Schadek via Digitalmars-d-announce

http://forum.dlang.org/post/wgsguzbgrcejptuxf...@forum.dlang.org


Voting for std.experimental.checkedint

2017-01-13 Thread Robert burner Schadek via Digitalmars-d
This is the voting thread to decide if the proposed addition to 
Phobos, std.experimental.checkedint, should be accepted.


To vote, please respond to this post. You have three options:

* Yes
* Yes with a single condition
* No

If you vote "yes" you can still mention something you'd like 
improved, but please be explicit if that problem is a non starter 
for you and you are choosing option two. If you vote no, please 
state why, though you aren't required to.


Some things to consider when making a vote:

* Is this functionality needed in Phobos?
* The API is practically permanent once the module is accepted. 
Some minor changes can be made, but a full redesign is no longer 
an option.


The voting will end 2017-01-31

The PR can be found here:
https://github.com/dlang/phobos/pull/4613

The dub package can be found here:
http://code.dlang.org/packages/checkedint_andralex

The review thread can be found here:
http://forum.dlang.org/post/mnounbaobgphbmanf...@forum.dlang.org


Re: std.experimental.checkedint Formal Review

2017-01-05 Thread Robert burner Schadek via Digitalmars-d
The review is over, there has been one comment on github "build 
error with DAutoTest:". It has been fixed.


If there are no comments until 2017-01-12 and Andrei agrees I 
will put checkedint to a vote.


Re: Question on std.experimental

2017-01-05 Thread Robert burner Schadek via Digitalmars-d

On Thursday, 5 January 2017 at 02:57:40 UTC, Jack Stouffer wrote:
You were the one who told me about it: 
https://github.com/dlang/phobos/pull/1500#issuecomment-155457980


I totally forgot about that, I guess I need to start to write 
things down. Sorry for the noise.


Re: Question on std.experimental

2017-01-04 Thread Robert burner Schadek via Digitalmars-d

On Wednesday, 4 January 2017 at 19:33:13 UTC, Jack Stouffer wrote:
Promotion of std.logger has been officially stalled until 
reference counted strings are part of D.


When? That is the first I hear about that.


Re: std.experimental.logger + threadIds

2016-12-19 Thread Robert burner Schadek via Digitalmars-d-learn
The ugly way is to create a @trusted function/lambda that coverts 
the threadId to a string.


Not sure about the pretty way.


Re: std.experimental.checkedint Formal Review

2016-12-15 Thread Robert burner Schadek via Digitalmars-d

**2017-01-05 (AoE)** of course



std.experimental.checkedint Formal Review

2016-12-15 Thread Robert burner Schadek via Digitalmars-d-announce

http://forum.dlang.org/post/mnounbaobgphbmanf...@forum.dlang.org


std.experimental.checkedint Formal Review

2016-12-15 Thread Robert burner Schadek via Digitalmars-d

It is time to formally review Andrei's checkedint.

Checkedint is a wrapper for integer types that allows to run code 
on over/underflows, define NaN like init states and more.


The PR can be found here:
https://github.com/dlang/phobos/pull/4613

The dub package can be found here: (1)
http://code.dlang.org/packages/checkedint_andralex

The docs can be seen through CyberShadow/DAutoTest in the PR.

Due to the holidays the review period is extended to **2016-01-05 
(AoE)**


Please browse through the comments of the PR to keep this 
discussion DRY.

Style nitpicks should be made on github.

The discussion in this thread should be about the design and 
phobos inclusion worthiness (PIW) of the module, not about where 
to place braces.



(1) Andrei, please make sure they are in sync.


Re: DIP10005: Dependency-Carrying Declarations is now available for community feedback

2016-12-14 Thread Robert burner Schadek via Digitalmars-d
On 2016-12-14 14:26, Dominikus Dittes Scherkl via Digitalmars-d wrote:
> On Tuesday, 13 December 2016 at 22:33:24 UTC, Andrei Alexandrescu wrote:
>> Destroy.
>>
>> https://github.com/dlang/DIPs/pull/51/files
>
> Why not leave it as it is and only change the compiler to
> perform inputs _within_ a function before evaluating the declaration,
> so that the symbols imported can be used in the declaration?
>
> e.g.
>
> fun(Range x) if(isInputRange!x)
> {
>import std.range;
>auto a = x.front();
> }
>
> this is especially more clean if a function needs several imports and
> maybe some of them in the declaration but not all of them. This would
> otherwise split the imports to two different points, some within the
> (already much too long) declaration and some within the function. I
> consider this ugly.

I like that, +1



Re: DIP10005: Dependency-Carrying Declarations is now available for community feedback

2016-12-14 Thread Robert burner Schadek via Digitalmars-d

I really like that solution. +1


Re: Code example in std.parallelism fails to compile

2016-11-29 Thread Robert burner Schadek via Digitalmars-d
Not that I know of, https://github.com/dlang/phobos/pull/4399. I 
think std.parallelism was designed around a D feature that was 
more a bug than a feature. This bug/feature seamed to be fixed 
some years ago. But I'm not 100%, as this was before my time.


Re: readln and readf issues

2016-11-11 Thread Robert burner Schadek via Digitalmars-d

On Friday, 11 November 2016 at 09:43:51 UTC, Jacob Marek wrote:
Hi! so I'm probably being dumb here however I'm having an issue 
getting readf and readln to work properly. It seems to be 
superseding the rest of my code. Allow me to explain. No matter 
where I put the readf/readln function it will get hung up in 
the console waiting for input. An example is below where this 
occurs (only after inputting an int and pressing enter does 
hello print) I am using eclipse with the standard DMD compiler. 
Any help is appreciated!


void main() {
writeln("hello");
int q;
readf(" %s", );
}


What platform? I'm not 100%, but on *nix writeln goes to stdout 
of the process and read* reads from stdin of the same process. 
The problem is that stdout is not connected stdin of the same 
process. In other words readf never gets past the "hello". Create 
two programs and connect them as such "writeProgram | 
readProgram".



p.s. next time, please post such to the learn subforum, thats 
properly a better place for this.


Re: PDF generation in D?

2016-11-11 Thread Robert burner Schadek via Digitalmars-d

I used text files and LaTeX in the past, it works with everything

textfile -> process -> LaTeX -> pdf


Re: Trailing catch on function?

2016-11-08 Thread Robert burner Schadek via Digitalmars-d

On Tuesday, 8 November 2016 at 01:50:26 UTC, Walter Bright wrote:
You don't. The exception is also rethrown, so it isn't an exact 
replacement. (The 'nothrow' is a mistake on my part.)


this:

scope(failure, Exception e) {
// Do something with e
}

would be nice




Re: Trailing catch on function?

2016-11-07 Thread Robert burner Schadek via Digitalmars-d
On Tuesday, 8 November 2016 at 00:12:09 UTC, Robert burner 
Schadek wrote:



Who to get the Exception thrown in the scope(failure)


Who to --> How do you ...


Re: Trailing catch on function?

2016-11-07 Thread Robert burner Schadek via Digitalmars-d

On Monday, 7 November 2016 at 23:37:18 UTC, Walter Bright wrote:

void callback() nothrow
{
scope (failure)
{
...log error or abort...
}
...lots of code...
}


Who to get the Exception thrown in the scope(failure)


Re: DStatsD - A fast, memory efficent, vibe.d compatible client for etsy's statsd.

2016-10-11 Thread Robert burner Schadek via Digitalmars-d-announce

the backend/view for it:

https://github.com/kamon-io/docker-grafana-graphite




Re: DStatsD - A fast, memory efficent, vibe.d compatible client for etsy's statsd.

2016-10-11 Thread Robert burner Schadek via Digitalmars-d-announce

On Tuesday, 11 October 2016 at 12:47:55 UTC, Atila Neves wrote:
I didn't even know that this existed, and I have a feeling that 
soon I'll wonder how I lived without it. Awesome!


I had the exact same feeling




DStatsD - A fast, memory efficent, vibe.d compatible client for etsy's statsd.

2016-10-10 Thread Robert burner Schadek via Digitalmars-d-announce

http://code.dlang.org/packages/dstatsd

StatsD allows to collect statistics about any application by 
using counters, gauges and more through UDP.


Usage:

auto s = new StatsD("127.0.0.1", 1234, ""); // connect to statsd 
server


s(Counter("Foo")); // increment counter "Foo"
s.inc("Bar"); // increment counter "Foo"

s(Counter("Args"), // send stats to Args, H, and timeA
  Counter("H", someIntValue),  // in one UDP message
  Timer("timeA", someTimeInMS)
);

{
  auto a = ScopeTimer("args", s); // automatic time collection
}



Falcor Router in D

2016-09-21 Thread Robert burner Schadek via Digitalmars-d

Is anybody working on a falcor-router [1] written in D?

[1] https://github.com/Netflix/falcor


Re: checkedint submission

2016-09-15 Thread Robert burner Schadek via Digitalmars-d

Who is your review manager?



Re: checkedint submission

2016-09-15 Thread Robert burner Schadek via Digitalmars-d
The last commit to https://github.com/andralex/checkedint was 21 
days ago? Something is off! Or was the last change to checkedint 
21 days ago?


Re: New reviewing flow on github

2016-09-15 Thread Robert burner Schadek via Digitalmars-d

They also have kanban style project management stuff now.
I would really like to see anything (bugzilla, trello) moved to 
github.


Re: checkedint submission

2016-09-15 Thread Robert burner Schadek via Digitalmars-d

could you please update the dub package




Re: The D Language Foundation is now a tax exempt non-profit organization

2016-08-29 Thread Robert burner Schadek via Digitalmars-d-announce

Awesome Job



Re: Do you like bounded integrals?

2016-08-24 Thread Robert burner Schadek via Digitalmars-d

what about two types.

alias BI = Bound!int;

alias CBI = CheckedInt!BI;

if Bound behaves as an integer people can choose.


Re: dub test

2016-08-24 Thread Robert burner Schadek via Digitalmars-d

Lets move that back to https://github.com/dlang/phobos/pull/2995



Re: On the future of DIP1000

2016-08-22 Thread Robert burner Schadek via Digitalmars-d-announce

On Monday, 22 August 2016 at 06:44:11 UTC, Jacob Carlborg wrote:
It would be nice to have the whole picture now, before 
implementing DIP1000. Then it's possible to review them 
together, making sure the end goal is actual possible to 
achieve. Now we just have to trust Andrei and Walter that all 
features will come together making the end goal possible. We've 
already seen in the past that some features don't play well 
together.


It's also not possible/harder to come up with alternatives, 
that might work better, if we don't have the whole picture.


I'm also not a big fan that the DIP is approved right from the 
start. Then it's not a DIP, it's more of a FYI. It makes the 
whole process kind of pointless since Andrei and Walter can 
choose to ignore the feedback.


What he said !


Re: std.experimental.logger threading design

2016-08-17 Thread Robert burner Schadek via Digitalmars-d

On Wednesday, 17 August 2016 at 07:48:02 UTC, kookman wrote:
I was interested low(er) cost logging and stumbled across a 
proposal by Max Klimov from about 16 months ago to add an 
AsyncLogger to std.experimental.logger (ref 
http://forum.dlang.org/thread/lcsjtxorbbagmbvbl...@forum.dlang.org). The resulting PR 3194 has been dormant for some time. I was going to resuscitate it, but I wanted to change the approach - rather than make AsyncLogger a generic wrapper for another logger type, I wanted to make a specialist logger that was designed to always be the stdThreadLocalLogger. It would be a stub that merely sends a LogEntry (as a message) to the stdSharedLogger (which would be any logger type).


When taking a closer look at std.experimental.logger I realized 
that with the current design, becauseThreadLocalLog is just 
another Logger, it is paying all the cost of  sychronization, 
even though it is thread local.


Am I interpreting the purpose of stdThreadLocalLogger 
differently to how it was intended?


stdThreadLocalLog's log functions are synchronized because they 
read global and instance global data structures. And I didn't 
want make in possible to introduce the possibilities for race 
conditions. Thats why the logXXX member functions of Logger are 
synchronized.


You can still build up a LogEntry and send it, it just has to be 
in synchronized block.


Re: DIP1000: Scoped Pointers (Discussion)

2016-08-15 Thread Robert burner Schadek via Digitalmars-d

public final void foo() scope inout @nogc nothrow @safe pure {}

I think the solution is to turn every function into a no-args 
template, but then you can't use virtual methods.


** sarcasm on **

Don't say that, you give them ideas ;-)

** sarcasm off **




Re: DIP1000: Scoped Pointers (Discussion)

2016-08-12 Thread Robert burner Schadek via Digitalmars-d

On Friday, 12 August 2016 at 14:02:50 UTC, Chris Wright wrote:

In the worst case, you can change the API so you can write:

rcs.update("bar", (x) { x.a = 1337; x.b = 1338; });


yes, but that will not catch on. And I think (x) must be (scope 
ref x)





Re: DIP1000: Scoped Pointers (Discussion)

2016-08-12 Thread Robert burner Schadek via Digitalmars-d

No, the DIP doesn't handle several levels of indirection.


What about:

struct Bar { int a; int b }
auto rcs = RefCountedTree!(string,Bar)();

fcs["bar"].a = 1337;  // log n
fcs["bar"].b = 1338;  // log n

? I need to pay log n twice to assign two members




Re: DIP1000: Scoped Pointers (Discussion)

2016-08-12 Thread Robert burner Schadek via Digitalmars-d

On Thursday, 11 August 2016 at 22:00:06 UTC, Walter Bright wrote:

On 8/11/2016 4:46 AM, Robert burner Schadek wrote:

Can I do this:

```
struct Foo { int a; }
auto rcs = RefCountedSlice!Foo(); // assume rcs.length > 0

scope Foo zero = rcs[0];
zero.a = 1337;
assert(rcs[0].a == 1337);
```


No, because the lifetime of zero exceeds the lifetime of rcs[0].


Hm, that is really bad IMO. The shown use case is properly the 
most common use case. Is there no way to make it transitive so 
the lifetime of rcs[0] is the lifetime of rcs.


To be blunt, this is a real show-stopper for me.


Re: DIP1000: Scoped Pointers (Discussion)

2016-08-11 Thread Robert burner Schadek via Digitalmars-d

Can I do this:

```
struct Foo { int a; }
auto rcs = RefCountedSlice!Foo(); // assume rcs.length > 0

scope Foo zero = rcs[0];
zero.a = 1337;
assert(rcs[0].a == 1337);
```

with the DIP. I could find it.


Re: DIP1000: Scoped Pointers (Discussion)

2016-08-11 Thread Robert burner Schadek via Digitalmars-d
Ok, I disagree, but there is no way that I can proof to be right. 
You can also not proof that you're right, so I'll trust your 
judgement.




Re: DIP1000: Scoped Pointers (Discussion)

2016-08-11 Thread Robert burner Schadek via Digitalmars-d

On Thursday, 11 August 2016 at 09:45:07 UTC, Martin Nowak wrote:
It's already clear that we need much better escape analysis and 
guards for safe reference counting.
There isn't any open question that this is the necessary 
enabler for more RC and less GC.


How do you know? Is there a sketch for the planed RC 
implementation (where can I read it?)





Re: DIP1000: Scoped Pointers (Discussion)

2016-08-11 Thread Robert burner Schadek via Digitalmars-d

```
void foo() {
int c;


int* e;
e =  // Error, lifetime(e's view) is  and is 
greater than lifetime(c)

}
```

The DIP should make clear that this is wanted for a container 
library.
Additionally, I miss how this DIP fits in the overall plan of 
getting rid of the GC. As long as there isn't a written 
masterplan how to combine those ideas I consider this DIP to be 
incomplete.


I think this change is not worth it. I believe there is an 
inherent trade-off for every programming language between 
usability and theoretically correctness. And IMO this DIP is 
pushing D way to far in the direction of theoretically 
correctness. There are far more important things for the adoption 
of D, like making the frontend a library, shipping with multiple 
backends.




Re: std.experimental.xml available on DUB

2016-08-03 Thread Robert burner Schadek via Digitalmars-d-announce

On Wednesday, 3 August 2016 at 09:04:30 UTC, Jacob Carlborg wrote:
Another question. I see that there are a couple of different 
lexers available. Can those be exposed with the same 
interface/type instead of using different types? Perhaps based 
on the input type.


Well, currently you have to make that choice as developer, and 
there is always the BufferedLexer which should be good choice is 
most cases. Polymorphic design was not a goal of the project, so 
I think it is going to be hard to add that without sacrificing to 
much.





Re: Battle-plan for CTFE

2016-07-29 Thread Robert burner Schadek via Digitalmars-d-announce

On Friday, 29 July 2016 at 11:30:20 UTC, Stefan Koch wrote:

please share your thoughts.


When is this moving into dmd master?


Re: Overflows in Phobos

2016-07-26 Thread Robert burner Schadek via Digitalmars-d

A perfect example for an item for your action list.


Re: Our docs should be more beautiful

2016-07-26 Thread Robert burner Schadek via Digitalmars-d

** RANT ON **

A perfect example for an item for your action list.
And it pretty much looks like the syntax the wiki is using 
already.


I bet you a drink at next years DConf that it will take you at 
least 10 minutes to find and reread this thread next time you 
create a vision document just to rewrite parts of it for you next 
vision document.


** RANT OFF **



Re: Vision document for H2 2016

2016-07-10 Thread Robert burner Schadek via Digitalmars-d-announce

On Friday, 8 July 2016 at 18:04:16 UTC, Andrei Alexandrescu wrote:
It seems to me six months is a sweet spot. Large companies such 
as Google and Facebook also use a six-months horizon because 
it's long enough to avoid micromanagement hysteria and short 
enough to be verifiable and accountable. Yes, I do have a 
vision for a longer horizon, but it's too vague to be useful - 
"D will be a major programming language by 2020".


But we are not Facebook or Google. And I bet even they have some 
mid/long-term visions.


I consider it competition with other things that Walter and I 
need to worry about. Walter put it cleverly: you can't add more 
administration without administrators.


IMO that is wrong, well not so much wrong as misleading. We don't 
just need more administration because we need more 
administration. We need more administration or lets say more 
management and delegation to get things done.




A semestrial vision document summarizing our outlook and 
intentions is about as much as we can bear. 


Well, you and Walter graduated from engineering to management. 
That, reviewing other peoples work and delegating is your job 
now. Like it or not.



Would trello help with that kind of stuff?


Yes if anybody had access to the trello and would want to use yet 
another tool. I think that is unrealistic. But we already have 
the wiki and github. So extending the VD to rolling VD in the 
wiki is the way to go IMO. Or move everything to github including 
bugtracker and start using milestones etc.
Again, IMO in the long run a long term VD, updated on a need to 
basis with subtasks will save you work.


I don't think preapproved work would lead to less rejection. 
Rejection is of work of insufficient quality, not of work that 
has not been preapproved. Conversely, preapproval does not 
guarantee any work will be actually approaved.


Considering the current event is disagree. Maybe preapproved work 
is not the right wording. Maybe preapproved designs.






Re: Vision document for H2 2016

2016-07-08 Thread Robert burner Schadek via Digitalmars-d-announce
On Thursday, 7 July 2016 at 20:44:05 UTC, Andrei Alexandrescu 
wrote:

On 7/7/16 3:55 PM, Andrei Alexandrescu wrote:

https://wiki.dlang.org/Vision/2016H2 -- Andrei


In the next pass I will integrate Walter_Andrei_Action_List


I'm quite underwhelmed by the Vision Document (VD). I think that 
is because it is a biyearly VD, and IMO in half a year nothing 
really visionary can be done for D (because D is already pretty 
awesome and pushing the envelope takes a lot of time).


Also I think, that you treat the Action_List as competition to 
the VD. If you don't, even better but consider this:


You create a VD roughly twice a year. You have to compare it with 
the last VD and see what was done. That is a lot of overhead IMO.
Why not create "THE VISION DOCUMENT" and update it when needed. 
You would be able to add long term visions like "Awesome 
Container Library using Allocators", then add subpoints to it 
like "Create Allocator library" 
(strikethrough because it is already done). We could then link 
the relevant forum threads to the points and subpoints, 
discussing the work item. People would have a go to place looking 
for pre-approved work. Leading to no more gatekeeper rejection 
frustration.


Additionally, I think that the vision for phobos is really weak, 
no mentions of containers, xml, (si)-units, unit-testing 
(framework), benchmarking, blas, json ... .
I'm not the much in the DMD process, but what about making the 
frontend a library and being able to select the backend at the 
time of compilation, as shortly mentioned at DConf. I bet there 
are a lot of subpoints to that as well.




Re: Logical location of template instantiations

2016-07-01 Thread Robert burner Schadek via Digitalmars-d
IMO, this is one of these places where theory meets practice. Do 
what works, write a comment explaining the problem, and move on 
;-)


Re: Call to Action: making Phobos @safe

2016-06-28 Thread Robert burner Schadek via Digitalmars-d

On Monday, 27 June 2016 at 19:33:45 UTC, Walter Bright wrote:
Sorry to have offended you, I worded things badly. Thank you 
for making the list. It's just that I'm feeling a bit 
overwhelmed at the moment with trying to get things done and 
being asked to do more every day, and I'd like to delegate.


Don't sweat it. I just replied in the heat of the moment and 
thereby violated my personal 24 hour no reply rule.


Back to topic, I think this list will save you and Andrei work in 
the long run. I mean if the list is up to date, you do not have 
to repeat yourself. Well expect "read the list!" ;-)


Re: Release D 2.071.1

2016-06-27 Thread Robert burner Schadek via Digitalmars-d-announce

Awesome, releases are becoming more and more boring. I like it!


Re: Call to Action: making Phobos @safe

2016-06-27 Thread Robert burner Schadek via Digitalmars-d

On Sunday, 26 June 2016 at 22:38:54 UTC, Walter Bright wrote:

It's a wiki, feel free to add it.


I have to say that reply really makes me angry. I created that 
list so Andrei and you have an easy to find spot where you can 
write down tasks so people can work on them. You did not disagree 
with the list at the time, and didn't disagree so far. I really 
think it is clear that these are two list that you two are 
maintaining, how else should anybody know what work is 
pre-approved and where D is going.


I think I'm not asking too much here, if I ask you to decide if 
you want to maintain that list or if you want to delete it. The 
current limbo state is just making things worse.


Re: DbI checked integral

2016-06-27 Thread Robert burner Schadek via Digitalmars-d
On Sunday, 26 June 2016 at 16:03:57 UTC, Andrei Alexandrescu 
wrote:

like. Default to NaN or throwing Exceptions.


That is a side discussion as trivial as deciding the defaul 
second argument for Checked(T, Hook = DefaultHook).


Fair enough.


I was looking into creating a NaN Hook. I could create it by 
doing some ugly stuff inside the Hook. Things would have been 
nicer if there is a ctor hook.



p.s. a dub package would be nice


Re: Call to Action: making Phobos @safe

2016-06-26 Thread Robert burner Schadek via Digitalmars-d
It would be awesome if you would create that process model in the 
wiki and at it to your action list 
http://wiki.dlang.org/Walter_Andrei_Action_List#Walter_and_Andrei.27s_Action_List


So it does not get lost and people can find it.


Re: DbI checked integral

2016-06-26 Thread Robert burner Schadek via Digitalmars-d
On Saturday, 25 June 2016 at 21:32:00 UTC, Andrei Alexandrescu 
wrote:
So it stands to reason that if you want to design a checked 
integral types offering a variety of checking policies, one 
point in the design space that needs to be attainable is "no 
checks at all". Then the syntactic shell works the same as with 
any policy, and ideally there's no overhead at all.


There should be away to avoid all checks, true. But I think that 
problem is solved by alias Int = * . I think we have to take 
a step back and discuss what this type should actually be used 
for.
IMO it is a debug type and as such should have sensible default 
debug features

like. Default to NaN or throwing Exceptions.

One good design principle is pushing policy up and 
implementation down. A NaN is a very specific policy, which is 
appropriate for a Hook definition but would look out of place 
in the Checked shell.


See my above argument. If it is a debug type, and that is what I 
think it is,

it should have sensible default hooks.




Re: DbI checked integral

2016-06-25 Thread Robert burner Schadek via Digitalmars-d
On Friday, 24 June 2016 at 21:31:14 UTC, Andrei Alexandrescu 
wrote:
By default, if Hook has no state and implements none of these 
methods, e.g. is void, then Checked!(int, void) is a 
user-defined type that mimics the behavior of int to the 
maximum extent possible.


I think there is a major problem with the proposed design.

when Checked!(int, void) is to behave as an int, why do we need 
it in the first place. I mean we have int as a basic type. Can't 
we do:


alias Int = int;
alias Int = Checked!(int, SomeUsefulHook);

On second thought, the only feature of Checked!(int, void) is to 
be a slower int ;-)


IMO the default CheckedInt!(int, void) needs a NaN like 
init/failure state. After any operation that overflows the value 
should be NaN.





Re: std.experimental.randomized_unittest_benchmark is ready for comments

2016-06-19 Thread Robert burner Schadek via Digitalmars-d

On Sunday, 19 June 2016 at 18:51:09 UTC, Jack Stouffer wrote:
I would like to try this out on my date parsing library, but I 
don't see a way to generate strings of a specific format.


take a look at 
https://github.com/dlang/phobos/pull/2995/files#diff-1a5f159e09980950bb9931ac674cbf40R358


just create a new Gen struct that generates what you want and 
make it a parameter to a function. And you should be done.


Re: std.experimental.randomized_unittest_benchmark is ready for comments

2016-06-19 Thread Robert burner Schadek via Digitalmars-d

Thank you Seb for taking over the review management.

Some additional feature for the proposed module is.

* Simple way to create test data for user defined types
* Benchmark data is stored into csv file for comparing the 
benchmark results between runs
* Standalone tool to create gnuplot graphs from generated csv 
benchmark files


The long time vision (2+ years) is to have a benchmark for every 
function in phobos and have the resulting graph on the Dlang 
webpage (merged PRs -> webpage). So we can track the performance 
of everything.






Re: std.experimental.checkedint is ready for comments!

2016-06-18 Thread Robert burner Schadek via Digitalmars-d

I created this: https://wiki.dlang.org/Walter_Andrei_Action_List
And PR's to dmd, druntime, and phobos' README.md that points to 
it.
If you could keep that list up to date, would be really hopeful 
IMO.

https://github.com/dlang/druntime/pull/1597
https://github.com/dlang/dmd/pull/5874
https://github.com/dlang/phobos/pull/4435


What do you want to work on?


* I'm working on mentoring the GSoC xml replacement 
(https://github.com/lodo1995/experimental.xml) it is looking 
really good btw.
* I have https://github.com/dlang/phobos/pull/2995 in the 
pipeline which I think will help us to spot performance 
regeression in phobos and in any other D code for that matter
* I'm also working on getting that PR into unit-threaded as I 
fear the PR will sit in the queue for some time to come.
* recently I worked on std.parallelism and tried to get all tests 
run by default. https://github.com/dlang/phobos/pull/4399 No fun! 
std.parallelism or at least way the author indented its use, as 
shown in the unittests, is just broken.

* Then I'm working on my DConf project.
* And I'm reviewing phobos PR's


Re: std.experimental.checkedint is ready for comments!

2016-06-18 Thread Robert burner Schadek via Digitalmars-d

Ok, where is this list? And where is list for phobos?

Sure, some people are a allowed to pull stuff into phobos. But 
only stuff that does not introduce new names and Andrei does not 
veto.


Of course you can not appoint people, but you should have an idea 
who you think is sharing your overall vision of D. And then you 
can ask them. Delegating work is nice, but I would like you to 
delegate power.


Re: std.experimental.checkedint is ready for comments!

2016-06-17 Thread Robert burner Schadek via Digitalmars-d

What you said is true, but IMO you're missing the point.

IMO the current D Process is just backward. Having people working 
on stuff openly, with intend for phobos inclusion, for a lot of 
months and that putting it up for review clearly does not work.
And if you and/or Andrei at that point say "Na". That is just 
frustrating, no matter how good the reasons are.


So I propose that you and Andrei create a list of high level 
goals for the compiler as well as for phobos/druntime. Nothing 
abstract, specific stuff properly also design specifics. And 
attach explanations why those things should be done.


For example:

Stuff that needs to be in phobos:
* sync/async Database abstraction that is nogc
* Value Range Integer type
* 

I think you get the idea about the list.
Than you write in big letters.
"To everybody that wants to contribute a modules to phobos look 
at the above list and pick you module. All other module ideas may 
be rejected for whatever reason by Andrei. If you have an idea 
for a module not on the list get the design approved by Andrei 
before you start coding to avoid frustration later."


I know, this is an open source project and you can't tell people 
what to do because you don't pay us any money. But you could tell 
us what you think is important to make D number one. At least 
then people know what the lay of the land is and don't have to 
guess. And by saying "yes" or "no" at the end of the development 
of new stuff, you're actually doing this already. Only at the 
wrong point in time, IMO.



Additionally, IMO at some point you two have to delegate/trust 
other people/lieutenants. You two simply don't have the time to 
do all the necessary reviewing to make the D Process scale. And 
you two make mistakes as well. core.checkedint and etc.c.odbc is 
just deadbeef. (Please nobody start a discussion about that here. 
Even if those two module are a success, last time I checked 
Walter and Andrei are human so they make mistakes. And Andrei 
actually said so at DConf as well.)



So an action list from my POV.
* Andrei, Walter create a specific task list and designs
* make this list obvious to find. github README (See comment 
above) 
* disable the auto quote feature of the forum. This feature is 
just poisonous for the discussion culture of this forum. 
Everybody is just trying to disprove the other without actually 
trying to bring the discussion/D forward.
* something like https://github.com/facebook/mention-bot would be 
nice. It will properly also help finding lieutenants.


rant off

p.s. Warning: Parent post is not quoted. Ignore Explain Fit it 
for me

I f** hate it.



Re: std.experimental.checkedint is ready for comments!

2016-06-14 Thread Robert burner Schadek via Digitalmars-d
In two weeks I will talk to tsbockmann how much time he needs to 
work in all comments.

After he is done I will start the formal review phase.

p.s.
@everybody please take an interest. This module can give D 
another strategic advantage over our competition.




std.experimental.checkedint is ready for comments!

2016-06-14 Thread Robert burner Schadek via Digitalmars-d-announce

http://forum.dlang.org/post/jxaisipbdqfifpncn...@forum.dlang.org


std.experimental.checkedint is ready for comments!

2016-06-07 Thread Robert burner Schadek via Digitalmars-d
As with many other languages (C, C++, Java, etc.), D's built-in 
integer data types are quite difficult to use correctly.


It is tempting to think of int, for example, as if it were an 
actual mathematical integer. Doing so, however leads to buggy 
code due to unintuitive behaviour like:


* Wrapped overflow
* Reinterpretation of signed values as unsigned in mixed 
expressions
* Floating Point Exceptions which aren't Exceptions and have 
nothing to do with

  floating point
* Formally "undefined behaviour" with some inputs for various 
operations


This checkedint module provides alternative operations and types 
(SafeInt,SmartInt) that protect the user from most difficulties 
of this sort, while maintaining good performance (provided that 
inlining and optimizations are enabled).


== SmartInt ==
SmartInt smartOp strive to actually give the mathematically 
correct answer whenever possible, rather than just signaling an 
error.


== SafeInt ==
SafeInt safeOp strive to match the behaviour of the basic 
integral types exactly, $(B except) that where the behaviour of 
the basic type is wrong, or very unintuitive, an error is 
signaled instead.



The main downsides to using checkedint are:

Some added friction when interfacing to non-checkedint-aware code.
Slower compilation and larger binaries.


PR: https://github.com/dlang/phobos/pull/4407
DUB: http://code.dlang.org/packages/checkedint

I will do the review management.


Re: A technique to mock "static interfaces" (e.g. isInputRange)

2016-05-26 Thread Robert burner Schadek via Digitalmars-d

On Thursday, 26 May 2016 at 09:42:59 UTC, Atila Neves wrote:
Internal, and not really a mock. I used a range as an example - 
anything with an accompanying interface would be supported.


I see, I thought as much

What's wrong with dmocks revived (I've never used it)? I'm not 
afraid of classes, I was just trying to extend mocking to 
static interfaces since there's so much emphasis on them in D. 
Regular mocking is boring and easily doable :P


I was not clear. I mean, D has a community has to get past its GC 
Angst.





Re: A technique to mock "static interfaces" (e.g. isInputRange)

2016-05-25 Thread Robert burner Schadek via Digitalmars-d

+1 having a look at AutoImplement

For testing ranges, I usually use 
https://github.com/dlang/phobos/blob/master/std/internal/test/dummyrange.d

even though its internal ;-)

anyway, more and better testing always good.

p.s. I think at some point we have to build some (the perfect) 
mocking framework with dependency injection and all the other 
awesome stuff. But before that can happen we have to lose the 
fear of classes and OO. Please no OT!




Re: How are you enjoying DConf? And where to go next?

2016-05-10 Thread Robert burner Schadek via Digitalmars-d

what about Singapore.

* pretty easy to travel to from all over the world
* english speaking


Re: Battle-plan for CTFE

2016-05-09 Thread Robert burner Schadek via Digitalmars-d-announce

awesome news :-) thanks you


Re: Always false float comparisons

2016-05-09 Thread Robert burner Schadek via Digitalmars-d

On Monday, 9 May 2016 at 09:10:19 UTC, Walter Bright wrote:

So, should the compiler emit a warning for the former case?


I'm not for a compiler change. IMO a library called 
std.sanity_float with a equal and a notequal function would be 
better.


Re: The end of curl (in phobos)

2016-05-06 Thread Robert burner Schadek via Digitalmars-d

On Friday, 6 May 2016 at 09:00:24 UTC, Dicebot wrote:

Deprecated modules don't get bugfixes. It
is quite important to put it into undead the same moment it gets
deprecated because there is no real replacement available so 
existing

projects must have a clean migration path to keep working.


sounds fair enough

so the changed schedule is
1. undocument everything curl related in may 2016
2. deprecate everything curl related in may 2017
2.1 move curl stuff to undead
2.2 no more bugfixes for curl stuff
3. delete everything curl related in phobos in may 2018



Re: The end of curl (in phobos)

2016-05-06 Thread Robert burner Schadek via Digitalmars-d

On Friday, 6 May 2016 at 08:43:09 UTC, Johannes Pfau wrote:
Wouldn't it make sense to do 3.1 right now so people can switch 
earlier?


Then every bugfix to curl needs to be put in two repos. And the 
idea is that people have two years to find a better solution. So 
hopefully when we put curl in undead in 2018 nobody is using it 
anymore.




The end of curl (in phobos)

2016-05-06 Thread Robert burner Schadek via Digitalmars-d

As discussed yesterday at DConf, curl in phobos must go.

The plan is as follows.

1. undocument everything curl related in may 2016
2. deprecate everything curl related in may 2017
3. delete everything curl related in may 2018
3.1 move curl stuff to undead

PR: https://github.com/dlang/phobos/pull/4283


Re: Proposed: start DConf days one hour later

2016-04-27 Thread Robert burner Schadek via Digitalmars-d-announce
On Wednesday, 27 April 2016 at 18:36:54 UTC, Andrei Alexandrescu 
wrote:
The folks at Sociomantic suggested to start at 10:00 AM instead 
of 9:00 AM, therefore shifting the end time by one as well. 
Please reply with thoughts on this! We're particularly 
concerned about folks who need to take off early on Friday. -- 
Andrei


+1

so the breakfast is from 9:30 to 10:00 at the location?


Re: RFC: Units of measurement for D (Phobos?)

2016-03-15 Thread Robert burner Schadek via Digitalmars-d

On Tuesday, 15 March 2016 at 09:08:11 UTC, Nordlöw wrote:
On Monday, 14 March 2016 at 19:08:18 UTC, Robert burner Schadek 
wrote:

have a look at this!

https://github.com/biozic/quantities


Could you briefly outline why you prefer this over David's work?


- has been in code.dlang.org since 2014
- maintained
- good CT string parsing abilities
- ...

have a look at the github page!

its inclusion has been discussed before (did go nowhere because 
author was busy, issue is still assigned to his github project)


Re: RFC: Units of measurement for D (Phobos?)

2016-03-14 Thread Robert burner Schadek via Digitalmars-d

have a look at this!

https://github.com/biozic/quantities


Re: unit-threaded v0.6.5 - Type-parametrized tests

2016-03-11 Thread Robert burner Schadek via Digitalmars-d-announce

On Friday, 11 March 2016 at 14:26:34 UTC, Atila Neves wrote:

Didn't Robert have a QuickCheck-alike as well?


Yes, https://github.com/D-Programming-Language/phobos/pull/2995




Re: My whereabouts

2016-03-09 Thread Robert burner Schadek via Digitalmars-d
On Wednesday, 9 March 2016 at 12:58:24 UTC, Andrei Alexandrescu 
wrote:

Next on my coding agenda is rcstring.


I thought you were working on the container, or has [1] 
established itself as pseudo standard.


About rcstring, I have [2] which works for what I need for. I 
plan to extend it some more to make it more mutable (CoW).


[1] https://github.com/economicmodeling/containers
[2] https://github.com/burner/std.rcstring


Re: std.xml2 (collecting features)

2016-03-06 Thread Robert burner Schadek via Digitalmars-d

On Saturday, 5 March 2016 at 15:20:12 UTC, Craig Dillabaugh wrote:
Robert, we have had some student interest in GSOC for XML.  
Would you be interested in mentoring a student to work with you 
on this.


Craig


Of course


Re: std.xml2 (collecting features)

2016-02-23 Thread Robert burner Schadek via Digitalmars-d
On Thursday, 18 February 2016 at 15:39:01 UTC, Robert burner 
Schadek wrote:
On Thursday, 18 February 2016 at 12:30:29 UTC, Andrei 
Alexandrescu wrote:


Would the measuring be possible with 2995 as a dub package? -- 
Andrei


yes, after have synced the dub package to the PR


brought the dub package up to date with the PR (v0.0.6)


Re: std.xml2 (collecting features) control character

2016-02-19 Thread Robert burner Schadek via Digitalmars-d

On Friday, 19 February 2016 at 12:55:52 UTC, Kagamin wrote:

http://dpaste.dzfl.pl/2f8a8ff10bde like this?


yes


Re: std.xml2 (collecting features) control character

2016-02-19 Thread Robert burner Schadek via Digitalmars-d
On 2016-02-19 11:58, Kagamin via Digitalmars-d wrote:
> On Thursday, 18 February 2016 at 16:56:08 UTC, Robert burner Schadek
> wrote:
>> the hex dump is "3C 66 6F 6F 3E C2 80 3C 2F 66 6F 6F 3E"
>
> http://dpaste.dzfl.pl/80888ed31958 like this?
No, The program just takes the hex dump as string.

you would need to do something like:

ubyte[] arr = cast(ubyte[])[3C, 66, 6F, 6F, 3E, C2, 80, 3C, 2F, 66, 6F,
6F, 3E]);
string s = cast(string)arr;
dstring ds = to!dstring(s);

and see what happens


  1   2   3   4   5   >