dexed/docs/videos.md

4.1 KiB

title
Usage in video

{% raw %}

{% endraw %}

Debug a runnable

This video shows how a runnable module can be debugged in the GDB commander widget. The runnable calls a function that returns an int. A breakpoint is put before returning and the result is patched in the CPU inspector by changing RAX value.

{% raw %}

{% endraw %}

GIT gui as a tool

This video shows how to setup a custom tool that invokes git gui for the current project. The trick is to set the tool's current working directory with a symbolic string that's expanded to the current project location.

{% raw %}

{% endraw %}

Compiler paths

This video shows how it's easy to select a specific D compiler on the fly: official dmd, upstream dmd, ldc and gdc. Here the choice is applied to the compiler used to make a runnable but the same setting also exists for the projects.

{% raw %}

{% endraw %}

Library manager and runnables

This video shows how a DUB library can be downloaded, installed and used directly in a runnable module. The most important operations are made in the library manager. At the end and to make obvious the automatic aspect of a library selection, the runnable is compiled while the new libman entry is deactivated, which results in a compiler error.

{% raw %}

{% endraw %}

Programming sessions - parse enum in YATOL

This video shows a full programming session during which i add a new grammar construct to my toy programming language. There are 3 parts:

  1. The formal grammar (i use a PEG that can be used in Pegged) is updated.
  2. The hand written parser is updated.
  3. Changes are pushed on line and i wait for TravisCI to start (which didn't happen !).

{% raw %}

{% endraw %}

The video illustrate well that the runnable modules (the command Run module unittest is a subset of the feature) are valuable. The PEG can be tested on the fly because pegged is registered in the library manager. The parser can be tested on the fly because the compiler (as a library) is registered in the library manager. The custom tools allows to easily push changes online.

{% raw %}

{% endraw %}