Skip to content

Commit 044584a

Browse files
committed
v1.1.2 - potential bugfix: std::deque makes no thread-safety guarantees
- use tbb::concurrent_queue - fixes potential memory access violation issues + improved dependency graph concept + minor code style improvements
1 parent bcc3c46 commit 044584a

File tree

6 files changed

+185
-201
lines changed

6 files changed

+185
-201
lines changed

__dependency_graph.dot

Lines changed: 92 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -1,60 +1,60 @@
11
digraph {
22
CfgGrammar -> FctHelper [color=blue]
3-
CfgGrammar -> regex [color=blue]
3+
CfgGrammar -> "(regex)" [color=blue]
44
CfgGrammar -> IPrintable [color=red]
5-
CfgGrammar -> cstdint [color=red]
6-
CfgGrammar -> unordered_map [color=red]
7-
CfgGrammar -> vector [color=red]
5+
CfgGrammar -> "(cstdint)" [color=red]
6+
CfgGrammar -> "(unordered_map)" [color=red]
7+
CfgGrammar -> "(vector)" [color=red]
88
subgraph "cluster_D:/Dropbox/eclipse/pmGenerator\grammar" {
99
CfgGrammar
1010
CfgGrammar
1111
}
12-
FctHelper -> iostream [color=blue]
12+
FctHelper -> "(iostream)" [color=blue]
1313
FctHelper -> math [color=blue]
14-
FctHelper -> algorithm [color=red]
15-
FctHelper -> array [color=red]
16-
FctHelper -> charconv [color=red]
17-
FctHelper -> chrono [color=red]
18-
FctHelper -> cstddef [color=red]
19-
FctHelper -> cstdint [color=red]
20-
FctHelper -> deque [color=red]
21-
FctHelper -> filesystem [color=red]
22-
FctHelper -> fstream [color=red]
23-
FctHelper -> map [color=red]
14+
FctHelper -> "(algorithm)" [color=red]
15+
FctHelper -> "(array)" [color=red]
16+
FctHelper -> "(charconv)" [color=red]
17+
FctHelper -> "(chrono)" [color=red]
18+
FctHelper -> "(cstddef)" [color=red]
19+
FctHelper -> "(cstdint)" [color=red]
20+
FctHelper -> "(deque)" [color=red]
21+
FctHelper -> "(filesystem)" [color=red]
22+
FctHelper -> "(fstream)" [color=red]
23+
FctHelper -> "(map)" [color=red]
2424
FctHelper -> mpi [color=red]
25-
FctHelper -> set [color=red]
26-
FctHelper -> sstream [color=red]
27-
FctHelper -> string [color=red]
28-
FctHelper -> vector [color=red]
25+
FctHelper -> "(set)" [color=red]
26+
FctHelper -> "(sstream)" [color=red]
27+
FctHelper -> "(string)" [color=red]
28+
FctHelper -> "(vector)" [color=red]
2929
FwdTbb -> version [color=red]
3030
FwdTbb -> tbb_stddef [color=red]
31-
FwdTbb -> functional [color=red]
32-
FwdTbb -> utility [color=red]
33-
Hashing -> cstddef [color=red]
34-
Hashing -> functional [color=red]
35-
Hashing -> tuple [color=red]
36-
Hashing -> utility [color=red]
37-
Hashing -> vector [color=red]
38-
ICloneable -> memory [color=red]
39-
ICloneable -> unordered_map [color=red]
31+
FwdTbb -> "(functional)" [color=red]
32+
FwdTbb -> "(utility)" [color=red]
33+
Hashing -> "(cstddef)" [color=red]
34+
Hashing -> "(functional)" [color=red]
35+
Hashing -> "(tuple)" [color=red]
36+
Hashing -> "(utility)" [color=red]
37+
Hashing -> "(vector)" [color=red]
38+
ICloneable -> "(memory)" [color=red]
39+
ICloneable -> "(unordered_map)" [color=red]
4040
IPrintable -> FctHelper [color=blue]
41-
IPrintable -> memory [color=red]
42-
IPrintable -> string [color=red]
41+
IPrintable -> "(memory)" [color=red]
42+
IPrintable -> "(string)" [color=red]
4343
ProgressData -> FctHelper [color=blue]
44-
ProgressData -> cstring [color=blue]
45-
ProgressData -> iostream [color=blue]
46-
ProgressData -> atomic [color=red]
47-
ProgressData -> chrono [color=red]
48-
ProgressData -> cstdint [color=red]
49-
ProgressData -> string [color=red]
50-
ProgressData -> vector [color=red]
51-
Resources -> string [color=red]
52-
Resources -> vector [color=red]
53-
Version -> array [color=red]
54-
Version -> cstddef [color=red]
55-
Version -> cstdint [color=red]
56-
Version -> type_traits [color=red]
57-
Version -> utility [color=red]
44+
ProgressData -> "(cstring)" [color=blue]
45+
ProgressData -> "(iostream)" [color=blue]
46+
ProgressData -> "(atomic)" [color=red]
47+
ProgressData -> "(chrono)" [color=red]
48+
ProgressData -> "(cstdint)" [color=red]
49+
ProgressData -> "(string)" [color=red]
50+
ProgressData -> "(vector)" [color=red]
51+
Resources -> "(string)" [color=red]
52+
Resources -> "(vector)" [color=red]
53+
Version -> "(array)" [color=red]
54+
Version -> "(cstddef)" [color=red]
55+
Version -> "(cstdint)" [color=red]
56+
Version -> "(type_traits)" [color=red]
57+
Version -> "(utility)" [color=red]
5858
subgraph "cluster_D:/Dropbox/eclipse/pmGenerator\helper" {
5959
FctHelper
6060
FctHelper
@@ -78,47 +78,47 @@ digraph {
7878
DlCore -> concurrent_map [color=blue]
7979
DlCore -> concurrent_unordered_map [color=blue]
8080
DlCore -> concurrent_vector [color=blue]
81-
DlCore -> iostream [color=blue]
82-
DlCore -> mutex [color=blue]
81+
DlCore -> "(iostream)" [color=blue]
82+
DlCore -> "(mutex)" [color=blue]
8383
DlCore -> FwdTbb [color=red]
84-
DlCore -> cstddef [color=red]
85-
DlCore -> cstdint [color=red]
86-
DlCore -> map [color=red]
87-
DlCore -> memory [color=red]
88-
DlCore -> string [color=red]
89-
DlCore -> unordered_map [color=red]
90-
DlCore -> unordered_set [color=red]
91-
DlCore -> vector [color=red]
84+
DlCore -> "(cstddef)" [color=red]
85+
DlCore -> "(cstdint)" [color=red]
86+
DlCore -> "(map)" [color=red]
87+
DlCore -> "(memory)" [color=red]
88+
DlCore -> "(string)" [color=red]
89+
DlCore -> "(unordered_map)" [color=red]
90+
DlCore -> "(unordered_set)" [color=red]
91+
DlCore -> "(vector)" [color=red]
9292
DlFormula -> TreeNode [color=blue]
9393
DlFormula -> DlCore [color=blue]
94-
DlFormula -> cstddef [color=red]
95-
DlFormula -> memory [color=red]
96-
DlFormula -> string [color=red]
94+
DlFormula -> "(cstddef)" [color=red]
95+
DlFormula -> "(memory)" [color=red]
96+
DlFormula -> "(string)" [color=red]
9797
DlProofEnumerator -> FctHelper [color=blue]
9898
DlProofEnumerator -> Resources [color=blue]
9999
DlProofEnumerator -> TreeNode [color=blue]
100100
DlProofEnumerator -> DRuleParser [color=blue]
101101
DlProofEnumerator -> DlCore [color=blue]
102102
DlProofEnumerator -> DlFormula [color=blue]
103103
DlProofEnumerator -> concurrent_map [color=blue]
104-
DlProofEnumerator -> concurrent_queue [color=blue]
105104
DlProofEnumerator -> concurrent_unordered_map [color=blue]
106105
DlProofEnumerator -> concurrent_unordered_set [color=blue]
107106
DlProofEnumerator -> concurrent_vector [color=blue]
108107
DlProofEnumerator -> parallel_for [color=blue]
109108
DlProofEnumerator -> parallel_sort [color=blue]
110-
DlProofEnumerator -> cstring [color=blue]
111-
DlProofEnumerator -> iostream [color=blue]
109+
DlProofEnumerator -> "(cstdlib)" [color=blue]
110+
DlProofEnumerator -> "(cstring)" [color=blue]
111+
DlProofEnumerator -> "(iostream)" [color=blue]
112112
DlProofEnumerator -> FwdTbb [color=red]
113113
DlProofEnumerator -> ProgressData [color=red]
114-
DlProofEnumerator -> array [color=red]
115-
DlProofEnumerator -> condition_variable [color=red]
116-
DlProofEnumerator -> cstddef [color=red]
117-
DlProofEnumerator -> deque [color=red]
118-
DlProofEnumerator -> map [color=red]
119-
DlProofEnumerator -> thread [color=red]
114+
DlProofEnumerator -> "(array)" [color=red]
115+
DlProofEnumerator -> "(condition_variable)" [color=red]
116+
DlProofEnumerator -> "(cstddef)" [color=red]
117+
DlProofEnumerator -> concurrent_queue [color=red]
118+
DlProofEnumerator -> "(map)" [color=red]
119+
DlProofEnumerator -> "(thread)" [color=red]
120120
DlStructure -> CfgGrammar [color=blue]
121-
DlStructure -> cstdint [color=red]
121+
DlStructure -> "(cstdint)" [color=red]
122122
subgraph "cluster_D:/Dropbox/eclipse/pmGenerator\logic" {
123123
DlCore
124124
DlCore
@@ -133,9 +133,9 @@ digraph {
133133
main -> Version [color=blue]
134134
main -> DRuleReducer [color=blue]
135135
main -> DlProofEnumerator [color=blue]
136-
main -> cstring [color=blue]
137-
main -> ctime [color=blue]
138-
main -> iostream [color=blue]
136+
main -> "(cstring)" [color=blue]
137+
main -> "(ctime)" [color=blue]
138+
main -> "(iostream)" [color=blue]
139139
main -> process [color=blue]
140140
main -> unistd [color=blue]
141141
subgraph "cluster_D:/Dropbox/eclipse/pmGenerator" {
@@ -146,18 +146,18 @@ digraph {
146146
DRuleParser -> DlCore [color=blue]
147147
DRuleParser -> DlFormula [color=blue]
148148
DRuleParser -> "boost/algorithm/string" [color=blue]
149-
DRuleParser -> iostream [color=blue]
150-
DRuleParser -> cstddef [color=red]
151-
DRuleParser -> map [color=red]
152-
DRuleParser -> memory [color=red]
153-
DRuleParser -> set [color=red]
154-
DRuleParser -> string_view [color=red]
155-
DRuleParser -> string [color=red]
156-
DRuleParser -> tuple [color=red]
157-
DRuleParser -> unordered_map [color=red]
158-
DRuleParser -> unordered_set [color=red]
159-
DRuleParser -> utility [color=red]
160-
DRuleParser -> vector [color=red]
149+
DRuleParser -> "(iostream)" [color=blue]
150+
DRuleParser -> "(cstddef)" [color=red]
151+
DRuleParser -> "(map)" [color=red]
152+
DRuleParser -> "(memory)" [color=red]
153+
DRuleParser -> "(set)" [color=red]
154+
DRuleParser -> "(string_view)" [color=red]
155+
DRuleParser -> "(string)" [color=red]
156+
DRuleParser -> "(tuple)" [color=red]
157+
DRuleParser -> "(unordered_map)" [color=red]
158+
DRuleParser -> "(unordered_set)" [color=red]
159+
DRuleParser -> "(utility)" [color=red]
160+
DRuleParser -> "(vector)" [color=red]
161161
DRuleReducer -> FctHelper [color=blue]
162162
DRuleReducer -> TreeNode [color=blue]
163163
DRuleReducer -> DlCore [color=blue]
@@ -168,8 +168,8 @@ digraph {
168168
DRuleReducer -> concurrent_vector [color=blue]
169169
DRuleReducer -> parallel_for [color=blue]
170170
DRuleReducer -> "boost/algorithm/string" [color=blue]
171-
DRuleReducer -> iostream [color=blue]
172-
DRuleReducer -> string [color=red]
171+
DRuleReducer -> "(iostream)" [color=blue]
172+
DRuleReducer -> "(string)" [color=red]
173173
subgraph "cluster_D:/Dropbox/eclipse/pmGenerator\metamath" {
174174
DRuleParser
175175
DRuleParser
@@ -178,14 +178,14 @@ digraph {
178178
}
179179
TreeNode -> ICloneable [color=red]
180180
TreeNode -> IPrintable [color=red]
181-
TreeNode -> algorithm [color=red]
182-
TreeNode -> cstddef [color=red]
183-
TreeNode -> cstdint [color=red]
184-
TreeNode -> functional [color=red]
185-
TreeNode -> iomanip [color=red]
186-
TreeNode -> sstream [color=red]
187-
TreeNode -> unordered_set [color=red]
188-
TreeNode -> vector [color=red]
181+
TreeNode -> "(algorithm)" [color=red]
182+
TreeNode -> "(cstddef)" [color=red]
183+
TreeNode -> "(cstdint)" [color=red]
184+
TreeNode -> "(functional)" [color=red]
185+
TreeNode -> "(iomanip)" [color=red]
186+
TreeNode -> "(sstream)" [color=red]
187+
TreeNode -> "(unordered_set)" [color=red]
188+
TreeNode -> "(vector)" [color=red]
189189
subgraph "cluster_D:/Dropbox/eclipse/pmGenerator\tree" {
190190
TreeNode
191191
}

helper/Version.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
#define TOOL_REPOSITORY "https://github.com/xamidi/pmGenerator"
1212
#define TOOL_VERSION_MAJOR 1
1313
#define TOOL_VERSION_MINOR 1
14-
#define TOOL_VERSION_PATCH 1
15-
#define TOOL_VERSION_SPEC "1.1.1"
14+
#define TOOL_VERSION_PATCH 2
15+
#define TOOL_VERSION_SPEC "1.1.2"
1616
#define TOOL_VERSION_BRANCH "master"
1717

1818
#define BUILD_YEAR \

logic/DlCore.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ struct DlCore {
155155

156156
// (Performance-oriented) inverse of toPolishNotation_noRename(). Assigns DRuleParser's globally definite symbols to operators, and its own globally definite symbols to variables.
157157
// Does not fill the output's meaning.
158-
static bool fromPolishNotation_noRename(std::shared_ptr<DlFormula>& output, const std::string& input, bool prioritizeBochenski = false, bool debug = true);
158+
static bool fromPolishNotation_noRename(std::shared_ptr<DlFormula>& output, const std::string& input, bool prioritizeBochenski = false, bool debug = false);
159159

160160
// Calculate the formula's symbolic length (i.e. the amount of nodes of its syntax tree), where 'formula' is given in Łukasiewicz-format provided by toPolishNotation_noRename(),
161161
// and all variable names consist of only numerical characters.

0 commit comments

Comments
 (0)