Merge lp:~zorba-coders/zorba/markos-scratch into lp:zorba
- markos-scratch
- Merge into trunk
Status: | Merged |
---|---|
Approved by: | Markos Zaharioudakis |
Approved revision: | 11115 |
Merged at revision: | 11474 |
Proposed branch: | lp:~zorba-coders/zorba/markos-scratch |
Merge into: | lp:zorba |
Diff against target: |
725 lines (+120/-157) 14 files modified
src/compiler/translator/translator.cpp (+17/-2) src/diagnostics/diagnostic_en.xml (+1/-1) src/diagnostics/pregenerated/dict_en.cpp (+1/-1) src/runtime/accessors/accessors_impl.cpp (+12/-5) src/runtime/api/plan_iterator_wrapper.cpp (+10/-48) src/runtime/api/plan_iterator_wrapper.h (+5/-8) src/runtime/base/plan_iterator.cpp (+34/-7) src/runtime/base/plan_iterator.h (+7/-14) src/runtime/core/constructors.cpp (+33/-30) src/runtime/core/fncall_iterator.h (+0/-2) src/store/api/item.h (+0/-17) src/store/naive/atomic_items.cpp (+0/-7) src/store/naive/atomic_items.h (+0/-14) test/fots/CMakeLists.txt (+0/-1) |
To merge this branch: | bzr merge lp:~zorba-coders/zorba/markos-scratch |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Markos Zaharioudakis | Approve | ||
Review via email: mp+165747@code.launchpad.net |
Commit message
fixed xray performance regression + cleanup
Description of the change
fixed xray performance regression + cleanup.
Markos Zaharioudakis (markos-za) : | # |
Zorba Build Bot (zorba-buildbot) wrote : | # |
Zorba Build Bot (zorba-buildbot) wrote : | # |
The attempt to merge lp:~zorba-coders/zorba/markos-scratch into lp:zorba failed. Below is the output from the failed tests.
CMake Error at /home/ceej/
Validation queue job markos-
The final status was:
No tests were run - build or configure step must have failed.
Not commiting changes.
Error in read script: /home/ceej/
- 11114. By Markos Zaharioudakis
-
merge from trunk
- 11115. By Markos Zaharioudakis
-
merge from trunk
Zorba Build Bot (zorba-buildbot) wrote : | # |
Validation queue starting for merge proposal.
Log at: http://
Zorba Build Bot (zorba-buildbot) wrote : | # |
Validation queue job markos-
All tests succeeded!
Preview Diff
1 | === modified file 'src/compiler/translator/translator.cpp' | |||
2 | --- src/compiler/translator/translator.cpp 2013-05-24 16:34:11 +0000 | |||
3 | +++ src/compiler/translator/translator.cpp 2013-05-25 15:17:29 +0000 | |||
4 | @@ -11969,8 +11969,10 @@ | |||
5 | 11969 | } | 11969 | } |
6 | 11970 | case FunctionConsts::FN_HEAD_1: | 11970 | case FunctionConsts::FN_HEAD_1: |
7 | 11971 | { | 11971 | { |
10 | 11972 | arguments.push_back(CREATE(const)(theRootSctx, theUDF, loc, numeric_consts<xs_integer>::one())); | 11972 | arguments.push_back(CREATE(const)(theRootSctx, theUDF, loc, |
11 | 11973 | arguments.push_back(CREATE(const)(theRootSctx, theUDF, loc, numeric_consts<xs_integer>::one())); | 11973 | numeric_consts<xs_integer>::one())); |
12 | 11974 | arguments.push_back(CREATE(const)(theRootSctx, theUDF, loc, | ||
13 | 11975 | numeric_consts<xs_integer>::one())); | ||
14 | 11974 | 11976 | ||
15 | 11975 | function* f = BUILTIN_FUNC(OP_ZORBA_SUBSEQUENCE_INT_3); | 11977 | function* f = BUILTIN_FUNC(OP_ZORBA_SUBSEQUENCE_INT_3); |
16 | 11976 | 11978 | ||
17 | @@ -12653,6 +12655,19 @@ | |||
18 | 12653 | 12655 | ||
19 | 12654 | break; | 12656 | break; |
20 | 12655 | } | 12657 | } |
21 | 12658 | case FunctionConsts::FN_MAP_2: | ||
22 | 12659 | case FunctionConsts::FN_FILTER_2: | ||
23 | 12660 | { | ||
24 | 12661 | flwor_expr* flworBody = CREATE(flwor)(theRootSctx, theUDF, loc); | ||
25 | 12662 | |||
26 | 12663 | let_clause* lc = wrap_in_letclause(foArgs[0]); | ||
27 | 12664 | flworBody->add_clause(lc); | ||
28 | 12665 | foArgs[0] = CREATE(wrapper)(theRootSctx, theUDF, loc, lc->get_var()); | ||
29 | 12666 | |||
30 | 12667 | flworBody->set_return_expr(generate_fn_body(f, foArgs, loc)); | ||
31 | 12668 | body = flworBody; | ||
32 | 12669 | break; | ||
33 | 12670 | } | ||
34 | 12656 | case FunctionConsts::FN_FUNCTION_LOOKUP_2: | 12671 | case FunctionConsts::FN_FUNCTION_LOOKUP_2: |
35 | 12657 | { | 12672 | { |
36 | 12658 | bool varAdded = false; | 12673 | bool varAdded = false; |
37 | 12659 | 12674 | ||
38 | === modified file 'src/diagnostics/diagnostic_en.xml' | |||
39 | --- src/diagnostics/diagnostic_en.xml 2013-05-16 22:26:07 +0000 | |||
40 | +++ src/diagnostics/diagnostic_en.xml 2013-05-25 15:17:29 +0000 | |||
41 | @@ -1641,7 +1641,7 @@ | |||
42 | 1641 | An argument to \c fn:data() contains a node that does not have a typed | 1641 | An argument to \c fn:data() contains a node that does not have a typed |
43 | 1642 | value. | 1642 | value. |
44 | 1643 | </comment> | 1643 | </comment> |
46 | 1644 | <value>"$1": argument to fn:data() is function item</value> | 1644 | <value>"$1": function item passed as argument to fn:data()</value> |
47 | 1645 | </diagnostic> | 1645 | </diagnostic> |
48 | 1646 | 1646 | ||
49 | 1647 | <diagnostic code="FOTY0014"> | 1647 | <diagnostic code="FOTY0014"> |
50 | 1648 | 1648 | ||
51 | === modified file 'src/diagnostics/pregenerated/dict_en.cpp' | |||
52 | --- src/diagnostics/pregenerated/dict_en.cpp 2013-05-16 22:26:07 +0000 | |||
53 | +++ src/diagnostics/pregenerated/dict_en.cpp 2013-05-25 15:17:29 +0000 | |||
54 | @@ -71,7 +71,7 @@ | |||
55 | 71 | { "FORX0003", "\"$1\": regular expression matches zero-length string" }, | 71 | { "FORX0003", "\"$1\": regular expression matches zero-length string" }, |
56 | 72 | { "FORX0004", "\"$1\": invalid replacement string${: 2}" }, | 72 | { "FORX0004", "\"$1\": invalid replacement string${: 2}" }, |
57 | 73 | { "FOTY0012", "\"$1\": element node of type $2 does not have a typed value" }, | 73 | { "FOTY0012", "\"$1\": element node of type $2 does not have a typed value" }, |
59 | 74 | { "FOTY0013", "\"$1\": argument to fn:data() is function item" }, | 74 | { "FOTY0013", "\"$1\": function item passed as argument to fn:data()" }, |
60 | 75 | { "FOTY0014", "\"$1\": argument to fn:string() is a function item" }, | 75 | { "FOTY0014", "\"$1\": argument to fn:string() is a function item" }, |
61 | 76 | { "FOTY0015", "\"$1\": argument to fn:deep-equal() contains a function item" }, | 76 | { "FOTY0015", "\"$1\": argument to fn:deep-equal() contains a function item" }, |
62 | 77 | { "FOUP0001", "first operand of fn:put() is not a node of a supported kind" }, | 77 | { "FOUP0001", "first operand of fn:put() is not a node of a supported kind" }, |
63 | 78 | 78 | ||
64 | === modified file 'src/runtime/accessors/accessors_impl.cpp' | |||
65 | --- src/runtime/accessors/accessors_impl.cpp 2013-05-04 20:20:05 +0000 | |||
66 | +++ src/runtime/accessors/accessors_impl.cpp 2013-05-25 15:17:29 +0000 | |||
67 | @@ -183,6 +183,7 @@ | |||
68 | 183 | { | 183 | { |
69 | 184 | PlanIter_t iter; | 184 | PlanIter_t iter; |
70 | 185 | store::Item_t itemNode; | 185 | store::Item_t itemNode; |
71 | 186 | store::Item::ItemKind resKind; | ||
72 | 186 | 187 | ||
73 | 187 | FnDataIteratorState* state; | 188 | FnDataIteratorState* state; |
74 | 188 | DEFAULT_STACK_INIT(FnDataIteratorState, state, planState); | 189 | DEFAULT_STACK_INIT(FnDataIteratorState, state, planState); |
75 | @@ -192,7 +193,9 @@ | |||
76 | 192 | if (!consumeNext(result, theChildren[0], planState)) | 193 | if (!consumeNext(result, theChildren[0], planState)) |
77 | 193 | break; | 194 | break; |
78 | 194 | 195 | ||
80 | 195 | if (result->isNode()) | 196 | resKind = result->getKind(); |
81 | 197 | |||
82 | 198 | if (resKind == store::Item::NODE) | ||
83 | 196 | { | 199 | { |
84 | 197 | itemNode.transfer(result); | 200 | itemNode.transfer(result); |
85 | 198 | 201 | ||
86 | @@ -227,22 +230,26 @@ | |||
87 | 227 | } | 230 | } |
88 | 228 | } | 231 | } |
89 | 229 | } | 232 | } |
91 | 230 | else if (result->isAtomic()) | 233 | else if (resKind == store::Item::ATOMIC) |
92 | 231 | { | 234 | { |
93 | 232 | STACK_PUSH(true, state); | 235 | STACK_PUSH(true, state); |
94 | 233 | } | 236 | } |
96 | 234 | else if (result->isJSONItem()) | 237 | else if (resKind == store::Item::JSONIQ) |
97 | 235 | { | 238 | { |
98 | 236 | RAISE_ERROR(jerr::JNTY0004, loc, | 239 | RAISE_ERROR(jerr::JNTY0004, loc, |
99 | 237 | ERROR_PARAMS(result->isJSONObject() ? "object" : "array")); | 240 | ERROR_PARAMS(result->isJSONObject() ? "object" : "array")); |
100 | 238 | } | 241 | } |
102 | 239 | else //(result->isFunction()) | 242 | else if (resKind == store::Item::FUNCTION) |
103 | 240 | { | 243 | { |
104 | 241 | store::Item_t fnName = result->getFunctionName(); | 244 | store::Item_t fnName = result->getFunctionName(); |
105 | 242 | RAISE_ERROR(err::FOTY0013, loc, | 245 | RAISE_ERROR(err::FOTY0013, loc, |
106 | 243 | ERROR_PARAMS(fnName.getp() ? | 246 | ERROR_PARAMS(fnName.getp() ? |
107 | 244 | result->getFunctionName()->getStringValue() : | 247 | result->getFunctionName()->getStringValue() : |
109 | 245 | result->show())); | 248 | zstring("???"))); |
110 | 249 | } | ||
111 | 250 | else | ||
112 | 251 | { | ||
113 | 252 | ZORBA_ASSERT(false); | ||
114 | 246 | } | 253 | } |
115 | 247 | } | 254 | } |
116 | 248 | 255 | ||
117 | 249 | 256 | ||
118 | === modified file 'src/runtime/api/plan_iterator_wrapper.cpp' | |||
119 | --- src/runtime/api/plan_iterator_wrapper.cpp 2013-03-17 13:55:28 +0000 | |||
120 | +++ src/runtime/api/plan_iterator_wrapper.cpp 2013-05-25 15:17:29 +0000 | |||
121 | @@ -44,12 +44,6 @@ | |||
122 | 44 | } | 44 | } |
123 | 45 | 45 | ||
124 | 46 | 46 | ||
125 | 47 | void PlanIteratorWrapper::reset() | ||
126 | 48 | { | ||
127 | 49 | theIterator->reset(*theStateBlock); | ||
128 | 50 | } | ||
129 | 51 | |||
130 | 52 | |||
131 | 53 | #ifndef NDEBUG | 47 | #ifndef NDEBUG |
132 | 54 | std::string PlanIteratorWrapper::toString() const | 48 | std::string PlanIteratorWrapper::toString() const |
133 | 55 | { | 49 | { |
134 | @@ -65,25 +59,16 @@ | |||
135 | 65 | ********************************************************************************/ | 59 | ********************************************************************************/ |
136 | 66 | SERIALIZE_INTERNAL_METHOD(PlanStateIteratorWrapper); | 60 | SERIALIZE_INTERNAL_METHOD(PlanStateIteratorWrapper); |
137 | 67 | 61 | ||
138 | 62 | |||
139 | 68 | void PlanStateIteratorWrapper::serialize(::zorba::serialization::Archiver& ar) | 63 | void PlanStateIteratorWrapper::serialize(::zorba::serialization::Archiver& ar) |
140 | 69 | { | 64 | { |
141 | 70 | PlanIterator::serialize(ar); | 65 | PlanIterator::serialize(ar); |
142 | 71 | } | 66 | } |
143 | 72 | 67 | ||
144 | 73 | PlanStateIteratorWrapper::PlanStateIteratorWrapper(PlanIterator* iter, PlanState& state, uint32_t offset) | ||
145 | 74 | : | ||
146 | 75 | PlanIterator(NULL, QueryLoc()), | ||
147 | 76 | theIterator(iter), | ||
148 | 77 | theStoreIterator(NULL), | ||
149 | 78 | theStateBlock(&state), | ||
150 | 79 | theOffset(offset) | ||
151 | 80 | { | ||
152 | 81 | } | ||
153 | 82 | 68 | ||
154 | 83 | PlanStateIteratorWrapper::PlanStateIteratorWrapper(const store::Iterator_t& iter) | 69 | PlanStateIteratorWrapper::PlanStateIteratorWrapper(const store::Iterator_t& iter) |
155 | 84 | : | 70 | : |
156 | 85 | PlanIterator(NULL, QueryLoc()), | 71 | PlanIterator(NULL, QueryLoc()), |
157 | 86 | theIterator(NULL), | ||
158 | 87 | theStoreIterator(iter), | 72 | theStoreIterator(iter), |
159 | 88 | theStateBlock(NULL) | 73 | theStateBlock(NULL) |
160 | 89 | { | 74 | { |
161 | @@ -96,55 +81,35 @@ | |||
162 | 96 | } | 81 | } |
163 | 97 | 82 | ||
164 | 98 | 83 | ||
165 | 99 | void PlanStateIteratorWrapper::open() | ||
166 | 100 | { | ||
167 | 101 | if (theIterator) | ||
168 | 102 | theIterator->open(*theStateBlock, theOffset); | ||
169 | 103 | else | ||
170 | 104 | theStoreIterator->open(); | ||
171 | 105 | } | ||
172 | 106 | |||
173 | 107 | |||
174 | 108 | // both arguments will be ignored | ||
175 | 109 | void PlanStateIteratorWrapper::open(PlanState& planState, uint32_t& offset) | 84 | void PlanStateIteratorWrapper::open(PlanState& planState, uint32_t& offset) |
176 | 110 | { | 85 | { |
178 | 111 | open(); | 86 | theStoreIterator->open(); |
179 | 112 | } | 87 | } |
180 | 113 | 88 | ||
181 | 114 | 89 | ||
183 | 115 | bool PlanStateIteratorWrapper::produceNext(store::Item_t& result, PlanState& planState) const | 90 | bool PlanStateIteratorWrapper::produceNext( |
184 | 91 | store::Item_t& result, | ||
185 | 92 | PlanState& planState) const | ||
186 | 116 | { | 93 | { |
191 | 117 | if (theIterator) | 94 | return theStoreIterator->next(result); |
188 | 118 | return theIterator->produceNext(result, *theStateBlock); | ||
189 | 119 | else | ||
190 | 120 | return theStoreIterator->next(result); | ||
192 | 121 | } | 95 | } |
193 | 122 | 96 | ||
194 | 123 | 97 | ||
195 | 124 | bool PlanStateIteratorWrapper::next(store::Item_t& result) | 98 | bool PlanStateIteratorWrapper::next(store::Item_t& result) |
196 | 125 | { | 99 | { |
201 | 126 | if (theIterator) | 100 | return theStoreIterator->next(result); |
198 | 127 | return PlanIterator::consumeNext(result, theIterator, *theStateBlock); | ||
199 | 128 | else | ||
200 | 129 | return theStoreIterator->next(result); | ||
202 | 130 | } | 101 | } |
203 | 131 | 102 | ||
204 | 132 | 103 | ||
205 | 133 | void PlanStateIteratorWrapper::reset() const | 104 | void PlanStateIteratorWrapper::reset() const |
206 | 134 | { | 105 | { |
211 | 135 | if (theIterator) | 106 | theStoreIterator->reset(); |
208 | 136 | theIterator->reset(*theStateBlock); | ||
209 | 137 | else | ||
210 | 138 | theStoreIterator->reset(); | ||
212 | 139 | } | 107 | } |
213 | 140 | 108 | ||
214 | 141 | 109 | ||
215 | 142 | void PlanStateIteratorWrapper::reset(PlanState& planState) const | 110 | void PlanStateIteratorWrapper::reset(PlanState& planState) const |
216 | 143 | { | 111 | { |
221 | 144 | if (theIterator) | 112 | theStoreIterator->reset(); |
218 | 145 | theIterator->reset(*theStateBlock); | ||
219 | 146 | else | ||
220 | 147 | theStoreIterator->reset(); | ||
222 | 148 | } | 113 | } |
223 | 149 | 114 | ||
224 | 150 | 115 | ||
225 | @@ -157,10 +122,7 @@ | |||
226 | 157 | std::string PlanStateIteratorWrapper::toString() const | 122 | std::string PlanStateIteratorWrapper::toString() const |
227 | 158 | { | 123 | { |
228 | 159 | std::stringstream ss; | 124 | std::stringstream ss; |
233 | 160 | if (theIterator) | 125 | ss << getId() << " = PlanStateIteratorWrapper iterator: " << theStoreIterator->toString(); |
230 | 161 | ss << getId() << " = PlanStateIteratorWrapper iterator: " << theIterator->toString(); | ||
231 | 162 | else | ||
232 | 163 | ss << getId() << " = PlanStateIteratorWrapper iterator: " << theStoreIterator->toString(); | ||
234 | 164 | return ss.str(); | 126 | return ss.str(); |
235 | 165 | } | 127 | } |
236 | 166 | #endif | 128 | #endif |
237 | 167 | 129 | ||
238 | === modified file 'src/runtime/api/plan_iterator_wrapper.h' | |||
239 | --- src/runtime/api/plan_iterator_wrapper.h 2013-03-05 02:20:27 +0000 | |||
240 | +++ src/runtime/api/plan_iterator_wrapper.h 2013-05-25 15:17:29 +0000 | |||
241 | @@ -16,8 +16,10 @@ | |||
242 | 16 | #ifndef XQP_PLAN_ITERATOR_WRAPPER_H | 16 | #ifndef XQP_PLAN_ITERATOR_WRAPPER_H |
243 | 17 | #define XQP_PLAN_ITERATOR_WRAPPER_H | 17 | #define XQP_PLAN_ITERATOR_WRAPPER_H |
244 | 18 | 18 | ||
245 | 19 | #include "common/shared_types.h" | ||
246 | 20 | |||
247 | 19 | #include "store/api/iterator.h" | 21 | #include "store/api/iterator.h" |
249 | 20 | #include "common/shared_types.h" | 22 | |
250 | 21 | #include "runtime/base/plan_iterator.h" | 23 | #include "runtime/base/plan_iterator.h" |
251 | 22 | 24 | ||
252 | 23 | namespace zorba { | 25 | namespace zorba { |
253 | @@ -47,7 +49,7 @@ | |||
254 | 47 | 49 | ||
255 | 48 | bool next(store::Item_t&); | 50 | bool next(store::Item_t&); |
256 | 49 | 51 | ||
258 | 50 | void reset(); | 52 | void reset() {} |
259 | 51 | 53 | ||
260 | 52 | void close() {} | 54 | void close() {} |
261 | 53 | 55 | ||
262 | @@ -56,13 +58,13 @@ | |||
263 | 56 | #endif | 58 | #endif |
264 | 57 | }; | 59 | }; |
265 | 58 | 60 | ||
266 | 61 | |||
267 | 59 | /******************************************************************************* | 62 | /******************************************************************************* |
268 | 60 | 63 | ||
269 | 61 | ********************************************************************************/ | 64 | ********************************************************************************/ |
270 | 62 | class PlanStateIteratorWrapper : public PlanIterator | 65 | class PlanStateIteratorWrapper : public PlanIterator |
271 | 63 | { | 66 | { |
272 | 64 | protected: | 67 | protected: |
273 | 65 | PlanIterator * theIterator; // only one of these is used | ||
274 | 66 | const store::Iterator_t theStoreIterator; | 68 | const store::Iterator_t theStoreIterator; |
275 | 67 | 69 | ||
276 | 68 | PlanState * theStateBlock; | 70 | PlanState * theStateBlock; |
277 | @@ -76,17 +78,12 @@ | |||
278 | 76 | void serialize(::zorba::serialization::Archiver& ar); | 78 | void serialize(::zorba::serialization::Archiver& ar); |
279 | 77 | 79 | ||
280 | 78 | public: | 80 | public: |
281 | 79 | PlanStateIteratorWrapper(PlanIterator* iterator, PlanState& planState, uint32_t offset); | ||
282 | 80 | |||
283 | 81 | PlanStateIteratorWrapper(const store::Iterator_t& iterator); | 81 | PlanStateIteratorWrapper(const store::Iterator_t& iterator); |
284 | 82 | 82 | ||
285 | 83 | virtual ~PlanStateIteratorWrapper(); | 83 | virtual ~PlanStateIteratorWrapper(); |
286 | 84 | 84 | ||
287 | 85 | virtual void accept(PlanIterVisitor& v) const; | 85 | virtual void accept(PlanIterVisitor& v) const; |
288 | 86 | 86 | ||
289 | 87 | virtual void open(); | ||
290 | 88 | |||
291 | 89 | // both arguments will be ignored, and the class members equivalents will be used instead | ||
292 | 90 | virtual void open(PlanState& planState, uint32_t& offset); | 87 | virtual void open(PlanState& planState, uint32_t& offset); |
293 | 91 | 88 | ||
294 | 92 | virtual bool produceNext(store::Item_t& result, PlanState& planState) const; | 89 | virtual bool produceNext(store::Item_t& result, PlanState& planState) const; |
295 | 93 | 90 | ||
296 | === modified file 'src/runtime/base/plan_iterator.cpp' | |||
297 | --- src/runtime/base/plan_iterator.cpp 2013-05-08 20:14:47 +0000 | |||
298 | +++ src/runtime/base/plan_iterator.cpp 2013-05-25 15:17:29 +0000 | |||
299 | @@ -16,14 +16,20 @@ | |||
300 | 16 | #include "stdafx.h" | 16 | #include "stdafx.h" |
301 | 17 | 17 | ||
302 | 18 | #include "compiler/api/compilercb.h" | 18 | #include "compiler/api/compilercb.h" |
303 | 19 | |||
304 | 19 | #include "context/static_context.h" | 20 | #include "context/static_context.h" |
305 | 21 | |||
306 | 20 | #include "runtime/base/plan_iterator.h" | 22 | #include "runtime/base/plan_iterator.h" |
307 | 21 | #include "runtime/util/flowctl_exception.h" | 23 | #include "runtime/util/flowctl_exception.h" |
308 | 24 | |||
309 | 22 | #include "store/api/item_factory.h" | 25 | #include "store/api/item_factory.h" |
310 | 23 | #include "store/api/store.h" | 26 | #include "store/api/store.h" |
311 | 27 | |||
312 | 24 | #include "system/globalenv.h" | 28 | #include "system/globalenv.h" |
313 | 29 | |||
314 | 25 | #include "zorbatypes/integer.h" | 30 | #include "zorbatypes/integer.h" |
315 | 26 | 31 | ||
316 | 32 | #include "diagnostics/util_macros.h" | ||
317 | 27 | 33 | ||
318 | 28 | namespace zorba | 34 | namespace zorba |
319 | 29 | { | 35 | { |
320 | @@ -69,11 +75,7 @@ | |||
321 | 69 | void PlanState::checkDepth(const QueryLoc& loc) | 75 | void PlanState::checkDepth(const QueryLoc& loc) |
322 | 70 | { | 76 | { |
323 | 71 | if (theStackDepth > 256) | 77 | if (theStackDepth > 256) |
329 | 72 | throw XQUERY_EXCEPTION( | 78 | RAISE_ERROR(zerr::ZXQP0003_INTERNAL_ERROR, loc, ERROR_PARAMS(ZED(StackOverflow))); |
325 | 73 | zerr::ZXQP0003_INTERNAL_ERROR, | ||
326 | 74 | ERROR_PARAMS( ZED( StackOverflow ) ), | ||
327 | 75 | ERROR_LOC( loc ) | ||
328 | 76 | ); | ||
330 | 77 | } | 79 | } |
331 | 78 | 80 | ||
332 | 79 | 81 | ||
333 | @@ -95,11 +97,12 @@ | |||
334 | 95 | { | 97 | { |
335 | 96 | } | 98 | } |
336 | 97 | 99 | ||
338 | 98 | PlanIterator::PlanIterator(static_context* aContext, const QueryLoc& aLoc) | 100 | |
339 | 101 | PlanIterator::PlanIterator(static_context* sctx, const QueryLoc& aLoc) | ||
340 | 99 | : | 102 | : |
341 | 100 | theStateOffset(0), | 103 | theStateOffset(0), |
342 | 101 | loc(aLoc), | 104 | loc(aLoc), |
344 | 102 | theSctx(aContext) | 105 | theSctx(sctx) |
345 | 103 | { | 106 | { |
346 | 104 | // Used for debugging purposes | 107 | // Used for debugging purposes |
347 | 105 | #ifndef NDEBUG | 108 | #ifndef NDEBUG |
348 | @@ -107,6 +110,20 @@ | |||
349 | 107 | #endif | 110 | #endif |
350 | 108 | } | 111 | } |
351 | 109 | 112 | ||
352 | 113 | |||
353 | 114 | PlanIterator::PlanIterator(const PlanIterator& it) | ||
354 | 115 | : | ||
355 | 116 | SimpleRCObject(it), | ||
356 | 117 | theStateOffset(0), | ||
357 | 118 | loc(it.loc), | ||
358 | 119 | theSctx(it.theSctx) | ||
359 | 120 | #ifndef NDEBUG | ||
360 | 121 | , theId(it.theId) | ||
361 | 122 | #endif | ||
362 | 123 | { | ||
363 | 124 | } | ||
364 | 125 | |||
365 | 126 | |||
366 | 110 | SERIALIZE_INTERNAL_METHOD(PlanIterator) | 127 | SERIALIZE_INTERNAL_METHOD(PlanIterator) |
367 | 111 | 128 | ||
368 | 112 | 129 | ||
369 | @@ -130,6 +147,16 @@ | |||
370 | 130 | } | 147 | } |
371 | 131 | 148 | ||
372 | 132 | 149 | ||
373 | 150 | #ifndef NDEBUG | ||
374 | 151 | std::string PlanIterator::toString() const | ||
375 | 152 | { | ||
376 | 153 | std::stringstream ss; | ||
377 | 154 | ss << getId() << " = " << getClassName(); | ||
378 | 155 | return ss.str(); | ||
379 | 156 | } | ||
380 | 157 | #endif | ||
381 | 158 | |||
382 | 159 | |||
383 | 133 | TypeManager* PlanIterator::getTypeManager() const | 160 | TypeManager* PlanIterator::getTypeManager() const |
384 | 134 | { | 161 | { |
385 | 135 | return theSctx->get_typemanager(); | 162 | return theSctx->get_typemanager(); |
386 | 136 | 163 | ||
387 | === modified file 'src/runtime/base/plan_iterator.h' | |||
388 | --- src/runtime/base/plan_iterator.h 2013-03-24 20:40:03 +0000 | |||
389 | +++ src/runtime/base/plan_iterator.h 2013-05-25 15:17:29 +0000 | |||
390 | @@ -301,11 +301,14 @@ | |||
391 | 301 | // Stable IDs for debugging purposes. An individual ID is assigned to each iterator | 301 | // Stable IDs for debugging purposes. An individual ID is assigned to each iterator |
392 | 302 | // and this can be used to identify it in the debug information. | 302 | // and this can be used to identify it in the debug information. |
393 | 303 | #ifndef NDEBUG | 303 | #ifndef NDEBUG |
394 | 304 | public: | ||
395 | 305 | int theId; | 304 | int theId; |
396 | 305 | |||
397 | 306 | public: | ||
398 | 306 | int getId() const { return theId;} | 307 | int getId() const { return theId;} |
399 | 308 | |||
400 | 307 | void setId(int id) { theId = id;} | 309 | void setId(int id) { theId = id;} |
402 | 308 | virtual std::string toString() const { std::stringstream ss; ss << getId() << " = " << getClassName(); return ss.str(); } | 310 | |
403 | 311 | virtual std::string toString() const; | ||
404 | 309 | #endif | 312 | #endif |
405 | 310 | 313 | ||
406 | 311 | public: | 314 | public: |
407 | @@ -316,19 +319,9 @@ | |||
408 | 316 | void serialize(::zorba::serialization::Archiver& ar); | 319 | void serialize(::zorba::serialization::Archiver& ar); |
409 | 317 | 320 | ||
410 | 318 | public: | 321 | public: |
412 | 319 | PlanIterator(static_context* aContext, const QueryLoc& aLoc); | 322 | PlanIterator(static_context* sctx, const QueryLoc& loc); |
413 | 320 | 323 | ||
425 | 321 | PlanIterator(const PlanIterator& it) | 324 | PlanIterator(const PlanIterator& it); |
415 | 322 | : | ||
416 | 323 | SimpleRCObject(it), | ||
417 | 324 | theStateOffset(0), | ||
418 | 325 | loc(it.loc), | ||
419 | 326 | theSctx(it.theSctx) | ||
420 | 327 | #ifndef NDEBUG | ||
421 | 328 | , theId(it.theId) | ||
422 | 329 | #endif | ||
423 | 330 | { | ||
424 | 331 | } | ||
426 | 332 | 325 | ||
427 | 333 | virtual ~PlanIterator() {} | 326 | virtual ~PlanIterator() {} |
428 | 334 | 327 | ||
429 | 335 | 328 | ||
430 | === modified file 'src/runtime/core/constructors.cpp' | |||
431 | --- src/runtime/core/constructors.cpp 2013-05-08 01:05:04 +0000 | |||
432 | +++ src/runtime/core/constructors.cpp 2013-05-25 15:17:29 +0000 | |||
433 | @@ -336,7 +336,7 @@ | |||
434 | 336 | if (pre == "xmlns" || | 336 | if (pre == "xmlns" || |
435 | 337 | ns == "http://www.w3.org/2000/xmlns/" || | 337 | ns == "http://www.w3.org/2000/xmlns/" || |
436 | 338 | (pre == "xml" && ns != "http://www.w3.org/XML/1998/namespace") || | 338 | (pre == "xml" && ns != "http://www.w3.org/XML/1998/namespace") || |
438 | 339 | (pre != "xml" && ns == "http://www.w3.org/XML/1998/namespace")) | 339 | (ns == "http://www.w3.org/XML/1998/namespace" && pre != "xml")) |
439 | 340 | { | 340 | { |
440 | 341 | RAISE_ERROR(err::XQDY0096, loc, ERROR_PARAMS(nodeName->getStringValue())); | 341 | RAISE_ERROR(err::XQDY0096, loc, ERROR_PARAMS(nodeName->getStringValue())); |
441 | 342 | } | 342 | } |
442 | @@ -832,7 +832,7 @@ | |||
443 | 832 | /******************************************************************************* | 832 | /******************************************************************************* |
444 | 833 | 833 | ||
445 | 834 | ********************************************************************************/ | 834 | ********************************************************************************/ |
447 | 835 | PiIterator::PiIterator ( | 835 | PiIterator::PiIterator( |
448 | 836 | static_context* sctx, | 836 | static_context* sctx, |
449 | 837 | const QueryLoc& loc, | 837 | const QueryLoc& loc, |
450 | 838 | PlanIter_t& aTarget, | 838 | PlanIter_t& aTarget, |
451 | @@ -1163,6 +1163,7 @@ | |||
452 | 1163 | std::stack<store::Item*>& path = planState.theNodeConstuctionPath; | 1163 | std::stack<store::Item*>& path = planState.theNodeConstuctionPath; |
453 | 1164 | bool haveContent = false; | 1164 | bool haveContent = false; |
454 | 1165 | store::Item* parent; | 1165 | store::Item* parent; |
455 | 1166 | store::Item::ItemKind resKind; | ||
456 | 1166 | 1167 | ||
457 | 1167 | EnclosedIteratorState* state; | 1168 | EnclosedIteratorState* state; |
458 | 1168 | DEFAULT_STACK_INIT(EnclosedIteratorState, state, planState); | 1169 | DEFAULT_STACK_INIT(EnclosedIteratorState, state, planState); |
459 | @@ -1173,7 +1174,9 @@ | |||
460 | 1173 | { | 1174 | { |
461 | 1174 | haveContent = true; | 1175 | haveContent = true; |
462 | 1175 | 1176 | ||
464 | 1176 | if (result->isNode()) | 1177 | resKind = result->getKind(); |
465 | 1178 | |||
466 | 1179 | if (resKind == store::Item::NODE) | ||
467 | 1177 | { | 1180 | { |
468 | 1178 | store::Item_t typedValue; | 1181 | store::Item_t typedValue; |
469 | 1179 | store::Iterator_t typedIter; | 1182 | store::Iterator_t typedIter; |
470 | @@ -1197,25 +1200,26 @@ | |||
471 | 1197 | } | 1200 | } |
472 | 1198 | } | 1201 | } |
473 | 1199 | } | 1202 | } |
476 | 1200 | #ifdef ZORBA_WITH_JSON | 1203 | else if (resKind == store::Item::JSONIQ) |
475 | 1201 | else if (result->isJSONItem()) | ||
477 | 1202 | { | 1204 | { |
478 | 1203 | RAISE_ERROR_NO_PARAMS(jerr::JNTY0011, loc); | 1205 | RAISE_ERROR_NO_PARAMS(jerr::JNTY0011, loc); |
479 | 1204 | } | 1206 | } |
482 | 1205 | #endif | 1207 | else if (resKind == store::Item::ATOMIC) |
481 | 1206 | else | ||
483 | 1207 | { | 1208 | { |
484 | 1208 | if (result->isFunction()) | ||
485 | 1209 | { | ||
486 | 1210 | store::Item_t fnName = result->getFunctionName(); | ||
487 | 1211 | RAISE_ERROR(err::FOTY0013, loc, | ||
488 | 1212 | ERROR_PARAMS(fnName.getp() ? result->getFunctionName()->getStringValue() : result->show())); | ||
489 | 1213 | } | ||
490 | 1214 | |||
491 | 1215 | assert(result->isAtomic()); | ||
492 | 1216 | |||
493 | 1217 | result->getStringValue2(strval); | 1209 | result->getStringValue2(strval); |
494 | 1218 | } | 1210 | } |
495 | 1211 | else if (result->isFunction()) | ||
496 | 1212 | { | ||
497 | 1213 | store::Item_t fnName = result->getFunctionName(); | ||
498 | 1214 | RAISE_ERROR(err::FOTY0013, loc, | ||
499 | 1215 | ERROR_PARAMS(fnName.getp() ? | ||
500 | 1216 | result->getFunctionName()->getStringValue() : | ||
501 | 1217 | zstring("???"))); | ||
502 | 1218 | } | ||
503 | 1219 | else | ||
504 | 1220 | { | ||
505 | 1221 | ZORBA_ASSERT(false); | ||
506 | 1222 | } | ||
507 | 1219 | 1223 | ||
508 | 1220 | while (consumeNext(result, theChild, planState)) | 1224 | while (consumeNext(result, theChild, planState)) |
509 | 1221 | { | 1225 | { |
510 | @@ -1245,12 +1249,10 @@ | |||
511 | 1245 | } | 1249 | } |
512 | 1246 | } | 1250 | } |
513 | 1247 | } | 1251 | } |
514 | 1248 | #ifdef ZORBA_WITH_JSON | ||
515 | 1249 | else if (result->isJSONItem()) | 1252 | else if (result->isJSONItem()) |
516 | 1250 | { | 1253 | { |
517 | 1251 | RAISE_ERROR_NO_PARAMS(jerr::JNTY0011, loc); | 1254 | RAISE_ERROR_NO_PARAMS(jerr::JNTY0011, loc); |
518 | 1252 | } | 1255 | } |
519 | 1253 | #endif | ||
520 | 1254 | else | 1256 | else |
521 | 1255 | { | 1257 | { |
522 | 1256 | assert(result->isAtomic()); | 1258 | assert(result->isAtomic()); |
523 | @@ -1291,7 +1293,9 @@ | |||
524 | 1291 | if (!consumeNext(result, theChild, planState)) | 1293 | if (!consumeNext(result, theChild, planState)) |
525 | 1292 | break; | 1294 | break; |
526 | 1293 | 1295 | ||
528 | 1294 | if (result->isNode()) | 1296 | resKind = result->getKind(); |
529 | 1297 | |||
530 | 1298 | if (resKind == store::Item::NODE) | ||
531 | 1295 | { | 1299 | { |
532 | 1296 | if (result->getNodeKind() == store::StoreConsts::documentNode) | 1300 | if (result->getNodeKind() == store::StoreConsts::documentNode) |
533 | 1297 | { | 1301 | { |
534 | @@ -1303,21 +1307,12 @@ | |||
535 | 1303 | STACK_PUSH(true, state); | 1307 | STACK_PUSH(true, state); |
536 | 1304 | } | 1308 | } |
537 | 1305 | } | 1309 | } |
540 | 1306 | #ifdef ZORBA_WITH_JSON | 1310 | else if (resKind == store::Item::JSONIQ) |
539 | 1307 | else if (result->isJSONItem()) | ||
541 | 1308 | { | 1311 | { |
542 | 1309 | RAISE_ERROR_NO_PARAMS(jerr::JNTY0011, loc); | 1312 | RAISE_ERROR_NO_PARAMS(jerr::JNTY0011, loc); |
543 | 1310 | } | 1313 | } |
546 | 1311 | #endif | 1314 | else if (resKind == store::Item::ATOMIC) |
545 | 1312 | else | ||
547 | 1313 | { | 1315 | { |
548 | 1314 | if (result->isFunction()) | ||
549 | 1315 | { | ||
550 | 1316 | RAISE_ERROR_NO_PARAMS(err::XQTY0105, loc); | ||
551 | 1317 | } | ||
552 | 1318 | |||
553 | 1319 | assert(result->isAtomic()); | ||
554 | 1320 | |||
555 | 1321 | result->getStringValue2(strval); | 1316 | result->getStringValue2(strval); |
556 | 1322 | 1317 | ||
557 | 1323 | { | 1318 | { |
558 | @@ -1360,6 +1355,14 @@ | |||
559 | 1360 | STACK_PUSH(result != NULL, state); | 1355 | STACK_PUSH(result != NULL, state); |
560 | 1361 | } | 1356 | } |
561 | 1362 | } | 1357 | } |
562 | 1358 | else if (resKind == store::Item::FUNCTION) | ||
563 | 1359 | { | ||
564 | 1360 | RAISE_ERROR_NO_PARAMS(err::XQTY0105, loc); | ||
565 | 1361 | } | ||
566 | 1362 | else | ||
567 | 1363 | { | ||
568 | 1364 | ZORBA_ASSERT(false); | ||
569 | 1365 | } | ||
570 | 1363 | } | 1366 | } |
571 | 1364 | } | 1367 | } |
572 | 1365 | } | 1368 | } |
573 | 1366 | 1369 | ||
574 | === modified file 'src/runtime/core/fncall_iterator.h' | |||
575 | --- src/runtime/core/fncall_iterator.h 2013-04-24 01:35:58 +0000 | |||
576 | +++ src/runtime/core/fncall_iterator.h 2013-05-25 15:17:29 +0000 | |||
577 | @@ -24,8 +24,6 @@ | |||
578 | 24 | 24 | ||
579 | 25 | #include "runtime/hof/function_item.h" | 25 | #include "runtime/hof/function_item.h" |
580 | 26 | 26 | ||
581 | 27 | // TODO remove the next three includes | ||
582 | 28 | #include "api/unmarshaller.h" | ||
583 | 29 | #include "context/static_context.h" | 27 | #include "context/static_context.h" |
584 | 30 | 28 | ||
585 | 31 | #include "runtime/base/narybase.h" | 29 | #include "runtime/base/narybase.h" |
586 | 32 | 30 | ||
587 | === modified file 'src/store/api/item.h' | |||
588 | --- src/store/api/item.h 2013-05-21 21:44:25 +0000 | |||
589 | +++ src/store/api/item.h 2013-05-25 15:17:29 +0000 | |||
590 | @@ -67,9 +67,7 @@ | |||
591 | 67 | PUL = 0x3, | 67 | PUL = 0x3, |
592 | 68 | FUNCTION = 0x5, | 68 | FUNCTION = 0x5, |
593 | 69 | LIST = 0x7, | 69 | LIST = 0x7, |
594 | 70 | #ifdef ZORBA_WITH_JSON | ||
595 | 71 | JSONIQ = 0x9, | 70 | JSONIQ = 0x9, |
596 | 72 | #endif | ||
597 | 73 | ERROR_ = 0xB | 71 | ERROR_ = 0xB |
598 | 74 | }; | 72 | }; |
599 | 75 | 73 | ||
600 | @@ -86,15 +84,6 @@ | |||
601 | 86 | mutable long theRefCount; | 84 | mutable long theRefCount; |
602 | 87 | mutable ItemUnion theUnion; | 85 | mutable ItemUnion theUnion; |
603 | 88 | 86 | ||
604 | 89 | #ifndef NDEBUG | ||
605 | 90 | // This class member is set by some atomic type items to the | ||
606 | 91 | // item's value in order to aid debugging. The debug_str might | ||
607 | 92 | // not always be updated to the current value. | ||
608 | 93 | protected: | ||
609 | 94 | const char* debug_str_; // similar to zorba_string.h | ||
610 | 95 | zstring debug_holder; | ||
611 | 96 | #endif | ||
612 | 97 | |||
613 | 98 | protected: | 87 | protected: |
614 | 99 | 88 | ||
615 | 100 | Item() : theRefCount(0) | 89 | Item() : theRefCount(0) |
616 | @@ -147,7 +136,6 @@ | |||
617 | 147 | theUnion.treeRCPtr != 0); | 136 | theUnion.treeRCPtr != 0); |
618 | 148 | } | 137 | } |
619 | 149 | 138 | ||
620 | 150 | #ifdef ZORBA_WITH_JSON | ||
621 | 151 | /** | 139 | /** |
622 | 152 | * @return "true" if the item is a JSON item | 140 | * @return "true" if the item is a JSON item |
623 | 153 | */ | 141 | */ |
624 | @@ -155,7 +143,6 @@ | |||
625 | 155 | { | 143 | { |
626 | 156 | return ((theUnion.itemKind & 0xF) == JSONIQ); | 144 | return ((theUnion.itemKind & 0xF) == JSONIQ); |
627 | 157 | } | 145 | } |
628 | 158 | #endif | ||
629 | 159 | 146 | ||
630 | 160 | /** | 147 | /** |
631 | 161 | * @return "true" if the item is an atomic value | 148 | * @return "true" if the item is an atomic value |
632 | @@ -212,7 +199,6 @@ | |||
633 | 212 | */ | 199 | */ |
634 | 213 | zstring printKind() const; | 200 | zstring printKind() const; |
635 | 214 | 201 | ||
636 | 215 | #ifdef ZORBA_WITH_JSON | ||
637 | 216 | /** | 202 | /** |
638 | 217 | * @return "true" if the item is a JSON object item | 203 | * @return "true" if the item is a JSON object item |
639 | 218 | */ | 204 | */ |
640 | @@ -224,7 +210,6 @@ | |||
641 | 224 | */ | 210 | */ |
642 | 225 | virtual bool | 211 | virtual bool |
643 | 226 | isJSONArray() const; | 212 | isJSONArray() const; |
644 | 227 | #endif | ||
645 | 228 | 213 | ||
646 | 229 | /** | 214 | /** |
647 | 230 | * @return the qname identifying the XQuery type of the item | 215 | * @return the qname identifying the XQuery type of the item |
648 | @@ -905,7 +890,6 @@ | |||
649 | 905 | leastCommonAncestor(const store::Item_t&) const; | 890 | leastCommonAncestor(const store::Item_t&) const; |
650 | 906 | 891 | ||
651 | 907 | 892 | ||
652 | 908 | #ifdef ZORBA_WITH_JSON | ||
653 | 909 | /* -------------------- Methods for JSON items --------------------- */ | 893 | /* -------------------- Methods for JSON items --------------------- */ |
654 | 910 | 894 | ||
655 | 911 | /** | 895 | /** |
656 | @@ -962,7 +946,6 @@ | |||
657 | 962 | virtual xs_integer | 946 | virtual xs_integer |
658 | 963 | getNumObjectPairs() const; | 947 | getNumObjectPairs() const; |
659 | 964 | 948 | ||
660 | 965 | #endif // ZORBA_WITH_JSON | ||
661 | 966 | 949 | ||
662 | 967 | 950 | ||
663 | 968 | /* -------------------- Methods for ErrorItem --------------------- */ | 951 | /* -------------------- Methods for ErrorItem --------------------- */ |
664 | 969 | 952 | ||
665 | === modified file 'src/store/naive/atomic_items.cpp' | |||
666 | --- src/store/naive/atomic_items.cpp 2013-05-16 22:16:00 +0000 | |||
667 | +++ src/store/naive/atomic_items.cpp 2013-05-25 15:17:29 +0000 | |||
668 | @@ -695,13 +695,6 @@ | |||
669 | 695 | initializeAsUnnormalizedQName(lNormalized, aPrefix); | 695 | initializeAsUnnormalizedQName(lNormalized, aPrefix); |
670 | 696 | 696 | ||
671 | 697 | theIsInPool = false; | 697 | theIsInPool = false; |
672 | 698 | |||
673 | 699 | #ifndef NDEBUG | ||
674 | 700 | debug_holder = theLocal.c_str(); | ||
675 | 701 | if (!thePrefix.empty()) | ||
676 | 702 | debug_holder = thePrefix + ":" + debug_holder; | ||
677 | 703 | debug_str_ = debug_holder.c_str(); | ||
678 | 704 | #endif | ||
679 | 705 | } | 698 | } |
680 | 706 | 699 | ||
681 | 707 | 700 | ||
682 | 708 | 701 | ||
683 | === modified file 'src/store/naive/atomic_items.h' | |||
684 | --- src/store/naive/atomic_items.h 2013-05-16 22:16:00 +0000 | |||
685 | +++ src/store/naive/atomic_items.h 2013-05-25 15:17:29 +0000 | |||
686 | @@ -492,13 +492,6 @@ | |||
687 | 492 | 492 | ||
688 | 493 | assert(isNormalized()); | 493 | assert(isNormalized()); |
689 | 494 | assert(isValid()); | 494 | assert(isValid()); |
690 | 495 | |||
691 | 496 | #ifndef NDEBUG | ||
692 | 497 | debug_holder = theLocal.c_str(); | ||
693 | 498 | if (!thePrefix.empty()) | ||
694 | 499 | debug_holder = thePrefix + ":" + debug_holder; | ||
695 | 500 | debug_str_ = debug_holder.c_str(); | ||
696 | 501 | #endif | ||
697 | 502 | } | 495 | } |
698 | 503 | 496 | ||
699 | 504 | void initializeAsUnnormalizedQName( | 497 | void initializeAsUnnormalizedQName( |
700 | @@ -515,13 +508,6 @@ | |||
701 | 515 | 508 | ||
702 | 516 | assert(!isNormalized()); | 509 | assert(!isNormalized()); |
703 | 517 | assert(isValid()); | 510 | assert(isValid()); |
704 | 518 | |||
705 | 519 | #ifndef NDEBUG | ||
706 | 520 | debug_holder = theLocal.c_str(); | ||
707 | 521 | if (!thePrefix.empty()) | ||
708 | 522 | debug_holder = thePrefix + ":" + debug_holder; | ||
709 | 523 | debug_str_ = debug_holder.c_str(); | ||
710 | 524 | #endif | ||
711 | 525 | } | 511 | } |
712 | 526 | 512 | ||
713 | 527 | void initializeAsQNameNotInPool( | 513 | void initializeAsQNameNotInPool( |
714 | 528 | 514 | ||
715 | === modified file 'test/fots/CMakeLists.txt' | |||
716 | --- test/fots/CMakeLists.txt 2013-05-23 20:33:33 +0000 | |||
717 | +++ test/fots/CMakeLists.txt 2013-05-25 15:17:29 +0000 | |||
718 | @@ -108,7 +108,6 @@ | |||
719 | 108 | EXPECTED_FOTS_FAILURE (SLOW fn-subsequence cbcl-subsequence-014 1069794) | 108 | EXPECTED_FOTS_FAILURE (SLOW fn-subsequence cbcl-subsequence-014 1069794) |
720 | 109 | EXPECTED_FOTS_FAILURE (SLOW fn-matches.re re00987 1131313) | 109 | EXPECTED_FOTS_FAILURE (SLOW fn-matches.re re00987 1131313) |
721 | 110 | EXPECTED_FOTS_FAILURE (SLOW app-Demos itunes 0) | 110 | EXPECTED_FOTS_FAILURE (SLOW app-Demos itunes 0) |
722 | 111 | EXPECTED_FOTS_FAILURE (SLOW app-Demos raytracer 0) | ||
723 | 112 | 111 | ||
724 | 113 | #"crashing/hanging" tests. These are not run but marked as 'tooBig' by FOTS driver. | 112 | #"crashing/hanging" tests. These are not run but marked as 'tooBig' by FOTS driver. |
725 | 114 | EXPECTED_FOTS_FAILURE (CRASH fn-matches.re re00975 1070533) | 113 | EXPECTED_FOTS_FAILURE (CRASH fn-matches.re re00975 1070533) |
Validation queue starting for merge proposal. zorbatest. lambda. nu:8080/ remotequeue/ markos- scratch- 2013-05- 25T14-47- 08.838Z/ log.html
Log at: http://