Changeset a29c6e2


Ignore:
Timestamp:
Oct 4, 2018, 5:31:44 PM (6 years ago)
Author:
Aaron Moss <a3moss@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, no_list, persistent-indexer, pthread-emulation, qualifiedEnum
Children:
7b61ce8
Parents:
6cb935d (diff), 04bdc26 (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.
Message:

Merge branch 'master' of plg2.cs.uwaterloo.ca:software/cfa/cfa-cc

Files:
16 edited

Legend:

Unmodified
Added
Removed
  • doc/bibliography/pl.bib

    r6cb935d ra29c6e2  
    830830    month       = oct,
    831831    type        = {Diplomarbeit},
    832     note        = {{\small\textsf{ftp://\-plg.uwaterloo.ca/\-pub/\-theses/\-KrischerThesis.ps.gz}}},
     832    note        = {\href{https://plg.uwaterloo.ca/~usystem/theses/KrischerThesis.pdf}{https://\-plg.uwaterloo.ca/\-$\sim$usystem/\-theses/\-KrischerThesis.pdf}},
    833833}
    834834
     
    925925    key         = {Cforall},
    926926    author      = {{\textsf{C}{$\mathbf{\forall}$} Features}},
    927     howpublished= {\href{https://plg.uwaterloo.ca/~cforall/features}{https://\-plg.uwaterloo.ca/\-~cforall/\-features}},
     927    howpublished= {\href{https://plg.uwaterloo.ca/~cforall/features}{https://\-plg.uwaterloo.ca/\-$\sim$cforall/\-features}},
    928928    optnote     = {Accessed: 2018-01-01},
    929929}
     
    11011101    month       = oct,
    11021102    year        = 2001,
    1103     note        = {\href{http://plg.uwaterloo.ca/~cforall/cfa.ps}{http://\-plg.uwaterloo.ca/\-\char`\~cforall/\-cfa.ps}},
     1103    note        = {\href{http://plg.uwaterloo.ca/~cforall/cfa.ps}{http://\-plg.uwaterloo.ca/\-$\sim$cforall/\-cfa.ps}},
    11041104}
    11051105
     
    15161516    month       = dec,
    15171517    year        = 2017,
    1518     note        = {\href{https://plg.uwaterloo.ca/~usystem/pub/uSystem/uC++.pdf}{https://\-plg.uwaterloo.ca/\-~usystem/\-pub/\-uSystem/uC++.pdf}},
     1518    note        = {\href{https://plg.uwaterloo.ca/~usystem/pub/uSystem/uC++.pdf}{https://\-plg.uwaterloo.ca/\-$\sim$usystem/\-pub/\-uSystem/uC++.pdf}},
    15191519}
    15201520
     
    18091809    author      = {Glen Ditchfield},
    18101810    title       = {Conversions for \textsf{C}$\mathbf{\forall}$},
    1811     note        = {\href{http://plg.uwaterloo.ca/~cforall/Conversions/index.html}{http://\-plg.uwaterloo.ca/\-\textasciitilde cforall/\-Conversions/\-index.html}},
     1811    note        = {\href{http://plg.uwaterloo.ca/~cforall/Conversions/index.html}{http://\-plg.uwaterloo.ca/\-$\sim$cforall/\-Conversions/\-index.html}},
    18121812    month       = {Nov},
    18131813    year        = {2002},
     
    18771877    title       = {CS343},
    18781878    year        = 2018,
    1879     howpublished= {\href{https://www.student.cs.uwaterloo.ca/~cs343}{https://\-www.student.cs.uwaterloo.ca/\-~cs343}},
     1879    howpublished= {\href{https://www.student.cs.uwaterloo.ca/~cs343}{https://\-www.student.cs.uwaterloo.ca/\-$\sim$cs343}},
    18801880}
    18811881
     
    41444144    month       = sep,
    41454145    year        = 2006,
    4146     note        = {\textsf{http://cs.anu.edu.au/\-\char`\~Robin.Garner/\-mmtk-guide.pdf}},
     4146    note        = {\textsf{http://cs.anu.edu.au/\-$\sim$Robin.Garner/\-mmtk-guide.pdf}},
    41474147}
    41484148
     
    42484248    month       = sep,
    42494249    year        = 1994,
    4250     note        = {{\small\textsf{ftp://\-plg.uwaterloo.ca/\-pub/\-uSystem/\-uSystem.ps.gz}}},
     4250    note        = {\href{https://plg.uwaterloo.ca/~usystem/pub/uSystem/uSystem.pdf}{https://\-plg.uwaterloo.ca/\-$\sim$usystem/\-pub/\-uSystem/\-uSystem.pdf}},
    42514251}
    42524252
     
    47904790    year        = 1995,
    47914791    number      = 31,
    4792     note        = {{\small\textsf{http://\-www.cs.wustl.edu/\-\char`\~schmidt/\-PDF/\-IPC\_SAP-92.pdf}}},
     4792    note        = {{\small\textsf{http://\-www.cs.wustl.edu/\-$\sim$schmidt/\-PDF/\-IPC\_SAP-92.pdf}}},
    47934793}
    47944794
     
    61326132    month       = apr,
    61336133    type        = {Diplomarbeit},
    6134     note        = {\href{ftp://plg.uwaterloo.ca/pub/theses/SchusterThesis.ps.gz}{ftp://\-plg.uwaterloo.ca/\-pub/\-theses/\-SchusterThesis.ps.gz}},
     6134    note        = {\href{https://plg.uwaterloo.ca/~usystem/theses/SchusterThesis.pdf}{https://\-plg.uwaterloo.ca/\-$\sim$usystem/\-theses/\-SchusterThesis.pdf}},
    61356135}
    61366136
  • doc/papers/concurrency/Makefile

    r6cb935d ra29c6e2  
    44Figures = figures
    55Macros = ../AMA/AMA-stix/ama
    6 TeXLIB = .:annex:../../LaTeXmacros:${Macros}:${Build}:../../bibliography:
     6TeXLIB = .:../../LaTeXmacros:${Macros}:${Build}:
    77LaTeX  = TEXINPUTS=${TeXLIB} && export TEXINPUTS && latex -halt-on-error -output-directory=${Build}
    8 BibTeX = BIBINPUTS=${TeXLIB} && export BIBINPUTS && bibtex
     8BibTeX = BIBINPUTS=annex:../../bibliography: && export BIBINPUTS && bibtex
    99
    1010MAKEFLAGS = --no-print-directory # --silent
  • doc/papers/general/Makefile

    r6cb935d ra29c6e2  
    44Figures = figures
    55Macros = ../AMA/AMA-stix/ama
    6 TeXLIB = .:${Macros}:${Build}:../../bibliography:
     6TeXLIB = .:${Macros}:${Build}:
    77LaTeX  = TEXINPUTS=${TeXLIB} && export TEXINPUTS && latex -halt-on-error -output-directory=${Build}
    8 BibTeX = BIBINPUTS=${TeXLIB} && export BIBINPUTS && bibtex
     8BibTeX = BIBINPUTS=../../bibliography: && export BIBINPUTS && bibtex
    99
    1010MAKEFLAGS = --no-print-directory # --silent
  • doc/user/Makefile

    r6cb935d ra29c6e2  
    44Figures = figures
    55Macros = ../LaTeXmacros
    6 TeXLIB = .:${Macros}:${Build}:../bibliography:
     6TeXLIB = .:${Macros}:${Build}:
    77LaTeX  = TEXINPUTS=${TeXLIB} && export TEXINPUTS && latex -halt-on-error -output-directory=${Build}
    8 BibTeX = BIBINPUTS=${TeXLIB} && export BIBINPUTS && bibtex
     8BibTeX = BIBINPUTS=../bibliography: && export BIBINPUTS && bibtex
    99
    1010MAKEFLAGS = --no-print-directory --silent #
  • driver/cfa.cc

    r6cb935d ra29c6e2  
    1010// Created On       : Tue Aug 20 13:44:49 2002
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon Sep  3 16:47:59 2018
    13 // Update Count     : 275
     12// Last Modified On : Fri Sep 14 23:02:59 2018
     13// Update Count     : 277
    1414//
    1515
     
    114114        bool std_flag = false;                                                          // -std= flag
    115115        bool noincstd_flag = false;                                                     // -no-include-stdhdr= flag
    116         bool xflag = false;                                                                     // user supplied -x flag
    117116        bool debugging __attribute(( unused )) = false;         // -g flag
    118117        bool m32 = false;                                    // -m32 flag
     
    291290                        } // if
    292291                        nonoptarg = true;
    293                         xflag = false;
    294292                } // if
    295293        } // for
    296294
    297     args[nargs] = "-x";                                 // turn off language
     295    args[nargs] = "-x";                                                                 // turn off language
    298296    nargs += 1;
    299297    args[nargs] = "none";
  • libcfa/src/time.hfa

    r6cb935d ra29c6e2  
    1010// Created On       : Wed Mar 14 23:18:57 2018
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Aug 11 13:55:33 2018
    13 // Update Count     : 642
     12// Last Modified On : Sat Sep 22 12:25:34 2018
     13// Update Count     : 643
    1414//
    1515
     
    2323#include <sys/time.h>                                                                   // timeval
    2424}
    25 #include <time_t.hfa>                                                                           // Duration/Time types
     25#include <time_t.hfa>                                                                   // Duration/Time types
    2626
    2727enum { TIMEGRAN = 1_000_000_000LL };                                    // nanosecond granularity, except for timeval
     
    104104
    105105        timeval ?=?( timeval & t, zero_t ) { return t{ 0 }; }
    106         timeval ?+?( timeval & lhs, timeval rhs ) { return (timeval)@{ lhs.tv_sec + rhs.tv_sec, lhs.tv_usec + rhs.tv_usec }; }
    107         timeval ?-?( timeval & lhs, timeval rhs ) { return (timeval)@{ lhs.tv_sec - rhs.tv_sec, lhs.tv_usec - rhs.tv_usec }; }
     106        timeval ?+?( timeval lhs, timeval rhs ) { return (timeval)@{ lhs.tv_sec + rhs.tv_sec, lhs.tv_usec + rhs.tv_usec }; }
     107        timeval ?-?( timeval lhs, timeval rhs ) { return (timeval)@{ lhs.tv_sec - rhs.tv_sec, lhs.tv_usec - rhs.tv_usec }; }
    108108        bool ?==?( timeval lhs, timeval rhs ) { return lhs.tv_sec == rhs.tv_sec && lhs.tv_usec == rhs.tv_usec; }
    109109        bool ?!=?( timeval lhs, timeval rhs ) { return lhs.tv_sec != rhs.tv_sec || lhs.tv_usec != rhs.tv_usec; }
     
    119119
    120120        timespec ?=?( timespec & t, zero_t ) { return t{ 0 }; }
    121         timespec ?+?( timespec & lhs, timespec rhs ) { return (timespec)@{ lhs.tv_sec + rhs.tv_sec, lhs.tv_nsec + rhs.tv_nsec }; }
    122         timespec ?-?( timespec & lhs, timespec rhs ) { return (timespec)@{ lhs.tv_sec - rhs.tv_sec, lhs.tv_nsec - rhs.tv_nsec }; }
     121        timespec ?+?( timespec lhs, timespec rhs ) { return (timespec)@{ lhs.tv_sec + rhs.tv_sec, lhs.tv_nsec + rhs.tv_nsec }; }
     122        timespec ?-?( timespec lhs, timespec rhs ) { return (timespec)@{ lhs.tv_sec - rhs.tv_sec, lhs.tv_nsec - rhs.tv_nsec }; }
    123123        bool ?==?( timespec lhs, timespec rhs ) { return lhs.tv_sec == rhs.tv_sec && lhs.tv_nsec == rhs.tv_nsec; }
    124124        bool ?!=?( timespec lhs, timespec rhs ) { return lhs.tv_sec != rhs.tv_sec || lhs.tv_nsec != rhs.tv_nsec; }
  • src/CodeTools/ResolvProtoDump.cc

    r6cb935d ra29c6e2  
    204204                /// ensures type inst names are uppercase
    205205                static void ti_name( const std::string& name, std::stringstream& ss ) {
     206                        // replace built-in wide character types with named types
     207                        if ( name == "char16_t" || name == "char32_t" || name == "wchar_t" ) {
     208                                ss << "#" << name;
     209                                return;
     210                        }
     211
     212                        // strip leading underscore
    206213                        unsigned i = 0;
    207214                        while ( i < name.size() && name[i] == '_' ) { ++i; }
     
    210217                                return;
    211218                        }
    212                         ss << (char)std::toupper( static_cast<unsigned char>(name[i]) )
    213                            << (name.c_str() + i + 1);
     219
     220                        std::string stripped = name.substr(i);
     221                        // strip trailing "_generic_" from autogen names (avoids some user-generation issues)
     222                        char generic[] = "_generic_"; size_t n_generic = sizeof(generic) - 1;
     223                        if ( stripped.size() >= n_generic
     224                                        && stripped.substr( stripped.size() - n_generic ) == generic ) {
     225                                stripped.resize( stripped.size() - n_generic );
     226                        }
     227
     228                        // uppercase first character
     229                        ss << (char)std::toupper( static_cast<unsigned char>(stripped[0]) )
     230                           << (stripped.c_str() + 1);
    214231                }
    215232
     
    304321                        }
    305322
    306                         // TODO support VarArgsType
     323                        // TODO support variable args for functions
     324                        void previsit( VarArgsType* ) {
     325                                // only include varargs for top level (argument type)
     326                                if ( depth == 0 ) { ss << "#$varargs"; }
     327                        }
    307328
    308329                        // replace 0 and 1 with int
     
    397418                        }
    398419
     420                        /// Handle already-resolved variables as type constants
     421                        void previsit( VariableExpr* expr ) {
     422                                PassVisitor<TypePrinter> tyPrinter{ closed, ss };
     423                                expr->var->get_type()->accept( tyPrinter );
     424                                visit_children = false;
     425                        }
     426
    399427                        /// Calls handled as calls
    400428                        void previsit( UntypedExpr* expr ) {
     
    426454                        }
    427455
    428                         /// Already-resolved calls skipped
    429                         void previsit( ApplicationExpr* ) {
     456                        /// Already-resolved calls reduced to their type constant
     457                        void previsit( ApplicationExpr* expr ) {
     458                                PassVisitor<TypePrinter> tyPrinter{ closed, ss };
     459                                expr->result->accept( tyPrinter );
    430460                                visit_children = false;
    431461                        }
     
    532562                                for ( Initializer* it : li->initializers ) {
    533563                                        build( it, ss );
    534                                         ss << ' ';
    535564                                }
    536565                        }
     
    539568                /// Adds an object initializer to the list of expressions
    540569                void build( const std::string& name, Initializer* init, std::stringstream& ss ) {
    541                         ss << "$constructor( ";
     570                        ss << "$constructor( &";
    542571                        rp_name( name, ss );
    543                         ss << "() ";
     572                        ss << ' ';
    544573                        build( init, ss );
    545574                        ss << ')';
     
    676705                }
    677706
     707                void previsit( AsmStmt* ) {
     708                        // skip asm statements
     709                        visit_children = false;
     710                }
     711
    678712                void previsit( Expression* expr ) {
    679713                        std::stringstream ss;
     
    686720                /// Print non-prelude global declarations for resolv proto
    687721                void printGlobals() const {
    688                         std::cout << "#ptr<T> $addr T" << std::endl;  // &?
     722                        std::cout << "#$ptr<T> $addr T" << std::endl;  // &?
    689723                        int i = (int)BasicType::SignedInt;
    690724                        std::cout << i << " $and " << i << ' ' << i << std::endl;  // ?&&?
  • src/SynTree/Constant.cc

    r6cb935d ra29c6e2  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Andrew Beach
    12 // Last Modified On : Fri Jul 14 14:50:00 2017
    13 // Update Count     : 29
     12// Last Modified On : Fri Spt 28 14:49:00 2018
     13// Update Count     : 30
    1414//
    1515
     
    1919
    2020#include "Constant.h"
     21#include "Expression.h" // for ConstantExpr
    2122#include "Type.h"    // for BasicType, Type, Type::Qualifiers, PointerType
    2223
     
    4849Constant Constant::from_double( double d ) {
    4950        return Constant( new BasicType( Type::Qualifiers(), BasicType::Double ), std::to_string( d ), d );
     51}
     52
     53Constant Constant::from_string( std::string const & str ) {
     54        return Constant(
     55                new ArrayType(
     56                        noQualifiers,
     57                        new BasicType( Type::Qualifiers( Type::Const ), BasicType::Char ),
     58                        new ConstantExpr( Constant::from_int( str.size() + 1 /* \0 */ )),
     59                        false, false ),
     60                std::string("\"") + str + "\"", (unsigned long long int)0 );
    5061}
    5162
  • src/SynTree/Constant.h

    r6cb935d ra29c6e2  
    99// Author           : Richard C. Bilson
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Jul 22 09:54:46 2017
    13 // Update Count     : 17
     11// Last Modified By : Andrew Beach
     12// Last Modified On : Fri Spt 28 14:48:00 2018
     13// Update Count     : 18
    1414//
    1515
     
    5151        /// generates a floating point constant of the given double
    5252        static Constant from_double( double d );
     53        /// generates an array of chars constant of the given string
     54        static Constant from_string( std::string const & s );
    5355
    5456        /// generates a null pointer value for the given type. void * if omitted.
  • tests/.expect/forctrl.txt

    r6cb935d ra29c6e2  
    2222(0 0)(1 1)(2 2)(3 3)(4 4)(5 5)(6 6)(7 7)(8 8)(9 9)
    2323(0 0)(1 1)(2 2)(3 3)(4 4)(5 5)(6 6)(7 7)(8 8)(9 9)
     24(0 0)(1 1)(2 2)(3 3)(4 4)(5 5)(6 6)(7 7)(8 8)(9 9)
  • tests/concurrent/coroutineYield.c

    r6cb935d ra29c6e2  
    11#include <fstream.hfa>
    2 #include <kernel.hfa>hfa>
     2#include <kernel.hfa>
    33#include <stdlib.hfa>
    44#include <thread.hfa>
  • tests/concurrent/preempt.c

    r6cb935d ra29c6e2  
    1 #include <kernel.hfa>hfa>
     1#include <kernel.hfa>
    22#include <thread.hfa>
    33#include <time.hfa>
  • tests/concurrent/signal/block.c

    r6cb935d ra29c6e2  
    88
    99#include <fstream.hfa>
    10 #include <kernel.hfa>hfa>
     10#include <kernel.hfa>
    1111#include <monitor.hfa>
    1212#include <stdlib.hfa>
  • tests/concurrent/signal/disjoint.c

    r6cb935d ra29c6e2  
    11#include <fstream.hfa>
    2 #include <kernel.hfa>hfa>
     2#include <kernel.hfa>
    33#include <monitor.hfa>
    44#include <thread.hfa>
  • tests/concurrent/signal/wait.c

    r6cb935d ra29c6e2  
    66
    77#include <fstream.hfa>
    8 #include <kernel.hfa>hfa>
     8#include <kernel.hfa>
    99#include <monitor.hfa>
    1010#include <stdlib.hfa>
  • tests/forctrl.c

    r6cb935d ra29c6e2  
    1010// Created On       : Wed Aug  8 18:32:59 2018
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Aug 30 17:12:12 2018
    13 // Update Count     : 43
     12// Last Modified On : Tue Sep 25 17:43:47 2018
     13// Update Count     : 44
    1414//
    1515
     
    5959
    6060        for ( S s = (S){0}; s < (S){10,10}; s += (S){1} ) { sout | s; } sout | endl;
    61 //      for ( s; (S){10,10} ) { sout | s; } sout | endl;
     61        for ( s; (S){10,10} ) { sout | s; } sout | endl;
    6262        for ( s; (S){0} ~ (S){10,10} ) { sout | s; } sout | endl;
    6363        for ( s; (S){0} ~ (S){10,10} ~ (S){1} ) { sout | s; } sout | endl;
Note: See TracChangeset for help on using the changeset viewer.