Changeset d9f6d80
- Timestamp:
- Dec 20, 2024, 3:35:35 PM (9 months ago)
- Branches:
- master
- Children:
- 9dc05782
- Parents:
- 77148b0 (diff), 5251c6b (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - Files:
-
- 22 edited
Legend:
- Unmodified
- Added
- Removed
-
benchmark/Makefile.am
r77148b0 rd9f6d80 148 148 149 149 jenkins$(EXEEXT): cleancsv 150 @echo 'If making benchmarks fails, look for error detail hiding in benchmark/foo.csv, where the last logged message is, "building foo.csv."' 150 151 @DOifskipcompile@ 151 152 @+make --silent compile.csv … … 173 174 echo "array,attributes,empty,expression,io,monitor,operators,typeof" > $@ 174 175 +make TIME_FORMAT='%e,' PRINT_FORMAT='' compile-array.make >> $@ 175 +make TIME_FORMAT='%e,' PRINT_FORMAT='' compile-attributes.make >> $@ 176 echo "0," >> $@ 177 # +make TIME_FORMAT='%e,' PRINT_FORMAT='' compile-attributes.make >> $@ 176 178 +make TIME_FORMAT='%e,' PRINT_FORMAT='' compile-empty.make >> $@ 177 179 +make TIME_FORMAT='%e,' PRINT_FORMAT='' compile-expression.make >> $@ -
doc/proposals/nowarn.md
r77148b0 rd9f6d80 52 52 2. autogen, configure, make (as before) 53 53 3. Rerun all the tests, expecting many failures. Each failure represents a test that cannot handle strict wflags. 54 1. `./tests/test.py --all -j122>&1 | tee test-status.txt`55 2. `grep 'PASSED ' test-status.txt | sed -E 's/\s+( \.\.\.)?([^ ]+).*$/\2/g' > test-passes.txt`56 3. `grep 'FAILED with' test-status.txt | sed -E 's/\s+( \.\.\.)?([^ ]+).*$/\2/g' > test-fails.txt`54 1. `./tests/test.py --all ... 2>&1 | tee test-status.txt` 55 2. `grep 'PASSED ' test-status.txt | sed -E 's/\s+([^ ]+).*$/\1/g' > test-passes.txt` 56 3. `grep 'FAILED with' test-status.txt | sed -E 's/\s+([^ ]+).*$/\1/g' > test-fails.txt` 57 57 4. Trim the WFLGAS_OPT_LAX list, reconciling with the pass/fail status just obtained. 58 1. Copy-paste just the WFL AGS listitems into `wflags-lax.txt`. Keeping leading pounds and trailing backslashes is optional.58 1. Copy-paste just the WFLGAS_OPT_LAX items into `wflags-lax.txt`. Keeping leading pounds and trailing backslashes is optional. 59 59 2. Print a list of tests found in `wflags-lax.txt` and also in `test-passes.txt`. These tests were originally on WFLGAS_OPT_LAX, but can now pass without being on it. 60 - `sed -E 's/ #|( *\\)//g' wflags-lax.txt | xargs -n 1 -I _ bash -c 'a=_;echo ${a:${#a}<32?0:-32}' | xargs -n 1 -I _ echo "grep -E '^_$' test-passes.txt" | sh`60 - `sed -E 's/^([a-zA-Z])/(^|\\\\s|#)\1/g;s/\.\.\.//g;s/$/($|\\\\s|\\\\\\\\)/g' test-passes.txt | xargs -n 1 -I % echo "grep -E '%' wflags-lax.txt" | sh | sort` 61 61 3. Note that in the running array-basic example, the resulting list was: 62 - array-collections/array-sbscr-types (*) 62 63 - ctrl-flow/loopctrl 63 64 - userLiterals … … 70 71 5. autogen, configure, make (as before) 71 72 5. Ensure that all tests pass, now under the reduced WFLGAS_OPT_LAX list. Be deliberate about release mode and alternate architectures; i.e. that you aren't claiming to have fixed a test that always worked in x64-debug, but failed on a different configuration. (Note that the overnight build will still catch that.) 73 74 (*) This test was found later, upon fixing a problem in these instructions, so the original commit does not show it as fixed, like it does for the others. -
libcfa/src/bits/stack.hfa
r77148b0 rd9f6d80 14 14 }; 15 15 16 inline {16 static inline { 17 17 // wrappers to make Collection have T 18 18 T & head( Stack(T) & s ) with( s ) { … … 70 70 struct StackIter { 71 71 inline ColIter; // Plan 9 inheritance 72 }; 72 }; 73 73 74 inline {74 static inline { 75 75 void ?{}( StackIter(T) & si ) with( si ) { 76 76 ((ColIter &)si){}; -
libcfa/src/concurrency/coroutine.cfa
r77148b0 rd9f6d80 81 81 82 82 // helper for popping from coroutine's ehm buffer 83 inlinenonlocal_exception * pop_ehm_head( coroutine$ * this ) {83 static nonlocal_exception * pop_ehm_head( coroutine$ * this ) { 84 84 lock( this->ehm_state.buffer_lock __cfaabi_dbg_ctx2 ); 85 85 nonlocal_exception * nl_ex = pop_head( this->ehm_state.ehm_buffer ); -
src/Virtual/Tables.cpp
r77148b0 rd9f6d80 175 175 { new ast::ObjectDecl( 176 176 location, 177 "__unused",177 /* The parameter only exists to provide a type id. */ "", 178 178 new ast::PointerType( exceptType ) 179 179 ) }, -
tests/Makefile.am
r77148b0 rd9f6d80 50 50 # Indented list entries are finer-grained targets under the test. 51 51 # Making this association implicit would be ideal, but requires learning more automake than is affordable. 52 WFLGAS_OPT_LAX = 52 WFLGAS_OPT_LAX = \ 53 53 alloc \ 54 54 alloc2 \ … … 56 56 array-collections/array-raii-c \ 57 57 array-collections/array-raii-cfa \ 58 array-collections/array-sbscr-types \59 58 array-collections/boxed \ 60 59 array-collections/boxed% \ … … 69 68 cast \ 70 69 collections/atomic_mpsc \ 70 collections/multi_list \ 71 71 collections/queue \ 72 72 collections/sequence \ 73 73 collections/stack \ 74 collections/string-api-coverage \75 collections/string-api-coverage-noshare \76 74 collections/vector-demo \ 77 75 concurrency/actors/dynamic \ … … 100 98 concurrency/examples/boundedBufferEXT \ 101 99 concurrency/examples/boundedBufferINT \ 102 concurrency/examples/datingService \103 concurrency/examples/gortn \104 concurrency/examples/matrixSum \105 concurrency/examples/quickSort \106 100 concurrency/futures/abandon \ 107 concurrency/futures/basic \108 101 concurrency/futures/multi \ 109 102 concurrency/futures/select_future \ … … 119 112 concurrency/mutexstmt/tuple \ 120 113 concurrency/once \ 121 concurrency/park/contention \122 concurrency/park/force_preempt \123 concurrency/park/start_parked \124 114 concurrency/preempt \ 125 concurrency/preempt2 \126 115 concurrency/pthread/bounded_buffer \ 127 116 concurrency/pthread/pthread_attr_test \ … … 131 120 concurrency/pthread/pthread_key_test \ 132 121 concurrency/pthread/pthread_once_test \ 133 concurrency/readyQ/barrier_sleeper \134 122 concurrency/readyQ/leader_spin \ 135 123 concurrency/signal/block \ … … 152 140 concurrency/unified_locking/timeout_lock \ 153 141 concurrency/waitfor/barge \ 154 concurrency/waitfor/dtor \155 142 concurrency/waitfor/parse \ 156 concurrency/waitfor/recurse \157 143 concurrency/waitfor/statment \ 158 144 concurrency/waitfor/when \ … … 170 156 configs/parsenums \ 171 157 configs/usage \ 172 coroutine/devicedriver \173 coroutine/fibonacci \174 coroutine/fmtLines \175 coroutine/pingpong \176 coroutine/prodcons \177 158 coroutine/raii \ 178 coroutine/runningTotal \179 159 ctrl-flow/goto \ 180 160 ctrl-flow/ifwhileCtl \ … … 186 166 enum_tests/planet \ 187 167 enum_tests/structEnum \ 188 exceptions/cancel/coroutine \189 exceptions/cancel/thread \190 168 exceptions/cardgame \ 191 exceptions/conditional \192 exceptions/conditional-threads \193 exceptions/cor_resumer \194 exceptions/data-except \195 169 exceptions/defaults \ 196 170 exceptions/defaults-threads \ 197 exceptions/fibonacci_nonlocal \198 exceptions/finally \199 exceptions/finally-threads \200 171 exceptions/hotpotato \ 201 172 exceptions/hotpotato_checked \ 202 exceptions/interact \203 173 exceptions/pingpong_nonlocal \ 204 174 exceptions/polymorphic \ 205 exceptions/resume \206 exceptions/resume-threads \207 exceptions/terminate \208 exceptions/terminate-threads \209 exceptions/trash \210 175 exceptions/try-leave-catch \ 211 exceptions/virtual-cast \212 176 exceptions/virtual-poly \ 213 177 expression \ … … 241 205 linking/mangling/lib.o \ 242 206 linking/mangling/main.o \ 243 linking/withthreads \244 207 linkonce \ 245 208 link-once/% \ … … 249 212 maybe \ 250 213 minmax \ 251 nested_function \252 214 nested-types \ 253 215 nested-types-ERR1 \ … … 268 230 raii/init_once \ 269 231 raii/partial \ 270 rational \271 232 references \ 272 233 result \ … … 284 245 typedefRedef-ERR1 \ 285 246 typeof \ 247 userLiterals \ 286 248 variableDeclarator \ 287 249 vector \ -
tests/collections/string-api-coverage.cfa
r77148b0 rd9f6d80 1 1 #include <collections/string.hfa> 2 2 #include <string_sharectx.hfa> 3 4 void assertWellFormedHandleList( int maxLen ) { // with(HeapArea)5 // HandleNode *n;6 // int limit1 = maxLen;7 // for ( n = Header.flink; (limit1-- > 0) && n != &Header; n = n->flink ) {}8 // assert (n == &Header);9 // int limit2 = maxLen;10 // for ( n = Header.blink; (limit2-- > 0) && n != &Header; n = n->blink ) {}11 // assert (n == &Header);12 // assert (limit1 == limit2);13 }14 15 // The given string is reachable.16 void assertOnHandleList( string & q ) { // with(HeapArea)17 // HandleNode *n;18 // for ( n = Header.flink; n != &Header; n = n->flink ) {19 // if ( n == & q.inner->Handle ) return;20 // }21 // assert( false );22 }23 3 24 4 … … 61 41 62 42 63 assertWellFormedHandleList( 10 );64 43 // 65 44 // breadth Constructors … … 116 95 sout | b11; // 5.5+3.4i 117 96 } 118 assertWellFormedHandleList( 10 ); 97 119 98 // 120 99 // Assignments … … 176 155 sout | b; // 5.5+3.4i 177 156 } 178 assertWellFormedHandleList( 10 ); 157 179 158 180 159 … … 187 166 188 167 string sx = s + s3; 189 assertWellFormedHandleList( 10 );190 168 sout | sx; // helloworld 191 assertWellFormedHandleList( 10 );192 169 sx = "xx"; 193 assertWellFormedHandleList( 10 );194 170 sx = s + s3; 195 assertWellFormedHandleList( 10 );196 171 sout | sx; // helloworld 197 assertWellFormedHandleList( 10 );198 172 199 173 sx += '!'; … … 205 179 sx += s; 206 180 sout | sx; // hellohello 207 assertWellFormedHandleList( 10 );208 181 sx += ", friend"; 209 182 sout | sx; // hellohello, friend -
tests/exceptions/cancel/coroutine.cfa
r77148b0 rd9f6d80 9 9 coroutine WillCancel {}; 10 10 11 const char * msg(CoroutineCancelled(WillCancel) * this) {11 const char * msg(CoroutineCancelled(WillCancel) *) { 12 12 return "CoroutineCancelled(WillCancel)"; 13 13 } 14 14 15 void main(WillCancel & wc) {15 void main(WillCancel &) { 16 16 sout | '1'; 17 17 cancel_stack((internal_error){&internal_vt}); … … 19 19 } 20 20 21 int main( int argc, char * argv[]) {21 int main() { 22 22 sout | nlOff; 23 23 WillCancel cancel; -
tests/exceptions/cancel/thread.cfa
r77148b0 rd9f6d80 9 9 thread WillCancel {}; 10 10 11 const char * msg(ThreadCancelled(WillCancel) * this) {11 const char * msg(ThreadCancelled(WillCancel) *) { 12 12 return "ThreadCancelled(WillCancel)"; 13 13 } … … 52 52 } 53 53 54 int main( int argc, char * argv[]) {54 int main() { 55 55 sout | nlOff; 56 56 explicit(); -
tests/exceptions/conditional.cfa
r77148b0 rd9f6d80 16 16 } 17 17 18 int main( int argc, char * argv[]) {18 int main() { 19 19 num_error exc = {&num_error_vt, 2}; 20 20 -
tests/exceptions/data-except.cfa
r77148b0 rd9f6d80 14 14 } 15 15 16 int main( int argc, char * argv[]) {16 int main() { 17 17 paired except = {&paired_vt, 3, 13}; 18 18 -
tests/exceptions/defaults.cfa
r77148b0 rd9f6d80 106 106 } 107 107 108 int main( int argc, char * argv[]) {108 int main() { 109 109 log_test(); 110 110 jump_test(); -
tests/exceptions/except-io.hfa
r77148b0 rd9f6d80 9 9 }; 10 10 11 inline void ?{}(loud_exit & this, const char * area) {11 static inline void ?{}(loud_exit & this, const char * area) { 12 12 this.area = area; 13 13 } 14 14 15 inline void ^?{}(loud_exit & this) {15 static inline void ^?{}(loud_exit & this) { 16 16 sout | "Exiting: " | this.area; 17 17 } … … 21 21 }; 22 22 23 inline void ?{}(loud_region & this, const char * region) {23 static inline void ?{}(loud_region & this, const char * region) { 24 24 this.region = region; 25 25 sout | "Entering: " | region; 26 26 } 27 27 28 inline void ^?{}(loud_region & this) {28 static inline void ^?{}(loud_region & this) { 29 29 sout | "Exiting: " | this.region; 30 30 } -
tests/exceptions/finally.cfa
r77148b0 rd9f6d80 8 8 vtable(myth) myth_vt; 9 9 10 int main( int argc, char * argv[]) {10 int main() { 11 11 myth exc = {&myth_vt}; 12 12 -
tests/exceptions/interact.cfa
r77148b0 rd9f6d80 10 10 vtable(moon) moon_vt; 11 11 12 int main( int argc, char * argv[]) {12 int main() { 13 13 // Resume falls back to terminate. 14 14 try { -
tests/exceptions/polymorphic.cfa
r77148b0 rd9f6d80 59 59 } 60 60 61 int main( int argc, char * argv[]) {61 int main() { 62 62 proxy_test(); 63 63 sout | nl; -
tests/exceptions/resume.cfa
r77148b0 rd9f6d80 14 14 void in_void(void); 15 15 16 int main( int argc, char * argv[]) {16 int main() { 17 17 yin a_yin = {&yin_vt}; 18 18 yang a_yang = {&yang_vt}; -
tests/exceptions/terminate.cfa
r77148b0 rd9f6d80 14 14 void in_void(void); 15 15 16 int main( int argc, char * argv[]) {16 int main() { 17 17 yin a_yin = {&yin_vt}; 18 18 yang a_yang = {&yang_vt}; -
tests/exceptions/trash.cfa
r77148b0 rd9f6d80 9 9 vtable(yang) yang_vt; 10 10 11 int main( int argc, char * argv[]) {11 int main() { 12 12 try { 13 13 try { -
tests/exceptions/try-ctrl-flow.cfa
r77148b0 rd9f6d80 189 189 } 190 190 191 voidmain() {191 int main() { 192 192 // Should not compile. 193 193 return 1; -
tests/exceptions/try-leave-catch.cfa
r77148b0 rd9f6d80 53 53 } 54 54 55 int main( int argc, char * argv[]) {55 int main() { 56 56 test_loop(); 57 57 test_switch(); -
tests/exceptions/virtual-cast.cfa
r77148b0 rd9f6d80 93 93 } 94 94 95 int main (int argc, char * argv[]) { 96 95 int main() { 97 96 gamma * tri = malloc(); tri->virtual_table = &_gamma_vtable_instance; 98 97 beta * mid = (virtual beta *)tri;
Note:
See TracChangeset
for help on using the changeset viewer.