Changeset 33218c6
- Timestamp:
- Jul 26, 2017, 12:19:41 PM (8 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
- Children:
- b947fb2
- Parents:
- e0a653d (diff), ea91c42 (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:
-
- 8 added
- 29 deleted
- 180 edited
Legend:
- Unmodified
- Added
- Removed
-
configure
re0a653d r33218c6 3471 3471 case $host_cpu in 3472 3472 i386) 3473 CFLAGS+=" -m32"3474 CXXFLAGS+=" -m32"3475 CFAFLAGS+=" -m32"3476 LDFLAGS+=" -m32"3473 CFLAGS+=" -m32 " 3474 CXXFLAGS+=" -m32 " 3475 CFAFLAGS+=" -m32 " 3476 LDFLAGS+=" -m32 " 3477 3477 ;; 3478 3478 i686) 3479 CFLAGS+=" -m32"3480 CXXFLAGS+="-m32"3481 CFAFLAGS+="-m32"3482 LDFLAGS+="-m32"3479 CFLAGS+=" -m32 " 3480 CXXFLAGS+=" -m32 " 3481 CFAFLAGS+=" -m32 " 3482 LDFLAGS+=" -m32 " 3483 3483 ;; 3484 3484 x86_64) 3485 CFLAGS+=" -m64"3486 CXXFLAGS+="-m64"3487 CFAFLAGS+="-m64"3488 LDFLAGS+="-m64"3485 CFLAGS+=" -m64 " 3486 CXXFLAGS+=" -m64 " 3487 CFAFLAGS+=" -m64 " 3488 LDFLAGS+=" -m64 " 3489 3489 ;; 3490 3490 esac -
configure.ac
re0a653d r33218c6 167 167 AC_SUBST([MACHINE_TYPE],[$host_cpu]) 168 168 169 if ! test "$host_cpu" = "$build_cpu"; then 169 if ! test "$host_cpu" = "$build_cpu"; then 170 170 case $host_cpu in 171 171 i386) 172 CFLAGS+=" -m32"173 CXXFLAGS+=" -m32"174 CFAFLAGS+=" -m32"175 LDFLAGS+=" -m32"172 CFLAGS+=" -m32 " 173 CXXFLAGS+=" -m32 " 174 CFAFLAGS+=" -m32 " 175 LDFLAGS+=" -m32 " 176 176 ;; 177 177 i686) 178 CFLAGS+=" -m32"179 CXXFLAGS+="-m32"180 CFAFLAGS+="-m32"181 LDFLAGS+="-m32"178 CFLAGS+=" -m32 " 179 CXXFLAGS+=" -m32 " 180 CFAFLAGS+=" -m32 " 181 LDFLAGS+=" -m32 " 182 182 ;; 183 183 x86_64) 184 CFLAGS+=" -m64"185 CXXFLAGS+="-m64"186 CFAFLAGS+="-m64"187 LDFLAGS+="-m64"184 CFLAGS+=" -m64 " 185 CXXFLAGS+=" -m64 " 186 CFAFLAGS+=" -m64 " 187 LDFLAGS+=" -m64 " 188 188 ;; 189 189 esac -
doc/LaTeXmacros/common.tex
re0a653d r33218c6 11 11 %% Created On : Sat Apr 9 10:06:17 2016 12 12 %% Last Modified By : Peter A. Buhr 13 %% Last Modified On : Sun Jun 18 20:32:32201714 %% Update Count : 3 1913 %% Last Modified On : Mon Jul 17 10:21:17 2017 14 %% Update Count : 348 15 15 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 16 16 … … 36 36 % Names used in the document. 37 37 38 \newcommand{\CFAIcon}{\text rm{C}\raisebox{\depth}{\rotatebox{180}{\textsf{A}}}\xspace} % Cforall symbolic name38 \newcommand{\CFAIcon}{\textsf{C}\raisebox{\depth}{\rotatebox{180}{\textsf{A}}}\xspace} % Cforall symbolic name 39 39 \newcommand{\CFA}{\protect\CFAIcon} % safe for section/caption 40 40 \newcommand{\CFL}{\textrm{Cforall}\xspace} % Cforall symbolic name … … 55 55 \setlength{\parindentlnth}{\parindent} 56 56 57 \newcommand{\LstKeywordStyle}[1]{{\lst@basicstyle{\lst@keywordstyle{#1}}}} 58 \newcommand{\LstCommentStyle}[1]{{\lst@basicstyle{\lst@commentstyle{#1}}}} 59 57 60 \newlength{\gcolumnposn} % temporary hack because lstlisting does not handle tabs correctly 58 61 \newlength{\columnposn} 59 62 \setlength{\gcolumnposn}{2.5in} 60 63 \setlength{\columnposn}{\gcolumnposn} 61 \newcommand{\C}[2][\@empty]{\ifx#1\@empty\else\global\setlength{\columnposn}{#1}\global\columnposn=\columnposn\fi\hfill\makebox[\textwidth-\columnposn][l]{\lst@ commentstyle{#2}}}64 \newcommand{\C}[2][\@empty]{\ifx#1\@empty\else\global\setlength{\columnposn}{#1}\global\columnposn=\columnposn\fi\hfill\makebox[\textwidth-\columnposn][l]{\lst@basicstyle{\LstCommentStyle{#2}}}} 62 65 \newcommand{\CRT}{\global\columnposn=\gcolumnposn} 63 66 … … 131 134 132 135 % inline text and code index (cannot use ©) 133 \newcommand{\Indexc}[ 1]{\lstinline$#1$\index{#1@\lstinline$#1$}}136 \newcommand{\Indexc}[2][\@empty]{\lstinline[#1]$#2$\index{#2@\lstinline[#1]$#2$}} 134 137 % code index (cannot use ©) 135 \newcommand{\indexc}[ 1]{\index{#1@\lstinline$#1$}}138 \newcommand{\indexc}[2][\@empty]{\index{#2@\lstinline[#1]$#2$}} 136 139 137 140 % Denote newterms in particular font and index them without particular font and in lowercase, e.g., \newterm{abc}. … … 231 234 basicstyle=\linespread{0.9}\sf, % reduce line spacing and use sanserif font 232 235 stringstyle=\tt, % use typewriter font 233 tabsize= 4, % 4space tabbing236 tabsize=6, % N space tabbing 234 237 xleftmargin=\parindentlnth, % indent code to paragraph indentation 235 238 extendedchars=true, % allow ASCII characters in the range 128-255 -
doc/LaTeXmacros/lstlang.sty
re0a653d r33218c6 8 8 %% Created On : Sat May 13 16:34:42 2017 9 9 %% Last Modified By : Peter A. Buhr 10 %% Last Modified On : Thu Jun 22 07:40:31201711 %% Update Count : 1 010 %% Last Modified On : Wed Jul 12 22:42:09 2017 11 %% Update Count : 12 12 12 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 13 13 … … 112 112 finally, forall, ftype, _Generic, _Imaginary, inline, __label__, lvalue, _Noreturn, one_t, 113 113 otype, restrict, _Static_assert, throw, throwResume, trait, try, ttype, typeof, __typeof, 114 __typeof__, zero_t},114 __typeof__, with, zero_t}, 115 115 morekeywords=[2]{ 116 116 _Atomic, coroutine, is_coroutine, is_monitor, is_thread, monitor, mutex, nomutex, … … 118 118 moredirectives={defined,include_next}% 119 119 } 120 121 % C++ programming language 122 \lstdefinelanguage{C++}[ANSI]{C++}{} 120 123 121 124 % uC++ programming language, based on ANSI C++ -
doc/bibliography/cfa.bib
re0a653d r33218c6 2273 2273 @manual{JavaScript, 2274 2274 keywords = {JavaScript}, 2275 contributer = {pabuhr },2275 contributer = {pabuhr@plg}, 2276 2276 title = {ECMAScript 2015 Language Specification {JavaScript}}, 2277 2277 organization= {ECAM International}, … … 2446 2446 @manual{Erlang, 2447 2447 keywords = {Erlang}, 2448 contributer = {pabuhr },2448 contributer = {pabuhr@plg}, 2449 2449 title = {Erlang Reference Manual User's Guide, Vertion 7.0}, 2450 2450 organization= {Erlang/OTP System Documentation}, … … 2771 2771 publisher = {ACM}, 2772 2772 address = {New York, NY, USA}, 2773 } 2774 2775 @article{Yang95, 2776 keywords = {software solutions, N-thread, mutual exclusions}, 2777 contributer = {pabuhr@plg}, 2778 author = {Jae-Heon Yang and James H. Anderson}, 2779 title = {A Fast, Scalable Mutual Exclusion Algorithm}, 2780 journal = {Distributed Computing}, 2781 publisher = {Springer-Verlag}, 2782 volume = {9}, 2783 number = {1}, 2784 year = {1995}, 2785 pages = {51-60}, 2773 2786 } 2774 2787 … … 5052 5065 contributer = {pabuhr@plg}, 5053 5066 author = {Kathleen Jensen and Niklaus Wirth}, 5054 title = {{P}ascal User Manual and Report },5067 title = {{P}ascal User Manual and Report, ISO Pascal Standard}, 5055 5068 publisher = {Springer--Verlag}, 5056 year = 19 85,5057 edition = { 3rd},5058 note = {Revised by Andrew B. Mickel and James F. Miner , ISO Pascal Standard}5069 year = 1991, 5070 edition = {4th}, 5071 note = {Revised by Andrew B. Mickel and James F. Miner} 5059 5072 } 5060 5073 -
doc/proposals/virtual.txt
re0a653d r33218c6 1 1 Proposal for virtual functionality 2 3 There are two types of virtual inheritance in this proposal, relaxed 4 (implicit) and strict (explicit). Relaxed is the simpler case that uses the 5 existing trait system with the addition of trait references and vtables. 6 Strict adds some constraints and requires some additional notation but allows 7 for down-casting. 8 9 Relaxed Virtual Inheritance: 2 10 3 11 Imagine the following code : … … 20 28 void draw(line*); 21 29 22 While all the members of this simple UI support drawing creating a UI that easily23 supports both these UI requires some tedious boiler-plate code:30 While all the members of this simple UI support drawing, creating a UI that 31 easily supports both these UI requires some tedious boiler-plate code: 24 32 25 33 enum type_t { text, line }; … … 41 49 } 42 50 43 While this code will work as indented, adding any new widgets or any new widget behaviors 44 requires changing existing code to add the desired functionality. To ease this maintenance 45 effort required CFA introduces the concept of dynamic types, in a manner similar to C++. 46 47 A simple usage of dynamic type with the previous example would look like : 48 49 drawable* objects[10]; 51 While this code will work as implemented, adding any new widgets or any new 52 widget behaviors requires changing existing code to add the desired 53 functionality. To ease this maintenance effort required CFA introduces the 54 concept of trait references. 55 56 Using trait references to implement the above gives the following : 57 58 trait drawable objects[10]; 50 59 fill_objects(objects); 51 60 52 61 while(running) { 53 for(drawable *object : objects) {62 for(drawable object : objects) { 54 63 draw(object); 55 64 } 56 65 } 57 66 58 However, this is not currently do-able in the current CFA and furthermore is not 59 possible to implement statically. Therefore we need to add a new feature to handle 60 having dynamic types like this (That is types that are found dynamically not types 61 that change dynamically). 62 63 C++ uses inheritance and virtual functions to find the 64 desired type dynamically. CFA takes inspiration from this solution. 65 66 What we really want to do is express the fact that calling draw() on a object 67 should find the dynamic type of the parameter before calling the routine, much like the 68 hand written example given above. We can express this by adding the virtual keyword on 69 the parameter of the constraints on our trait: 67 The keyword trait is optional (by the same rules as the struct keyword). This 68 is not currently supported in CFA and the lookup is not possible to implement 69 statically. Therefore we need to add a new feature to handle having dynamic 70 lookups like this. 71 72 What we really want to do is express the fact that calling draw() on a trait 73 reference should find the underlying type of the given parameter and find how 74 it implements the routine, as in the example with the enumeration and union. 75 76 For instance specifying that the drawable trait reference looks up the type 77 of the first argument to find the implementation would be : 70 78 71 79 trait drawable(otype T) { … … 73 81 }; 74 82 75 This expresses the idea that drawable is similar to an abstract base class in C++ and 76 also gives meaning to trying to take a pointer of drawable. That is anything that can 77 be cast to a drawable pointer has the necessary information to call the draw routine on 78 that type. Before that drawable was only a abstract type while now it also points to a 79 piece of storage which specify which behavior the object will have at run time. 80 81 This storage needs to be allocate somewhere. C++ just adds an invisible pointer at 82 the beginning of the struct but we can do something more explicit for users, actually 83 have a visible special field : 84 85 struct text { 86 char* text; 87 vtable drawable; 88 }; 89 90 struct line{ 91 vtable drawable; 92 vec2 start; 93 vec2 end; 94 }; 95 96 With these semantics, adding a "vtable drawable" means that text pointers and line pointers are now 97 convertible to drawable pointers. This conversion will not necessarily be a type only change however, indeed, 98 the drawable pointer will point to the field "vtable drawable" not the head of the struct. However, since all 99 the types are known at compile time, converting pointers becomes a simple offset operations. 100 101 The vtable field contains a pointer to a vtable which contains all the information needed for the caller 102 to find the function pointer of the desired behavior. 103 104 One of the limitations of this design is that it does not support double dispatching, which 105 concretely means traits cannot have routines with more than one virtual parameter. This design 106 would have many ambiguities if it did support multiple virtual parameter. A futher limitation is 107 that traits over more than one type cannot have vtables meaningfully defined for them, as the 108 particular vtable to use would be a function of the other type(s) the trait is defined over. 109 110 It is worth noting that the function pointers in these vtables are bound at object construction, rather than 111 function call-site, as in Cforall's existing polymorphic functions. As such, it is possible that two objects 112 with the same static type would have a different vtable (consider what happens if draw(line*) is overridden 113 between the definitions of two line objects). Given that the virtual drawable* erases static types though, 114 this should not be confusing in practice. A more distressing possibility is that of creating an object that 115 outlives the scope of one of the functions in its vtable. This is certainly a possible bug, but it is of a 116 type that C programmers are familiar with, and should be able to avoid by the usual methods. 117 118 Extensibility. 119 120 One of the obvious critics of this implementation is that it lacks extensibility for classes 121 that cannot be modified (ex: Linux C headers). However this solution can be extended to 122 allow more extensibility by adding "Fat pointers". 123 124 Indeed, users could already "solve" this issue by writing their own fat pointers as such: 125 126 trait MyContext(otype T) { 127 void* get_stack(virtual T*) 128 }; 129 130 void* get_stack(ucontext_t *context); 131 132 struct fat_ucontext_t { 133 vtable MyContext; 134 ucontext_t *context; 135 } 136 137 //Tedious forwarding routine 138 void* get_stack(fat_ucontext_t *ptr) { 139 return get_stack(ptr->context); 140 } 141 142 However, users would have to write all the virtual methods they want to override and make 143 them all simply forward to the existing method that takes the corresponding POCO(Plain Old C Object). 144 145 The alternative we propose is to use language level fat pointers : 146 147 trait MyContext(otype T) { 148 void* get_stack(virtual T*) 149 }; 150 151 void* get_stack(ucontext_t *context); 152 153 //The type vptr(ucontext_t) all 154 vptr(ucontext_t) context; 155 156 These behave exactly as the previous example but all the forwarding routines are automatically generated. 157 158 Bikeshedding. 159 160 It may be desirable to add fewer new keywords than discussed in this proposal; it is possible that "virtual" 161 could replace both "vtable" and "vptr" above with unambiguous contextual meaning. However, for purposes of 162 clarity in the design discussion it is beneficial to keep the keywords for separate concepts distinct. 163 83 This could be implied in simple cases like this one (single parameter on the 84 trait and single generic parameter on the function). In more complex cases it 85 would have to be explicitly given, or a strong convention would have to be 86 enforced (e.g. implementation of trait functions is always drawn from the 87 first polymorphic parameter). 88 89 Once a function in a trait has been marked as virtual it defines a new 90 function that takes in that trait's reference and then dynamically calls the 91 underlying type implementation. Hence a trait reference becomes a kind of 92 abstract type, cannot be directly instantiated but can still be used. 93 94 One of the limitations of this design is that it does not support double 95 dispatching, which concretely means traits cannot have routines with more than 96 one virtual parameter. The program must have a single table to look up the 97 function on. Using trait references with traits with more than one parameter 98 is also restricted, initially forbidden, see extension. 99 100 Extension: Multi-parameter Virtual Traits: 101 102 This implementation can be extended to traits with multiple parameters if 103 one is called out as being the virtual trait. For example : 104 105 trait iterator(otype T, dtype Item) { 106 Maybe(Item) next(virtual T *); 107 } 108 109 iterator(int) generators[10]; 110 111 Which creates a collection of iterators that produce integers, regardless of 112 how those iterators are implemented. This may require a note that this trait 113 is virtual on T and not Item, but noting it on the functions may be enough. 114 115 116 Strict Virtual Inheritance: 117 118 One powerful feature relaxed virtual does not support is the idea of down 119 casting. Once something has been converted into a trait reference there is 120 very little we can do to recover and of the type information, only the trait's 121 required function implementations are kept. 122 123 To allow down casting strict virtual requires that all traits and structures 124 involved be organized into a tree. Each trait or struct must have a unique 125 position on this tree (no multiple inheritance). 126 127 This is declared as follows : 128 129 trait error(otype T) virtual { 130 const char * msg(T *); 131 } 132 133 trait io_error(otype T) virtual error { 134 FILE * src(T *); 135 } 136 137 struct eof_error virtual io_error { 138 FILE * fd; 139 }; 140 141 So the trait error is the head of a new tree and io_error is a child of it. 142 143 Also the parent trait is implicitly part of the assertions of the children, 144 so all children implement the same operations as the parent. By the unique 145 path down the tree, we can also uniquely order them so that a prefix of a 146 child's vtable has the same format as its parent's. 147 148 This gives us an important extra feature, runtime checking of the parent-child 149 relationship with a C++ dynamic_cast like operation. Allowing checked 150 conversions from trait references to more particular references, which works 151 if the underlying type is, or is a child of, the new trait type. 152 153 Extension: Multiple Parents 154 155 Although each trait/struct must have a unique position on each tree, it could 156 have positions on multiple trees. All this requires is the ability to give 157 multiple parents, as here : 158 159 trait region(otype T) virtual drawable, collider; 160 161 The restriction being, the parents must come from different trees. This 162 object (and all of its children) can be cast to either tree. This is handled 163 by generating a separate vtable for each tree the structure is in. 164 165 Extension: Multi-parameter Strict Virtual 166 167 If a trait has multiple parameters then one must be called out to be the one 168 we generate separate vtables for, as in : 169 170 trait example(otype T, otype U) virtual(T) ... 171 172 This can generate a separate vtable for each U for which all the T+U 173 implementations are provided. These are then separate nodes in the tree (or 174 the root of different trees) as if each was created individually. Providing a 175 single unique instance of these nodes would be the most difficult aspect of 176 this extension, possibly intractable, though with sufficient hoisting and 177 link-once duplication it may be possible. 178 179 Example: 180 181 trait argument(otype T) virtual { 182 char short_name(virtual T *); 183 bool is_set(virtual T *); 184 }; 185 186 trait value_argument(otype T, otype U) virtual(T) argument { 187 U get_value(virtual T *); 188 }; 189 190 Extension: Structural Inheritance 191 192 Currently traits must be the internal nodes and structs the leaf nodes. 193 Structs could be made internal nodes as well, in which case the child structs 194 would likely structurally inherit the fields of their parents. 195 196 197 Storing the Virtual Lookup Table (vtable): 198 199 We have so far been silent on how the vtable is created, stored and accessed. 200 201 Creation happens at compile time. Function pointers are found by using the 202 same best match rules as elsewhere (additional rules for defaults from the 203 parent may or may not be required). For strict virtual this must happen at the 204 global scope and forbidding static functions, to ensure that a single unique 205 vtable is created. Similarly, there may have to be stricter matching rules 206 for the functions that go into the vtable, possibly requiring an exact match. 207 Relaxed virtual could relax both restrictions, if we allow different vtable 208 at different conversion (struct to trait reference) sites. If it is allowed 209 local functions being bound to a vtable could cause issues when they go out 210 of scope, however this should follow the lifetime rules most C programs 211 already follow implicitly. 212 213 Most vtables should be stored statically, the only exception being some of 214 the relaxed vtables that could have local function pointers. These may be able 215 to be stack allocated. All vtables should be immutable and require no manual 216 cleanup. 217 218 Access has two main options: 219 220 The first is through the use of fat pointers, or a tuple of pointers. When the 221 object is converted to a trait reference, the pointers to its vtables are 222 stored along side it. 223 224 This allows for compatibility with existing structures (such as those imported 225 from C) and is the default storage method unless a different one is given. 226 227 The other is by inlining the vtable pointer as "intrusive vtables". This adds 228 a field to the structure to the vtable. The trait reference then has a single 229 pointer to this field, the vtable includes an offset to find the beginning of 230 the structure again. 231 232 This is used if you specify a vtable field in the structure. If given in the 233 trait the vtable pointer in the trait reference can then become a single 234 pointer to the vtable field and use that to recover the original object 235 pointer as well as retrieve all operations. 236 237 trait drawable(otype T) { 238 vtable drawable; 239 }; 240 241 struct line { 242 vtable drawable; 243 vec2 start; 244 vec2 end; 245 }; 246 247 This inline code allows trait references to be converted to plain pointers 248 (although they still must be called specially). The vtable field may just be 249 an opaque block of memory or it may allow user access to the vtable. If so 250 then there should be some way to retrieve the type of the vtable, which will be 251 autogenerated and often unique. 252 253 254 Keyword Usage: 255 256 It may be desirable to add fewer new keywords than discussed in this proposal. 257 It is possible that "virtual" could replace both "vtable" above with 258 unambiguous contextual meaning. However, for purposes of clarity in the design 259 discussion it is beneficial to keep the keywords for separate concepts distinct. 260 261 262 Trait References and Operations: 263 264 sizeof(drawable) will return the size of the trait object itself. However : 265 266 line a_line; 267 drawable widget = a_line; 268 sizeof(widget); 269 270 Will instead return the sizeof the underlying object, although the trait must 271 require that its implementation is sized for there to be a meaningful value 272 to return. You may also get the size of the trait reference with 273 274 sizeof(&widget); 275 276 Calling free on a trait reference will free the memory for the object. It will 277 leave the vtables alone, as those are (always?) statically allocated. -
doc/user/EHMHierarchy.fig
re0a653d r33218c6 1 #FIG 3.2 Produced by xfig version 3.2.5 b1 #FIG 3.2 Produced by xfig version 3.2.5c 2 2 Landscape 3 3 Center … … 19 19 2 1 0 1 0 7 100 0 -1 0.000 0 0 -1 1 0 2 20 20 1 1 1.00 60.00 90.00 21 1950 1425 3000120021 1950 1425 2925 1200 22 22 2 1 0 1 0 7 100 0 -1 0.000 0 0 -1 1 0 2 23 23 1 1 1.00 60.00 90.00 … … 29 29 1 1 1.00 60.00 90.00 30 30 4950 1950 4950 1725 31 4 1 0 100 0 0 12 0.0000 0 135 195 1950 1650 IO\00132 4 1 0 100 0 0 12 0.0000 0 135 8704950 1650 Arithmetic\00133 4 1 0 100 0 0 12 0.0000 0 135 3151350 2100 File\00134 4 1 0 100 0 0 12 0.0000 0 135 6902550 2100 Network\00135 4 1 0 100 0 0 12 0.0000 0 180 11703750 2100 DivideByZero\00136 4 1 0 100 0 0 12 0.0000 0 135 750 4950 2100 Overflow\00137 4 1 0 100 0 0 12 0.0000 0 135 855 6000 2100 Underflow\00138 4 1 0 100 0 0 12 0.0000 0 180 8403450 1200 Exception\00131 4 1 0 50 -1 0 13 0.0000 2 135 225 1950 1650 IO\001 32 4 1 0 50 -1 0 13 0.0000 2 135 915 4950 1650 Arithmetic\001 33 4 1 0 50 -1 0 13 0.0000 2 150 330 1350 2100 File\001 34 4 1 0 50 -1 0 13 0.0000 2 135 735 2550 2100 Network\001 35 4 1 0 50 -1 0 13 0.0000 2 180 1215 3750 2100 DivideByZero\001 36 4 1 0 50 -1 0 13 0.0000 2 150 810 4950 2100 Overflow\001 37 4 1 0 50 -1 0 13 0.0000 2 150 915 6000 2100 Underflow\001 38 4 1 0 50 -1 0 13 0.0000 2 180 855 3450 1200 Exception\001 -
doc/user/Makefile
re0a653d r33218c6 1 1 ## Define the appropriate configuration variables. 2 2 3 TeXLIB = .:../LaTeXmacros:../ LaTeXmacros/listings:../LaTeXmacros/enumitem:../bibliography/:3 TeXLIB = .:../LaTeXmacros:../bibliography/: 4 4 LaTeX = TEXINPUTS=${TeXLIB} && export TEXINPUTS && latex -halt-on-error 5 5 BibTeX = BIBINPUTS=${TeXLIB} && export BIBINPUTS && bibtex -
doc/user/user.tex
re0a653d r33218c6 11 11 %% Created On : Wed Apr 6 14:53:29 2016 12 12 %% Last Modified By : Peter A. Buhr 13 %% Last Modified On : Fri Jul 7 10:36:39 201714 %% Update Count : 2 54713 %% Last Modified On : Sat Jul 22 11:01:19 2017 14 %% Update Count : 2878 15 15 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 16 16 … … 57 57 \CFAStyle % use default CFA format-style 58 58 59 \lstnewenvironment{C++}[1][] 60 {\lstset{language=C++,moredelim=**[is][\protect\color{red}]{®}{®}#1}} 61 {} 62 59 63 % inline code ©...© (copyright symbol) emacs: C-q M-) 60 64 % red highlighting ®...® (registered trademark symbol) emacs: C-q M-. … … 137 141 138 142 \CFA{}\index{cforall@\CFA}\footnote{Pronounced ``\Index*{C-for-all}'', and written \CFA, CFA, or \CFL.} is a modern general-purpose programming-language, designed as an evolutionary step forward for the C programming language. 139 The syntax of the \CFA language builds from C,and should look immediately familiar to C/\Index*[C++]{\CC{}} programmers.143 The syntax of \CFA builds from C and should look immediately familiar to C/\Index*[C++]{\CC{}} programmers. 140 144 % Any language feature that is not described here can be assumed to be using the standard \Celeven syntax. 141 \CFA adds many modern programming-language features that directly lead to increased \emph{\Index{safety}} and \emph{\Index{productivity}}, while maintaining interoperability with existing C programs and achieving Cperformance.142 Like C, \CFA is a statically typed, procedural language with a low-overhead runtime, meaning there is no global \Index{garbage-collection}, but \Index{regional garbage-collection}\index{garbage-collection!regional} is possible.145 \CFA adds many modern programming-language features that directly lead to increased \emph{\Index{safety}} and \emph{\Index{productivity}}, while maintaining interoperability with existing C programs and achieving similar performance. 146 Like C, \CFA is a statically typed, procedural (non-\Index{object-oriented}) language with a low-overhead runtime, meaning there is no global \Index{garbage-collection}, but \Index{regional garbage-collection}\index{garbage-collection!regional} is possible. 143 147 The primary new features include parametric-polymorphic routines and types, exceptions, concurrency, and modules. 144 148 145 One of the main design philosophies of \CFA is to ``describe not prescribe'', which means \CFA tries to provide a pathway from low-level C programming to high-level \CFA programming, but it does not force programmers to ``do the right thing''. 146 Programmers can cautiously add \CFA extensions to their C programs in any order and at any time to incrementally move towards safer, higher-level programming features. 147 A programmer is always free to reach back to C from \CFA for any reason, and in many cases, new \CFA features have a fallback to a C mechanism. 148 There is no notion or requirement for rewriting a legacy C program in \CFA; 149 instead, a programmer evolves an existing C program into \CFA by incrementally incorporating \CFA features. 150 New programs can be written in \CFA using a combination of C and \CFA features. 151 \Index*[C++]{\CC{}} had a similar goal 30 years ago, but currently has the disadvantages of multiple legacy design-choices that cannot be updated and active divergence of the language model from C, requiring significant effort and training to incrementally add \CC to a C-based project. 149 One of the main design philosophies of \CFA is to ``\Index{describe not prescribe}'', which means \CFA tries to provide a pathway from low-level C programming to high-level \CFA programming, but it does not force programmers to ``do the right thing''. 150 Programmers can cautiously add \CFA extensions to their C programs in any order and at any time to incrementally move towards safer, higher-level programming. 151 A programmer is always free to reach back to C from \CFA, for any reason, and in many cases, new \CFA features can be locally switched back to there C counterpart. 152 There is no notion or requirement for \emph{rewriting} a legacy C program in \CFA; 153 instead, a programmer evolves a legacy program into \CFA by incrementally incorporating \CFA features. 154 As well, new programs can be written in \CFA using a combination of C and \CFA features. 155 156 \Index*[C++]{\CC{}} had a similar goal 30 years ago, allowing object-oriented programming to be incrementally added to C. 157 However, \CC currently has the disadvantages of a strong object-oriented bias, multiple legacy design-choices that cannot be updated, and active divergence of the language model from C, all of which requires significant effort and training to incrementally add \CC to a C-based project. 152 158 In contrast, \CFA has 30 years of hindsight and a clean starting point. 153 159 … … 156 162 \begin{quote2} 157 163 \begin{tabular}{@{}l@{\hspace{1.5em}}l@{\hspace{1.5em}}l@{}} 158 \multicolumn{1}{c@{\hspace{1.5em}}}{\textbf{\CFA}} & \multicolumn{1}{c}{\textbf{C}} & \multicolumn{1}{c}{\textbf{\CC}} \\ 159 \begin{cfa} 160 #include <fstream>§\indexc{fstream}§ 161 162 int main( void ) { 163 int x = 0, y = 1, z = 2; 164 ®sout | x | y | z | endl;® 165 } 166 \end{cfa} 167 & 168 \begin{lstlisting} 164 \multicolumn{1}{c@{\hspace{1.5em}}}{\textbf{C}} & \multicolumn{1}{c}{\textbf{\CFA}} & \multicolumn{1}{c}{\textbf{\CC}} \\ 165 \begin{cfa} 169 166 #include <stdio.h>§\indexc{stdio.h}§ 170 167 … … 173 170 ®printf( "%d %d %d\n", x, y, z );® 174 171 } 175 \end{ lstlisting}172 \end{cfa} 176 173 & 177 \begin{lstlisting} 174 \begin{cfa} 175 #include <fstream>§\indexc{fstream}§ 176 177 int main( void ) { 178 int x = 0, y = 1, z = 2; 179 ®sout | x | y | z | endl;®§\indexc{sout}§ 180 } 181 \end{cfa} 182 & 183 \begin{cfa} 178 184 #include <iostream>§\indexc{iostream}§ 179 185 using namespace std; … … 182 188 ®cout<<x<<" "<<y<<" "<<z<<endl;® 183 189 } 184 \end{ lstlisting}190 \end{cfa} 185 191 \end{tabular} 186 192 \end{quote2} 187 193 While the \CFA I/O looks similar to the \Index*[C++]{\CC{}} output style, there are important differences, such as automatic spacing between variables as in \Index*{Python} (see~\VRef{s:IOLibrary}). 188 194 195 \subsection{Background} 196 189 197 This document is a programmer reference-manual for the \CFA programming language. 190 198 The manual covers the core features of the language and runtime-system, with simple examples illustrating syntax and semantics of each feature. 191 199 The manual does not teach programming, i.e., how to combine the new constructs to build complex programs. 192 A reader should already have an intermediate knowledge of control flow, data structures, and concurrency issues to understand the ideas presented as well as some experience programming in C/\CC.193 Implementers mayrefer to the \CFA Programming Language Specification for details about the language syntax and semantics.200 A reader should already have an intermediate knowledge of control flow, data structures, and concurrency issues to understand the ideas presented, as well as some experience programming in C/\CC. 201 Implementers should refer to the \CFA Programming Language Specification for details about the language syntax and semantics. 194 202 Changes to the syntax and additional features are expected to be included in later revisions. 195 203 … … 200 208 This installation base and the programmers producing it represent a massive software-engineering investment spanning decades and likely to continue for decades more. 201 209 Even with all its problems, C continues to be popular because it allows writing software at virtually any level in a computer system without restriction. 202 For system programming, where direct access to hardware and dealing with real-time issues is a requirement, C is usually thelanguage of choice.210 For system programming, where direct access to hardware, storage management, and real-time issues are a requirement, C is usually the only language of choice. 203 211 The TIOBE index~\cite{TIOBE} for March 2016 showed the following programming-language popularity: \Index*{Java} 20.5\%, C 14.5\%, \Index*[C++]{\CC{}} 6.7\%, \Csharp 4.3\%, \Index*{Python} 4.3\%, where the next 50 languages are less than 3\% each with a long tail. 204 212 As well, for 30 years, C has been the number 1 and 2 most popular programming language: … … 216 224 \end{center} 217 225 Hence, C is still an extremely important programming language, with double the usage of \Index*[C++]{\CC{}}; in many cases, \CC is often used solely as a better C. 218 Love it or hate it, C has been an important and influential part of computer science for 40 years and sitappeal is not diminishing.219 Unfortunately, C has too many problems and omissions to make it anacceptable programming language for modern needs.220 221 As stated, the goal of the \CFA project is to engineer modern language 226 Love it or hate it, C has been an important and influential part of computer science for 40 years and its appeal is not diminishing. 227 Unfortunately, C has many problems and omissions that make it an unacceptable programming language for modern needs. 228 229 As stated, the goal of the \CFA project is to engineer modern language-features into C in an evolutionary rather than revolutionary way. 222 230 \CC~\cite{C++14,C++} is an example of a similar project; 223 however, it largely extended the language, and did not address manyexisting problems.\footnote{%231 however, it largely extended the C language, and did not address most of C's existing problems.\footnote{% 224 232 Two important existing problems addressed were changing the type of character literals from ©int© to ©char© and enumerator from ©int© to the type of its enumerators.} 225 \Index*{Fortran}~\cite{Fortran08}, \Index*{Ada}~\cite{Ada12}, and \Index*{Cobol}~\cite{Cobol14} are examples of programming languages that took an evolutionary approach, where modern language 233 \Index*{Fortran}~\cite{Fortran08}, \Index*{Ada}~\cite{Ada12}, and \Index*{Cobol}~\cite{Cobol14} are examples of programming languages that took an evolutionary approach, where modern language-features (\eg objects, concurrency) are added and problems fixed within the framework of the existing language. 226 234 \Index*{Java}~\cite{Java8}, \Index*{Go}~\cite{Go}, \Index*{Rust}~\cite{Rust} and \Index*{D}~\cite{D} are examples of the revolutionary approach for modernizing C/\CC, resulting in a new language rather than an extension of the descendent. 227 These languages have different syntax and semantics from C, and do not interoperate directly with C, largely because ofgarbage collection.235 These languages have different syntax and semantics from C, do not interoperate directly with C, and are not systems languages because of restrictive memory-management or garbage collection. 228 236 As a result, there is a significant learning curve to move to these languages, and C legacy-code must be rewritten. 229 These costs can be prohibitive for many companies with a large software base in C/\CC, and a significant number of programmers requiring retraining to anew programming language.230 231 The result of this project is a language that is largely backwards compatible with \Index*[C11]{\Celeven{}}~\cite{C11}, but fix ing some of the well known C problems and containing many modern languagefeatures.237 These costs can be prohibitive for many companies with a large software-base in C/\CC, and a significant number of programmers require retraining to the new programming language. 238 239 The result of this project is a language that is largely backwards compatible with \Index*[C11]{\Celeven{}}~\cite{C11}, but fixes many of the well known C problems while containing modern language-features. 232 240 Without significant extension to the C programming language, it is becoming unable to cope with the needs of modern programming problems and programmers; 233 241 as a result, it will fade into disuse. 234 242 Considering the large body of existing C code and programmers, there is significant impetus to ensure C is transformed into a modern programming language. 235 While \Index*[C11]{\Celeven{}} made a few simple extensions to the language, nothing was added to address existing problems in the language or to augment the language with modern language 236 While some may argue that modern language 243 While \Index*[C11]{\Celeven{}} made a few simple extensions to the language, nothing was added to address existing problems in the language or to augment the language with modern language-features. 244 While some may argue that modern language-features may make C complex and inefficient, it is clear a language without modern capabilities is insufficient for the advanced programming problems existing today. 237 245 238 246 239 247 \section{History} 240 248 241 The \CFA project started with \Index*{K-W C}~\cite{Buhr94a,Till89}, which extended C with new declaration syntax, multiple return values from routines, and extended assignment capabilities using the notion of tuples.249 The \CFA project started with \Index*{K-W C}~\cite{Buhr94a,Till89}, which extended C with new declaration syntax, multiple return values from routines, and advanced assignment capabilities using the notion of tuples. 242 250 (See~\cite{Werther96} for similar work in \Index*[C++]{\CC{}}.) 243 A first \CFA implementation of these extensions was by Esteves~\cite{Esteves04}. 244 The signature feature of \CFA is parametric-polymorphic functions~\cite{forceone:impl,Cormack90,Duggan96} with functions generalized using a ©forall© clause (giving the language its name): 251 The first \CFA implementation of these extensions was by Esteves~\cite{Esteves04}. 252 253 The signature feature of \CFA is \emph{\Index{overload}able} \Index{parametric-polymorphic} functions~\cite{forceone:impl,Cormack90,Duggan96} with functions generalized using a ©forall© clause (giving the language its name): 245 254 \begin{lstlisting} 246 255 ®forall( otype T )® T identity( T val ) { return val; } … … 248 257 \end{lstlisting} 249 258 % extending the C type system with parametric polymorphism and overloading, as opposed to the \Index*[C++]{\CC{}} approach of object-oriented extensions. 250 \CFA{}\hspace{1pt}'s polymorphism was originally formalized by Ditchfi led~\cite{Ditchfield92}, and first implemented by Bilson~\cite{Bilson03}.259 \CFA{}\hspace{1pt}'s polymorphism was originally formalized by Ditchfield~\cite{Ditchfield92}, and first implemented by Bilson~\cite{Bilson03}. 251 260 However, at that time, there was little interesting in extending C, so work did not continue. 252 As the saying goes, `` What goes around, comes around.'', and there is now renewed interest in the C programming language because of legacy code-bases, so the \CFA project has been restarted.261 As the saying goes, ``\Index*{What goes around, comes around.}'', and there is now renewed interest in the C programming language because of legacy code-bases, so the \CFA project has been restarted. 253 262 254 263 … … 257 266 258 267 \CFA is designed to integrate directly with existing C programs and libraries. 259 The most important feature of \Index{interoperability} is using the same \Index{calling convention}s, so there is no overhead to call existing C routines.268 The most important feature of \Index{interoperability} is using the same \Index{calling convention}s, so there is no complex interface or overhead to call existing C routines. 260 269 This feature allows \CFA programmers to take advantage of the existing panoply of C libraries to access thousands of external software features. 261 270 Language developers often state that adequate \Index{library support} takes more work than designing and implementing the language itself. 262 271 Fortunately, \CFA, like \Index*[C++]{\CC{}}, starts with immediate access to all exiting C libraries, and in many cases, can easily wrap library routines with simpler and safer interfaces, at very low cost. 263 Hence, \CFA begins by leveraging the large repository of C libraries with little cost.272 Hence, \CFA begins by leveraging the large repository of C libraries, and than allows programmers to incrementally augment their C programs with modern \Index{backward-compatible} features. 264 273 265 274 \begin{comment} … … 304 313 \end{comment} 305 314 306 However, it is necessary to differentiate between C and \CFA code because of name overloading, as for \CC.315 However, it is necessary to differentiate between C and \CFA code because of name \Index{overload}ing, as for \CC. 307 316 For example, the C math-library provides the following routines for computing the absolute value of the basic types: ©abs©, ©labs©, ©llabs©, ©fabs©, ©fabsf©, ©fabsl©, ©cabsf©, ©cabs©, and ©cabsl©. 308 Whereas, \CFA wraps each of these routines into ones with the commonname ©abs©:317 Whereas, \CFA wraps each of these routines into ones with the overloaded name ©abs©: 309 318 \begin{cfa} 310 319 char abs( char ); 311 ®extern "C" {® 312 int abs( int ); §\C{// use default C routine for int}§ 313 ®}® // extern "C" 320 ®extern "C" {® int abs( int ); ®}® §\C{// use default C routine for int}§ 314 321 long int abs( long int ); 315 322 long long int abs( long long int ); … … 326 333 Hence, there is the same need as in \CC, to know if a name is a C or \CFA name, so it can be correctly formed. 327 334 There is no way around this problem, other than C's approach of creating unique names for each pairing of operation and type. 328 This example strongly illustrates a core idea in \CFA: \emph{the power of a name}. 335 336 This example strongly illustrates a core idea in \CFA: \emph{the \Index{power of a name}}. 329 337 The name ``©abs©'' evokes the notion of absolute value, and many mathematical types provide the notion of absolute value. 330 Hence, knowing the name ©abs© should besufficient to apply it to any type where it is applicable.331 The time savings and safety of using one name uniformly versus $N$ unique names shouldnot be underestimated.332 333 334 \section[Compiling CFA Program]{Compiling\CFA Program}335 336 The command ©cfa© is used to compile \CFA program(s), and is based on the GNU\Indexc{gcc} command, \eg:337 \begin{cfa} 338 cfa§\indexc{cfa}\index{compilation!cfa@©cfa©}§ [ gcc-options ] C/§\CFA §-files [ assembler/loader-files ]338 Hence, knowing the name ©abs© is sufficient to apply it to any type where it is applicable. 339 The time savings and safety of using one name uniformly versus $N$ unique names cannot be underestimated. 340 341 342 \section[Compiling a CFA Program]{Compiling a \CFA Program} 343 344 The command ©cfa© is used to compile a \CFA program and is based on the \Index{GNU} \Indexc{gcc} command, \eg: 345 \begin{cfa} 346 cfa§\indexc{cfa}\index{compilation!cfa@©cfa©}§ [ gcc-options ] C/§\CFA{}§-files [ assembler/loader-files ] 339 347 \end{cfa} 340 348 \CFA programs having the following ©gcc© flags turned on: … … 344 352 The 1999 C standard plus GNU extensions. 345 353 \item 346 {\lstset{deletekeywords={inline}} 347 \Indexc{-fgnu89-inline}\index{compilation option!-fgnu89-inline@{©-fgnu89-inline©}} 354 \Indexc[deletekeywords=inline]{-fgnu89-inline}\index{compilation option!-fgnu89-inline@{\lstinline[deletekeywords=inline]$-fgnu89-inline$}} 348 355 Use the traditional GNU semantics for inline routines in C99 mode, which allows inline routines in header files. 349 }%350 356 \end{description} 351 357 The following new \CFA options are available: … … 354 360 \Indexc{-CFA}\index{compilation option!-CFA@©-CFA©} 355 361 Only the C preprocessor and the \CFA translator steps are performed and the transformed program is written to standard output, which makes it possible to examine the code generated by the \CFA translator. 356 The generated code start ed with the standard \CFA prelude.362 The generated code starts with the standard \CFA \Index{prelude}. 357 363 358 364 \item 359 365 \Indexc{-debug}\index{compilation option!-debug@©-debug©} 360 366 The program is linked with the debugging version of the runtime system. 361 The debug version performs runtime checks to help during the debugging phase of a \CFA program, but substantially slows the execution of the program.367 The debug version performs runtime checks to help during the debugging phase of a \CFA program, but can substantially slow program execution. 362 368 The runtime checks should only be removed after the program is completely debugged. 363 369 \textbf{This option is the default.} … … 366 372 \Indexc{-nodebug}\index{compilation option!-nodebug@©-nodebug©} 367 373 The program is linked with the non-debugging version of the runtime system, so the execution of the program is faster. 368 \Emph{However, no runtime checks or ©assert©s are performed so errors usually result in abnormal program termination.}374 \Emph{However, no runtime checks or ©assert©s are performed so errors usually result in abnormal program behaviour or termination.} 369 375 370 376 \item … … 386 392 \textbf{This option is the default.} 387 393 394 \begin{comment} 388 395 \item 389 396 \Indexc{-no-include-stdhdr}\index{compilation option!-no-include-stdhdr@©-no-include-stdhdr©} 390 397 Do not supply ©extern "C"© wrappers for \Celeven standard include files (see~\VRef{s:StandardHeaders}). 391 398 \textbf{This option is \emph{not} the default.} 399 \end{comment} 392 400 \end{description} 393 401 … … 410 418 \item 411 419 \Indexc{__CFA__}\index{preprocessor variables!__CFA__@©__CFA__©}, 412 \Indexc{__CFORALL__}\index{preprocessor variables!__CFORALL__@©__CFORALL__©} and420 \Indexc{__CFORALL__}\index{preprocessor variables!__CFORALL__@©__CFORALL__©}, and 413 421 \Indexc{__cforall}\index{preprocessor variables!__cforall@©__cforall©} 414 422 are always available during preprocessing and have no value. 415 423 \end{description} 416 424 These preprocessor variables allow conditional compilation of programs that must work differently in these situations. 417 For example, to toggle between C and \CFA extensions, us ingthe following:425 For example, to toggle between C and \CFA extensions, use the following: 418 426 \begin{cfa} 419 427 #ifndef __CFORALL__ … … 426 434 427 435 428 \section{Constant sUnderscores}429 430 Numeric constants are extended to allow \Index{underscore}s within constants\index{constant!underscore}, \eg:436 \section{Constant Underscores} 437 438 Numeric constants are extended to allow \Index{underscore}s\index{constant!underscore}, \eg: 431 439 \begin{cfa} 432 440 2®_®147®_®483®_®648; §\C{// decimal constant}§ … … 441 449 L®_®§"\texttt{\textbackslash{x}}§®_®§\texttt{ff}§®_®§\texttt{ee}"§; §\C{// wide character constant}§ 442 450 \end{cfa} 443 The rules for placement of underscores is as follows:444 \begin{enumerate} 451 The rules for placement of underscores are: 452 \begin{enumerate}[topsep=5pt,itemsep=5pt,parsep=0pt] 445 453 \item 446 454 A sequence of underscores is disallowed, \eg ©12__34© is invalid. … … 463 471 \label{s:BackquoteIdentifiers} 464 472 465 \CFA accommodates keyword clashes with existing C variable-names by syntactic transformations using the \CFA backquote escape-mechanism: 473 \CFA introduces several new keywords (see \VRef{s:CFAKeywords}) that can clash with existing C variable-names in legacy code. 474 Keyword clashes are accommodated by syntactic transformations using the \CFA backquote escape-mechanism: 466 475 \begin{cfa} 467 476 int ®`®otype®`® = 3; §\C{// make keyword an identifier}§ 468 477 double ®`®forall®`® = 3.5; 469 478 \end{cfa} 479 470 480 Existing C programs with keyword clashes can be converted by enclosing keyword identifiers in backquotes, and eventually the identifier name can be changed to a non-keyword name. 471 \VRef[Figure]{f:InterpositionHeaderFile} shows how clashes in C header files (see~\VRef{s:StandardHeaders}) can be handled using preprocessor \newterm{interposition}: ©#include_next© and ©-I filename©: 481 \VRef[Figure]{f:HeaderFileInterposition} shows how clashes in existing C header-files (see~\VRef{s:StandardHeaders}) can be handled using preprocessor \newterm{interposition}: ©#include_next© and ©-I filename©. 482 Several common C header-files with keyword clashes are fixed in the standard \CFA header-library, so there is a seamless programming-experience. 472 483 473 484 \begin{figure} 474 485 \begin{cfa} 475 // include file uses the CFA keyword " otype".476 #if ! defined( otype) §\C{// nesting ?}§477 #define otype ®`®otype®`®§\C{// make keyword an identifier}§486 // include file uses the CFA keyword "with". 487 #if ! defined( with ) §\C{// nesting ?}§ 488 #define with ®`®with®`® §\C{// make keyword an identifier}§ 478 489 #define __CFA_BFD_H__ 479 #endif // ! otype480 481 #®include_next® <bfd.h>§\C{// must have internal check for multiple expansion}§482 483 #if defined( otype) && defined( __CFA_BFD_H__ ) §\C{// reset only if set}§484 #undef otype490 #endif 491 492 ®#include_next <bfdlink.h> §\C{// must have internal check for multiple expansion}§ 493 ® 494 #if defined( with ) && defined( __CFA_BFD_H__ ) §\C{// reset only if set}§ 495 #undef with 485 496 #undef __CFA_BFD_H__ 486 #endif // otype && __CFA_BFD_H__487 \end{cfa} 488 \caption{ Interposition of Header File}489 \label{f: InterpositionHeaderFile}497 #endif 498 \end{cfa} 499 \caption{Header-File Interposition} 500 \label{f:HeaderFileInterposition} 490 501 \end{figure} 491 502 492 503 493 \section{ Labelled Continue/Break}504 \section{\texorpdfstring{Labelled \LstKeywordStyle{continue} / \LstKeywordStyle{break}}{Labelled continue / break}} 494 505 495 506 While C provides ©continue© and ©break© statements for altering control flow, both are restricted to one level of nesting for a particular control structure. 496 507 Unfortunately, this restriction forces programmers to use \Indexc{goto} to achieve the equivalent control-flow for more than one level of nesting. 497 To prevent having to switch to the ©goto©, \CFA extends the \Indexc{continue}\index{continue@\lstinline $continue$!labelled}\index{labelled!continue@©continue©} and \Indexc{break}\index{break@\lstinline $break$!labelled}\index{labelled!break@©break©} with a target label to support static multi-level exit\index{multi-level exit}\index{static multi-level exit}~\cite{Buhr85 ,Java}.508 To prevent having to switch to the ©goto©, \CFA extends the \Indexc{continue}\index{continue@\lstinline $continue$!labelled}\index{labelled!continue@©continue©} and \Indexc{break}\index{break@\lstinline $break$!labelled}\index{labelled!break@©break©} with a target label to support static multi-level exit\index{multi-level exit}\index{static multi-level exit}~\cite{Buhr85}, as in Java. 498 509 For both ©continue© and ©break©, the target label must be directly associated with a ©for©, ©while© or ©do© statement; 499 510 for ©break©, the target label can also be associated with a ©switch©, ©if© or compound (©{}©) statement. … … 512 523 ®LF:® for ( ... ) { 513 524 ®LW:® while ( ... ) { 514 ... break ®LC®; ... 515 ... break ®LS®; ... 516 ... break ®LIF®; ... 517 ... continue ®LF;® ... 518 ... break ®LF®; ... 519 ... continue ®LW®; ... 520 ... break ®LW®; ... 525 ... break ®LC®; ... // terminate compound 526 ... break ®LS®; ... // terminate switch 527 ... break ®LIF®; ... // terminate if 528 ... continue ®LF;® ... // resume loop 529 ... break ®LF®; ... // terminate loop 530 ... continue ®LW®; ... // resume loop 531 ... break ®LW®; ... // terminate loop 521 532 } // while 522 533 } // for 523 534 } else { 524 ... break ®LIF®; ... 535 ... break ®LIF®; ... // terminate if 525 536 } // if 526 537 } // switch … … 564 575 LF: for ( ;; ) { 565 576 LW: while ( 1 ) { 566 break LC; 567 break LS; 568 break LIF; 569 continue LF; 570 break LF; 571 continue LW; 572 break LW; 577 break LC; // terminate compound 578 break LS; // terminate switch 579 break LIF; // terminate if 580 continue LF; // resume loop 581 break LF; // terminate loop 582 continue LW; // resume loop 583 break LW; // terminate loop 573 584 } // while 574 585 } // for 575 586 } else { 576 break LIF; 587 break LIF; // terminate if 577 588 } // if 578 589 } // switch … … 613 624 \item 614 625 They cannot branch into a control structure. 615 This restriction prevents missing initializationat the start of a control structure resulting in undefined behaviour.626 This restriction prevents missing declarations and/or initializations at the start of a control structure resulting in undefined behaviour. 616 627 \end{itemize} 617 628 The advantage of the labelled ©continue©/©break© is allowing static multi-level exits without having to use the ©goto© statement, and tying control flow to the target control structure rather than an arbitrary point in a program. 618 Furthermore, the location of the label at the \emph{beginning} of the target control structure informs the reader that complex control-flow is occurring in the body of the control structure.629 Furthermore, the location of the label at the \emph{beginning} of the target control structure informs the reader (\Index{eye candy}) that complex control-flow is occurring in the body of the control structure. 619 630 With ©goto©, the label is at the end of the control structure, which fails to convey this important clue early enough to the reader. 620 631 Finally, using an explicit target for the transfer instead of an implicit target allows new constructs to be added or removed without affecting existing constructs. … … 622 633 623 634 624 \section{ Switch Statement}635 \section{\texorpdfstring{\LstKeywordStyle{switch} Statement}{switch Statement}} 625 636 626 637 C allows a number of questionable forms for the ©switch© statement: … … 663 674 ®// open input file 664 675 ®} else if ( argc == 2 ) { 665 ®// open input file 676 ®// open input file (duplicate) 666 677 667 678 ®} else { … … 676 687 \begin{cfa} 677 688 switch ( i ) { 678 case 1: case 3: case 5:// odd values679 // sameaction689 ®case 1: case 3: case 5:® // odd values 690 // odd action 680 691 break; 681 case 2: case 4: case 6:// even values682 // sameaction692 ®case 2: case 4: case 6:® // even values 693 // even action 683 694 break; 684 695 } … … 686 697 However, this situation is handled in other languages without fall-through by allowing a list of case values. 687 698 While fall-through itself is not a problem, the problem occurs when fall-through is the default, as this semantics is unintuitive to many programmers and is different from virtually all other programming languages with a ©switch© statement. 688 Hence, default fall-through semantics results in a large number of programming errors as programmers often forgetthe ©break© statement at the end of a ©case© clause, resulting in inadvertent fall-through.699 Hence, default fall-through semantics results in a large number of programming errors as programmers often \emph{forget} the ©break© statement at the end of a ©case© clause, resulting in inadvertent fall-through. 689 700 690 701 \item … … 708 719 The problem with this usage is branching into control structures, which is known to cause both comprehension and technical difficulties. 709 720 The comprehension problem occurs from the inability to determine how control reaches a particular point due to the number of branches leading to it. 710 The technical problem results from the inability to ensure allocation and initialization of variables when blocks are not entered at the beginning. 711 Often transferring into a block can bypass variable declaration and/or its initialization, which results in subsequent errors. 712 There are virtually no positive arguments for this kind of control flow, and therefore, there is a strong impetus to eliminate it. 721 The technical problem results from the inability to ensure declaration and initialization of variables when blocks are not entered at the beginning. 722 There are no positive arguments for this kind of control flow, and therefore, there is a strong impetus to eliminate it. 713 723 Nevertheless, C does have an idiom where this capability is used, known as ``\Index*{Duff's device}''~\cite{Duff83}: 714 724 \begin{cfa} … … 770 780 and there is only a medium amount of fall-through from one ©case© clause to the next, and most of these result from a list of case values executing common code, rather than a sequence of case actions that compound. 771 781 \end{itemize} 772 These observations help to put the \CFA changes to the ©switch© into perspective.782 These observations put into perspective the \CFA changes to the ©switch©. 773 783 \begin{enumerate} 774 784 \item … … 791 801 case 7: 792 802 ... 793 ®break® §\C{// explicit end of switch}§803 ®break® §\C{// redundant explicit end of switch}§ 794 804 default: 795 805 j = 3; … … 797 807 \end{cfa} 798 808 Like the ©switch© statement, the ©choose© statement retains the fall-through semantics for a list of ©case© clauses; 799 theimplicit ©break© is applied only at the end of the \emph{statements} following a ©case© clause.800 Theexplicit ©fallthru© is retained because it is a C-idiom most C programmers expect, and its absence might discourage programmers from using the ©choose© statement.809 An implicit ©break© is applied only at the end of the \emph{statements} following a ©case© clause. 810 An explicit ©fallthru© is retained because it is a C-idiom most C programmers expect, and its absence might discourage programmers from using the ©choose© statement. 801 811 As well, allowing an explicit ©break© from the ©choose© is a carry over from the ©switch© statement, and expected by C programmers. 802 812 \item … … 827 837 828 838 829 \section{ Case Clause}839 \section{\texorpdfstring{\LstKeywordStyle{case} Clause}{case Clause}} 830 840 831 841 C restricts the ©case© clause of a ©switch© statement to a single value. … … 903 913 904 914 915 \section{\texorpdfstring{\LstKeywordStyle{with} Clause / Statement}{with Clause / Statement}} 916 \label{s:WithClauseStatement} 917 918 In \Index{object-oriented} programming, there is an implicit first parameter, often names \textbf{©self©} or \textbf{©this©}, which is elided. 919 \begin{C++} 920 class C { 921 int i, j; 922 int mem() { ®// implicit "this" parameter 923 ® i = 1; ®// this->i 924 ® j = 3; ®// this->j 925 ® } 926 } 927 \end{C++} 928 Since CFA is non-object-oriented, the equivalent object-oriented program looks like: 929 \begin{cfa} 930 struct S { int i, j; }; 931 int mem( S &this ) { // explicit "this" parameter 932 ®this.®i = 1; // "this" is not elided 933 ®this.®j = 2; 934 } 935 \end{cfa} 936 but it is cumbersome having to write "©this.©" many times in a member. 937 938 \CFA provides a ©with© clause/statement (see Pascal~\cite[\S~4.F]{Pascal}) to elided the "©this.©" by opening a scope containing field identifiers, changing the qualified fields into variables and giving an opportunity for optimizing qualified references. 939 \begin{cfa} 940 int mem( S &this ) ®with this® { // with clause 941 i = 1; ®// this.i 942 ® j = 2; ®// this.j 943 ®} 944 \end{cfa} 945 which extends to multiple routine parameters: 946 \begin{cfa} 947 struct T { double m, n; }; 948 int mem2( S &this1, T &this2 ) ®with this1, this2® { 949 i = 1; j = 2; 950 m = 1.0; n = 2.0; 951 } 952 \end{cfa} 953 954 The statement form is used within a block: 955 \begin{cfa} 956 int foo() { 957 struct S1 { ... } s1; 958 struct S2 { ... } s2; 959 ®with s1® { // with statement 960 // access fields of s1 without qualification 961 ®with s2® { // nesting 962 // access fields of s1 and s2 without qualification 963 } 964 } 965 ®with s1, s2® { 966 // access unambiguous fields of s1 and s2 without qualification 967 } 968 } 969 \end{cfa} 970 971 When opening multiple structures, fields with the same name and type are ambiguous and must be fully qualified. 972 For fields with the same name but different type, context/cast can be used to disambiguate. 973 \begin{cfa} 974 struct S { int i; int j; double m; } a, c; 975 struct T { int i; int k; int m } b, c; 976 ®with a, b® { 977 j + k; §\C{// unambiguous, unique names define unique types}§ 978 i; §\C{// ambiguous, same name and type}§ 979 a.i + b.i; §\C{// unambiguous, qualification defines unique names}§ 980 m; §\C{// ambiguous, same name and no context to define unique type}§ 981 m = 5.0; §\C{// unambiguous, same name and context defines unique type}§ 982 m = 1; §\C{// unambiguous, same name and context defines unique type}§ 983 } 984 ®with c® { ... } §\C{// ambiguous, same name and no context}§ 985 ®with (S)c® { ... } §\C{// unambiguous, same name and cast defines unique type}§ 986 \end{cfa} 987 988 905 989 \section{Exception Handling} 990 \label{s:ExceptionHandling} 906 991 907 992 Exception handling provides two mechanism: change of control flow from a raise to a handler, and communication from the raise to the handler. 908 \begin{cfa} 909 exception void h( int i ); 910 exception int h( int i, double d ); 911 993 Transfer of control can be local, within a routine, or non-local, among routines. 994 Non-local transfer can cause stack unwinding, i.e., non-local routine termination, depending on the kind of raise. 995 \begin{cfa} 996 exception_t E {}; §\C{// exception type}§ 912 997 void f(...) { 913 ... throw h( 3 ); 914 ... i = resume h( 3, 5.1 ); 915 } 916 998 ... throw E{}; ... §\C{// termination}§ 999 ... throwResume E{}; ... §\C{// resumption}§ 1000 } 917 1001 try { 918 1002 f(...); 919 } catch h( int w ) {920 // re set921 } resume h( int p, double x ) {922 return 17; // recover1003 } catch( E e : §boolean-predicate§ ) { §\C{// termination handler}§ 1004 // recover and continue 1005 } catchResume( E e : §boolean-predicate§ ) { §\C{// resumption handler}§ 1006 // repair and return 923 1007 } finally { 924 } 925 \end{cfa} 926 So the type raised would be the mangled name of the exception prototype and that name would be matched at the handler clauses by comparing the strings. 927 The arguments for the call would have to be packed in a message and unpacked at handler clause and then a call made to the handler. 1008 // always executed 1009 } 1010 \end{cfa} 1011 The kind of raise and handler match: ©throw© with ©catch© and ©throwResume© with ©catchResume©. 1012 Then the exception type must match along with any additonal predicate must be true. 1013 The ©catch© and ©catchResume© handlers may appear in any oder. 1014 However, the ©finally© clause must appear at the end of the ©try© statement. 928 1015 929 1016 … … 1136 1223 1137 1224 1138 \section{Pointer/Reference} 1225 \section{Exponentiation Operator} 1226 1227 C, \CC, and Java (and many other programming languages) have no exponentiation operator\index{exponentiation!operator}\index{operator!exponentiation}, \ie $x^y$, and instead use a routine, like \Indexc{pow}, to perform the exponentiation operation. 1228 \CFA extends the basic operators with the exponentiation operator ©?\?©\index{?\\?@\lstinline$?\?$} and ©?\=?©\index{?\\=?@\lstinline$?\=?$}, as in, ©x \ y© and ©x \= y©, which means $x^y$ and $x \leftarrow x^y$. 1229 The priority of the exponentiation operator is between the cast and multiplicative operators, so that ©w * (int)x \ (int)y * z© is parenthesized as ©((w * (((int)x) \ ((int)y))) * z)©. 1230 1231 As for \Index{division}, there are exponentiation operators for integral and floating-point types, including the builtin \Index{complex} types. 1232 Unsigned integral exponentiation\index{exponentiation!unsigned integral} is performed with repeated multiplication (or shifting if the base is 2). 1233 Signed integral exponentiation\index{exponentiation!signed integral} is performed with repeated multiplication (or shifting if the base is 2), but yields a floating-point result because $b^{-e}=1/b^e$. 1234 Hence, it is important to designate exponent integral-constants as unsigned or signed: ©3 \ 3u© return an integral result, while ©3 \ 3© returns a floating-point result. 1235 Floating-point exponentiation\index{exponentiation!floating point} is performed using \Index{logarithm}s\index{exponentiation!logarithm}, so the base cannot be negative. 1236 \begin{cfa} 1237 sout | 2 ®\® 8u | 4 ®\® 3u | -4 ®\® 3u | 4 ®\® -3 | -4 ®\® -3 | 4.0 ®\® 2.1 | (1.0f+2.0fi) ®\® (3.0f+2.0fi) | endl; 1238 256 64 -64 0.015625 -0.015625 18.3791736799526 0.264715-1.1922i 1239 \end{cfa} 1240 Parenthesis are necessary for the complex constants or the expresion is parsed as ©1.0f+(2.0fi \ 3.0f)+2.0fi©. 1241 The exponentiation operator is available for all the basic types, but for user-defined types, only the integral-computation versions are available. 1242 For returning an integral value, the user type ©T© must define multiplication, ©*©, and one, ©1©; 1243 for returning a floating-point value, an additional divide of type ©T© into a ©double© returning a ©double© (©double ?/?( double, T )©) is necessary for negative exponents. 1244 1245 1246 \section{Pointer / Reference} 1139 1247 1140 1248 C provides a \newterm{pointer type}; … … 1144 1252 An integer constant expression with the value 0, or such an expression cast to type ©void *©, is called a \newterm{null-pointer constant}.\footnote{ 1145 1253 One way to conceptualize the null pointer is that no variable is placed at this address, so the null-pointer address can be used to denote an uninitialized pointer/reference object; 1146 \ie the null pointer is guaranteed to compare unequal to a pointer to any object or routine.} 1254 \ie the null pointer is guaranteed to compare unequal to a pointer to any object or routine. 1255 In general, a value with special meaning among a set of values is called a \emph{\Index{sentinel value}}, \eg ©-1© as a return code value.} 1147 1256 An address is \newterm{sound}, if it points to a valid memory location in scope, \ie within the program's execution-environment and has not been freed. 1148 1257 Dereferencing an \newterm{unsound} address, including the null pointer, is \Index{undefined}, often resulting in a \Index{memory fault}. … … 1179 1288 \hline 1180 1289 \begin{cfa} 1181 lda r1,100 1182 ld r2,(r1) 1183 lda r3,104 1184 st r2,(r3) 1290 lda r1,100 // load address of x 1291 ld r2,(r1) // load value of x 1292 lda r3,104 // load address of y 1293 st r2,(r3) // store x into y 1185 1294 \end{cfa} 1186 1295 & 1187 1296 \begin{cfa} 1188 1297 1189 ld r2,(100) 1190 1191 st r2,(104) 1298 ld r2,(100) // load value of x 1299 1300 st r2,(104) // store x into y 1192 1301 \end{cfa} 1193 1302 \end{tabular} … … 1485 1594 1486 1595 \item 1487 lvalue to reference conversion: \lstinline[deletekeywords= {lvalue}]@lvalue-type cv1 T@converts to ©cv2 T &©, which allows implicitly converting variables to references.1596 lvalue to reference conversion: \lstinline[deletekeywords=lvalue]$lvalue-type cv1 T$ converts to ©cv2 T &©, which allows implicitly converting variables to references. 1488 1597 \begin{cfa} 1489 1598 int x, &r = ®x®, f( int & p ); // lvalue variable (int) convert to reference (int &) … … 2594 2703 \begin{cfa}[belowskip=0pt] 2595 2704 char store[®sepSize®]; §\C{// sepSize is the maximum separator size}§ 2596 strcpy( store, sepGet( sout ) ); 2597 sepSet( sout, "_" ); 2705 strcpy( store, sepGet( sout ) ); §\C{// copy current separator}§ 2706 sepSet( sout, "_" ); §\C{// change separator to underscore}§ 2598 2707 sout | 1 | 2 | 3 | endl; 2599 2708 \end{cfa} … … 2602 2711 \end{cfa} 2603 2712 \begin{cfa}[belowskip=0pt] 2604 sepSet( sout, store ); 2713 sepSet( sout, store ); §\C{// change separator back to original}§ 2605 2714 sout | 1 | 2 | 3 | endl; 2606 2715 \end{cfa} … … 3159 3268 \Indexc{gcc} provides ©typeof© to declare a secondary variable from a primary variable. 3160 3269 \CFA also relies heavily on the specification of the left-hand side of assignment for type inferencing, so in many cases it is crucial to specify the type of the left-hand side to select the correct type of the right-hand expression. 3161 Only for overloaded routines with the same return typeis variable type-inferencing possible.3270 Only for overloaded routines \emph{with the same return type} is variable type-inferencing possible. 3162 3271 Finally, ©auto© presents the programming problem of tracking down a type when the type is actually needed. 3163 3272 For example, given … … 5258 5367 5259 5368 5260 \section{\ CFA Keywords}5369 \section{\texorpdfstring{\CFA Keywords}{Cforall Keywords}} 5261 5370 \label{s:CFAKeywords} 5262 5371 5372 \CFA introduces the following new keywords. 5373 5263 5374 \begin{quote2} 5264 \begin{tabular}{llll }5375 \begin{tabular}{lllll} 5265 5376 \begin{tabular}{@{}l@{}} 5266 ©_A T© \\5377 ©_At© \\ 5267 5378 ©catch© \\ 5268 5379 ©catchResume© \\ 5269 5380 ©choose© \\ 5270 5381 ©coroutine© \\ 5271 ©disable© \\5272 5382 \end{tabular} 5273 5383 & 5274 5384 \begin{tabular}{@{}l@{}} 5385 ©disable© \\ 5275 5386 ©dtype© \\ 5276 5387 ©enable© \\ 5277 5388 ©fallthrough© \\ 5278 5389 ©fallthru© \\ 5279 ©finally© \\5280 ©forall© \\5281 5390 \end{tabular} 5282 5391 & 5283 5392 \begin{tabular}{@{}l@{}} 5393 ©finally© \\ 5394 ©forall© \\ 5284 5395 ©ftype© \\ 5285 5396 ©lvalue© \\ 5286 5397 ©monitor© \\ 5398 \end{tabular} 5399 & 5400 \begin{tabular}{@{}l@{}} 5287 5401 ©mutex© \\ 5288 5402 ©one_t© \\ 5289 5403 ©otype© \\ 5404 ©throw© \\ 5405 ©throwResume© \\ 5290 5406 \end{tabular} 5291 5407 & 5292 5408 \begin{tabular}{@{}l@{}} 5293 ©throw© \\5294 ©throwResume© \\5295 5409 ©trait© \\ 5296 5410 ©try© \\ 5297 5411 ©ttype© \\ 5412 ©with© \\ 5298 5413 ©zero_t© \\ 5299 5414 \end{tabular} … … 5330 5445 g( p1, p2 ) int p1, p2; §\C{// int g( int p1, int p2 );}§ 5331 5446 \end{cfa} 5332 \CFA supportsK\&R routine definitions:5447 \CFA continues to support K\&R routine definitions: 5333 5448 \begin{cfa} 5334 5449 f( a, b, c ) §\C{// default int return}§ … … 5471 5586 \Celeven prescribes the following standard header-files~\cite[\S~7.1.2]{C11} and \CFA adds to this list: 5472 5587 \begin{quote2} 5473 \lstset{deletekeywords={float}} 5474 \begin{tabular}{@{}llll|l@{}} 5475 \multicolumn{4}{c|}{C11} & \multicolumn{1}{c}{\CFA} \\ 5588 \begin{tabular}{@{}lllll|l@{}} 5589 \multicolumn{5}{c|}{C11} & \multicolumn{1}{c}{\CFA} \\ 5476 5590 \hline 5477 5591 \begin{tabular}{@{}l@{}} … … 5481 5595 \Indexc{errno.h} \\ 5482 5596 \Indexc{fenv.h} \\ 5483 \Indexc{float.h} \\ 5484 \Indexc{inttypes.h} \\ 5485 \Indexc{iso646.h} \\ 5597 \Indexc[deletekeywords=float]{float.h} \\ 5486 5598 \end{tabular} 5487 5599 & 5488 5600 \begin{tabular}{@{}l@{}} 5601 \Indexc{inttypes.h} \\ 5602 \Indexc{iso646.h} \\ 5489 5603 \Indexc{limits.h} \\ 5490 5604 \Indexc{locale.h} \\ 5491 5605 \Indexc{math.h} \\ 5492 5606 \Indexc{setjmp.h} \\ 5607 \end{tabular} 5608 & 5609 \begin{tabular}{@{}l@{}} 5493 5610 \Indexc{signal.h} \\ 5494 5611 \Indexc{stdalign.h} \\ 5495 5612 \Indexc{stdarg.h} \\ 5496 5613 \Indexc{stdatomic.h} \\ 5614 \Indexc{stdbool.h} \\ 5615 \Indexc{stddef.h} \\ 5497 5616 \end{tabular} 5498 5617 & 5499 5618 \begin{tabular}{@{}l@{}} 5500 \Indexc{stdbool.h} \\5501 \Indexc{stddef.h} \\5502 5619 \Indexc{stdint.h} \\ 5503 5620 \Indexc{stdio.h} \\ … … 5515 5632 \Indexc{wctype.h} \\ 5516 5633 \\ 5517 \\5518 \\5519 5634 \end{tabular} 5520 5635 & … … 5522 5637 \Indexc{unistd.h} \\ 5523 5638 \Indexc{gmp.h} \\ 5524 \\5525 \\5526 5639 \\ 5527 5640 \\ … … 5563 5676 The table shows allocation routines supporting different combinations of storage-management capabilities: 5564 5677 \begin{center} 5565 \begin{tabular}{@{} lr|l|l|l|l@{}}5566 && \multicolumn{1}{c|}{fill} & resize & alignment & array \\5678 \begin{tabular}{@{}r|r|l|l|l|l@{}} 5679 \multicolumn{1}{c}{}& & \multicolumn{1}{c|}{fill} & resize & alignment & array \\ 5567 5680 \hline 5568 5681 C & ©malloc© & no & no & no & no \\ … … 5571 5684 & ©memalign© & no & no & yes & no \\ 5572 5685 & ©posix_memalign© & no & no & yes & no \\ 5686 \hline 5573 5687 C11 & ©aligned_alloc© & no & no & yes & no \\ 5688 \hline 5574 5689 \CFA & ©alloc© & no/copy/yes & no/yes & no & yes \\ 5575 5690 & ©align_alloc© & no/yes & no & yes & yes \\ -
src/CodeGen/CodeGenerator.h
re0a653d r33218c6 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Andrew Beach12 // Last Modified On : Thu Jun 8 15:48:00201713 // Update Count : 5 211 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Jul 21 22:16:21 2017 13 // Update Count : 53 14 14 // 15 15 16 #ifndef CODEGENV_H 17 #define CODEGENV_H 16 #pragma once 18 17 19 18 #include <list> // for list … … 166 165 } // namespace CodeGen 167 166 168 #endif // CODEGENV_H169 170 167 // Local Variables: // 171 168 // tab-width: 4 // -
src/CodeGen/FixMain.h
re0a653d r33218c6 9 9 // Author : Thierry Delisle 10 10 // Created On : Thr Jan 12 14:11:09 2017 11 // Last Modified By : 12 // Last Modified On : 13 // Update Count : 011 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Jul 21 22:16:59 2017 13 // Update Count : 1 14 14 // 15 15 16 #ifndef FIXMAIN_H 17 #define FIXMAIN_H 16 #pragma once 18 17 19 18 #include <iosfwd> … … 44 43 }; 45 44 }; 46 47 #endif //FIXMAIN_H -
src/CodeGen/FixNames.h
re0a653d r33218c6 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon May 18 23:37:32 201513 // Update Count : 212 // Last Modified On : Fri Jul 21 22:17:33 2017 13 // Update Count : 3 14 14 // 15 15 16 #ifndef FIXNAMES_H 17 #define FIXNAMES_H 16 #pragma once 18 17 19 18 #include <list> // for list … … 26 25 } // namespace CodeGen 27 26 28 #endif // FIXNAMES_H29 30 27 // Local Variables: // 31 28 // tab-width: 4 // -
src/CodeGen/GenType.h
re0a653d r33218c6 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon May 18 23:38:53 201513 // Update Count : 112 // Last Modified On : Fri Jul 21 22:17:23 2017 13 // Update Count : 2 14 14 // 15 15 16 #ifndef _GENTYPE_H 17 #define _GENTYPE_H 16 #pragma once 18 17 19 18 #include <string> // for string … … 26 25 } // namespace CodeGen 27 26 28 #endif // _GENTYPE_H29 30 27 // Local Variables: // 31 28 // tab-width: 4 // -
src/CodeGen/Generate.h
re0a653d r33218c6 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon May 18 23:39:51 201513 // Update Count : 112 // Last Modified On : Fri Jul 21 22:16:35 2017 13 // Update Count : 2 14 14 // 15 15 16 #ifndef GENERATE_H 17 #define GENERATE_H 16 #pragma once 18 17 19 18 #include <iostream> // for ostream … … 31 30 } // namespace CodeGen 32 31 33 #endif // GENERATE_H34 35 32 // Local Variables: // 36 33 // tab-width: 4 // -
src/CodeGen/OperatorTable.cc
re0a653d r33218c6 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue Dec 13 14:33:05 201613 // Update Count : 1 012 // Last Modified On : Sat Jul 15 17:12:22 2017 13 // Update Count : 15 14 14 // 15 15 … … 35 35 { "++?", "++", "_operator_preincr", OT_PREFIXASSIGN }, 36 36 { "--?", "--", "_operator_predecr", OT_PREFIXASSIGN }, 37 { "?\\?", "\\", "_operator_exponential", OT_INFIX }, 37 38 { "?*?", "*", "_operator_multiply", OT_INFIX }, 38 39 { "?/?", "/", "_operator_divide", OT_INFIX }, … … 52 53 { "?|?", "|", "_operator_bitor", OT_INFIX }, 53 54 { "?=?", "=", "_operator_assign", OT_INFIXASSIGN }, 55 { "?\\=?", "\\=", "_operator_expassign", OT_INFIXASSIGN }, 54 56 { "?*=?", "*=", "_operator_multassign", OT_INFIXASSIGN }, 55 57 { "?/=?", "/=", "_operator_divassign", OT_INFIXASSIGN }, -
src/CodeGen/OperatorTable.h
re0a653d r33218c6 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Wed Jun 24 16:17:57 201513 // Update Count : 511 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Jul 21 22:17:11 2017 13 // Update Count : 6 14 14 // 15 15 16 #ifndef _OPERATORTABLE_H 17 #define _OPERATORTABLE_H 16 #pragma once 18 17 19 18 #include <string> … … 45 44 } // namespace CodeGen 46 45 47 #endif // _OPERATORTABLE_H48 49 46 // Local Variables: // 50 47 // tab-width: 4 // -
src/CodeTools/DeclStats.h
re0a653d r33218c6 9 9 // Author : Aaron Moss 10 10 // Created On : Wed Jan 31 16:40:00 2016 11 // Last Modified By : Aaron Moss12 // Last Modified On : Wed Jan 31 16:40:00 201613 // Update Count : 111 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Jul 21 22:17:56 2017 13 // Update Count : 2 14 14 // 15 15 16 #ifndef DECLSTATS_H 17 #define DECLSTATS_H 16 #pragma once 18 17 19 18 #include <list> // for list … … 28 27 } // namespace CodeTools 29 28 30 #endif // DECLSTATS_H31 32 29 // Local Variables: // 33 30 // tab-width: 4 // -
src/CodeTools/TrackLoc.h
re0a653d r33218c6 9 9 // Author : Andrew Beach 10 10 // Created On : Tues May 2 15:40:00 2017 11 // Last Modified By : Andrew Beach12 // Last Modified On : Wed May 3 14:42:00201713 // Update Count : 011 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Jul 21 22:17:44 2017 13 // Update Count : 1 14 14 // 15 15 16 #ifndef TRACKLOC_H 17 #define TRACKLOC_H 16 #pragma once 18 17 19 18 #include <cstddef> // for size_t … … 31 30 } // namespace CodeTools 32 31 33 #endif // TRACKLOC_H34 35 32 // Local Variables: // 36 33 // tab-width: 4 // -
src/Common/CompilerError.h
re0a653d r33218c6 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Aug 18 23:41:30 201613 // Update Count : 312 // Last Modified On : Fri Jul 21 22:18:07 2017 13 // Update Count : 4 14 14 // 15 15 16 #ifndef COMPILER_ERROR_H 17 #define COMPILER_ERROR_H 16 #pragma once 18 17 19 18 #include <string> … … 31 30 }; 32 31 33 #endif // COMPILER_ERROR_H34 35 32 // Local Variables: // 36 33 // tab-width: 4 // -
src/Common/ScopedMap.h
re0a653d r33218c6 9 9 // Author : Aaron B. Moss 10 10 // Created On : Wed Dec 2 11:37:00 2015 11 // Last Modified By : Aaron B. Moss 12 // Last Modified On : Wed Dec 2 11:37:00 2015 13 // Update Count : 1 14 // 15 16 #ifndef _SCOPEDMAP_H 17 #define _SCOPEDMAP_H 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Jul 21 22:18:24 2017 13 // Update Count : 2 14 // 15 16 #pragma once 18 17 19 18 #include <cassert> … … 305 304 }; 306 305 307 #endif // _SCOPEDMAP_H308 309 306 // Local Variables: // 310 307 // tab-width: 4 // -
src/Common/SemanticError.h
re0a653d r33218c6 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Sep 24 15:13:42 201613 // Update Count : 512 // Last Modified On : Fri Jul 21 22:18:59 2017 13 // Update Count : 6 14 14 // 15 15 16 #ifndef SEMANTICERROR_H 17 #define SEMANTICERROR_H 16 #pragma once 18 17 19 18 #include <exception> // for exception … … 62 61 } 63 62 64 #endif // SEMANTICERROR_H65 66 63 // Local Variables: // 67 64 // tab-width: 4 // -
src/Common/UnimplementedError.h
re0a653d r33218c6 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue May 19 07:23:08 201513 // Update Count : 112 // Last Modified On : Fri Jul 21 22:18:35 2017 13 // Update Count : 2 14 14 // 15 15 16 #ifndef _UNIMPLEMENTEDERROR_H 17 #define _UNIMPLEMENTEDERROR_H 16 #pragma once 18 17 19 18 #include <string> … … 31 30 }; 32 31 33 #endif // _UNIMPLEMENTEDERROR_H34 35 32 // Local Variables: // 36 33 // tab-width: 4 // -
src/Common/UniqueName.h
re0a653d r33218c6 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue May 19 07:24:20 201513 // Update Count : 112 // Last Modified On : Fri Jul 21 22:18:45 2017 13 // Update Count : 2 14 14 // 15 15 16 #ifndef UNIQUENAME_H 17 #define UNIQUENAME_H 16 #pragma once 18 17 19 18 #include <string> … … 28 27 }; 29 28 30 #endif // UNIQUENAME_H31 32 29 // Local Variables: // 33 30 // tab-width: 4 // -
src/Common/VectorMap.h
re0a653d r33218c6 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // ScopedMap.h --7 // VectorMap.h -- 8 8 // 9 9 // Author : Aaron B. Moss 10 10 // Created On : Wed Feb 1 16:55:00 2017 11 // Last Modified By : Aaron B. Moss 12 // Last Modified On : Wed Feb 1 16:55:00 2017 13 // Update Count : 1 14 // 15 16 #ifndef _VECTORMAP_H 17 #define _VECTORMAP_H 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Jul 21 22:19:29 2017 13 // Update Count : 2 14 // 15 16 #pragma once 18 17 19 18 #include <iterator> … … 245 244 } 246 245 247 #endif // _VECTORMAP_H248 249 246 // Local Variables: // 250 247 // tab-width: 4 // -
src/Common/utility.h
re0a653d r33218c6 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Andrew Beach 12 // Last Modified On : Fri May 5 11:03:00 2017 13 // Update Count : 32 14 // 15 16 #ifndef _UTILITY_H 17 #define _UTILITY_H 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Jul 21 22:19:13 2017 13 // Update Count : 33 14 // 15 16 #pragma once 18 17 19 18 #include <cctype> … … 376 375 } 377 376 378 #endif // _UTILITY_H379 380 377 // Local Variables: // 381 378 // tab-width: 4 // -
src/Concurrency/Keywords.cc
re0a653d r33218c6 1 // -*- Mode: CPP -*-2 1 // 3 2 // Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo … … 12 11 // Last Modified By : 13 12 // Last Modified On : 14 // Update Count : 313 // Update Count : 5 15 14 // 16 15 … … 549 548 } 550 549 }; 550 551 // Local Variables: // 552 // mode: c // 553 // tab-width: 4 // 554 // End: // -
src/Concurrency/Keywords.h
re0a653d r33218c6 1 // -*- Mode: CPP -*-2 1 // 3 2 // Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo … … 12 11 // Last Modified By : 13 12 // Last Modified On : 14 // Update Count : 013 // Update Count : 1 15 14 // 16 15 17 #ifndef KEYWORDS_H 18 #define KEYWORDS_H 16 #pragma once 19 17 20 18 #include <list> // for list … … 28 26 }; 29 27 30 #endif //KEYWORDS_H 28 // Local Variables: // 29 // tab-width: 4 // 30 // mode: c++ // 31 // compile-command: "make install" // 32 // End: // -
src/ControlStruct/ExceptTranslate.cc
re0a653d r33218c6 10 10 // Created On : Wed Jun 14 16:49:00 2017 11 11 // Last Modified By : Andrew Beach 12 // Last Modified On : Wed Jul 12 15:07:00 201713 // Update Count : 312 // Last Modified On : Tus Jul 18 10:09:00 2017 13 // Update Count : 4 14 14 // 15 15 … … 50 50 LinkageSpec::Cforall, 51 51 /*bitfieldWidth*/ NULL, 52 new BasicType( emptyQualifiers, BasicType::SignedInt ),52 new BasicType( noQualifiers, BasicType::SignedInt ), 53 53 /*init*/ NULL 54 54 ); … … 59 59 /*bitfieldWidth*/ NULL, 60 60 new PointerType( 61 emptyQualifiers,62 new BasicType( emptyQualifiers, BasicType::SignedInt )61 noQualifiers, 62 new BasicType( noQualifiers, BasicType::SignedInt ) 63 63 ), 64 64 /*init*/ NULL … … 69 69 LinkageSpec::Cforall, 70 70 /*bitfieldWidth*/ NULL, 71 new BasicType( emptyQualifiers, BasicType::Bool),71 new BasicType(noQualifiers, BasicType::Bool), 72 72 /*init*/ NULL 73 73 ); … … 78 78 NULL, 79 79 new PointerType( 80 emptyQualifiers,80 noQualifiers, 81 81 new VoidType( 82 emptyQualifiers82 noQualifiers 83 83 ), 84 84 std::list<Attribute *>{new Attribute("unused")} … … 143 143 LinkageSpec::Cforall, 144 144 NULL, 145 new BasicType( emptyQualifiers, BasicType::SignedInt ),145 new BasicType( noQualifiers, BasicType::SignedInt ), 146 146 new SingleInit( throwStmt->get_expr() ) 147 147 ); … … 444 444 nullptr, 445 445 new StructInstType( 446 emptyQualifiers,446 noQualifiers, 447 447 hook_decl 448 448 ), -
src/ControlStruct/ExceptTranslate.h
re0a653d r33218c6 9 9 // Author : Andrew Beach 10 10 // Created On : Tus Jun 06 10:13:00 2017 11 // Last Modified By : Andrew Beach12 // Last Modified On : Fri Jun 30 10:20:00201713 // Update Count : 211 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jul 22 09:19:23 2017 13 // Update Count : 4 14 14 // 15 15 16 #ifndef EXCEPT_TRANSLATE_H 17 #define EXCEPT_TRANSLATE_H 16 #pragma once 18 17 19 18 #include <list> … … 22 21 namespace ControlStruct { 23 22 void translateEHM( std::list< Declaration *> & translationUnit ); 24 /* Converts exception handling structures into their underlying C code. 25 * Translation does use the exception handling header, make sure it is 26 * visible wherever translation occurs. 27 */ 23 // Converts exception handling structures into their underlying C code. Translation does use the exception 24 // handling header, make sure it is visible wherever translation occurs. 28 25 } 29 26 30 #endif // EXCEPT_TRANSLATE_H 27 // Local Variables: // 28 // tab-width: 4 // 29 // mode: c++ // 30 // compile-command: "make install" // 31 // End: // -
src/ControlStruct/ForExprMutator.h
re0a653d r33218c6 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Jan 25 21:22:13 201613 // Update Count : 312 // Last Modified On : Sat Jul 22 09:17:08 2017 13 // Update Count : 4 14 14 // 15 15 16 #ifndef FOR_MUTATOR_H 17 #define FOR_MUTATOR_H 16 #pragma once 18 17 19 18 #include "SynTree/Mutator.h" … … 27 26 } // namespace ControlStruct 28 27 29 #endif // CHOOSE_MUTATOR_H30 31 28 // Local Variables: // 32 29 // tab-width: 4 // -
src/ControlStruct/LabelFixer.h
re0a653d r33218c6 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue Jul 12 17:36:16 201613 // Update Count : 3 312 // Last Modified On : Sat Jul 22 09:17:24 2017 13 // Update Count : 34 14 14 // 15 15 16 #ifndef LABEL_FIXER_H 17 #define LABEL_FIXER_H 16 #pragma once 18 17 19 18 #include "Common/utility.h" … … 83 82 } // namespace ControlStruct 84 83 85 #endif // LABEL_FIXER_H86 87 84 // Local Variables: // 88 85 // tab-width: 4 // -
src/ControlStruct/LabelGenerator.h
re0a653d r33218c6 9 9 // Author : Rodolfo G. Esteves 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Wed Jun 03 14:16:26 201513 // Update Count : 511 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jul 22 09:20:14 2017 13 // Update Count : 6 14 14 // 15 15 16 #ifndef LABEL_GENERATOR_H 17 #define LABEL_GENERATOR_H 16 #pragma once 18 17 19 18 #include "SynTree/SynTree.h" … … 35 34 } // namespace ControlStruct 36 35 37 #endif // LABEL_GENERATOR_H38 39 36 // Local Variables: // 40 37 // tab-width: 4 // -
src/ControlStruct/MLEMutator.h
re0a653d r33218c6 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue Jul 12 17:37:01 201613 // Update Count : 3 412 // Last Modified On : Sat Jul 22 09:19:59 2017 13 // Update Count : 35 14 14 // 15 15 16 #ifndef MLE_MUTATOR_H 17 #define MLE_MUTATOR_H 16 #pragma once 18 17 19 18 #include <map> … … 89 88 } // namespace ControlStruct 90 89 91 #endif // MLE_MUTATOR_H92 93 90 // Local Variables: // 94 91 // tab-width: 4 // -
src/ControlStruct/Mutate.h
re0a653d r33218c6 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue May 19 15:31:20 201513 // Update Count : 212 // Last Modified On : Sat Jul 22 09:17:59 2017 13 // Update Count : 3 14 14 // 15 15 16 #ifndef CTRLS_MUTATE_H 17 #define CTRLS_MUTATE_H 16 #pragma once 18 17 19 18 #include <list> … … 27 26 } // namespace ControlStruct 28 27 29 #endif // CTRLS_MUTATE_H30 31 28 // Local Variables: // 32 29 // tab-width: 4 // -
src/GenPoly/Box.cc
re0a653d r33218c6 202 202 }; 203 203 204 /// Replaces initialization of polymorphic values with alloca, declaration of dtype/ftype with appropriate void expression, and sizeof expressions of polymorphic types with the proper variable204 /// Replaces initialization of polymorphic values with alloca, declaration of dtype/ftype with appropriate void expression, sizeof expressions of polymorphic types with the proper variable, and strips fields from generic struct declarations. 205 205 class Pass3 final : public PolyMutator { 206 206 public: … … 210 210 using PolyMutator::mutate; 211 211 virtual DeclarationWithType *mutate( FunctionDecl *functionDecl ) override; 212 virtual Declaration *mutate( StructDecl *structDecl ) override; 213 virtual Declaration *mutate( UnionDecl *unionDecl ) override; 212 214 virtual ObjectDecl *mutate( ObjectDecl *objectDecl ) override; 213 215 virtual TypedefDecl *mutate( TypedefDecl *objectDecl ) override; … … 1868 1870 } 1869 1871 1872 /// Strips the members from a generic aggregate 1873 void stripGenericMembers(AggregateDecl* decl) { 1874 if ( ! decl->get_parameters().empty() ) decl->get_members().clear(); 1875 } 1876 1877 Declaration *Pass3::mutate( StructDecl *structDecl ) { 1878 stripGenericMembers( structDecl ); 1879 return structDecl; 1880 } 1881 1882 Declaration *Pass3::mutate( UnionDecl *unionDecl ) { 1883 stripGenericMembers( unionDecl ); 1884 return unionDecl; 1885 } 1886 1870 1887 TypeDecl * Pass3::mutate( TypeDecl *typeDecl ) { 1871 1888 // Initializer *init = 0; -
src/GenPoly/Box.h
re0a653d r33218c6 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Nov 19 17:24:01 201513 // Update Count : 512 // Last Modified On : Sat Jul 22 09:23:52 2017 13 // Update Count : 6 14 14 // 15 15 16 #ifndef _BOX_H 17 #define _BOX_H 16 #pragma once 18 17 19 18 #include <list> … … 25 24 } // namespace GenPoly 26 25 27 #endif // _BOX_H28 29 26 // Local Variables: // 30 27 // tab-width: 4 // -
src/GenPoly/CopyParams.h
re0a653d r33218c6 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue May 19 07:34:25 201513 // Update Count : 112 // Last Modified On : Sat Jul 22 09:23:09 2017 13 // Update Count : 2 14 14 // 15 15 16 #ifndef _COPYPARAMS_H 17 #define _COPYPARAMS_H 16 #pragma once 18 17 19 18 #include "SynTree/SynTree.h" … … 24 23 } // namespace GenPoly 25 24 26 #endif // _COPYPARAMS_H27 28 25 // Local Variables: // 29 26 // tab-width: 4 // -
src/GenPoly/DeclMutator.h
re0a653d r33218c6 10 10 // Created On : Fri Nov 27 14:44:00 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue Jul 12 17:39:01 201613 // Update Count : 212 // Last Modified On : Sat Jul 22 09:21:12 2017 13 // Update Count : 4 14 14 // 15 15 16 #ifndef _DECLMUTATOR_H 17 #define _DECLMUTATOR_H 16 #pragma once 18 17 19 18 #include <list> … … 27 26 /// Mutates a list of declarations, providing a means of adding new declarations into the list 28 27 class DeclMutator : public Mutator { 29 public:28 public: 30 29 typedef Mutator Parent; 31 30 … … 50 49 /// Called on exit from a scope; overriders should call this as a super-class call 51 50 virtual void doEndScope(); 52 protected:51 protected: 53 52 /// Mutate a statement that forms its own scope 54 53 Statement* mutateStatement( Statement *stmt ); … … 59 58 /// Add a declaration to the list to be added after the current position 60 59 void addDeclarationAfter( Declaration* decl ); 61 private:60 private: 62 61 /// A stack of declarations to add before the current declaration or statement 63 62 std::vector< std::list< Declaration* > > declsToAdd; … … 67 66 } // namespace 68 67 69 #endif // _DECLMUTATOR_H70 71 68 // Local Variables: // 72 69 // tab-width: 4 // -
src/GenPoly/ErasableScopedMap.h
re0a653d r33218c6 9 9 // Author : Aaron B. Moss 10 10 // Created On : Wed Dec 2 11:37:00 2015 11 // Last Modified By : Aaron B. Moss 12 // Last Modified On : Wed Dec 2 11:37:00 2015 13 // Update Count : 1 14 // 15 16 #ifndef _ERASABLESCOPEDMAP_H 17 #define _ERASABLESCOPEDMAP_H 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jul 22 09:23:24 2017 13 // Update Count : 2 14 // 15 16 #pragma once 18 17 19 18 #include <cassert> … … 278 277 } // namespace GenPoly 279 278 280 #endif // _ERASABLESCOPEDMAP_H281 282 279 // Local Variables: // 283 280 // tab-width: 4 // -
src/GenPoly/FindFunction.h
re0a653d r33218c6 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue May 19 07:36:35 201513 // Update Count : 112 // Last Modified On : Sat Jul 22 09:23:36 2017 13 // Update Count : 2 14 14 // 15 15 16 #ifndef FINDFUNCTION_H 17 #define FINDFUNCTION_H 16 #pragma once 18 17 19 18 #include "SynTree/SynTree.h" … … 29 28 } // namespace GenPoly 30 29 31 #endif // FINDFUNCTION_H32 33 30 // Local Variables: // 34 31 // tab-width: 4 // -
src/GenPoly/GenPoly.h
re0a653d r33218c6 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Tue Nov 24 15:24:38 201513 // Update Count : 611 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jul 22 09:22:57 2017 13 // Update Count : 7 14 14 // 15 15 16 #ifndef GENPOLY_H 17 #define GENPOLY_H 16 #pragma once 18 17 19 18 #include <string> … … 111 110 } // namespace GenPoly 112 111 113 #endif // GENPOLY_H114 115 112 // Local Variables: // 116 113 // tab-width: 4 // -
src/GenPoly/InstantiateGeneric.h
re0a653d r33218c6 9 9 // Author : Aaron B. Moss 10 10 // Created On : Thu Aug 04 18:33:00 2016 11 // Last Modified By : Aaron B. Moss12 // Last Modified On : Thu Aug 04 18:33:00 201613 // Update Count : 111 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jul 22 09:22:42 2017 13 // Update Count : 2 14 14 // 15 15 16 #ifndef _INSTANTIATEGENERIC_H 17 #define _INSTANTIATEGENERIC_H 16 #pragma once 18 17 19 18 #include "SynTree/SynTree.h" … … 26 25 } // namespace GenPoly 27 26 28 #endif // _INSTANTIATEGENERIC_H29 30 27 // Local Variables: // 31 28 // tab-width: 4 // -
src/GenPoly/Lvalue.h
re0a653d r33218c6 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue May 19 07:42:09 201513 // Update Count : 112 // Last Modified On : Sat Jul 22 09:21:59 2017 13 // Update Count : 2 14 14 // 15 15 16 #ifndef _LVALUE_H 17 #define _LVALUE_H 16 #pragma once 18 17 19 18 #include <list> … … 26 25 } // namespace GenPoly 27 26 28 #endif // _LVALUE_H29 30 27 // Local Variables: // 31 28 // tab-width: 4 // -
src/GenPoly/PolyMutator.h
re0a653d r33218c6 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue Jul 12 17:39:41 201613 // Update Count : 612 // Last Modified On : Sat Jul 22 09:20:31 2017 13 // Update Count : 7 14 14 // 15 15 16 #ifndef _POLYMUTATOR_H 17 #define _POLYMUTATOR_H 16 #pragma once 18 17 19 18 #include <map> … … 66 65 } // namespace 67 66 68 #endif // _POLYMUTATOR_H69 70 67 // Local Variables: // 71 68 // tab-width: 4 // -
src/GenPoly/ScopedSet.h
re0a653d r33218c6 9 9 // Author : Aaron B. Moss 10 10 // Created On : Thu Dec 3 11:51:00 2015 11 // Last Modified By : Aaron B. Moss 12 // Last Modified On : Thu Dec 3 11:51:00 2015 13 // Update Count : 1 14 // 15 16 #ifndef _SCOPEDSET_H 17 #define _SCOPEDSET_H 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jul 22 09:22:17 2017 13 // Update Count : 2 14 // 15 16 #pragma once 18 17 19 18 #include <iterator> … … 247 246 } // namespace GenPoly 248 247 249 #endif // _SCOPEDSET_H250 251 248 // Local Variables: // 252 249 // tab-width: 4 // -
src/GenPoly/ScrubTyVars.h
re0a653d r33218c6 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue May 19 07:48:14 201513 // Update Count : 112 // Last Modified On : Sat Jul 22 09:21:47 2017 13 // Update Count : 2 14 14 // 15 15 16 #ifndef _SCRUBTYVARS_H 17 #define _SCRUBTYVARS_H 16 #pragma once 18 17 19 18 #include <string> … … 95 94 } // namespace GenPoly 96 95 97 #endif // _SCRUBTYVARS_H98 99 96 // Local Variables: // 100 97 // tab-width: 4 // -
src/GenPoly/Specialize.h
re0a653d r33218c6 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue May 19 07:53:58 201513 // Update Count : 112 // Last Modified On : Sat Jul 22 09:22:31 2017 13 // Update Count : 2 14 14 // 15 15 16 #ifndef _SPECIALIZE_H 17 #define _SPECIALIZE_H 16 #pragma once 18 17 19 18 #include <list> … … 26 25 } // namespace GenPoly 27 26 28 #endif // _SPECIALIZE_H29 30 27 // Local Variables: // 31 28 // tab-width: 4 // -
src/InitTweak/FixGlobalInit.h
re0a653d r33218c6 9 9 // Author : Rob Schluntz 10 10 // Created On : Mon May 04 15:14:56 2016 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Fri May 06 16:07:47 201613 // Update Count : 211 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jul 22 09:30:54 2017 13 // Update Count : 3 14 14 // 15 15 16 #ifndef FIX_GLOBAL_INIT_H 17 #define FIX_GLOBAL_INIT_H 16 #pragma once 18 17 19 18 #include <string> … … 34 33 } // namespace 35 34 36 #endif // GENPOLY_POLYMUTATOR_H37 38 35 // Local Variables: // 39 36 // tab-width: 4 // -
src/InitTweak/FixInit.h
re0a653d r33218c6 9 9 // Author : Rob Schluntz 10 10 // Created On : Wed Jan 13 16:29:30 2016 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Fri May 13 11:27:52 201613 // Update Count : 511 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jul 22 09:31:06 2017 13 // Update Count : 6 14 14 // 15 15 16 #ifndef FIX_INIT_H 17 #define FIX_INIT_H 16 #pragma once 18 17 19 18 #include <string> … … 30 29 } // namespace 31 30 32 #endif // GENPOLY_POLYMUTATOR_H33 34 31 // Local Variables: // 35 32 // tab-width: 4 // -
src/InitTweak/GenInit.h
re0a653d r33218c6 9 9 // Author : Rodolfo G. Esteves 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Fri May 13 11:27:19 201613 // Update Count : 311 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jul 22 09:31:19 2017 13 // Update Count : 4 14 14 // 15 15 16 #ifndef GEN_INIT_H 17 #define GEN_INIT_H 16 #pragma once 18 17 19 18 #include <string> … … 35 34 } // namespace 36 35 37 #endif // INITTWEAK_GENINIT_H38 39 36 // Local Variables: // 40 37 // tab-width: 4 // -
src/InitTweak/InitTweak.h
re0a653d r33218c6 9 9 // Author : Rob Schluntz 10 10 // Created On : Fri May 13 11:26:36 2016 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Fri May 13 11:35:36 201613 // Update Count : 311 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jul 22 09:30:33 2017 13 // Update Count : 4 14 14 // 15 15 16 #ifndef INIT_TWEAK_H 17 #define INIT_TWEAK_H 16 #pragma once 18 17 19 18 #include <string> … … 116 115 } // namespace 117 116 118 #endif // INITTWEAK_GENINIT_H119 120 117 // Local Variables: // 121 118 // tab-width: 4 // -
src/MakeLibCfa.h
re0a653d r33218c6 10 10 // Created On : Sat May 16 10:42:14 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat May 16 10:43:29 201513 // Update Count : 112 // Last Modified On : Sat Jul 22 09:31:35 2017 13 // Update Count : 2 14 14 // 15 15 16 #ifndef LIBCFA_MAKELIBCFA_H 17 #define LIBCFA_MAKELIBCFA_H 16 #pragma once 18 17 19 18 #include <list> // for list … … 25 24 } // namespace LibCfa 26 25 27 #endif // LIBCFA_MAKELIBCFA_H28 29 26 // Local Variables: // 30 27 // tab-width: 4 // -
src/Makefile.in
re0a653d r33218c6 216 216 SymTab/driver_cfa_cpp-TypeEquality.$(OBJEXT) \ 217 217 SymTab/driver_cfa_cpp-Autogen.$(OBJEXT) \ 218 SymTab/driver_cfa_cpp-TreeStruct.$(OBJEXT) \ 218 219 SynTree/driver_cfa_cpp-Type.$(OBJEXT) \ 219 220 SynTree/driver_cfa_cpp-VoidType.$(OBJEXT) \ … … 514 515 SymTab/Indexer.cc SymTab/Mangler.cc SymTab/Validate.cc \ 515 516 SymTab/FixFunction.cc SymTab/ImplementationType.cc \ 516 SymTab/TypeEquality.cc SymTab/Autogen.cc Sy nTree/Type.cc \517 SynTree/ VoidType.cc SynTree/BasicType.cc \517 SymTab/TypeEquality.cc SymTab/Autogen.cc SymTab/TreeStruct.cc \ 518 SynTree/Type.cc SynTree/VoidType.cc SynTree/BasicType.cc \ 518 519 SynTree/PointerType.cc SynTree/ArrayType.cc \ 519 520 SynTree/FunctionType.cc SynTree/ReferenceToType.cc \ … … 848 849 SymTab/driver_cfa_cpp-Autogen.$(OBJEXT): SymTab/$(am__dirstamp) \ 849 850 SymTab/$(DEPDIR)/$(am__dirstamp) 851 SymTab/driver_cfa_cpp-TreeStruct.$(OBJEXT): SymTab/$(am__dirstamp) \ 852 SymTab/$(DEPDIR)/$(am__dirstamp) 850 853 SynTree/$(am__dirstamp): 851 854 @$(MKDIR_P) SynTree … … 1033 1036 @AMDEP_TRUE@@am__include@ @am__quote@SymTab/$(DEPDIR)/driver_cfa_cpp-Indexer.Po@am__quote@ 1034 1037 @AMDEP_TRUE@@am__include@ @am__quote@SymTab/$(DEPDIR)/driver_cfa_cpp-Mangler.Po@am__quote@ 1038 @AMDEP_TRUE@@am__include@ @am__quote@SymTab/$(DEPDIR)/driver_cfa_cpp-TreeStruct.Po@am__quote@ 1035 1039 @AMDEP_TRUE@@am__include@ @am__quote@SymTab/$(DEPDIR)/driver_cfa_cpp-TypeEquality.Po@am__quote@ 1036 1040 @AMDEP_TRUE@@am__include@ @am__quote@SymTab/$(DEPDIR)/driver_cfa_cpp-Validate.Po@am__quote@ … … 2084 2088 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2085 2089 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/driver_cfa_cpp-Autogen.obj `if test -f 'SymTab/Autogen.cc'; then $(CYGPATH_W) 'SymTab/Autogen.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/Autogen.cc'; fi` 2090 2091 SymTab/driver_cfa_cpp-TreeStruct.o: SymTab/TreeStruct.cc 2092 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/driver_cfa_cpp-TreeStruct.o -MD -MP -MF SymTab/$(DEPDIR)/driver_cfa_cpp-TreeStruct.Tpo -c -o SymTab/driver_cfa_cpp-TreeStruct.o `test -f 'SymTab/TreeStruct.cc' || echo '$(srcdir)/'`SymTab/TreeStruct.cc 2093 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SymTab/$(DEPDIR)/driver_cfa_cpp-TreeStruct.Tpo SymTab/$(DEPDIR)/driver_cfa_cpp-TreeStruct.Po 2094 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SymTab/TreeStruct.cc' object='SymTab/driver_cfa_cpp-TreeStruct.o' libtool=no @AMDEPBACKSLASH@ 2095 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2096 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/driver_cfa_cpp-TreeStruct.o `test -f 'SymTab/TreeStruct.cc' || echo '$(srcdir)/'`SymTab/TreeStruct.cc 2097 2098 SymTab/driver_cfa_cpp-TreeStruct.obj: SymTab/TreeStruct.cc 2099 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/driver_cfa_cpp-TreeStruct.obj -MD -MP -MF SymTab/$(DEPDIR)/driver_cfa_cpp-TreeStruct.Tpo -c -o SymTab/driver_cfa_cpp-TreeStruct.obj `if test -f 'SymTab/TreeStruct.cc'; then $(CYGPATH_W) 'SymTab/TreeStruct.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/TreeStruct.cc'; fi` 2100 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) SymTab/$(DEPDIR)/driver_cfa_cpp-TreeStruct.Tpo SymTab/$(DEPDIR)/driver_cfa_cpp-TreeStruct.Po 2101 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='SymTab/TreeStruct.cc' object='SymTab/driver_cfa_cpp-TreeStruct.obj' libtool=no @AMDEPBACKSLASH@ 2102 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2103 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/driver_cfa_cpp-TreeStruct.obj `if test -f 'SymTab/TreeStruct.cc'; then $(CYGPATH_W) 'SymTab/TreeStruct.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/TreeStruct.cc'; fi` 2086 2104 2087 2105 SynTree/driver_cfa_cpp-Type.o: SynTree/Type.cc -
src/Parser/DeclarationNode.cc
re0a653d r33218c6 10 10 // Created On : Sat May 16 12:34:05 2015 11 11 // Last Modified By : Andrew Beach 12 // Last Modified On : Wed Jun 28 15:27:00 201713 // Update Count : 10 1912 // Last Modified On : Fri Jul 14 16:55:00 2017 13 // Update Count : 1020 14 14 // 15 15 … … 253 253 newnode->type->aggregate.fields = fields; 254 254 newnode->type->aggregate.body = body; 255 newnode->type->aggregate.tagged = false; 256 newnode->type->aggregate.parent = nullptr; 255 257 return newnode; 256 258 } // DeclarationNode::newAggregate … … 273 275 return newnode; 274 276 } // DeclarationNode::newEnumConstant 277 278 DeclarationNode * DeclarationNode::newTreeStruct( Aggregate kind, const string * name, const string * parent, ExpressionNode * actuals, DeclarationNode * fields, bool body ) { 279 assert( name ); 280 DeclarationNode * newnode = new DeclarationNode; 281 newnode->type = new TypeData( TypeData::Aggregate ); 282 newnode->type->aggregate.kind = kind; 283 newnode->type->aggregate.name = name; 284 newnode->type->aggregate.actuals = actuals; 285 newnode->type->aggregate.fields = fields; 286 newnode->type->aggregate.body = body; 287 newnode->type->aggregate.tagged = true; 288 newnode->type->aggregate.parent = parent; 289 return newnode; 290 } // DeclarationNode::newTreeStruct 275 291 276 292 DeclarationNode * DeclarationNode::newName( string * name ) { -
src/Parser/ExpressionNode.cc
re0a653d r33218c6 9 9 // Author : Rodolfo G. Esteves 10 10 // Created On : Sat May 16 13:17:07 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Wed Jun 28 21:08:15201713 // Update Count : 5 4211 // Last Modified By : Andrew Beach 12 // Last Modified On : Tus Jul 18 10:08:00 2017 13 // Update Count : 550 14 14 // 15 15 … … 46 46 // type. 47 47 48 Type::Qualifiers emptyQualifiers; // no qualifiers on constants48 Type::Qualifiers noQualifiers; // no qualifiers on constants 49 49 50 50 static inline bool checkU( char c ) { return c == 'u' || c == 'U'; } … … 118 118 } // if 119 119 120 Expression * ret = new ConstantExpr( Constant( new BasicType( emptyQualifiers, kind[Unsigned][size] ), str, v ) );120 Expression * ret = new ConstantExpr( Constant( new BasicType( noQualifiers, kind[Unsigned][size] ), str, v ) ); 121 121 delete &str; // created by lex 122 122 return ret; … … 153 153 } // if 154 154 155 Expression * ret = new ConstantExpr( Constant( new BasicType( emptyQualifiers, kind[complx][size] ), str, v ) );155 Expression * ret = new ConstantExpr( Constant( new BasicType( noQualifiers, kind[complx][size] ), str, v ) ); 156 156 delete &str; // created by lex 157 157 return ret; … … 159 159 160 160 Expression *build_constantChar( const std::string & str ) { 161 Expression * ret = new ConstantExpr( Constant( new BasicType( emptyQualifiers, BasicType::Char ), str, (unsigned long long int)(unsigned char)str[1] ) );161 Expression * ret = new ConstantExpr( Constant( new BasicType( noQualifiers, BasicType::Char ), str, (unsigned long long int)(unsigned char)str[1] ) ); 162 162 delete &str; // created by lex 163 163 return ret; … … 166 166 ConstantExpr *build_constantStr( const std::string & str ) { 167 167 // string should probably be a primitive type 168 ArrayType *at = new ArrayType( emptyQualifiers, new BasicType( Type::Qualifiers( Type::Const ), BasicType::Char ),168 ArrayType *at = new ArrayType( noQualifiers, new BasicType( Type::Qualifiers( Type::Const ), BasicType::Char ), 169 169 new ConstantExpr( Constant::from_ulong( str.size() + 1 - 2 ) ), // +1 for '\0' and -2 for '"' 170 170 false, false ); … … 176 176 177 177 Expression *build_constantZeroOne( const std::string & str ) { 178 Expression * ret = new ConstantExpr( Constant( str == "0" ? (Type *)new ZeroType( emptyQualifiers ) : (Type*)new OneType( emptyQualifiers ), str,178 Expression * ret = new ConstantExpr( Constant( str == "0" ? (Type *)new ZeroType( noQualifiers ) : (Type*)new OneType( noQualifiers ), str, 179 179 str == "0" ? (unsigned long long int)0 : (unsigned long long int)1 ) ); 180 180 delete &str; // created by lex … … 231 231 } 232 232 233 // Must harmonize with OperKinds. 233 234 static const char *OperName[] = { 234 235 // diadic 235 "SizeOf", "AlignOf", "OffsetOf", "?+?", "?-?", "? *?", "?/?", "?%?", "||", "&&",236 "SizeOf", "AlignOf", "OffsetOf", "?+?", "?-?", "?\\?", "?*?", "?/?", "?%?", "||", "&&", 236 237 "?|?", "?&?", "?^?", "Cast", "?<<?", "?>>?", "?<?", "?>?", "?<=?", "?>=?", "?==?", "?!=?", 237 "?=?", "?@=?", "? *=?", "?/=?", "?%=?", "?+=?", "?-=?", "?<<=?", "?>>=?", "?&=?", "?^=?", "?|=?",238 "?=?", "?@=?", "?\\=?", "?*=?", "?/=?", "?%=?", "?+=?", "?-=?", "?<<=?", "?>>=?", "?&=?", "?^=?", "?|=?", 238 239 "?[?]", "...", 239 240 // monadic -
src/Parser/LinkageSpec.h
re0a653d r33218c6 9 9 // Author : Rodolfo G. Esteves 10 10 // Created On : Sat May 16 13:24:28 2015 11 // Last Modified By : Andrew Beach12 // Last Modified On : Fri Jul 7 11:03:00201713 // Update Count : 1 311 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jul 22 09:32:16 2017 13 // Update Count : 14 14 14 // 15 15 16 #ifndef LINKAGESPEC_H 17 #define LINKAGESPEC_H 16 #pragma once 18 17 19 18 #include <string> … … 78 77 }; 79 78 80 #endif // LINKAGESPEC_H81 82 79 // Local Variables: // 83 80 // tab-width: 4 // -
src/Parser/ParseNode.h
re0a653d r33218c6 9 9 // Author : Rodolfo G. Esteves 10 10 // Created On : Sat May 16 13:28:16 2015 11 // Last Modified By : Andrew Beach12 // Last Modified On : Mon Jun 12 13:00:00 201713 // Update Count : 7 7911 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jul 22 09:32:30 2017 13 // Update Count : 786 14 14 // 15 15 16 #ifndef PARSENODE_H 17 #define PARSENODE_H 16 #pragma once 18 17 19 18 #include <string> … … 141 140 }; 142 141 142 // Must harmonize with OperName. 143 143 enum class OperKinds { 144 144 // diadic 145 SizeOf, AlignOf, OffsetOf, Plus, Minus, Mul, Div, Mod, Or, And,145 SizeOf, AlignOf, OffsetOf, Plus, Minus, Exp, Mul, Div, Mod, Or, And, 146 146 BitOr, BitAnd, Xor, Cast, LShift, RShift, LThan, GThan, LEThan, GEThan, Eq, Neq, 147 Assign, AtAssn, MulAssn, DivAssn, ModAssn, PlusAssn, MinusAssn, LSAssn, RSAssn, AndAssn, ERAssn, OrAssn,147 Assign, AtAssn, ExpAssn, MulAssn, DivAssn, ModAssn, PlusAssn, MinusAssn, LSAssn, RSAssn, AndAssn, ERAssn, OrAssn, 148 148 Index, Range, 149 149 // monadic … … 248 248 static DeclarationNode * newAsmStmt( StatementNode * stmt ); // gcc external asm statement 249 249 250 // Perhaps this would best fold into newAggragate. 251 static DeclarationNode * newTreeStruct( Aggregate kind, const std::string * name, const std::string * parent, ExpressionNode * actuals, DeclarationNode * fields, bool body ); 252 250 253 DeclarationNode(); 251 254 ~DeclarationNode(); … … 332 335 333 336 static UniqueName anonymous; 337 338 // Temp to test TreeStruct 339 const std::string * parent_name; 334 340 }; // DeclarationNode 335 341 … … 443 449 std::ostream & operator<<( std::ostream & out, const ParseNode * node ); 444 450 445 #endif // PARSENODE_H446 447 451 // Local Variables: // 448 452 // tab-width: 4 // -
src/Parser/ParserTypes.h
re0a653d r33218c6 10 10 // Created On : Sat Sep 22 08:58:10 2001 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Jun 28 22:10:17201713 // Update Count : 3 4912 // Last Modified On : Sat Jul 22 09:33:28 2017 13 // Update Count : 350 14 14 // 15 15 16 #ifndef PARSER_HH 17 #define PARSER_HH 16 #pragma once 18 17 19 18 int yylex(); … … 42 41 }; // Token 43 42 44 #endif // PARSER_HH45 46 43 // Local Variables: // 47 44 // tab-width: 4 // -
src/Parser/TypeData.cc
re0a653d r33218c6 10 10 // Created On : Sat May 16 15:12:51 2015 11 11 // Last Modified By : Andrew Beach 12 // Last Modified On : Wed Jun 28 15:28:00 201713 // Update Count : 56 412 // Last Modified On : Tus Jul 18 10:10:00 2017 13 // Update Count : 566 14 14 // 15 15 … … 63 63 aggregate.fields = nullptr; 64 64 aggregate.body = false; 65 aggregate.tagged = false; 66 aggregate.parent = nullptr; 65 67 break; 66 68 case AggregateInst: … … 121 123 delete aggregate.actuals; 122 124 delete aggregate.fields; 125 delete aggregate.parent; 123 126 // delete aggregate; 124 127 break; … … 192 195 newtype->aggregate.kind = aggregate.kind; 193 196 newtype->aggregate.body = aggregate.body; 197 newtype->aggregate.tagged = aggregate.tagged; 198 newtype->aggregate.parent = aggregate.parent ? new string( *aggregate.parent ) : nullptr; 194 199 break; 195 200 case AggregateInst: … … 449 454 case TypeData::Builtin: 450 455 if(td->builtintype == DeclarationNode::Zero) { 451 return new ZeroType( emptyQualifiers );456 return new ZeroType( noQualifiers ); 452 457 } 453 458 else if(td->builtintype == DeclarationNode::One) { 454 return new OneType( emptyQualifiers );459 return new OneType( noQualifiers ); 455 460 } 456 461 else { … … 619 624 switch ( td->aggregate.kind ) { 620 625 case DeclarationNode::Struct: 626 if ( td->aggregate.tagged ) { 627 at = new StructDecl( *td->aggregate.name, td->aggregate.parent, attributes, linkage ); 628 buildForall( td->aggregate.params, at->get_parameters() ); 629 break; 630 } 621 631 case DeclarationNode::Coroutine: 622 632 case DeclarationNode::Monitor: -
src/Parser/TypeData.h
re0a653d r33218c6 9 9 // Author : Rodolfo G. Esteves 10 10 // Created On : Sat May 16 15:18:36 2015 11 // Last Modified By : Andrew Beach12 // Last Modified On : Wed Jun 28 15:29:00201713 // Update Count : 18 611 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jul 22 09:32:47 2017 13 // Update Count : 188 14 14 // 15 15 16 #ifndef TYPEDATA_H 17 #define TYPEDATA_H 16 #pragma once 18 17 19 18 #include "ParseNode.h" … … 31 30 DeclarationNode * fields; 32 31 bool body; 32 33 bool tagged; 34 const std::string * parent; 33 35 }; 34 36 … … 113 115 void buildKRFunction( const TypeData::Function_t & function ); 114 116 115 #endif // TYPEDATA_H116 117 117 // Local Variables: // 118 118 // tab-width: 4 // -
src/Parser/TypedefTable.h
re0a653d r33218c6 10 10 // Created On : Sat May 16 15:24:36 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Jun 28 21:56:34 201713 // Update Count : 3 312 // Last Modified On : Sat Jul 22 09:33:14 2017 13 // Update Count : 34 14 14 // 15 15 16 #ifndef TYPEDEFTABLE_H 17 #define TYPEDEFTABLE_H 16 #pragma once 18 17 19 18 #include <map> … … 91 90 }; 92 91 93 #endif // TYPEDEFTABLE_H94 95 92 // Local Variables: // 96 93 // tab-width: 4 // -
src/Parser/lex.ll
re0a653d r33218c6 10 10 * Created On : Sat Sep 22 08:58:10 2001 11 11 * Last Modified By : Peter A. Buhr 12 * Last Modified On : Tue Jul 11 21:30:51201713 * Update Count : 5 3412 * Last Modified On : Mon Jul 24 08:27:23 2017 13 * Update Count : 545 14 14 */ 15 15 … … 125 125 op_unary {op_unary_only}|{op_unary_binary}|{op_unary_pre_post} 126 126 127 op_binary_only "/"|"%"|" ^"|"&"|"|"|"<"|">"|"="|"=="|"!="|"<<"|">>"|"<="|">="|"+="|"-="|"*="|"/="|"%="|"&="|"|="|"^="|"<<="|">>="127 op_binary_only "/"|"%"|"\\"|"^"|"&"|"|"|"<"|">"|"="|"=="|"!="|"<<"|">>"|"<="|">="|"+="|"-="|"*="|"/="|"%="|"\\="|"&="|"|="|"^="|"<<="|">>=" 128 128 op_binary_over {op_unary_binary}|{op_binary_only} 129 129 // op_binary_not_over "?"|"->"|"."|"&&"|"||"|"@=" … … 136 136 137 137 %% 138 138 /* line directives */ 139 139 ^{h_white}*"#"{h_white}*[0-9]+{h_white}*["][^"\n]+["].*"\n" { 140 140 /* " stop highlighting */ … … 232 232 int { KEYWORD_RETURN(INT); } 233 233 __int128 { KEYWORD_RETURN(INT); } // GCC 234 __int128_t { KEYWORD_RETURN(INT); } // GCC 234 235 __label__ { KEYWORD_RETURN(LABEL); } // GCC 235 236 long { KEYWORD_RETURN(LONG); } … … 266 267 __typeof { KEYWORD_RETURN(TYPEOF); } // GCC 267 268 __typeof__ { KEYWORD_RETURN(TYPEOF); } // GCC 269 __uint128_t { KEYWORD_RETURN(INT); } // GCC 268 270 union { KEYWORD_RETURN(UNION); } 269 271 unsigned { KEYWORD_RETURN(UNSIGNED); } 270 272 __builtin_va_list { KEYWORD_RETURN(VALIST); } // GCC 273 virtual { KEYWORD_RETURN(VIRTUAL); } // CFA 271 274 void { KEYWORD_RETURN(VOID); } 272 275 volatile { KEYWORD_RETURN(VOLATILE); } … … 274 277 __volatile__ { KEYWORD_RETURN(VOLATILE); } // GCC 275 278 while { KEYWORD_RETURN(WHILE); } 279 with { KEYWORD_RETURN(WITH); } // CFA 276 280 zero_t { NUMERIC_RETURN(ZERO_T); } // CFA 277 281 … … 336 340 "-" { ASCIIOP_RETURN(); } 337 341 "*" { ASCIIOP_RETURN(); } 342 "\\" { ASCIIOP_RETURN(); } // CFA, exponentiation 338 343 "/" { ASCIIOP_RETURN(); } 339 344 "%" { ASCIIOP_RETURN(); } … … 360 365 "+=" { NAMEDOP_RETURN(PLUSassign); } 361 366 "-=" { NAMEDOP_RETURN(MINUSassign); } 367 "\\=" { NAMEDOP_RETURN(EXPassign); } // CFA, exponentiation 362 368 "*=" { NAMEDOP_RETURN(MULTassign); } 363 369 "/=" { NAMEDOP_RETURN(DIVassign); } -
src/Parser/parser.yy
re0a653d r33218c6 9 9 // Author : Peter A. Buhr 10 10 // Created On : Sat Sep 1 20:22:55 2001 11 // Last Modified By : Andrew Beach12 // Last Modified On : Tus Jul 11 13:39:00201713 // Update Count : 24 1611 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Jul 24 09:01:14 2017 13 // Update Count : 2463 14 14 // 15 15 … … 118 118 %token RESTRICT // C99 119 119 %token ATOMIC // C11 120 %token FORALL LVALUE MUTEX // CFA 121 %token VOID CHAR SHORT INT LONG FLOAT DOUBLE SIGNED UNSIGNED ZERO_T ONE_T 120 %token FORALL LVALUE MUTEX VIRTUAL // CFA 121 %token VOID CHAR SHORT INT LONG FLOAT DOUBLE SIGNED UNSIGNED 122 %token BOOL COMPLEX IMAGINARY // C99 123 %token ZERO_T ONE_T // CFA 122 124 %token VALIST // GCC 123 %token BOOL COMPLEX IMAGINARY // C99124 125 %token TYPEOF LABEL // GCC 125 126 %token ENUM STRUCT UNION … … 129 130 %token ATTRIBUTE EXTENSION // GCC 130 131 %token IF ELSE SWITCH CASE DEFAULT DO WHILE FOR BREAK CONTINUE GOTO RETURN 131 %token CHOOSE DISABLE ENABLE FALLTHRU TRY CATCH CATCHRESUME FINALLY THROW THROWRESUME AT // CFA132 %token CHOOSE DISABLE ENABLE FALLTHRU TRY CATCH CATCHRESUME FINALLY THROW THROWRESUME AT WITH // CFA 132 133 %token ASM // C99, extension ISO/IEC 9899:1999 Section J.5.10(1) 133 134 %token ALIGNAS ALIGNOF GENERIC STATICASSERT // C11 … … 151 152 %token ELLIPSIS // ... 152 153 153 %token MULTassign DIVassign MODassign // *= /= %=/154 %token EXPassign MULTassign DIVassign MODassign // \= *= /= %= 154 155 %token PLUSassign MINUSassign // += -= 155 156 %token LSassign RSassign // <<= >>= … … 168 169 %type<op> ptrref_operator unary_operator assignment_operator 169 170 %type<en> primary_expression postfix_expression unary_expression 170 %type<en> cast_expression multiplicative_expression additive_expression shift_expression 171 %type<en> relational_expression equality_expression AND_expression exclusive_OR_expression 172 %type<en> inclusive_OR_expression logical_AND_expression logical_OR_expression conditional_expression 173 %type<en> constant_expression assignment_expression assignment_expression_opt 171 %type<en> cast_expression exponential_expression multiplicative_expression additive_expression 172 %type<en> shift_expression relational_expression equality_expression 173 %type<en> AND_expression exclusive_OR_expression inclusive_OR_expression 174 %type<en> logical_AND_expression logical_OR_expression 175 %type<en> conditional_expression constant_expression assignment_expression assignment_expression_opt 174 176 %type<en> comma_expression comma_expression_opt 175 %type<en> argument_expression_list argument_expression assignment_opt177 %type<en> argument_expression_list argument_expression default_initialize_opt 176 178 %type<fctl> for_control_expression 177 179 %type<en> subrange … … 184 186 // statements 185 187 %type<sn> labeled_statement compound_statement expression_statement selection_statement 186 %type<sn> iteration_statement jump_statement exception_statement asm_statement 188 %type<sn> iteration_statement jump_statement 189 %type<sn> with_statement exception_statement asm_statement 187 190 %type<sn> fall_through_opt fall_through 188 191 %type<sn> statement statement_list 189 192 %type<sn> block_item_list block_item 190 %type<sn> case_clause193 %type<sn> with_clause_opt 191 194 %type<en> case_value 192 %type<sn> case_ value_list case_label case_label_list195 %type<sn> case_clause case_value_list case_label case_label_list 193 196 %type<sn> switch_clause_list_opt switch_clause_list choose_clause_list_opt choose_clause_list 194 197 %type<sn> /* handler_list */ handler_clause finally_clause … … 568 571 | '(' type_no_function ')' cast_expression 569 572 { $$ = new ExpressionNode( build_cast( $2, $4 ) ); } 573 // VIRTUAL cannot be opt because of look ahead issues 574 | '(' VIRTUAL ')' cast_expression 575 { $$ = new ExpressionNode( build_cast( nullptr, $4 ) ); } 576 | '(' VIRTUAL type_no_function ')' cast_expression 577 { $$ = new ExpressionNode( build_cast( $3, $5 ) ); } 570 578 // | '(' type_no_function ')' tuple 571 579 // { $$ = new ExpressionNode( build_cast( $2, $4 ) ); } 572 580 ; 573 581 582 exponential_expression: 583 cast_expression 584 | exponential_expression '\\' cast_expression 585 { $$ = new ExpressionNode( build_binary_val( OperKinds::Exp, $1, $3 ) ); } 586 ; 587 574 588 multiplicative_expression: 575 cast_expression576 | multiplicative_expression '*' cast_expression589 exponential_expression 590 | multiplicative_expression '*' exponential_expression 577 591 { $$ = new ExpressionNode( build_binary_val( OperKinds::Mul, $1, $3 ) ); } 578 | multiplicative_expression '/' cast_expression592 | multiplicative_expression '/' exponential_expression 579 593 { $$ = new ExpressionNode( build_binary_val( OperKinds::Div, $1, $3 ) ); } 580 | multiplicative_expression '%' cast_expression594 | multiplicative_expression '%' exponential_expression 581 595 { $$ = new ExpressionNode( build_binary_val( OperKinds::Mod, $1, $3 ) ); } 582 596 ; … … 677 691 '=' { $$ = OperKinds::Assign; } 678 692 | ATassign { $$ = OperKinds::AtAssn; } 693 | EXPassign { $$ = OperKinds::ExpAssn; } 679 694 | MULTassign { $$ = OperKinds::MulAssn; } 680 695 | DIVassign { $$ = OperKinds::DivAssn; } … … 729 744 | iteration_statement 730 745 | jump_statement 746 | with_statement 731 747 | exception_statement 732 748 | asm_statement … … 936 952 ; 937 953 954 with_statement: 955 WITH '(' tuple_expression_list ')' compound_statement 956 { $$ = (StatementNode *)0; } // FIX ME 957 ; 958 938 959 exception_statement: 939 960 TRY compound_statement handler_clause … … 965 986 { $$ = (StatementNode *)$1->set_last( new StatementNode( build_catch( $2, nullptr, new ExpressionNode( build_constantInteger( *$6 ) ), $9 ) ) ); } 966 987 967 | handler_key '(' push push exception_declaration pop ')' compound_statement pop 968 { $$ = new StatementNode( build_catch( $1, $5, nullptr, $8 ) ); } 969 | handler_clause handler_key '(' push push exception_declaration pop ')' compound_statement pop 970 { $$ = (StatementNode *)$1->set_last( new StatementNode( build_catch( $2, $6, nullptr, $9 ) ) ); } 988 | handler_key '(' push push exception_declaration pop handler_predicate_opt ')' compound_statement pop 989 { $$ = new StatementNode( build_catch( $1, $5, nullptr, $9 ) ); } 990 | handler_clause handler_key '(' push push exception_declaration pop handler_predicate_opt ')' compound_statement pop 991 { $$ = (StatementNode *)$1->set_last( new StatementNode( build_catch( $2, $6, nullptr, $10 ) ) ); } 992 ; 993 994 handler_predicate_opt: 995 //empty 996 | ';' conditional_expression 971 997 ; 972 998 … … 1495 1521 | IMAGINARY // C99 1496 1522 { $$ = DeclarationNode::newComplexType( DeclarationNode::Imaginary ); } 1497 | VALIST // GCC, __builtin_va_list1498 { $$ = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); }1499 1523 | ZERO_T 1500 1524 { $$ = DeclarationNode::newBuiltinType( DeclarationNode::Zero ); } 1501 1525 | ONE_T 1502 1526 { $$ = DeclarationNode::newBuiltinType( DeclarationNode::One ); } 1527 | VALIST // GCC, __builtin_va_list 1528 { $$ = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); } 1503 1529 ; 1504 1530 … … 1660 1686 | aggregate_key attribute_list_opt typegen_name // CFA 1661 1687 { $$ = $3->addQualifiers( $2 ); } 1688 1689 // Temp, testing TreeStruct 1690 | STRUCT TRY attribute_list_opt no_attr_identifier_or_type_name 1691 { 1692 typedefTable.makeTypedef( *$4 ); // create typedef 1693 if ( forall ) typedefTable.changeKind( *$4, TypedefTable::TG ); // $ 1694 forall = false; // reset 1695 } 1696 '{' field_declaration_list '}' 1697 { 1698 $$ = DeclarationNode::newTreeStruct( DeclarationNode::Struct, 1699 $4, nullptr, nullptr, $7, true )->addQualifiers( $3 ); 1700 } 1701 | STRUCT TRY attribute_list_opt no_attr_identifier_or_type_name TYPEDEFname 1702 { 1703 typedefTable.makeTypedef( *$4 ); // create typedef 1704 if ( forall ) typedefTable.changeKind( *$4, TypedefTable::TG ); // $ 1705 forall = false; // reset 1706 } 1707 '{' field_declaration_list '}' 1708 { 1709 $$ = DeclarationNode::newTreeStruct( DeclarationNode::Struct, 1710 $4, $5, nullptr, $8, true )->addQualifiers( $3 ); 1711 } 1662 1712 ; 1663 1713 … … 1838 1888 cfa_parameter_declaration: // CFA, new & old style parameter declaration 1839 1889 parameter_declaration 1840 | cfa_identifier_parameter_declarator_no_tuple identifier_or_type_name assignment_opt1890 | cfa_identifier_parameter_declarator_no_tuple identifier_or_type_name default_initialize_opt 1841 1891 { $$ = $1->addName( $2 ); } 1842 | cfa_abstract_tuple identifier_or_type_name assignment_opt1892 | cfa_abstract_tuple identifier_or_type_name default_initialize_opt 1843 1893 // To obtain LR(1), these rules must be duplicated here (see cfa_abstract_declarator). 1844 1894 { $$ = $1->addName( $2 ); } 1845 | type_qualifier_list cfa_abstract_tuple identifier_or_type_name assignment_opt1895 | type_qualifier_list cfa_abstract_tuple identifier_or_type_name default_initialize_opt 1846 1896 { $$ = $2->addName( $3 )->addQualifiers( $1 ); } 1847 1897 | cfa_function_specifier … … 1860 1910 parameter_declaration: 1861 1911 // No SUE declaration in parameter list. 1862 declaration_specifier_nobody identifier_parameter_declarator assignment_opt1912 declaration_specifier_nobody identifier_parameter_declarator default_initialize_opt 1863 1913 { 1864 1914 typedefTable.addToEnclosingScope( TypedefTable::ID ); 1865 1915 $$ = $2->addType( $1 )->addInitializer( $3 ? new InitializerNode( $3 ) : nullptr ); 1866 1916 } 1867 | declaration_specifier_nobody type_parameter_redeclarator assignment_opt1917 | declaration_specifier_nobody type_parameter_redeclarator default_initialize_opt 1868 1918 { 1869 1919 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 1873 1923 1874 1924 abstract_parameter_declaration: 1875 declaration_specifier_nobody assignment_opt1925 declaration_specifier_nobody default_initialize_opt 1876 1926 { $$ = $1->addInitializer( $2 ? new InitializerNode( $2 ) : nullptr ); } 1877 | declaration_specifier_nobody abstract_parameter_declarator assignment_opt1927 | declaration_specifier_nobody abstract_parameter_declarator default_initialize_opt 1878 1928 { $$ = $2->addType( $1 )->addInitializer( $3 ? new InitializerNode( $3 ) : nullptr ); } 1879 1929 ; … … 2212 2262 ; 2213 2263 2264 with_clause_opt: 2265 // empty 2266 { $$ = (StatementNode *)0; } // FIX ME 2267 | WITH '(' tuple_expression_list ')' 2268 { $$ = (StatementNode *)0; } // FIX ME 2269 ; 2270 2214 2271 function_definition: 2215 cfa_function_declaration compound_statement// CFA2272 cfa_function_declaration with_clause_opt compound_statement // CFA 2216 2273 { 2217 2274 typedefTable.addToEnclosingScope( TypedefTable::ID ); 2218 2275 typedefTable.leaveScope(); 2219 $$ = $1->addFunctionBody( $ 2);2220 } 2221 | declaration_specifier function_declarator compound_statement2276 $$ = $1->addFunctionBody( $3 ); 2277 } 2278 | declaration_specifier function_declarator with_clause_opt compound_statement 2222 2279 { 2223 2280 typedefTable.addToEnclosingScope( TypedefTable::ID ); 2224 2281 typedefTable.leaveScope(); 2225 $$ = $2->addFunctionBody( $ 3)->addType( $1 );2226 } 2227 | type_qualifier_list function_declarator compound_statement2282 $$ = $2->addFunctionBody( $4 )->addType( $1 ); 2283 } 2284 | type_qualifier_list function_declarator with_clause_opt compound_statement 2228 2285 { 2229 2286 typedefTable.addToEnclosingScope( TypedefTable::ID ); 2230 2287 typedefTable.leaveScope(); 2231 $$ = $2->addFunctionBody( $ 3)->addQualifiers( $1 );2232 } 2233 | declaration_qualifier_list function_declarator compound_statement2288 $$ = $2->addFunctionBody( $4 )->addQualifiers( $1 ); 2289 } 2290 | declaration_qualifier_list function_declarator with_clause_opt compound_statement 2234 2291 { 2235 2292 typedefTable.addToEnclosingScope( TypedefTable::ID ); 2236 2293 typedefTable.leaveScope(); 2237 $$ = $2->addFunctionBody( $ 3)->addQualifiers( $1 );2238 } 2239 | declaration_qualifier_list type_qualifier_list function_declarator compound_statement2294 $$ = $2->addFunctionBody( $4 )->addQualifiers( $1 ); 2295 } 2296 | declaration_qualifier_list type_qualifier_list function_declarator with_clause_opt compound_statement 2240 2297 { 2241 2298 typedefTable.addToEnclosingScope( TypedefTable::ID ); 2242 2299 typedefTable.leaveScope(); 2243 $$ = $3->addFunctionBody( $ 4)->addQualifiers( $2 )->addQualifiers( $1 );2300 $$ = $3->addFunctionBody( $5 )->addQualifiers( $2 )->addQualifiers( $1 ); 2244 2301 } 2245 2302 2246 2303 // Old-style K&R function definition, OBSOLESCENT (see 4) 2247 | declaration_specifier KR_function_declarator push KR_declaration_list_opt compound_statement2304 | declaration_specifier KR_function_declarator push KR_declaration_list_opt with_clause_opt compound_statement 2248 2305 { 2249 2306 typedefTable.addToEnclosingScope( TypedefTable::ID ); 2250 2307 typedefTable.leaveScope(); 2251 $$ = $2->addOldDeclList( $4 )->addFunctionBody( $ 5)->addType( $1 );2252 } 2253 | type_qualifier_list KR_function_declarator push KR_declaration_list_opt compound_statement2308 $$ = $2->addOldDeclList( $4 )->addFunctionBody( $6 )->addType( $1 ); 2309 } 2310 | type_qualifier_list KR_function_declarator push KR_declaration_list_opt with_clause_opt compound_statement 2254 2311 { 2255 2312 typedefTable.addToEnclosingScope( TypedefTable::ID ); 2256 2313 typedefTable.leaveScope(); 2257 $$ = $2->addOldDeclList( $4 )->addFunctionBody( $ 5)->addQualifiers( $1 );2314 $$ = $2->addOldDeclList( $4 )->addFunctionBody( $6 )->addQualifiers( $1 ); 2258 2315 } 2259 2316 2260 2317 // Old-style K&R function definition with "implicit int" type_specifier, OBSOLESCENT (see 4) 2261 | declaration_qualifier_list KR_function_declarator push KR_declaration_list_opt compound_statement2318 | declaration_qualifier_list KR_function_declarator push KR_declaration_list_opt with_clause_opt compound_statement 2262 2319 { 2263 2320 typedefTable.addToEnclosingScope( TypedefTable::ID ); 2264 2321 typedefTable.leaveScope(); 2265 $$ = $2->addOldDeclList( $4 )->addFunctionBody( $ 5)->addQualifiers( $1 );2266 } 2267 | declaration_qualifier_list type_qualifier_list KR_function_declarator push KR_declaration_list_opt compound_statement2322 $$ = $2->addOldDeclList( $4 )->addFunctionBody( $6 )->addQualifiers( $1 ); 2323 } 2324 | declaration_qualifier_list type_qualifier_list KR_function_declarator push KR_declaration_list_opt with_clause_opt compound_statement 2268 2325 { 2269 2326 typedefTable.addToEnclosingScope( TypedefTable::ID ); 2270 2327 typedefTable.leaveScope(); 2271 $$ = $3->addOldDeclList( $5 )->addFunctionBody( $ 6)->addQualifiers( $2 )->addQualifiers( $1 );2328 $$ = $3->addOldDeclList( $5 )->addFunctionBody( $7 )->addQualifiers( $2 )->addQualifiers( $1 ); 2272 2329 } 2273 2330 ; … … 3031 3088 ; 3032 3089 3033 assignment_opt:3090 default_initialize_opt: 3034 3091 // empty 3035 3092 { $$ = nullptr; } -
src/Parser/parserutility.cc
re0a653d r33218c6 9 9 // Author : Rodolfo G. Esteves 10 10 // Created On : Sat May 16 15:30:39 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Wed Jun 28 22:11:32201713 // Update Count : 711 // Last Modified By : Andrew Beach 12 // Last Modified On : Tus Jul 18 10:12:00 2017 13 // Update Count : 8 14 14 // 15 15 … … 26 26 UntypedExpr *comparison = new UntypedExpr( new NameExpr( "?!=?" ) ); 27 27 comparison->get_args().push_back( orig ); 28 comparison->get_args().push_back( new ConstantExpr( Constant( new ZeroType( emptyQualifiers ), "0", (unsigned long long int)0 ) ) );28 comparison->get_args().push_back( new ConstantExpr( Constant( new ZeroType( noQualifiers ), "0", (unsigned long long int)0 ) ) ); 29 29 return new CastExpr( comparison, new BasicType( Type::Qualifiers(), BasicType::SignedInt ) ); 30 30 } -
src/Parser/parserutility.h
re0a653d r33218c6 10 10 // Created On : Sat May 16 15:31:46 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Jun 28 22:11:40201713 // Update Count : 312 // Last Modified On : Sat Jul 22 09:32:58 2017 13 // Update Count : 4 14 14 // 15 15 16 #ifndef PARSEUTILITY_H 17 #define PARSEUTILITY_H 16 #pragma once 18 17 19 18 #include "SynTree/SynTree.h" 20 19 21 20 Expression *notZeroExpr( Expression *orig ); 22 23 #endif // PARSEUTILITY_H24 21 25 22 // Local Variables: // -
src/ResolvExpr/Alternative.h
re0a653d r33218c6 10 10 // Created On : Sat May 16 23:45:43 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat May 16 23:54:39 201513 // Update Count : 212 // Last Modified On : Sat Jul 22 09:36:36 2017 13 // Update Count : 3 14 14 // 15 15 16 #ifndef ALTERNATIVE_H 17 #define ALTERNATIVE_H 16 #pragma once 18 17 19 18 #include <list> … … 47 46 } // namespace ResolvExpr 48 47 49 #endif // ALTERNATIVE_H50 51 48 // Local Variables: // 52 49 // tab-width: 4 // -
src/ResolvExpr/AlternativeFinder.h
re0a653d r33218c6 9 9 // Author : Richard C. Bilson 10 10 // Created On : Sat May 16 23:56:12 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Tue Apr 19 11:44:53 201613 // Update Count : 211 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jul 22 09:35:32 2017 13 // Update Count : 3 14 14 // 15 15 16 #ifndef ALTERNATIVEFINDER_H 17 #define ALTERNATIVEFINDER_H 16 #pragma once 18 17 19 18 #include <set> … … 132 131 } // namespace ResolvExpr 133 132 134 #endif // ALTERNATIVEFINDER_H135 136 133 // Local Variables: // 137 134 // tab-width: 4 // -
src/ResolvExpr/AlternativePrinter.h
re0a653d r33218c6 10 10 // Created On : Sun May 17 06:55:43 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : S un May 17 06:57:12 201513 // Update Count : 312 // Last Modified On : Sat Jul 22 09:37:09 2017 13 // Update Count : 4 14 14 // 15 15 16 #ifndef ALTERNATIVEPRINTER_H 17 #define ALTERNATIVEPRINTER_H 16 #pragma once 18 17 19 18 #include <iostream> … … 34 33 } // namespace ResolvExpr 35 34 36 #endif // ALTERNATIVEPRINTER_H37 38 35 // Local Variables: // 39 36 // tab-width: 4 // -
src/ResolvExpr/ConversionCost.h
re0a653d r33218c6 10 10 // Created On : Sun May 17 09:37:28 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Mar 2 17:35:56 201613 // Update Count : 312 // Last Modified On : Sat Jul 22 09:38:24 2017 13 // Update Count : 4 14 14 // 15 15 16 #ifndef CONVERSIONCOST_H 17 #define CONVERSIONCOST_H 16 #pragma once 18 17 19 18 #include "SynTree/Visitor.h" … … 51 50 } // namespace ResolvExpr 52 51 53 #endif // CONVERSIONCOST_H */54 55 52 // Local Variables: // 56 53 // tab-width: 4 // -
src/ResolvExpr/Cost.h
re0a653d r33218c6 9 9 // Author : Richard C. Bilson 10 10 // Created On : Sun May 17 09:39:50 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Wed Jul 22 16:43:10 201513 // Update Count : 411 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jul 22 09:35:55 2017 13 // Update Count : 5 14 14 // 15 15 16 #ifndef COST_H 17 #define COST_H 16 #pragma once 18 17 19 18 #include <iostream> … … 114 113 } // namespace ResolvExpr 115 114 116 #endif // COST_H117 118 115 // Local Variables: // 119 116 // tab-width: 4 // -
src/ResolvExpr/CurrentObject.h
re0a653d r33218c6 9 9 // Author : Rob Schluntz 10 10 // Created On : Thu Jun 8 11:07:25 2017 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Thu Jun 8 11:07:41201713 // Update Count : 211 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jul 22 09:36:48 2017 13 // Update Count : 3 14 14 // 15 15 16 #ifndef CURRENT_OBJECT_H 17 #define CURRENT_OBJECT_H 16 #pragma once 18 17 19 18 #include <stack> … … 50 49 } // namespace ResolvExpr 51 50 52 #endif // CURRENT_OBJECT_H53 54 51 // Local Variables: // 55 52 // tab-width: 4 // -
src/ResolvExpr/FindOpenVars.h
re0a653d r33218c6 10 10 // Created On : Sun May 17 09:46:04 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : S un May 17 09:47:20 201513 // Update Count : 212 // Last Modified On : Sat Jul 22 09:35:18 2017 13 // Update Count : 3 14 14 // 15 15 16 #ifndef FINDOPENVARS_H 17 #define FINDOPENVARS_H 16 #pragma once 18 17 19 18 #include "Unify.h" … … 25 24 } // namespace ResolvExpr 26 25 27 #endif // FINDOPENVARS_H28 29 26 // Local Variables: // 30 27 // tab-width: 4 // -
src/ResolvExpr/RenameVars.h
re0a653d r33218c6 10 10 // Created On : Sun May 17 12:10:28 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Mar 2 17:36:39 201613 // Update Count : 312 // Last Modified On : Sat Jul 22 09:33:54 2017 13 // Update Count : 4 14 14 // 15 15 16 #ifndef RESOLVEXPR_RENAMEVARS_H 17 #define RESOLVEXPR_RENAMEVARS_H 16 #pragma once 18 17 19 18 #include <list> … … 56 55 } // namespace ResolvExpr 57 56 58 #endif // RENAMEVARS_H59 60 57 // Local Variables: // 61 58 // tab-width: 4 // -
src/ResolvExpr/ResolveTypeof.h
re0a653d r33218c6 10 10 // Created On : Sun May 17 12:14:53 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : S un May 17 12:16:29 201513 // Update Count : 212 // Last Modified On : Sat Jul 22 09:38:35 2017 13 // Update Count : 3 14 14 // 15 15 16 #ifndef RESOLVETYPEOF_H 17 #define RESOLVETYPEOF_H 16 #pragma once 18 17 19 18 #include "SynTree/SynTree.h" … … 24 23 } // namespace ResolvExpr 25 24 26 #endif // RESOLVETYPEOF_H27 28 25 // Local Variables: // 29 26 // tab-width: 4 // -
src/ResolvExpr/Resolver.h
re0a653d r33218c6 9 9 // Author : Richard C. Bilson 10 10 // Created On : Sun May 17 12:18:34 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Thu Apr 14 15:06:53 201613 // Update Count : 211 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jul 22 09:36:57 2017 13 // Update Count : 3 14 14 // 15 15 16 #ifndef RESOLVER_H 17 #define RESOLVER_H 16 #pragma once 18 17 19 18 #include "SynTree/SynTree.h" … … 29 28 } // namespace ResolvExpr 30 29 31 #endif // RESOLVER_H32 33 30 // Local Variables: // 34 31 // tab-width: 4 // -
src/ResolvExpr/TypeEnvironment.h
re0a653d r33218c6 10 10 // Created On : Sun May 17 12:24:58 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : S un May 17 12:26:52 201513 // Update Count : 212 // Last Modified On : Sat Jul 22 09:35:45 2017 13 // Update Count : 3 14 14 // 15 15 16 #ifndef TYPEENVIRONMENT_H 17 #define TYPEENVIRONMENT_H 16 #pragma once 18 17 19 18 #include <string> … … 99 98 } // namespace ResolvExpr 100 99 101 #endif // TYPEENVIRONMENT_H */102 103 100 // Local Variables: // 104 101 // tab-width: 4 // -
src/ResolvExpr/TypeMap.h
re0a653d r33218c6 9 9 // Author : Aaron B. Moss 10 10 // Created On : Fri Feb 19 13:55:00 2016 11 // Last Modified By : Aaron B. Moss 12 // Last Modified On : Fri Feb 19 13:55:00 2016 13 // Update Count : 1 14 // 15 16 #ifndef _TYPEMAP_H 17 #define _TYPEMAP_H 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jul 22 09:37:19 2017 13 // Update Count : 2 14 // 15 16 #pragma once 18 17 19 18 #include <map> … … 204 203 } // namespace ResolvExpr 205 204 206 #endif // _TYPEMAP_H207 208 205 // Local Variables: // 209 206 // tab-width: 4 // -
src/ResolvExpr/Unify.h
re0a653d r33218c6 10 10 // Created On : Sun May 17 13:09:04 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sun May 17 13:10:34 201513 // Update Count : 212 // Last Modified On : Fri Jul 21 23:09:34 2017 13 // Update Count : 3 14 14 // 15 15 16 #ifndef UNIFY_H 17 #define UNIFY_H 16 #pragma once 18 17 19 18 #include <map> … … 72 71 } // namespace ResolvExpr 73 72 74 #endif // UNIFY_H75 76 73 // Local Variables: // 77 74 // tab-width: 4 // -
src/ResolvExpr/typeops.h
re0a653d r33218c6 10 10 // Created On : Sun May 17 07:28:22 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : S un May 17 07:33:11 201513 // Update Count : 212 // Last Modified On : Sat Jul 22 09:36:18 2017 13 // Update Count : 3 14 14 // 15 15 16 #ifndef TYPEOPS_H 17 #define TYPEOPS_H 16 #pragma once 18 17 19 18 #include "SynTree/SynTree.h" … … 157 156 } // namespace ResolvExpr 158 157 159 #endif // TYPEOPS_H160 161 158 // Local Variables: // 162 159 // tab-width: 4 // -
src/SymTab/Autogen.cc
re0a653d r33218c6 10 10 // Created On : Thu Mar 03 15:45:56 2016 11 11 // Last Modified By : Andrew Beach 12 // Last Modified On : Wed Jun 28 15:30:00 201713 // Update Count : 6 112 // Last Modified On : Fri Jul 14 16:41:00 2017 13 // Update Count : 62 14 14 // 15 15 #include "Autogen.h" … … 407 407 void makeStructFunctions( StructDecl *aggregateDecl, StructInstType *refType, unsigned int functionNesting, std::list< Declaration * > & declsToAdd, const std::vector< FuncData > & data ) { 408 408 // Builtins do not use autogeneration. 409 if ( aggregateDecl->get_linkage() == LinkageSpec::Builtin ||409 if ( aggregateDecl->get_linkage() == LinkageSpec::BuiltinCFA || 410 410 aggregateDecl->get_linkage() == LinkageSpec::BuiltinC ) { 411 411 return; -
src/SymTab/Autogen.h
re0a653d r33218c6 10 10 // Created On : Sun May 17 21:53:34 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Jun 21 17:25:26201713 // Update Count : 1 412 // Last Modified On : Sat Jul 22 09:50:25 2017 13 // Update Count : 15 14 14 // 15 15 16 #ifndef AUTOGEN_H 17 #define AUTOGEN_H 16 #pragma once 18 17 19 18 #include <cassert> // for assert … … 183 182 } 184 183 } // namespace SymTab 185 #endif // AUTOGEN_H 184 185 // Local Variables: // 186 // tab-width: 4 // 187 // mode: c++ // 188 // compile-command: "make install" // 189 // End: // 190 -
src/SymTab/FixFunction.h
re0a653d r33218c6 10 10 // Created On : Sun May 17 17:02:08 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Mar 2 17:34:06 201613 // Update Count : 312 // Last Modified On : Sat Jul 22 09:45:55 2017 13 // Update Count : 4 14 14 // 15 15 16 #ifndef FIXFUNCTION_H 17 #define FIXFUNCTION_H 16 #pragma once 18 17 19 18 #include "SynTree/Mutator.h" // for Mutator … … 50 49 } // namespace SymTab 51 50 52 #endif // FIXFUNCTION_H53 54 51 // Local Variables: // 55 52 // tab-width: 4 // -
src/SymTab/ImplementationType.h
re0a653d r33218c6 10 10 // Created On : Sun May 17 21:35:41 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : S un May 17 21:37:15 201513 // Update Count : 212 // Last Modified On : Sat Jul 22 09:46:19 2017 13 // Update Count : 3 14 14 // 15 15 16 #ifndef IMPLEMENTATIONTYPE_H 17 #define IMPLEMENTATIONTYPE_H 16 #pragma once 18 17 19 18 class Type; … … 32 31 } // namespace SymTab 33 32 34 #endif // IMPLEMENTATIONTYPE_H35 36 33 // Local Variables: // 37 34 // tab-width: 4 // -
src/SymTab/Indexer.h
re0a653d r33218c6 10 10 // Created On : Sun May 17 21:38:55 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Mar 2 17:34:14 201613 // Update Count : 612 // Last Modified On : Sat Jul 22 09:46:34 2017 13 // Update Count : 7 14 14 // 15 15 16 #ifndef INDEXER_H 17 #define INDEXER_H 16 #pragma once 18 17 19 18 #include <iosfwd> // for ostream … … 148 147 } // namespace SymTab 149 148 150 #endif // INDEXER_H151 152 149 // Local Variables: // 153 150 // tab-width: 4 // -
src/SymTab/Mangler.h
re0a653d r33218c6 9 9 // Author : Richard C. Bilson 10 10 // Created On : Sun May 17 21:44:03 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Wed Aug 19 15:48:46 201513 // Update Count : 1 411 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jul 22 09:45:30 2017 13 // Update Count : 15 14 14 // 15 15 16 #ifndef MANGLER_H 17 #define MANGLER_H 16 #pragma once 18 17 19 18 #include <map> // for map, map<>::value_compare … … 81 80 } // SymTab 82 81 83 #endif // MANGLER_H84 85 82 // Local Variables: // 86 83 // tab-width: 4 // -
src/SymTab/Validate.h
re0a653d r33218c6 11 11 // Created On : Sun May 17 21:53:34 2015 12 12 // Last Modified By : Peter A. Buhr 13 // Last Modified On : Tue May 19 16:49:43 201514 // Update Count : 313 // Last Modified On : Sat Jul 22 09:46:07 2017 14 // Update Count : 4 15 15 // 16 16 17 #ifndef VALIDATE_H 18 #define VALIDATE_H 17 #pragma once 19 18 20 19 #include <list> // for list … … 31 30 } // namespace SymTab 32 31 33 #endif // VALIDATE_H34 35 32 // Local Variables: // 36 33 // tab-width: 4 // -
src/SymTab/module.mk
re0a653d r33218c6 10 10 ## Author : Richard C. Bilson 11 11 ## Created On : Mon Jun 1 17:49:17 2015 12 ## Last Modified By : Rob Schluntz13 ## Last Modified On : Tue Jul 07 16:22:23 201514 ## Update Count : 212 ## Last Modified By : Andrew Beach 13 ## Last Modified On : Wed Jul 12 13:06:00 2017 14 ## Update Count : 3 15 15 ############################################################################### 16 16 … … 21 21 SymTab/ImplementationType.cc \ 22 22 SymTab/TypeEquality.cc \ 23 SymTab/Autogen.cc 23 SymTab/Autogen.cc \ 24 SymTab/TreeStruct.cc -
src/SynTree/AddStmtVisitor.h
re0a653d r33218c6 10 10 // Created On : Wed Jun 22 12:05:48 2016 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue Jul 12 17:50:32 201613 // Update Count : 812 // Last Modified On : Sat Jul 22 09:51:08 2017 13 // Update Count : 9 14 14 // 15 15 16 #ifndef ADD_STATEMENT_VISITOR_H 17 #define ADD_STATEMENT_VISITOR_H 16 #pragma once 18 17 19 18 #include <list> … … 42 41 }; 43 42 44 #endif // ADD_STATEMENT_VISITOR_H 43 // Local Variables: // 44 // tab-width: 4 // 45 // mode: c++ // 46 // compile-command: "make install" // 47 // End: // -
src/SynTree/Attribute.h
re0a653d r33218c6 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Jan 18 16:27:11201713 // Update Count : 3 812 // Last Modified On : Sat Jul 22 09:54:14 2017 13 // Update Count : 39 14 14 // 15 15 16 #ifndef GCC_ATTRIBUTE_H 17 #define GCC_ATTRIBUTE_H 16 #pragma once 18 17 19 18 #include "SynTree.h" … … 42 41 const std::list< Attribute * > noAttributes; 43 42 44 #endif45 46 43 // Local Variables: // 47 44 // tab-width: 4 // -
src/SynTree/BaseSyntaxNode.h
re0a653d r33218c6 14 14 // 15 15 16 #ifndef BASE_SYNTAX_NODE_H 17 #define BASE_SYNTAX_NODE_H 16 #pragma once 18 17 19 18 #include "Common/utility.h" … … 29 28 }; 30 29 31 #endif // BASE_SYNTAX_NODE_H32 33 30 // Local Variables: // 34 31 // tab-width: 4 // -
src/SynTree/Constant.cc
re0a653d r33218c6 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Andrew Beach 12 // Last Modified On : Thr Jun 22 10:11:00 201713 // Update Count : 2 812 // Last Modified On : Fri Jul 14 14:50:00 2017 13 // Update Count : 29 14 14 // 15 15 … … 46 46 } 47 47 48 Constant Constant::null( Type * ptrtype ) { 49 if ( nullptr == ptrtype ) { 50 ptrtype = new PointerType( 51 Type::Qualifiers(), 52 new VoidType( Type::Qualifiers() ) 53 ); 54 } 55 56 return Constant( ptrtype, "0", (unsigned long long int)0 ); 57 } 58 48 59 unsigned long long Constant::get_ival() const { 49 60 assertf( safe_dynamic_cast<BasicType*>(type)->isInteger(), "Attempt to retrieve ival from non-integer constant." ); -
src/SynTree/Constant.h
re0a653d r33218c6 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Andrew Beach12 // Last Modified On : Thr Jun 22 10:13:00201713 // Update Count : 1 511 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jul 22 09:54:46 2017 13 // Update Count : 17 14 14 // 15 15 16 #ifndef CONSTANT_H 17 #define CONSTANT_H 16 #pragma once 18 17 19 18 #include "SynTree.h" … … 44 43 static Constant from_double( double d ); 45 44 45 /// generates a null pointer value for the given type. void * if omitted. 46 static Constant null( Type * ptrtype = nullptr ); 47 46 48 virtual void accept( Visitor & v ) { v.visit( this ); } 47 49 virtual Constant * acceptMutator( Mutator & m ) { return m.mutate( this ); } … … 58 60 }; 59 61 60 #endif // CONSTANT_H61 62 62 // Local Variables: // 63 63 // tab-width: 4 // -
src/SynTree/Declaration.h
re0a653d r33218c6 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Andrew Beach 12 // Last Modified On : Tus Jun 27 15:31:00 2017 13 // Update Count : 122 14 // 15 16 #ifndef DECLARATION_H 17 #define DECLARATION_H 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jul 22 09:52:59 2017 13 // Update Count : 124 14 // 15 16 #pragma once 18 17 19 18 #include <string> … … 266 265 typedef AggregateDecl Parent; 267 266 public: 268 StructDecl( const std::string &name, DeclarationNode::Aggregate kind = DeclarationNode::Struct, const std::list< Attribute * > & attributes = std::list< class Attribute * >(), LinkageSpec::Spec linkage = LinkageSpec::Cforall ) : Parent( name, attributes, linkage ), kind( kind ) {} 267 StructDecl( const std::string &name, DeclarationNode::Aggregate kind = DeclarationNode::Struct, const std::list< Attribute * > & attributes = std::list< class Attribute * >(), LinkageSpec::Spec linkage = LinkageSpec::Cforall ) : Parent( name, attributes, linkage ), kind( kind ), tagged( false ), parent_name( "" ) {} 268 StructDecl( const std::string &name, const std::string *parent, const std::list< Attribute * > & attributes = std::list< class Attribute * >(), LinkageSpec::Spec linkage = LinkageSpec::Cforall ) : Parent( name, attributes, linkage ), kind( DeclarationNode::Struct ), tagged( true ), parent_name( parent ? *parent : "" ) {} 269 269 StructDecl( const StructDecl &other ) : Parent( other ) {} 270 270 … … 273 273 bool is_thread() { return kind == DeclarationNode::Thread; } 274 274 275 // Tagged/Tree Structure Excetion 276 bool get_tagged() { return tagged; } 277 void set_tagged( bool newValue ) { tagged = newValue; } 278 bool has_parent() { return parent_name != ""; } 279 std::string get_parentName() { return parent_name; } 280 275 281 virtual StructDecl *clone() const { return new StructDecl( *this ); } 276 282 virtual void accept( Visitor &v ) { v.visit( this ); } … … 279 285 DeclarationNode::Aggregate kind; 280 286 virtual std::string typeString() const; 287 288 bool tagged; 289 std::string parent_name; 281 290 }; 282 291 … … 342 351 std::ostream & operator<<( std::ostream & out, const Declaration * decl ); 343 352 std::ostream & operator<<( std::ostream & os, const TypeDecl::Data & data ); 344 345 #endif // DECLARATION_H346 353 347 354 // Local Variables: // -
src/SynTree/Expression.h
re0a653d r33218c6 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Mar 30 16:44:00201713 // Update Count : 4 112 // Last Modified On : Sat Jul 22 09:53:16 2017 13 // Update Count : 42 14 14 // 15 15 16 #ifndef EXPRESSION_H 17 #define EXPRESSION_H 16 #pragma once 18 17 19 18 #include <map> … … 798 797 std::ostream & operator<<( std::ostream & out, const Expression * expr ); 799 798 800 #endif // EXPRESSION_H801 802 799 // Local Variables: // 803 800 // tab-width: 4 // -
src/SynTree/Initializer.h
re0a653d r33218c6 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Mar 23 16:12:42 201713 // Update Count : 2 012 // Last Modified On : Sat Jul 22 09:52:02 2017 13 // Update Count : 21 14 14 // 15 15 16 #ifndef INITIALIZER_H 17 #define INITIALIZER_H 16 #pragma once 18 17 19 18 #include <cassert> … … 141 140 std::ostream & operator<<( std::ostream & out, const Designation * des ); 142 141 143 #endif // INITIALIZER_H144 145 142 // Local Variables: // 146 143 // tab-width: 4 // -
src/SynTree/Label.h
re0a653d r33218c6 10 10 // Created On : Wed Jun 8 12:53:12 2016 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : S un Aug 7 14:44:29 201613 // Update Count : 212 // Last Modified On : Sat Jul 22 09:52:44 2017 13 // Update Count : 3 14 14 // 15 15 16 #ifndef LABEL_H 17 #define LABEL_H 16 #pragma once 18 17 19 18 #include <string> … … 51 50 static const std::list< Label > noLabels; 52 51 53 #endif // LABEL_H54 55 52 // Local Variables: // 56 53 // tab-width: 4 // -
src/SynTree/Mutator.h
re0a653d r33218c6 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Andrew Beach12 // Last Modified On : Thu Jun 8 15:45:00 201713 // Update Count : 1 411 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jul 22 09:51:30 2017 13 // Update Count : 15 14 14 // 15 15 #include <cassert> … … 18 18 #include "Common/SemanticError.h" 19 19 20 #ifndef MUTATOR_H 21 #define MUTATOR_H 20 #pragma once 22 21 23 22 class Mutator { … … 150 149 } 151 150 152 #endif // MUTATOR_H153 154 151 // Local Variables: // 155 152 // tab-width: 4 // -
src/SynTree/Statement.h
re0a653d r33218c6 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Andrew Beach12 // Last Modified On : Mon Jun 12 13:35:00201713 // Update Count : 6 711 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jul 22 09:54:32 2017 13 // Update Count : 68 14 14 // 15 15 16 #ifndef STATEMENT_H 17 #define STATEMENT_H 16 #pragma once 18 17 19 18 #include "BaseSyntaxNode.h" … … 428 427 std::ostream & operator<<( std::ostream & out, const Statement * statement ); 429 428 430 #endif // STATEMENT_H431 432 429 // Local Variables: // 433 430 // tab-width: 4 // -
src/SynTree/SynTree.h
re0a653d r33218c6 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Andrew Beach12 // Last Modified On : Thu Jun 8 17:00:00201713 // Update Count : 911 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jul 22 09:51:46 2017 13 // Update Count : 10 14 14 // 15 15 16 #ifndef SYNTREE_H 17 #define SYNTREE_H 16 #pragma once 18 17 19 18 #include <string> … … 135 134 class Attribute; 136 135 137 #endif // SYNTREE_H138 139 136 // Local Variables: // 140 137 // tab-width: 4 // -
src/SynTree/Type.h
re0a653d r33218c6 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Mar 23 16:16:36201713 // Update Count : 1 4912 // Last Modified On : Sat Jul 22 09:53:29 2017 13 // Update Count : 151 14 14 // 15 15 16 #ifndef TYPE_H 17 #define TYPE_H 16 #pragma once 18 17 19 18 #include "BaseSyntaxNode.h" … … 172 171 }; 173 172 174 extern Type::Qualifiers emptyQualifiers; // no qualifiers on constants173 extern Type::Qualifiers noQualifiers; // no qualifiers on constants 175 174 176 175 class VoidType : public Type { … … 602 601 std::ostream & operator<<( std::ostream & out, const Type * type ); 603 602 604 #endif // TYPE_H605 606 603 // Local Variables: // 607 604 // tab-width: 4 // -
src/SynTree/TypeSubstitution.h
re0a653d r33218c6 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Fri Apr 29 15:00:20 201613 // Update Count : 211 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jul 22 09:52:24 2017 13 // Update Count : 3 14 14 // 15 15 16 #ifndef TYPESUBSTITUTION_H 17 #define TYPESUBSTITUTION_H 16 #pragma once 18 17 19 18 #include <map> … … 180 179 std::ostream & operator<<( std::ostream & out, const TypeSubstitution & sub ); 181 180 182 #endif // TYPESUBSTITUTION_H183 184 181 // Local Variables: // 185 182 // tab-width: 4 // -
src/SynTree/VarExprReplacer.h
re0a653d r33218c6 9 9 // Author : Rob Schluntz 10 10 // Created On : Wed Jan 13 16:29:30 2016 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Fri May 13 11:27:52 201613 // Update Count : 511 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jul 22 09:53:41 2017 13 // Update Count : 6 14 14 // 15 15 16 #ifndef VAR_EXPR_REPLACER_H 17 #define VAR_EXPR_REPLACER_H 16 #pragma once 18 17 19 18 #include <map> … … 35 34 }; 36 35 37 #endif // VAR_EXPR_REPLACER_H38 39 36 // Local Variables: // 40 37 // tab-width: 4 // -
src/SynTree/Visitor.h
re0a653d r33218c6 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Andrew Beach12 // Last Modified On : Thr Jun 08 15:45:00201713 // Update Count : 1 111 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jul 22 09:54:04 2017 13 // Update Count : 12 14 14 // 15 15 16 #ifndef VISITOR_H 17 #define VISITOR_H 16 #pragma once 18 17 19 18 #include "SynTree.h" … … 174 173 } 175 174 176 #endif // VISITOR_H177 178 175 // Local Variables: // 179 176 // tab-width: 4 // -
src/Tuples/Explode.h
re0a653d r33218c6 9 9 // Author : Rob Schluntz 10 10 // Created On : Wed Nov 9 13:12:24 2016 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Wed Nov 9 13:20:24 201613 // Update Count : 211 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jul 22 09:55:16 2017 13 // Update Count : 3 14 14 // 15 15 16 #ifndef _EXPLODE_H_ 17 #define _EXPLODE_H_ 16 #pragma once 18 17 19 18 #include "ResolvExpr/AlternativeFinder.h" … … 95 94 } // namespace Tuples 96 95 97 #endif // _TUPLE_ASSIGNMENT_H_98 99 96 // Local Variables: // 100 97 // tab-width: 4 // -
src/Tuples/Tuples.h
re0a653d r33218c6 9 9 // Author : Rodolfo G. Esteves 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Wed Nov 9 13:17:58 201613 // Update Count : 1 511 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jul 22 09:55:00 2017 13 // Update Count : 16 14 14 // 15 15 16 #ifndef _TUPLES_H_ 17 #define _TUPLES_H_ 16 #pragma once 18 17 19 18 #include <string> … … 49 48 } // namespace Tuples 50 49 51 #endif // _TUPLE_ASSIGNMENT_H_52 53 50 // Local Variables: // 54 51 // tab-width: 4 // -
src/benchmark/create_pthrd.c
re0a653d r33218c6 14 14 n = atoi(argv[1]); 15 15 } 16 printf(" %lu\n", n);16 printf("create %lu pthreads ... ", n); 17 17 18 18 for (size_t i = 0; i < n; i++) { 19 pthread_attr_t attr; 20 if (pthread_attr_init(&attr) < 0) { 19 pthread_t thread; 20 if (pthread_create(&thread, NULL, foo, NULL) < 0) { 21 perror( "failure" ); 21 22 return 1; 22 23 } 23 if (pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED) < 0) { 24 return 1; 25 } 26 pthread_t thread; 27 if (pthread_create(&thread, &attr, foo, NULL) < 0) { 24 25 if (pthread_join( thread, NULL) < 0) { 26 perror( "failure" ); 28 27 return 1; 29 28 } 30 29 } 31 pthread_exit(NULL); 32 return 0; 30 printf("finish\n"); 33 31 } -
src/driver/cfa.cc
re0a653d r33218c6 10 10 // Created On : Tue Aug 20 13:44:49 2002 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Jan 20 14:38:45 201713 // Update Count : 15 512 // Last Modified On : Thu Jul 20 15:54:45 2017 13 // Update Count : 156 14 14 // 15 15 … … 76 76 bool cpp_flag = false; // -E or -M flag, preprocessor only 77 77 bool std_flag = false; // -std= flag 78 bool noincstd_flag = false; // -no-include-stdhdr= flag79 78 bool debugging __attribute(( unused )) = false; // -g flag 80 79 … … 134 133 } else if ( arg == "-nohelp" ) { 135 134 help = false; // strip the nohelp flag 136 } else if ( arg == "-no-include-stdhdr" ) {137 noincstd_flag = true; // strip the no-include-stdhdr flag138 135 } else if ( arg == "-compiler" ) { 139 136 // use the user specified compiler … … 234 231 args[nargs] = "-I" CFA_INCDIR; 235 232 nargs += 1; 236 if ( ! noincstd_flag ) { // do not use during build 237 args[nargs] = "-I" CFA_INCDIR "/stdhdr"; 238 nargs += 1; 239 } // if 233 args[nargs] = "-I" CFA_INCDIR "/stdhdr"; 234 nargs += 1; 240 235 args[nargs] = "-I" CFA_INCDIR "/concurrency"; 241 236 nargs += 1; -
src/libcfa/Makefile.am
re0a653d r33218c6 10 10 ## Author : Peter A. Buhr 11 11 ## Created On : Sun May 31 08:54:01 2015 12 ## Last Modified By : Andrew Beach13 ## Last Modified On : Wed Jun 28 15:36:00201714 ## Update Count : 2 1512 ## Last Modified By : Peter A. Buhr 13 ## Last Modified On : Thu Jul 20 23:09:34 2017 14 ## Update Count : 220 15 15 ############################################################################### 16 16 … … 39 39 40 40 AM_CCASFLAGS = @CFA_FLAGS@ 41 CFLAGS = -quiet - no-include-stdhdr -XCFA -t -B${abs_top_srcdir}/src/driver ${EXTRA_FLAGS}41 CFLAGS = -quiet -I${abs_top_srcdir}/src/libcfa/stdhdr -XCFA -t -B${abs_top_srcdir}/src/driver ${EXTRA_FLAGS} 42 42 CC = ${abs_top_srcdir}/src/driver/cfa 43 43 44 headers = assert fstream iostream iterator limits mathrational stdlib \44 headers = fstream iostream iterator limits rational stdlib \ 45 45 containers/maybe containers/pair containers/result containers/vector 46 46 … … 51 51 52 52 libobjs = ${headers:=.o} 53 libsrc = libcfa-prelude.c interpose.c libhdr/libdebug.c ${headers:=.c} exception.c 53 libsrc = libcfa-prelude.c interpose.c libhdr/libdebug.c ${headers:=.c} \ 54 assert.c exception.c typeobject.c 54 55 55 56 # not all platforms support concurrency, add option do disable it … … 68 69 ${AM_V_CC}@BACKEND_CC@ -DHAVE_CONFIG_H -I. -I../.. -O2 ${EXTRA_FLAGS} -c -o $@ $< 69 70 71 libcfa_a-typeobject.o : typeobject.c 72 ${AM_V_CC}@BACKEND_CC@ -DHAVE_CONFIG_H -I. -I../.. -O2 ${EXTRA_FLAGS} -c -o $@ $< 73 70 74 concurrency/libcfa_d_a-invoke.o : concurrency/invoke.c 71 75 ${AM_V_CC}@BACKEND_CC@ -DHAVE_CONFIG_H -I. -I../.. -D__CFA_DEBUG__ -O0 ${EXTRA_FLAGS} -c -o $@ $< 72 76 73 77 libcfa_d_a-exception.o : exception.c 78 ${AM_V_CC}@BACKEND_CC@ -DHAVE_CONFIG_H -I. -I../.. -D__CFA_DEBUG__ -O0 ${EXTRA_FLAGS} -c -o $@ $< 79 80 libcfa_d_a-typeobject.o : typeobject.c 74 81 ${AM_V_CC}@BACKEND_CC@ -DHAVE_CONFIG_H -I. -I../.. -D__CFA_DEBUG__ -O0 ${EXTRA_FLAGS} -c -o $@ $< 75 82 … … 84 91 85 92 cfa_includedir = $(CFA_INCDIR) 86 nobase_cfa_include_HEADERS = ${headers} ${stdhdr} gmp concurrency/invoke.h93 nobase_cfa_include_HEADERS = ${headers} ${stdhdr} math gmp concurrency/invoke.h 87 94 88 95 CLEANFILES = libcfa-prelude.c -
src/libcfa/Makefile.in
re0a653d r33218c6 149 149 libcfa_d_a_LIBADD = 150 150 am__libcfa_d_a_SOURCES_DIST = libcfa-prelude.c interpose.c \ 151 libhdr/libdebug.c assert.c fstream.c iostream.c iterator.c \152 limits.c math.c rational.c stdlib.c containers/maybe.c \153 containers/ pair.c containers/result.c containers/vector.c \151 libhdr/libdebug.c fstream.c iostream.c iterator.c limits.c \ 152 rational.c stdlib.c containers/maybe.c containers/pair.c \ 153 containers/result.c containers/vector.c \ 154 154 concurrency/coroutine.c concurrency/thread.c \ 155 concurrency/kernel.c concurrency/monitor.c exception.c \ 155 concurrency/kernel.c concurrency/monitor.c assert.c \ 156 exception.c typeobject.c \ 156 157 concurrency/CtxSwitch-@MACHINE_TYPE@.S concurrency/alarm.c \ 157 158 concurrency/invoke.c concurrency/preemption.c … … 161 162 @BUILD_CONCURRENCY_TRUE@ concurrency/libcfa_d_a-kernel.$(OBJEXT) \ 162 163 @BUILD_CONCURRENCY_TRUE@ concurrency/libcfa_d_a-monitor.$(OBJEXT) 163 am__objects_2 = libcfa_d_a-assert.$(OBJEXT) \ 164 libcfa_d_a-fstream.$(OBJEXT) libcfa_d_a-iostream.$(OBJEXT) \ 165 libcfa_d_a-iterator.$(OBJEXT) libcfa_d_a-limits.$(OBJEXT) \ 166 libcfa_d_a-math.$(OBJEXT) libcfa_d_a-rational.$(OBJEXT) \ 164 am__objects_2 = libcfa_d_a-fstream.$(OBJEXT) \ 165 libcfa_d_a-iostream.$(OBJEXT) libcfa_d_a-iterator.$(OBJEXT) \ 166 libcfa_d_a-limits.$(OBJEXT) libcfa_d_a-rational.$(OBJEXT) \ 167 167 libcfa_d_a-stdlib.$(OBJEXT) \ 168 168 containers/libcfa_d_a-maybe.$(OBJEXT) \ … … 177 177 libcfa_d_a-interpose.$(OBJEXT) \ 178 178 libhdr/libcfa_d_a-libdebug.$(OBJEXT) $(am__objects_2) \ 179 libcfa_d_a-exception.$(OBJEXT) $(am__objects_3) 179 libcfa_d_a-assert.$(OBJEXT) libcfa_d_a-exception.$(OBJEXT) \ 180 libcfa_d_a-typeobject.$(OBJEXT) $(am__objects_3) 180 181 am_libcfa_d_a_OBJECTS = $(am__objects_4) 181 182 libcfa_d_a_OBJECTS = $(am_libcfa_d_a_OBJECTS) … … 183 184 libcfa_a_LIBADD = 184 185 am__libcfa_a_SOURCES_DIST = libcfa-prelude.c interpose.c \ 185 libhdr/libdebug.c assert.c fstream.c iostream.c iterator.c \186 limits.c math.c rational.c stdlib.c containers/maybe.c \187 containers/ pair.c containers/result.c containers/vector.c \186 libhdr/libdebug.c fstream.c iostream.c iterator.c limits.c \ 187 rational.c stdlib.c containers/maybe.c containers/pair.c \ 188 containers/result.c containers/vector.c \ 188 189 concurrency/coroutine.c concurrency/thread.c \ 189 concurrency/kernel.c concurrency/monitor.c exception.c \ 190 concurrency/kernel.c concurrency/monitor.c assert.c \ 191 exception.c typeobject.c \ 190 192 concurrency/CtxSwitch-@MACHINE_TYPE@.S concurrency/alarm.c \ 191 193 concurrency/invoke.c concurrency/preemption.c … … 194 196 @BUILD_CONCURRENCY_TRUE@ concurrency/libcfa_a-kernel.$(OBJEXT) \ 195 197 @BUILD_CONCURRENCY_TRUE@ concurrency/libcfa_a-monitor.$(OBJEXT) 196 am__objects_6 = libcfa_a-assert.$(OBJEXT) libcfa_a-fstream.$(OBJEXT) \ 197 libcfa_a-iostream.$(OBJEXT) libcfa_a-iterator.$(OBJEXT) \ 198 libcfa_a-limits.$(OBJEXT) libcfa_a-math.$(OBJEXT) \ 198 am__objects_6 = libcfa_a-fstream.$(OBJEXT) libcfa_a-iostream.$(OBJEXT) \ 199 libcfa_a-iterator.$(OBJEXT) libcfa_a-limits.$(OBJEXT) \ 199 200 libcfa_a-rational.$(OBJEXT) libcfa_a-stdlib.$(OBJEXT) \ 200 201 containers/libcfa_a-maybe.$(OBJEXT) \ … … 209 210 libcfa_a-interpose.$(OBJEXT) \ 210 211 libhdr/libcfa_a-libdebug.$(OBJEXT) $(am__objects_6) \ 211 libcfa_a-exception.$(OBJEXT) $(am__objects_7) 212 libcfa_a-assert.$(OBJEXT) libcfa_a-exception.$(OBJEXT) \ 213 libcfa_a-typeobject.$(OBJEXT) $(am__objects_7) 212 214 am_libcfa_a_OBJECTS = $(am__objects_8) 213 215 libcfa_a_OBJECTS = $(am_libcfa_a_OBJECTS) … … 258 260 *) (install-info --version) >/dev/null 2>&1;; \ 259 261 esac 260 am__nobase_cfa_include_HEADERS_DIST = assert fstream iostream iterator\261 limits mathrational stdlib containers/maybe containers/pair \262 am__nobase_cfa_include_HEADERS_DIST = fstream iostream iterator limits \ 263 rational stdlib containers/maybe containers/pair \ 262 264 containers/result containers/vector concurrency/coroutine \ 263 265 concurrency/thread concurrency/kernel concurrency/monitor \ 264 ${shell echo stdhdr/*} gmp concurrency/invoke.h266 ${shell echo stdhdr/*} math gmp concurrency/invoke.h 265 267 HEADERS = $(nobase_cfa_include_HEADERS) 266 268 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) … … 306 308 CFA_NAME = @CFA_NAME@ 307 309 CFA_PREFIX = @CFA_PREFIX@ 308 CFLAGS = -quiet - no-include-stdhdr -XCFA -t -B${abs_top_srcdir}/src/driver ${EXTRA_FLAGS}310 CFLAGS = -quiet -I${abs_top_srcdir}/src/libcfa/stdhdr -XCFA -t -B${abs_top_srcdir}/src/driver ${EXTRA_FLAGS} 309 311 CPP = @CPP@ 310 312 CPPFLAGS = @CPPFLAGS@ … … 412 414 EXTRA_FLAGS = -g -Wall -Werror -Wno-unused-function -I${abs_top_srcdir}/src/libcfa/libhdr -imacros libcfa-prelude.c @CFA_FLAGS@ 413 415 AM_CCASFLAGS = @CFA_FLAGS@ 414 headers = assert fstream iostream iterator limits mathrational stdlib \416 headers = fstream iostream iterator limits rational stdlib \ 415 417 containers/maybe containers/pair containers/result \ 416 418 containers/vector $(am__append_3) 417 419 libobjs = ${headers:=.o} 418 420 libsrc = libcfa-prelude.c interpose.c libhdr/libdebug.c ${headers:=.c} \ 419 exception.c $(am__append_4)421 assert.c exception.c typeobject.c $(am__append_4) 420 422 libcfa_a_SOURCES = ${libsrc} 421 423 libcfa_a_CFLAGS = -nodebug -O2 … … 424 426 stdhdr = ${shell echo stdhdr/*} 425 427 cfa_includedir = $(CFA_INCDIR) 426 nobase_cfa_include_HEADERS = ${headers} ${stdhdr} gmp concurrency/invoke.h428 nobase_cfa_include_HEADERS = ${headers} ${stdhdr} math gmp concurrency/invoke.h 427 429 CLEANFILES = libcfa-prelude.c 428 430 all: all-am … … 590 592 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_a-libcfa-prelude.Po@am__quote@ 591 593 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_a-limits.Po@am__quote@ 592 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_a-math.Po@am__quote@593 594 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_a-rational.Po@am__quote@ 594 595 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_a-stdlib.Po@am__quote@ 596 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_a-typeobject.Po@am__quote@ 595 597 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_d_a-assert.Po@am__quote@ 596 598 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_d_a-exception.Po@am__quote@ … … 601 603 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_d_a-libcfa-prelude.Po@am__quote@ 602 604 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_d_a-limits.Po@am__quote@ 603 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_d_a-math.Po@am__quote@604 605 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_d_a-rational.Po@am__quote@ 605 606 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_d_a-stdlib.Po@am__quote@ 607 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_d_a-typeobject.Po@am__quote@ 606 608 @AMDEP_TRUE@@am__include@ @am__quote@concurrency/$(DEPDIR)/CtxSwitch-@MACHINE_TYPE@.Po@am__quote@ 607 609 @AMDEP_TRUE@@am__include@ @am__quote@concurrency/$(DEPDIR)/libcfa_a-alarm.Po@am__quote@ … … 697 699 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libhdr/libcfa_d_a-libdebug.obj `if test -f 'libhdr/libdebug.c'; then $(CYGPATH_W) 'libhdr/libdebug.c'; else $(CYGPATH_W) '$(srcdir)/libhdr/libdebug.c'; fi` 698 700 701 libcfa_d_a-fstream.o: fstream.c 702 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-fstream.o -MD -MP -MF $(DEPDIR)/libcfa_d_a-fstream.Tpo -c -o libcfa_d_a-fstream.o `test -f 'fstream.c' || echo '$(srcdir)/'`fstream.c 703 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-fstream.Tpo $(DEPDIR)/libcfa_d_a-fstream.Po 704 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fstream.c' object='libcfa_d_a-fstream.o' libtool=no @AMDEPBACKSLASH@ 705 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 706 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-fstream.o `test -f 'fstream.c' || echo '$(srcdir)/'`fstream.c 707 708 libcfa_d_a-fstream.obj: fstream.c 709 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-fstream.obj -MD -MP -MF $(DEPDIR)/libcfa_d_a-fstream.Tpo -c -o libcfa_d_a-fstream.obj `if test -f 'fstream.c'; then $(CYGPATH_W) 'fstream.c'; else $(CYGPATH_W) '$(srcdir)/fstream.c'; fi` 710 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-fstream.Tpo $(DEPDIR)/libcfa_d_a-fstream.Po 711 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fstream.c' object='libcfa_d_a-fstream.obj' libtool=no @AMDEPBACKSLASH@ 712 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 713 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-fstream.obj `if test -f 'fstream.c'; then $(CYGPATH_W) 'fstream.c'; else $(CYGPATH_W) '$(srcdir)/fstream.c'; fi` 714 715 libcfa_d_a-iostream.o: iostream.c 716 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-iostream.o -MD -MP -MF $(DEPDIR)/libcfa_d_a-iostream.Tpo -c -o libcfa_d_a-iostream.o `test -f 'iostream.c' || echo '$(srcdir)/'`iostream.c 717 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-iostream.Tpo $(DEPDIR)/libcfa_d_a-iostream.Po 718 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='iostream.c' object='libcfa_d_a-iostream.o' libtool=no @AMDEPBACKSLASH@ 719 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 720 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-iostream.o `test -f 'iostream.c' || echo '$(srcdir)/'`iostream.c 721 722 libcfa_d_a-iostream.obj: iostream.c 723 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-iostream.obj -MD -MP -MF $(DEPDIR)/libcfa_d_a-iostream.Tpo -c -o libcfa_d_a-iostream.obj `if test -f 'iostream.c'; then $(CYGPATH_W) 'iostream.c'; else $(CYGPATH_W) '$(srcdir)/iostream.c'; fi` 724 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-iostream.Tpo $(DEPDIR)/libcfa_d_a-iostream.Po 725 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='iostream.c' object='libcfa_d_a-iostream.obj' libtool=no @AMDEPBACKSLASH@ 726 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 727 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-iostream.obj `if test -f 'iostream.c'; then $(CYGPATH_W) 'iostream.c'; else $(CYGPATH_W) '$(srcdir)/iostream.c'; fi` 728 729 libcfa_d_a-iterator.o: iterator.c 730 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-iterator.o -MD -MP -MF $(DEPDIR)/libcfa_d_a-iterator.Tpo -c -o libcfa_d_a-iterator.o `test -f 'iterator.c' || echo '$(srcdir)/'`iterator.c 731 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-iterator.Tpo $(DEPDIR)/libcfa_d_a-iterator.Po 732 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='iterator.c' object='libcfa_d_a-iterator.o' libtool=no @AMDEPBACKSLASH@ 733 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 734 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-iterator.o `test -f 'iterator.c' || echo '$(srcdir)/'`iterator.c 735 736 libcfa_d_a-iterator.obj: iterator.c 737 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-iterator.obj -MD -MP -MF $(DEPDIR)/libcfa_d_a-iterator.Tpo -c -o libcfa_d_a-iterator.obj `if test -f 'iterator.c'; then $(CYGPATH_W) 'iterator.c'; else $(CYGPATH_W) '$(srcdir)/iterator.c'; fi` 738 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-iterator.Tpo $(DEPDIR)/libcfa_d_a-iterator.Po 739 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='iterator.c' object='libcfa_d_a-iterator.obj' libtool=no @AMDEPBACKSLASH@ 740 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 741 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-iterator.obj `if test -f 'iterator.c'; then $(CYGPATH_W) 'iterator.c'; else $(CYGPATH_W) '$(srcdir)/iterator.c'; fi` 742 743 libcfa_d_a-limits.o: limits.c 744 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-limits.o -MD -MP -MF $(DEPDIR)/libcfa_d_a-limits.Tpo -c -o libcfa_d_a-limits.o `test -f 'limits.c' || echo '$(srcdir)/'`limits.c 745 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-limits.Tpo $(DEPDIR)/libcfa_d_a-limits.Po 746 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='limits.c' object='libcfa_d_a-limits.o' libtool=no @AMDEPBACKSLASH@ 747 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 748 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-limits.o `test -f 'limits.c' || echo '$(srcdir)/'`limits.c 749 750 libcfa_d_a-limits.obj: limits.c 751 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-limits.obj -MD -MP -MF $(DEPDIR)/libcfa_d_a-limits.Tpo -c -o libcfa_d_a-limits.obj `if test -f 'limits.c'; then $(CYGPATH_W) 'limits.c'; else $(CYGPATH_W) '$(srcdir)/limits.c'; fi` 752 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-limits.Tpo $(DEPDIR)/libcfa_d_a-limits.Po 753 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='limits.c' object='libcfa_d_a-limits.obj' libtool=no @AMDEPBACKSLASH@ 754 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 755 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-limits.obj `if test -f 'limits.c'; then $(CYGPATH_W) 'limits.c'; else $(CYGPATH_W) '$(srcdir)/limits.c'; fi` 756 757 libcfa_d_a-rational.o: rational.c 758 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-rational.o -MD -MP -MF $(DEPDIR)/libcfa_d_a-rational.Tpo -c -o libcfa_d_a-rational.o `test -f 'rational.c' || echo '$(srcdir)/'`rational.c 759 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-rational.Tpo $(DEPDIR)/libcfa_d_a-rational.Po 760 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rational.c' object='libcfa_d_a-rational.o' libtool=no @AMDEPBACKSLASH@ 761 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 762 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-rational.o `test -f 'rational.c' || echo '$(srcdir)/'`rational.c 763 764 libcfa_d_a-rational.obj: rational.c 765 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-rational.obj -MD -MP -MF $(DEPDIR)/libcfa_d_a-rational.Tpo -c -o libcfa_d_a-rational.obj `if test -f 'rational.c'; then $(CYGPATH_W) 'rational.c'; else $(CYGPATH_W) '$(srcdir)/rational.c'; fi` 766 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-rational.Tpo $(DEPDIR)/libcfa_d_a-rational.Po 767 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rational.c' object='libcfa_d_a-rational.obj' libtool=no @AMDEPBACKSLASH@ 768 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 769 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-rational.obj `if test -f 'rational.c'; then $(CYGPATH_W) 'rational.c'; else $(CYGPATH_W) '$(srcdir)/rational.c'; fi` 770 771 libcfa_d_a-stdlib.o: stdlib.c 772 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-stdlib.o -MD -MP -MF $(DEPDIR)/libcfa_d_a-stdlib.Tpo -c -o libcfa_d_a-stdlib.o `test -f 'stdlib.c' || echo '$(srcdir)/'`stdlib.c 773 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-stdlib.Tpo $(DEPDIR)/libcfa_d_a-stdlib.Po 774 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='stdlib.c' object='libcfa_d_a-stdlib.o' libtool=no @AMDEPBACKSLASH@ 775 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 776 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-stdlib.o `test -f 'stdlib.c' || echo '$(srcdir)/'`stdlib.c 777 778 libcfa_d_a-stdlib.obj: stdlib.c 779 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-stdlib.obj -MD -MP -MF $(DEPDIR)/libcfa_d_a-stdlib.Tpo -c -o libcfa_d_a-stdlib.obj `if test -f 'stdlib.c'; then $(CYGPATH_W) 'stdlib.c'; else $(CYGPATH_W) '$(srcdir)/stdlib.c'; fi` 780 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-stdlib.Tpo $(DEPDIR)/libcfa_d_a-stdlib.Po 781 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='stdlib.c' object='libcfa_d_a-stdlib.obj' libtool=no @AMDEPBACKSLASH@ 782 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 783 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-stdlib.obj `if test -f 'stdlib.c'; then $(CYGPATH_W) 'stdlib.c'; else $(CYGPATH_W) '$(srcdir)/stdlib.c'; fi` 784 785 containers/libcfa_d_a-maybe.o: containers/maybe.c 786 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT containers/libcfa_d_a-maybe.o -MD -MP -MF containers/$(DEPDIR)/libcfa_d_a-maybe.Tpo -c -o containers/libcfa_d_a-maybe.o `test -f 'containers/maybe.c' || echo '$(srcdir)/'`containers/maybe.c 787 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) containers/$(DEPDIR)/libcfa_d_a-maybe.Tpo containers/$(DEPDIR)/libcfa_d_a-maybe.Po 788 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='containers/maybe.c' object='containers/libcfa_d_a-maybe.o' libtool=no @AMDEPBACKSLASH@ 789 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 790 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o containers/libcfa_d_a-maybe.o `test -f 'containers/maybe.c' || echo '$(srcdir)/'`containers/maybe.c 791 792 containers/libcfa_d_a-maybe.obj: containers/maybe.c 793 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT containers/libcfa_d_a-maybe.obj -MD -MP -MF containers/$(DEPDIR)/libcfa_d_a-maybe.Tpo -c -o containers/libcfa_d_a-maybe.obj `if test -f 'containers/maybe.c'; then $(CYGPATH_W) 'containers/maybe.c'; else $(CYGPATH_W) '$(srcdir)/containers/maybe.c'; fi` 794 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) containers/$(DEPDIR)/libcfa_d_a-maybe.Tpo containers/$(DEPDIR)/libcfa_d_a-maybe.Po 795 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='containers/maybe.c' object='containers/libcfa_d_a-maybe.obj' libtool=no @AMDEPBACKSLASH@ 796 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 797 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o containers/libcfa_d_a-maybe.obj `if test -f 'containers/maybe.c'; then $(CYGPATH_W) 'containers/maybe.c'; else $(CYGPATH_W) '$(srcdir)/containers/maybe.c'; fi` 798 799 containers/libcfa_d_a-pair.o: containers/pair.c 800 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT containers/libcfa_d_a-pair.o -MD -MP -MF containers/$(DEPDIR)/libcfa_d_a-pair.Tpo -c -o containers/libcfa_d_a-pair.o `test -f 'containers/pair.c' || echo '$(srcdir)/'`containers/pair.c 801 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) containers/$(DEPDIR)/libcfa_d_a-pair.Tpo containers/$(DEPDIR)/libcfa_d_a-pair.Po 802 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='containers/pair.c' object='containers/libcfa_d_a-pair.o' libtool=no @AMDEPBACKSLASH@ 803 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 804 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o containers/libcfa_d_a-pair.o `test -f 'containers/pair.c' || echo '$(srcdir)/'`containers/pair.c 805 806 containers/libcfa_d_a-pair.obj: containers/pair.c 807 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT containers/libcfa_d_a-pair.obj -MD -MP -MF containers/$(DEPDIR)/libcfa_d_a-pair.Tpo -c -o containers/libcfa_d_a-pair.obj `if test -f 'containers/pair.c'; then $(CYGPATH_W) 'containers/pair.c'; else $(CYGPATH_W) '$(srcdir)/containers/pair.c'; fi` 808 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) containers/$(DEPDIR)/libcfa_d_a-pair.Tpo containers/$(DEPDIR)/libcfa_d_a-pair.Po 809 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='containers/pair.c' object='containers/libcfa_d_a-pair.obj' libtool=no @AMDEPBACKSLASH@ 810 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 811 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o containers/libcfa_d_a-pair.obj `if test -f 'containers/pair.c'; then $(CYGPATH_W) 'containers/pair.c'; else $(CYGPATH_W) '$(srcdir)/containers/pair.c'; fi` 812 813 containers/libcfa_d_a-result.o: containers/result.c 814 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT containers/libcfa_d_a-result.o -MD -MP -MF containers/$(DEPDIR)/libcfa_d_a-result.Tpo -c -o containers/libcfa_d_a-result.o `test -f 'containers/result.c' || echo '$(srcdir)/'`containers/result.c 815 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) containers/$(DEPDIR)/libcfa_d_a-result.Tpo containers/$(DEPDIR)/libcfa_d_a-result.Po 816 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='containers/result.c' object='containers/libcfa_d_a-result.o' libtool=no @AMDEPBACKSLASH@ 817 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 818 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o containers/libcfa_d_a-result.o `test -f 'containers/result.c' || echo '$(srcdir)/'`containers/result.c 819 820 containers/libcfa_d_a-result.obj: containers/result.c 821 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT containers/libcfa_d_a-result.obj -MD -MP -MF containers/$(DEPDIR)/libcfa_d_a-result.Tpo -c -o containers/libcfa_d_a-result.obj `if test -f 'containers/result.c'; then $(CYGPATH_W) 'containers/result.c'; else $(CYGPATH_W) '$(srcdir)/containers/result.c'; fi` 822 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) containers/$(DEPDIR)/libcfa_d_a-result.Tpo containers/$(DEPDIR)/libcfa_d_a-result.Po 823 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='containers/result.c' object='containers/libcfa_d_a-result.obj' libtool=no @AMDEPBACKSLASH@ 824 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 825 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o containers/libcfa_d_a-result.obj `if test -f 'containers/result.c'; then $(CYGPATH_W) 'containers/result.c'; else $(CYGPATH_W) '$(srcdir)/containers/result.c'; fi` 826 827 containers/libcfa_d_a-vector.o: containers/vector.c 828 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT containers/libcfa_d_a-vector.o -MD -MP -MF containers/$(DEPDIR)/libcfa_d_a-vector.Tpo -c -o containers/libcfa_d_a-vector.o `test -f 'containers/vector.c' || echo '$(srcdir)/'`containers/vector.c 829 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) containers/$(DEPDIR)/libcfa_d_a-vector.Tpo containers/$(DEPDIR)/libcfa_d_a-vector.Po 830 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='containers/vector.c' object='containers/libcfa_d_a-vector.o' libtool=no @AMDEPBACKSLASH@ 831 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 832 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o containers/libcfa_d_a-vector.o `test -f 'containers/vector.c' || echo '$(srcdir)/'`containers/vector.c 833 834 containers/libcfa_d_a-vector.obj: containers/vector.c 835 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT containers/libcfa_d_a-vector.obj -MD -MP -MF containers/$(DEPDIR)/libcfa_d_a-vector.Tpo -c -o containers/libcfa_d_a-vector.obj `if test -f 'containers/vector.c'; then $(CYGPATH_W) 'containers/vector.c'; else $(CYGPATH_W) '$(srcdir)/containers/vector.c'; fi` 836 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) containers/$(DEPDIR)/libcfa_d_a-vector.Tpo containers/$(DEPDIR)/libcfa_d_a-vector.Po 837 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='containers/vector.c' object='containers/libcfa_d_a-vector.obj' libtool=no @AMDEPBACKSLASH@ 838 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 839 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o containers/libcfa_d_a-vector.obj `if test -f 'containers/vector.c'; then $(CYGPATH_W) 'containers/vector.c'; else $(CYGPATH_W) '$(srcdir)/containers/vector.c'; fi` 840 841 concurrency/libcfa_d_a-coroutine.o: concurrency/coroutine.c 842 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT concurrency/libcfa_d_a-coroutine.o -MD -MP -MF concurrency/$(DEPDIR)/libcfa_d_a-coroutine.Tpo -c -o concurrency/libcfa_d_a-coroutine.o `test -f 'concurrency/coroutine.c' || echo '$(srcdir)/'`concurrency/coroutine.c 843 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) concurrency/$(DEPDIR)/libcfa_d_a-coroutine.Tpo concurrency/$(DEPDIR)/libcfa_d_a-coroutine.Po 844 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='concurrency/coroutine.c' object='concurrency/libcfa_d_a-coroutine.o' libtool=no @AMDEPBACKSLASH@ 845 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 846 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o concurrency/libcfa_d_a-coroutine.o `test -f 'concurrency/coroutine.c' || echo '$(srcdir)/'`concurrency/coroutine.c 847 848 concurrency/libcfa_d_a-coroutine.obj: concurrency/coroutine.c 849 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT concurrency/libcfa_d_a-coroutine.obj -MD -MP -MF concurrency/$(DEPDIR)/libcfa_d_a-coroutine.Tpo -c -o concurrency/libcfa_d_a-coroutine.obj `if test -f 'concurrency/coroutine.c'; then $(CYGPATH_W) 'concurrency/coroutine.c'; else $(CYGPATH_W) '$(srcdir)/concurrency/coroutine.c'; fi` 850 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) concurrency/$(DEPDIR)/libcfa_d_a-coroutine.Tpo concurrency/$(DEPDIR)/libcfa_d_a-coroutine.Po 851 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='concurrency/coroutine.c' object='concurrency/libcfa_d_a-coroutine.obj' libtool=no @AMDEPBACKSLASH@ 852 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 853 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o concurrency/libcfa_d_a-coroutine.obj `if test -f 'concurrency/coroutine.c'; then $(CYGPATH_W) 'concurrency/coroutine.c'; else $(CYGPATH_W) '$(srcdir)/concurrency/coroutine.c'; fi` 854 855 concurrency/libcfa_d_a-thread.o: concurrency/thread.c 856 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT concurrency/libcfa_d_a-thread.o -MD -MP -MF concurrency/$(DEPDIR)/libcfa_d_a-thread.Tpo -c -o concurrency/libcfa_d_a-thread.o `test -f 'concurrency/thread.c' || echo '$(srcdir)/'`concurrency/thread.c 857 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) concurrency/$(DEPDIR)/libcfa_d_a-thread.Tpo concurrency/$(DEPDIR)/libcfa_d_a-thread.Po 858 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='concurrency/thread.c' object='concurrency/libcfa_d_a-thread.o' libtool=no @AMDEPBACKSLASH@ 859 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 860 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o concurrency/libcfa_d_a-thread.o `test -f 'concurrency/thread.c' || echo '$(srcdir)/'`concurrency/thread.c 861 862 concurrency/libcfa_d_a-thread.obj: concurrency/thread.c 863 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT concurrency/libcfa_d_a-thread.obj -MD -MP -MF concurrency/$(DEPDIR)/libcfa_d_a-thread.Tpo -c -o concurrency/libcfa_d_a-thread.obj `if test -f 'concurrency/thread.c'; then $(CYGPATH_W) 'concurrency/thread.c'; else $(CYGPATH_W) '$(srcdir)/concurrency/thread.c'; fi` 864 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) concurrency/$(DEPDIR)/libcfa_d_a-thread.Tpo concurrency/$(DEPDIR)/libcfa_d_a-thread.Po 865 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='concurrency/thread.c' object='concurrency/libcfa_d_a-thread.obj' libtool=no @AMDEPBACKSLASH@ 866 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 867 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o concurrency/libcfa_d_a-thread.obj `if test -f 'concurrency/thread.c'; then $(CYGPATH_W) 'concurrency/thread.c'; else $(CYGPATH_W) '$(srcdir)/concurrency/thread.c'; fi` 868 869 concurrency/libcfa_d_a-kernel.o: concurrency/kernel.c 870 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT concurrency/libcfa_d_a-kernel.o -MD -MP -MF concurrency/$(DEPDIR)/libcfa_d_a-kernel.Tpo -c -o concurrency/libcfa_d_a-kernel.o `test -f 'concurrency/kernel.c' || echo '$(srcdir)/'`concurrency/kernel.c 871 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) concurrency/$(DEPDIR)/libcfa_d_a-kernel.Tpo concurrency/$(DEPDIR)/libcfa_d_a-kernel.Po 872 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='concurrency/kernel.c' object='concurrency/libcfa_d_a-kernel.o' libtool=no @AMDEPBACKSLASH@ 873 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 874 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o concurrency/libcfa_d_a-kernel.o `test -f 'concurrency/kernel.c' || echo '$(srcdir)/'`concurrency/kernel.c 875 876 concurrency/libcfa_d_a-kernel.obj: concurrency/kernel.c 877 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT concurrency/libcfa_d_a-kernel.obj -MD -MP -MF concurrency/$(DEPDIR)/libcfa_d_a-kernel.Tpo -c -o concurrency/libcfa_d_a-kernel.obj `if test -f 'concurrency/kernel.c'; then $(CYGPATH_W) 'concurrency/kernel.c'; else $(CYGPATH_W) '$(srcdir)/concurrency/kernel.c'; fi` 878 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) concurrency/$(DEPDIR)/libcfa_d_a-kernel.Tpo concurrency/$(DEPDIR)/libcfa_d_a-kernel.Po 879 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='concurrency/kernel.c' object='concurrency/libcfa_d_a-kernel.obj' libtool=no @AMDEPBACKSLASH@ 880 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 881 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o concurrency/libcfa_d_a-kernel.obj `if test -f 'concurrency/kernel.c'; then $(CYGPATH_W) 'concurrency/kernel.c'; else $(CYGPATH_W) '$(srcdir)/concurrency/kernel.c'; fi` 882 883 concurrency/libcfa_d_a-monitor.o: concurrency/monitor.c 884 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT concurrency/libcfa_d_a-monitor.o -MD -MP -MF concurrency/$(DEPDIR)/libcfa_d_a-monitor.Tpo -c -o concurrency/libcfa_d_a-monitor.o `test -f 'concurrency/monitor.c' || echo '$(srcdir)/'`concurrency/monitor.c 885 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) concurrency/$(DEPDIR)/libcfa_d_a-monitor.Tpo concurrency/$(DEPDIR)/libcfa_d_a-monitor.Po 886 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='concurrency/monitor.c' object='concurrency/libcfa_d_a-monitor.o' libtool=no @AMDEPBACKSLASH@ 887 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 888 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o concurrency/libcfa_d_a-monitor.o `test -f 'concurrency/monitor.c' || echo '$(srcdir)/'`concurrency/monitor.c 889 890 concurrency/libcfa_d_a-monitor.obj: concurrency/monitor.c 891 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT concurrency/libcfa_d_a-monitor.obj -MD -MP -MF concurrency/$(DEPDIR)/libcfa_d_a-monitor.Tpo -c -o concurrency/libcfa_d_a-monitor.obj `if test -f 'concurrency/monitor.c'; then $(CYGPATH_W) 'concurrency/monitor.c'; else $(CYGPATH_W) '$(srcdir)/concurrency/monitor.c'; fi` 892 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) concurrency/$(DEPDIR)/libcfa_d_a-monitor.Tpo concurrency/$(DEPDIR)/libcfa_d_a-monitor.Po 893 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='concurrency/monitor.c' object='concurrency/libcfa_d_a-monitor.obj' libtool=no @AMDEPBACKSLASH@ 894 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 895 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o concurrency/libcfa_d_a-monitor.obj `if test -f 'concurrency/monitor.c'; then $(CYGPATH_W) 'concurrency/monitor.c'; else $(CYGPATH_W) '$(srcdir)/concurrency/monitor.c'; fi` 896 699 897 libcfa_d_a-assert.o: assert.c 700 898 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-assert.o -MD -MP -MF $(DEPDIR)/libcfa_d_a-assert.Tpo -c -o libcfa_d_a-assert.o `test -f 'assert.c' || echo '$(srcdir)/'`assert.c … … 711 909 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-assert.obj `if test -f 'assert.c'; then $(CYGPATH_W) 'assert.c'; else $(CYGPATH_W) '$(srcdir)/assert.c'; fi` 712 910 713 libcfa_d_a-fstream.o: fstream.c714 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-fstream.o -MD -MP -MF $(DEPDIR)/libcfa_d_a-fstream.Tpo -c -o libcfa_d_a-fstream.o `test -f 'fstream.c' || echo '$(srcdir)/'`fstream.c715 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-fstream.Tpo $(DEPDIR)/libcfa_d_a-fstream.Po716 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fstream.c' object='libcfa_d_a-fstream.o' libtool=no @AMDEPBACKSLASH@717 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@718 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-fstream.o `test -f 'fstream.c' || echo '$(srcdir)/'`fstream.c719 720 libcfa_d_a-fstream.obj: fstream.c721 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-fstream.obj -MD -MP -MF $(DEPDIR)/libcfa_d_a-fstream.Tpo -c -o libcfa_d_a-fstream.obj `if test -f 'fstream.c'; then $(CYGPATH_W) 'fstream.c'; else $(CYGPATH_W) '$(srcdir)/fstream.c'; fi`722 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-fstream.Tpo $(DEPDIR)/libcfa_d_a-fstream.Po723 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fstream.c' object='libcfa_d_a-fstream.obj' libtool=no @AMDEPBACKSLASH@724 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@725 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-fstream.obj `if test -f 'fstream.c'; then $(CYGPATH_W) 'fstream.c'; else $(CYGPATH_W) '$(srcdir)/fstream.c'; fi`726 727 libcfa_d_a-iostream.o: iostream.c728 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-iostream.o -MD -MP -MF $(DEPDIR)/libcfa_d_a-iostream.Tpo -c -o libcfa_d_a-iostream.o `test -f 'iostream.c' || echo '$(srcdir)/'`iostream.c729 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-iostream.Tpo $(DEPDIR)/libcfa_d_a-iostream.Po730 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='iostream.c' object='libcfa_d_a-iostream.o' libtool=no @AMDEPBACKSLASH@731 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@732 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-iostream.o `test -f 'iostream.c' || echo '$(srcdir)/'`iostream.c733 734 libcfa_d_a-iostream.obj: iostream.c735 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-iostream.obj -MD -MP -MF $(DEPDIR)/libcfa_d_a-iostream.Tpo -c -o libcfa_d_a-iostream.obj `if test -f 'iostream.c'; then $(CYGPATH_W) 'iostream.c'; else $(CYGPATH_W) '$(srcdir)/iostream.c'; fi`736 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-iostream.Tpo $(DEPDIR)/libcfa_d_a-iostream.Po737 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='iostream.c' object='libcfa_d_a-iostream.obj' libtool=no @AMDEPBACKSLASH@738 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@739 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-iostream.obj `if test -f 'iostream.c'; then $(CYGPATH_W) 'iostream.c'; else $(CYGPATH_W) '$(srcdir)/iostream.c'; fi`740 741 libcfa_d_a-iterator.o: iterator.c742 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-iterator.o -MD -MP -MF $(DEPDIR)/libcfa_d_a-iterator.Tpo -c -o libcfa_d_a-iterator.o `test -f 'iterator.c' || echo '$(srcdir)/'`iterator.c743 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-iterator.Tpo $(DEPDIR)/libcfa_d_a-iterator.Po744 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='iterator.c' object='libcfa_d_a-iterator.o' libtool=no @AMDEPBACKSLASH@745 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@746 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-iterator.o `test -f 'iterator.c' || echo '$(srcdir)/'`iterator.c747 748 libcfa_d_a-iterator.obj: iterator.c749 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-iterator.obj -MD -MP -MF $(DEPDIR)/libcfa_d_a-iterator.Tpo -c -o libcfa_d_a-iterator.obj `if test -f 'iterator.c'; then $(CYGPATH_W) 'iterator.c'; else $(CYGPATH_W) '$(srcdir)/iterator.c'; fi`750 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-iterator.Tpo $(DEPDIR)/libcfa_d_a-iterator.Po751 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='iterator.c' object='libcfa_d_a-iterator.obj' libtool=no @AMDEPBACKSLASH@752 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@753 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-iterator.obj `if test -f 'iterator.c'; then $(CYGPATH_W) 'iterator.c'; else $(CYGPATH_W) '$(srcdir)/iterator.c'; fi`754 755 libcfa_d_a-limits.o: limits.c756 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-limits.o -MD -MP -MF $(DEPDIR)/libcfa_d_a-limits.Tpo -c -o libcfa_d_a-limits.o `test -f 'limits.c' || echo '$(srcdir)/'`limits.c757 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-limits.Tpo $(DEPDIR)/libcfa_d_a-limits.Po758 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='limits.c' object='libcfa_d_a-limits.o' libtool=no @AMDEPBACKSLASH@759 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@760 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-limits.o `test -f 'limits.c' || echo '$(srcdir)/'`limits.c761 762 libcfa_d_a-limits.obj: limits.c763 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-limits.obj -MD -MP -MF $(DEPDIR)/libcfa_d_a-limits.Tpo -c -o libcfa_d_a-limits.obj `if test -f 'limits.c'; then $(CYGPATH_W) 'limits.c'; else $(CYGPATH_W) '$(srcdir)/limits.c'; fi`764 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-limits.Tpo $(DEPDIR)/libcfa_d_a-limits.Po765 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='limits.c' object='libcfa_d_a-limits.obj' libtool=no @AMDEPBACKSLASH@766 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@767 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-limits.obj `if test -f 'limits.c'; then $(CYGPATH_W) 'limits.c'; else $(CYGPATH_W) '$(srcdir)/limits.c'; fi`768 769 libcfa_d_a-math.o: math.c770 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-math.o -MD -MP -MF $(DEPDIR)/libcfa_d_a-math.Tpo -c -o libcfa_d_a-math.o `test -f 'math.c' || echo '$(srcdir)/'`math.c771 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-math.Tpo $(DEPDIR)/libcfa_d_a-math.Po772 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='math.c' object='libcfa_d_a-math.o' libtool=no @AMDEPBACKSLASH@773 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@774 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-math.o `test -f 'math.c' || echo '$(srcdir)/'`math.c775 776 libcfa_d_a-math.obj: math.c777 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-math.obj -MD -MP -MF $(DEPDIR)/libcfa_d_a-math.Tpo -c -o libcfa_d_a-math.obj `if test -f 'math.c'; then $(CYGPATH_W) 'math.c'; else $(CYGPATH_W) '$(srcdir)/math.c'; fi`778 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-math.Tpo $(DEPDIR)/libcfa_d_a-math.Po779 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='math.c' object='libcfa_d_a-math.obj' libtool=no @AMDEPBACKSLASH@780 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@781 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-math.obj `if test -f 'math.c'; then $(CYGPATH_W) 'math.c'; else $(CYGPATH_W) '$(srcdir)/math.c'; fi`782 783 libcfa_d_a-rational.o: rational.c784 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-rational.o -MD -MP -MF $(DEPDIR)/libcfa_d_a-rational.Tpo -c -o libcfa_d_a-rational.o `test -f 'rational.c' || echo '$(srcdir)/'`rational.c785 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-rational.Tpo $(DEPDIR)/libcfa_d_a-rational.Po786 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rational.c' object='libcfa_d_a-rational.o' libtool=no @AMDEPBACKSLASH@787 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@788 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-rational.o `test -f 'rational.c' || echo '$(srcdir)/'`rational.c789 790 libcfa_d_a-rational.obj: rational.c791 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-rational.obj -MD -MP -MF $(DEPDIR)/libcfa_d_a-rational.Tpo -c -o libcfa_d_a-rational.obj `if test -f 'rational.c'; then $(CYGPATH_W) 'rational.c'; else $(CYGPATH_W) '$(srcdir)/rational.c'; fi`792 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-rational.Tpo $(DEPDIR)/libcfa_d_a-rational.Po793 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rational.c' object='libcfa_d_a-rational.obj' libtool=no @AMDEPBACKSLASH@794 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@795 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-rational.obj `if test -f 'rational.c'; then $(CYGPATH_W) 'rational.c'; else $(CYGPATH_W) '$(srcdir)/rational.c'; fi`796 797 libcfa_d_a-stdlib.o: stdlib.c798 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-stdlib.o -MD -MP -MF $(DEPDIR)/libcfa_d_a-stdlib.Tpo -c -o libcfa_d_a-stdlib.o `test -f 'stdlib.c' || echo '$(srcdir)/'`stdlib.c799 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-stdlib.Tpo $(DEPDIR)/libcfa_d_a-stdlib.Po800 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='stdlib.c' object='libcfa_d_a-stdlib.o' libtool=no @AMDEPBACKSLASH@801 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@802 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-stdlib.o `test -f 'stdlib.c' || echo '$(srcdir)/'`stdlib.c803 804 libcfa_d_a-stdlib.obj: stdlib.c805 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-stdlib.obj -MD -MP -MF $(DEPDIR)/libcfa_d_a-stdlib.Tpo -c -o libcfa_d_a-stdlib.obj `if test -f 'stdlib.c'; then $(CYGPATH_W) 'stdlib.c'; else $(CYGPATH_W) '$(srcdir)/stdlib.c'; fi`806 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-stdlib.Tpo $(DEPDIR)/libcfa_d_a-stdlib.Po807 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='stdlib.c' object='libcfa_d_a-stdlib.obj' libtool=no @AMDEPBACKSLASH@808 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@809 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-stdlib.obj `if test -f 'stdlib.c'; then $(CYGPATH_W) 'stdlib.c'; else $(CYGPATH_W) '$(srcdir)/stdlib.c'; fi`810 811 containers/libcfa_d_a-maybe.o: containers/maybe.c812 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT containers/libcfa_d_a-maybe.o -MD -MP -MF containers/$(DEPDIR)/libcfa_d_a-maybe.Tpo -c -o containers/libcfa_d_a-maybe.o `test -f 'containers/maybe.c' || echo '$(srcdir)/'`containers/maybe.c813 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) containers/$(DEPDIR)/libcfa_d_a-maybe.Tpo containers/$(DEPDIR)/libcfa_d_a-maybe.Po814 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='containers/maybe.c' object='containers/libcfa_d_a-maybe.o' libtool=no @AMDEPBACKSLASH@815 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@816 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o containers/libcfa_d_a-maybe.o `test -f 'containers/maybe.c' || echo '$(srcdir)/'`containers/maybe.c817 818 containers/libcfa_d_a-maybe.obj: containers/maybe.c819 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT containers/libcfa_d_a-maybe.obj -MD -MP -MF containers/$(DEPDIR)/libcfa_d_a-maybe.Tpo -c -o containers/libcfa_d_a-maybe.obj `if test -f 'containers/maybe.c'; then $(CYGPATH_W) 'containers/maybe.c'; else $(CYGPATH_W) '$(srcdir)/containers/maybe.c'; fi`820 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) containers/$(DEPDIR)/libcfa_d_a-maybe.Tpo containers/$(DEPDIR)/libcfa_d_a-maybe.Po821 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='containers/maybe.c' object='containers/libcfa_d_a-maybe.obj' libtool=no @AMDEPBACKSLASH@822 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@823 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o containers/libcfa_d_a-maybe.obj `if test -f 'containers/maybe.c'; then $(CYGPATH_W) 'containers/maybe.c'; else $(CYGPATH_W) '$(srcdir)/containers/maybe.c'; fi`824 825 containers/libcfa_d_a-pair.o: containers/pair.c826 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT containers/libcfa_d_a-pair.o -MD -MP -MF containers/$(DEPDIR)/libcfa_d_a-pair.Tpo -c -o containers/libcfa_d_a-pair.o `test -f 'containers/pair.c' || echo '$(srcdir)/'`containers/pair.c827 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) containers/$(DEPDIR)/libcfa_d_a-pair.Tpo containers/$(DEPDIR)/libcfa_d_a-pair.Po828 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='containers/pair.c' object='containers/libcfa_d_a-pair.o' libtool=no @AMDEPBACKSLASH@829 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@830 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o containers/libcfa_d_a-pair.o `test -f 'containers/pair.c' || echo '$(srcdir)/'`containers/pair.c831 832 containers/libcfa_d_a-pair.obj: containers/pair.c833 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT containers/libcfa_d_a-pair.obj -MD -MP -MF containers/$(DEPDIR)/libcfa_d_a-pair.Tpo -c -o containers/libcfa_d_a-pair.obj `if test -f 'containers/pair.c'; then $(CYGPATH_W) 'containers/pair.c'; else $(CYGPATH_W) '$(srcdir)/containers/pair.c'; fi`834 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) containers/$(DEPDIR)/libcfa_d_a-pair.Tpo containers/$(DEPDIR)/libcfa_d_a-pair.Po835 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='containers/pair.c' object='containers/libcfa_d_a-pair.obj' libtool=no @AMDEPBACKSLASH@836 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@837 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o containers/libcfa_d_a-pair.obj `if test -f 'containers/pair.c'; then $(CYGPATH_W) 'containers/pair.c'; else $(CYGPATH_W) '$(srcdir)/containers/pair.c'; fi`838 839 containers/libcfa_d_a-result.o: containers/result.c840 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT containers/libcfa_d_a-result.o -MD -MP -MF containers/$(DEPDIR)/libcfa_d_a-result.Tpo -c -o containers/libcfa_d_a-result.o `test -f 'containers/result.c' || echo '$(srcdir)/'`containers/result.c841 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) containers/$(DEPDIR)/libcfa_d_a-result.Tpo containers/$(DEPDIR)/libcfa_d_a-result.Po842 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='containers/result.c' object='containers/libcfa_d_a-result.o' libtool=no @AMDEPBACKSLASH@843 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@844 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o containers/libcfa_d_a-result.o `test -f 'containers/result.c' || echo '$(srcdir)/'`containers/result.c845 846 containers/libcfa_d_a-result.obj: containers/result.c847 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT containers/libcfa_d_a-result.obj -MD -MP -MF containers/$(DEPDIR)/libcfa_d_a-result.Tpo -c -o containers/libcfa_d_a-result.obj `if test -f 'containers/result.c'; then $(CYGPATH_W) 'containers/result.c'; else $(CYGPATH_W) '$(srcdir)/containers/result.c'; fi`848 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) containers/$(DEPDIR)/libcfa_d_a-result.Tpo containers/$(DEPDIR)/libcfa_d_a-result.Po849 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='containers/result.c' object='containers/libcfa_d_a-result.obj' libtool=no @AMDEPBACKSLASH@850 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@851 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o containers/libcfa_d_a-result.obj `if test -f 'containers/result.c'; then $(CYGPATH_W) 'containers/result.c'; else $(CYGPATH_W) '$(srcdir)/containers/result.c'; fi`852 853 containers/libcfa_d_a-vector.o: containers/vector.c854 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT containers/libcfa_d_a-vector.o -MD -MP -MF containers/$(DEPDIR)/libcfa_d_a-vector.Tpo -c -o containers/libcfa_d_a-vector.o `test -f 'containers/vector.c' || echo '$(srcdir)/'`containers/vector.c855 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) containers/$(DEPDIR)/libcfa_d_a-vector.Tpo containers/$(DEPDIR)/libcfa_d_a-vector.Po856 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='containers/vector.c' object='containers/libcfa_d_a-vector.o' libtool=no @AMDEPBACKSLASH@857 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@858 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o containers/libcfa_d_a-vector.o `test -f 'containers/vector.c' || echo '$(srcdir)/'`containers/vector.c859 860 containers/libcfa_d_a-vector.obj: containers/vector.c861 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT containers/libcfa_d_a-vector.obj -MD -MP -MF containers/$(DEPDIR)/libcfa_d_a-vector.Tpo -c -o containers/libcfa_d_a-vector.obj `if test -f 'containers/vector.c'; then $(CYGPATH_W) 'containers/vector.c'; else $(CYGPATH_W) '$(srcdir)/containers/vector.c'; fi`862 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) containers/$(DEPDIR)/libcfa_d_a-vector.Tpo containers/$(DEPDIR)/libcfa_d_a-vector.Po863 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='containers/vector.c' object='containers/libcfa_d_a-vector.obj' libtool=no @AMDEPBACKSLASH@864 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@865 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o containers/libcfa_d_a-vector.obj `if test -f 'containers/vector.c'; then $(CYGPATH_W) 'containers/vector.c'; else $(CYGPATH_W) '$(srcdir)/containers/vector.c'; fi`866 867 concurrency/libcfa_d_a-coroutine.o: concurrency/coroutine.c868 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT concurrency/libcfa_d_a-coroutine.o -MD -MP -MF concurrency/$(DEPDIR)/libcfa_d_a-coroutine.Tpo -c -o concurrency/libcfa_d_a-coroutine.o `test -f 'concurrency/coroutine.c' || echo '$(srcdir)/'`concurrency/coroutine.c869 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) concurrency/$(DEPDIR)/libcfa_d_a-coroutine.Tpo concurrency/$(DEPDIR)/libcfa_d_a-coroutine.Po870 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='concurrency/coroutine.c' object='concurrency/libcfa_d_a-coroutine.o' libtool=no @AMDEPBACKSLASH@871 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@872 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o concurrency/libcfa_d_a-coroutine.o `test -f 'concurrency/coroutine.c' || echo '$(srcdir)/'`concurrency/coroutine.c873 874 concurrency/libcfa_d_a-coroutine.obj: concurrency/coroutine.c875 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT concurrency/libcfa_d_a-coroutine.obj -MD -MP -MF concurrency/$(DEPDIR)/libcfa_d_a-coroutine.Tpo -c -o concurrency/libcfa_d_a-coroutine.obj `if test -f 'concurrency/coroutine.c'; then $(CYGPATH_W) 'concurrency/coroutine.c'; else $(CYGPATH_W) '$(srcdir)/concurrency/coroutine.c'; fi`876 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) concurrency/$(DEPDIR)/libcfa_d_a-coroutine.Tpo concurrency/$(DEPDIR)/libcfa_d_a-coroutine.Po877 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='concurrency/coroutine.c' object='concurrency/libcfa_d_a-coroutine.obj' libtool=no @AMDEPBACKSLASH@878 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@879 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o concurrency/libcfa_d_a-coroutine.obj `if test -f 'concurrency/coroutine.c'; then $(CYGPATH_W) 'concurrency/coroutine.c'; else $(CYGPATH_W) '$(srcdir)/concurrency/coroutine.c'; fi`880 881 concurrency/libcfa_d_a-thread.o: concurrency/thread.c882 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT concurrency/libcfa_d_a-thread.o -MD -MP -MF concurrency/$(DEPDIR)/libcfa_d_a-thread.Tpo -c -o concurrency/libcfa_d_a-thread.o `test -f 'concurrency/thread.c' || echo '$(srcdir)/'`concurrency/thread.c883 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) concurrency/$(DEPDIR)/libcfa_d_a-thread.Tpo concurrency/$(DEPDIR)/libcfa_d_a-thread.Po884 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='concurrency/thread.c' object='concurrency/libcfa_d_a-thread.o' libtool=no @AMDEPBACKSLASH@885 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@886 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o concurrency/libcfa_d_a-thread.o `test -f 'concurrency/thread.c' || echo '$(srcdir)/'`concurrency/thread.c887 888 concurrency/libcfa_d_a-thread.obj: concurrency/thread.c889 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT concurrency/libcfa_d_a-thread.obj -MD -MP -MF concurrency/$(DEPDIR)/libcfa_d_a-thread.Tpo -c -o concurrency/libcfa_d_a-thread.obj `if test -f 'concurrency/thread.c'; then $(CYGPATH_W) 'concurrency/thread.c'; else $(CYGPATH_W) '$(srcdir)/concurrency/thread.c'; fi`890 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) concurrency/$(DEPDIR)/libcfa_d_a-thread.Tpo concurrency/$(DEPDIR)/libcfa_d_a-thread.Po891 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='concurrency/thread.c' object='concurrency/libcfa_d_a-thread.obj' libtool=no @AMDEPBACKSLASH@892 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@893 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o concurrency/libcfa_d_a-thread.obj `if test -f 'concurrency/thread.c'; then $(CYGPATH_W) 'concurrency/thread.c'; else $(CYGPATH_W) '$(srcdir)/concurrency/thread.c'; fi`894 895 concurrency/libcfa_d_a-kernel.o: concurrency/kernel.c896 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT concurrency/libcfa_d_a-kernel.o -MD -MP -MF concurrency/$(DEPDIR)/libcfa_d_a-kernel.Tpo -c -o concurrency/libcfa_d_a-kernel.o `test -f 'concurrency/kernel.c' || echo '$(srcdir)/'`concurrency/kernel.c897 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) concurrency/$(DEPDIR)/libcfa_d_a-kernel.Tpo concurrency/$(DEPDIR)/libcfa_d_a-kernel.Po898 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='concurrency/kernel.c' object='concurrency/libcfa_d_a-kernel.o' libtool=no @AMDEPBACKSLASH@899 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@900 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o concurrency/libcfa_d_a-kernel.o `test -f 'concurrency/kernel.c' || echo '$(srcdir)/'`concurrency/kernel.c901 902 concurrency/libcfa_d_a-kernel.obj: concurrency/kernel.c903 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT concurrency/libcfa_d_a-kernel.obj -MD -MP -MF concurrency/$(DEPDIR)/libcfa_d_a-kernel.Tpo -c -o concurrency/libcfa_d_a-kernel.obj `if test -f 'concurrency/kernel.c'; then $(CYGPATH_W) 'concurrency/kernel.c'; else $(CYGPATH_W) '$(srcdir)/concurrency/kernel.c'; fi`904 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) concurrency/$(DEPDIR)/libcfa_d_a-kernel.Tpo concurrency/$(DEPDIR)/libcfa_d_a-kernel.Po905 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='concurrency/kernel.c' object='concurrency/libcfa_d_a-kernel.obj' libtool=no @AMDEPBACKSLASH@906 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@907 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o concurrency/libcfa_d_a-kernel.obj `if test -f 'concurrency/kernel.c'; then $(CYGPATH_W) 'concurrency/kernel.c'; else $(CYGPATH_W) '$(srcdir)/concurrency/kernel.c'; fi`908 909 concurrency/libcfa_d_a-monitor.o: concurrency/monitor.c910 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT concurrency/libcfa_d_a-monitor.o -MD -MP -MF concurrency/$(DEPDIR)/libcfa_d_a-monitor.Tpo -c -o concurrency/libcfa_d_a-monitor.o `test -f 'concurrency/monitor.c' || echo '$(srcdir)/'`concurrency/monitor.c911 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) concurrency/$(DEPDIR)/libcfa_d_a-monitor.Tpo concurrency/$(DEPDIR)/libcfa_d_a-monitor.Po912 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='concurrency/monitor.c' object='concurrency/libcfa_d_a-monitor.o' libtool=no @AMDEPBACKSLASH@913 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@914 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o concurrency/libcfa_d_a-monitor.o `test -f 'concurrency/monitor.c' || echo '$(srcdir)/'`concurrency/monitor.c915 916 concurrency/libcfa_d_a-monitor.obj: concurrency/monitor.c917 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT concurrency/libcfa_d_a-monitor.obj -MD -MP -MF concurrency/$(DEPDIR)/libcfa_d_a-monitor.Tpo -c -o concurrency/libcfa_d_a-monitor.obj `if test -f 'concurrency/monitor.c'; then $(CYGPATH_W) 'concurrency/monitor.c'; else $(CYGPATH_W) '$(srcdir)/concurrency/monitor.c'; fi`918 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) concurrency/$(DEPDIR)/libcfa_d_a-monitor.Tpo concurrency/$(DEPDIR)/libcfa_d_a-monitor.Po919 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='concurrency/monitor.c' object='concurrency/libcfa_d_a-monitor.obj' libtool=no @AMDEPBACKSLASH@920 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@921 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o concurrency/libcfa_d_a-monitor.obj `if test -f 'concurrency/monitor.c'; then $(CYGPATH_W) 'concurrency/monitor.c'; else $(CYGPATH_W) '$(srcdir)/concurrency/monitor.c'; fi`922 923 911 libcfa_d_a-exception.obj: exception.c 924 912 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-exception.obj -MD -MP -MF $(DEPDIR)/libcfa_d_a-exception.Tpo -c -o libcfa_d_a-exception.obj `if test -f 'exception.c'; then $(CYGPATH_W) 'exception.c'; else $(CYGPATH_W) '$(srcdir)/exception.c'; fi` … … 928 916 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-exception.obj `if test -f 'exception.c'; then $(CYGPATH_W) 'exception.c'; else $(CYGPATH_W) '$(srcdir)/exception.c'; fi` 929 917 918 libcfa_d_a-typeobject.obj: typeobject.c 919 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-typeobject.obj -MD -MP -MF $(DEPDIR)/libcfa_d_a-typeobject.Tpo -c -o libcfa_d_a-typeobject.obj `if test -f 'typeobject.c'; then $(CYGPATH_W) 'typeobject.c'; else $(CYGPATH_W) '$(srcdir)/typeobject.c'; fi` 920 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-typeobject.Tpo $(DEPDIR)/libcfa_d_a-typeobject.Po 921 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='typeobject.c' object='libcfa_d_a-typeobject.obj' libtool=no @AMDEPBACKSLASH@ 922 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 923 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-typeobject.obj `if test -f 'typeobject.c'; then $(CYGPATH_W) 'typeobject.c'; else $(CYGPATH_W) '$(srcdir)/typeobject.c'; fi` 924 930 925 concurrency/libcfa_d_a-alarm.o: concurrency/alarm.c 931 926 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT concurrency/libcfa_d_a-alarm.o -MD -MP -MF concurrency/$(DEPDIR)/libcfa_d_a-alarm.Tpo -c -o concurrency/libcfa_d_a-alarm.o `test -f 'concurrency/alarm.c' || echo '$(srcdir)/'`concurrency/alarm.c … … 998 993 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libhdr/libcfa_a-libdebug.obj `if test -f 'libhdr/libdebug.c'; then $(CYGPATH_W) 'libhdr/libdebug.c'; else $(CYGPATH_W) '$(srcdir)/libhdr/libdebug.c'; fi` 999 994 995 libcfa_a-fstream.o: fstream.c 996 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-fstream.o -MD -MP -MF $(DEPDIR)/libcfa_a-fstream.Tpo -c -o libcfa_a-fstream.o `test -f 'fstream.c' || echo '$(srcdir)/'`fstream.c 997 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-fstream.Tpo $(DEPDIR)/libcfa_a-fstream.Po 998 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fstream.c' object='libcfa_a-fstream.o' libtool=no @AMDEPBACKSLASH@ 999 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1000 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-fstream.o `test -f 'fstream.c' || echo '$(srcdir)/'`fstream.c 1001 1002 libcfa_a-fstream.obj: fstream.c 1003 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-fstream.obj -MD -MP -MF $(DEPDIR)/libcfa_a-fstream.Tpo -c -o libcfa_a-fstream.obj `if test -f 'fstream.c'; then $(CYGPATH_W) 'fstream.c'; else $(CYGPATH_W) '$(srcdir)/fstream.c'; fi` 1004 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-fstream.Tpo $(DEPDIR)/libcfa_a-fstream.Po 1005 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fstream.c' object='libcfa_a-fstream.obj' libtool=no @AMDEPBACKSLASH@ 1006 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1007 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-fstream.obj `if test -f 'fstream.c'; then $(CYGPATH_W) 'fstream.c'; else $(CYGPATH_W) '$(srcdir)/fstream.c'; fi` 1008 1009 libcfa_a-iostream.o: iostream.c 1010 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-iostream.o -MD -MP -MF $(DEPDIR)/libcfa_a-iostream.Tpo -c -o libcfa_a-iostream.o `test -f 'iostream.c' || echo '$(srcdir)/'`iostream.c 1011 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-iostream.Tpo $(DEPDIR)/libcfa_a-iostream.Po 1012 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='iostream.c' object='libcfa_a-iostream.o' libtool=no @AMDEPBACKSLASH@ 1013 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1014 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-iostream.o `test -f 'iostream.c' || echo '$(srcdir)/'`iostream.c 1015 1016 libcfa_a-iostream.obj: iostream.c 1017 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-iostream.obj -MD -MP -MF $(DEPDIR)/libcfa_a-iostream.Tpo -c -o libcfa_a-iostream.obj `if test -f 'iostream.c'; then $(CYGPATH_W) 'iostream.c'; else $(CYGPATH_W) '$(srcdir)/iostream.c'; fi` 1018 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-iostream.Tpo $(DEPDIR)/libcfa_a-iostream.Po 1019 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='iostream.c' object='libcfa_a-iostream.obj' libtool=no @AMDEPBACKSLASH@ 1020 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1021 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-iostream.obj `if test -f 'iostream.c'; then $(CYGPATH_W) 'iostream.c'; else $(CYGPATH_W) '$(srcdir)/iostream.c'; fi` 1022 1023 libcfa_a-iterator.o: iterator.c 1024 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-iterator.o -MD -MP -MF $(DEPDIR)/libcfa_a-iterator.Tpo -c -o libcfa_a-iterator.o `test -f 'iterator.c' || echo '$(srcdir)/'`iterator.c 1025 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-iterator.Tpo $(DEPDIR)/libcfa_a-iterator.Po 1026 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='iterator.c' object='libcfa_a-iterator.o' libtool=no @AMDEPBACKSLASH@ 1027 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1028 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-iterator.o `test -f 'iterator.c' || echo '$(srcdir)/'`iterator.c 1029 1030 libcfa_a-iterator.obj: iterator.c 1031 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-iterator.obj -MD -MP -MF $(DEPDIR)/libcfa_a-iterator.Tpo -c -o libcfa_a-iterator.obj `if test -f 'iterator.c'; then $(CYGPATH_W) 'iterator.c'; else $(CYGPATH_W) '$(srcdir)/iterator.c'; fi` 1032 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-iterator.Tpo $(DEPDIR)/libcfa_a-iterator.Po 1033 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='iterator.c' object='libcfa_a-iterator.obj' libtool=no @AMDEPBACKSLASH@ 1034 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1035 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-iterator.obj `if test -f 'iterator.c'; then $(CYGPATH_W) 'iterator.c'; else $(CYGPATH_W) '$(srcdir)/iterator.c'; fi` 1036 1037 libcfa_a-limits.o: limits.c 1038 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-limits.o -MD -MP -MF $(DEPDIR)/libcfa_a-limits.Tpo -c -o libcfa_a-limits.o `test -f 'limits.c' || echo '$(srcdir)/'`limits.c 1039 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-limits.Tpo $(DEPDIR)/libcfa_a-limits.Po 1040 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='limits.c' object='libcfa_a-limits.o' libtool=no @AMDEPBACKSLASH@ 1041 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1042 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-limits.o `test -f 'limits.c' || echo '$(srcdir)/'`limits.c 1043 1044 libcfa_a-limits.obj: limits.c 1045 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-limits.obj -MD -MP -MF $(DEPDIR)/libcfa_a-limits.Tpo -c -o libcfa_a-limits.obj `if test -f 'limits.c'; then $(CYGPATH_W) 'limits.c'; else $(CYGPATH_W) '$(srcdir)/limits.c'; fi` 1046 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-limits.Tpo $(DEPDIR)/libcfa_a-limits.Po 1047 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='limits.c' object='libcfa_a-limits.obj' libtool=no @AMDEPBACKSLASH@ 1048 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1049 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-limits.obj `if test -f 'limits.c'; then $(CYGPATH_W) 'limits.c'; else $(CYGPATH_W) '$(srcdir)/limits.c'; fi` 1050 1051 libcfa_a-rational.o: rational.c 1052 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-rational.o -MD -MP -MF $(DEPDIR)/libcfa_a-rational.Tpo -c -o libcfa_a-rational.o `test -f 'rational.c' || echo '$(srcdir)/'`rational.c 1053 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-rational.Tpo $(DEPDIR)/libcfa_a-rational.Po 1054 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rational.c' object='libcfa_a-rational.o' libtool=no @AMDEPBACKSLASH@ 1055 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1056 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-rational.o `test -f 'rational.c' || echo '$(srcdir)/'`rational.c 1057 1058 libcfa_a-rational.obj: rational.c 1059 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-rational.obj -MD -MP -MF $(DEPDIR)/libcfa_a-rational.Tpo -c -o libcfa_a-rational.obj `if test -f 'rational.c'; then $(CYGPATH_W) 'rational.c'; else $(CYGPATH_W) '$(srcdir)/rational.c'; fi` 1060 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-rational.Tpo $(DEPDIR)/libcfa_a-rational.Po 1061 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rational.c' object='libcfa_a-rational.obj' libtool=no @AMDEPBACKSLASH@ 1062 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1063 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-rational.obj `if test -f 'rational.c'; then $(CYGPATH_W) 'rational.c'; else $(CYGPATH_W) '$(srcdir)/rational.c'; fi` 1064 1065 libcfa_a-stdlib.o: stdlib.c 1066 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-stdlib.o -MD -MP -MF $(DEPDIR)/libcfa_a-stdlib.Tpo -c -o libcfa_a-stdlib.o `test -f 'stdlib.c' || echo '$(srcdir)/'`stdlib.c 1067 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-stdlib.Tpo $(DEPDIR)/libcfa_a-stdlib.Po 1068 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='stdlib.c' object='libcfa_a-stdlib.o' libtool=no @AMDEPBACKSLASH@ 1069 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1070 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-stdlib.o `test -f 'stdlib.c' || echo '$(srcdir)/'`stdlib.c 1071 1072 libcfa_a-stdlib.obj: stdlib.c 1073 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-stdlib.obj -MD -MP -MF $(DEPDIR)/libcfa_a-stdlib.Tpo -c -o libcfa_a-stdlib.obj `if test -f 'stdlib.c'; then $(CYGPATH_W) 'stdlib.c'; else $(CYGPATH_W) '$(srcdir)/stdlib.c'; fi` 1074 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-stdlib.Tpo $(DEPDIR)/libcfa_a-stdlib.Po 1075 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='stdlib.c' object='libcfa_a-stdlib.obj' libtool=no @AMDEPBACKSLASH@ 1076 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1077 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-stdlib.obj `if test -f 'stdlib.c'; then $(CYGPATH_W) 'stdlib.c'; else $(CYGPATH_W) '$(srcdir)/stdlib.c'; fi` 1078 1079 containers/libcfa_a-maybe.o: containers/maybe.c 1080 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT containers/libcfa_a-maybe.o -MD -MP -MF containers/$(DEPDIR)/libcfa_a-maybe.Tpo -c -o containers/libcfa_a-maybe.o `test -f 'containers/maybe.c' || echo '$(srcdir)/'`containers/maybe.c 1081 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) containers/$(DEPDIR)/libcfa_a-maybe.Tpo containers/$(DEPDIR)/libcfa_a-maybe.Po 1082 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='containers/maybe.c' object='containers/libcfa_a-maybe.o' libtool=no @AMDEPBACKSLASH@ 1083 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1084 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o containers/libcfa_a-maybe.o `test -f 'containers/maybe.c' || echo '$(srcdir)/'`containers/maybe.c 1085 1086 containers/libcfa_a-maybe.obj: containers/maybe.c 1087 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT containers/libcfa_a-maybe.obj -MD -MP -MF containers/$(DEPDIR)/libcfa_a-maybe.Tpo -c -o containers/libcfa_a-maybe.obj `if test -f 'containers/maybe.c'; then $(CYGPATH_W) 'containers/maybe.c'; else $(CYGPATH_W) '$(srcdir)/containers/maybe.c'; fi` 1088 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) containers/$(DEPDIR)/libcfa_a-maybe.Tpo containers/$(DEPDIR)/libcfa_a-maybe.Po 1089 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='containers/maybe.c' object='containers/libcfa_a-maybe.obj' libtool=no @AMDEPBACKSLASH@ 1090 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1091 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o containers/libcfa_a-maybe.obj `if test -f 'containers/maybe.c'; then $(CYGPATH_W) 'containers/maybe.c'; else $(CYGPATH_W) '$(srcdir)/containers/maybe.c'; fi` 1092 1093 containers/libcfa_a-pair.o: containers/pair.c 1094 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT containers/libcfa_a-pair.o -MD -MP -MF containers/$(DEPDIR)/libcfa_a-pair.Tpo -c -o containers/libcfa_a-pair.o `test -f 'containers/pair.c' || echo '$(srcdir)/'`containers/pair.c 1095 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) containers/$(DEPDIR)/libcfa_a-pair.Tpo containers/$(DEPDIR)/libcfa_a-pair.Po 1096 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='containers/pair.c' object='containers/libcfa_a-pair.o' libtool=no @AMDEPBACKSLASH@ 1097 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1098 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o containers/libcfa_a-pair.o `test -f 'containers/pair.c' || echo '$(srcdir)/'`containers/pair.c 1099 1100 containers/libcfa_a-pair.obj: containers/pair.c 1101 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT containers/libcfa_a-pair.obj -MD -MP -MF containers/$(DEPDIR)/libcfa_a-pair.Tpo -c -o containers/libcfa_a-pair.obj `if test -f 'containers/pair.c'; then $(CYGPATH_W) 'containers/pair.c'; else $(CYGPATH_W) '$(srcdir)/containers/pair.c'; fi` 1102 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) containers/$(DEPDIR)/libcfa_a-pair.Tpo containers/$(DEPDIR)/libcfa_a-pair.Po 1103 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='containers/pair.c' object='containers/libcfa_a-pair.obj' libtool=no @AMDEPBACKSLASH@ 1104 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1105 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o containers/libcfa_a-pair.obj `if test -f 'containers/pair.c'; then $(CYGPATH_W) 'containers/pair.c'; else $(CYGPATH_W) '$(srcdir)/containers/pair.c'; fi` 1106 1107 containers/libcfa_a-result.o: containers/result.c 1108 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT containers/libcfa_a-result.o -MD -MP -MF containers/$(DEPDIR)/libcfa_a-result.Tpo -c -o containers/libcfa_a-result.o `test -f 'containers/result.c' || echo '$(srcdir)/'`containers/result.c 1109 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) containers/$(DEPDIR)/libcfa_a-result.Tpo containers/$(DEPDIR)/libcfa_a-result.Po 1110 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='containers/result.c' object='containers/libcfa_a-result.o' libtool=no @AMDEPBACKSLASH@ 1111 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1112 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o containers/libcfa_a-result.o `test -f 'containers/result.c' || echo '$(srcdir)/'`containers/result.c 1113 1114 containers/libcfa_a-result.obj: containers/result.c 1115 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT containers/libcfa_a-result.obj -MD -MP -MF containers/$(DEPDIR)/libcfa_a-result.Tpo -c -o containers/libcfa_a-result.obj `if test -f 'containers/result.c'; then $(CYGPATH_W) 'containers/result.c'; else $(CYGPATH_W) '$(srcdir)/containers/result.c'; fi` 1116 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) containers/$(DEPDIR)/libcfa_a-result.Tpo containers/$(DEPDIR)/libcfa_a-result.Po 1117 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='containers/result.c' object='containers/libcfa_a-result.obj' libtool=no @AMDEPBACKSLASH@ 1118 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1119 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o containers/libcfa_a-result.obj `if test -f 'containers/result.c'; then $(CYGPATH_W) 'containers/result.c'; else $(CYGPATH_W) '$(srcdir)/containers/result.c'; fi` 1120 1121 containers/libcfa_a-vector.o: containers/vector.c 1122 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT containers/libcfa_a-vector.o -MD -MP -MF containers/$(DEPDIR)/libcfa_a-vector.Tpo -c -o containers/libcfa_a-vector.o `test -f 'containers/vector.c' || echo '$(srcdir)/'`containers/vector.c 1123 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) containers/$(DEPDIR)/libcfa_a-vector.Tpo containers/$(DEPDIR)/libcfa_a-vector.Po 1124 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='containers/vector.c' object='containers/libcfa_a-vector.o' libtool=no @AMDEPBACKSLASH@ 1125 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1126 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o containers/libcfa_a-vector.o `test -f 'containers/vector.c' || echo '$(srcdir)/'`containers/vector.c 1127 1128 containers/libcfa_a-vector.obj: containers/vector.c 1129 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT containers/libcfa_a-vector.obj -MD -MP -MF containers/$(DEPDIR)/libcfa_a-vector.Tpo -c -o containers/libcfa_a-vector.obj `if test -f 'containers/vector.c'; then $(CYGPATH_W) 'containers/vector.c'; else $(CYGPATH_W) '$(srcdir)/containers/vector.c'; fi` 1130 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) containers/$(DEPDIR)/libcfa_a-vector.Tpo containers/$(DEPDIR)/libcfa_a-vector.Po 1131 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='containers/vector.c' object='containers/libcfa_a-vector.obj' libtool=no @AMDEPBACKSLASH@ 1132 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1133 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o containers/libcfa_a-vector.obj `if test -f 'containers/vector.c'; then $(CYGPATH_W) 'containers/vector.c'; else $(CYGPATH_W) '$(srcdir)/containers/vector.c'; fi` 1134 1135 concurrency/libcfa_a-coroutine.o: concurrency/coroutine.c 1136 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT concurrency/libcfa_a-coroutine.o -MD -MP -MF concurrency/$(DEPDIR)/libcfa_a-coroutine.Tpo -c -o concurrency/libcfa_a-coroutine.o `test -f 'concurrency/coroutine.c' || echo '$(srcdir)/'`concurrency/coroutine.c 1137 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) concurrency/$(DEPDIR)/libcfa_a-coroutine.Tpo concurrency/$(DEPDIR)/libcfa_a-coroutine.Po 1138 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='concurrency/coroutine.c' object='concurrency/libcfa_a-coroutine.o' libtool=no @AMDEPBACKSLASH@ 1139 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1140 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o concurrency/libcfa_a-coroutine.o `test -f 'concurrency/coroutine.c' || echo '$(srcdir)/'`concurrency/coroutine.c 1141 1142 concurrency/libcfa_a-coroutine.obj: concurrency/coroutine.c 1143 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT concurrency/libcfa_a-coroutine.obj -MD -MP -MF concurrency/$(DEPDIR)/libcfa_a-coroutine.Tpo -c -o concurrency/libcfa_a-coroutine.obj `if test -f 'concurrency/coroutine.c'; then $(CYGPATH_W) 'concurrency/coroutine.c'; else $(CYGPATH_W) '$(srcdir)/concurrency/coroutine.c'; fi` 1144 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) concurrency/$(DEPDIR)/libcfa_a-coroutine.Tpo concurrency/$(DEPDIR)/libcfa_a-coroutine.Po 1145 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='concurrency/coroutine.c' object='concurrency/libcfa_a-coroutine.obj' libtool=no @AMDEPBACKSLASH@ 1146 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1147 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o concurrency/libcfa_a-coroutine.obj `if test -f 'concurrency/coroutine.c'; then $(CYGPATH_W) 'concurrency/coroutine.c'; else $(CYGPATH_W) '$(srcdir)/concurrency/coroutine.c'; fi` 1148 1149 concurrency/libcfa_a-thread.o: concurrency/thread.c 1150 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT concurrency/libcfa_a-thread.o -MD -MP -MF concurrency/$(DEPDIR)/libcfa_a-thread.Tpo -c -o concurrency/libcfa_a-thread.o `test -f 'concurrency/thread.c' || echo '$(srcdir)/'`concurrency/thread.c 1151 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) concurrency/$(DEPDIR)/libcfa_a-thread.Tpo concurrency/$(DEPDIR)/libcfa_a-thread.Po 1152 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='concurrency/thread.c' object='concurrency/libcfa_a-thread.o' libtool=no @AMDEPBACKSLASH@ 1153 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1154 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o concurrency/libcfa_a-thread.o `test -f 'concurrency/thread.c' || echo '$(srcdir)/'`concurrency/thread.c 1155 1156 concurrency/libcfa_a-thread.obj: concurrency/thread.c 1157 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT concurrency/libcfa_a-thread.obj -MD -MP -MF concurrency/$(DEPDIR)/libcfa_a-thread.Tpo -c -o concurrency/libcfa_a-thread.obj `if test -f 'concurrency/thread.c'; then $(CYGPATH_W) 'concurrency/thread.c'; else $(CYGPATH_W) '$(srcdir)/concurrency/thread.c'; fi` 1158 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) concurrency/$(DEPDIR)/libcfa_a-thread.Tpo concurrency/$(DEPDIR)/libcfa_a-thread.Po 1159 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='concurrency/thread.c' object='concurrency/libcfa_a-thread.obj' libtool=no @AMDEPBACKSLASH@ 1160 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1161 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o concurrency/libcfa_a-thread.obj `if test -f 'concurrency/thread.c'; then $(CYGPATH_W) 'concurrency/thread.c'; else $(CYGPATH_W) '$(srcdir)/concurrency/thread.c'; fi` 1162 1163 concurrency/libcfa_a-kernel.o: concurrency/kernel.c 1164 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT concurrency/libcfa_a-kernel.o -MD -MP -MF concurrency/$(DEPDIR)/libcfa_a-kernel.Tpo -c -o concurrency/libcfa_a-kernel.o `test -f 'concurrency/kernel.c' || echo '$(srcdir)/'`concurrency/kernel.c 1165 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) concurrency/$(DEPDIR)/libcfa_a-kernel.Tpo concurrency/$(DEPDIR)/libcfa_a-kernel.Po 1166 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='concurrency/kernel.c' object='concurrency/libcfa_a-kernel.o' libtool=no @AMDEPBACKSLASH@ 1167 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1168 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o concurrency/libcfa_a-kernel.o `test -f 'concurrency/kernel.c' || echo '$(srcdir)/'`concurrency/kernel.c 1169 1170 concurrency/libcfa_a-kernel.obj: concurrency/kernel.c 1171 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT concurrency/libcfa_a-kernel.obj -MD -MP -MF concurrency/$(DEPDIR)/libcfa_a-kernel.Tpo -c -o concurrency/libcfa_a-kernel.obj `if test -f 'concurrency/kernel.c'; then $(CYGPATH_W) 'concurrency/kernel.c'; else $(CYGPATH_W) '$(srcdir)/concurrency/kernel.c'; fi` 1172 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) concurrency/$(DEPDIR)/libcfa_a-kernel.Tpo concurrency/$(DEPDIR)/libcfa_a-kernel.Po 1173 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='concurrency/kernel.c' object='concurrency/libcfa_a-kernel.obj' libtool=no @AMDEPBACKSLASH@ 1174 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1175 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o concurrency/libcfa_a-kernel.obj `if test -f 'concurrency/kernel.c'; then $(CYGPATH_W) 'concurrency/kernel.c'; else $(CYGPATH_W) '$(srcdir)/concurrency/kernel.c'; fi` 1176 1177 concurrency/libcfa_a-monitor.o: concurrency/monitor.c 1178 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT concurrency/libcfa_a-monitor.o -MD -MP -MF concurrency/$(DEPDIR)/libcfa_a-monitor.Tpo -c -o concurrency/libcfa_a-monitor.o `test -f 'concurrency/monitor.c' || echo '$(srcdir)/'`concurrency/monitor.c 1179 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) concurrency/$(DEPDIR)/libcfa_a-monitor.Tpo concurrency/$(DEPDIR)/libcfa_a-monitor.Po 1180 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='concurrency/monitor.c' object='concurrency/libcfa_a-monitor.o' libtool=no @AMDEPBACKSLASH@ 1181 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1182 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o concurrency/libcfa_a-monitor.o `test -f 'concurrency/monitor.c' || echo '$(srcdir)/'`concurrency/monitor.c 1183 1184 concurrency/libcfa_a-monitor.obj: concurrency/monitor.c 1185 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT concurrency/libcfa_a-monitor.obj -MD -MP -MF concurrency/$(DEPDIR)/libcfa_a-monitor.Tpo -c -o concurrency/libcfa_a-monitor.obj `if test -f 'concurrency/monitor.c'; then $(CYGPATH_W) 'concurrency/monitor.c'; else $(CYGPATH_W) '$(srcdir)/concurrency/monitor.c'; fi` 1186 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) concurrency/$(DEPDIR)/libcfa_a-monitor.Tpo concurrency/$(DEPDIR)/libcfa_a-monitor.Po 1187 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='concurrency/monitor.c' object='concurrency/libcfa_a-monitor.obj' libtool=no @AMDEPBACKSLASH@ 1188 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1189 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o concurrency/libcfa_a-monitor.obj `if test -f 'concurrency/monitor.c'; then $(CYGPATH_W) 'concurrency/monitor.c'; else $(CYGPATH_W) '$(srcdir)/concurrency/monitor.c'; fi` 1190 1000 1191 libcfa_a-assert.o: assert.c 1001 1192 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-assert.o -MD -MP -MF $(DEPDIR)/libcfa_a-assert.Tpo -c -o libcfa_a-assert.o `test -f 'assert.c' || echo '$(srcdir)/'`assert.c … … 1012 1203 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-assert.obj `if test -f 'assert.c'; then $(CYGPATH_W) 'assert.c'; else $(CYGPATH_W) '$(srcdir)/assert.c'; fi` 1013 1204 1014 libcfa_a-fstream.o: fstream.c1015 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-fstream.o -MD -MP -MF $(DEPDIR)/libcfa_a-fstream.Tpo -c -o libcfa_a-fstream.o `test -f 'fstream.c' || echo '$(srcdir)/'`fstream.c1016 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-fstream.Tpo $(DEPDIR)/libcfa_a-fstream.Po1017 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fstream.c' object='libcfa_a-fstream.o' libtool=no @AMDEPBACKSLASH@1018 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@1019 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-fstream.o `test -f 'fstream.c' || echo '$(srcdir)/'`fstream.c1020 1021 libcfa_a-fstream.obj: fstream.c1022 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-fstream.obj -MD -MP -MF $(DEPDIR)/libcfa_a-fstream.Tpo -c -o libcfa_a-fstream.obj `if test -f 'fstream.c'; then $(CYGPATH_W) 'fstream.c'; else $(CYGPATH_W) '$(srcdir)/fstream.c'; fi`1023 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-fstream.Tpo $(DEPDIR)/libcfa_a-fstream.Po1024 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fstream.c' object='libcfa_a-fstream.obj' libtool=no @AMDEPBACKSLASH@1025 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@1026 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-fstream.obj `if test -f 'fstream.c'; then $(CYGPATH_W) 'fstream.c'; else $(CYGPATH_W) '$(srcdir)/fstream.c'; fi`1027 1028 libcfa_a-iostream.o: iostream.c1029 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-iostream.o -MD -MP -MF $(DEPDIR)/libcfa_a-iostream.Tpo -c -o libcfa_a-iostream.o `test -f 'iostream.c' || echo '$(srcdir)/'`iostream.c1030 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-iostream.Tpo $(DEPDIR)/libcfa_a-iostream.Po1031 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='iostream.c' object='libcfa_a-iostream.o' libtool=no @AMDEPBACKSLASH@1032 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@1033 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-iostream.o `test -f 'iostream.c' || echo '$(srcdir)/'`iostream.c1034 1035 libcfa_a-iostream.obj: iostream.c1036 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-iostream.obj -MD -MP -MF $(DEPDIR)/libcfa_a-iostream.Tpo -c -o libcfa_a-iostream.obj `if test -f 'iostream.c'; then $(CYGPATH_W) 'iostream.c'; else $(CYGPATH_W) '$(srcdir)/iostream.c'; fi`1037 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-iostream.Tpo $(DEPDIR)/libcfa_a-iostream.Po1038 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='iostream.c' object='libcfa_a-iostream.obj' libtool=no @AMDEPBACKSLASH@1039 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@1040 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-iostream.obj `if test -f 'iostream.c'; then $(CYGPATH_W) 'iostream.c'; else $(CYGPATH_W) '$(srcdir)/iostream.c'; fi`1041 1042 libcfa_a-iterator.o: iterator.c1043 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-iterator.o -MD -MP -MF $(DEPDIR)/libcfa_a-iterator.Tpo -c -o libcfa_a-iterator.o `test -f 'iterator.c' || echo '$(srcdir)/'`iterator.c1044 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-iterator.Tpo $(DEPDIR)/libcfa_a-iterator.Po1045 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='iterator.c' object='libcfa_a-iterator.o' libtool=no @AMDEPBACKSLASH@1046 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@1047 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-iterator.o `test -f 'iterator.c' || echo '$(srcdir)/'`iterator.c1048 1049 libcfa_a-iterator.obj: iterator.c1050 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-iterator.obj -MD -MP -MF $(DEPDIR)/libcfa_a-iterator.Tpo -c -o libcfa_a-iterator.obj `if test -f 'iterator.c'; then $(CYGPATH_W) 'iterator.c'; else $(CYGPATH_W) '$(srcdir)/iterator.c'; fi`1051 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-iterator.Tpo $(DEPDIR)/libcfa_a-iterator.Po1052 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='iterator.c' object='libcfa_a-iterator.obj' libtool=no @AMDEPBACKSLASH@1053 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@1054 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-iterator.obj `if test -f 'iterator.c'; then $(CYGPATH_W) 'iterator.c'; else $(CYGPATH_W) '$(srcdir)/iterator.c'; fi`1055 1056 libcfa_a-limits.o: limits.c1057 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-limits.o -MD -MP -MF $(DEPDIR)/libcfa_a-limits.Tpo -c -o libcfa_a-limits.o `test -f 'limits.c' || echo '$(srcdir)/'`limits.c1058 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-limits.Tpo $(DEPDIR)/libcfa_a-limits.Po1059 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='limits.c' object='libcfa_a-limits.o' libtool=no @AMDEPBACKSLASH@1060 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@1061 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-limits.o `test -f 'limits.c' || echo '$(srcdir)/'`limits.c1062 1063 libcfa_a-limits.obj: limits.c1064 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-limits.obj -MD -MP -MF $(DEPDIR)/libcfa_a-limits.Tpo -c -o libcfa_a-limits.obj `if test -f 'limits.c'; then $(CYGPATH_W) 'limits.c'; else $(CYGPATH_W) '$(srcdir)/limits.c'; fi`1065 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-limits.Tpo $(DEPDIR)/libcfa_a-limits.Po1066 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='limits.c' object='libcfa_a-limits.obj' libtool=no @AMDEPBACKSLASH@1067 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@1068 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-limits.obj `if test -f 'limits.c'; then $(CYGPATH_W) 'limits.c'; else $(CYGPATH_W) '$(srcdir)/limits.c'; fi`1069 1070 libcfa_a-math.o: math.c1071 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-math.o -MD -MP -MF $(DEPDIR)/libcfa_a-math.Tpo -c -o libcfa_a-math.o `test -f 'math.c' || echo '$(srcdir)/'`math.c1072 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-math.Tpo $(DEPDIR)/libcfa_a-math.Po1073 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='math.c' object='libcfa_a-math.o' libtool=no @AMDEPBACKSLASH@1074 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@1075 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-math.o `test -f 'math.c' || echo '$(srcdir)/'`math.c1076 1077 libcfa_a-math.obj: math.c1078 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-math.obj -MD -MP -MF $(DEPDIR)/libcfa_a-math.Tpo -c -o libcfa_a-math.obj `if test -f 'math.c'; then $(CYGPATH_W) 'math.c'; else $(CYGPATH_W) '$(srcdir)/math.c'; fi`1079 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-math.Tpo $(DEPDIR)/libcfa_a-math.Po1080 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='math.c' object='libcfa_a-math.obj' libtool=no @AMDEPBACKSLASH@1081 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@1082 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-math.obj `if test -f 'math.c'; then $(CYGPATH_W) 'math.c'; else $(CYGPATH_W) '$(srcdir)/math.c'; fi`1083 1084 libcfa_a-rational.o: rational.c1085 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-rational.o -MD -MP -MF $(DEPDIR)/libcfa_a-rational.Tpo -c -o libcfa_a-rational.o `test -f 'rational.c' || echo '$(srcdir)/'`rational.c1086 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-rational.Tpo $(DEPDIR)/libcfa_a-rational.Po1087 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rational.c' object='libcfa_a-rational.o' libtool=no @AMDEPBACKSLASH@1088 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@1089 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-rational.o `test -f 'rational.c' || echo '$(srcdir)/'`rational.c1090 1091 libcfa_a-rational.obj: rational.c1092 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-rational.obj -MD -MP -MF $(DEPDIR)/libcfa_a-rational.Tpo -c -o libcfa_a-rational.obj `if test -f 'rational.c'; then $(CYGPATH_W) 'rational.c'; else $(CYGPATH_W) '$(srcdir)/rational.c'; fi`1093 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-rational.Tpo $(DEPDIR)/libcfa_a-rational.Po1094 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rational.c' object='libcfa_a-rational.obj' libtool=no @AMDEPBACKSLASH@1095 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@1096 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-rational.obj `if test -f 'rational.c'; then $(CYGPATH_W) 'rational.c'; else $(CYGPATH_W) '$(srcdir)/rational.c'; fi`1097 1098 libcfa_a-stdlib.o: stdlib.c1099 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-stdlib.o -MD -MP -MF $(DEPDIR)/libcfa_a-stdlib.Tpo -c -o libcfa_a-stdlib.o `test -f 'stdlib.c' || echo '$(srcdir)/'`stdlib.c1100 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-stdlib.Tpo $(DEPDIR)/libcfa_a-stdlib.Po1101 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='stdlib.c' object='libcfa_a-stdlib.o' libtool=no @AMDEPBACKSLASH@1102 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@1103 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-stdlib.o `test -f 'stdlib.c' || echo '$(srcdir)/'`stdlib.c1104 1105 libcfa_a-stdlib.obj: stdlib.c1106 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-stdlib.obj -MD -MP -MF $(DEPDIR)/libcfa_a-stdlib.Tpo -c -o libcfa_a-stdlib.obj `if test -f 'stdlib.c'; then $(CYGPATH_W) 'stdlib.c'; else $(CYGPATH_W) '$(srcdir)/stdlib.c'; fi`1107 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-stdlib.Tpo $(DEPDIR)/libcfa_a-stdlib.Po1108 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='stdlib.c' object='libcfa_a-stdlib.obj' libtool=no @AMDEPBACKSLASH@1109 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@1110 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-stdlib.obj `if test -f 'stdlib.c'; then $(CYGPATH_W) 'stdlib.c'; else $(CYGPATH_W) '$(srcdir)/stdlib.c'; fi`1111 1112 containers/libcfa_a-maybe.o: containers/maybe.c1113 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT containers/libcfa_a-maybe.o -MD -MP -MF containers/$(DEPDIR)/libcfa_a-maybe.Tpo -c -o containers/libcfa_a-maybe.o `test -f 'containers/maybe.c' || echo '$(srcdir)/'`containers/maybe.c1114 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) containers/$(DEPDIR)/libcfa_a-maybe.Tpo containers/$(DEPDIR)/libcfa_a-maybe.Po1115 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='containers/maybe.c' object='containers/libcfa_a-maybe.o' libtool=no @AMDEPBACKSLASH@1116 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@1117 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o containers/libcfa_a-maybe.o `test -f 'containers/maybe.c' || echo '$(srcdir)/'`containers/maybe.c1118 1119 containers/libcfa_a-maybe.obj: containers/maybe.c1120 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT containers/libcfa_a-maybe.obj -MD -MP -MF containers/$(DEPDIR)/libcfa_a-maybe.Tpo -c -o containers/libcfa_a-maybe.obj `if test -f 'containers/maybe.c'; then $(CYGPATH_W) 'containers/maybe.c'; else $(CYGPATH_W) '$(srcdir)/containers/maybe.c'; fi`1121 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) containers/$(DEPDIR)/libcfa_a-maybe.Tpo containers/$(DEPDIR)/libcfa_a-maybe.Po1122 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='containers/maybe.c' object='containers/libcfa_a-maybe.obj' libtool=no @AMDEPBACKSLASH@1123 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@1124 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o containers/libcfa_a-maybe.obj `if test -f 'containers/maybe.c'; then $(CYGPATH_W) 'containers/maybe.c'; else $(CYGPATH_W) '$(srcdir)/containers/maybe.c'; fi`1125 1126 containers/libcfa_a-pair.o: containers/pair.c1127 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT containers/libcfa_a-pair.o -MD -MP -MF containers/$(DEPDIR)/libcfa_a-pair.Tpo -c -o containers/libcfa_a-pair.o `test -f 'containers/pair.c' || echo '$(srcdir)/'`containers/pair.c1128 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) containers/$(DEPDIR)/libcfa_a-pair.Tpo containers/$(DEPDIR)/libcfa_a-pair.Po1129 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='containers/pair.c' object='containers/libcfa_a-pair.o' libtool=no @AMDEPBACKSLASH@1130 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@1131 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o containers/libcfa_a-pair.o `test -f 'containers/pair.c' || echo '$(srcdir)/'`containers/pair.c1132 1133 containers/libcfa_a-pair.obj: containers/pair.c1134 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT containers/libcfa_a-pair.obj -MD -MP -MF containers/$(DEPDIR)/libcfa_a-pair.Tpo -c -o containers/libcfa_a-pair.obj `if test -f 'containers/pair.c'; then $(CYGPATH_W) 'containers/pair.c'; else $(CYGPATH_W) '$(srcdir)/containers/pair.c'; fi`1135 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) containers/$(DEPDIR)/libcfa_a-pair.Tpo containers/$(DEPDIR)/libcfa_a-pair.Po1136 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='containers/pair.c' object='containers/libcfa_a-pair.obj' libtool=no @AMDEPBACKSLASH@1137 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@1138 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o containers/libcfa_a-pair.obj `if test -f 'containers/pair.c'; then $(CYGPATH_W) 'containers/pair.c'; else $(CYGPATH_W) '$(srcdir)/containers/pair.c'; fi`1139 1140 containers/libcfa_a-result.o: containers/result.c1141 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT containers/libcfa_a-result.o -MD -MP -MF containers/$(DEPDIR)/libcfa_a-result.Tpo -c -o containers/libcfa_a-result.o `test -f 'containers/result.c' || echo '$(srcdir)/'`containers/result.c1142 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) containers/$(DEPDIR)/libcfa_a-result.Tpo containers/$(DEPDIR)/libcfa_a-result.Po1143 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='containers/result.c' object='containers/libcfa_a-result.o' libtool=no @AMDEPBACKSLASH@1144 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@1145 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o containers/libcfa_a-result.o `test -f 'containers/result.c' || echo '$(srcdir)/'`containers/result.c1146 1147 containers/libcfa_a-result.obj: containers/result.c1148 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT containers/libcfa_a-result.obj -MD -MP -MF containers/$(DEPDIR)/libcfa_a-result.Tpo -c -o containers/libcfa_a-result.obj `if test -f 'containers/result.c'; then $(CYGPATH_W) 'containers/result.c'; else $(CYGPATH_W) '$(srcdir)/containers/result.c'; fi`1149 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) containers/$(DEPDIR)/libcfa_a-result.Tpo containers/$(DEPDIR)/libcfa_a-result.Po1150 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='containers/result.c' object='containers/libcfa_a-result.obj' libtool=no @AMDEPBACKSLASH@1151 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@1152 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o containers/libcfa_a-result.obj `if test -f 'containers/result.c'; then $(CYGPATH_W) 'containers/result.c'; else $(CYGPATH_W) '$(srcdir)/containers/result.c'; fi`1153 1154 containers/libcfa_a-vector.o: containers/vector.c1155 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT containers/libcfa_a-vector.o -MD -MP -MF containers/$(DEPDIR)/libcfa_a-vector.Tpo -c -o containers/libcfa_a-vector.o `test -f 'containers/vector.c' || echo '$(srcdir)/'`containers/vector.c1156 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) containers/$(DEPDIR)/libcfa_a-vector.Tpo containers/$(DEPDIR)/libcfa_a-vector.Po1157 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='containers/vector.c' object='containers/libcfa_a-vector.o' libtool=no @AMDEPBACKSLASH@1158 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@1159 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o containers/libcfa_a-vector.o `test -f 'containers/vector.c' || echo '$(srcdir)/'`containers/vector.c1160 1161 containers/libcfa_a-vector.obj: containers/vector.c1162 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT containers/libcfa_a-vector.obj -MD -MP -MF containers/$(DEPDIR)/libcfa_a-vector.Tpo -c -o containers/libcfa_a-vector.obj `if test -f 'containers/vector.c'; then $(CYGPATH_W) 'containers/vector.c'; else $(CYGPATH_W) '$(srcdir)/containers/vector.c'; fi`1163 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) containers/$(DEPDIR)/libcfa_a-vector.Tpo containers/$(DEPDIR)/libcfa_a-vector.Po1164 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='containers/vector.c' object='containers/libcfa_a-vector.obj' libtool=no @AMDEPBACKSLASH@1165 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@1166 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o containers/libcfa_a-vector.obj `if test -f 'containers/vector.c'; then $(CYGPATH_W) 'containers/vector.c'; else $(CYGPATH_W) '$(srcdir)/containers/vector.c'; fi`1167 1168 concurrency/libcfa_a-coroutine.o: concurrency/coroutine.c1169 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT concurrency/libcfa_a-coroutine.o -MD -MP -MF concurrency/$(DEPDIR)/libcfa_a-coroutine.Tpo -c -o concurrency/libcfa_a-coroutine.o `test -f 'concurrency/coroutine.c' || echo '$(srcdir)/'`concurrency/coroutine.c1170 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) concurrency/$(DEPDIR)/libcfa_a-coroutine.Tpo concurrency/$(DEPDIR)/libcfa_a-coroutine.Po1171 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='concurrency/coroutine.c' object='concurrency/libcfa_a-coroutine.o' libtool=no @AMDEPBACKSLASH@1172 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@1173 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o concurrency/libcfa_a-coroutine.o `test -f 'concurrency/coroutine.c' || echo '$(srcdir)/'`concurrency/coroutine.c1174 1175 concurrency/libcfa_a-coroutine.obj: concurrency/coroutine.c1176 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT concurrency/libcfa_a-coroutine.obj -MD -MP -MF concurrency/$(DEPDIR)/libcfa_a-coroutine.Tpo -c -o concurrency/libcfa_a-coroutine.obj `if test -f 'concurrency/coroutine.c'; then $(CYGPATH_W) 'concurrency/coroutine.c'; else $(CYGPATH_W) '$(srcdir)/concurrency/coroutine.c'; fi`1177 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) concurrency/$(DEPDIR)/libcfa_a-coroutine.Tpo concurrency/$(DEPDIR)/libcfa_a-coroutine.Po1178 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='concurrency/coroutine.c' object='concurrency/libcfa_a-coroutine.obj' libtool=no @AMDEPBACKSLASH@1179 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@1180 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o concurrency/libcfa_a-coroutine.obj `if test -f 'concurrency/coroutine.c'; then $(CYGPATH_W) 'concurrency/coroutine.c'; else $(CYGPATH_W) '$(srcdir)/concurrency/coroutine.c'; fi`1181 1182 concurrency/libcfa_a-thread.o: concurrency/thread.c1183 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT concurrency/libcfa_a-thread.o -MD -MP -MF concurrency/$(DEPDIR)/libcfa_a-thread.Tpo -c -o concurrency/libcfa_a-thread.o `test -f 'concurrency/thread.c' || echo '$(srcdir)/'`concurrency/thread.c1184 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) concurrency/$(DEPDIR)/libcfa_a-thread.Tpo concurrency/$(DEPDIR)/libcfa_a-thread.Po1185 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='concurrency/thread.c' object='concurrency/libcfa_a-thread.o' libtool=no @AMDEPBACKSLASH@1186 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@1187 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o concurrency/libcfa_a-thread.o `test -f 'concurrency/thread.c' || echo '$(srcdir)/'`concurrency/thread.c1188 1189 concurrency/libcfa_a-thread.obj: concurrency/thread.c1190 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT concurrency/libcfa_a-thread.obj -MD -MP -MF concurrency/$(DEPDIR)/libcfa_a-thread.Tpo -c -o concurrency/libcfa_a-thread.obj `if test -f 'concurrency/thread.c'; then $(CYGPATH_W) 'concurrency/thread.c'; else $(CYGPATH_W) '$(srcdir)/concurrency/thread.c'; fi`1191 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) concurrency/$(DEPDIR)/libcfa_a-thread.Tpo concurrency/$(DEPDIR)/libcfa_a-thread.Po1192 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='concurrency/thread.c' object='concurrency/libcfa_a-thread.obj' libtool=no @AMDEPBACKSLASH@1193 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@1194 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o concurrency/libcfa_a-thread.obj `if test -f 'concurrency/thread.c'; then $(CYGPATH_W) 'concurrency/thread.c'; else $(CYGPATH_W) '$(srcdir)/concurrency/thread.c'; fi`1195 1196 concurrency/libcfa_a-kernel.o: concurrency/kernel.c1197 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT concurrency/libcfa_a-kernel.o -MD -MP -MF concurrency/$(DEPDIR)/libcfa_a-kernel.Tpo -c -o concurrency/libcfa_a-kernel.o `test -f 'concurrency/kernel.c' || echo '$(srcdir)/'`concurrency/kernel.c1198 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) concurrency/$(DEPDIR)/libcfa_a-kernel.Tpo concurrency/$(DEPDIR)/libcfa_a-kernel.Po1199 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='concurrency/kernel.c' object='concurrency/libcfa_a-kernel.o' libtool=no @AMDEPBACKSLASH@1200 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@1201 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o concurrency/libcfa_a-kernel.o `test -f 'concurrency/kernel.c' || echo '$(srcdir)/'`concurrency/kernel.c1202 1203 concurrency/libcfa_a-kernel.obj: concurrency/kernel.c1204 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT concurrency/libcfa_a-kernel.obj -MD -MP -MF concurrency/$(DEPDIR)/libcfa_a-kernel.Tpo -c -o concurrency/libcfa_a-kernel.obj `if test -f 'concurrency/kernel.c'; then $(CYGPATH_W) 'concurrency/kernel.c'; else $(CYGPATH_W) '$(srcdir)/concurrency/kernel.c'; fi`1205 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) concurrency/$(DEPDIR)/libcfa_a-kernel.Tpo concurrency/$(DEPDIR)/libcfa_a-kernel.Po1206 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='concurrency/kernel.c' object='concurrency/libcfa_a-kernel.obj' libtool=no @AMDEPBACKSLASH@1207 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@1208 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o concurrency/libcfa_a-kernel.obj `if test -f 'concurrency/kernel.c'; then $(CYGPATH_W) 'concurrency/kernel.c'; else $(CYGPATH_W) '$(srcdir)/concurrency/kernel.c'; fi`1209 1210 concurrency/libcfa_a-monitor.o: concurrency/monitor.c1211 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT concurrency/libcfa_a-monitor.o -MD -MP -MF concurrency/$(DEPDIR)/libcfa_a-monitor.Tpo -c -o concurrency/libcfa_a-monitor.o `test -f 'concurrency/monitor.c' || echo '$(srcdir)/'`concurrency/monitor.c1212 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) concurrency/$(DEPDIR)/libcfa_a-monitor.Tpo concurrency/$(DEPDIR)/libcfa_a-monitor.Po1213 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='concurrency/monitor.c' object='concurrency/libcfa_a-monitor.o' libtool=no @AMDEPBACKSLASH@1214 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@1215 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o concurrency/libcfa_a-monitor.o `test -f 'concurrency/monitor.c' || echo '$(srcdir)/'`concurrency/monitor.c1216 1217 concurrency/libcfa_a-monitor.obj: concurrency/monitor.c1218 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT concurrency/libcfa_a-monitor.obj -MD -MP -MF concurrency/$(DEPDIR)/libcfa_a-monitor.Tpo -c -o concurrency/libcfa_a-monitor.obj `if test -f 'concurrency/monitor.c'; then $(CYGPATH_W) 'concurrency/monitor.c'; else $(CYGPATH_W) '$(srcdir)/concurrency/monitor.c'; fi`1219 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) concurrency/$(DEPDIR)/libcfa_a-monitor.Tpo concurrency/$(DEPDIR)/libcfa_a-monitor.Po1220 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='concurrency/monitor.c' object='concurrency/libcfa_a-monitor.obj' libtool=no @AMDEPBACKSLASH@1221 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@1222 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o concurrency/libcfa_a-monitor.obj `if test -f 'concurrency/monitor.c'; then $(CYGPATH_W) 'concurrency/monitor.c'; else $(CYGPATH_W) '$(srcdir)/concurrency/monitor.c'; fi`1223 1224 1205 libcfa_a-exception.obj: exception.c 1225 1206 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-exception.obj -MD -MP -MF $(DEPDIR)/libcfa_a-exception.Tpo -c -o libcfa_a-exception.obj `if test -f 'exception.c'; then $(CYGPATH_W) 'exception.c'; else $(CYGPATH_W) '$(srcdir)/exception.c'; fi` … … 1228 1209 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1229 1210 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-exception.obj `if test -f 'exception.c'; then $(CYGPATH_W) 'exception.c'; else $(CYGPATH_W) '$(srcdir)/exception.c'; fi` 1211 1212 libcfa_a-typeobject.obj: typeobject.c 1213 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-typeobject.obj -MD -MP -MF $(DEPDIR)/libcfa_a-typeobject.Tpo -c -o libcfa_a-typeobject.obj `if test -f 'typeobject.c'; then $(CYGPATH_W) 'typeobject.c'; else $(CYGPATH_W) '$(srcdir)/typeobject.c'; fi` 1214 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-typeobject.Tpo $(DEPDIR)/libcfa_a-typeobject.Po 1215 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='typeobject.c' object='libcfa_a-typeobject.obj' libtool=no @AMDEPBACKSLASH@ 1216 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1217 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-typeobject.obj `if test -f 'typeobject.c'; then $(CYGPATH_W) 'typeobject.c'; else $(CYGPATH_W) '$(srcdir)/typeobject.c'; fi` 1230 1218 1231 1219 concurrency/libcfa_a-alarm.o: concurrency/alarm.c … … 1521 1509 ${AM_V_CC}@BACKEND_CC@ -DHAVE_CONFIG_H -I. -I../.. -O2 ${EXTRA_FLAGS} -c -o $@ $< 1522 1510 1511 libcfa_a-typeobject.o : typeobject.c 1512 ${AM_V_CC}@BACKEND_CC@ -DHAVE_CONFIG_H -I. -I../.. -O2 ${EXTRA_FLAGS} -c -o $@ $< 1513 1523 1514 concurrency/libcfa_d_a-invoke.o : concurrency/invoke.c 1524 1515 ${AM_V_CC}@BACKEND_CC@ -DHAVE_CONFIG_H -I. -I../.. -D__CFA_DEBUG__ -O0 ${EXTRA_FLAGS} -c -o $@ $< 1525 1516 1526 1517 libcfa_d_a-exception.o : exception.c 1518 ${AM_V_CC}@BACKEND_CC@ -DHAVE_CONFIG_H -I. -I../.. -D__CFA_DEBUG__ -O0 ${EXTRA_FLAGS} -c -o $@ $< 1519 1520 libcfa_d_a-typeobject.o : typeobject.c 1527 1521 ${AM_V_CC}@BACKEND_CC@ -DHAVE_CONFIG_H -I. -I../.. -D__CFA_DEBUG__ -O0 ${EXTRA_FLAGS} -c -o $@ $< 1528 1522 -
src/libcfa/assert.c
re0a653d r33218c6 9 9 // Author : Thierry Delisle 10 10 // Created On : Mon Nov 28 12:27:26 2016 11 // Last Modified By : Thierry Delisle12 // Last Modified On : Mon Nov 28 12:27:26 201613 // Update Count : 011 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Jul 20 15:10:26 2017 13 // Update Count : 2 14 14 // 15 15 16 #include "assert"17 #include "stdlib" // abort18 16 #include <assert.h> 17 #include <stdarg.h> // varargs 18 #include <stdio.h> // fprintf 19 19 #include "libhdr/libdebug.h" 20 20 21 21 extern "C" { 22 #include <stdarg.h> // varargs23 #include <stdio.h> // fprintf24 25 22 extern const char * __progname; // global name of running executable (argv[0]) 26 23 … … 47 44 abort(); 48 45 } 49 50 46 } 51 47 -
src/libcfa/concurrency/CtxSwitch-i386.S
re0a653d r33218c6 1 // -*- Mode: Asm -*-2 1 // 3 2 // Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo … … 10 9 // Author : Thierry Delisle 11 10 // Created On : Tue Dec 6 12:27:26 2016 12 // Last Modified By : Thierry Delisle13 // Last Modified On : Tue Dec 6 12:27:26 201614 // Update Count : 011 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Jul 21 22:29:25 2017 13 // Update Count : 1 15 14 // 16 15 // This library is free software; you can redistribute it and/or modify it … … 99 98 100 99 // Local Variables: // 101 // compile-command: "make install" // 100 // mode: c // 101 // tab-width: 4 // 102 102 // End: // -
src/libcfa/concurrency/CtxSwitch-x86_64.S
re0a653d r33218c6 1 // -*- Mode: Asm -*-2 1 // 3 2 // Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo … … 10 9 // Author : Thierry Delisle 11 10 // Created On : Mon Nov 28 12:27:26 2016 12 // Last Modified By : Thierry Delisle13 // Last Modified On : Mon Nov 28 12:27:26 201614 // Update Count : 011 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Jul 21 22:28:11 2017 13 // Update Count : 1 15 14 // 16 15 // This library is free software; you can redistribute it and/or modify it -
src/libcfa/concurrency/alarm.c
re0a653d r33218c6 1 // -*- Mode: CFA -*-2 1 // 3 2 // Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo … … 10 9 // Author : Thierry Delisle 11 10 // Created On : Fri Jun 2 11:31:25 2017 12 // Last Modified By : Thierry Delisle13 // Last Modified On : --14 // Update Count : 011 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Jul 21 22:35:18 2017 13 // Update Count : 1 15 14 // 16 15 … … 31 30 32 31 //============================================================================================= 32 // time type 33 //============================================================================================= 34 35 #define one_second 1_000_000_000ul 36 #define one_milisecond 1_000_000ul 37 #define one_microsecond 1_000ul 38 #define one_nanosecond 1ul 39 40 __cfa_time_t zero_time = { 0 }; 41 42 void ?{}( __cfa_time_t * this ) { this->val = 0; } 43 void ?{}( __cfa_time_t * this, zero_t zero ) { this->val = 0; } 44 45 void ?{}( itimerval * this, __cfa_time_t * alarm ) { 46 this->it_value.tv_sec = alarm->val / one_second; // seconds 47 this->it_value.tv_usec = max( (alarm->val % one_second) / one_microsecond, 1000 ); // microseconds 48 this->it_interval.tv_sec = 0; 49 this->it_interval.tv_usec = 0; 50 } 51 52 53 void ?{}( __cfa_time_t * this, timespec * curr ) { 54 uint64_t secs = curr->tv_sec; 55 uint64_t nsecs = curr->tv_nsec; 56 this->val = (secs * one_second) + nsecs; 57 } 58 59 __cfa_time_t ?=?( __cfa_time_t * this, zero_t rhs ) { 60 this->val = 0; 61 return *this; 62 } 63 64 __cfa_time_t from_s ( uint64_t val ) { __cfa_time_t ret; ret.val = val * 1_000_000_000ul; return ret; } 65 __cfa_time_t from_ms( uint64_t val ) { __cfa_time_t ret; ret.val = val * 1_000_000ul; return ret; } 66 __cfa_time_t from_us( uint64_t val ) { __cfa_time_t ret; ret.val = val * 1_000ul; return ret; } 67 __cfa_time_t from_ns( uint64_t val ) { __cfa_time_t ret; ret.val = val * 1ul; return ret; } 68 69 //============================================================================================= 33 70 // Clock logic 34 71 //============================================================================================= … … 37 74 timespec curr; 38 75 clock_gettime( CLOCK_REALTIME, &curr ); 39 __cfa_time_t curr_time = ((__cfa_time_t)curr.tv_sec * TIMEGRAN) + curr.tv_nsec; 40 // LIB_DEBUG_PRINT_BUFFER_DECL( STDERR_FILENO, "Kernel : current time is %lu\n", curr_time ); 41 return curr_time; 76 return (__cfa_time_t){ &curr }; 42 77 } 43 78 44 79 void __kernel_set_timer( __cfa_time_t alarm ) { 45 LIB_DEBUG_PRINT_BUFFER_DECL( STDERR_FILENO, "Kernel : set timer to %lu\n", (__cfa_time_t)alarm ); 46 itimerval val; 47 val.it_value.tv_sec = alarm / TIMEGRAN; // seconds 48 val.it_value.tv_usec = (alarm % TIMEGRAN) / ( TIMEGRAN / 1_000_000L ); // microseconds 49 val.it_interval.tv_sec = 0; 50 val.it_interval.tv_usec = 0; 80 itimerval val = { &alarm }; 51 81 setitimer( ITIMER_REAL, &val, NULL ); 52 82 } … … 56 86 //============================================================================================= 57 87 58 void ?{}( alarm_node_t * this, thread_desc * thrd, __cfa_time_t alarm = 0, __cfa_time_t period = 0) {88 void ?{}( alarm_node_t * this, thread_desc * thrd, __cfa_time_t alarm = zero_time, __cfa_time_t period = zero_time ) { 59 89 this->thrd = thrd; 60 90 this->alarm = alarm; … … 65 95 } 66 96 67 void ?{}( alarm_node_t * this, processor * proc, __cfa_time_t alarm = 0, __cfa_time_t period = 0) {97 void ?{}( alarm_node_t * this, processor * proc, __cfa_time_t alarm = zero_time, __cfa_time_t period = zero_time ) { 68 98 this->proc = proc; 69 99 this->alarm = alarm; … … 153 183 154 184 void register_self( alarm_node_t * this ) { 185 alarm_list_t * alarms = &event_kernel->alarms; 186 155 187 disable_interrupts(); 156 verify( !systemProcessor->pending_alarm ); 157 lock( &systemProcessor->alarm_lock DEBUG_CTX2 ); 188 lock( &event_kernel->lock DEBUG_CTX2 ); 158 189 { 159 verify( validate( &systemProcessor->alarms ) );160 bool first = ! systemProcessor->alarms.head;161 162 insert( &systemProcessor->alarms, this );163 if( systemProcessor->pending_alarm) {164 tick_preemption();190 verify( validate( alarms ) ); 191 bool first = !alarms->head; 192 193 insert( alarms, this ); 194 if( first ) { 195 __kernel_set_timer( alarms->head->alarm - __kernel_get_time() ); 165 196 } 166 if( first ) { 167 __kernel_set_timer( systemProcessor->alarms.head->alarm - __kernel_get_time() ); 168 } 169 } 170 unlock( &systemProcessor->alarm_lock ); 197 } 198 unlock( &event_kernel->lock ); 171 199 this->set = true; 172 200 enable_interrupts( DEBUG_CTX ); … … 174 202 175 203 void unregister_self( alarm_node_t * this ) { 176 // LIB_DEBUG_PRINT_BUFFER_DECL( STDERR_FILENO, "Kernel : unregister %p start\n", this );177 204 disable_interrupts(); 178 lock( & systemProcessor->alarm_lock DEBUG_CTX2 );205 lock( &event_kernel->lock DEBUG_CTX2 ); 179 206 { 180 verify( validate( & systemProcessor->alarms ) );181 remove( & systemProcessor->alarms, this );182 } 183 unlock( & systemProcessor->alarm_lock );207 verify( validate( &event_kernel->alarms ) ); 208 remove( &event_kernel->alarms, this ); 209 } 210 unlock( &event_kernel->lock ); 184 211 enable_interrupts( DEBUG_CTX ); 185 212 this->set = false; 186 // LIB_DEBUG_PRINT_BUFFER_LOCAL( STDERR_FILENO, "Kernel : unregister %p end\n", this ); 187 } 213 } 214 215 // Local Variables: // 216 // mode: c // 217 // tab-width: 4 // 218 // End: // -
src/libcfa/concurrency/alarm.h
re0a653d r33218c6 1 // -*- Mode: CFA -*-2 1 // 3 2 // Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo … … 10 9 // Author : Thierry Delisle 11 10 // Created On : Fri Jun 2 11:31:25 2017 12 // Last Modified By : Thierry Delisle13 // Last Modified On : --14 // Update Count : 011 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jul 22 09:59:27 2017 13 // Update Count : 3 15 14 // 16 15 17 #ifndef ALARM_H 18 #define ALARM_H 16 #pragma once 19 17 20 18 #include <stdbool.h> 19 #include <stdint.h> 21 20 22 #include "assert" 23 24 typedef unsigned long int __cfa_time_t; 21 #include <assert.h> 25 22 26 23 struct thread_desc; 27 24 struct processor; 28 25 26 struct timespec; 27 struct itimerval; 28 29 //============================================================================================= 30 // time type 31 //============================================================================================= 32 33 struct __cfa_time_t { 34 uint64_t val; 35 }; 36 37 // ctors 38 void ?{}( __cfa_time_t * this ); 39 void ?{}( __cfa_time_t * this, zero_t zero ); 40 void ?{}( __cfa_time_t * this, timespec * curr ); 41 void ?{}( itimerval * this, __cfa_time_t * alarm ); 42 43 __cfa_time_t ?=?( __cfa_time_t * this, zero_t rhs ); 44 45 // logical ops 46 static inline bool ?==?( __cfa_time_t lhs, __cfa_time_t rhs ) { return lhs.val == rhs.val; } 47 static inline bool ?!=?( __cfa_time_t lhs, __cfa_time_t rhs ) { return lhs.val != rhs.val; } 48 static inline bool ?>? ( __cfa_time_t lhs, __cfa_time_t rhs ) { return lhs.val > rhs.val; } 49 static inline bool ?<? ( __cfa_time_t lhs, __cfa_time_t rhs ) { return lhs.val < rhs.val; } 50 static inline bool ?>=?( __cfa_time_t lhs, __cfa_time_t rhs ) { return lhs.val >= rhs.val; } 51 static inline bool ?<=?( __cfa_time_t lhs, __cfa_time_t rhs ) { return lhs.val <= rhs.val; } 52 53 static inline bool ?==?( __cfa_time_t lhs, zero_t rhs ) { return lhs.val == rhs; } 54 static inline bool ?!=?( __cfa_time_t lhs, zero_t rhs ) { return lhs.val != rhs; } 55 static inline bool ?>? ( __cfa_time_t lhs, zero_t rhs ) { return lhs.val > rhs; } 56 static inline bool ?<? ( __cfa_time_t lhs, zero_t rhs ) { return lhs.val < rhs; } 57 static inline bool ?>=?( __cfa_time_t lhs, zero_t rhs ) { return lhs.val >= rhs; } 58 static inline bool ?<=?( __cfa_time_t lhs, zero_t rhs ) { return lhs.val <= rhs; } 59 60 // addition/substract 61 static inline __cfa_time_t ?+?( __cfa_time_t lhs, __cfa_time_t rhs ) { 62 __cfa_time_t ret; 63 ret.val = lhs.val + rhs.val; 64 return ret; 65 } 66 67 static inline __cfa_time_t ?-?( __cfa_time_t lhs, __cfa_time_t rhs ) { 68 __cfa_time_t ret; 69 ret.val = lhs.val - rhs.val; 70 return ret; 71 } 72 73 __cfa_time_t from_s ( uint64_t ); 74 __cfa_time_t from_ms( uint64_t ); 75 __cfa_time_t from_us( uint64_t ); 76 __cfa_time_t from_ns( uint64_t ); 77 78 extern __cfa_time_t zero_time; 79 29 80 //============================================================================================= 30 81 // Clock logic 31 82 //============================================================================================= 32 33 #define TIMEGRAN 1_000_000_000L // nanosecond granularity, except for timeval34 83 35 84 __cfa_time_t __kernel_get_time(); … … 56 105 typedef alarm_node_t ** __alarm_it_t; 57 106 58 void ?{}( alarm_node_t * this, thread_desc * thrd, __cfa_time_t alarm = 0, __cfa_time_t period = 0);59 void ?{}( alarm_node_t * this, processor * proc, __cfa_time_t alarm = 0, __cfa_time_t period = 0);107 void ?{}( alarm_node_t * this, thread_desc * thrd, __cfa_time_t alarm = zero_time, __cfa_time_t period = zero_time ); 108 void ?{}( alarm_node_t * this, processor * proc, __cfa_time_t alarm = zero_time, __cfa_time_t period = zero_time ); 60 109 void ^?{}( alarm_node_t * this ); 61 110 … … 76 125 void unregister_self( alarm_node_t * this ); 77 126 78 #endif79 80 127 // Local Variables: // 81 // mode: CFA//128 // mode: c // 82 129 // tab-width: 6 // 83 130 // End: // -
src/libcfa/concurrency/coroutine
re0a653d r33218c6 10 10 // Author : Thierry Delisle 11 11 // Created On : Mon Nov 28 12:27:26 2016 12 // Last Modified By : Thierry Delisle13 // Last Modified On : Mon Nov 28 12:27:26 201614 // Update Count : 012 // Last Modified By : Peter A. Buhr 13 // Last Modified On : Sat Jul 22 09:57:17 2017 14 // Update Count : 2 15 15 // 16 16 17 #ifndef COROUTINES_H 18 #define COROUTINES_H 17 #pragma once 19 18 20 #include "assert"19 #include <assert.h> 21 20 #include "invoke.h" 22 21 … … 63 62 64 63 // Get current coroutine 65 extern volatile thread_local coroutine_desc *this_coroutine;64 extern thread_local coroutine_desc * volatile this_coroutine; 66 65 67 66 // Private wrappers for context switch and stack creation … … 129 128 } 130 129 131 #endif //COROUTINES_H132 133 130 // Local Variables: // 134 131 // mode: c // -
src/libcfa/concurrency/coroutine.c
re0a653d r33218c6 1 // -*- Mode: CFA -*-2 1 // 3 2 // Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo … … 10 9 // Author : Thierry Delisle 11 10 // Created On : Mon Nov 28 12:27:26 2016 12 // Last Modified By : Thierry Delisle13 // Last Modified On : Mon Nov 28 12:27:26 201614 // Update Count : 011 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Jul 21 22:34:57 2017 13 // Update Count : 1 15 14 // 16 15 … … 26 25 } 27 26 28 #include "kernel" 29 #include "libhdr.h" 27 #include "kernel_private.h" 30 28 31 29 #define __CFA_INVOKE_PRIVATE__ 32 30 #include "invoke.h" 33 31 34 extern volatile thread_local processor * this_processor;35 32 36 33 //----------------------------------------------------------------------------- -
src/libcfa/concurrency/invoke.c
re0a653d r33218c6 1 // -*- Mode: C -*-2 1 // 3 2 // Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo … … 10 9 // Author : Thierry Delisle 11 10 // Created On : Tue Jan 17 12:27:26 2016 12 // Last Modified By : Thierry Delisle13 // Last Modified On : --14 // Update Count : 011 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Jul 21 22:28:33 2017 13 // Update Count : 1 15 14 // 16 15 … … 142 141 #endif 143 142 } 143 144 // Local Variables: // 145 // mode: c // 146 // tab-width: 4 // 147 // End: // -
src/libcfa/concurrency/invoke.h
re0a653d r33218c6 1 // -*- Mode: C -*-2 1 // 3 2 // Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo … … 10 9 // Author : Thierry Delisle 11 10 // Created On : Tue Jan 17 12:27:26 2016 12 // Last Modified By : Thierry Delisle13 // Last Modified On : --14 // Update Count : 011 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Jul 21 22:28:56 2017 13 // Update Count : 1 15 14 // 16 15 … … 130 129 } 131 130 #endif 131 132 // Local Variables: // 133 // mode: c // 134 // tab-width: 4 // 135 // End: // -
src/libcfa/concurrency/kernel
re0a653d r33218c6 1 // -*- Mode: CFA -*-2 1 // 3 2 // Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo … … 10 9 // Author : Thierry Delisle 11 10 // Created On : Tue Jan 17 12:27:26 2017 12 // Last Modified By : Thierry Delisle13 // Last Modified On : --14 // Update Count : 011 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jul 22 09:58:39 2017 13 // Update Count : 2 15 14 // 16 15 17 #ifndef KERNEL_H 18 #define KERNEL_H 16 #pragma once 19 17 20 18 #include <stdbool.h> … … 28 26 //----------------------------------------------------------------------------- 29 27 // Locks 30 bool try_lock ( spinlock * DEBUG_CTX_PARAM2 ); 31 void lock ( spinlock * DEBUG_CTX_PARAM2 );32 void lock_yield( spinlock * DEBUG_CTX_PARAM2 ); 33 void unlock ( spinlock * ); 28 void lock ( spinlock * DEBUG_CTX_PARAM2 ); // Lock the spinlock, spin if already acquired 29 void lock_yield( spinlock * DEBUG_CTX_PARAM2 ); // Lock the spinlock, yield repeatedly if already acquired 30 bool try_lock ( spinlock * DEBUG_CTX_PARAM2 ); // Lock the spinlock, return false if already acquired 31 void unlock ( spinlock * ); // Unlock the spinlock 34 32 35 33 struct semaphore { … … 48 46 // Cluster 49 47 struct cluster { 50 __thread_queue_t ready_queue; 51 spinlock lock; 48 spinlock ready_queue_lock; // Ready queue locks 49 __thread_queue_t ready_queue; // Ready queue for threads 50 unsigned long long int preemption; // Preemption rate on this cluster 52 51 }; 53 52 … … 76 75 static inline void ^?{}(FinishAction * this) {} 77 76 77 // Processor 78 // Wrapper around kernel threads 78 79 struct processor { 79 struct processorCtx_t * runner; 80 cluster * cltr; 81 pthread_t kernel_thread; 80 // Main state 81 struct processorCtx_t * runner; // Coroutine ctx who does keeps the state of the processor 82 cluster * cltr; // Cluster from which to get threads 83 pthread_t kernel_thread; // Handle to pthreads 82 84 83 semaphore terminated; 84 volatile bool is_terminated; 85 // Termination 86 volatile bool do_terminate; // Set to true to notify the processor should terminate 87 semaphore terminated; // Termination synchronisation 85 88 86 struct FinishAction finish; 89 // RunThread data 90 struct FinishAction finish; // Action to do after a thread is ran 87 91 88 struct alarm_node_t * preemption_alarm; 89 unsigned int preemption; 92 // Preemption data 93 struct alarm_node_t * preemption_alarm; // Node which is added in the discrete event simulaiton 94 bool pending_preemption; // If true, a preemption was triggered in an unsafe region, the processor must preempt as soon as possible 90 95 91 bool pending_preemption; 92 93 char * last_enable; 96 #ifdef __CFA_DEBUG__ 97 char * last_enable; // Last function to enable preemption on this processor 98 #endif 94 99 }; 95 100 … … 98 103 void ^?{}(processor * this); 99 104 100 #endif //KERNEL_H101 102 105 // Local Variables: // 103 // mode: CFA//104 // tab-width: 6//106 // mode: c // 107 // tab-width: 4 // 105 108 // End: // -
src/libcfa/concurrency/kernel.c
re0a653d r33218c6 1 // -*- Mode: CFA -*-2 1 // 3 2 // Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo … … 10 9 // Author : Thierry Delisle 11 10 // Created On : Tue Jan 17 12:27:26 2017 12 // Last Modified By : Thierry Delisle13 // Last Modified On : --14 // Update Count : 011 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Jul 21 22:33:18 2017 13 // Update Count : 2 15 14 // 16 15 … … 42 41 //----------------------------------------------------------------------------- 43 42 // Kernel storage 44 #define KERNEL_STORAGE(T,X) static char X##Storage[sizeof(T)] 45 46 KERNEL_STORAGE(processorCtx_t, systemProcessorCtx); 47 KERNEL_STORAGE(cluster, systemCluster); 48 KERNEL_STORAGE(system_proc_t, systemProcessor); 49 KERNEL_STORAGE(thread_desc, mainThread); 43 KERNEL_STORAGE(cluster, mainCluster); 44 KERNEL_STORAGE(processor, mainProcessor); 45 KERNEL_STORAGE(processorCtx_t, mainProcessorCtx); 46 KERNEL_STORAGE(thread_desc, mainThread); 50 47 KERNEL_STORAGE(machine_context_t, mainThreadCtx); 51 48 52 cluster * systemCluster;53 system_proc_t * systemProcessor;49 cluster * mainCluster; 50 processor * mainProcessor; 54 51 thread_desc * mainThread; 55 52 … … 57 54 // Global state 58 55 59 volatile thread_local processor * this_processor; 60 volatile thread_local coroutine_desc * this_coroutine; 61 volatile thread_local thread_desc * this_thread; 56 thread_local coroutine_desc * volatile this_coroutine; 57 thread_local thread_desc * volatile this_thread; 58 thread_local processor * volatile this_processor; 59 60 volatile thread_local bool preemption_in_progress = 0; 62 61 volatile thread_local unsigned short disable_preempt_count = 1; 63 62 … … 84 83 85 84 this->limit = (void *)(((intptr_t)this->base) - this->size); 86 this->context = & mainThreadCtxStorage;85 this->context = &storage_mainThreadCtx; 87 86 this->top = this->base; 88 87 } … … 124 123 125 124 void ?{}(processor * this) { 126 this{ systemCluster };125 this{ mainCluster }; 127 126 } 128 127 … … 130 129 this->cltr = cltr; 131 130 (&this->terminated){ 0 }; 132 this-> is_terminated= false;131 this->do_terminate = false; 133 132 this->preemption_alarm = NULL; 134 this->preemption = default_preemption();135 133 this->pending_preemption = false; 136 134 … … 141 139 this->cltr = cltr; 142 140 (&this->terminated){ 0 }; 143 this-> is_terminated= false;141 this->do_terminate = false; 144 142 this->preemption_alarm = NULL; 145 this->preemption = default_preemption();146 143 this->pending_preemption = false; 147 144 this->kernel_thread = pthread_self(); 148 145 149 146 this->runner = runner; 150 LIB_DEBUG_PRINT_SAFE("Kernel : constructing systemprocessor context %p\n", runner);147 LIB_DEBUG_PRINT_SAFE("Kernel : constructing main processor context %p\n", runner); 151 148 runner{ this }; 152 149 } 153 150 154 LIB_DEBUG_DO( bool validate( alarm_list_t * this ); )155 156 void ?{}(system_proc_t * this, cluster * cltr, processorCtx_t * runner) {157 (&this->alarms){};158 (&this->alarm_lock){};159 this->pending_alarm = false;160 161 (&this->proc){ cltr, runner };162 163 verify( validate( &this->alarms ) );164 }165 166 151 void ^?{}(processor * this) { 167 if( ! this-> is_terminated) {152 if( ! this->do_terminate ) { 168 153 LIB_DEBUG_PRINT_SAFE("Kernel : core %p signaling termination\n", this); 169 this-> is_terminated= true;154 this->do_terminate = true; 170 155 P( &this->terminated ); 171 156 pthread_join( this->kernel_thread, NULL ); … … 175 160 void ?{}(cluster * this) { 176 161 ( &this->ready_queue ){}; 177 ( &this->lock ){}; 162 ( &this->ready_queue_lock ){}; 163 164 this->preemption = default_preemption(); 178 165 } 179 166 … … 198 185 199 186 thread_desc * readyThread = NULL; 200 for( unsigned int spin_count = 0; ! this-> is_terminated; spin_count++ )187 for( unsigned int spin_count = 0; ! this->do_terminate; spin_count++ ) 201 188 { 202 189 readyThread = nextThread( this->cltr ); … … 342 329 verifyf( thrd->next == NULL, "Expected null got %p", thrd->next ); 343 330 344 lock( &systemProcessor->proc.cltr->lock DEBUG_CTX2 );345 append( & systemProcessor->proc.cltr->ready_queue, thrd );346 unlock( & systemProcessor->proc.cltr->lock );331 lock( &this_processor->cltr->ready_queue_lock DEBUG_CTX2 ); 332 append( &this_processor->cltr->ready_queue, thrd ); 333 unlock( &this_processor->cltr->ready_queue_lock ); 347 334 348 335 verify( disable_preempt_count > 0 ); … … 351 338 thread_desc * nextThread(cluster * this) { 352 339 verify( disable_preempt_count > 0 ); 353 lock( &this-> lock DEBUG_CTX2 );340 lock( &this->ready_queue_lock DEBUG_CTX2 ); 354 341 thread_desc * head = pop_head( &this->ready_queue ); 355 unlock( &this-> lock );342 unlock( &this->ready_queue_lock ); 356 343 verify( disable_preempt_count > 0 ); 357 344 return head; … … 451 438 // Start by initializing the main thread 452 439 // SKULLDUGGERY: the mainThread steals the process main thread 453 // which will then be scheduled by the systemProcessor normally454 mainThread = (thread_desc *)& mainThreadStorage;440 // which will then be scheduled by the mainProcessor normally 441 mainThread = (thread_desc *)&storage_mainThread; 455 442 current_stack_info_t info; 456 443 mainThread{ &info }; … … 458 445 LIB_DEBUG_PRINT_SAFE("Kernel : Main thread ready\n"); 459 446 460 // Initialize the systemcluster461 systemCluster = (cluster *)&systemClusterStorage;462 systemCluster{};463 464 LIB_DEBUG_PRINT_SAFE("Kernel : Systemcluster ready\n");465 466 // Initialize the system processor and the systemprocessor ctx447 // Initialize the main cluster 448 mainCluster = (cluster *)&storage_mainCluster; 449 mainCluster{}; 450 451 LIB_DEBUG_PRINT_SAFE("Kernel : main cluster ready\n"); 452 453 // Initialize the main processor and the main processor ctx 467 454 // (the coroutine that contains the processing control flow) 468 systemProcessor = (system_proc_t *)&systemProcessorStorage; 469 systemProcessor{ systemCluster, (processorCtx_t *)&systemProcessorCtxStorage }; 470 471 // Add the main thread to the ready queue 472 // once resume is called on systemProcessor->runner the mainThread needs to be scheduled like any normal thread 473 ScheduleThread(mainThread); 455 mainProcessor = (processor *)&storage_mainProcessor; 456 mainProcessor{ mainCluster, (processorCtx_t *)&storage_mainProcessorCtx }; 474 457 475 458 //initialize the global state variables 476 this_processor = &systemProcessor->proc;459 this_processor = mainProcessor; 477 460 this_thread = mainThread; 478 461 this_coroutine = &mainThread->cor; 479 disable_preempt_count = 1;480 462 481 463 // Enable preemption 482 464 kernel_start_preemption(); 483 465 484 // SKULLDUGGERY: Force a context switch to the system processor to set the main thread's context to the current UNIX 466 // Add the main thread to the ready queue 467 // once resume is called on mainProcessor->runner the mainThread needs to be scheduled like any normal thread 468 ScheduleThread(mainThread); 469 470 // SKULLDUGGERY: Force a context switch to the main processor to set the main thread's context to the current UNIX 485 471 // context. Hence, the main thread does not begin through CtxInvokeThread, like all other threads. The trick here is that 486 472 // mainThread is on the ready queue when this call is made. 487 resume( systemProcessor->proc.runner );473 resume( mainProcessor->runner ); 488 474 489 475 … … 500 486 disable_interrupts(); 501 487 502 // SKULLDUGGERY: Notify the systemProcessor it needs to terminates.488 // SKULLDUGGERY: Notify the mainProcessor it needs to terminates. 503 489 // When its coroutine terminates, it return control to the mainThread 504 490 // which is currently here 505 systemProcessor->proc.is_terminated= true;491 mainProcessor->do_terminate = true; 506 492 suspend(); 507 493 … … 511 497 kernel_stop_preemption(); 512 498 513 // Destroy the systemprocessor and its context in reverse order of construction499 // Destroy the main processor and its context in reverse order of construction 514 500 // These were manually constructed so we need manually destroy them 515 ^( systemProcessor->proc.runner){};516 ^( systemProcessor){};501 ^(mainProcessor->runner){}; 502 ^(mainProcessor){}; 517 503 518 504 // Final step, destroy the main thread since it is no longer needed … … 698 684 return top; 699 685 } 686 700 687 // Local Variables: // 701 688 // mode: c // -
src/libcfa/concurrency/kernel_private.h
re0a653d r33218c6 1 // -*- Mode: CFA -*-2 1 // 3 2 // Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo … … 10 9 // Author : Thierry Delisle 11 10 // Created On : Mon Feb 13 12:27:26 2017 12 // Last Modified By : Thierry Delisle13 // Last Modified On : --14 // Update Count : 011 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jul 22 09:58:09 2017 13 // Update Count : 2 15 14 // 16 15 17 #ifndef KERNEL_PRIVATE_H 18 #define KERNEL_PRIVATE_H 16 #pragma once 19 17 20 18 #include "libhdr.h" … … 31 29 extern "C" { 32 30 void disable_interrupts(); 33 void enable_interrupts_no RF();31 void enable_interrupts_noPoll(); 34 32 void enable_interrupts( DEBUG_CTX_PARAM ); 35 33 } … … 45 43 thread_desc * nextThread(cluster * this); 46 44 45 //Block current thread and release/wake-up the following resources 47 46 void BlockInternal(void); 48 47 void BlockInternal(spinlock * lock); … … 65 64 void spin(processor * this, unsigned int * spin_count); 66 65 67 struct system_proc_t { 68 processor proc; 69 66 struct event_kernel_t { 70 67 alarm_list_t alarms; 71 spinlock alarm_lock; 72 73 bool pending_alarm; 68 spinlock lock; 74 69 }; 75 70 76 extern cluster * systemCluster; 77 extern system_proc_t * systemProcessor; 78 extern volatile thread_local processor * this_processor; 79 extern volatile thread_local coroutine_desc * this_coroutine; 80 extern volatile thread_local thread_desc * this_thread; 71 extern event_kernel_t * event_kernel; 72 73 extern thread_local coroutine_desc * volatile this_coroutine; 74 extern thread_local thread_desc * volatile this_thread; 75 extern thread_local processor * volatile this_processor; 76 77 extern volatile thread_local bool preemption_in_progress; 81 78 extern volatile thread_local unsigned short disable_preempt_count; 82 79 … … 90 87 extern void ThreadCtxSwitch(coroutine_desc * src, coroutine_desc * dst); 91 88 92 #endif //KERNEL_PRIVATE_H 89 //----------------------------------------------------------------------------- 90 // Utils 91 #define KERNEL_STORAGE(T,X) static char storage_##X[sizeof(T)] 93 92 94 93 // Local Variables: // -
src/libcfa/concurrency/monitor
re0a653d r33218c6 1 // -*- Mode: CFA -*-2 1 // 3 2 // Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo … … 10 9 // Author : Thierry Delisle 11 10 // Created On : Thd Feb 23 12:27:26 2017 12 // Last Modified By : Thierry Delisle13 // Last Modified On : --14 // Update Count : 011 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jul 22 09:59:01 2017 13 // Update Count : 3 15 14 // 16 15 17 #ifndef MONITOR_H 18 #define MONITOR_H 16 #pragma once 19 17 20 18 #include <stddef.h> 21 19 22 #include "assert"20 #include <assert.h> 23 21 #include "invoke.h" 24 22 #include "stdlib" … … 99 97 void __accept_internal( unsigned short count, __acceptable_t * acceptables, void (*func)(void) ); 100 98 101 #endif //MONITOR_H 99 // Local Variables: // 100 // mode: c // 101 // tab-width: 4 // 102 // End: // -
src/libcfa/concurrency/monitor.c
re0a653d r33218c6 1 // -*- Mode: CFA -*-2 1 // 3 2 // Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo … … 10 9 // Author : Thierry Delisle 11 10 // Created On : Thd Feb 23 12:27:26 2017 12 // Last Modified By : Thierry Delisle13 // Last Modified On : --14 // Update Count : 011 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Jul 21 22:37:11 2017 13 // Update Count : 1 15 14 // 16 15 … … 528 527 return head; 529 528 } 529 530 // Local Variables: // 531 // mode: c // 532 // tab-width: 4 // 533 // End: // -
src/libcfa/concurrency/preemption.c
re0a653d r33218c6 1 // -*- Mode: CFA -*-2 1 // 3 2 // Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo … … 10 9 // Author : Thierry Delisle 11 10 // Created On : Mon Jun 5 14:20:42 2017 12 // Last Modified By : Thierry Delisle13 // Last Modified On : --14 // Update Count : 011 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Jul 21 22:36:05 2017 13 // Update Count : 2 15 14 // 16 15 … … 34 33 #endif 35 34 35 //TODO move to defaults 36 36 #define __CFA_DEFAULT_PREEMPTION__ 10000 37 37 38 //TODO move to defaults 38 39 __attribute__((weak)) unsigned int default_preemption() { 39 40 return __CFA_DEFAULT_PREEMPTION__; 40 41 } 41 42 43 // Short hands for signal context information 42 44 #define __CFA_SIGCXT__ ucontext_t * 43 45 #define __CFA_SIGPARMS__ __attribute__((unused)) int sig, __attribute__((unused)) siginfo_t *sfp, __attribute__((unused)) __CFA_SIGCXT__ cxt 44 46 47 // FwdDeclarations : timeout handlers 45 48 static void preempt( processor * this ); 46 49 static void timeout( thread_desc * this ); 47 50 51 // FwdDeclarations : Signal handlers 48 52 void sigHandler_ctxSwitch( __CFA_SIGPARMS__ ); 49 void sigHandler_alarm ( __CFA_SIGPARMS__ );50 53 void sigHandler_segv ( __CFA_SIGPARMS__ ); 51 54 void sigHandler_abort ( __CFA_SIGPARMS__ ); 52 55 56 // FwdDeclarations : sigaction wrapper 53 57 static void __kernel_sigaction( int sig, void (*handler)(__CFA_SIGPARMS__), int flags ); 54 LIB_DEBUG_DO( bool validate( alarm_list_t * this ); ) 55 58 59 // FwdDeclarations : alarm thread main 60 void * alarm_loop( __attribute__((unused)) void * args ); 61 62 // Machine specific register name 56 63 #ifdef __x86_64__ 57 64 #define CFA_REG_IP REG_RIP … … 60 67 #endif 61 68 69 KERNEL_STORAGE(event_kernel_t, event_kernel); // private storage for event kernel 70 event_kernel_t * event_kernel; // kernel public handle to even kernel 71 static pthread_t alarm_thread; // pthread handle to alarm thread 72 73 void ?{}(event_kernel_t * this) { 74 (&this->alarms){}; 75 (&this->lock){}; 76 } 62 77 63 78 //============================================================================================= … … 65 80 //============================================================================================= 66 81 82 // Get next expired node 83 static inline alarm_node_t * get_expired( alarm_list_t * alarms, __cfa_time_t currtime ) { 84 if( !alarms->head ) return NULL; // If no alarms return null 85 if( alarms->head->alarm >= currtime ) return NULL; // If alarms head not expired return null 86 return pop(alarms); // Otherwise just pop head 87 } 88 89 // Tick one frame of the Discrete Event Simulation for alarms 67 90 void tick_preemption() { 68 // LIB_DEBUG_PRINT_BUFFER_DECL( STDERR_FILENO, "Ticking preemption\n" );69 70 alarm_list_t * alarms = &systemProcessor->alarms;71 __cfa_time_t currtime = __kernel_get_time(); 72 while( alarms->head && alarms->head->alarm < currtime ) {73 alarm_node_t * node = pop(alarms);74 // LIB_DEBUG_PRINT_BUFFER_LOCAL( STDERR_FILENO, "Ticking %p\n", node ); 75 91 alarm_node_t * node = NULL; // Used in the while loop but cannot be declared in the while condition 92 alarm_list_t * alarms = &event_kernel->alarms; // Local copy for ease of reading 93 __cfa_time_t currtime = __kernel_get_time(); // Check current time once so we everything "happens at once" 94 95 //Loop throught every thing expired 96 while( node = get_expired( alarms, currtime ) ) { 97 98 // Check if this is a kernel 76 99 if( node->kernel_alarm ) { 77 100 preempt( node->proc ); … … 81 104 } 82 105 83 verify( validate( alarms ) );84 85 if( node->period > 0 ) {86 node->alarm = currtime + node->period;87 insert( alarms, node ); 106 // Check if this is a periodic alarm 107 __cfa_time_t period = node->period; 108 if( period > 0 ) { 109 node->alarm = currtime + period; // Alarm is periodic, add currtime to it (used cached current time) 110 insert( alarms, node ); // Reinsert the node for the next time it triggers 88 111 } 89 112 else { 90 node->set = false; 91 } 92 } 93 94 if( alarms->head ) { 95 __kernel_set_timer( alarms->head->alarm - currtime ); 96 } 97 98 verify( validate( alarms ) ); 99 // LIB_DEBUG_PRINT_BUFFER_LOCAL( STDERR_FILENO, "Ticking preemption done\n" ); 100 } 101 113 node->set = false; // Node is one-shot, just mark it as not pending 114 } 115 } 116 117 // If there are still alarms pending, reset the timer 118 if( alarms->head ) { __kernel_set_timer( alarms->head->alarm - currtime ); } 119 } 120 121 // Update the preemption of a processor and notify interested parties 102 122 void update_preemption( processor * this, __cfa_time_t duration ) { 103 LIB_DEBUG_PRINT_BUFFER_DECL( STDERR_FILENO, "Processor : %p updating preemption to %lu\n", this, duration );104 105 123 alarm_node_t * alarm = this->preemption_alarm; 106 duration *= 1000;107 124 108 125 // Alarms need to be enabled … … 134 151 135 152 extern "C" { 153 // Disable interrupts by incrementing the counter 136 154 void disable_interrupts() { 137 155 __attribute__((unused)) unsigned short new_val = __atomic_add_fetch_2( &disable_preempt_count, 1, __ATOMIC_SEQ_CST ); 138 verify( new_val < (unsigned short)65_000 ); 139 verify( new_val != (unsigned short) 0 ); 140 } 141 142 void enable_interrupts_noRF() { 143 __attribute__((unused)) unsigned short prev = __atomic_fetch_add_2( &disable_preempt_count, -1, __ATOMIC_SEQ_CST ); 144 verify( prev != (unsigned short) 0 ); 145 } 146 156 verify( new_val < 65_000u ); // If this triggers someone is disabling interrupts without enabling them 157 } 158 159 // Enable interrupts by decrementing the counter 160 // If counter reaches 0, execute any pending CtxSwitch 147 161 void enable_interrupts( DEBUG_CTX_PARAM ) { 148 processor * proc = this_processor; 149 thread_desc * thrd = this_thread; 162 processor * proc = this_processor; // Cache the processor now since interrupts can start happening after the atomic add 163 thread_desc * thrd = this_thread; // Cache the thread now since interrupts can start happening after the atomic add 164 150 165 unsigned short prev = __atomic_fetch_add_2( &disable_preempt_count, -1, __ATOMIC_SEQ_CST ); 151 verify( prev != (unsigned short) 0 ); 166 verify( prev != 0u ); // If this triggers someone is enabled already enabled interruptsverify( prev != 0u ); 167 168 // Check if we need to prempt the thread because an interrupt was missed 152 169 if( prev == 1 && proc->pending_preemption ) { 153 170 proc->pending_preemption = false; … … 155 172 } 156 173 174 // For debugging purposes : keep track of the last person to enable the interrupts 157 175 LIB_DEBUG_DO( proc->last_enable = caller; ) 158 176 } 159 } 160 177 178 // Disable interrupts by incrementint the counter 179 // Don't execute any pending CtxSwitch even if counter reaches 0 180 void enable_interrupts_noPoll() { 181 __attribute__((unused)) unsigned short prev = __atomic_fetch_add_2( &disable_preempt_count, -1, __ATOMIC_SEQ_CST ); 182 verify( prev != 0u ); // If this triggers someone is enabled already enabled interrupts 183 } 184 } 185 186 // sigprocmask wrapper : unblock a single signal 161 187 static inline void signal_unblock( int sig ) { 162 188 sigset_t mask; … … 169 195 } 170 196 197 // sigprocmask wrapper : block a single signal 171 198 static inline void signal_block( int sig ) { 172 199 sigset_t mask; … … 179 206 } 180 207 181 static inline bool preemption_ready() { 182 return disable_preempt_count == 0; 183 } 184 185 static inline void defer_ctxSwitch() { 186 this_processor->pending_preemption = true; 187 } 188 189 static inline void defer_alarm() { 190 systemProcessor->pending_alarm = true; 191 } 192 208 // kill wrapper : signal a processor 193 209 static void preempt( processor * this ) { 194 210 pthread_kill( this->kernel_thread, SIGUSR1 ); 195 211 } 196 212 213 // reserved for future use 197 214 static void timeout( thread_desc * this ) { 198 215 //TODO : implement waking threads 199 216 } 200 217 218 219 // Check if a CtxSwitch signal handler shoud defer 220 // If true : preemption is safe 221 // If false : preemption is unsafe and marked as pending 222 static inline bool preemption_ready() { 223 bool ready = disable_preempt_count == 0 && !preemption_in_progress; // Check if preemption is safe 224 this_processor->pending_preemption = !ready; // Adjust the pending flag accordingly 225 return ready; 226 } 227 201 228 //============================================================================================= 202 229 // Kernel Signal Startup/Shutdown logic 203 230 //============================================================================================= 204 231 205 static pthread_t alarm_thread; 206 void * alarm_loop( __attribute__((unused)) void * args ); 207 232 // Startup routine to activate preemption 233 // Called from kernel_startup 208 234 void kernel_start_preemption() { 209 235 LIB_DEBUG_PRINT_SAFE("Kernel : Starting preemption\n"); 210 __kernel_sigaction( SIGUSR1, sigHandler_ctxSwitch, SA_SIGINFO ); 211 // __kernel_sigaction( SIGSEGV, sigHandler_segv , SA_SIGINFO ); 212 // __kernel_sigaction( SIGBUS , sigHandler_segv , SA_SIGINFO ); 236 237 // Start with preemption disabled until ready 238 disable_preempt_count = 1; 239 240 // Initialize the event kernel 241 event_kernel = (event_kernel_t *)&storage_event_kernel; 242 event_kernel{}; 243 244 // Setup proper signal handlers 245 __kernel_sigaction( SIGUSR1, sigHandler_ctxSwitch, SA_SIGINFO ); // CtxSwitch handler 246 // __kernel_sigaction( SIGSEGV, sigHandler_segv , SA_SIGINFO ); // Failure handler 247 // __kernel_sigaction( SIGBUS , sigHandler_segv , SA_SIGINFO ); // Failure handler 213 248 214 249 signal_block( SIGALRM ); … … 217 252 } 218 253 254 // Shutdown routine to deactivate preemption 255 // Called from kernel_shutdown 219 256 void kernel_stop_preemption() { 257 LIB_DEBUG_PRINT_SAFE("Kernel : Preemption stopping\n"); 258 259 // Block all signals since we are already shutting down 220 260 sigset_t mask; 221 261 sigfillset( &mask ); 222 262 sigprocmask( SIG_BLOCK, &mask, NULL ); 223 263 224 pthread_kill( alarm_thread, SIGINT ); 264 // Notify the alarm thread of the shutdown 265 sigval val = { 1 }; 266 pthread_sigqueue( alarm_thread, SIGALRM, val ); 267 268 // Wait for the preemption thread to finish 225 269 pthread_join( alarm_thread, NULL ); 270 271 // Preemption is now fully stopped 272 226 273 LIB_DEBUG_PRINT_SAFE("Kernel : Preemption stopped\n"); 227 274 } 228 275 276 // Raii ctor/dtor for the preemption_scope 277 // Used by thread to control when they want to receive preemption signals 229 278 void ?{}( preemption_scope * this, processor * proc ) { 230 (&this->alarm){ proc };279 (&this->alarm){ proc, zero_time, zero_time }; 231 280 this->proc = proc; 232 281 this->proc->preemption_alarm = &this->alarm; 233 update_preemption( this->proc, this->proc->preemption ); 282 283 update_preemption( this->proc, from_us(this->proc->cltr->preemption) ); 234 284 } 235 285 … … 237 287 disable_interrupts(); 238 288 239 update_preemption( this->proc, 0);289 update_preemption( this->proc, zero_time ); 240 290 } 241 291 … … 244 294 //============================================================================================= 245 295 296 // Context switch signal handler 297 // Receives SIGUSR1 signal and causes the current thread to yield 246 298 void sigHandler_ctxSwitch( __CFA_SIGPARMS__ ) { 247 299 LIB_DEBUG_DO( last_interrupt = (void *)(cxt->uc_mcontext.gregs[CFA_REG_IP]); ) 248 if( preemption_ready() ) { 249 signal_unblock( SIGUSR1 ); 250 BlockInternal( (thread_desc*)this_thread ); 251 } 252 else { 253 defer_ctxSwitch(); 254 } 255 } 256 257 // void sigHandler_alarm( __CFA_SIGPARMS__ ) { 258 // LIB_DEBUG_DO( last_interrupt = (void *)(cxt->uc_mcontext.gregs[CFA_REG_IP]); ) 259 // verify( this_processor == systemProcessor ); 260 261 // if( try_lock( &systemProcessor->alarm_lock DEBUG_CTX2 ) ) { 262 // tick_preemption(); 263 // systemProcessor->pending_alarm = false; 264 // unlock( &systemProcessor->alarm_lock ); 265 // } 266 // else { 267 // defer_alarm(); 268 // } 269 270 // signal_unblock( SIGALRM ); 271 272 // if( preemption_ready() && this_processor->pending_preemption ) { 273 274 // this_processor->pending_preemption = false; 275 // BlockInternal( (thread_desc*)this_thread ); 276 // } 277 // } 278 300 301 // Check if it is safe to preempt here 302 if( !preemption_ready() ) { return; } 303 304 preemption_in_progress = true; // Sync flag : prevent recursive calls to the signal handler 305 signal_unblock( SIGUSR1 ); // We are about to CtxSwitch out of the signal handler, let other handlers in 306 preemption_in_progress = false; // Clear the in progress flag 307 308 // Preemption can occur here 309 310 BlockInternal( (thread_desc*)this_thread ); // Do the actual CtxSwitch 311 } 312 313 // Main of the alarm thread 314 // Waits on SIGALRM and send SIGUSR1 to whom ever needs it 279 315 void * alarm_loop( __attribute__((unused)) void * args ) { 316 // Block sigalrms to control when they arrive 280 317 sigset_t mask; 281 318 sigemptyset( &mask ); 282 319 sigaddset( &mask, SIGALRM ); 283 sigaddset( &mask, SIGUSR2 );284 sigaddset( &mask, SIGINT );285 320 286 321 if ( pthread_sigmask( SIG_BLOCK, &mask, NULL ) == -1 ) { … … 288 323 } 289 324 325 // Main loop 290 326 while( true ) { 291 int sig; 292 if( sigwait( &mask, &sig ) != 0 ) { 293 abortf( "internal error, sigwait" ); 294 } 295 296 switch( sig) { 297 case SIGALRM: 298 LIB_DEBUG_PRINT_SAFE("Kernel : Preemption thread tick\n"); 299 lock( &systemProcessor->alarm_lock DEBUG_CTX2 ); 300 tick_preemption(); 301 unlock( &systemProcessor->alarm_lock ); 302 break; 303 case SIGUSR2: 304 //TODO other actions 305 break; 306 case SIGINT: 307 LIB_DEBUG_PRINT_SAFE("Kernel : Preemption thread stopping\n"); 308 return NULL; 309 default: 310 abortf( "internal error, sigwait returned sig %d", sig ); 311 break; 312 } 313 } 314 } 315 327 // Wait for a sigalrm 328 siginfo_t info; 329 int sig = sigwaitinfo( &mask, &info ); 330 331 // If another signal arrived something went wrong 332 assertf(sig == SIGALRM, "Kernel Internal Error, sigwait: Unexpected signal %d (%d : %d)\n", sig, info.si_code, info.si_value.sival_int); 333 334 LIB_DEBUG_PRINT_SAFE("Kernel : Caught alarm from %d with %d\n", info.si_code, info.si_value.sival_int ); 335 // Switch on the code (a.k.a. the sender) to 336 switch( info.si_code ) 337 { 338 // Timers can apparently be marked as sent for the kernel 339 // In either case, tick preemption 340 case SI_TIMER: 341 case SI_KERNEL: 342 LIB_DEBUG_PRINT_SAFE("Kernel : Preemption thread tick\n"); 343 lock( &event_kernel->lock DEBUG_CTX2 ); 344 tick_preemption(); 345 unlock( &event_kernel->lock ); 346 break; 347 // Signal was not sent by the kernel but by an other thread 348 case SI_QUEUE: 349 // For now, other thread only signal the alarm thread to shut it down 350 // If this needs to change use info.si_value and handle the case here 351 goto EXIT; 352 } 353 } 354 355 EXIT: 356 LIB_DEBUG_PRINT_SAFE("Kernel : Preemption thread stopping\n"); 357 return NULL; 358 } 359 360 // Sigaction wrapper : register an signal handler 316 361 static void __kernel_sigaction( int sig, void (*handler)(__CFA_SIGPARMS__), int flags ) { 317 362 struct sigaction act; … … 329 374 } 330 375 331 typedef void (*sa_handler_t)(int); 332 376 // Sigaction wrapper : restore default handler 333 377 static void __kernel_sigdefault( int sig ) { 334 378 struct sigaction act; 335 379 336 //act.sa_handler = SIG_DFL;380 act.sa_handler = SIG_DFL; 337 381 act.sa_flags = 0; 338 382 sigemptyset( &act.sa_mask ); … … 442 486 // raise( SIGABRT ); 443 487 // } 488 489 // Local Variables: // 490 // mode: c // 491 // tab-width: 4 // 492 // End: // -
src/libcfa/concurrency/preemption.h
re0a653d r33218c6 1 // -*- Mode: CFA -*-2 1 // 3 2 // Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo … … 10 9 // Author : Thierry Delisle 11 10 // Created On : Mon Jun 5 14:20:42 2017 12 // Last Modified By : Thierry Delisle13 // Last Modified On : --14 // Update Count : 011 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Jul 21 22:34:25 2017 13 // Update Count : 1 15 14 // 16 15 17 #ifndef PREEMPTION_H 18 #define PREEMPTION_H 16 #pragma once 19 17 20 18 #include "alarm.h" … … 35 33 void ^?{}( preemption_scope * this ); 36 34 37 #endif //PREEMPTION_H 35 // Local Variables: // 36 // mode: c // 37 // tab-width: 4 // 38 // End: // -
src/libcfa/concurrency/thread
re0a653d r33218c6 1 // -*- Mode: CFA -*-2 1 // 3 2 // Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo … … 10 9 // Author : Thierry Delisle 11 10 // Created On : Tue Jan 17 12:27:26 2017 12 // Last Modified By : Thierry Delisle13 // Last Modified On : --14 // Update Count : 011 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jul 22 09:59:40 2017 13 // Update Count : 3 15 14 // 16 15 17 #ifndef THREADS_H 18 #define THREADS_H 16 #pragma once 19 17 20 #include "assert"18 #include <assert.h> 21 19 #include "invoke.h" 22 20 … … 54 52 } 55 53 56 extern volatile thread_local thread_desc *this_thread;54 extern thread_local thread_desc * volatile this_thread; 57 55 58 56 forall( dtype T | is_thread(T) ) … … 84 82 void yield( unsigned times ); 85 83 86 #endif //THREADS_H87 88 84 // Local Variables: // 89 85 // mode: c // -
src/libcfa/concurrency/thread.c
re0a653d r33218c6 1 // -*- Mode: CFA -*-2 1 // 3 2 // Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo … … 10 9 // Author : Thierry Delisle 11 10 // Created On : Tue Jan 17 12:27:26 2017 12 // Last Modified By : Thierry Delisle13 // Last Modified On : --14 // Update Count : 011 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Jul 21 22:34:46 2017 13 // Update Count : 1 15 14 // 16 15 … … 87 86 88 87 void yield( void ) { 89 BlockInternal( (thread_desc *)this_thread );88 BlockInternal( this_thread ); 90 89 } 91 90 -
src/libcfa/containers/maybe
re0a653d r33218c6 9 9 // Author : Andrew Beach 10 10 // Created On : Wed May 24 14:43:00 2017 11 // Last Modified By : Andrew Beach12 // Last Modified On : Fri Jun 16 15:42:00201713 // Update Count : 211 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jul 22 10:00:52 2017 13 // Update Count : 4 14 14 // 15 15 16 17 #ifndef MAYBE_H 18 #define MAYBE_H 16 #pragma once 19 17 20 18 #include <stdbool.h> … … 66 64 void set_none(maybe(T) * this); 67 65 68 #endif // MAYBE_H 66 // Local Variables: // 67 // mode: c // 68 // tab-width: 4 // 69 // End: // -
src/libcfa/containers/maybe.c
re0a653d r33218c6 9 9 // Author : Andrew Beach 10 10 // Created On : Wed May 24 15:40:00 2017 11 // Last Modified By : Andrew Beach12 // Last Modified On : Th r May 25 15:24:00 201713 // Update Count : 111 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Jul 20 15:23:50 2017 13 // Update Count : 2 14 14 // 15 15 16 16 #include <containers/maybe> 17 #include <assert >17 #include <assert.h> 18 18 19 19 -
src/libcfa/containers/pair
re0a653d r33218c6 9 9 // Author : Aaron Moss 10 10 // Created On : Wed Apr 12 15:32:00 2017 11 // Last Modified By : Aaron Moss12 // Last Modified On : Wed Apr 12 15:32:00201713 // Update Count : 111 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jul 22 09:59:53 2017 13 // Update Count : 2 14 14 // 15 15 16 #ifndef PAIR_H 17 #define PAIR_H 16 #pragma once 18 17 19 18 forall(otype R, otype S) struct pair { … … 44 43 int ?>=?(pair(R, S) p, pair(R, S) q); 45 44 46 #endif // PAIR_H47 48 45 // Local Variables: // 49 46 // mode: c // -
src/libcfa/containers/result
re0a653d r33218c6 9 9 // Author : Andrew Beach 10 10 // Created On : Wed May 24 14:45:00 2017 11 // Last Modified By : Andrew Beach12 // Last Modified On : Fri Jun 16 15:41:00201713 // Update Count : 211 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jul 22 10:00:44 2017 13 // Update Count : 3 14 14 // 15 15 16 17 #ifndef RESULT_H 18 #define RESULT_H 16 #pragma once 19 17 20 18 #include <stdbool.h> … … 78 76 void set_error(result(T, E) * this, E error); 79 77 80 #endif // RESULT_H 78 // Local Variables: // 79 // mode: c // 80 // tab-width: 4 // 81 // End: // -
src/libcfa/containers/result.c
re0a653d r33218c6 9 9 // Author : Andrew Beach 10 10 // Created On : Wed May 24 15:40:00 2017 11 // Last Modified By : Andrew Beach12 // Last Modified On : Th r May 25 15:27:00201713 // Update Count : 111 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Jul 20 15:23:58 2017 13 // Update Count : 2 14 14 // 15 15 16 16 #include <containers/result> 17 #include <assert >17 #include <assert.h> 18 18 19 19 -
src/libcfa/containers/vector
re0a653d r33218c6 10 10 // Created On : Tue Jul 5 18:00:07 2016 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue Jul 5 18:01:35 201613 // Update Count : 212 // Last Modified On : Sat Jul 22 10:01:18 2017 13 // Update Count : 3 14 14 // 15 15 16 #ifndef VECTOR_H 17 #define VECTOR_H 16 #pragma once 18 17 19 18 extern "C" { … … 166 165 // } 167 166 168 #endif // VECTOR_H169 170 167 // Local Variables: // 171 168 // mode: c // -
src/libcfa/exception.h
re0a653d r33218c6 9 9 // Author : Andrew Beach 10 10 // Created On : Mon Jun 26 15:11:00 2017 11 // Last Modified By : Andrew Beach12 // Last Modified On : Tus Jul 11 16:31:00201713 // Update Count : 211 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jul 22 09:57:02 2017 13 // Update Count : 3 14 14 // 15 15 16 #ifndef EXCEPTION_H 17 #define EXCEPTION_H 18 16 #pragma once 19 17 20 18 // Later to be a special structure type. … … 55 53 } 56 54 #endif 57 58 #endif //EXCEPTION_H -
src/libcfa/fstream.c
re0a653d r33218c6 10 10 // Created On : Wed May 27 17:56:53 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Jul 6 18:38:25201713 // Update Count : 25 112 // Last Modified On : Thu Jul 20 15:20:49 2017 13 // Update Count : 252 14 14 // 15 15 16 16 #include "fstream" 17 17 18 extern "C" {19 18 #include <stdio.h> // vfprintf, vfscanf 20 19 #include <stdlib.h> // exit … … 24 23 #include <float.h> // DBL_DIG, LDBL_DIG 25 24 #include <complex.h> // creal, cimag 26 } 27 #include "assert" 25 #include <assert.h> 28 26 29 27 #define IO_MSG "I/O error: " -
src/libcfa/interpose.c
re0a653d r33218c6 1 // -*- Mode: CFA -*-2 1 // 3 2 // Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo … … 10 9 // Author : Thierry Delisle 11 10 // Created On : Wed Mar 29 16:10:31 2017 12 // Last Modified By : 13 // Last Modified On : 14 // Update Count : 011 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Jul 21 22:27:33 2017 13 // Update Count : 1 15 14 // 16 15 … … 141 140 } 142 141 } 142 143 // Local Variables: // 144 // mode: c // 145 // tab-width: 4 // 146 // End: // -
src/libcfa/interpose.h
re0a653d r33218c6 1 // -*- Mode: CFA -*-2 1 // 3 2 // Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo … … 10 9 // Author : Thierry Delisle 11 10 // Created On : Wed Mar 29 15:56:41 2017 12 // Last Modified By : 13 // Last Modified On : 14 // Update Count : 011 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Jul 21 22:33:02 2017 13 // Update Count : 2 15 14 // 16 15 17 #ifndef INTERPOSE_H 18 #define INTERPOSE_H 16 #pragma once 19 17 20 18 void * interpose_symbol( const char* symbol, , const char *version ); … … 23 21 extern __typeof__( exit ) libc_abort __attribute__(( noreturn )); 24 22 25 #endif //INTERPOSE_H 23 // Local Variables: // 24 // mode: c // 25 // tab-width: 4 // 26 // End: // -
src/libcfa/iostream.c
re0a653d r33218c6 10 10 // Created On : Wed May 27 17:56:53 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Jul 6 18:14:17201713 // Update Count : 39 612 // Last Modified On : Sun Jul 16 21:12:03 2017 13 // Update Count : 398 14 14 // 15 15 … … 125 125 forall( dtype ostype | ostream( ostype ) ) 126 126 ostype * ?|?( ostype * os, float _Complex fc ) { 127 os | crealf( fc ); 128 _Bool temp = sepDisable( os ); // disable separators within complex value 129 if ( cimagf( fc ) >= 0 ) os | '+'; // negative value prints '-' 130 os | cimagf( fc ) | 'i'; 131 sepReset( os, temp ); // reset separator 127 if ( sepPrt( os ) ) fmt( os, "%s", sepGetCur( os ) ); 128 fmt( os, "%g%+gi", crealf( fc ), cimagf( fc ) ); 132 129 return os; 133 130 } // ?|? … … 135 132 forall( dtype ostype | ostream( ostype ) ) 136 133 ostype * ?|?( ostype * os, double _Complex dc ) { 137 os | creal( dc ); 138 _Bool temp = sepDisable( os ); // disable separators within complex value 139 if ( cimag( dc ) >= 0 ) os | '+'; // negative value prints '-' 140 os | cimag( dc ) | 'i'; 141 sepReset( os, temp ); // reset separator 134 if ( sepPrt( os ) ) fmt( os, "%s", sepGetCur( os ) ); 135 fmt( os, "%.*lg%+.*lgi", DBL_DIG, creal( dc ), DBL_DIG, cimag( dc ) ); 142 136 return os; 143 137 } // ?|? … … 145 139 forall( dtype ostype | ostream( ostype ) ) 146 140 ostype * ?|?( ostype * os, long double _Complex ldc ) { 147 os | creall( ldc ); 148 _Bool temp = sepDisable( os ); // disable separators within complex value 149 if ( cimagl( ldc ) >= 0 ) os | '+'; // negative value prints '-' 150 os | cimagl( ldc ) | 'i'; 151 sepReset( os, temp ); // reset separator 141 if ( sepPrt( os ) ) fmt( os, "%s", sepGetCur( os ) ); 142 fmt( os, "%.*Lg%+.*Lgi", LDBL_DIG, creall( ldc ), LDBL_DIG, cimagl( ldc ) ); 152 143 return os; 153 144 } // ?|? -
src/libcfa/libhdr.h
re0a653d r33218c6 9 9 // Author : Thierry Delisle 10 10 // Created On : Mon Nov 28 12:27:26 2016 11 // Last Modified By : Thierry Delisle12 // Last Modified On : Mon Nov 28 12:27:26 201613 // Update Count : 011 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jul 22 09:56:32 2017 13 // Update Count : 1 14 14 // 15 15 16 #ifndef __LIB_HDR_H__ 17 #define __LIB_HDR_H__ 16 #pragma once 18 17 19 18 #include "libalign.h" … … 21 20 #include "libtools.h" 22 21 23 #endif //__LIB_HDR_H__24 25 22 // Local Variables: // 26 23 // mode: c // -
src/libcfa/libhdr/libalign.h
re0a653d r33218c6 1 // -*- Mode: C++ -*-2 1 // 3 2 // Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo … … 10 9 // Author : Thierry Delisle 11 10 // Created On : Mon Nov 28 12:27:26 2016 12 // Last Modified By : Thierry Delisle13 // Last Modified On : Mon Nov 28 12:27:26 201614 // Update Count : 011 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Jul 21 23:05:35 2017 13 // Update Count : 2 15 14 // 16 15 // This library is free software; you can redistribute it and/or modify it … … 28 27 // 29 28 29 #pragma once 30 30 31 #ifndef __LIB_ALIGN_H__ 32 #define __LIB_ALIGN_H__ 33 34 #include "assert" 31 #include <assert.h> 35 32 #include <stdbool.h> 36 33 … … 61 58 } // uCeiling 62 59 63 64 #endif // __LIB_ALIGN_H__65 66 67 60 // Local Variables: // 68 61 // compile-command: "make install" // -
src/libcfa/libhdr/libdebug.h
re0a653d r33218c6 9 9 // Author : Thierry Delisle 10 10 // Created On : Mon Nov 28 12:27:26 2016 11 // Last Modified By : Thierry Delisle12 // Last Modified On : Mon Nov 28 12:27:26 201613 // Update Count : 011 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jul 22 10:02:24 2017 13 // Update Count : 1 14 14 // 15 15 16 #ifndef __LIB_DEBUG_H__ 17 #define __LIB_DEBUG_H__ 16 #pragma once 18 17 19 18 #ifdef __CFA_DEBUG__ … … 78 77 #endif 79 78 80 #endif //__LIB_DEBUG_H__81 82 79 // Local Variables: // 83 80 // mode: c // -
src/libcfa/libhdr/libtools.h
re0a653d r33218c6 9 9 // Author : Thierry Delisle 10 10 // Created On : Mon Nov 28 12:27:26 2016 11 // Last Modified By : Thierry Delisle12 // Last Modified On : Mon Nov 28 12:27:26 201613 // Update Count : 011 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jul 22 10:02:10 2017 13 // Update Count : 1 14 14 // 15 15 16 #ifndef __LIB_TOOLS_H__ 17 #define __LIB_TOOLS_H__ 16 #pragma once 18 17 19 18 // void abortf( const char *fmt, ... ) { … … 30 29 #endif 31 30 32 #endif //__LIB_TOOLS_H__33 34 31 // Local Variables: // 35 32 // mode: c // -
src/libcfa/math
re0a653d r33218c6 10 10 // Created On : Mon Apr 18 23:37:04 2016 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Jul 7 09:34:15201713 // Update Count : 6112 // Last Modified On : Fri Jul 21 17:03:13 2017 13 // Update Count : 101 14 14 // 15 15 16 16 #pragma once 17 17 18 extern "C" { 19 #include <math.h> // fpclassify, isfinite, isnormal, isnan, isinf 20 } // extern "C" 21 22 float ?%?( float, float ); 23 float fmod( float, float ); 24 double ?%?( double, double ); 18 #include <math.h> 19 #include <complex.h> 20 21 static inline float ?%?( float x, float y ) { return fmodf( x, y ); } 22 static inline float fmod( float x, float y ) { return fmodf( x, y ); } 23 static inline double ?%?( double x, double y ) { return fmod( x, y ); } 25 24 // extern "C" { double fmod( double, double ); } 26 long double ?%?( long double, long double ); 27 long double fmod( long double, long double ); 28 29 float remainder( float, float ); 25 static inline long double ?%?( long double x, long double y ) { return fmodl( x, y ); } 26 static inline long double fmod( long double x, long double y ) { return fmodl( x, y ); } 27 28 static inline float remainder( float x, float y ) { return remainderf( x, y ); } 30 29 // extern "C" { double remainder( double, double ); } 31 long double remainder( long double, long double ); 32 33 [ int, float ] remquo( float, float ); 34 float remquo( float, float, int * ); 35 [ int, double ] remquo( double, double ); 36 // extern "C" { double remquo( double, double, int * ); } 37 [ int, long double ] remquo( long double, long double ); 38 long double remquo( long double, long double, int * ); 39 40 [ int, float ] div( float, float ); // alternative name for remquo 41 float div( float, float, int * ); 42 [ int, double ] div( double, double ); 43 // extern "C" { double div( double, double, int * ); } 44 [ int, long double ] div( long double, long double ); 45 long double div( long double, long double, int * ); 46 47 float fma( float, float, float ); 30 static inline long double remainder( long double x, long double y ) { return remainderl( x, y ); } 31 32 static inline float remquo( float x, float y, int * quo ) { return remquof( x, y, quo ); } 33 // extern "C" { double remquo( double x, double y, int * quo ); } 34 static inline long double remquo( long double x, long double y, int * quo ) { return remquol( x, y, quo ); } 35 static inline [ int, float ] remquo( float x, float y ) { int quo; x = remquof( x, y, &quo ); return [ quo, x ]; } 36 static inline [ int, double ] remquo( double x, double y ) { int quo; x = remquo( x, y, &quo ); return [ quo, x ]; } 37 static inline [ int, long double ] remquo( long double x, long double y ) { int quo; x = remquol( x, y, &quo ); return [ quo, x ]; } 38 39 // alternative name for remquo 40 static inline float div( float x, float y, int * quo ) { return remquof( x, y, quo ); } 41 static inline double div( double x, double y, int * quo ) { return remquo( x, y, quo ); } 42 static inline long double div( long double x, long double y, int * quo ) { return remquol( x, y, quo ); } 43 static inline [ int, float ] div( float x, float y ) { int quo; x = remquof( x, y, &quo ); return [ quo, x ]; } 44 static inline [ int, double ] div( double x, double y ) { int quo; x = remquo( x, y, &quo ); return [ quo, x ]; } 45 static inline [ int, long double ] div( long double x, long double y ) { int quo; x = remquol( x, y, &quo ); return [ quo, x ]; } 46 47 static inline float fma( float x, float y, float z ) { return fmaf( x, y, z ); } 48 48 // extern "C" { double fma( double, double, double ); } 49 long double fma( long double, long double, long double ); 50 51 float fdim( float, float ); 49 static inline long double fma( long double x, long double y, long double z ) { return fmal( x, y, z ); } 50 51 static inline float fdim( float x, float y ) { return fdimf( x, y ); } 52 52 // extern "C" { double fdim( double, double ); } 53 long double fdim( long double, long double ); 54 55 float nan( const char * ); 53 static inline long double fdim( long double x, long double y ) { return fdiml( x, y ); } 54 55 static inline float nan( const char * tag ) { return nanf( tag ); } 56 56 // extern "C" { double nan( const char * ); } 57 long double nan( const char * ); 57 static inline long double nan( const char * tag ) { return nanl( tag ); } 58 58 59 59 //---------------------- Exponential ---------------------- 60 60 61 float exp( float ); 61 static inline float exp( float x ) { return expf( x ); } 62 62 // extern "C" { double exp( double ); } 63 long double exp( long double ); 64 float _Complex exp( float _Complex ); 65 double _Complex exp( double _Complex ); 66 long double _Complex exp( long double _Complex ); 67 68 float exp2( float ); 63 static inline long double exp( long double x ) { return expl( x ); } 64 static inline float _Complex exp( float _Complex x ) { return cexpf( x ); } 65 static inline double _Complex exp( double _Complex x ) { return cexp( x ); } 66 static inline long double _Complex exp( long double _Complex x ) { return cexpl( x ); } 67 68 static inline float exp2( float x ) { return exp2f( x ); } 69 69 // extern "C" { double exp2( double ); } 70 long double exp2( long double ); 71 // float _Complex exp2( float _Complex );72 // double _Complex exp2( double _Complex );73 // long double _Complex exp2( long double _Complex );74 75 float expm1( float ); 70 static inline long double exp2( long double x ) { return exp2l( x ); } 71 //static inline float _Complex exp2( float _Complex x ) { return cexp2f( x ); } 72 //static inline double _Complex exp2( double _Complex x ) { return cexp2( x ); } 73 //static inline long double _Complex exp2( long double _Complex x ) { return cexp2l( x ); } 74 75 static inline float expm1( float x ) { return expm1f( x ); } 76 76 // extern "C" { double expm1( double ); } 77 long double expm1( long double ); 78 79 float log( float ); 77 static inline long double expm1( long double x ) { return expm1l( x ); } 78 79 static inline float pow( float x, float y ) { return powf( x, y ); } 80 // extern "C" { double pow( double, double ); } 81 static inline long double pow( long double x, long double y ) { return powl( x, y ); } 82 static inline float _Complex pow( float _Complex x, float _Complex y ) { return cpowf( x, y ); } 83 static inline double _Complex pow( double _Complex x, double _Complex y ) { return cpow( x, y ); } 84 static inline long double _Complex pow( long double _Complex x, long double _Complex y ) { return cpowl( x, y ); } 85 86 //---------------------- Logarithm ---------------------- 87 88 static inline float log( float x ) { return logf( x ); } 80 89 // extern "C" { double log( double ); } 81 long double log( long double ); 82 float _Complex log( float _Complex ); 83 double _Complex log( double _Complex ); 84 long double _Complex log( long double _Complex ); 85 86 float log2( float ); 90 static inline long double log( long double x ) { return logl( x ); } 91 static inline float _Complex log( float _Complex x ) { return clogf( x ); } 92 static inline double _Complex log( double _Complex x ) { return clog( x ); } 93 static inline long double _Complex log( long double _Complex x ) { return clogl( x ); } 94 95 static inline float log2( float x ) { return log2f( x ); } 87 96 // extern "C" { double log2( double ); } 88 long double log2( long double ); 89 // float _Complex log2( float _Complex );90 // double _Complex log2( double _Complex );91 // long double _Complex log2( long double _Complex );92 93 float log10( float ); 97 static inline long double log2( long double x ) { return log2l( x ); } 98 // static inline float _Complex log2( float _Complex x ) { return clog2f( x ); } 99 // static inline double _Complex log2( double _Complex x ) { return clog2( x ); } 100 // static inline long double _Complex log2( long double _Complex x ) { return clog2l( x ); } 101 102 static inline float log10( float x ) { return log10f( x ); } 94 103 // extern "C" { double log10( double ); } 95 long double log10( long double ); 96 // float _Complex log10( float _Complex );97 // double _Complex log10( double _Complex );98 // long double _Complex log10( long double _Complex );99 100 float log1p( float ); 104 static inline long double log10( long double x ) { return log10l( x ); } 105 // static inline float _Complex log10( float _Complex x ) { return clog10f( x ); } 106 // static inline double _Complex log10( double _Complex x ) { return clog10( x ); } 107 // static inline long double _Complex log10( long double _Complex x ) { return clog10l( x ); } 108 109 static inline float log1p( float x ) { return log1pf( x ); } 101 110 // extern "C" { double log1p( double ); } 102 long double log1p( long double ); 103 104 int ilogb( float ); 111 static inline long double log1p( long double x ) { return log1pl( x ); } 112 113 static inline int ilogb( float x ) { return ilogbf( x ); } 105 114 // extern "C" { int ilogb( double ); } 106 int ilogb( long double ); 107 108 float logb( float ); 115 static inline int ilogb( long double x ) { return ilogbl( x ); } 116 117 static inline float logb( float x ) { return logbf( x ); } 109 118 // extern "C" { double logb( double ); } 110 long double logb( long double ); 111 112 //---------------------- Power ---------------------- 113 114 float sqrt( float ); 119 static inline long double logb( long double x ) { return logbl( x ); } 120 121 static inline float sqrt( float x ) { return sqrtf( x ); } 115 122 // extern "C" { double sqrt( double ); } 116 long double sqrt( long double ); 117 float _Complex sqrt( float _Complex ); 118 double _Complex sqrt( double _Complex ); 119 long double _Complex sqrt( long double _Complex ); 120 121 float cbrt( float ); 123 static inline long double sqrt( long double x ) { return sqrtl( x ); } 124 static inline float _Complex sqrt( float _Complex x ) { return csqrtf( x ); } 125 static inline double _Complex sqrt( double _Complex x ) { return csqrt( x ); } 126 static inline long double _Complex sqrt( long double _Complex x ) { return csqrtl( x ); } 127 128 static inline float cbrt( float x ) { return cbrtf( x ); } 122 129 // extern "C" { double cbrt( double ); } 123 long double cbrt( long double ); 124 125 float hypot( float, float ); 130 static inline long double cbrt( long double x ) { return cbrtl( x ); } 131 132 static inline float hypot( float x, float y ) { return hypotf( x, y ); } 126 133 // extern "C" { double hypot( double, double ); } 127 long double hypot( long double, long double ); 128 129 float pow( float, float ); 130 // extern "C" { double pow( double, double ); } 131 long double pow( long double, long double ); 132 float _Complex pow( float _Complex, float _Complex ); 133 double _Complex pow( double _Complex, double _Complex ); 134 long double _Complex pow( long double _Complex, long double _Complex ); 134 static inline long double hypot( long double x, long double y ) { return hypotl( x, y ); } 135 135 136 136 //---------------------- Trigonometric ---------------------- 137 137 138 float sin( float ); 138 static inline float sin( float x ) { return sinf( x ); } 139 139 // extern "C" { double sin( double ); } 140 long double sin( long double ); 141 float _Complex sin( float _Complex ); 142 double _Complex sin( double _Complex ); 143 long double _Complex sin( long double _Complex ); 144 145 float cos( float ); 140 static inline long double sin( long double x ) { return sinl( x ); } 141 static inline float _Complex sin( float _Complex x ) { return csinf( x ); } 142 static inline double _Complex sin( double _Complex x ) { return csin( x ); } 143 static inline long double _Complex sin( long double _Complex x ) { return csinl( x ); } 144 145 static inline float cos( float x ) { return cosf( x ); } 146 146 // extern "C" { double cos( double ); } 147 long double cos( long double ); 148 float _Complex cos( float _Complex ); 149 double _Complex cos( double _Complex ); 150 long double _Complex cos( long double _Complex ); 151 152 float tan( float ); 147 static inline long double cos( long double x ) { return cosl( x ); } 148 static inline float _Complex cos( float _Complex x ) { return ccosf( x ); } 149 static inline double _Complex cos( double _Complex x ) { return ccos( x ); } 150 static inline long double _Complex cos( long double _Complex x ) { return ccosl( x ); } 151 152 static inline float tan( float x ) { return tanf( x ); } 153 153 // extern "C" { double tan( double ); } 154 long double tan( long double ); 155 float _Complex tan( float _Complex ); 156 double _Complex tan( double _Complex ); 157 long double _Complex tan( long double _Complex ); 158 159 float asin( float ); 154 static inline long double tan( long double x ) { return tanl( x ); } 155 static inline float _Complex tan( float _Complex x ) { return ctanf( x ); } 156 static inline double _Complex tan( double _Complex x ) { return ctan( x ); } 157 static inline long double _Complex tan( long double _Complex x ) { return ctanl( x ); } 158 159 static inline float asin( float x ) { return asinf( x ); } 160 160 // extern "C" { double asin( double ); } 161 long double asin( long double ); 162 float _Complex asin( float _Complex ); 163 double _Complex asin( double _Complex ); 164 long double _Complex asin( long double _Complex ); 165 166 float acos( float ); 161 static inline long double asin( long double x ) { return asinl( x ); } 162 static inline float _Complex asin( float _Complex x ) { return casinf( x ); } 163 static inline double _Complex asin( double _Complex x ) { return casin( x ); } 164 static inline long double _Complex asin( long double _Complex x ) { return casinl( x ); } 165 166 static inline float acos( float x ) { return acosf( x ); } 167 167 // extern "C" { double acos( double ); } 168 long double acos( long double ); 169 float _Complex acos( float _Complex ); 170 double _Complex acos( double _Complex ); 171 long double _Complex acos( long double _Complex ); 172 173 float atan( float ); 168 static inline long double acos( long double x ) { return acosl( x ); } 169 static inline float _Complex acos( float _Complex x ) { return cacosf( x ); } 170 static inline double _Complex acos( double _Complex x ) { return cacos( x ); } 171 static inline long double _Complex acos( long double _Complex x ) { return cacosl( x ); } 172 173 static inline float atan( float x ) { return atanf( x ); } 174 174 // extern "C" { double atan( double ); } 175 long double atan( long double ); 176 float _Complex atan( float _Complex ); 177 double _Complex atan( double _Complex ); 178 long double _Complex atan( long double _Complex ); 179 180 float atan2( float, float ); 175 static inline long double atan( long double x ) { return atanl( x ); } 176 static inline float _Complex atan( float _Complex x ) { return catanf( x ); } 177 static inline double _Complex atan( double _Complex x ) { return catan( x ); } 178 static inline long double _Complex atan( long double _Complex x ) { return catanl( x ); } 179 180 static inline float atan2( float x, float y ) { return atan2f( x, y ); } 181 181 // extern "C" { double atan2( double, double ); } 182 long double atan2( long double, long double ); 183 184 float atan( float, float ); // alternative name for atan2 185 double atan( double, double ); 186 long double atan( long double, long double ); 182 static inline long double atan2( long double x, long double y ) { return atan2l( x, y ); } 183 184 // alternative name for atan2 185 static inline float atan( float x, float y ) { return atan2f( x, y ); } 186 static inline double atan( double x, double y ) { return atan2( x, y ); } 187 static inline long double atan( long double x, long double y ) { return atan2l( x, y ); } 187 188 188 189 //---------------------- Hyperbolic ---------------------- 189 190 190 float sinh( float ); 191 static inline float sinh( float x ) { return sinhf( x ); } 191 192 // extern "C" { double sinh( double ); } 192 long double sinh( long double ); 193 float _Complex sinh( float _Complex ); 194 double _Complex sinh( double _Complex ); 195 long double _Complex sinh( long double _Complex ); 196 197 float cosh( float ); 193 static inline long double sinh( long double x ) { return sinhl( x ); } 194 static inline float _Complex sinh( float _Complex x ) { return csinhf( x ); } 195 static inline double _Complex sinh( double _Complex x ) { return csinh( x ); } 196 static inline long double _Complex sinh( long double _Complex x ) { return csinhl( x ); } 197 198 static inline float cosh( float x ) { return coshf( x ); } 198 199 // extern "C" { double cosh( double ); } 199 long double cosh( long double ); 200 float _Complex cosh( float _Complex ); 201 double _Complex cosh( double _Complex ); 202 long double _Complex cosh( long double _Complex ); 203 204 float tanh( float ); 200 static inline long double cosh( long double x ) { return coshl( x ); } 201 static inline float _Complex cosh( float _Complex x ) { return ccoshf( x ); } 202 static inline double _Complex cosh( double _Complex x ) { return ccosh( x ); } 203 static inline long double _Complex cosh( long double _Complex x ) { return ccoshl( x ); } 204 205 static inline float tanh( float x ) { return tanhf( x ); } 205 206 // extern "C" { double tanh( double ); } 206 long double tanh( long double ); 207 float _Complex tanh( float _Complex ); 208 double _Complex tanh( double _Complex ); 209 long double _Complex tanh( long double _Complex ); 210 211 float asinh( float ); 207 static inline long double tanh( long double x ) { return tanhl( x ); } 208 static inline float _Complex tanh( float _Complex x ) { return ctanhf( x ); } 209 static inline double _Complex tanh( double _Complex x ) { return ctanh( x ); } 210 static inline long double _Complex tanh( long double _Complex x ) { return ctanhl( x ); } 211 212 static inline float asinh( float x ) { return asinhf( x ); } 212 213 // extern "C" { double asinh( double ); } 213 long double asinh( long double ); 214 float _Complex asinh( float _Complex ); 215 double _Complex asinh( double _Complex ); 216 long double _Complex asinh( long double _Complex ); 217 218 float acosh( float ); 214 static inline long double asinh( long double x ) { return asinhl( x ); } 215 static inline float _Complex asinh( float _Complex x ) { return casinhf( x ); } 216 static inline double _Complex asinh( double _Complex x ) { return casinh( x ); } 217 static inline long double _Complex asinh( long double _Complex x ) { return casinhl( x ); } 218 219 static inline float acosh( float x ) { return acoshf( x ); } 219 220 // extern "C" { double acosh( double ); } 220 long double acosh( long double ); 221 float _Complex acosh( float _Complex ); 222 double _Complex acosh( double _Complex ); 223 long double _Complex acosh( long double _Complex ); 224 225 float atanh( float ); 221 static inline long double acosh( long double x ) { return acoshl( x ); } 222 static inline float _Complex acosh( float _Complex x ) { return cacoshf( x ); } 223 static inline double _Complex acosh( double _Complex x ) { return cacosh( x ); } 224 static inline long double _Complex acosh( long double _Complex x ) { return cacoshl( x ); } 225 226 static inline float atanh( float x ) { return atanhf( x ); } 226 227 // extern "C" { double atanh( double ); } 227 long double atanh( long double ); 228 float _Complex atanh( float _Complex ); 229 double _Complex atanh( double _Complex ); 230 long double _Complex atanh( long double _Complex ); 228 static inline long double atanh( long double x ) { return atanhl( x ); } 229 static inline float _Complex atanh( float _Complex x ) { return catanhf( x ); } 230 static inline double _Complex atanh( double _Complex x ) { return catanh( x ); } 231 static inline long double _Complex atanh( long double _Complex x ) { return catanhl( x ); } 231 232 232 233 //---------------------- Error / Gamma ---------------------- 233 234 234 float erf( float ); 235 static inline float erf( float x ) { return erff( x ); } 235 236 // extern "C" { double erf( double ); } 236 long double erf( long double ); 237 static inline long double erf( long double x ) { return erfl( x ); } 237 238 // float _Complex erf( float _Complex ); 238 239 // double _Complex erf( double _Complex ); 239 240 // long double _Complex erf( long double _Complex ); 240 241 241 float erfc( float ); 242 static inline float erfc( float x ) { return erfcf( x ); } 242 243 // extern "C" { double erfc( double ); } 243 long double erfc( long double ); 244 static inline long double erfc( long double x ) { return erfcl( x ); } 244 245 // float _Complex erfc( float _Complex ); 245 246 // double _Complex erfc( double _Complex ); 246 247 // long double _Complex erfc( long double _Complex ); 247 248 248 float lgamma( float ); 249 static inline float lgamma( float x ) { return lgammaf( x ); } 249 250 // extern "C" { double lgamma( double ); } 250 long double lgamma( long double ); 251 float lgamma( float, int * ); 252 double lgamma( double, int * ); 253 long double lgamma( long double, int * ); 254 255 float tgamma( float ); 251 static inline long double lgamma( long double x ) { return lgammal( x ); } 252 static inline float lgamma( float x, int * sign ) { return lgammaf_r( x, sign ); } 253 static inline double lgamma( double x, int * sign ) { return lgamma_r( x, sign ); } 254 static inline long double lgamma( long double x, int * sign ) { return lgammal_r( x, sign ); } 255 256 static inline float tgamma( float x ) { return tgammaf( x ); } 256 257 // extern "C" { double tgamma( double ); } 257 long double tgamma( long double ); 258 static inline long double tgamma( long double x ) { return tgammal( x ); } 258 259 259 260 //---------------------- Nearest Integer ---------------------- 260 261 261 float floor( float ); 262 static inline float floor( float x ) { return floorf( x ); } 262 263 // extern "C" { double floor( double ); } 263 long double floor( long double ); 264 265 float ceil( float ); 264 static inline long double floor( long double x ) { return floorl( x ); } 265 266 static inline float ceil( float x ) { return ceilf( x ); } 266 267 // extern "C" { double ceil( double ); } 267 long double ceil( long double ); 268 269 float trunc( float ); 268 static inline long double ceil( long double x ) { return ceill( x ); } 269 270 static inline float trunc( float x ) { return truncf( x ); } 270 271 // extern "C" { double trunc( double ); } 271 long double trunc( long double ); 272 273 float rint( float ); 274 long double rint( long double ); 275 long int rint( float ); 276 long int rint( double ); 277 long int rint( long double ); 278 long long int rint( float ); 279 long long int rint( double ); 280 long long int rint( long double ); 281 282 long int lrint( float ); 272 static inline long double trunc( long double x ) { return truncl( x ); } 273 274 static inline float rint( float x ) { return rintf( x ); } 275 // extern "C" { double rint( double x ); } 276 static inline long double rint( long double x ) { return rintl( x ); } 277 static inline long int rint( float x ) { return lrintf( x ); } 278 static inline long int rint( double x ) { return lrint( x ); } 279 static inline long int rint( long double x ) { return lrintl( x ); } 280 static inline long long int rint( float x ) { return llrintf( x ); } 281 static inline long long int rint( double x ) { return llrint( x ); } 282 static inline long long int rint( long double x ) { return llrintl( x ); } 283 284 static inline long int lrint( float x ) { return lrintf( x ); } 283 285 // extern "C" { long int lrint( double ); } 284 long int lrint( long double ); 285 long long int llrint( float ); 286 static inline long int lrint( long double x ) { return lrintl( x ); } 287 static inline long long int llrint( float x ) { return llrintf( x ); } 286 288 // extern "C" { long long int llrint( double ); } 287 long long int llrint( long double ); 288 289 float nearbyint( float ); 289 static inline long long int llrint( long double x ) { return llrintl( x ); } 290 291 static inline float nearbyint( float x ) { return nearbyintf( x ); } 290 292 // extern "C" { double nearbyint( double ); } 291 long double nearbyint( long double ); 292 293 float round( float ); 294 long double round( long double ); 295 long int round( float ); 296 long int round( double ); 297 long int round( long double ); 298 long long int round( float ); 299 long long int round( double ); 300 long long int round( long double ); 301 302 long int lround( float ); 293 static inline long double nearbyint( long double x ) { return nearbyintl( x ); } 294 295 static inline float round( float x ) { return roundf( x ); } 296 // extern "C" { double round( double x ); } 297 static inline long double round( long double x ) { return roundl( x ); } 298 static inline long int round( float x ) { return lroundf( x ); } 299 static inline long int round( double x ) { return lround( x ); } 300 static inline long int round( long double x ) { return lroundl( x ); } 301 static inline long long int round( float x ) { return llroundf( x ); } 302 static inline long long int round( double x ) { return llround( x ); } 303 static inline long long int round( long double x ) { return llroundl( x ); } 304 305 static inline long int lround( float x ) { return lroundf( x ); } 303 306 // extern "C" { long int lround( double ); } 304 long int lround( long double ); 305 long long int llround( float ); 307 static inline long int lround( long double x ) { return lroundl( x ); } 308 static inline long long int llround( float x ) { return llroundf( x ); } 306 309 // extern "C" { long long int llround( double ); } 307 long long int llround( long double ); 310 static inline long long int llround( long double x ) { return llroundl( x ); } 308 311 309 312 //---------------------- Manipulation ---------------------- 310 313 311 float copysign( float, float ); 314 static inline float copysign( float x, float y ) { return copysignf( x, y ); } 312 315 // extern "C" { double copysign( double, double ); } 313 long double copysign( long double, long double ); 314 315 float frexp( float, int * ); 316 static inline long double copysign( long double x, long double y ) { return copysignl( x, y ); } 317 318 static inline float frexp( float x, int * ip ) { return frexpf( x, ip ); } 316 319 // extern "C" { double frexp( double, int * ); } 317 long double frexp( long double, int * ); 318 319 float ldexp( float, int ); 320 static inline long double frexp( long double x, int * ip ) { return frexpl( x, ip ); } 321 322 static inline float ldexp( float x, int exp2 ) { return ldexpf( x, exp2 ); } 320 323 // extern "C" { double ldexp( double, int ); } 321 long double ldexp( long double, int ); 322 323 [ float, float ] modf( float ); 324 float modf( float, float * ); 325 [ double, double ] modf( double ); 324 static inline long double ldexp( long double x, int exp2 ) { return ldexpl( x, exp2 ); } 325 326 static inline [ float, float ] modf( float x ) { float i; x = modff( x, &i ); return [ i, x ]; } 327 static inline float modf( float x, float * i ) { return modff( x, i ); } 328 static inline [ double, double ] modf( double x ) { double i; x = modf( x, &i ); return [ i, x ]; } 326 329 // extern "C" { double modf( double, double * ); } 327 [ long double, long double ] modf( long double ); 328 long double modf( long double, long double * ); 329 330 float nextafter( float, float ); 330 static inline [ long double, long double ] modf( long double x ) { long double i; x = modfl( x, &i ); return [ i, x ]; } 331 static inline long double modf( long double x, long double * i ) { return modfl( x, i ); } 332 333 static inline float nextafter( float x, float y ) { return nextafterf( x, y ); } 331 334 // extern "C" { double nextafter( double, double ); } 332 long double nextafter( long double, long double ); 333 334 float nexttoward( float, long double ); 335 static inline long double nextafter( long double x, long double y ) { return nextafterl( x, y ); } 336 337 static inline float nexttoward( float x, long double y ) { return nexttowardf( x, y ); } 335 338 // extern "C" { double nexttoward( double, long double ); } 336 long double nexttoward( long double, long double ); 337 338 float scalbn( float, int ); 339 static inline long double nexttoward( long double x, long double y ) { return nexttowardl( x, y ); } 340 341 static inline float scalbn( float x, int exp ) { return scalbnf( x, exp ); } 339 342 // extern "C" { double scalbn( double, int ); } 340 long double scalbn( long double, int ); 341 342 float scalbln( float, long int ); 343 static inline long double scalbn( long double x, int exp ) { return scalbnl( x, exp ); } 344 static inline float scalbn( float x, long int exp ) { return scalblnf( x, exp ); } 345 static inline double scalbn( double x, long int exp ) { return scalbln( x, exp ); } 346 static inline long double scalbn( long double x, long int exp ) { return scalblnl( x, exp ); } 347 348 static inline float scalbln( float x, long int exp ) { return scalblnf( x, exp ); } 343 349 // extern "C" { double scalbln( double, long int ); } 344 long double scalbln( long double, long int ); 350 static inline long double scalbln( long double x, long int exp ) { return scalblnl( x, exp ); } 345 351 346 352 // Local Variables: // -
src/libcfa/startup.h
re0a653d r33218c6 1 // -*- Mode: CFA -*-2 1 // 3 2 // Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo … … 10 9 // Author : Thierry Delisle 11 10 // Created On : Wed Mar 29 15:56:41 2017 12 // Last Modified By : 13 // Last Modified On : 14 // Update Count : 011 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Jul 20 21:37:11 2017 13 // Update Count : 2 15 14 // 16 15 17 #ifndef STARTUP_H 18 #define STARTUP_H 16 #pragma once 19 17 20 18 #if GCC_VERSION > 50000 … … 34 32 #endif 35 33 36 #endif //STARTUP_H 34 // Local Variables: // 35 // mode: c // 36 // tab-width: 4 // 37 // End: // -
src/libcfa/stdhdr/assert.h
re0a653d r33218c6 10 10 // Created On : Mon Jul 4 23:25:26 2016 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : T ue Jul 5 20:34:23 201613 // Update Count : 812 // Last Modified On : Thu Jul 20 21:06:48 2017 13 // Update Count : 11 14 14 // 15 15 … … 18 18 #endif //__CFORALL__ 19 19 20 // has internal check for multiple expansion21 20 #include_next <assert.h> 21 22 #ifdef NDEBUG 23 #define assertf( expr, fmt, ... ) ((void)0) 24 #else 25 #define __STRINGIFY__(str) #str 26 #define __VSTRINGIFY__(str) __STRINGIFY__(str) 27 #define assertf(expr, fmt, ...) ((expr) ? ((void)0) : __assert_fail_f(__VSTRINGIFY__(expr), __FILE__, __LINE__, __PRETTY_FUNCTION__, fmt, ## __VA_ARGS__ )) 28 void __assert_fail_f( const char *assertion, const char *file, unsigned int line, const char *function, const char *fmt, ... ) __attribute__((noreturn)); 29 #endif 22 30 23 31 #ifdef __CFORALL__ -
src/libcfa/stdhdr/gmp.h
re0a653d r33218c6 1 // -*- Mode: C -*-2 1 // 3 2 // Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo … … 11 10 // Created On : Sun May 14 23:46:01 2017 12 11 // Last Modified By : Peter A. Buhr 13 // Last Modified On : Sun May 14 23:46:34201714 // Update Count : 112 // Last Modified On : Thu Jul 20 18:10:52 2017 13 // Update Count : 4 15 14 // 16 15 -
src/libcfa/stdlib
re0a653d r33218c6 10 10 // Created On : Thu Jan 28 17:12:35 2016 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Jul 7 09:34:49201713 // Update Count : 2 1912 // Last Modified On : Thu Jul 20 14:32:37 2017 13 // Update Count : 220 14 14 // 15 15 … … 18 18 //--------------------------------------- 19 19 20 extern "C" {21 20 #ifndef EXIT_FAILURE 22 21 #define EXIT_FAILURE 1 // failing exit status 23 22 #define EXIT_SUCCESS 0 // successful exit status 24 23 #endif // ! EXIT_FAILURE 25 } // extern "C"26 24 27 25 //--------------------------------------- -
src/libcfa/stdlib.c
re0a653d r33218c6 10 10 // Created On : Thu Jan 28 17:10:29 2016 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Ju n 1 21:52:57201713 // Update Count : 28 012 // Last Modified On : Thu Jul 20 16:01:40 2017 13 // Update Count : 282 14 14 // 15 15 … … 18 18 //--------------------------------------- 19 19 20 extern "C" {21 20 #define _XOPEN_SOURCE 600 // posix_memalign, *rand48 22 21 #include <stdlib.h> // malloc, free, calloc, realloc, memalign, posix_memalign, bsearch … … 25 24 #include <math.h> // fabsf, fabs, fabsl 26 25 #include <complex.h> // _Complex_I 27 } // extern "C"28 26 29 27 // resize, non-array types -
src/prelude/builtins.c
re0a653d r33218c6 1 // 2 // Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo 3 // 4 // The contents of this file are covered under the licence agreement in the 5 // file "LICENCE" distributed with Cforall. 6 // 7 // builtins.c -- 8 // 9 // Author : Peter A. Buhr 10 // Created On : Fri Jul 21 16:21:03 2017 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jul 22 10:34:20 2017 13 // Update Count : 13 14 // 15 16 // exception implementation 17 1 18 typedef unsigned long long __cfaabi_exception_type_t; 2 19 3 20 #include "../libcfa/exception.h" 21 22 // exponentiation operator implementation 23 24 extern "C" { 25 float powf( float x, float y ); 26 double pow( double x, double y ); 27 long double powl( long double x, long double y ); 28 float _Complex cpowf( float _Complex x, _Complex float z ); 29 double _Complex cpow( double _Complex x, _Complex double z ); 30 long double _Complex cpowl( long double _Complex x, _Complex long double z ); 31 } // extern "C" 32 33 static inline float ?\?( float x, float y ) { return powf( x, y ); } 34 static inline double ?\?( double x, double y ) { return pow( x, y ); } 35 static inline long double ?\?( long double x, long double y ) { return powl( x, y ); } 36 static inline float _Complex ?\?( float _Complex x, _Complex float y ) { return cpowf(x, y ); } 37 static inline double _Complex ?\?( double _Complex x, _Complex double y ) { return cpow( x, y ); } 38 static inline long double _Complex ?\?( long double _Complex x, _Complex long double y ) { return cpowl( x, y ); } 39 40 static inline long int ?\?( long int ep, unsigned long int y ) { // disallow negative exponent 41 if ( y == 0 ) return 1; // base case 42 if ( ep == 2 ) return ep << (y - 1); // special case, positive shifting only 43 typeof( ep ) op = 1; // accumulate odd product 44 for ( ; y > 1; y >>= 1 ) { // squaring exponentiation, O(log2 y) 45 if ( (y & 1) == 1 ) op *= ep; // odd ? 46 ep *= ep; 47 } // for 48 return ep * op; 49 } // ?\? 50 51 // FIX ME, cannot resolve the "T op = 1". 52 53 // static inline forall( otype T | { void ?{}( T * this, one_t ); T ?*?( T, T ); } ) 54 // T ?\?( T ep, unsigned long int y ) { 55 // if ( y == 0 ) return 1; 56 // T op = 1; 57 // for ( ; y > 1; y >>= 1 ) { // squaring exponentiation, O(log2 y) 58 // if ( (y & 1) == 1 ) op = op * ep; // odd ? 59 // ep = ep * ep; 60 // } // for 61 // return ep * op; 62 // } // ?\? 63 64 // unsigned computation may be faster and larger 65 static inline unsigned long int ?\?( unsigned long int ep, unsigned long int y ) { // disallow negative exponent 66 if ( y == 0 ) return 1; // base case 67 if ( ep == 2 ) return ep << (y - 1); // special case, positive shifting only 68 typeof( ep ) op = 1; // accumulate odd product 69 for ( ; y > 1; y >>= 1 ) { // squaring exponentiation, O(log2 y) 70 if ( (y & 1) == 1 ) op *= ep; // odd ? 71 ep *= ep; 72 } // for 73 return ep * op; 74 } // ?\? 75 76 static inline double ?\?( long int x, signed long int y ) { // allow negative exponent 77 if ( y >= 0 ) return (double)(x \ (unsigned long int)y); 78 else return 1.0 / x \ (unsigned int)(-y); 79 } // ?\? 80 81 static inline forall( otype T | { void ?{}( T * this, one_t ); T ?*?( T, T ); double ?/?( double, T ); } ) 82 double ?\?( T x, signed long int y ) { 83 if ( y >= 0 ) return (double)(x \ (unsigned long int)y); 84 else return 1.0 / x \ (unsigned long int)(-y); 85 } // ?\? 86 87 static inline long int ?\=?( long int * x, unsigned long int y ) { *x = *x \ y; return *x; } 88 static inline unsigned long int ?\=?( unsigned long int * x, unsigned long int y ) { *x = *x \ y; return *x; } 89 static inline int ?\=?( int * x, unsigned long int y ) { *x = *x \ y; return *x; } 90 static inline unsigned int ?\=?( unsigned int * x, unsigned long int y ) { *x = *x \ y; return *x; } 91 92 // Local Variables: // 93 // mode: c // 94 // tab-width: 4 // 95 // End: // -
src/tests/.expect/32/math.txt
re0a653d r33218c6 9 9 exp2:2 2 2 10 10 expm1:1.71828 1.71828182845905 1.71828182845904524 11 pow:1 1 1 0.273957+0.583701i 0.273957253830121+0.583700758758615i 0.273957253830121071+0.583700758758614628i 12 16 256 13 912673 256 64 -64 0.015625 -0.015625 18.3791736799526 0.264715-1.1922i 11 14 log:0 0 0 0.346574+0.785398i 0.346573590279973+0.785398163397448i 0.346573590279972655+0.78539816339744831i 12 15 log2:3 3 3 … … 18 21 cbrt:3 3 3 19 22 hypot:1.41421 1.4142135623731 1.41421356237309505 20 pow:1 1 1 0.273957+0.583701i 0.273957253830121+0.583700758758615i 0.273957253830121071+0.583700758758614628i21 23 sin:0.841471 0.841470984807897 0.841470984807896507 1.29846+0.634964i 1.29845758141598+0.634963914784736i 1.29845758141597729+0.634963914784736108i 22 24 cos:0.540302 0.54030230586814 0.540302305868139717 0.83373-0.988898i 0.833730025131149-0.988897705762865i 0.833730025131149049-0.988897705762865096i -
src/tests/.expect/64/math.txt
re0a653d r33218c6 9 9 exp2:2 2 2 10 10 expm1:1.71828 1.71828182845905 1.71828182845904524 11 pow:1 1 1 0.273957+0.583701i 0.273957253830121+0.583700758758615i 0.273957253830121071+0.583700758758614627i 12 16 256 13 912673 256 64 -64 0.015625 -0.015625 18.3791736799526 0.264715-1.1922i 11 14 log:0 0 0 0.346574+0.785398i 0.346573590279973+0.785398163397448i 0.346573590279972655+0.78539816339744831i 12 15 log2:3 3 3 … … 18 21 cbrt:3 3 3 19 22 hypot:1.41421 1.4142135623731 1.41421356237309505 20 pow:1 1 1 0.273957+0.583701i 0.273957253830121+0.583700758758615i 0.273957253830121071+0.583700758758614628i21 23 sin:0.841471 0.841470984807897 0.841470984807896507 1.29846+0.634964i 1.29845758141598+0.634963914784736i 1.29845758141597729+0.634963914784736108i 22 24 cos:0.540302 0.54030230586814 0.540302305868139717 0.83373-0.988898i 0.833730025131149-0.988897705762865i 0.833730025131149049-0.988897705762865096i -
src/tests/alloc.c
re0a653d r33218c6 10 10 // Created On : Wed Feb 3 07:56:22 2016 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Jun 2 15:13:03201713 // Update Count : 31 612 // Last Modified On : Thu Jul 20 16:01:10 2017 13 // Update Count : 318 14 14 // 15 15 16 #include <assert> 17 extern "C" { 16 #include <assert.h> 18 17 #include <malloc.h> // malloc_usable_size 19 18 #include <stdint.h> // uintptr_t 20 19 #include <stdlib.h> // posix_memalign 21 } // extern22 20 #include <fstream> 23 21 #include <stdlib> // access C malloc, realloc -
src/tests/attributes.c
re0a653d r33218c6 1 // -*- Mode: C -*-2 1 // 3 2 // Cforall Version 1.0.0 Copyright (C) 2017 University of Waterloo … … 11 10 // Created On : Mon Feb 6 16:07:02 2017 12 11 // Last Modified By : Peter A. Buhr 13 // Last Modified On : Mon Feb 6 16:08:21201714 // Update Count : 212 // Last Modified On : Fri Jul 21 23:05:52 2017 13 // Update Count : 3 15 14 // 16 15 -
src/tests/avltree/avl-private.h
re0a653d r33218c6 1 # ifndef AVL_PRIVATE_H1 #pragma once 2 2 #include "avl.h" 3 3 … … 14 14 forall(otype K | Comparable(K), otype V) 15 15 int height(tree(K, V) * t); 16 17 #endif -
src/tests/avltree/avl.h
re0a653d r33218c6 1 #ifndef AVL_TREE_H 2 #define AVL_TREE_H 1 #pragma once 3 2 4 3 extern "C" { … … 104 103 // printTree(t, 0); 105 104 // } 106 107 108 #endif -
src/tests/gmp.c
re0a653d r33218c6 10 10 // Created On : Tue Apr 19 08:55:51 2016 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed May 24 22:05:38201713 // Update Count : 54 012 // Last Modified On : Thu Jul 13 16:35:01 2017 13 // Update Count : 541 14 14 // 15 15 … … 95 95 // Local Variables: // 96 96 // tab-width: 4 // 97 // compile-command: "cfa gmp.c -l 97 // compile-command: "cfa gmp.c -lgmp" // 98 98 // End: // -
src/tests/math.c
re0a653d r33218c6 10 10 // Created On : Fri Apr 22 14:59:21 2016 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed May 24 13:04:33201713 // Update Count : 7 112 // Last Modified On : Fri Jul 21 10:32:04 2017 13 // Update Count : 73 14 14 // 15 15 … … 46 46 sout | "exp2:" | exp2( 1.0F ) | exp2( 1.0D ) | exp2( 1.0L ) | endl; 47 47 sout | "expm1:" | expm1( 1.0F ) | expm1( 1.0D ) | expm1( 1.0L ) | endl; 48 sout | "pow:" | pow( 1.0F, 1.0F ) | pow( 1.0D, 1.0D ) | pow( 1.0L, 1.0L ) | pow( 1.0F+1.0FI, 1.0F+1.0FI ) | pow( 1.0D+1.0DI, 1.0D+1.0DI ) | pow( 1.0DL+1.0LI, 1.0DL+1.0LI ) | endl; 49 50 int b = 4; 51 unsigned int e = 2; 52 b \= e; 53 sout | b | b \ e | endl; 54 sout | 'a' \ 3u | 2 \ 8u | 4 \ 3u | -4 \ 3u | 4 \ -3 | -4 \ -3 | 4.0 \ 2.1 | (1.0f+2.0fi) \ (3.0f+2.0fi) | endl; 55 56 //---------------------- Logarithm ---------------------- 57 48 58 sout | "log:" | log( 1.0F ) | log( 1.0D ) | log( 1.0L ) | log( 1.0F+1.0FI ) | log( 1.0D+1.0DI ) | log( 1.0DL+1.0LI ) | endl; 49 59 sout | "log2:" | log2( 8.0F ) | log2( 8.0D ) | log2( 8.0L ) | endl; … … 53 63 sout | "logb:" | logb( 8.0F ) | logb( 8.0D ) | logb( 8.0L ) | endl; 54 64 55 //---------------------- Power ----------------------56 57 65 sout | "sqrt:" | sqrt( 1.0F ) | sqrt( 1.0D ) | sqrt( 1.0L ) | sqrt( 1.0F+1.0FI ) | sqrt( 1.0D+1.0DI ) | sqrt( 1.0DL+1.0LI ) | endl; 58 66 sout | "cbrt:" | cbrt( 27.0F ) | cbrt( 27.0D ) | cbrt( 27.0L ) | endl; 59 67 sout | "hypot:" | hypot( 1.0F, -1.0F ) | hypot( 1.0D, -1.0D ) | hypot( 1.0L, -1.0L ) | endl; 60 sout | "pow:" | pow( 1.0F, 1.0F ) | pow( 1.0D, 1.0D ) | pow( 1.0L, 1.0L ) | pow( 1.0F+1.0FI, 1.0F+1.0FI ) | pow( 1.0D+1.0DI, 1.0D+1.0DI ) | pow( 1.0DL+1.0LI, 1.0DL+1.0LI ) | endl;61 68 62 69 //---------------------- Trigonometric ---------------------- -
src/tests/maybe.c
re0a653d r33218c6 9 9 // Author : Andrew Beach 10 10 // Created On : Thr May 25 16:02:00 2017 11 // Last Modified By : Andrew Beach12 // Last Modified On : Fri May 16 15:43:00201713 // Update Count : 011 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Jul 20 15:24:07 2017 13 // Update Count : 1 14 14 // 15 15 16 #include <assert >16 #include <assert.h> 17 17 #include <containers/maybe> 18 18 -
src/tests/preempt_longrun/Makefile.am
re0a653d r33218c6 16 16 17 17 repeats=10 18 max_time= 3018 max_time=600 19 19 preempt=1_000ul 20 20 … … 25 25 CC = @CFA_BINDIR@/@CFA_NAME@ 26 26 27 TESTS = b arge block create disjoint enter enter3 processor stack wait yield27 TESTS = block create disjoint enter enter3 processor stack wait yield 28 28 29 29 .INTERMEDIATE: ${TESTS} 30 30 31 31 all-local: ${TESTS:=.run} 32 33 clean-local: 34 rm -f ${TESTS} 32 35 33 36 % : %.c ${CC} -
src/tests/preempt_longrun/Makefile.in
re0a653d r33218c6 449 449 top_srcdir = @top_srcdir@ 450 450 repeats = 10 451 max_time = 30451 max_time = 600 452 452 preempt = 1_000ul 453 453 REPEAT = ${abs_top_srcdir}/tools/repeat -s 454 454 BUILD_FLAGS = -g -Wall -Wno-unused-function -quiet @CFA_FLAGS@ -debug -O2 -DPREEMPTION_RATE=${preempt} 455 TESTS = b arge block create disjoint enter enter3 processor stack wait yield455 TESTS = block create disjoint enter enter3 processor stack wait yield 456 456 all: all-am 457 457 … … 635 635 TEST_LOGS="$$log_list"; \ 636 636 exit $$? 637 barge.log: barge638 @p='barge'; \639 b='barge'; \640 $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \641 --log-file $$b.log --trs-file $$b.trs \642 $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \643 "$$tst" $(AM_TESTS_FD_REDIRECT)644 637 block.log: block 645 638 @p='block'; \ … … 790 783 clean: clean-am 791 784 792 clean-am: clean-generic mostlyclean-am785 clean-am: clean-generic clean-local mostlyclean-am 793 786 794 787 distclean: distclean-am … … 857 850 858 851 .PHONY: all all-am all-local check check-TESTS check-am clean \ 859 clean-generic c scopelist-am ctags-am distclean \852 clean-generic clean-local cscopelist-am ctags-am distclean \ 860 853 distclean-generic distdir dvi dvi-am html html-am info info-am \ 861 854 install install-am install-data install-data-am install-dvi \ … … 875 868 all-local: ${TESTS:=.run} 876 869 870 clean-local: 871 rm -f ${TESTS} 872 877 873 % : %.c ${CC} 878 874 ${AM_V_GEN}${CC} ${CFLAGS} ${<} -o ${@} -
src/tests/preempt_longrun/create.c
re0a653d r33218c6 1 1 #include <kernel> 2 2 #include <thread> 3 4 static const unsigned long N = 2_000ul; 3 5 4 6 #ifndef PREEMPTION_RATE … … 15 17 16 18 int main(int argc, char* argv[]) { 17 for(int i = 0; i < 10_000ul; i++) { 19 processor p; 20 for(int i = 0; i < N; i++) { 18 21 worker_t w[7]; 19 22 } -
src/tests/preempt_longrun/enter.c
re0a653d r33218c6 3 3 #include <thread> 4 4 5 #undef N6 5 static const unsigned long N = 70_000ul; 7 6 -
src/tests/preempt_longrun/enter3.c
re0a653d r33218c6 3 3 #include <thread> 4 4 5 #undef N6 5 static const unsigned long N = 50_000ul; 7 6 -
src/tests/preempt_longrun/processor.c
re0a653d r33218c6 1 1 #include <kernel> 2 2 #include <thread> 3 4 static const unsigned long N = 5_000ul; 3 5 4 6 #ifndef PREEMPTION_RATE … … 15 17 16 18 int main(int argc, char* argv[]) { 17 for(int i = 0; i < 10_000ul; i++) {19 for(int i = 0; i < N; i++) { 18 20 processor p; 19 21 } -
src/tests/preempt_longrun/yield.c
re0a653d r33218c6 1 1 #include <kernel> 2 2 #include <thread> 3 4 static const unsigned long N = 325_000ul; 3 5 4 6 #ifndef PREEMPTION_RATE … … 13 15 14 16 void main(worker_t * this) { 15 for(int i = 0; i < 325_000ul; i++) {17 for(int i = 0; i < N; i++) { 16 18 yield(); 17 19 } -
src/tests/result.c
re0a653d r33218c6 9 9 // Author : Andrew Beach 10 10 // Created On : Thr May 25 16:50:00 2017 11 // Last Modified By : Andrew Beach12 // Last Modified On : Fri Jun 16 15:42:00201713 // Update Count : 011 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Jul 20 15:24:12 2017 13 // Update Count : 1 14 14 // 15 15 16 #include <assert >16 #include <assert.h> 17 17 #include <containers/result> 18 18 -
src/tests/sched-int-barge.c
re0a653d r33218c6 5 5 #include <thread> 6 6 7 static const unsigned long N = 50_000ul; 8 9 #ifndef PREEMPTION_RATE 10 #define PREEMPTION_RATE 10_000ul 11 #endif 12 13 unsigned int default_preemption() { 14 return 0; 15 } 7 16 enum state_t { WAIT, SIGNAL, BARGE }; 8 17 … … 10 19 11 20 monitor global_data_t { 12 bool done;21 volatile bool done; 13 22 int counter; 14 23 state_t state; … … 51 60 c->do_wait2 = ((unsigned)rand48()) % (c->do_signal); 52 61 53 //if(c->do_wait1 == c->do_wait2) sout | "Same" | endl;62 if(c->do_wait1 == c->do_wait2) sout | "Same" | endl; 54 63 } 55 64 … … 73 82 } 74 83 75 if( c->counter >= 100_000) c->done = true;84 if( c->counter >= N ) c->done = true; 76 85 return !c->done; 77 86 } … … 89 98 } 90 99 100 static thread_desc * volatile the_threads; 101 91 102 int main(int argc, char* argv[]) { 92 rand48seed(0); 93 processor p; 94 { 95 Threads t[17]; 96 } 103 rand48seed(0); 104 processor p; 105 { 106 Threads t[17]; 107 the_threads = (thread_desc*)t; 108 } 97 109 } -
src/tests/sched-int-block.c
re0a653d r33218c6 5 5 #include <thread> 6 6 7 #ifndef N 8 #define N 10_000 7 #include <time.h> 8 9 static const unsigned long N = 5_000ul; 10 11 #ifndef PREEMPTION_RATE 12 #define PREEMPTION_RATE 10_000ul 9 13 #endif 14 15 unsigned int default_preemption() { 16 return PREEMPTION_RATE; 17 } 10 18 11 19 enum state_t { WAITED, SIGNAL, BARGE }; … … 101 109 102 110 int main(int argc, char* argv[]) { 103 rand48seed( 0);111 rand48seed( time( NULL ) ); 104 112 done = false; 105 113 processor p; -
src/tests/sched-int-disjoint.c
re0a653d r33218c6 4 4 #include <thread> 5 5 6 #ifndef N 7 #define N 10_000 6 static const unsigned long N = 10_000ul; 7 8 #ifndef PREEMPTION_RATE 9 #define PREEMPTION_RATE 10_000ul 8 10 #endif 11 12 unsigned int default_preemption() { 13 return PREEMPTION_RATE; 14 } 9 15 10 16 enum state_t { WAIT, SIGNAL, BARGE }; -
src/tests/sched-int-wait.c
re0a653d r33218c6 5 5 #include <thread> 6 6 7 #ifndef N 8 #define N 10_000 7 static const unsigned long N = 10_000ul; 8 9 #ifndef PREEMPTION_RATE 10 #define PREEMPTION_RATE 10_000ul 9 11 #endif 12 13 unsigned int default_preemption() { 14 return PREEMPTION_RATE; 15 } 10 16 11 17 monitor global_t {}; … … 114 120 int main(int argc, char* argv[]) { 115 121 waiter_left = 4; 116 processor p ;122 processor p[2]; 117 123 sout | "Starting" | endl; 118 124 { -
src/tests/test.py
re0a653d r33218c6 221 221 if retcode == TestResult.SUCCESS: result_txt = "Done" 222 222 elif retcode == TestResult.TIMEOUT: result_txt = "TIMEOUT" 223 else : result_txt = "ERROR "223 else : result_txt = "ERROR code %d" % retcode 224 224 else : 225 225 if retcode == TestResult.SUCCESS: result_txt = "PASSED" 226 226 elif retcode == TestResult.TIMEOUT: result_txt = "TIMEOUT" 227 else : result_txt = "FAILED "227 else : result_txt = "FAILED with code %d" % retcode 228 228 229 229 #print result with error if needed -
src/tests/vector/array.h
re0a653d r33218c6 9 9 // Author : Richard C. Bilson 10 10 // Created On : Wed May 27 17:56:53 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Wed Apr 27 17:26:04 201613 // Update Count : 511 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jul 22 10:04:20 2017 13 // Update Count : 6 14 14 // 15 15 16 #ifndef ARRAY_H 17 #define ARRAY_H 16 #pragma once 18 17 19 18 //#include <iterator> … … 45 44 elt_type * end( array_type * array ); 46 45 47 #endif // ARRAY_H48 49 46 // Local Variables: // 50 47 // tab-width: 4 // -
src/tests/vector/vector_int.h
re0a653d r33218c6 9 9 // Author : Richard C. Bilson 10 10 // Created On : Wed May 27 17:56:53 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Wed Apr 27 17:26:59 201613 // Update Count : 211 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jul 22 10:04:02 2017 13 // Update Count : 4 14 14 // 15 15 16 #ifndef VECTOR_INT_H 17 #define VECTOR_INT_H 16 #pragma once 18 17 19 18 // A flexible array, similar to a C++ vector, that holds integers and can be resized dynamically … … 26 25 27 26 void ?{}( vector_int * ); // allocate vector with default capacity 28 void ?{}( vector_int *, int reserve ); 29 void ?{}( vector_int * vec, vector_int other ); 27 void ?{}( vector_int *, int reserve ); // allocate vector with specified capacity 28 void ?{}( vector_int * vec, vector_int other ); // copy constructor 30 29 void ^?{}( vector_int * ); // deallocate vector's storage 31 30 … … 36 35 37 36 lvalue int ?[?]( vector_int * vec, int index ); // access to arbitrary element (does not resize) 38 int last( vector_int * vec ); // return last element 39 40 #endif // VECTOR_INT_H 37 int last( vector_int * vec ); // return last element 41 38 42 39 // Local Variables: // -
tools/cfa.nanorc
re0a653d r33218c6 8 8 9 9 # Types 10 color green "\<(forall| otype|dtype|ftype|trait|mutex|_Bool|volatile)\>"10 color green "\<(forall|trait|(o|d|f|t)type|mutex|_Bool|volatile|virtual)\>" 11 11 color green "\<(float|double|bool|char|int|short|long|sizeof|enum|void|auto)\>" 12 12 color green "\<(static|const|struct|union|typedef|extern|(un)?signed|inline)\>" … … 14 14 15 15 # Declarations 16 color brightgreen "\<(struct|union|typedef|trait|coroutine|monitor)\>" 16 color brightgreen "\<(struct|union|typedef|trait|coroutine|monitor|thread)\>" 17 color brightgreen "\<(with)\>" 17 18 18 19 # Control Flow Structures -
tools/prettyprinter/ParserTypes.h
re0a653d r33218c6 13 13 // Created On : Sun Dec 16 15:00:49 2001 14 14 // Last Modified By : Peter A. Buhr 15 // Last Modified On : Wed Jun 28 22:59:27201716 // Update Count : 17 415 // Last Modified On : Sat Jul 22 10:13:09 2017 16 // Update Count : 175 17 17 // 18 18 19 #ifndef __PARSER_HH__ 20 #define __PARSER_HH__ 19 #pragma once 21 20 22 21 int yylex(); … … 26 25 #include "token.h" 27 26 28 #endif // __PARSER_HH__29 30 27 // Local Variables: // 31 28 // mode: c++ // -
tools/prettyprinter/filter.h
re0a653d r33218c6 10 10 // Created On : Tue Apr 9 22:31:18 2002 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Jun 29 08:28:32201713 // Update Count : 1 012 // Last Modified On : Sat Jul 22 10:12:55 2017 13 // Update Count : 11 14 14 // 15 15 16 #ifndef __FILTER_H__ 17 #define __FILTER_H__ 16 #pragma once 18 17 19 18 #include "ParserTypes.h" … … 28 27 void HTML( Token * tree ); 29 28 30 #endif // __FILTER_H__31 32 29 // Local Variables: // 33 30 // mode: c++ // -
tools/prettyprinter/lex.ll
re0a653d r33218c6 1 /* -*- Mode: C -*- 2 * 1 /* 3 2 * Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo 4 3 * … … 11 10 * Created On : Sat Dec 15 11:45:59 2001 12 11 * Last Modified By : Peter A. Buhr 13 * Last Modified On : Wed Jun 28 22:57:17201714 * Update Count : 25 312 * Last Modified On : Fri Jul 21 23:06:16 2017 13 * Update Count : 254 15 14 */ 16 15 -
tools/prettyprinter/test.y
re0a653d r33218c6 15 15 ; 16 16 17 rules1 : /* empty */ 17 rules1 : 18 /* empty */ 19 {} 18 20 | xxx 19 21 /* fred */ yyy -
tools/prettyprinter/token.cc
re0a653d r33218c6 1 // -*- Mode: C++ -*-2 1 // 3 // Copyright (C) Peter A. Buhr 2017 2 // Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo 3 // 4 // The contents of this file are covered under the licence agreement in the 5 // file "LICENCE" distributed with Cforall. 4 6 // 5 7 // Pretty Printer, Copyright (C) Richard C. Bilson and Rodolfo G. Esteves 2001 … … 10 12 // Created On : Wed Jun 28 22:46:23 2017 11 13 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Jun 29 09:33:49201713 // Update Count : 914 // Last Modified On : Fri Jul 21 23:07:04 2017 15 // Update Count : 10 14 16 // 15 17 -
tools/prettyprinter/token.h
re0a653d r33218c6 10 10 // Created On : Wed Jun 28 22:47:58 2017 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Jun 28 23:02:06201713 // Update Count : 512 // Last Modified On : Sat Jul 22 10:12:42 2017 13 // Update Count : 6 14 14 // 15 15 16 #ifndef __TOKEN_H__ 17 #define __TOKEN_H__ 16 #pragma once 18 17 19 18 struct Token { … … 35 34 }; 36 35 37 #endif // __TOKEN_H__38 39 36 // Local Variables: // 40 37 // tab-width: 4 //
Note:
See TracChangeset
for help on using the changeset viewer.