• R/O
  • SSH

提交

标签
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

Commit MetaInfo

修订版c20bcb7f8b322ca0290afe83f0f5df516c83cbd9 (tree)
时间2023-01-01 23:49:29
作者Albert Mietus < albert AT mietus DOT nl >
CommiterAlbert Mietus < albert AT mietus DOT nl >

Log Message

numbered Heisenbug-Blog

更改概述

差异

diff -r 3a633eaba0a8 -r c20bcb7f8b32 CCastle/4.Blog/Heisenbug.rst
--- a/CCastle/4.Blog/Heisenbug.rst Mon Dec 26 21:58:05 2022 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
1-.. include:: /std/localtoc.irst
2-
3-.. _Castle-Heisenbug:
4-
5-======================
6-Heisenbug (start/DRAF)
7-======================
8-
9-
10-.. post::
11- :category: CastleBlogs, Castle DesignStudy
12- :tags: Castle, DRAFT
13-
14- In Castle, one can dynamically connect components and send “events” over those connections. Typically this is done as
15- an action on an incoming message (see: :ref:`CCC-Actors`). Depending on ‘:ref:`TheMachinery`’, those events can be
16- queued and result in a beautiful Heisenbug.
17-
18- Before we give a simple example, let’s explain the Heisenbug first.
19- |BR|
20- Later, we continue with a generic solution (todo:-)
21-
22-
23-What is e Heisenbug?
24-=======================
25-
26-The heisenbug is named to Werner Heisenberg, who described the “observer effect”: when you look closely, the behavior
27-changes. The same can happen to software (bugs). The behavior apparently changes when you study -or slightly adjust-
28-that code. Often this is due (small) changes in timing; possibly even in generated code. Therefore old (oldfashioned),
29-sequential code on slow CPU’s is less likely to have heisenbugs then concurrent code on fast multi-core systems. It’s
30-also common in threaded programs.
31-
32-The sieve goes wrong
33---------------------
34-
35-Also my standard Caste demo ‘Sieve of Eratosthenes’ can suffer from this issue. The initial version did work for years,
36-and failed horrible when another “machinery” was used.
37-
38-
39-
40-
41- https://en.wikipedia.org/wiki/Heisenbug
42-
43-.. LocalWords: heisenbugs, heisenbug
diff -r 3a633eaba0a8 -r c20bcb7f8b32 CCastle/4.Blog/a.Heisenbug.rst
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/CCastle/4.Blog/a.Heisenbug.rst Sun Jan 01 15:49:29 2023 +0100
@@ -0,0 +1,43 @@
1+.. include:: /std/localtoc.irst
2+
3+.. _Castle-Heisenbug:
4+
5+======================
6+Heisenbug (start/DRAF)
7+======================
8+
9+
10+.. post::
11+ :category: CastleBlogs, Castle DesignStudy
12+ :tags: Castle, DRAFT
13+
14+ In Castle, one can dynamically connect components and send “events” over those connections. Typically this is done as
15+ an action on an incoming message (see: :ref:`CCC-Actors`). Depending on ‘:ref:`TheMachinery`’, those events can be
16+ queued and result in a beautiful Heisenbug.
17+
18+ Before we give a simple example, let’s explain the Heisenbug first.
19+ |BR|
20+ Later, we continue with a generic solution (todo:-)
21+
22+
23+What is e Heisenbug?
24+=======================
25+
26+The heisenbug is named to Werner Heisenberg, who described the “observer effect”: when you look closely, the behavior
27+changes. The same can happen to software (bugs). The behavior apparently changes when you study -or slightly adjust-
28+that code. Often this is due (small) changes in timing; possibly even in generated code. Therefore old (oldfashioned),
29+sequential code on slow CPU’s is less likely to have heisenbugs then concurrent code on fast multi-core systems. It’s
30+also common in threaded programs.
31+
32+The sieve goes wrong
33+--------------------
34+
35+Also my standard Caste demo ‘Sieve of Eratosthenes’ can suffer from this issue. The initial version did work for years,
36+and failed horrible when another “machinery” was used.
37+
38+
39+
40+
41+ https://en.wikipedia.org/wiki/Heisenbug
42+
43+.. LocalWords: heisenbugs, heisenbug