November 02, 2018
On Thursday, 1 November 2018 at 10:17:25 UTC, bauss wrote:
> On Wednesday, 31 October 2018 at 13:56:56 UTC, 9il wrote:
>> ~ is used for string concatenation in D including string compile time constant concatenation.   It is better not to override it because both << and ~ can be used in the same expression.
>
> I see what your argument is now for it, BUT I would still have left it out because it's not idiomatic D and an alternative would have been better if you absolutely had to rely on ~ being used within the expression to combine both.
>
> Ex.
>
> try throw new MirException(stringBuf().append("Hi D", 2, "!", getData);
>
> Would have been a much better approach similar to how write/writeln etc. work from std.stdio.

Well, added at v0.0.8 [1].

Mir Runtime formatting and exceptions are CTFE-able if a msg fits into a local buffer and support user-defined types formatting. Note, that toString function must be scope const.

mir.parse was added in v0.0.7. Currently, only integer types are supported.

1. https://github.com/libmir/mir-runtime/pull/2
November 02, 2018
On Friday, 2 November 2018 at 05:21:07 UTC, 9il wrote:
> On Thursday, 1 November 2018 at 10:17:25 UTC, bauss wrote:
>> [...]
>
> Well, added at v0.0.8 [1].
>
> Mir Runtime formatting and exceptions are CTFE-able if a msg fits into a local buffer and support user-defined types formatting. Note, that toString function must be scope const.
>
> mir.parse was added in v0.0.7. Currently, only integer types are supported.
>
> 1. https://github.com/libmir/mir-runtime/pull/2

Thanks!
November 02, 2018
On Tue, Oct 30, 2018 at 9:30 AM Oleg via Digitalmars-d-announce <digitalmars-d-announce@puremagic.com> wrote:
>
> Thanks for your work!
>
> > Example
> > =======================
> > ///
> > @safe pure nothrow @nogc
> > unittest
> > {
> >     import mir.exception;
> >     import mir.format;
> >     try throw new MirException(stringBuf() << "Hi D" << 2 <<
> > "!" << getData);
> >     catch(Exception e) assert(e.msg == "Hi D2!");
> > }
> >
> > =======================
>
> I don't understand why you choose C++ format style instead of D-style format?

Perhaps this is a stupid question... but there's clearly `new
MirException` right there in that code.
How is this @nogc?
November 02, 2018
On Friday, 2 November 2018 at 07:00:49 UTC, Manu wrote:
> On Tue, Oct 30, 2018 at 9:30 AM Oleg via Digitalmars-d-announce <digitalmars-d-announce@puremagic.com> wrote:
>>
>> Thanks for your work!
>>
>> > Example
>> > =======================
>> > ///
>> > @safe pure nothrow @nogc
>> > unittest
>> > {
>> >     import mir.exception;
>> >     import mir.format;
>> >     try throw new MirException(stringBuf() << "Hi D" << 2 <<
>> > "!" << getData);
>> >     catch(Exception e) assert(e.msg == "Hi D2!");
>> > }
>> >
>> > =======================
>>
>> I don't understand why you choose C++ format style instead of D-style format?
>
> Perhaps this is a stupid question... but there's clearly `new
> MirException` right there in that code.
> How is this @nogc?

The code requires -dip1008 flag. Take a look into the DIP https://github.com/dlang/DIPs/blob/master/DIPs/DIP1008.md
1 2
Next ›   Last »