Re: dmdtags 1.0.0: an accurate tag generator for D source code

2021-08-27 Thread Виталий Фадеев via Digitalmars-d-announce

On Friday, 27 August 2021 at 21:38:58 UTC, Paul Backus wrote:
`dmdtags` is a tags file generator for D source code that uses 
the DMD compiler frontend for accurate parsing.


This release supports 100%-accurate parsing of arbitrary D code 
(tested on DMD and Phobos sources), as well as the most 
commonly-used command line options, `-R`, `-o`, and `-a`. The 
generated tags file has been tested for compatibility with Vim 
and is compliant with the [POSIX standard for `ctags`][posix], 
so any editor with `ctags` support should be able to use it.


[posix]: 
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/ctags.html


### What?

A _tags file_ is a lightweight plain-text index of the symbols 
in a project. Editors that support tags files, such as Vim and 
Emacs, can use this index to help with things like project 
navigation and tab completion.


A _tags file generator_ is, as you might expect, a program that 
reads source code and generates a tags file with entries for 
the symbols in that code.


### Why?

[`universal-ctags`][uctags], the current most-popular and 
best-maintained tags file generator, claims support for many 
programming languages, including D. However, its D parser is 
not well-maintained, and it often excludes large numbers of 
symbols from its output due to parsing failures.


Because `dmdtags` uses the DMD frontend for parsing, its 
results will always be accurate and up-to-date. For pure D 
projects, it can be used as a replacement for 
`universal-ctags`. For mixed-language projects, it can be used 
together with other tag generators with the `--append` option.


[uctags]: https://ctags.io

### Where?

* On Github: https://github.com/pbackus/dmdtags
* On Dub: https://code.dlang.org/packages/dmdtags



```
# dmdtags -R ./source/ -o -
!_TAG_FILE_SORTED   1   /0=unsorted, 1=sorted, 2=foldcase/
App ./source/ui/app.d   13;"   T
App ./source/ui/app.d   15;"   a
App ./source/ui/app.d   19;"   T
App ./source/ui/app.d   21;"   s
__ctor  ./source/ui/app.d   27;"   f
__ctor  ./source/ui/app.d   30;"   f
_result ./source/ui/app.d   23;"   v
app ./source/ui/app.d   1;"M
defaultEventLoop./source/ui/app.d   48;"   f
defaultInitFunc ./source/ui/app.d   62;"   T
defaultInitFunc ./source/ui/app.d   62;"   f
window  ./source/ui/app.d   26;"   v
```

Perfecto!

i can use it in Sublime Text editor...
Need to thinks, how it will be implemented...


Re: dmdtags 1.0.0: an accurate tag generator for D source code

2021-08-27 Thread Ali Çehreli via Digitalmars-d-announce

On 8/27/21 2:38 PM, Paul Backus wrote:

> `dmdtags` is a tags file generator for D source code that uses the DMD
> compiler frontend for accurate parsing.

Thanks! I had stopped using tags files with Emacs for the reasons you 
give. With this, I will be more efficient. :)


And, I will be a happy puppy once Vladimir Panteleev finishes his D mode 
for Emacs, which he is writing from scratch.


Ali



Re: dmdtags 1.0.0: an accurate tag generator for D source code

2021-08-27 Thread Paul Backus via Digitalmars-d-announce

On Friday, 27 August 2021 at 22:45:15 UTC, WebFreak001 wrote:
I'm just worried about how the memory usage will grow with 
this, considering dmd never frees. Maybe I should make it run 
as external tool instead of a library so the OS cleans up, but 
for that get a performance penalty especially on Windows.


`dmdtags` does not run in the background, so any memory it uses 
will be freed at process exit, as soon as it has finished writing 
the tags file. And because it does not do any semantic analysis, 
only parsing, it does not use much memory while running in the 
first place.


According to `/usr/bin/time`, on my personal machine, using 
`dmdtags` to generate a tags file for all of Phobos takes 
slightly less than 1 second and has a peak resident set size of 
around 100MB.


Re: dmdtags 1.0.0: an accurate tag generator for D source code

2021-08-27 Thread WebFreak001 via Digitalmars-d-announce

On Friday, 27 August 2021 at 22:01:59 UTC, Dennis wrote:

On Friday, 27 August 2021 at 21:38:58 UTC, Paul Backus wrote:
Editors that support tags files, such as Vim and Emacs, can 
use this index to help with things like project navigation and 
tab completion.


Cool! Now I'll have to look if I can make this work with Visual 
Studio Code, since code-d which uses Dsymbol tends to be 
unreliable, and this looks ideal for Phobos / Druntime symbol 
completion.


actually it uses D-Scanner and should be a fairly easy drop-in 
replacement.


I'm just worried about how the memory usage will grow with this, 
considering dmd never frees. Maybe I should make it run as 
external tool instead of a library so the OS cleans up, but for 
that get a performance penalty especially on Windows.


Re: dmdtags 1.0.0: an accurate tag generator for D source code

2021-08-27 Thread Dennis via Digitalmars-d-announce

