Changes between Version 55 and Version 56 of IR2


Ignore:
Timestamp:
04/30/21 18:13:25 (5 years ago)
Author:
siegel
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • IR2

    v55 v56  
    1 = CIVL IR =
     1= CIVL IR v2.0 =
    22
    33== Language principles ==
     
    4141program: typedef* decl* function-definition+ ;
    4242typedef:
    43     enum ID '{' identifier-list '}' ';'
    44   | struct ID '{' decl* '}' ';'
     43  struct ID '{' decl* '}' ';'
    4544  | union ID '{' decl* '}' ';'
    4645  | 'typedef' type-specifier declarator ';'
     
    166165  | expr '(' arg-list? ')' ';'  /* function call */
    167166  | (lvalue '=')? '$spawn' expr '(' expression-list? ')' ';'  /* process creation */
     167  | '$wait' expr ';'  /* wait until p terminates */
    168168  | 'return' expr? ';'  /* return from function call */
    169169  | (lvalue '=')? '$alloc' '(' expr ',' expr ',' type-name ')' ';'  /* heap allocation */
     170  | '$free' expr ';'  /* frees something that was $alloc-ed */
     171  | '$atomic_enter' ';'  /* enter atomic region */
     172  | '$atomic_exit' ';'  /* exit atomic region */
     173  | '$yield' ';'  /* release atomic lock */
     174  | '$assert' expr (',' expr)* ';'  /* assertion with optional error message */
     175  | '$assume expr ';'  /* assumption */
    170176  ;
    171177
     
    258264{{{
    259265void $parspawn($proc * proc_array, $domain d, void (*f)($int, ...));  /* parallel spawn */
    260 void $atomic_enter();
    261 void $atomic_exit();
    262 void $yield();
    263266
    264267}}}