Changes in / [1633e04:d30e3eb]
- Files:
-
- 1 added
- 9 edited
-
libcfa/src/concurrency/io.cfa (modified) (1 diff)
-
libcfa/src/concurrency/io/call.cfa.in (modified) (11 diffs)
-
src/AST/Print.cpp (modified) (1 diff)
-
src/Common/Debug.h (added)
-
src/Common/module.mk (modified) (1 diff)
-
src/Common/utility.h (modified) (1 diff)
-
src/InitTweak/FixInit.cc (modified) (1 diff)
-
src/InitTweak/FixInitNew.cpp (modified) (1 diff)
-
src/Parser/parser.yy (modified) (4 diffs)
-
src/SynTree/FunctionDecl.cc (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/concurrency/io.cfa
r1633e04 rd30e3eb 295 295 // make sure the target hasn't stopped existing since last time 296 296 HELP: if(target < ctxs_count) { 297 // calculate it's age and how young it could be before we give up on helping297 // calculate it's age and how young it could be before we give ip on helping 298 298 const __readyQ_avg_t cutoff = calc_cutoff(ctsc, ctx->cq.id, ctxs_count, io.data, io.tscs, __shard_factor.io, false); 299 299 const __readyQ_avg_t age = moving_average(ctsc, io.tscs[target].t.tv, io.tscs[target].t.ma, false); -
libcfa/src/concurrency/io/call.cfa.in
r1633e04 rd30e3eb 89 89 #if defined(CFA_HAVE_PREADV2) 90 90 struct iovec; 91 extern ssize_t preadv2 (int fd, const struct iovec * iov, int iovcnt, off_t offset, int flags);91 extern ssize_t preadv2 (int fd, const struct iovec *iov, int iovcnt, off_t offset, int flags); 92 92 #endif 93 93 #if defined(CFA_HAVE_PWRITEV2) 94 94 struct iovec; 95 extern ssize_t pwritev2(int fd, const struct iovec * iov, int iovcnt, off_t offset, int flags);95 extern ssize_t pwritev2(int fd, const struct iovec *iov, int iovcnt, off_t offset, int flags); 96 96 #endif 97 97 … … 108 108 struct msghdr; 109 109 struct sockaddr; 110 extern ssize_t sendmsg(int sockfd, const struct msghdr * msg, int flags);111 extern ssize_t recvmsg(int sockfd, struct msghdr * msg, int flags);112 extern ssize_t send(int sockfd, const void * buf, size_t len, int flags);113 extern ssize_t recv(int sockfd, void * buf, size_t len, int flags);110 extern ssize_t sendmsg(int sockfd, const struct msghdr *msg, int flags); 111 extern ssize_t recvmsg(int sockfd, struct msghdr *msg, int flags); 112 extern ssize_t send(int sockfd, const void *buf, size_t len, int flags); 113 extern ssize_t recv(int sockfd, void *buf, size_t len, int flags); 114 114 115 115 extern int fallocate(int fd, int mode, off_t offset, off_t len); 116 116 extern int posix_fadvise(int fd, off_t offset, off_t len, int advice); 117 extern int madvise(void * addr, size_t length, int advice);118 119 extern int openat(int dirfd, const char * pathname, int flags, mode_t mode);117 extern int madvise(void *addr, size_t length, int advice); 118 119 extern int openat(int dirfd, const char *pathname, int flags, mode_t mode); 120 120 extern int close(int fd); 121 121 122 extern ssize_t read (int fd, void * buf, size_t count);122 extern ssize_t read (int fd, void *buf, size_t count); 123 123 124 124 struct epoll_event; 125 extern int epoll_ctl(int epfd, int op, int fd, struct epoll_event * event);126 127 extern ssize_t splice(int fd_in, __off64_t * off_in, int fd_out, __off64_t *off_out, size_t len, unsigned int flags);125 extern int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event); 126 127 extern ssize_t splice(int fd_in, __off64_t *off_in, int fd_out, __off64_t *off_out, size_t len, unsigned int flags); 128 128 extern ssize_t tee(int fd_in, int fd_out, size_t len, unsigned int flags); 129 129 } … … 224 224 calls = [ 225 225 # CFA_HAVE_IORING_OP_READV 226 Call('READV', 'ssize_t preadv2(int fd, const struct iovec * iov, int iovcnt, off_t offset, int flags)', {226 Call('READV', 'ssize_t preadv2(int fd, const struct iovec *iov, int iovcnt, off_t offset, int flags)', { 227 227 'fd' : 'fd', 228 'addr': '(typeof(sqe->addr))iov', 228 'off' : 'offset', 229 'addr': '(uintptr_t)iov', 229 230 'len' : 'iovcnt', 230 'off' : 'offset',231 'rw_flags' : 'flags'232 231 }, define = 'CFA_HAVE_PREADV2'), 233 232 # CFA_HAVE_IORING_OP_WRITEV 234 Call('WRITEV', 'ssize_t pwritev2(int fd, const struct iovec * iov, int iovcnt, off_t offset, int flags)', {233 Call('WRITEV', 'ssize_t pwritev2(int fd, const struct iovec *iov, int iovcnt, off_t offset, int flags)', { 235 234 'fd' : 'fd', 236 'addr': '(typeof(sqe->addr))iov',237 'len' : 'iovcnt',238 235 'off' : 'offset', 239 'rw_flags' : 'flags' 236 'addr': '(uintptr_t)iov', 237 'len' : 'iovcnt' 240 238 }, define = 'CFA_HAVE_PWRITEV2'), 241 239 # CFA_HAVE_IORING_OP_FSYNC … … 244 242 }), 245 243 # CFA_HAVE_IORING_OP_EPOLL_CTL 246 Call('EPOLL_CTL', 'int epoll_ctl(int epfd, int op, int fd, struct epoll_event * event)', {244 Call('EPOLL_CTL', 'int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event)', { 247 245 'fd': 'epfd', 246 'addr': 'fd', 248 247 'len': 'op', 249 'addr': 'fd', 250 'off': '(typeof(sqe->off))event' 248 'off': '(uintptr_t)event' 251 249 }), 252 250 # CFA_HAVE_IORING_OP_SYNC_FILE_RANGE … … 258 256 }), 259 257 # CFA_HAVE_IORING_OP_SENDMSG 260 Call('SENDMSG', 'ssize_t sendmsg(int sockfd, const struct msghdr * msg, int flags)', {261 'fd': 'sockfd', 262 'addr': '( typeof(sqe->addr))(struct msghdr *)msg',258 Call('SENDMSG', 'ssize_t sendmsg(int sockfd, const struct msghdr *msg, int flags)', { 259 'fd': 'sockfd', 260 'addr': '(uintptr_t)(struct msghdr *)msg', 263 261 'len': '1', 264 262 'msg_flags': 'flags' 265 263 }), 266 264 # CFA_HAVE_IORING_OP_RECVMSG 267 Call('RECVMSG', 'ssize_t recvmsg(int sockfd, struct msghdr * msg, int flags)', {268 'fd': 'sockfd', 269 'addr': '( typeof(sqe->addr))(struct msghdr *)msg',265 Call('RECVMSG', 'ssize_t recvmsg(int sockfd, struct msghdr *msg, int flags)', { 266 'fd': 'sockfd', 267 'addr': '(uintptr_t)(struct msghdr *)msg', 270 268 'len': '1', 271 269 'msg_flags': 'flags' 272 270 }), 273 271 # CFA_HAVE_IORING_OP_SEND 274 Call('SEND', 'ssize_t send(int sockfd, const void * buf, size_t len, int flags)', {275 'fd': 'sockfd', 276 'addr': '( typeof(sqe->addr))buf',272 Call('SEND', 'ssize_t send(int sockfd, const void *buf, size_t len, int flags)', { 273 'fd': 'sockfd', 274 'addr': '(uintptr_t)buf', 277 275 'len': 'len', 278 276 'msg_flags': 'flags' 279 277 }), 280 278 # CFA_HAVE_IORING_OP_RECV 281 Call('RECV', 'ssize_t recv(int sockfd, void * buf, size_t len, int flags)', {282 'fd': 'sockfd', 283 'addr': '( typeof(sqe->addr))buf',279 Call('RECV', 'ssize_t recv(int sockfd, void *buf, size_t len, int flags)', { 280 'fd': 'sockfd', 281 'addr': '(uintptr_t)buf', 284 282 'len': 'len', 285 283 'msg_flags': 'flags' … … 288 286 Call('ACCEPT', 'int accept4(int sockfd, __SOCKADDR_ARG addr, socklen_t * restrict addrlen, int flags)', { 289 287 'fd': 'sockfd', 290 'addr': '( typeof(sqe->addr))&addr',291 'addr2': '( typeof(sqe->addr2))addrlen',288 'addr': '(uintptr_t)&addr', 289 'addr2': '(uintptr_t)addrlen', 292 290 'accept_flags': 'flags' 293 291 }), … … 295 293 Call('CONNECT', 'int connect(int sockfd, __CONST_SOCKADDR_ARG addr, socklen_t addrlen)', { 296 294 'fd': 'sockfd', 297 'addr': '( typeof(sqe->addr))&addr',295 'addr': '(uintptr_t)&addr', 298 296 'off': 'addrlen' 299 297 }), … … 301 299 Call('FALLOCATE', 'int fallocate(int fd, int mode, off_t offset, off_t len)', { 302 300 'fd': 'fd', 301 'addr': '(uintptr_t)len', 303 302 'len': 'mode', 304 'off': 'offset', 305 'addr': 'len' 303 'off': 'offset' 306 304 }), 307 305 # CFA_HAVE_IORING_OP_FADVISE … … 313 311 }), 314 312 # CFA_HAVE_IORING_OP_MADVISE 315 Call('MADVISE', 'int madvise(void * addr, size_t length, int advice)', {316 'addr': '( typeof(sqe->addr))addr',313 Call('MADVISE', 'int madvise(void *addr, size_t length, int advice)', { 314 'addr': '(uintptr_t)addr', 317 315 'len': 'length', 318 316 'fadvise_advice': 'advice' 319 317 }), 320 318 # CFA_HAVE_IORING_OP_OPENAT 321 Call('OPENAT', 'int openat(int dirfd, const char * pathname, int flags, mode_t mode)', {319 Call('OPENAT', 'int openat(int dirfd, const char *pathname, int flags, mode_t mode)', { 322 320 'fd': 'dirfd', 323 'addr': '( typeof(sqe->addr))pathname',324 ' open_flags': 'flags;',325 ' len': 'mode'321 'addr': '(uintptr_t)pathname', 322 'len': 'mode', 323 'open_flags': 'flags;' 326 324 }), 327 325 # CFA_HAVE_IORING_OP_OPENAT2 328 Call('OPENAT2', 'int openat2(int dirfd, const char * pathname, struct open_how * how, size_t size)', {326 Call('OPENAT2', 'int openat2(int dirfd, const char *pathname, struct open_how * how, size_t size)', { 329 327 'fd': 'dirfd', 330 'addr': ' (typeof(sqe->addr))pathname',331 ' off': '(typeof(sqe->off))how',332 ' len': 'sizeof(*how)'328 'addr': 'pathname', 329 'len': 'sizeof(*how)', 330 'off': '(uintptr_t)how', 333 331 }, define = 'CFA_HAVE_OPENAT2'), 334 332 # CFA_HAVE_IORING_OP_CLOSE … … 337 335 }), 338 336 # CFA_HAVE_IORING_OP_STATX 339 Call('STATX', 'int statx(int dirfd, const char * pathname, int flags, unsigned int mask, struct statx *statxbuf)', {337 Call('STATX', 'int statx(int dirfd, const char *pathname, int flags, unsigned int mask, struct statx *statxbuf)', { 340 338 'fd': 'dirfd', 341 ' addr': '(typeof(sqe->addr))pathname',342 ' statx_flags': 'flags',339 'off': '(uintptr_t)statxbuf', 340 'addr': 'pathname', 343 341 'len': 'mask', 344 ' off': '(typeof(sqe->off))statxbuf'342 'statx_flags': 'flags' 345 343 }, define = 'CFA_HAVE_STATX'), 346 344 # CFA_HAVE_IORING_OP_READ 347 345 Call('READ', 'ssize_t read(int fd, void * buf, size_t count)', { 348 346 'fd': 'fd', 349 'addr': '( typeof(sqe->addr))buf',347 'addr': '(uintptr_t)buf', 350 348 'len': 'count' 351 349 }), … … 353 351 Call('WRITE', 'ssize_t write(int fd, void * buf, size_t count)', { 354 352 'fd': 'fd', 355 'addr': '( typeof(sqe->addr))buf',353 'addr': '(uintptr_t)buf', 356 354 'len': 'count' 357 355 }), 358 356 # CFA_HAVE_IORING_OP_SPLICE 359 Call('SPLICE', 'ssize_t splice(int fd_in, __off64_t * off_in, int fd_out, __off64_t *off_out, size_t len, unsigned int flags)', {357 Call('SPLICE', 'ssize_t splice(int fd_in, __off64_t *off_in, int fd_out, __off64_t *off_out, size_t len, unsigned int flags)', { 360 358 'splice_fd_in': 'fd_in', 361 'splice_off_in': 'off_in ? ( typeof(sqe->splice_off_in))*off_in : (typeof(sqe->splice_off_in))-1',359 'splice_off_in': 'off_in ? (__u64)*off_in : (__u64)-1', 362 360 'fd': 'fd_out', 363 'off': 'off_out ? ( typeof(sqe->off))*off_out : (typeof(sqe->off))-1',361 'off': 'off_out ? (__u64)*off_out : (__u64)-1', 364 362 'len': 'len', 365 363 'splice_flags': 'flags' -
src/AST/Print.cpp
r1633e04 rd30e3eb 369 369 --indent; 370 370 } 371 }372 373 if ( ! node->withExprs.empty() ) {374 // Not with a clause, but the 'with clause'.375 ++indent;376 os << " with clause" << endl << indent;377 printAll( node->withExprs );378 --indent;379 371 } 380 372 -
src/Common/module.mk
r1633e04 rd30e3eb 20 20 Common/CodeLocationTools.hpp \ 21 21 Common/CodeLocationTools.cpp \ 22 Common/Debug.h \ 22 23 Common/DeclStats.hpp \ 23 24 Common/DeclStats.cpp \ -
src/Common/utility.h
r1633e04 rd30e3eb 190 190 } 191 191 192 template< typename... Params > 193 void warn( const Params & ... params ) { 194 std::cerr << "Warning: "; 195 toString_single( std::cerr, params... ); 196 std::cerr << std::endl; 197 } 198 192 199 // determines if pref is a prefix of str 193 200 static inline bool isPrefix( const std::string & str, const std::string & pref, unsigned int start = 0 ) { -
src/InitTweak/FixInit.cc
r1633e04 rd30e3eb 1233 1233 } 1234 1234 1235 template< typename Visitor, typename... Params > 1236 void error( Visitor & v, CodeLocation loc, const Params &... params ) { 1237 SemanticErrorException err( loc, toString( params... ) ); 1238 v.errors.append( err ); 1239 } 1240 1235 1241 template< typename... Params > 1236 1242 void GenStructMemberCalls::emit( CodeLocation loc, const Params &... params ) { 1237 SemanticErrorException err( loc, toString( params... ) ); 1238 errors.append( err ); 1243 // toggle warnings vs. errors here. 1244 // warn( params... ); 1245 error( *this, loc, params... ); 1239 1246 } 1240 1247 -
src/InitTweak/FixInitNew.cpp
r1633e04 rd30e3eb 1303 1303 } 1304 1304 1305 template< typename Visitor, typename... Params > 1306 void error( Visitor & v, CodeLocation loc, const Params &... params ) { 1307 SemanticErrorException err( loc, toString( params... ) ); 1308 v.errors.append( err ); 1309 } 1310 1305 1311 template< typename... Params > 1306 1312 void GenStructMemberCalls::emit( CodeLocation loc, const Params &... params ) { 1307 SemanticErrorException err( loc, toString( params... ) ); 1308 errors.append( err ); 1313 // toggle warnings vs. errors here. 1314 // warn( params... ); 1315 error( *this, loc, params... ); 1309 1316 } 1310 1317 -
src/Parser/parser.yy
r1633e04 rd30e3eb 10 10 // Created On : Sat Sep 1 20:22:55 2001 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Mar 22 21:26:01202313 // Update Count : 600212 // Last Modified On : Tue Mar 21 19:01:00 2023 13 // Update Count : 5990 14 14 // 15 15 … … 270 270 SemanticError( yylloc, ::toString( "Identifier \"", identifier, "\" cannot appear before a ", kind, ".\n" 271 271 "Possible cause is misspelled storage/CV qualifier, misspelled typename, or missing generic parameter." ) ); 272 } // IdentifierBeforeType273 274 static bool TypedefForall( DeclarationNode * decl ) {275 if ( decl->type->forall || (decl->type->kind == TypeData::Aggregate && decl->type->aggregate.params) ) {276 SemanticError( yylloc, "forall qualifier in typedef is currently unimplemented." );277 return true;278 } // if279 return false;280 272 } // IdentifierBeforeType 281 273 … … 1966 1958 TYPEDEF type_specifier declarator 1967 1959 { 1960 // if type_specifier is an anon aggregate => name 1968 1961 typedefTable.addToEnclosingScope( *$3->name, TYPEDEFname, "4" ); 1969 if ( TypedefForall( $2 ) ) $$ = nullptr; 1970 else $$ = $3->addType( $2 )->addTypedef(); // watchout frees $2 and $3 1962 $$ = $3->addType( $2 )->addTypedef(); // watchout frees $2 and $3 1971 1963 } 1972 1964 | typedef_declaration pop ',' push declarator … … 1978 1970 { 1979 1971 typedefTable.addToEnclosingScope( *$4->name, TYPEDEFname, "6" ); 1980 if ( TypedefForall( $1 ) ) $$ = nullptr; 1981 else $$ = $4->addQualifiers( $1 )->addType( $3 )->addTypedef(); 1972 $$ = $4->addQualifiers( $1 )->addType( $3 )->addTypedef(); 1982 1973 } 1983 1974 | type_specifier TYPEDEF declarator 1984 1975 { 1985 1976 typedefTable.addToEnclosingScope( *$3->name, TYPEDEFname, "7" ); 1986 if ( TypedefForall( $1 ) ) $$ = nullptr; 1987 else $$ = $3->addType( $1 )->addTypedef(); 1977 $$ = $3->addType( $1 )->addTypedef(); 1988 1978 } 1989 1979 | type_specifier TYPEDEF type_qualifier_list declarator 1990 1980 { 1991 1981 typedefTable.addToEnclosingScope( *$4->name, TYPEDEFname, "8" ); 1992 if ( TypedefForall( $3 ) ) $$ = nullptr; 1993 else $$ = $4->addQualifiers( $1 )->addType( $1 )->addTypedef(); 1982 $$ = $4->addQualifiers( $1 )->addType( $1 )->addTypedef(); 1994 1983 } 1995 1984 ; -
src/SynTree/FunctionDecl.cc
r1633e04 rd30e3eb 87 87 } // if 88 88 89 if ( !withExprs.empty() ) {90 os << indent << "... with clause" << std::endl;91 os << indent + 1;92 printAll( withExprs, os, indent + 1 );93 }94 95 89 if ( statements ) { 96 90 os << indent << "... with body" << endl << indent+1;
Note:
See TracChangeset
for help on using the changeset viewer.