Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion changelog/dmd.exception-rewrite.dd
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ the try body can throw an `Exception`.

To reenable the optimization, use the new `-nothrow-optimizations` switch.

The following example demonstrates the fix - "exiting!" is now printed even though `callMe` is a `nothrow` function:
The following example demonstrates the fix - "exiting" is now printed even though `callMe` is a `nothrow` function:

```d
import core.stdc.stdio;
Expand Down
8 changes: 4 additions & 4 deletions changelog/dmd.fastdfa.dd
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
New experimental Data Flow Analysis Engine for nullability and truthiness

A new experimental Data Flow Analysis (DFA) has been implemented under the preview flag ``-preview=fastdfa``.
The intent of the engine is to be both fast and free from false positives, if successful it may in the future be turned on by default.
The intent of the engine is to be both fast and free from false positives; if successful, it may in the future be turned on by default.

No attributes have been implemented to date, before they are considered the engine itself must be both usable with the right tradeoffs and have desirable features.
This has some side effects, it prevent separate compilation, function pointers, and cyclic functions from being analysable.
No attributes have been implemented to date; before they are considered, the engine itself must be both usable with the right tradeoffs and have desirable features.
Comment on lines +4 to +6

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what's with the semi colons? The first one should be full stop, the second one should be a comma.

This has some side effects: it prevents separate compilation, function pointers, and cyclic functions from being analysable.
These limitations are not supposed to prevent a successful compilation when in use.

The engine itself is variable centric with a strong focus on giving up on analysing a variable if things get too complex for it.
Expand All @@ -25,7 +25,7 @@ void loopy()
```

If the engine is successful, the reporting mechanism would be replaced with a tracing state pass.
This would offer for a function line by line explanation of how and why the engine thought something was true.
This would offer a line by line explanation of how and why the engine thought something was true for a function.

The engine has been tested on a 100k LOC defensively written codebase without any false positives.
The performance is similar to DIP1000 and is not supposed to be noticeable.
4 changes: 2 additions & 2 deletions changelog/dmd.fastdfa.uninitialized.dd
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Fast DFA reports on uninitialized variable reads

The fast DFA engine has gained the ability to error when a variable can be proven to being in an uninitialized state, and is read.
The fast DFA engine has gained the ability to error when a variable can be proven to be in an uninitialized state, and is read.

```d
void readFromUninit() @system
Expand Down Expand Up @@ -33,4 +33,4 @@ void checkFloatInit(bool condition)
It will not activate for other expressions, or statements.
Only in a mathematical expression.

This was not originally part of the fast DFA engines scope, its continued existence depends upon community feedback as part of usage.
This was not originally part of the fast DFA engine's scope; its continued existence depends upon community feedback as part of usage.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

semi-colon should be a full stop

4 changes: 2 additions & 2 deletions changelog/dmd.nullderefcheck.dd
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ Checks for null dereferences

A new check has been implemented that injects code to check a pointer for null before it is dereferenced.

It will be typically be used if you need a backtrace generated or you want to catch and handle the `Error` as part of a scheduler.
It will typically be used if you need a backtrace generated or you want to catch and handle the `Error` as part of a scheduler.

This can be enabled for all functions by using `-check=nullderef=on` or exclusively for `@safe` functions with `-check=nullderef=safeonly`
This can be enabled for all functions by using `-check=nullderef=on` or exclusively for `@safe` functions with `-check=nullderef=safeonly`.
By default it is off.
What happens may be customized by the `-checkaction` switch and by setting a new handler in `core.exception`.

Expand Down
4 changes: 2 additions & 2 deletions changelog/druntime.filterthrown.dd
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Gravedigger approach to `Throwable`s escaping a thread entry point is now available

A new method is added to `ThreadBase` enabling filtering of any `Throwable`s before it is handled by the thread abstraction.
This may be used per-thread and globally, to log that an `Error` has occured or to exit the process.
A new method is added to `ThreadBase` enabling filtering of any `Throwable` before it is handled by the thread abstraction.
This may be used per-thread and globally, to log that an `Error` has occurred or to exit the process.

A reasonable error handler that may be of use is:

Expand Down
Loading