On Friday, 27 August 2021 at 21:38:58 UTC, Paul Backus wrote:
Editors that support tags files, such as Vim and Emacs, can use 
this index to help with things like project navigation and tab 
completion.


Cool! Now I'll have to look if I can make this work with Visual 
Studio Code, since code-d which uses Dsymbol tends to be 
unreliable, and this looks ideal for Phobos / Druntime symbol 
completion.


dmdtags 1.0.0: an accurate tag generator for D source code

2021-08-27 Thread Paul Backus via Digitalmars-d-announce
`dmdtags` is a tags file generator for D source code that uses 
the DMD compiler frontend for accurate parsing.


This release supports 100%-accurate parsing of arbitrary D code 
(tested on DMD and Phobos sources), as well as the most 
commonly-used command line options, `-R`, `-o`, and `-a`. The 
generated tags file has been tested for compatibility with Vim 
and is compliant with the [POSIX standard for `ctags`][posix], so 
any editor with `ctags` support should be able to use it.


[posix]: 
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/ctags.html


### What?

A _tags file_ is a lightweight plain-text index of the symbols in 
a project. Editors that support tags files, such as Vim and 
Emacs, can use this index to help with things like project 
navigation and tab completion.


A _tags file generator_ is, as you might expect, a program that 
reads source code and generates a tags file with entries for the 
symbols in that code.


### Why?

[`universal-ctags`][uctags], the current most-popular and 
best-maintained tags file generator, claims support for many 
programming languages, including D. However, its D parser is not 
well-maintained, and it often excludes large numbers of symbols 
from its output due to parsing failures.


Because `dmdtags` uses the DMD frontend for parsing, its results 
will always be accurate and up-to-date. For pure D projects, it 
can be used as a replacement for `universal-ctags`. For 
mixed-language projects, it can be used together with other tag 
generators with the `--append` option.


[uctags]: https://ctags.io

### Where?

* On Github: https://github.com/pbackus/dmdtags
* On Dub: https://code.dlang.org/packages/dmdtags



Re: Beerconf August 2021

2021-08-27 Thread Steven Schveighoffer via Digitalmars-d-announce

On 8/14/21 5:54 PM, Steven Schveighoffer wrote:

## Wait, I have something important to say!

If you have some topic you want to reserve time for, let me know. So far 
nobody has taken up this offer, but it's still here, keeps coming back 
every month. You can have a nice audience to present some project you're 
working on in D, or some other topic you want to talk about. Just send 
me an email to schveiguy at gmail.


Stefan Koch has submitted the first ever Beerconf talk. After a rigorous 
application process (asked me on slack), I have decided to accept it! It 
will take place on Saturday at 17:00 UTC, on the jitsi stream.


The talk is titled "Take a look at yourself" and is a discussion on his 
upcoming `core.reflect` library that he has been posting about in the 
forums. The talk will be about 30 minutes, and of course, the frivolity 
will not end after that, we hope to see you all there!


The details for joining Beerconf will be posted tomorrow. If anyone has 
any talk or discussion they want the floor for, just let me know. 
Remember that submissions for [DConf Online 2021](https://dconf.org) are 
due by Sept 5 (a week from Sunday), this is good practice!


Cheers! 

-Steve


Re: D Summer School v3

2021-08-27 Thread RazvanN via Digitalmars-d-announce

On Friday, 27 August 2021 at 07:45:42 UTC, M.M. wrote:

On Thursday, 26 August 2021 at 14:33:25 UTC, Mike Parker wrote:

Very nice event and blog.



Thanks!

I wonder about the hackathon: did you, Razvan et al., 
pre-selected a list of bugzilla issues to work on?




We do have a keyword, "bootcamp", for simpler issues, but
some of those could be fairly complicated, therefore,
we internally selected a list of 10-20 issues that we
considered trivial.

About the intimidacy of contributing bugfixes: it could be 
worth trying to demonstrate during a lecture how fixing such an 
PR actually works, including the (technical) process of 
submitting a PR, with all the comments, naming conventions, etc.


That's an interesting proposal. It could potentially benefit both 
future
DSS students and first time contributors. Thanks for the 
suggestion.


Cheers,
RazvanN


Re: D Summer School v3

2021-08-27 Thread M.M. via Digitalmars-d-announce

On Thursday, 26 August 2021 at 14:33:25 UTC, Mike Parker wrote:
Through much of July, Razvan Nitu and Eduard Staniloiu 
organized and carried out their third D Summer School at 
University POLITEHNICA of Bucharest. This time, they did 
several things differently, leading to their biggest event yet. 
They've provided some details on the blog:


https://dlang.org/blog/2021/08/26/d-summer-school-v3/

Reddit:
https://www.reddit.com/r/d_language/comments/pc0ppo/d_summer_school_v3/


Very nice event and blog.

I wonder about the hackathon: did you, Razvan et al., 
pre-selected a list of bugzilla issues to work on?


About the intimidacy of contributing bugfixes: it could be worth 
trying to demonstrate during a lecture how fixing such an PR 
actually works, including the (technical) process of submitting a 
PR, with all the comments, naming conventions, etc.