Re: D Language Foundation Monthly Meeting Summary for May 2023

2023-07-06 Thread harakim via Digitalmars-d-announce

On Tuesday, 27 June 2023 at 14:18:52 UTC, Mike Parker wrote:
I still will put at least three or four weeks between the 
meetings and the summaries.


I appreciate your summary here. This was very insightful!


Re: D Language Foundation Monthly Meeting Summary for May 2023

2023-06-27 Thread Mike Parker via Digitalmars-d-announce

On Tuesday, 27 June 2023 at 12:36:20 UTC, Sergey wrote:

After that real person could verify result and make small 
corrections. It should significantly reduce effort and decrease 
time-to-market :)


Yes. The next version of Davinci Resolve (which I use for video 
editing) will have automated transcriptions. Once it's released, 
I intend to start loading my meeting recordings into it and then 
derive my summaries from that.


However, I still will write the summaries as summaries, rather 
than publishing the transcripts directly or otherwise quoting 
them verbatim. This will save me from having to go back and forth 
through the video, so it will certainly save time.


I still will put at least three or four weeks between the 
meetings and the summaries. One benefit I've found in the delay 
is that it's an easy way for me to follow up on any actionable 
items. As I'm writing a summary, I can check on the status of 
issues, follow up with anyone who said they'd do something, etc. 
Then I don't have to worry about taking notes during the meeting, 
I can add the current status directly into the summary, and 
anything that's not done by the time I write it up I can stay on 
top of.


Re: D Language Foundation Monthly Meeting Summary for May 2023

2023-06-27 Thread Sergey via Digitalmars-d-announce

On Friday, 23 June 2023 at 14:32:51 UTC, Mike Parker wrote:
The monthly meeting for May 2023 took place on Friday the 5th 
at 14:00 UTC. It lasted about an hour and a half.


Hi Mike.
Does anyone consider some automatization and application of 
modern technologies for the process of meeting summarization?


Like NN that:
* record the sound from the call
* make sound to text (with different speakers)
* make text summarization
* generate report

After that real person could verify result and make small 
corrections. It should significantly reduce effort and decrease 
time-to-market :)


Re: D Language Foundation Monthly Meeting Summary for May 2023

2023-06-23 Thread Richard (Rikki) Andrew Cattermole via Digitalmars-d-announce
If you feel up to doing a practice talk, you're welcome to join us on 
BeerConf!


Re: D Language Foundation Monthly Meeting Summary for May 2023

2023-06-23 Thread Sebastiaan Koppe via Digitalmars-d-announce

On Friday, 23 June 2023 at 14:32:51 UTC, Mike Parker wrote:

[...]

Walter brought up [Sebastiaan Koppe's presentation from last 
year](https://youtu.be/hJhNhIeq29U) on structured concurrency. 
He said he'd like to see Sebastiaan there this year for an 
update on the project, preferably as a follow-up presentation. 
He was excited about the project and felt it was a big deal in 
general and a big deal for D. Even if Sebastiaan decided not to 
move the project forward, Walter felt we should find someone to 
take it over. He said the ideas behind it were big and would be 
a nice thing for us. (We subsequently confirmed with Sebastiaan 
that he didn't have enough material yet for a follow-up talk).


[...]


For anyone interested, this is still very much alive.

In fact, the lovely folks at https://github.com/NVIDIA/stdexec 
have validated several ideas I had for improving things, and I 
have been using any spare time I have left - which isn't much 
sadly - to incorporate these concepts.


I hope to find some time to do a lighting talk.


Re: D Language Foundation Monthly Meeting Summary for May 2023

2023-06-23 Thread Dmitry Olshansky via Digitalmars-d-announce

On Friday, 23 June 2023 at 14:32:51 UTC, Mike Parker wrote:
The monthly meeting for May 2023 took place on Friday the 5th 
at 14:00 UTC. It lasted about an hour and a half. This was the 
last meeting before we started our new planning sessions.


Nice to read on what you guys are doing!

—
Dmitry Olshansky
CEO at Glow labs
https://sponsr.ru/glow
https://patreon.com/dmitry_glow_labs


D Language Foundation Monthly Meeting Summary for May 2023

2023-06-23 Thread Mike Parker via Digitalmars-d-announce
The monthly meeting for May 2023 took place on Friday the 5th at 
14:00 UTC. It lasted about an hour and a half. This was the last 
meeting before we started our new planning sessions.


The following people attended:

* Walter Bright
* Iain Buclaw
* Ali Çehreli
* Martin Kinkelin
* Dennis Korpel
* Mathias Lang
* Razvan Nitu
* Mike Parker
* Robert Schadek

## The summary

### Me
I started with an update on DConf submissions, reporting the 
numbers and some of the details on who and what. At that point, 
we had a total of 11 submissions from 8 people. I suggested we 
could put a panel in one of the open slots if we needed to and 
asked everyone to think of some ideas. (We ended up with 39 
submissions from 21 people, or 24 if you count the additional 
three members of the one team that submitted, and had no room at 
all for a panel).


Next, I told everyone we had secured some [sponsorship funding 
from Ahrefs](https://ahrefs.com/) and noted that I planned to use 
it for BeerConf. I hoped to rent the same space we rented last 
year at The Fox, so I detailed how I was going to work out paying 
for it via our event planner. Last year, Funkwerk provided the 
funding to the DLF, Átila and Walter each paid one or more nights 
on their credit cards, and the DLF reimbursed them. 
(Unfortunately, pub hire rates this year have massively increased 
over last year, putting them well beyond our budget. We've fallen 
back to the old way of designating a hotel as the BeerConf 
location, this time Travelodge Central City Road. The sponsorship 
funding will go toward our speaker reimbursement budget.)


Next, I gave an update on registrations. At that point, only one 
person had registered. I then talked about some email exchanges 
I'd had with some D shops about possible sponsorships. (Our 
current headcount as of June 23 is 43. I'm anticipating a final 
number in the neighborhood of 60-70, which would be in the same 
ballpark as last year.)


Walter brought up [Sebastiaan Koppe's presentation from last 
year](https://youtu.be/hJhNhIeq29U) on structured concurrency. He 
said he'd like to see Sebastiaan there this year for an update on 
the project, preferably as a follow-up presentation. He was 
excited about the project and felt it was a big deal in general 
and a big deal for D. Even if Sebastiaan decided not to move the 
project forward, Walter felt we should find someone to take it 
over. He said the ideas behind it were big and would be a nice 
thing for us. (We subsequently confirmed with Sebastiaan that he 
didn't have enough material yet for a follow-up talk).


I summed up by saying that DConf planning was on track and there 
were no issues so far.


Later, I remembered to mention that I had Robert's GitHub to 
Bugzilla migration script in hand. Now it was just waiting on me 
to make time to test it out, so I was the blocker now rather than 
Robert. He warned me about a command line option I should leave 
off while testing. (You can read about the progress on that [in 
the General 
forum](https://forum.dlang.org/thread/pfpoeaoihsqpohumj...@forum.dlang.org) and track our progress [on our GitHub projects page](https://github.com/orgs/dlang/projects/23?pane=issue=29572916.)).)


I asked about some issues that [had been migrated to the tools 
repository](https://github.com/dlang/tools/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc) from Bugzilla. Robert said that was not from him. Mathias jumped in to say that he had done it a long time ago when he took a stab at this. He had closed all of the Bugzilla issues he'd migrated, so there would be no duplications when migrating the open ones.


### Iain
Iain opened what turned into a 25-minute segment by saying that 
he hadn't gotten much done since the middle of March as he'd 
spent several long weekends on holiday. He'd released D 2.103.0 
in April and 2.103.1 on May 1. He had also pushed out the first 
beta of 2.104.0, and it was on track for release at the end of 
the month ([he announced it on June 
2](https://forum.dlang.org/thread/waigfuztqsqlhzouj...@forum.dlang.org)).


He said that GCC 13.1 had been released on April 26. That 
included version 2.103 of the D frontend in GDC.


Walter thanked Iain for handling the releases for us. Martin 
asked how long the release process takes nowadays. Iain said it 
depends on if he hits an issue building the Windows release. The 
Windows box, and *only* the Windows box, seems to hit a file 
system sync issue. There's a D program, `copyimports.exe`, that 
had replaced several make recipes to copy files during the build. 
Sometimes when building the releases, `make` tries to call that 
program before the linker has created the executable. When that 
happens, it aborts and Iain has to run the release process from 
the start again. [He had filed an 
issue](https://issues.dlang.org/show_bug.cgi?id=23486) for it.


If everything goes smoothly, it's about a two-hour process. The 
biggest part of that is waiting for the builds to 

Re: D Language Foundation Monthly Meeting Summary for December 2022

2023-01-28 Thread Walter Bright via Digitalmars-d-announce

On 1/28/2023 5:04 AM, Johan wrote:
Is there a document describing cases where removal of `@property` does not lead 
to an error but does lead to a change in behavior of code?


No.

We are considering a blanket removal of 3000+ instances of `@property`. The 
resulting compile errors I can fix (unless they happen in speculative 
instantiations, they may be harder to track down), but I am especially worried 
about changes in behavior that do not lead to compile warnings/errors.


It's been a while, but I think the only difference is if you're taking the 
address of a property. Without the @property, the address of the function will 
be taken. With @property, the address of the return value will be taken.


This will affect inference, such as `auto x = `

That will likely lead to type mismatch errors further down the line, but I can't 
guarantee it.


The best approach I can recommend is to remove the @propertys a handful at a 
time, checking them into git, and running your test suite to check for any 
failures. This will make `git bisect` invaluable in tracking down the cause of 
any errors that are missed by the test suite.




Re: D Language Foundation Monthly Meeting Summary for December 2022

2023-01-28 Thread Paul Backus via Digitalmars-d-announce

On Saturday, 28 January 2023 at 13:04:33 UTC, Johan wrote:
Is there a document describing cases where removal of 
`@property` does not lead to an error but does lead to a change 
in behavior of code?


We are considering a blanket removal of 3000+ instances of 
`@property`. The resulting compile errors I can fix (unless 
they happen in speculative instantiations, they may be harder 
to track down), but I am especially worried about changes in 
behavior that do not lead to compile warnings/errors.


Given that the only thing `@property` actually does is change the 
result of `typeof` in certain situations, the behavior changes 
will probably be things like the following:


```d
static if (typeof(foo.bar) == T) {
// foo has a `T bar` property
} else {
// doesn't have it
}
```

Currently, if `foo` has a `@property T bar();`, this code will 
take the first branch. If `@property` is removed, it will take 
the second.


Re: D Language Foundation Monthly Meeting Summary for December 2022

2023-01-28 Thread Johan via Digitalmars-d-announce

On Saturday, 21 January 2023 at 04:29:28 UTC, Mike Parker wrote:
The December meeting took place on the 3rd of the month at 
15:00 UTC. The following people were present:



Razvan noted that simplifying the language is part of our 
vision, and this seems like a good candidate. Walter agreed. 
Dennis suggested going through DRuntime and Phobos to look at 
all instances of `@property` and seeing if they could be 
removed. Walter agreed.


Is there a document describing cases where removal of `@property` 
does not lead to an error but does lead to a change in behavior 
of code?


We are considering a blanket removal of 3000+ instances of 
`@property`. The resulting compile errors I can fix (unless they 
happen in speculative instantiations, they may be harder to track 
down), but I am especially worried about changes in behavior that 
do not lead to compile warnings/errors.


Thanks a lot,
  Johan



Re: D Language Foundation Monthly Meeting Summary for December 2022

2023-01-24 Thread Walter Bright via Digitalmars-d-announce

On 1/23/2023 11:21 PM, Siarhei Siamashka wrote:

But the safety is not exactly great.


It does (and always has) resolved the #1 memory safety problem - buffer 
overflows.

If you use @safe, and the GC for allocations, it is just as memory safe as 
Python.



Re: D Language Foundation Monthly Meeting Summary for December 2022

2023-01-23 Thread Siarhei Siamashka via Digitalmars-d-announce

On Saturday, 21 January 2023 at 04:29:28 UTC, Mike Parker wrote:
Robert thinks Rust has won that game. We're the second person 
to the moon.


Do you mean second to last? The safety offered by D language 
currently only looks good when compared to C/C++, but is worse 
than pretty much any of the other popular/mainstream languages. D 
language even did not invent memory safety, because the other 
safe languages existed long before it (such as Python, etc.).


The strong point of D language is a convenient syntax combined 
with full native speed of compiled binaries. And also compilation 
speed for those who care about it. But the safety is not exactly 
great. And compatibility breaking habits are also bad. D can't 
realistically compete with Rust on the safety front and with 
C/C++ on the compatibility front.


Put `@safe` on top, disallow taking addresses of the stack, 
don't allow returning `ref`, and don't allow pointer 
arithmetic. That's as safe as we need to be.


I like this proposal. Will it actually happen?


Re: D Language Foundation Monthly Meeting Summary for December 2022

2023-01-23 Thread Hipreme via Digitalmars-d-announce

On Monday, 23 January 2023 at 21:26:56 UTC, H. S. Teoh wrote:
On Mon, Jan 23, 2023 at 08:43:03PM +, Adam D Ruppe via 
Digitalmars-d-announce wrote:

On Monday, 23 January 2023 at 20:06:46 UTC, H. S. Teoh wrote:
> There should be a tool for auto-generating JS wrappers, 
> perhaps even HTML snippets, so that a user literally can 
> just write:
> 
> 	import std;	// OK, maybe import std.wasm or something

>void main() { writeln("Hello, world!");
> and get a webpage that prints that message in a browser 
> window

> without writing a single line of JS or HTML.

http://webassembly.arsdnet.net/

Paste in
import std.stdio;
void main() { writeln("hello world"); }

to the box on that page

and get
http://webassembly.arsdnet.net/usertemp


Ahahahaha...  just like Adam to have already dunnit while I'm 
still twiddling my fingers wondering how to go about doing it. 
:-D  Now all we need is to package your little page up into a 
dub package or something (personally I prefer just a tarball) 
and we're good to go. :-D




Webassembly is a trash target but like been there done that.


Yeah TBH after dabbling with it a little I realized just how 
much it was still dependent on JS to do the heavy lifting.  You 
can't even pass strings across the JS/WASM boundary without 
truckloads of JS boilerplate.  The C-like API isn't officially 
part of the WASM standard yet, and they're still trying to 
figure out how GC might work. As far as I'm concerned, it's 
still early adopter tech, not yet stable enough for me to 
invest in.



Of course there are some caveats in what works, there have 
been come contributions coming in from hipreme recently to 
extend it a lil.


Nice.  Can it handle WebGL yet?  I betcha that'd be the second 
question a newbie to D would ask after asking about WASM. :-P



T



I was going to wait a little bit on that announcement. But yes, 
Hipreme Engine has already been completely ported to WASM. File 
loading, rendering with my abstraction, audio playing, 
image/audio decoding, input system, I've got pretty much 
everything working. WASM only changed in my engine how the file 
loading is handled internally. An example, It sends D delegates 
to JS execute when things are complete, so, there isn't anymore a 
sync API for loading files.


I have used arsd.cgi for making it easy to any D programmer host 
it with dub. I have posted on Learn like yesterday how to 
integrate the custom runtime with any dub project too, which is 
how I'm using to build for my engine.


The list of features being supported are:

- new
- string switch
- classes (inheritance and abstract included)
- interfaces
- every array operation
- every associative array operation
- RAII
- delegates and function pointers
- assertion
- throw should work. Catching don't
- RTTI (typeid and other things that depends on it)
- All the compile time features seems to be working finely
- main() and it will run as expected.
- string utf decoding


Unsupported features:

- static this/~this (should be easy to implement though, my 
engine has no need to do that, specially since it uses a lot of 
DLL for Android and Xbox and static this is quite buggy for it 
anyway)

- try/catch
- fibers

The problem on try/catch/fiber are the same. They need stack 
unwinding and from what I've looked, this implementation needs 
compiler developers to write a little of assembly to get this 
working, as I have no idea on how that works, I can't implement 
that.


I believe this covers like 90% the usage of one using the 
druntime.


I honestly don't care about throw/catch. Specially for gamedev 
which is my aim, the code doesn't need to "protect" from itself.


That being said, if one is not using Hipreme Engine and is using 
a lot of standard library, this one would need to implement a lot 
of it. Hipreme Engine implements a minimal phobos (as I don't 
implement the entire libc) for being used. Needless to say, some 
modules from phobos didn't need to adapt to WASM, so, 
`std.algorithm` and `std.traits` are being used from upstream.


std.math was possible to copy/paste without too much work to do 
(A matter of 5 lines I think).


I'm also using arsd.ttf to runtime create text textures, a 
library which does not uses any of my modules, no bug was found 
on it, so, this is mostly a matter of giving a little of effort 
and everything can be done.


Re: D Language Foundation Monthly Meeting Summary for December 2022

2023-01-23 Thread H. S. Teoh via Digitalmars-d-announce
On Mon, Jan 23, 2023 at 08:43:03PM +, Adam D Ruppe via 
Digitalmars-d-announce wrote:
> On Monday, 23 January 2023 at 20:06:46 UTC, H. S. Teoh wrote:
> > There should be a tool for auto-generating JS wrappers, perhaps even
> > HTML snippets, so that a user literally can just write:
> > 
> > import std; // OK, maybe import std.wasm or something
> > void main() { writeln("Hello, world!");
> > and get a webpage that prints that message in a browser window
> > without writing a single line of JS or HTML.
> 
> http://webassembly.arsdnet.net/
> 
> Paste in
> import std.stdio;
> void main() { writeln("hello world"); }
> 
> to the box on that page
> 
> and get
> http://webassembly.arsdnet.net/usertemp

Ahahahaha...  just like Adam to have already dunnit while I'm still
twiddling my fingers wondering how to go about doing it. :-D  Now all we
need is to package your little page up into a dub package or something
(personally I prefer just a tarball) and we're good to go. :-D


> Webassembly is a trash target but like been there done that.

Yeah TBH after dabbling with it a little I realized just how much it was
still dependent on JS to do the heavy lifting.  You can't even pass
strings across the JS/WASM boundary without truckloads of JS
boilerplate.  The C-like API isn't officially part of the WASM standard
yet, and they're still trying to figure out how GC might work. As far as
I'm concerned, it's still early adopter tech, not yet stable enough for
me to invest in.


> Of course there are some caveats in what works, there have been come
> contributions coming in from hipreme recently to extend it a lil.

Nice.  Can it handle WebGL yet?  I betcha that'd be the second question
a newbie to D would ask after asking about WASM. :-P


T

-- 
I see that you JS got Bach.


Re: D Language Foundation Monthly Meeting Summary for December 2022

2023-01-23 Thread Ali Çehreli via Digitalmars-d-announce

On 1/23/23 12:06, H. S. Teoh wrote:

> `.parallel` -- it's basically zero cost.  And for script-like helper
> utilities, .parallel is just the thing you need to get the job done in
> the shortest amount of time possible.  No need for anything more
> elaborate.

Yes! :)

As a heads up to those who haven't tried it yet, there are cases that 
may benefit from reducing the work unit size from its default value of 100.


Especially when it's about file processing and there are a few files 
that take disproportionate amount of processing time, then the thread 
that is working on the largest file(s) would be holding on to 99 others 
to process them later in serial fashion. This may happen when the other 
e.g. 20 threads have already finished their tasks.


So, I recommend experimenting with smaller work unit sizes; I currently 
use 1 for such file processing. Something like this:


  auto tp = new TaskPool(totalCPUs / 2);   // Thread count
  foreach (e; tp.parallel(elements, 1)) {  // Work unit size
// ...
  }
  tp.finish(); // Don't forget

as seen here:

  https://youtu.be/dRORNQIB2wA?t=1692

Ali



Re: D Language Foundation Monthly Meeting Summary for December 2022

2023-01-23 Thread Adam D Ruppe via Digitalmars-d-announce

On Monday, 23 January 2023 at 20:06:46 UTC, H. S. Teoh wrote:
There should be a tool for auto-generating JS wrappers, perhaps 
even HTML snippets, so that a user literally can just write:


import std; // OK, maybe import std.wasm or something
void main() { writeln("Hello, world!");
and get a webpage that prints that message in a browser window 
without writing a single line of JS or HTML.


http://webassembly.arsdnet.net/

Paste in
import std.stdio;
void main() { writeln("hello world"); }

to the box on that page

and get
http://webassembly.arsdnet.net/usertemp

Webassembly is a trash target but like been there done that.

Of course there are some caveats in what works, there have been 
come contributions coming in from hipreme recently to extend it a 
lil.


Re: D Language Foundation Monthly Meeting Summary for December 2022

2023-01-23 Thread H. S. Teoh via Digitalmars-d-announce
On Sat, Jan 21, 2023 at 04:29:28AM +, Mike Parker via 
Digitalmars-d-announce wrote:
[...]
> __CTFE writeln__
> 
> Razvan next brought up [a PR to implement a `__ctfeWriteln`
> built-in](https://github.com/dlang/dmd/pull/12412). It was currently
> stalled and needed Walter's approval. Walter asked Razvan to email him
> about it. He subsequently approved it.

This may seem like a small item, but it's a landmark!!  The first PR for
this was submitted back in 2011 (https://github.com/dlang/dmd/pull/296),
superceded in in 2012 (https://github.com/dlang/dmd/pull/692), revived
in 2016 (https://github.com/dlang/dmd/pull/6101), re-attempted in 2017
(https://github.com/dlang/dmd/pull/7082), submitted in its present form
in Apr 2021 (https://github.com/dlang/dmd/pull/12412), and finally
approved in Dec 2022.  This is monumental!

OTOH, it begs the question, is there any way to improve our present
process so that relatively small features like these don't take 11 years
to get implemented?


[...]
> ### Ali
> Ali reported that he had finished the new D program at work he had
> [told us about in the November
> meeting](https://forum.dlang.org/thread/citxnklerlvqmybyo...@forum.dlang.org).
> It had uncovered a performance issue with `std.file.dirEntries`. As
> for the program, he was happy with the end result.
> 
> He said he'd used `std.parallelism.parallel` again and speculated he's
> probably among the people who've used it most. He said it helps
> tremendously. It's very simple and everything becomes very fast.

Just wanted to chime in here to say that std.parallelism.parallel is
absolutely awesome, and I've been using it in a few of my projects for
what amounts to instant speed-up "for free".

The original design hit jackpot in making it as easy as possible to turn
a regular foreach loop into a parallel loop: just add .parallel to your
aggregate. This makes it trivial to test the performance gains of
parallelizing any given foreach loop (with independent iterations, of
course). You didn't have to invest a ton of time writing code to
instantiate task managers, task pools, create threads, manage threads,
wait for them to finish, etc.. For highly-specific performance tweaks,
you'd probably want to do all that, but for one-off quick evaluations of
whether a parallel approach is even worth it in the first place, the
design of .parallel is exactly the thing needed. Once you've confirmed
it works, you can, if needed, invest more effort into managing task
pools, etc..  If not, you haven't wasted any effort except writing
`.parallel` -- it's basically zero cost.  And for script-like helper
utilities, .parallel is just the thing you need to get the job done in
the shortest amount of time possible.  No need for anything more
elaborate.


[...]
> ### Walter
[...]
> He then said that he had noticed in discussions on HN and elsewhere a
> tectonic shift appears to be going on: C++ appears to be sinking.
> There seems to be a lot more negativity out there about it these days.
> He doesn't know how big this is, but it seems to be a major shift.
> People are realizing that there are intractable problems with C++,
> it's getting too complicated, they don't like the way code looks when
> writing C++, memory safety has come to the fore and C++ doesn't deal
> with it effectively, etc.

The inevitable is happening.  Has been happening, just on a smaller
scale.  But it will only grow.


[...]
> Robert thinks Rust has won that game. [...] Rust is also taking over
> some of the web world because it compiles easily to web assembly.

LDC already compiles to WASM.  It's a crucial first step.  But the
usability level of D in WASM is currently wayyy below what it would take
to win people over.  If we want to win this game, we need to get WASM
support to the point that you could in theory just recompile a D program
and have it work in WASM without any change.  Well, excepting, of
course, stuff that WASM fundamentally can't do.

Currently, you can compile individual functions, but you can't have
main(), you can't use Phobos, you can't use the GC, and you need to
write a lot of JS boilerplate to have your WASM D code interact with
anything outside its own little bubble.  Strictly speaking this isn't
D's problem, but that's cold comfort for anyone who wants to develop for
WASM in D.  Yeah, writing JS and HTML is part-and-parcel of targeting
WASM, but why can't we make our packaging better?  There should be a
tool for auto-generating JS wrappers, perhaps even HTML snippets, so
that a user literally can just write:

import std; // OK, maybe import std.wasm or something
void main() { writeln("Hello, world!");

and get a webpage that prints that message in a browser window without
writing a single line of JS or HTML.  All the JS boilerplate and HTML
tedium should be automatically taken care of, unless the user overrides
something.

Using WASM with D should be on the level of usability of appending
.parallel to your aggregate to 

Re: D Language Foundation Monthly Meeting Summary for December 2022

2023-01-22 Thread ryuukk_ via Digitalmars-d-announce

On Saturday, 21 January 2023 at 04:29:28 UTC, Mike Parker wrote:
Robert spoke up then to suggest deprecating @property and 
releasing a tool that removes it from a code base. Then we 
should apply that tool to create pull requests for all dub 
packages using @property, and then in a future release, we kill 
it. Anyone affected by the removal can then run the tool on 
their own code. He added that we should do this with any 
feature we decide to remove. This is the modern way of software 
development: you don't just break someone's code, you break 
their code and give them a tool to fix it.


I agree with that 100%, perhaps the feature should be built in 
into DUB, it can already detect the compilers and its version, so 
it can do all the heavy lifting already



Compile times keep getting slower. Why doesn't an LSP 
implementation come with DMD? Why don't we have a compiler 
daemon? Why aren't his build times sub one second?


All my projects  fully recompile in around 1s, i am sad when i 
see libraries that tank the compile speed to multiple seconds..


I ended up writing my own runtime and my own std, this is why i 
advocate for language enhancements rather than putting more 
template soup into the std


And i agree even more on the language server, Jan did an amazing 
work with serve-d, but it highlights 2 problems:


- slow to compile, wich makes contributing a pain
- DCD is basically too basic, doesn't even support most D 
features including templates




 SumType is really awesome, and we should really do something 
with it.



I agree, SumType is a great piece of library, it should be 
promoted as a language feature


The first involved dub's settings file, settings.json. As he 
put it, have you ever seen a program that asked you to write 
its settings using JSON? There had been some favorable 
responses to the idea of moving to YAML from some core 
contributors a few years back. It just needed someone to do it. 
He asked if we were okay with the move. Átila said we probably 
shouldn't keep JSON, but wondered if YAML was the best choice. 
What about TOML? This sparked a minor bikeshedding discussion, 
but there was no major opposition to Mathias's plan. (He has 
since opened a draft PR. Sönke Ludwig wants to see a broader 
discussion of this before finalizing it, so I expect Mathias 
will ask for community feedback at some point.)


I agree, json is not a good file format, it doesn't even support 
comments and is annoying to parse


A simple ini file would be 10x better already, no need 
complicated parsers like YAML or TML




Robert thinks Rust has won that game. We're the second person 
to the moon. Put @safe on top, disallow taking addresses of the 
stack, don't allow returning ref, and don't allow pointer 
arithmetic. That's as safe as we need to be. D's niche is on 
top of Rust and under TypeScript. That's where we need to be. 
That may not be the most popular opinion in the group, but he 
was alone in his room and no one could hurt him. He thinks C++ 
has been sinking, but it's probably going to keep sinking until 
he's dead and will never sink completely, but Rust will take 
that over. Rust is also taking over some of the web world 
because it compiles easily to web assembly.



I DISAGREE fully, Rust has not won "that game", there is a 
similar negative sentiment about rust, "too complicated", "too 
hard", "bad syntax", "slow to compile", etc


The future will be many languages, each being best at certain 
domains, we seen it with the rise of Go, doing what it do best 
with the cli/web/server/containers and nothing else


WASM? C/C++ won the game, Abobe is the perfect example, it's not 
simple hello world Rust people are doing, it's full commercial 
projects https://web.dev/ps-on-the-web/


Same with games



Re: D Language Foundation Monthly Meeting Summary for December 2022

2023-01-21 Thread Mike Shah via Digitalmars-d-announce

On Saturday, 21 January 2023 at 11:25:37 UTC, Sergey wrote:

On Saturday, 21 January 2023 at 04:29:28 UTC, Mike Parker wrote:
The December meeting took place on the 3rd of the month at 
15:00 UTC. The following people were present:


* Andrei Alexandrescu
* Walter Bright
* Ali Çehreli
* Dennis Korpel
* Mathias Lang
* Átila Neves
* Razvan Nitu
* Mike Parker
* Robert Schadek


Thank you Mike and all D foundation. It was very pleasant read.
I am surprised how many things and details were discussed in an 
hour and a half!


Agreed 100%, these summaries and the transparency into the 
decision making are great!


Re: D Language Foundation Monthly Meeting Summary for December 2022

2023-01-21 Thread Adam D Ruppe via Digitalmars-d-announce

On Saturday, 21 January 2023 at 04:29:28 UTC, Mike Parker wrote:
As far as he understood, the only time `@property` has an 
effect is when you take the address of a function it annotates.


It is when you do typeof(thing.prop), not 


Walter said that `__traits` is meant to be ugly.


We should revisit this decision. I don't think it ever made 
sense, and especially now with the benefit of hindsight it looks 
like a clear unforced error.


Robert said that doesn't solve his problem with compile times. 
He has a project that doesn't use much of Phobos, but compile 
times still suffer. The compiler is slow.


I'd like to know more about this project

He had previously dug into `hasUDA` and it was scary how many 
recursive expansions he found.


We should also revisit the abstractions here. The more I use 
these the more I've been landing on something like what Steve 
described in the dconf online. It is faster to compile, more 
flexible with runtime reuse, and just generally easier to 
document and use.


Then we can just let hasUDA and friends die.

That goes to the idea of caching or pre-compiling the template 
so that


Please note that the compiler does cache templates right now, and 
it takes gigs of memory. A lot of work would have to be done to 
make this good since work not done is still better than work 
unnecessarily done... and if it is cached too aggressively you 
just run out of memory.


If the end result is simple, we ought to be able to discard 
intermediate results, but the current implementation doesn't even 
allow this!


We don't have [...] `std.html` [...] We just need someone to 
write them.


Yes, if only some did that 13 years ago and has been continuously 
maintaining it ever since. If only ~someone~ wrote that.


Something was causing the struct configuration to take over 10 
minutes to compile.


If you did any string replacements that'd slaughter your 
performance, the ctfe engine is *extremely* bad at this.


In my arsd.jni, I had a string like:

enum code = q{
 PRETEND_MACRO void foo() { implementation; }
};

mixin(code.replace("PRETEND_MACRO", ""));
mixin(code.replace("PRETEND_MACRO", "static"));

Those two simple lines added 30 seconds to the compile time! Just 
copy/pasting it and replacing the pretend macro ahead of time cut 
95% of the build time off. It was astonishing.


You can optimize some of these with mutable buffers, avoid the 
concat operator in ctfe even if it means two passes through the 
data. This helps a lot.


But also just using template mixins tends to work well when you 
know the proper techniques.


Re: D Language Foundation Monthly Meeting Summary for December 2022

2023-01-21 Thread Sergey via Digitalmars-d-announce

On Saturday, 21 January 2023 at 04:29:28 UTC, Mike Parker wrote:
The December meeting took place on the 3rd of the month at 
15:00 UTC. The following people were present:


* Andrei Alexandrescu
* Walter Bright
* Ali Çehreli
* Dennis Korpel
* Mathias Lang
* Átila Neves
* Razvan Nitu
* Mike Parker
* Robert Schadek


Thank you Mike and all D foundation. It was very pleasant read.
I am surprised how many things and details were discussed in an 
hour and a half!




Re: D Language Foundation Monthly Meeting Summary for December 2022

2023-01-20 Thread Richard (Rikki) Andrew Cattermole via Digitalmars-d-announce
A very big problem we have right now is that we are on pretty shaky 
foundations with how symbols are represented at the binary image level 
due to DLL's not be fully implemented in dmd.


Any work for things like incremental compilation must be done with the 
knowledge that the foundations right now are just not there to do this 
reliably cross platform.


I.e. is incredibly easy to run into: 
https://learn.microsoft.com/en-us/cpp/error-messages/tool-errors/linker-tools-warning-lnk4217?view=msvc-170


I believe we are going to have to modify export (and with that removing 
it as a visibility modifier) quite significantly.


In the C/C++ world you can use macros and compiler level defines to swap 
out DllImport and DllExport, or remove it all together. We can't do 
that. Which means we are going to need to make export a whole lot 
smarter if we don't want to run into these issues on Windows.


D Language Foundation Monthly Meeting Summary for December 2022

2023-01-20 Thread Mike Parker via Digitalmars-d-announce
The December meeting took place on the 3rd of the month at 15:00 
UTC. The following people were present:


* Andrei Alexandrescu
* Walter Bright
* Ali Çehreli
* Dennis Korpel
* Mathias Lang
* Átila Neves
* Razvan Nitu
* Mike Parker
* Robert Schadek

The meeting lasted around an hour and a half.

## The summary

### Dennis
Dennis opened by reporting that he had begun working on a DIP to 
use `@default` as a means of resetting attributes. He had a 
question about what it should affect: should it reset all 
attributes (including visibility attributes like `private`), or 
only function attributes? The unanimous consensus was that it 
should only affect function attributes. He has since [submitted 
the DIP for Draft Review](https://github.com/dlang/DIPs/pull/236).


### Razvan
__@property__

In his ongoing effort to resolve old Bugzilla issues, Razvan had 
encountered a number of old issues regarding `@property`. Walter 
and Andrei had said in the past that we shouldn't support the 
feature anymore, and it's often recommended that people not use 
it. But people do still use it. So what are we going to do about 
it? Should we attempt to fix these old issues? Should we 
deprecate `@property`?


Walter suggested one possible approach is just to leave it as is. 
Those who see a benefit in using it can continue to do so, and 
those who don't can avoid it. He hadn't looked into the issues 
surrounding `@property` in a long time and asked if this was a 
viable approach. As far as he understood, the only time 
`@property` has an effect is when you take the address of a 
function it annotates. Razvan said `@property` sometimes 
interacts with other features in unexpected ways and the spec 
says nothing about what it's supposed to do. Maybe we could just 
add something to the spec saying it shouldn't be used.


Andrei said that's not what a spec is supposed to do. A spec 
tells you what happens when you, e.g., move your hand like this. 
A spec doesn't give you advice. If we're keeping it, we should 
spec it out even if we then never touch it again. Guides will say 
whether or not to use it. But we can't just leave it hanging 
unspecified.


Ali noted that he didn't include it in his book other than to say 
using it is discouraged.


Razvan asked how he should handle these `@property` issues in 
Bugzilla. Find someone to fix them or just document the behavior? 
Walter said the latter. He also suggested adding a recommendation 
to avoid `@property` in the best practices section of the 
documentation.


Robert spoke up then to suggest deprecating `@property` and 
releasing a tool that removes it from a code base. Then we should 
apply that tool to create pull requests for all dub packages 
using `@property`, and then in a future release, we kill it. 
Anyone affected by the removal can then run the tool on their own 
code. He added that we should do this with any feature we decide 
to remove. This is the modern way of software development: you 
don't just break someone's code, you break their code and give 
them a tool to fix it.


Átila said that would work fine here except in cases where 
someone is taking the address of an `@property` function. We 
aren't going to be able to make a tool for that. Robert said 
that's true but do it anyway. The tool should tell them, "This 
doesn't work for this case. Sorry." He said that if we test the 
tool with all the D code we can find on GitHub, he'd bet beers at 
DConf that we'd find no more than ten instances of code that 
would break.


After more discussion in a similar vein, Razvan said what it 
comes down to is that this is a broken feature and we don't know 
how to fix it. We need to just deprecate it. We shouldn't be 
keeping broken features around if we aren't going to fix them. 
Robert agreed. A tool to remove it from code will handle most 
cases, and for those people whom it doesn't help we'll have to 
help them migrate.


There was then some discussion about whether or not `@property` 
is fixable. Dennis brought up the case of when the property is a 
callable (and linked the [docs for Adam Ruppe's `arsd.jsvar` 
module](http://arsd-official.dpldocs.info/arsd.jsvar.html) as an 
example of the problem manifesting; see Adam's comment in the 
example code and his notes near the bottom of the page). If we 
want to support this kind of type that can store callables, then 
we need some kind of fix. Walter said that's an ambiguity for 
which no one had been able to settle on a solution.


Andrei said one intent of `@property` is to be a replacement for 
a data member. That's a good goal. Any improvement of `@property` 
should serve that purpose. If there's an ambiguity, it should go 
in favor of that. Átila thought that made sense. If there's an 
ambiguity, then just pretend it's a field. If there's only one 
set of parentheses, you call the callable. If there are no 
parentheses, you call the callable.


Robert countered by saying we're trying to make D simpler, and 
`@property` 

Re: D Language Foundation Monthly Meeting Summary for November 2022

2023-01-20 Thread Dukc via Digitalmars-d-announce

On Thursday, 12 January 2023 at 11:47:26 UTC, Mike Parker wrote:

### Petar
One of the things Petar wants to do toward that end involves 
the Nix package manager. He's been using it for the past few 
years. There are already packages for the three D compilers, 
but they only target the latest stable releases. He would like 
to create Nix package expressions for "as old as practical" 
versions of the compilers.


It seems we have a common goal. I'm happy to give Petar 
modification rights to https://github.com/dukc/oldDDerivations 
(the one that's linked from DMD download page) if he wants. Also 
if he wants to convert that to also include old LDC and GDC 
versions, permission granted!


(Sent this privately to him last weekend but since I received no 
reply I assume I have wrong Email address.)


Re: D Language Foundation Monthly Meeting Summary for November 2022

2023-01-13 Thread Ki Rill via Digitalmars-d-announce

On Thursday, 12 January 2023 at 11:47:26 UTC, Mike Parker wrote:

[...]


Thank you so much for these updates! It makes a whole lot of a 
difference to see the progress that is being done. It turns out 
there is so much work both mentally and programmatically that is 
undertaken...





Re: D Language Foundation Monthly Meeting Summary for November 2022

2023-01-13 Thread Daniel Kozak via Digitalmars-d-announce
Dne čt 12. 1. 2023 12:51 uživatel Mike Parker

> ...
> Next, Razvan reported he had been looking at a PR to implement
> the `throw` attribute for functions. The problem with it was that
> it potentially breaks code that uses the `getAttributes` trait
> when testing for the presence of `nothrow`. Walter said that the
> compiler internally should just view `throw` as the absence of
> `nothrow` rather than as a separate attribute. Its only purpose
> is to turn `nothrow` off, so ideally code using `getAttributes`
> shouldn't need to change at all. It's not like
> `@safe`/`@trusted`/`@system`, which is a tri-state. With the
> binary `nothrow`/`throw` state, you only need to care if a
> function is `nothrow` or not. Martin agreed.
>
> With that, Andrei brought up past debates about `attribute(true)`
> and `attribute(false)`. Walter finds that syntax clunky. It was
> easy to use `throw` to turn off `nothrow` since it's already a
> keyword. Petar brought up `pure` and `@nogc`. This led to a long
> discussion about attribute algebra, attribute soup, negative and
> positive attributes for disabling each other, attribute
> inference, circular dependencies, and tangential topics. Finally,
> Dennis gave his perspective and mentioned another proposal that
> had come up in the past: using the `default` keyword to establish
> a default set of attributes for non-templated, unannotated
> functions, which could be used to "reset" the attribute state of
> any function. Walter thought that `default` to reset state is a
> great idea, and that we should think about that before


https://wiki.dlang.org/DIP79


Re: D Language Foundation Monthly Meeting Summary for November 2022

2023-01-12 Thread Mike Shah via Digitalmars-d-announce

On Thursday, 12 January 2023 at 11:47:26 UTC, Mike Parker wrote:
I fell behind on my meeting summaries in the run up to DConf 
Online. The December summary will follow in a few days.


[...]


Thanks for these reports -- great to have such transparency and 
get updates on the work in progress. Great work everyone!


Re: D Language Foundation Monthly Meeting Summary for November 2022

2023-01-12 Thread Adam D Ruppe via Digitalmars-d-announce

On Thursday, 12 January 2023 at 11:47:26 UTC, Mike Parker wrote:
Andrei asked Razvan about the status of [the ProtoObject 
DIP](https://github.com/dlang/DIPs/blob/master/DIPs/other/DIP1042.md). Razvan said that Adam Ruppe had raised some valid complaints in the DIP's pull request thread, and those were reinforced in the community review.

[...]
Andrei thinks it's worth making an effort to resolve any issues 
the proposal has.


What I'd recommend doing is migrating the existing Object to 
match the desired capabilities.


The biggest complaint people have that has no real solution in 
the existing language is the unconditional presence of the 
monitor field. I actually think you could infer this without too 
much of a breaking change; the presence of a `synchronized(this)` 
in the same module as the class definition could infer its 
necessity and add it to the type (this would also cover 
`synchronized` classes and methods, of course), but in other 
modules you couldn't be so sure (since they can be compiled 
separately).


This would break anyone who uses synchronized(random_object) 
(which includes me btw) but the migration would be so simple 
(change the type) and it'd retain compatibility with old 
compilers so I think it'd be a minimum amount of pain.


Other option is to just remove it and require everyone to use an 
explicit Mutex field, which also has a number of advantages, but 
is more invasive and means removing synchronized classes and 
methods as language features entirely.


Among other complaints in that dip were opEquals, which is 
already fixed (and tbh could just be removed but i think it is 
fairly harmless to keep), factory which is slated for removal 
already, opCmp (which currently throws if you call it! so it 
isn't used by anything and could be simply removed), and opHash 
which recently was subjected to a random breaking change anyway 
(and a bad one that didn't achieve anything, but it shows that 
breakage is obviously on the table), so everything else already 
is being addressed in Object itself.


Re: D Language Foundation Monthly Meeting Summary for November 2022

2023-01-12 Thread jmh530 via Digitalmars-d-announce

On Thursday, 12 January 2023 at 11:47:26 UTC, Mike Parker wrote:

[snip]

### Andrei
Andrei asked Razvan about the status of [the ProtoObject 
DIP](https://github.com/dlang/DIPs/blob/master/DIPs/other/DIP1042.md). Razvan said that Adam Ruppe had raised some valid complaints in the DIP's pull request thread, and those were reinforced in the community review. Razvan and the primary author had no answer for those complaints at the time. The primary author eventually decided to move on (I have belatedly marked the DIP as "Withdrawn"). Andrei thinks it's worth making an effort to resolve any issues the proposal has.


[snip]


Thanks, as always.

Adam's complaints on ProtoObject start here
https://github.com/dlang/DIPs/pull/219#issuecomment-954740989


D Language Foundation Monthly Meeting Summary for November 2022

2023-01-12 Thread Mike Parker via Digitalmars-d-announce
I fell behind on my meeting summaries in the run up to DConf 
Online. The December summary will follow in a few days.


The November 2022 monthly meeting took place on the 4th of the 
month at 14:00 UTC. It lasted about two-and-a-half hours. The 
following were present:


* Andrei Alexandrescu
* Walter Bright
* Iain Buclaw
* Ali Çehreli
* Max Haughton
* Martin Kinkelen
* Petar Kirov
* Dennis Korpel
* Razvan Nitu

Átila Neves was present at the beginning but had to leave early.

## The summary

### Iain
Iain started by noting that the digitalmars.com domain had gone 
down for about 6 hours the week before because it hadn't been 
renewed. He was thankful to Mathias Lang for notifying him so 
quickly and to Walter for being so responsive when Iain called 
him about it around 5:00 am PST. Walter is the one most at risk 
in that situation if someone else snatches up the domain, as 
Digital Mars is his business, but it does raise the question: why 
are our D pipelines failing when digitalmars.com goes down? Iain 
believes it's because the Digital Mars FTP site is being queried 
somewhere in the build scripts. It might be a good idea to have a 
mirror for that. Walter agreed that D services shouldn't be 
relying on digitalmars.com.


Also the previous week, one of the build hosts in the autotester 
died for about 12 hours. When this happens, there's practically 
nothing we can do. The autotester is only building dmd and 
DRuntime, and is no longer running any tests. Given that it's 
being used for less than less, Iain proposed ripping out all the 
GitHub hooks for the autotester, maybe starting in January 2023. 
No one argued against it.


He then gave us an update on the 2.101 release. At the time, the 
release candidate had been announced and he expected the final 
release to go out in the middle of November. He subsequently 
announced it on November 15.


He then had a question for me. I had set up an admin group on 
Hetzner Cloud, and he wondered what it was intended for. I 
answered that this is where we would be setting up the services 
the foundation will be taking control of from the ecosystem. Iain 
said that out of coincidence, he and Mathias Lang had both bought 
bare metal servers on Hetzner to use in the BuildKite CI 
pipelines. This reduced individual pipelines from 1 hour per pull 
request to 18 minutes, making BuildKite less of an issue when a 
big load of changes comes through. It also means we can add more 
projects to our BuildKite CI. (For context, [Mathias reported in 
the October 
meeting](https://forum.dlang.org/post/jzqabfjmdwveeatpd...@forum.dlang.org) that after BuildKite had gone down a few days prior, he restructured it so that it was running from his own server. This gave us control over updating the dependencies, something we didn't have before. Unfortunately, it ended up being slower. The servers he and Iain are paying for rectify that problem. Thanks to them both!)


There was then a discussion that touched on several topics. A 
couple of highlights: dlang.org is still with Walter's registrar, 
and we need to transfer it to the DLF's account; should we also 
transfer digitalmars.com (answer: no); in moving the 
downloads.dlang.org content from S3 to Backblaze, Iain realized 
several packages were missing, but they were present at 
ftp.digitalmars.com and he pulled them from there; does it matter 
if the main dlang.org site is hosted on Hetzner servers in Europe 
vs. North America (answer: probably not).


### Martin
Martin let us know the next LDC release would be a bit later this 
time. He hadn't had much time and still needed to work out some 
details regarding the DMD and DRuntime repository merge.


He had just started testing the 2.101.0 RC 1 against the Symmetry 
codebase. So far it wasn't too bad, but it was hard to tell for 
sure as a few dub packages needed to be updated. One benefit that 
was already visible was that it had uncovered some existing bugs 
related to copy constructors. He had also found a regression 
which he was going to file. Other than that, he congratulated 
Dennis for some nice new diagnostics regarding function 
inference, which means e.g., it's no longer necessary to figure 
out manually which line in a function causes it to be inferred as 
`@system` rather than `@safe`.


The newest dub version had shown no regressions so far in testing 
on the Symmetry projects he tested. That's good progress. The new 
colored output is also very nice.


Petar asked if Martin planned to incorporate LLVM 15 into the 
next release or delay to the one after. Martin said that Nicholas 
Wilson and someone else had already taken care of migrating to 
LLVM 15. According to their tests, LLVM 15 *should* be working, 
but there was some work to be done before Martin could run all of 
the tests with LLVM 15. First, he needed to update the LDC fork 
of LLVM to LLVM 15 for all targets. Then he needed to overcome an 
issue with testing vanilla LLVM via GitHub Actions, as the 

Re: D Language Foundation Monthly Meeting Summary for March 2022

2022-04-06 Thread Harrison Ford (hatf0) via Digitalmars-d-announce

On Monday, 4 April 2022 at 10:59:39 UTC, Mike Parker wrote:

### D ecosystem services
While we were waiting for everyone to arrive, I gave an update 
on the status of our plans to bring all of the ecosystem 
services under our control. At that point, I had received 
information on the resource requirements of services maintained 
by Vladimir Panteleev (the D forums, D wiki, and more), Jan 
Knepper (the main dlang.org site, the newsgroup server, the D 
blog), and Petar Kirov (run.dlang.io and tour.dlang.io). I also 
had received affirmative responses from those three to my 
invitation to join our next server meeting. Since that time, I 
have also received the same from Sönke Ludwig (code.dlang.org).


Throughout February, I had received advice from different 
people about which name registrar we should sign up with. At 
the meeting, everyone agreed I should just pick one and be done 
with it. I have since signed up with Namecheap. Now I'm waiting 
for the owner of dlang.io to get back to me about handing it 
over to us (he brought it up in an email to me back in 
January). Walter has always maintained dlang.org, and he will 
transfer it to our new account in the future.


BTW, if the foundation ever wants to take https://dla.ng off of 
my hands, please feel free to reach out and we could arrange 
something — I’d be happy to transfer the domain over. Only main 
thing is finding a registrar that supports the .ng domain, I’m 
not sure that Namecheap supports them.


Re: D Language Foundation Monthly Meeting Summary for March 2022

2022-04-05 Thread Arun via Digitalmars-d-announce

On Monday, 4 April 2022 at 10:59:39 UTC, Mike Parker wrote:
The monthly meeting for March 2022 took place on March 4 at 
15:00 UTC. The following foundation staff and contributors were 
present:


[...]


Thanks for summarizing!


Re: D Language Foundation Monthly Meeting Summary for March 2022

2022-04-05 Thread Bastiaan Veelo via Digitalmars-d-announce

On Monday, 4 April 2022 at 10:59:39 UTC, Mike Parker wrote:

### D ecosystem services
While we were waiting for everyone to arrive, I gave an update 
on the status of our plans to bring all of the ecosystem 
services under our control. At that point, I had received 
information on the resource requirements of services maintained 
by Vladimir Panteleev (the D forums, D wiki, and more), Jan 
Knepper (the main dlang.org site, the newsgroup server, the D 
blog), and Petar Kirov (run.dlang.io and tour.dlang.io). I also 
had received affirmative responses from those three to my 
invitation to join our next server meeting. Since that time, I 
have also received the same from Sönke Ludwig (code.dlang.org).


The dub documentation, hosted at https://dub.pm should also be in 
that list. Currently there is a problem updating that site, see 
https://github.com/dlang/dub-docs/issues/41.


-- Bastiaan.


Re: D Language Foundation Monthly Meeting Summary for March 2022

2022-04-04 Thread Dennis via Digitalmars-d-announce

On Monday, 4 April 2022 at 10:59:39 UTC, Mike Parker wrote:
One of the problems with going to DIP 1000 by default is what 
to do about `ref return scope` ambiguity. Walter had finally 
come up with a fix that was half-implemented. Some of the PRs 
had been merged, but others were stalled. Those stalled PRs are 
blocking progress on DIP 1000, and he wants to get those moving.


Status update: the `ref return scope` ambiguity is fixed now ([PR 
13693](https://github.com/dlang/dmd/pull/13693)), as well as the 
invalid [pure->scope 
inferrence](https://github.com/dlang/dmd/pull/12989) and 
[inout->return 
inference](https://github.com/dlang/dmd/pull/12689). Currently, 
most remaining open issues are related to nested functions. Atila 
resumed work on making dip1000 the default [by printing 
deprecation messages for scope 
errors](https://github.com/dlang/dmd/pull/12578).


Re: D Language Foundation Monthly Meeting Summary for March 2022

2022-04-04 Thread H. S. Teoh via Digitalmars-d-announce
On Tue, Apr 05, 2022 at 12:23:54AM +1200, rikki cattermole via 
Digitalmars-d-announce wrote:
[...]
> +1 infer everything!

I agree, in principle.  The ideal is 100% inference.  Unfortunately,
that's unlikely to be actually reachable. Nevertheless, we should
definitely move in the direction of more inference vs. less.


T

-- 
Life is complex. It consists of real and imaginary parts. -- YHL


Re: D Language Foundation Monthly Meeting Summary for March 2022

2022-04-04 Thread Adam D Ruppe via Digitalmars-d-announce

On Monday, 4 April 2022 at 12:23:54 UTC, rikki cattermole wrote:

+1 infer everything!


Well, you *can't* infer everything, but private things I do think 
you can get away with since they're not allowed to be virtual.


Inferring more on non-virtual things is a maybe, you still have 
to think about the abi mismatches there but that might work.




Re: D Language Foundation Monthly Meeting Summary for March 2022

2022-04-04 Thread rikki cattermole via Digitalmars-d-announce




## Razvan
### Reference counting
Going through some old DRuntime pull requests, Razvan found several PRs 
adding reference-counted things (RCArray, RCPointer, etc) from a period 
when reference counting was a hot topic in the D community. The problem 
with reference counting in D has been the transitivity of qualifiers 
(e.g., you can't reference count an immutable object). Razvan remembered 
he had drafted [a DIP for a `__metadata` storage 
class](https://github.com/RazvanN7/DIPs/blob/Mutable_Dip/DIPs/DIP1xxx-rn.md). 
In a forum discussion on that DIP, Timon Gehr had pointed out two 
fundamental issues with it (anyone interested can see [the forum 
discussion 
thread](https://forum.dlang.org/post/3f1f9263-88d8-fbf7-a8c5-b3a2a5224...@erdani.org)). 
Ultimately Razvan's progress stalled and he never submitted the DIP.


I stand by my comments about read only memory.

A person can still at runtime mark memory as read only, unfortunately I 
don't know how you can detect this in a compiler and fail compilation 
because of it.


My preference continues to be three new operator overloads methods for 
classes and structs.


opRefAdd, opRefSub, opReadOnly.

The first two are like destructors, they ignore const.
The last tells the type (must not be const) that it is going into read 
only memory allowing it to know that it is no longer writable. It would 
be required if reference counting methods are implemented.


The main difference to __mutable which was argued that it should not 
allow going into read only memory is that: the compiler can't detect if 
the user does it, but can prevent itself from doing it. That gives a 
very false sense of guarantee that it will not be.


Where as with this approach it is clearly the responsibility of the one 
who put it into read only memory to call the method and for the 
programmer who wrote the type to have done the right thing in the 
methods. Giving no guarantees and hence no sense of security.



### Attribute inference on private functions
Mathias thinks that inference on private functions is something everyone 
would want. It's something he heard Walter mention in the past. The 
current blocker on that is that attribute inference doesn't work for 
recursive functions. He thinks the solution is simple: you should assume 
that the function has all the attributes; if you recurse on yourself, 
the rest of the code will help you infer the attributes. Walter said 
that makes sense; the more attribute inference we can do the better.


+1 infer everything!

I suspect you can do some quick and cheap tests in the parser to 
determine if given a function scope if a given attribute such as @safe 
should be inferred later on.


If done well, it could mean @safe by default!


## Andrei
He started by arguing that reflection on built-in bitfields is "just 
warped". You're going to have things less than 8-bit and to which you 
cannot take a pointer. Any proposal for bitfields must account for that. 
Walter's solution of having `__traits(getMembers)` return an aggregate 
is only half of the story. What about the getters and setters? A library 
solution has those, but for the built-ins, they're compiler magic. 
Martin agreed (and this is his main sticking point; he brought it up in 
the last meeting).


enum __c_bitfield;
is(typeof(value.bitfield) == __c_bitfield)

As long as .sizeof is the real size accounting for "empty" bits and 
alignment that should be a fairly safe way to go. It accounts for a 
single pointer and requires a special reflection mechanism to get the 
tuples of number of bits + names + types.


Re: D Language Foundation Monthly Meeting Summary for March 2022

2022-04-04 Thread Mike Parker via Digitalmars-d-announce

On Monday, 4 April 2022 at 10:59:39 UTC, Mike Parker wrote:


### DIP 1008 and Phobos


Razvan has opened these two issues for this:

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


D Language Foundation Monthly Meeting Summary for March 2022

2022-04-04 Thread Mike Parker via Digitalmars-d-announce
The monthly meeting for March 2022 took place on March 4 at 15:00 
UTC. The following foundation staff and contributors were present:


* Andrei Alexandrescu
* Walter Bright
* Iain Buclaw
* Ali
* Martin Kinkelin
* Dennis Korpel
* Mathias Lang
* Razvan Nitu
* Mike Parker

This was a three-hour meeting that covered a lot of ground.

I want to note that when someone makes an argument or suggestion 
in these meetings, they usually use a good bit of dialogue to 
make their case. And, more often than not, there is some amount 
of discussion as people reinforce the points raised. For context, 
and in anticipation of reader questions or inferences, I 
sometimes note some of the points raised when I think it's useful 
to do so and the points aren't too complex for a concise summary, 
but I'll usually leave out things people say that reinforce those 
points. My goal isn't to summarize everything everyone said, but 
just the major points and counterpoints raised. Sometimes, when I 
feel like I can't concisely summarize the larger context of 
someone's argument, or if the larger context isn't relevant, I'll 
just condense things down to "so-and-so suggested x". I just want 
to make it clear that there is always more to that "x" than just 
"x".


## Me
### D ecosystem services
While we were waiting for everyone to arrive, I gave an update on 
the status of our plans to bring all of the ecosystem services 
under our control. At that point, I had received information on 
the resource requirements of services maintained by Vladimir 
Panteleev (the D forums, D wiki, and more), Jan Knepper (the main 
dlang.org site, the newsgroup server, the D blog), and Petar 
Kirov (run.dlang.io and tour.dlang.io). I also had received 
affirmative responses from those three to my invitation to join 
our next server meeting. Since that time, I have also received 
the same from Sönke Ludwig (code.dlang.org).


Throughout February, I had received advice from different people 
about which name registrar we should sign up with. At the 
meeting, everyone agreed I should just pick one and be done with 
it. I have since signed up with Namecheap. Now I'm waiting for 
the owner of dlang.io to get back to me about handing it over to 
us (he brought it up in an email to me back in January). Walter 
has always maintained dlang.org, and he will transfer it to our 
new account in the future.


### Flipcause
I informed everyone that Andrei and I had decided to terminate 
our Flipcause account at the end of this year. We signed up for 
it initially with the hope that it would be beneficial to us, but 
in the end, we decided the value we get from it isn't worth the 
annual fee (if we had a higher volume of donations, it would 
really be great for us because most donors there cover the 
transaction fees, an option PayPal doesn't offer, so it could 
potentially pay for itself). I'll miss the ability to set up 
targeted campaigns with a variety of optional features to choose 
from, but the annual membership fee we pay them would be better 
spent on server hosting. (That said, if you plan to register for 
DConf '22, please use [the Flipcause page we've set up for 
it](https://www.flipcause.com/secure/cause_pdetails/MTQ3NjEy)). 
For those of you making monthly donations through Flipcause, I'll 
contact you later this year to notify you when we're ready to 
shut it down.


### DConf registration rates
In the middle of the meeting, I received an email from Symmetry 
with their proposed DConf registration rates. They asked me to 
get feedback from the foundation staff. Given the fortuitous 
timing, I interrupted the meeting to get everyone's opinion. They 
all gave the thumbs up. Those are the rates [you now see at 
dconf.org](https://dconf.org/2022/index.html#register). Walter 
suggested we also offer a hardship rate as we have done at past 
conferences. I have added information about that to the site.


## Martin
Martin let us know that LDC was prepared for the next major 
release. He said there was one thing he was getting ready to do 
that he had been wanting to do for years: change the `extern(D)` 
calling convention to not reverse the formal parameters anymore. 
Until very recently, there was a coupling between DRuntime and 
the compiler which depended on this reverse order. This is an 
issue that has persistently popped up in the forums. It 
especially was a problem when someone was trying to fix Dwarf 
emission.


One problem with this is that naked asm functions that take 
multiple parameters, and which assume parameters are in specific 
registers or stack slots, will break. He had to change some 
things in Phobos, which makes a significant diff between LDC 
Phobos and upstream Phobos. It will be easier if DMD can follow 
suit.


## Iain
### Deprecations
Iain has been ending the deprecation period of things that were 
deprecated and forgotten about, and adding end dates for 
deprecated features that did not have one. He iterated a few 
examples, some of 

Re: D Language Foundation Monthly Meeting Summary (September 24, 2021)

2022-01-14 Thread Konstantin via Digitalmars-d-announce

On Friday, 14 January 2022 at 07:14:25 UTC, Mike Parker wrote:

On Friday, 14 January 2022 at 06:12:51 UTC, Konstantin wrote:



Hello, Max!
Are there any news or estimates about the roadmap?


I posted a note about it in a meeting summary or a blog post 
(can't remember where) a few weeks ago. But the short of it: in 
the process of revising it, I realized it needs a complete 
rewrite. The document we ended up with isn't what we said we 
wanted.


The rewrite will be a high priority for me once I wrap up the 
DConf Online Q & A videos and get the DIP queue moving again. 
I'll need more input from other people, and the time that takes 
is never predictable, but I intend to get it published in the 
first quarter of this year.


And for the record, it's *not* a roadmap (assuming roadmap 
means a step-by-step plan for language evolution). It's broader 
than that. The intent is to outline Walter's and Atila's 
current focus, their longer-term goals, and areas where 
contributors can direct their efforts. It's a living document 
that will evolve as priorities change.

Thanks, Mike!
I will be waiting for news!


Re: D Language Foundation Monthly Meeting Summary (September 24, 2021)

2022-01-13 Thread Mike Parker via Digitalmars-d-announce

On Friday, 14 January 2022 at 06:12:51 UTC, Konstantin wrote:



Hello, Max!
Are there any news or estimates about the roadmap?


I posted a note about it in a meeting summary or a blog post 
(can't remember where) a few weeks ago. But the short of it: in 
the process of revising it, I realized it needs a complete 
rewrite. The document we ended up with isn't what we said we 
wanted.


The rewrite will be a high priority for me once I wrap up the 
DConf Online Q & A videos and get the DIP queue moving again. 
I'll need more input from other people, and the time that takes 
is never predictable, but I intend to get it published in the 
first quarter of this year.


And for the record, it's *not* a roadmap (assuming roadmap means 
a step-by-step plan for language evolution). It's broader than 
that. The intent is to outline Walter's and Atila's current 
focus, their longer-term goals, and areas where contributors can 
direct their efforts. It's a living document that will evolve as 
priorities change.


Re: D Language Foundation Monthly Meeting Summary (September 24, 2021)

2022-01-13 Thread Konstantin via Digitalmars-d-announce

On Friday, 1 October 2021 at 23:53:46 UTC, max haughton wrote:

On Friday, 1 October 2021 at 21:48:23 UTC, Konstantin wrote:

On Friday, 1 October 2021 at 12:32:20 UTC, Mike Parker wrote:

Attendees:

Andrei Alexandrescu
Walter Bright
Iain Buclaw
Ali Çehreli
Max Haughton
Martin Kinkelin
Mathias Lang
Razvan Nitu
Mike Parker

[...]


Offtopic:
Are there any plans to publish the roadmap for the language 
and stdlib development on wiki or elsewhere?


Mike is editing it at the moment. It will probably go into the 
foundation Ddoc sources (Not a huge of the wiki since it's not 
tracked in git)


Hello, Max!
Are there any news or estimates about the roadmap?


Re: D Language Foundation Monthly Meeting Summary (September 24, 2021)

2021-10-19 Thread Imperatorn via Digitalmars-d-announce

On Tuesday, 12 October 2021 at 19:21:50 UTC, Ben Jones wrote:

On Wednesday, 6 October 2021 at 06:23:01 UTC, WebFreak001 wrote:

On Friday, 1 October 2021 at 12:32:20 UTC, Mike Parker wrote:

[...]
new slogan
[...]


want to generate controversial heat?

Do it in D (DIID)

(careful with there being a trademark for DiiD though)


How about "from prototype to production" or something?  I was 
reading yesterday about how both memcached and redis were 
originally written in scripting languages and then rewritten in 
C for performance.


Kinda like this one


Re: D Language Foundation Monthly Meeting Summary (September 24, 2021)

2021-10-19 Thread WebFreak001 via Digitalmars-d-announce

On Tuesday, 19 October 2021 at 16:17:43 UTC, Andrea Fontana wrote:

On Wednesday, 6 October 2021 at 06:23:01 UTC, WebFreak001 wrote:

On Friday, 1 October 2021 at 12:32:20 UTC, Mike Parker wrote:

[...]
new slogan
[...]


want to generate controversial heat?

Do it in D (DIID)

(careful with there being a trademark for DiiD though)


You mean:

Just D it


That's awesome! using that as my discord status now.


Re: D Language Foundation Monthly Meeting Summary (September 24, 2021)

2021-10-19 Thread Andrea Fontana via Digitalmars-d-announce

On Wednesday, 6 October 2021 at 06:23:01 UTC, WebFreak001 wrote:

On Friday, 1 October 2021 at 12:32:20 UTC, Mike Parker wrote:

[...]
new slogan
[...]


want to generate controversial heat?

Do it in D (DIID)

(careful with there being a trademark for DiiD though)


You mean:

Just D it


Re: D Language Foundation Monthly Meeting Summary (September 24, 2021)

2021-10-12 Thread ag0aep6g via Digitalmars-d-announce

On 01.10.21 14:32, Mike Parker wrote:

Walter would like to establish a new slogan, or tagline, for D.

Gettin' it Done.

(Enunciated like Doom's "Rip and tear until it is done.")


Re: D Language Foundation Monthly Meeting Summary (September 24, 2021)

2021-10-12 Thread Ben Jones via Digitalmars-d-announce

On Wednesday, 6 October 2021 at 06:23:01 UTC, WebFreak001 wrote:

On Friday, 1 October 2021 at 12:32:20 UTC, Mike Parker wrote:

[...]
new slogan
[...]


want to generate controversial heat?

Do it in D (DIID)

(careful with there being a trademark for DiiD though)


How about "from prototype to production" or something?  I was 
reading yesterday about how both memcached and redis were 
originally written in scripting languages and then rewritten in C 
for performance.


Re: D Language Foundation Monthly Meeting Summary (September 24, 2021)

2021-10-05 Thread Ali Çehreli via Digitalmars-d-announce

On 10/3/21 2:24 PM, James Blachly wrote:

> Cons: Potential association with silicon valley phrase "move fast and
> break things".

I am going off-topic but I feel I have to make a correction there.

As a person who worked and lived in Silicon Valley since 1996 (since 
1994 in the greater Bay Area), I can safely claim that that phrase has 
never been a Silicon Valley phrase. It was used by Facebook in their 
less enlightened days (a business that may arguably be associated with 
Silicon Valley by their postal address).


Ali



Re: D Language Foundation Monthly Meeting Summary (September 24, 2021)

2021-10-04 Thread IGotD- via Digitalmars-d-announce

On Monday, 4 October 2021 at 15:44:11 UTC, Ki Rill wrote:


About (1): I've written some C++ code recently. I was very 
happy with the code. I've read the code multiple times in 
search for potential bugs and errors. I decided to rewrite some 
of the code in D just to see the difference code-wise and 
performance-wise. Guess what happened? It didn't compile. I got 
out-of-bounds access error in D meanwhile the C++ version ran 
happily with no sign of any failure.


That's a classic with C++ and static arrays. C++ now has the STL 
array which is standard now but who cares because not many know 
about it and there so many ways to do the same things in C++ you 
get lost. Also, it's ugly.


In the case for D, I think D is a "sky is the limit" kind of 
language. D handles so many different areas, from low level to 
rather high level quite nicely. However, this together with one 
of the best metaprogramming out there, the versatility of the 
language is really among the highest.


Now, the metaprogramming in C++ is just as powerful but not many 
people can handle it and they tend to avoid more complicated 
solutions. With D, metaprogramming is much more approachable and 
tasks that the programmer was unable to do in C++ can be done in 
D relatively easy.


Re: D Language Foundation Monthly Meeting Summary (September 24, 2021)

2021-10-04 Thread Imperatorn via Digitalmars-d-announce

On Monday, 4 October 2021 at 15:44:11 UTC, Ki Rill wrote:

On Friday, 1 October 2021 at 12:32:20 UTC, Mike Parker wrote:

[...]


These are great news! As for the new slogan, I believe we need 
to put some emphasis on D's modelling power. If I come up with 
something decent, I'll post it.


[...]


Very curious what code that was.


Re: D Language Foundation Monthly Meeting Summary (September 24, 2021)

2021-10-04 Thread Ki Rill via Digitalmars-d-announce

On Friday, 1 October 2021 at 12:32:20 UTC, Mike Parker wrote:

[...]


These are great news! As for the new slogan, I believe we need to 
put some emphasis on D's modelling power. If I come up with 
something decent, I'll post it.


Meanwhile:

(1) Reliable, fast. (2) Safe, not strict. (3) Smooth start, 
deploy.


(1) - "no" unexpected surprises, improved memory safety, easy to 
catch bugs such as trying to index a pointer in a @safe function, 
out-of-bounds array write/read and similar; an almost 
instantaneous compilation, performance similar to that of C/C++.
(2) - continuing from (1), it's @safe, but you make the final 
choice how far you want to go.
(3) - it's "relatively" easy to start a new project in D using 
DUB: `dub init/add/run`. Need a library that's not available in 
DUB? Create a D interface to C header file and use it. There are 
tools that can automate this process, etc.


I put "..." because it's not always the case.

About (1): I've written some C++ code recently. I was very happy 
with the code. I've read the code multiple times in search for 
potential bugs and errors. I decided to rewrite some of the code 
in D just to see the difference code-wise and performance-wise. 
Guess what happened? It didn't compile. I got out-of-bounds 
access error in D meanwhile the C++ version ran happily with no 
sign of any failure.





Re: D Language Foundation Monthly Meeting Summary (September 24, 2021)

2021-10-04 Thread bauss via Digitalmars-d-announce

On Sunday, 3 October 2021 at 21:24:31 UTC, James Blachly wrote:


Cons: Could be open to criticism that garbage collected 
language is not "the future," but this would likely be a tiny 
number of detractors.





It seems like D itself is moving away from GC everywhere too.


Re: D Language Foundation Monthly Meeting Summary (September 24, 2021)

2021-10-03 Thread Imperatorn via Digitalmars-d-announce

On Friday, 1 October 2021 at 12:32:20 UTC, Mike Parker wrote:

Attendees:

Andrei Alexandrescu
Walter Bright
Iain Buclaw
Ali Çehreli
Max Haughton
Martin Kinkelin
Mathias Lang
Razvan Nitu
Mike Parker

[...]


I don't have a slogan in mind. But it would be nice if it could 
capture the plasticity of the language somehow


Re: D Language Foundation Monthly Meeting Summary (September 24, 2021)

2021-10-03 Thread James Blachly via Digitalmars-d-announce

On 10/1/21 8:32 AM, Mike Parker wrote:
Walter would like to establish a new slogan, or tagline, for D. He asked 
us all to think about this for a future meeting. (Ali has since 
solicited some good advice from a relative who is a professional 
marketer that has gotten us on the right track.)


1. "Move fast"

Pros: More succinct than "Write fast code, fast" or whatever the old 
slogan was. Still captures the essence of both speed of execution and 
ease of writing. Potential tie-in to D-Rocket logo.


Cons: Potential association with silicon valley phrase "move fast and 
break things".


2. "Future code"

Pros: Association with the idea that we are often at the leading edge of 
new features which are later incorporated into other languages. May also 
carry the implication that D is great language for the reader to learn 
in the future. Potential tie-in to space and mars theme.


Cons: Could be open to criticism that garbage collected language is not 
"the future," but this would likely be a tiny number of detractors.



...
As always, if anyone has anything they'd like me to put on the meeting 
agenda, please let me know beforehand. I don't know for sure if we'll be 
able to fit anything onto this month's meeting, though. These meetings 
can run long if the industry reps have anything big to discuss, and 
we're going to have a major item on the foundation's agenda that I 
expect will consume most of post-industry portion of the meeting 
(`-preview=in`). But if you have something, I'll see what I can do.


Thanks for doing these writeups as community liaison.



Re: D Language Foundation Monthly Meeting Summary (September 24, 2021)

2021-10-02 Thread max haughton via Digitalmars-d-announce

On Saturday, 2 October 2021 at 08:48:10 UTC, Konstantin wrote:

On Friday, 1 October 2021 at 23:53:46 UTC, max haughton wrote:

On Friday, 1 October 2021 at 21:48:23 UTC, Konstantin wrote:

On Friday, 1 October 2021 at 12:32:20 UTC, Mike Parker wrote:

Attendees:

Andrei Alexandrescu
Walter Bright
Iain Buclaw
Ali Çehreli
Max Haughton
Martin Kinkelin
Mathias Lang
Razvan Nitu
Mike Parker

[...]


Offtopic:
Are there any plans to publish the roadmap for the language 
and stdlib development on wiki or elsewhere?


Mike is editing it at the moment. It will probably go into the 
foundation Ddoc sources (Not a huge of the wiki since it's not 
tracked in git)


Thank you, Max! Do I understand correctly, that roadmap section 
will be available at https://dlang.org/foundation/index.html


Most likely, but we will get it on the home page as well so it 
can't be missed.


Re: D Language Foundation Monthly Meeting Summary (September 24, 2021)

2021-10-02 Thread Konstantin via Digitalmars-d-announce

On Friday, 1 October 2021 at 23:53:46 UTC, max haughton wrote:

On Friday, 1 October 2021 at 21:48:23 UTC, Konstantin wrote:

On Friday, 1 October 2021 at 12:32:20 UTC, Mike Parker wrote:

Attendees:

Andrei Alexandrescu
Walter Bright
Iain Buclaw
Ali Çehreli
Max Haughton
Martin Kinkelin
Mathias Lang
Razvan Nitu
Mike Parker

[...]


Offtopic:
Are there any plans to publish the roadmap for the language 
and stdlib development on wiki or elsewhere?


Mike is editing it at the moment. It will probably go into the 
foundation Ddoc sources (Not a huge of the wiki since it's not 
tracked in git)


Thank you, Max! Do I understand correctly, that roadmap section 
will be available at https://dlang.org/foundation/index.html


Re: D Language Foundation Monthly Meeting Summary (September 24, 2021)

2021-10-01 Thread Alexey via Digitalmars-d-announce

On Friday, 1 October 2021 at 12:32:20 UTC, Mike Parker wrote:

new slogan


feature X ? D got it yesterday!


Re: D Language Foundation Monthly Meeting Summary (September 24, 2021)

2021-10-01 Thread max haughton via Digitalmars-d-announce

On Friday, 1 October 2021 at 21:48:23 UTC, Konstantin wrote:

On Friday, 1 October 2021 at 12:32:20 UTC, Mike Parker wrote:

Attendees:

Andrei Alexandrescu
Walter Bright
Iain Buclaw
Ali Çehreli
Max Haughton
Martin Kinkelin
Mathias Lang
Razvan Nitu
Mike Parker

[...]


Offtopic:
Are there any plans to publish the roadmap for the language and 
stdlib development on wiki or elsewhere?


Mike is editing it at the moment. It will probably go into the 
foundation Ddoc sources (Not a huge of the wiki since it's not 
tracked in git)


Re: D Language Foundation Monthly Meeting Summary (September 24, 2021)

2021-10-01 Thread Konstantin via Digitalmars-d-announce

On Friday, 1 October 2021 at 12:32:20 UTC, Mike Parker wrote:

Attendees:

Andrei Alexandrescu
Walter Bright
Iain Buclaw
Ali Çehreli
Max Haughton
Martin Kinkelin
Mathias Lang
Razvan Nitu
Mike Parker

[...]


Offtopic:
Are there any plans to publish the roadmap for the language and 
stdlib development on wiki or elsewhere?


D Language Foundation Monthly Meeting Summary (September 24, 2021)

2021-10-01 Thread Mike Parker via Digitalmars-d-announce

Attendees:

Andrei Alexandrescu
Walter Bright
Iain Buclaw
Ali Çehreli
Max Haughton
Martin Kinkelin
Mathias Lang
Razvan Nitu
Mike Parker

(Átila Neves was on vacation in an area with limited internet 
access)


The primary item on the agenda for this meeting was a governance 
proposal from Mathias Lang. Modeled on [Python's PEP 
13](https://www.python.org/dev/peps/pep-0013/), the proposal was 
to establish a self-governing Core Team (CT) of unlimited size, 
and a five-member Steering Committee (SC) elected annually by the 
CT. The CT would take on all management and decision-making 
responsibilities, subject to veto by the SC. The proposal set out 
a basic set of procedures and responsibilities for each team, 
including the establishment of Working Groups within the core 
team to focus on specific areas (i.e., compiler development, dub, 
DIPs, etc.).


We spent the majority of the meeting discussing the pros and cons 
of such a structure. Among the points discussed, a major pro and 
a major con stand out: formalizing governance can potentially 
bring more order and structure to the day-to-day management of 
the language and the ecosystem (pro); there's a risk of Walter 
and  being pushed out of the decision making process (con).


In the end, we agreed that some sort of formalized committee that 
brings more order to the ecosystem is worth pursuing, but that 
decisions regarding development of the language should be left in 
the hands of Walter and Átila.


Given that membership in the monthly meetings has expanded over 
time, and the quarterly meetings include industry reps using D in 
production, we already have a skeleton of the Core Team outlined 
in Mathias's proposal. Mathias agreed to go back to the drawing 
board and draft a new proposal that is smaller in scope and 
better suited to the size of our community. The goal is to take 
what we already have and formalize a process for organizing work 
on priority tasks, managing resources, drafting volunteers, etc., 
(in other words, a team that can manage the ecosystem), while 
leaving language design decisions to Walter and Átila.


I will assist Mathias in drawing up the proposal and we will 
present it at a future foundation meeting (I anticipate November).


A topic that came up in course of the discussion was pull 
requests blocking on feedback from Walter or Átila. As a remedy, 
Razvan will be sending periodic updates to them with a list of 
PRs that require their feedback. Walter is also open to once- or 
twice-month-meetings with contributors to resolve pull-requests 
through in-person discussion.


We agreed to establish a page on dlang.org that lists the core 
team members so there's no doubt who is involved in the 
management process.


Walter would like to establish a new slogan, or tagline, for D. 
He asked us all to think about this for a future meeting. (Ali 
has since solicited some good advice from a relative who is a 
professional marketer that has gotten us on the right track.)


Our next meeting will take place on October 22nd at 13:00 UTC. 
This will be a quarterly meeting, so the industry reps will be 
present.


As always, if anyone has anything they'd like me to put on the 
meeting agenda, please let me know beforehand. I don't know for 
sure if we'll be able to fit anything onto this month's meeting, 
though. These meetings can run long if the industry reps have 
anything big to discuss, and we're going to have a major item on 
the foundation's agenda that I expect will consume most of 
post-industry portion of the meeting (`-preview=in`). But if you 
have something, I'll see what I can do.











Re: D Language Foundation Monthly Meeting Summary

2021-06-10 Thread Ola Fosheim Grøstad via Digitalmars-d-announce

On Thursday, 10 June 2021 at 10:55:50 UTC, sighoya wrote:
That doesn't mean tracing GC is bad, I'm still skeptical that 
arc + cycle detection is better than tracing in general for 
true high level languages.


For truly high level languages garbage collection probably is the 
best, if you design the language semantics for it. The main issue 
with D is that the language semantics don't enable competitive GC 
advantages.


I think at least D should go with ARC for shared resources.

Then have a variety of options for task-local resources, 
including GC.






Re: D Language Foundation Monthly Meeting Summary

2021-06-10 Thread Paulo Pinto via Digitalmars-d-announce

On Thursday, 10 June 2021 at 10:55:50 UTC, sighoya wrote:
On Saturday, 5 June 2021 at 09:14:52 UTC, Ola Fosheim Grøstad 
wrote:


The current GC strategy is a dead end. No GC makes the 
language too much of a C++ with no real edge. D needs to offer 
something other languages do not, to offset the cost of 
learning the language complexities.


I think the switch to arc with cycle detection as opt out (like 
in python) is the right direction, it fits more to a system 
level language making use of destructors more often.


Rewriting cyclic code to acyclic code is easier than lifetime 
management in general.


Further, optimizations can be introduced that detect acyclic 
structures in D just as it is the case for nim 
(https://nim-lang.org/docs/manual.html#pragmas-acyclic-pragma).


That doesn't mean tracing GC is bad, I'm still skeptical that 
arc + cycle detection is better than tracing in general for 
true high level languages.


Well, I advise reading

"On Adding Garbage Collection and Runtime Types to a 
Strongly-Typed,

Statically-Checked, Concurrent Language"

http://www.bitsavers.org/pdf/xerox/parc/techReports/CSL-84-7_On_Adding_Garbage_Collection_and_Runtime_Types_to_a_Strongly-Typed_Statically-Checked_Concurrent_Language.pdf

And watching the upcoming WWDC 2021 talk "ARC in Swift: Basics 
and beyond" on Friday.


https://developer.apple.com/wwdc21/sessions

What Cedar, Swift and Nim have in common that D lacks, are fat 
pointers, the compiler awareness for optimizations regarding 
elision of counter manipulation code, and tricks like background 
threads for the cycle collector or cascade deletions.


It is no an accident that high performance reference counting GC 
is similar to tracing GC in regards to implementation complexity.




Re: D Language Foundation Monthly Meeting Summary

2021-06-10 Thread IGotD- via Digitalmars-d-announce

On Thursday, 10 June 2021 at 10:55:50 UTC, sighoya wrote:


I think the switch to arc with cycle detection as opt out (like 
in python) is the right direction, it fits more to a system 
level language making use of destructors more often.


Rewriting cyclic code to acyclic code is easier than lifetime 
management in general.


Further, optimizations can be introduced that detect acyclic 
structures in D just as it is the case for nim 
(https://nim-lang.org/docs/manual.html#pragmas-acyclic-pragma).


That doesn't mean tracing GC is bad, I'm still skeptical that 
arc + cycle detection is better than tracing in general for 
true high level languages.


Yes, this is a way forward. Walter doesn't want to add fat 
pointers, however he hasn't mentioned if that's part of the 
language or fat pointers as a library (like C++). It doesn't need 
to be part of the language but as a library type. Classes in D 
are essentially already library fat pointers. What we need is to 
extend this so that we have a generic fat pointer type (that can 
be recompiled to whatever GC type we want) that can be used for 
any type through out the entire code base if the programmer 
wishes that. Then we need refactor druntime/phobos to only use 
this fat pointer type.


As you mentioned, in order to have better support for different 
GC, we can support compiler hooks (like your acyclic example) in 
order to give the compiler optimization hints.


Whatever GC type you think is better for you, you should decide 
that and not forced by the D compiler and library. Basically GC X 
is better than Y is not an argument. What is the argument is how 
we can allow people to choose.




Re: D Language Foundation Monthly Meeting Summary

2021-06-10 Thread sighoya via Digitalmars-d-announce
On Saturday, 5 June 2021 at 09:14:52 UTC, Ola Fosheim Grøstad 
wrote:


The current GC strategy is a dead end. No GC makes the language 
too much of a C++ with no real edge. D needs to offer something 
other languages do not, to offset the cost of learning the 
language complexities.


I think the switch to arc with cycle detection as opt out (like 
in python) is the right direction, it fits more to a system level 
language making use of destructors more often.


Rewriting cyclic code to acyclic code is easier than lifetime 
management in general.


Further, optimizations can be introduced that detect acyclic 
structures in D just as it is the case for nim 
(https://nim-lang.org/docs/manual.html#pragmas-acyclic-pragma).


That doesn't mean tracing GC is bad, I'm still skeptical that arc 
+ cycle detection is better than tracing in general for true high 
level languages.





Re: D Language Foundation Monthly Meeting Summary

2021-06-08 Thread Ola Fosheim Grøstad via Digitalmars-d-announce

On Monday, 7 June 2021 at 18:37:54 UTC, sai wrote:
My use case of writing GUI apps for desktop - presence of GC 
does not matter for me at all. In fact its great for me. 
Hopefully D will not stop covering these use cases.


Great, I am interested in highly interactive apps (games, sound 
editors, graphics editors, audio plugins, etc).


Maybe we could create a focus group and collect experiences, 
approaches, weak spots, strong spots?


Right now I think many feel left in the dark when they come with 
an idea for an app as there is little guidance of how to build a 
bigger app.


I sense this by watching the learn-forum.




Re: D Language Foundation Monthly Meeting Summary

2021-06-08 Thread Paulo Pinto via Digitalmars-d-announce

On Monday, 7 June 2021 at 23:04:12 UTC, Norm wrote:

On Saturday, 5 June 2021 at 08:58:47 UTC, Paulo Pinto wrote:

On Friday, 4 June 2021 at 21:35:43 UTC, IGotD- wrote:

On Friday, 4 June 2021 at 19:56:06 UTC, sighoya wrote:


This uniformization sounds too good to be true. I think most 
people think that, but it's simply not true. malloc/free is 
incompatible to garbage collection.


This is true and even druntime has a malloc/free option for 
the GC. However, its implementation is really bad. Also the 
implementation of the current GC has a lot of room for 
improvements. It is still not appropriate for many embedded 
systems as it requires another layer that steals CPU time and 
code memory.


Speaking of embedded,

https://learn.adafruit.com/welcome-to-circuitpython

https://blog.arduino.cc/2019/08/23/tinygo-on-arduino

https://www.microsoft.com/en-us/makecode/resources

http://www.ulisp.com/

https://developer.android.com/training/wearables/principles

https://www.microej.com/product/vee/

Meanwhile kids, the future generation of developers, keeps 
adopting the hardware and programming languages listed above, 
completly oblivious there is a programming language where all 
discussion threads turn into GC vs no-GC no matter what was 
the original subject.


There is also https://micropython.org/


I just skipped MicroPython, because Circuit Python seems to have 
more uptake even though it is based on it.




It would not be my choice of language for medical but uPython 
is used in a small number of embedded medical devices and has 
been ported to several flavours of STM32.


This is a space where D could make a difference, although 
unfortunately the language has some dark corner cases and 
friction that put some people off to the point where they don't 
see any benefit moving to D.


Exactly, and the whole GC vs no-GC take the language nowhere in 
that regard.





Re: D Language Foundation Monthly Meeting Summary

2021-06-07 Thread Norm via Digitalmars-d-announce

On Saturday, 5 June 2021 at 08:58:47 UTC, Paulo Pinto wrote:

On Friday, 4 June 2021 at 21:35:43 UTC, IGotD- wrote:

On Friday, 4 June 2021 at 19:56:06 UTC, sighoya wrote:


This uniformization sounds too good to be true. I think most 
people think that, but it's simply not true. malloc/free is 
incompatible to garbage collection.


This is true and even druntime has a malloc/free option for 
the GC. However, its implementation is really bad. Also the 
implementation of the current GC has a lot of room for 
improvements. It is still not appropriate for many embedded 
systems as it requires another layer that steals CPU time and 
code memory.


Speaking of embedded,

https://learn.adafruit.com/welcome-to-circuitpython

https://blog.arduino.cc/2019/08/23/tinygo-on-arduino

https://www.microsoft.com/en-us/makecode/resources

http://www.ulisp.com/

https://developer.android.com/training/wearables/principles

https://www.microej.com/product/vee/

Meanwhile kids, the future generation of developers, keeps 
adopting the hardware and programming languages listed above, 
completly oblivious there is a programming language where all 
discussion threads turn into GC vs no-GC no matter what was the 
original subject.


There is also https://micropython.org/

It would not be my choice of language for medical but uPython is 
used in a small number of embedded medical devices and has been 
ported to several flavours of STM32.


This is a space where D could make a difference, although 
unfortunately the language has some dark corner cases and 
friction that put some people off to the point where they don't 
see any benefit moving to D.


Re: D Language Foundation Monthly Meeting Summary

2021-06-07 Thread IGotD- via Digitalmars-d-announce

On Monday, 7 June 2021 at 18:37:54 UTC, sai wrote:


Hopefully D will not stop covering these use cases.

I know all the web-apps folks who wants to serve 
100 requests per second will not like GC, I guess.


Absolutely not, D must continue with automatic memory management 
and I think about everybody agree with that.


The discussion is about how D can support different types of 
memory management and how to approach that, this is where the 
opinions are very different.





Re: D Language Foundation Monthly Meeting Summary

2021-06-07 Thread sai via Digitalmars-d-announce
On Saturday, 5 June 2021 at 09:58:23 UTC, Ola Fosheim Grøstad 
wrote:
You mean the wait-for-everything-to-stop-scan-everything 
approach will remain?


What is the area that D is trying to cover though?

Somebody should write a memo on that.



My use case of writing GUI apps for desktop - presence of GC does 
not matter for me at all. In fact its great for me. Hopefully D 
will not stop covering these use cases.


I know all the web-apps folks who wants to serve 100 
requests per second will not like GC, I guess.






Re: D Language Foundation Monthly Meeting Summary

2021-06-05 Thread Imperatorn via Digitalmars-d-announce

On Friday, 4 June 2021 at 19:31:57 UTC, IGotD- wrote:

On Friday, 4 June 2021 at 18:34:32 UTC, Imperatorn wrote:


You might be surprised, but it's actually not up to you what 
topic fits or not.


I said GC-phobia is irrational, I did not say any criticism of 
it is.
Obviously GC is good for some things and not good at all for 
other things.


What *is* irrational is saying it has absolutely no place at 
all.


I don't think it is a phobia but it is a question of choice. We 
can clearly observe how different the demands are for different 
programmers in this forum. I enjoy GC for the appropriate 
programs, however there are SW where GC is a problem and cannot 
be used. Because of this Phobos must take the lowest common 
denominator approach (malloc/free) in order to be able to 
accommodate all the different needs.


D is one these Swiss army knife languages that can be used for 
everything, including low level software and everything in 
between. What D should strive for is to give programmers a 
choice and put up as few barriers as possible. It's certainly 
challenging to make a library and language fitting everyone 
needs but D is at least one of the best foundation of achieving 
that goal.


I agree with the description of a swiss army knife. Like if some 
comany/brand said they're removing the little saw, and there are 
many ppl who bought the knife mainly to be able to do some quick 
n dirty sawing, they would choose another company/brand.


Re: D Language Foundation Monthly Meeting Summary

2021-06-05 Thread Ola Fosheim Grøstad via Digitalmars-d-announce

On Saturday, 5 June 2021 at 09:47:11 UTC, Imperatorn wrote:
I get your point, but I still think GC will remain mainly 
because of the area D is trying to cover.


You mean the wait-for-everything-to-stop-scan-everything approach 
will remain?


What is the area that D is trying to cover though?

Somebody should write a memo on that.





Re: D Language Foundation Monthly Meeting Summary

2021-06-05 Thread Imperatorn via Digitalmars-d-announce
On Saturday, 5 June 2021 at 08:51:07 UTC, Ola Fosheim Grøstad 
wrote:

On Friday, 4 June 2021 at 18:34:32 UTC, Imperatorn wrote:

[...]


This is the announce forum, so it is kinda misplaced, but we 
are all contributing to this so... :)


[...]


I get your point, but I still think GC will remain mainly because 
of the area D is trying to cover.


Re: D Language Foundation Monthly Meeting Summary

2021-06-05 Thread Ola Fosheim Grøstad via Digitalmars-d-announce

On Saturday, 5 June 2021 at 08:58:47 UTC, Paulo Pinto wrote:
Meanwhile kids, the future generation of developers, keeps 
adopting the hardware and programming languages listed above,


D isn't useful for teaching kids programming.  Wy too 
complicated.  Most Arduino users, who build useful stuff, use C++.


But it is not a good strategy for D to become more like C++, too 
late. It would've been a good strategy 6 years ago to align D 
semantics with C++ and have full interop, but too late now.


D needs a feature-set that makes it attractive for people wanting 
to do high profile interactive stuff, like games, graphics 
editors, sound editors, high performance services. With useful 
optional GC and easy multithreading.


The current GC strategy is a dead end. No GC makes the language 
too much of a C++ with no real edge. D needs to offer something 
other languages do not, to offset the cost of learning the 
language complexities.






Re: D Language Foundation Monthly Meeting Summary

2021-06-05 Thread Paulo Pinto via Digitalmars-d-announce

On Friday, 4 June 2021 at 21:35:43 UTC, IGotD- wrote:

On Friday, 4 June 2021 at 19:56:06 UTC, sighoya wrote:


This uniformization sounds too good to be true. I think most 
people think that, but it's simply not true. malloc/free is 
incompatible to garbage collection.


This is true and even druntime has a malloc/free option for the 
GC. However, its implementation is really bad. Also the 
implementation of the current GC has a lot of room for 
improvements. It is still not appropriate for many embedded 
systems as it requires another layer that steals CPU time and 
code memory.


Speaking of embedded,

https://learn.adafruit.com/welcome-to-circuitpython

https://blog.arduino.cc/2019/08/23/tinygo-on-arduino

https://www.microsoft.com/en-us/makecode/resources

http://www.ulisp.com/

https://developer.android.com/training/wearables/principles

https://www.microej.com/product/vee/

Meanwhile kids, the future generation of developers, keeps 
adopting the hardware and programming languages listed above, 
completly oblivious there is a programming language where all 
discussion threads turn into GC vs no-GC no matter what was the 
original subject.





Re: D Language Foundation Monthly Meeting Summary

2021-06-05 Thread Ola Fosheim Grøstad via Digitalmars-d-announce

On Friday, 4 June 2021 at 18:34:32 UTC, Imperatorn wrote:
You might be surprised, but it's actually not up to you what 
topic fits or not.


This is the announce forum, so it is kinda misplaced, but we are 
all contributing to this so... :)


Obviously GC is good for some things and not good at all for 
other things.


The problem is that the D-style GC is not a good fit for anything 
interactive, beyond simple applications.


My impression is that most people use D for batch programs, so I 
guess that shapes the opinion. And that is a problem for D. A bad 
GC-strategy is reinforced by the remaining majority, which is a 
tiny fraction of the overall programming community.


These days you don't really need a system level language to write 
batch programs. So it is not a good strategy to hold onto this 
specific type of stop-everything-scan-everything GC. Unless D 
decides to not be a system level language, but then you need a 
lot more convenience features and become more scripty. The 
inbetween position is not the top-pick for anyone looking for a 
solution.


Not being willing to switch MM strategy means being stuck on a 
tiny island, too afraid of crossing the ocean to get access to 
the main land. My impression is that Walter would rather stay on 
this tiny island than take any chances.


The language is being extended with incomplete experimental 
features, instead of going to the core of the issue and doing 
something with the foundation for the language. That is not going 
to end well. You'll end up with a patchwork.




Re: D Language Foundation Monthly Meeting Summary

2021-06-04 Thread Ola Fosheim Grøstad via Digitalmars-d-announce

On Friday, 4 June 2021 at 21:35:43 UTC, IGotD- wrote:
D certainly has the power to do so but the question is if there 
is any will power in this community. Nothing has happened for 
almost 20 years.


I guess importC will make changes even more unlikely. Absorbing C 
is nice, but it has the unfortunate effect of giving D some of 
the same disadvantages as C++.




Re: D Language Foundation Monthly Meeting Summary

2021-06-04 Thread IGotD- via Digitalmars-d-announce

On Friday, 4 June 2021 at 19:56:06 UTC, sighoya wrote:


This uniformization sounds too good to be true. I think most 
people think that, but it's simply not true. malloc/free is 
incompatible to garbage collection.


This is true and even druntime has a malloc/free option for the 
GC. However, its implementation is really bad. Also the 
implementation of the current GC has a lot of room for 
improvements. It is still not appropriate for many embedded 
systems as it requires another layer that steals CPU time and 
code memory.


In the case of Phobos, in order to make as versatile as possible 
it shall not assume any other layer than malloc/free.


I'm asking myself, even if we don't care about the cons, would 
that at all be possible with a ~20 years old language with a 
~20 years of ecosystem evolution. How many things need to be 
rewritten?


D certainly has the power to do so but the question is if there 
is any will power in this community. Nothing has happened for 
almost 20 years.





Re: D Language Foundation Monthly Meeting Summary

2021-06-04 Thread russhy via Digitalmars-d-announce

On Friday, 4 June 2021 at 12:44:07 UTC, Imperatorn wrote:

On Friday, 4 June 2021 at 00:14:11 UTC, zjh wrote:

On Thursday, 3 June 2021 at 23:48:16 UTC, zjh wrote:

[...]



As a small language, if you want to succeed.There is no way 
out except to be the best.

Otherwise, why don't I use C++?

[...]


GC won't go away tho. What might happen is more flexibility. 
The GC-phobia is irrational.


THERE IS NO GC PHOBIA, it is a nice UTILITY

people don't understand what an utility is, it is meant to be 
used whenever you need it, NOT ALL THE TIME YOU DON'T NEED IT


there must be strategies how you position yourself in the market, 
what other language are doing, what people are looking for in a 
pragmatic system language


this is why it makes me furious everytime i see people wanting 
more GC, you are clueless, and you drive adoption down by wanting 
more GC


i should stop write message here, nobody understand anyways, and 
people who make decisions for D are lost too


Re: D Language Foundation Monthly Meeting Summary

2021-06-04 Thread sighoya via Digitalmars-d-announce

On Friday, 4 June 2021 at 19:31:57 UTC, IGotD- wrote:
Because of this Phobos must take the lowest common denominator 
approach (malloc/free) in order to be able to accommodate all 
the different needs.


This uniformization sounds too good to be true. I think most 
people think that, but it's simply not true. malloc/free is 
incompatible to garbage collection.
You can parametrize over all possible MM strategies making every 
function generic and pass the right MM into it.
Beside increasing template bloat it isn't that optimal as the 
same code has different performance characteristic for each MM, 
so you need to overload over all these and even then you won't 
cover all the MM because there are people wanting to insert their 
custom MM, but the library was already written.


I'm asking myself, even if we don't care about the cons, would 
that at all be possible with a ~20 years old language with a ~20 
years of ecosystem evolution. How many things need to be 
rewritten?





Re: D Language Foundation Monthly Meeting Summary

2021-06-04 Thread IGotD- via Digitalmars-d-announce

On Friday, 4 June 2021 at 18:34:32 UTC, Imperatorn wrote:


You might be surprised, but it's actually not up to you what 
topic fits or not.


I said GC-phobia is irrational, I did not say any criticism of 
it is.
Obviously GC is good for some things and not good at all for 
other things.


What *is* irrational is saying it has absolutely no place at 
all.


I don't think it is a phobia but it is a question of choice. We 
can clearly observe how different the demands are for different 
programmers in this forum. I enjoy GC for the appropriate 
programs, however there are SW where GC is a problem and cannot 
be used. Because of this Phobos must take the lowest common 
denominator approach (malloc/free) in order to be able to 
accommodate all the different needs.


D is one these Swiss army knife languages that can be used for 
everything, including low level software and everything in 
between. What D should strive for is to give programmers a choice 
and put up as few barriers as possible. It's certainly 
challenging to make a library and language fitting everyone needs 
but D is at least one of the best foundation of achieving that 
goal.


Re: D Language Foundation Monthly Meeting Summary

2021-06-04 Thread Imperatorn via Digitalmars-d-announce

On Friday, 4 June 2021 at 13:32:37 UTC, Ola Fosheim Grøstad wrote:

On Friday, 4 June 2021 at 12:44:07 UTC, Imperatorn wrote:
GC won't go away tho. What might happen is more flexibility. 
The GC-phobia is irrational.


The topic doesn't fit in this thread, but it isn't irrational.

You have to wait for all participating threads to be ready to 
collect, so it isn't only about collection speed. In essence 
you end up with some of the same issues as with cooperative 
multitasking.


And it is also obvious that collection speed will drop as your 
application grows and you start working with larger datasets.


So, you might initially think it is fine, but end up rewriting 
your codebase because it only worked well with the simple 
prototype you started with.


That's not a good strategy.

(but ok for batch programs)


You might be surprised, but it's actually not up to you what 
topic fits or not.


I said GC-phobia is irrational, I did not say any criticism of it 
is.
Obviously GC is good for some things and not good at all for 
other things.


What *is* irrational is saying it has absolutely no place at all.


Re: D Language Foundation Monthly Meeting Summary

2021-06-04 Thread Kagamin via Digitalmars-d-announce

On Wednesday, 2 June 2021 at 14:02:29 UTC, Mike Parker wrote:

On Wednesday, 2 June 2021 at 11:10:36 UTC, Dukc wrote:


Phobos v2 is an official plan? That was news for me! Any 
chance to get a glimpse of what's planned for it?


The overall goal is that it doesn't replace the current Phobos, 
but sits alongside it. Changed/improved/new functionality goes 
in the std.v2 namespace (or whatever it looks like in the end) 
and you can import that alongside existing std packages.


I thought v2 is what it currently is, so the next would be v3.


Re: D Language Foundation Monthly Meeting Summary

2021-06-04 Thread bachmeier via Digitalmars-d-announce

On Thursday, 3 June 2021 at 23:48:16 UTC, zjh wrote:

D does not owns the advantages of GC , but all the 
disadvantages of GC .Why not discard it?


This is not a realistic or helpful suggestion. You're proposing 
to get rid of current users of the language - many of whom like 
that there's a GC - in order to chase C++ programmers, who 
represent a small sliver of all programmers, who mostly wouldn't 
change languages anyway, and who would change to Rust if they 
were planning to change languages. Again, not a helpful 
suggestion.


Re: D Language Foundation Monthly Meeting Summary

2021-06-04 Thread Ola Fosheim Grøstad via Digitalmars-d-announce

On Friday, 4 June 2021 at 14:07:38 UTC, drug wrote:
I use GC when developing an algorithm to solve my problem. 
After I has implemented the algorithm I can redesign it to 
avoid GC (if needed). It works pretty nice in my case at least. 
Because initially I concentrate on my domain problem and then I 
only deal with memory management. This separation is very 
helpful.


Yes, if you select that strategy from the start.

But think for a moment how much easier it would be if the 
language had ownership pointers. I also believe that careful 
usage of ownership pointers in combination with precise scanning 
could lead to much less memory being scanned.


There are no language features in D that support GC-strategies. 
That's not a strength.


They can be remedied, but it takes willpower.



Re: D Language Foundation Monthly Meeting Summary

2021-06-04 Thread drug via Digitalmars-d-announce

04.06.2021 16:32, Ola Fosheim Grøstad пишет:

On Friday, 4 June 2021 at 12:44:07 UTC, Imperatorn wrote:
GC won't go away tho. What might happen is more flexibility. The 
GC-phobia is irrational.


The topic doesn't fit in this thread, but it isn't irrational.

You have to wait for all participating threads to be ready to collect, 
so it isn't only about collection speed. In essence you end up with some 
of the same issues as with cooperative multitasking.


And it is also obvious that collection speed will drop as your 
application grows and you start working with larger datasets.


So, you might initially think it is fine, but end up rewriting your 
codebase because it only worked well with the simple prototype you 
started with.


That's not a good strategy.

(but ok for batch programs)



I use GC when developing an algorithm to solve my problem. After I has 
implemented the algorithm I can redesign it to avoid GC (if needed). It 
works pretty nice in my case at least. Because initially I concentrate 
on my domain problem and then I only deal with memory management. This 
separation is very helpful.
Also there is no rewriting when you switch to manual management - you 
just add new code, no replacing old code. Again often API  is worse 
after switching than in case of GC.


Re: D Language Foundation Monthly Meeting Summary

2021-06-04 Thread Ola Fosheim Grøstad via Digitalmars-d-announce

On Friday, 4 June 2021 at 13:32:37 UTC, Ola Fosheim Grøstad wrote:

On Friday, 4 June 2021 at 12:44:07 UTC, Imperatorn wrote:
GC won't go away tho. What might happen is more flexibility. 
The GC-phobia is irrational.


The topic doesn't fit in this thread, but it isn't irrational.


The most irrational issue here is that the language itself 
prevents precise collection, and there is no willpower to change 
it. If you combine task-local GC with fully precise 
compiler-guided scanning, then you'd have something that would 
work.




Re: D Language Foundation Monthly Meeting Summary

2021-06-04 Thread Ola Fosheim Grøstad via Digitalmars-d-announce

On Friday, 4 June 2021 at 12:44:07 UTC, Imperatorn wrote:
GC won't go away tho. What might happen is more flexibility. 
The GC-phobia is irrational.


The topic doesn't fit in this thread, but it isn't irrational.

You have to wait for all participating threads to be ready to 
collect, so it isn't only about collection speed. In essence you 
end up with some of the same issues as with cooperative 
multitasking.


And it is also obvious that collection speed will drop as your 
application grows and you start working with larger datasets.


So, you might initially think it is fine, but end up rewriting 
your codebase because it only worked well with the simple 
prototype you started with.


That's not a good strategy.

(but ok for batch programs)



Re: D Language Foundation Monthly Meeting Summary

2021-06-04 Thread Imperatorn via Digitalmars-d-announce

On Friday, 4 June 2021 at 00:14:11 UTC, zjh wrote:

On Thursday, 3 June 2021 at 23:48:16 UTC, zjh wrote:

[...]



As a small language, if you want to succeed.There is no way out 
except to be the best.

Otherwise, why don't I use C++?

[...]


GC won't go away tho. What might happen is more flexibility. The 
GC-phobia is irrational.


Re: D Language Foundation Monthly Meeting Summary

2021-06-04 Thread zjh via Digitalmars-d-announce

On Friday, 4 June 2021 at 11:41:49 UTC, sighoya wrote:

Yet another GC vs NoGC thread :sigh:


Routine determines success or failure.



Re: D Language Foundation Monthly Meeting Summary

2021-06-04 Thread sighoya via Digitalmars-d-announce

Yet another GC vs NoGC thread :sigh:




Re: D Language Foundation Monthly Meeting Summary

2021-06-03 Thread Ola Fosheim Grøstad via Digitalmars-d-announce

On Friday, 4 June 2021 at 00:39:41 UTC, IGotD- wrote:

On Friday, 4 June 2021 at 00:14:11 UTC, zjh wrote:


Zim: the grammar is ugly.


Zim? Is that what they speak in Zimbabwe?


Zig.


Re: D Language Foundation Monthly Meeting Summary

2021-06-03 Thread IGotD- via Digitalmars-d-announce

On Friday, 4 June 2021 at 00:14:11 UTC, zjh wrote:


Zim: the grammar is ugly.


Zim? Is that what they speak in Zimbabwe?


Re: D Language Foundation Monthly Meeting Summary

2021-06-03 Thread zjh via Digitalmars-d-announce

On Thursday, 3 June 2021 at 23:48:16 UTC, zjh wrote:

OK, how do you position "d"?



As a small language, if you want to succeed.There is no way out 
except to be the best.

Otherwise, why don't I use C++?

rust,go,zim.I dislike them.
Rust: slow compilation, weak template function.
Go: there is no template function, and the abstraction is not 
strong,error process,time question.spaghetti

Zim: the grammar is ugly.
D's advantage is template.But now the advantage over `C++20` is 
smaller.

So `D` should have `a sense of urgency`.
D's position is too vague. Don't want to gain 
everything,Everything is nothing.
what `D` need to do is `enhancing advantages`, `discarding` 
disadvantages, so simple!
`Template metagramming` is a big advantage, we should enhance. GC 
is disadvantage, we should discard it!
discard `GC`,attract `C++er` ,`pythoner/scripter/learner` will 
all come.

otherwise,who help you write the lib?



Re: D Language Foundation Monthly Meeting Summary

2021-06-03 Thread IGotD- via Digitalmars-d-announce

On Thursday, 3 June 2021 at 23:47:07 UTC, zjh wrote:


The GC of D is a burden.in the speaking of AA.
D does not owns the advantages of GC , but all the 
disadvantages of GC .Why not discard it?


Yes, for Phobos v2 one of the primary goals should be to not 
being forced to rely on GC. Phobos should only rely on 
malloc/free. Phobos may be using reference counting internally as 
it also only relies on malloc/free.


Re: D Language Foundation Monthly Meeting Summary

2021-06-03 Thread zjh via Digitalmars-d-announce

OK, how do you position "d"?
What kind of programmers do you want to attract? 
beginner?pythoner?scripter?

How to attract them and why and what feature attact them?
What slogan of "d", Can d occupy a bigger market?
Does d still occupy the field of system programming

The GC of D is a burden.in the speaking of AA.
D does not owns the advantages of GC , but all the disadvantages 
of GC .Why not discard it?






Re: D Language Foundation Monthly Meeting Summary

2021-06-03 Thread zjh via Digitalmars-d-announce

On Thursday, 3 June 2021 at 22:40:50 UTC, JN wrote:

On Saturday, 29 May 2021 at 00:30:38 UTC, zjh wrote:

On Saturday, 29 May 2021 at 00:26:54 UTC, zjh wrote:

OK, how do you position "d"?
What kind of programmers do you want to attract? 
beginner?pythoner?scripter?

How to attract them and why and what feature attact them?
What slogan of "d", Can d occupy a bigger market?
Does d still occupy the field of system programming

The GC of D is a burden.in the speaking of AA.
D does not owns the advantages of GC , but all the disadvantages 
of GC .Why not discard it?




Re: D Language Foundation Monthly Meeting Summary

2021-06-03 Thread JN via Digitalmars-d-announce

On Saturday, 29 May 2021 at 00:30:38 UTC, zjh wrote:

On Saturday, 29 May 2021 at 00:26:54 UTC, zjh wrote:

Good,maybe we can raise our sounding slogan "Better C++" again!


There are too many talents in C++
We must attract them.
Only them can make d great!Because they are library writer. 
They can make d great.


I disagree. Attracting C++ folks doesn't seem to work. You may 
try to lure them with promises of nicer templates and no header 
files, but after a while they will complain about the garbage 
collector and go back to their new C++ draft standard.


If you advertise yourself as Better C++, you are instantly 
setting yourself up for comparison and are turning away everyone 
who dislikes C++ in the first place.


Rust doesn't advertise itself as "Safe C++", Go doesn't advertise 
itself as "Native Java", Zig doesn't advertise itself as "Better 
C".


Re: D Language Foundation Monthly Meeting Summary

2021-06-02 Thread Mike Parker via Digitalmars-d-announce

On Wednesday, 2 June 2021 at 11:10:36 UTC, Dukc wrote:


Phobos v2 is an official plan? That was news for me! Any chance 
to get a glimpse of what's planned for it?


The overall goal is that it doesn't replace the current Phobos, 
but sits alongside it. Changed/improved/new functionality goes in 
the std.v2 namespace (or whatever it looks like in the end) and 
you can import that alongside existing std packages.


Andrei has talked about it a little here in the forums, and Steve 
did some preliminary work a while back. Beyond that, I have no 
details about plans. We'll have more after the workgroup gets 
going.


Re: D Language Foundation Monthly Meeting Summary

2021-06-02 Thread Dukc via Digitalmars-d-announce

On Friday, 28 May 2021 at 14:56:08 UTC, Mike Parker wrote:
For example, major long-term goals are memory safety (e.g., 
specific bugs, fully enabling DIP 1000 support) and Phobos v2.


Phobos v2 is an official plan? That was news for me! Any chance 
to get a glimpse of what's planned for it?





Re: D Language Foundation Monthly Meeting Summary

2021-05-28 Thread zjh via Digitalmars-d-announce

On Saturday, 29 May 2021 at 00:30:38 UTC, zjh wrote:

Good,maybe we can raise our sounding slogan "Better C++" again!


If I'm a marketer of `rust`, I'll say `rust` is `abnormal 
C++`.would you like a try?
If I were a marketing person of D, I would say `d` is a `Better 
c++`.will you try?

We can make use of the `C++` fame to make us famous.
`C++` is `always` our good friend.



  1   2   >