From ea68d797cde3182d9827dac393b5703ebeb18dc1 Mon Sep 17 00:00:00 2001
From: Mick Jordan <mick.jordan@oracle.com>
Date: Fri, 3 Apr 2015 15:57:44 -0700
Subject: [PATCH] copyright fixes

---
 .../include/jni/src/Rinternals.h              | 1309 -----------------
 .../oracle/truffle/r/runtime/ffi/RFFI.java    |    2 +-
 .../truffle/r/runtime/ffi/RFFIFactory.java    |    2 +-
 mx.fastr/copyrights/overrides                 |   27 +-
 4 files changed, 5 insertions(+), 1335 deletions(-)
 delete mode 100644 com.oracle.truffle.r.native/include/jni/src/Rinternals.h

diff --git a/com.oracle.truffle.r.native/include/jni/src/Rinternals.h b/com.oracle.truffle.r.native/include/jni/src/Rinternals.h
deleted file mode 100644
index 41b521053c..0000000000
--- a/com.oracle.truffle.r.native/include/jni/src/Rinternals.h
+++ /dev/null
@@ -1,1309 +0,0 @@
-/*
- * This material is distributed under the GNU General Public License
- * Version 2. You may review the terms of this license at
- * http://www.gnu.org/licenses/gpl-2.0.html
- *
- * Copyright (c) 1995-2014, The R Core Team
- * Copyright (c) 2003, The R Foundation
- * Copyright (c) 2014, 2015, Oracle and/or its affiliates
- *
- * All rights reserved.
- */
-
-/*
- * This is very slightly modified version or use with FastR/JNI.
- */
-
-/* This file is installed and available to packages, but only a small
-   part of the contents is within the API.  See chapter 6 of 'Writing
-   R Extensions'.
- */
-
-#ifndef R_INTERNALS_H_
-#define R_INTERNALS_H_
-
-#ifdef __cplusplus
-# include <cstdio>
-# ifdef __SUNPRO_CC
-using std::FILE;
-# endif
-# include <climits>
-extern "C" {
-#else
-# include <stdio.h>
-# include <limits.h> /* for INT_MAX */
-#endif
-
-#include <R_ext/Arith.h>
-#include <R_ext/Boolean.h>
-#include <R_ext/Complex.h>
-#include <R_ext/Error.h>
-#include <R_ext/Memory.h>
-#include <R_ext/Utils.h>
-#include <R_ext/Print.h>
-
-#include <R_ext/libextern.h>
-
-typedef unsigned char Rbyte;
-
-/* type for length of (standard, not long) vectors etc */
-typedef int R_len_t;
-#define R_LEN_T_MAX INT_MAX
-
-/* both config.h and Rconfig.h set SIZEOF_SIZE_T, but Rconfig.h is
-   skipped if config.h has already been included. */
-#ifndef R_CONFIG_H
-# include <Rconfig.h>
-#endif
-
-#if ( SIZEOF_SIZE_T > 4 )
-# define LONG_VECTOR_SUPPORT
-#endif
-
-#ifdef LONG_VECTOR_SUPPORT
-    typedef ptrdiff_t R_xlen_t;
-    typedef struct { R_xlen_t lv_length, lv_truelength; } R_long_vec_hdr_t;
-# define R_XLEN_T_MAX 4503599627370496
-# define R_SHORT_LEN_MAX 2147483647
-# define R_LONG_VEC_TOKEN -1
-#else
-    typedef int R_xlen_t;
-# define R_XLEN_T_MAX R_LEN_T_MAX
-#endif
-
-#ifndef TESTING_WRITE_BARRIER
-# define INLINE_PROTECT
-#endif
-
-/* Fundamental Data Types:  These are largely Lisp
- * influenced structures, with the exception of LGLSXP,
- * INTSXP, REALSXP, CPLXSXP and STRSXP which are the
- * element types for S-like data objects.
- *
- *			--> TypeTable[] in ../main/util.c for  typeof()
- */
-
-/*  These exact numeric values are seldom used, but they are, e.g., in
- *  ../main/subassign.c, and they are serialized.
-*/
-#ifndef enum_SEXPTYPE
-/* NOT YET using enum:
- *  1)	The SEXPREC struct below has 'SEXPTYPE type : 5'
- *	(making FUNSXP and CLOSXP equivalent in there),
- *	giving (-Wall only ?) warnings all over the place
- * 2)	Many switch(type) { case ... } statements need a final `default:'
- *	added in order to avoid warnings like [e.g. l.170 of ../main/util.c]
- *	  "enumeration value `FUNSXP' not handled in switch"
- */
-typedef unsigned int SEXPTYPE;
-
-#define NILSXP	     0	  /* nil = NULL */
-#define SYMSXP	     1	  /* symbols */
-#define LISTSXP	     2	  /* lists of dotted pairs */
-#define CLOSXP	     3	  /* closures */
-#define ENVSXP	     4	  /* environments */
-#define PROMSXP	     5	  /* promises: [un]evaluated closure arguments */
-#define LANGSXP	     6	  /* language constructs (special lists) */
-#define SPECIALSXP   7	  /* special forms */
-#define BUILTINSXP   8	  /* builtin non-special forms */
-#define CHARSXP	     9	  /* "scalar" string type (internal only)*/
-#define LGLSXP	    10	  /* logical vectors */
-/* 11 and 12 were factors and ordered factors in the 1990s */
-#define INTSXP	    13	  /* integer vectors */
-#define REALSXP	    14	  /* real variables */
-#define CPLXSXP	    15	  /* complex variables */
-#define STRSXP	    16	  /* string vectors */
-#define DOTSXP	    17	  /* dot-dot-dot object */
-#define ANYSXP	    18	  /* make "any" args work.
-			     Used in specifying types for symbol
-			     registration to mean anything is okay  */
-#define VECSXP	    19	  /* generic vectors */
-#define EXPRSXP	    20	  /* expressions vectors */
-#define BCODESXP    21    /* byte code */
-#define EXTPTRSXP   22    /* external pointer */
-#define WEAKREFSXP  23    /* weak reference */
-#define RAWSXP      24    /* raw bytes */
-#define S4SXP       25    /* S4, non-vector */
-
-/* used for detecting PROTECT issues in memory.c */
-#define NEWSXP      30    /* fresh node creaed in new page */
-#define FREESXP     31    /* node released by GC */
-
-#define FUNSXP      99    /* Closure or Builtin or Special */
-
-
-#else /* NOT YET */
-/*------ enum_SEXPTYPE ----- */
-typedef enum {
-    NILSXP	= 0,	/* nil = NULL */
-    SYMSXP	= 1,	/* symbols */
-    LISTSXP	= 2,	/* lists of dotted pairs */
-    CLOSXP	= 3,	/* closures */
-    ENVSXP	= 4,	/* environments */
-    PROMSXP	= 5,	/* promises: [un]evaluated closure arguments */
-    LANGSXP	= 6,	/* language constructs (special lists) */
-    SPECIALSXP	= 7,	/* special forms */
-    BUILTINSXP	= 8,	/* builtin non-special forms */
-    CHARSXP	= 9,	/* "scalar" string type (internal only)*/
-    LGLSXP	= 10,	/* logical vectors */
-    INTSXP	= 13,	/* integer vectors */
-    REALSXP	= 14,	/* real variables */
-    CPLXSXP	= 15,	/* complex variables */
-    STRSXP	= 16,	/* string vectors */
-    DOTSXP	= 17,	/* dot-dot-dot object */
-    ANYSXP	= 18,	/* make "any" args work */
-    VECSXP	= 19,	/* generic vectors */
-    EXPRSXP	= 20,	/* expressions vectors */
-    BCODESXP	= 21,	/* byte code */
-    EXTPTRSXP	= 22,	/* external pointer */
-    WEAKREFSXP	= 23,	/* weak reference */
-    RAWSXP	= 24,	/* raw bytes */
-    S4SXP	= 25,	/* S4 non-vector */
-
-    NEWSXP      = 30,   /* fresh node creaed in new page */
-    FREESXP     = 31,   /* node released by GC */
-
-    FUNSXP	= 99	/* Closure or Builtin */
-} SEXPTYPE;
-#endif
-
-// ======================= USE_RINTERNALS section
-#ifdef USE_RINTERNALS
-/* This is intended for use only within R itself.
- * It defines internal structures that are otherwise only accessible
- * via SEXP, and macros to replace many (but not all) of accessor functions
- * (which are always defined).
- */
-
-/* Flags */
-
-
-struct sxpinfo_struct {
-    SEXPTYPE type      :  5;/* ==> (FUNSXP == 99) %% 2^5 == 3 == CLOSXP
-			     * -> warning: `type' is narrower than values
-			     *              of its type
-			     * when SEXPTYPE was an enum */
-    unsigned int obj   :  1;
-    unsigned int named :  2;
-    unsigned int gp    : 16;
-    unsigned int mark  :  1;
-    unsigned int debug :  1;
-    unsigned int trace :  1;  /* functions and memory tracing */
-    unsigned int spare :  1;  /* currently unused */
-    unsigned int gcgen :  1;  /* old generation number */
-    unsigned int gccls :  3;  /* node class */
-}; /*		    Tot: 32 */
-
-struct vecsxp_struct {
-    R_len_t	length;
-    R_len_t	truelength;
-};
-
-struct primsxp_struct {
-    int offset;
-};
-
-struct symsxp_struct {
-    struct SEXPREC *pname;
-    struct SEXPREC *value;
-    struct SEXPREC *internal;
-};
-
-struct listsxp_struct {
-    struct SEXPREC *carval;
-    struct SEXPREC *cdrval;
-    struct SEXPREC *tagval;
-};
-
-struct envsxp_struct {
-    struct SEXPREC *frame;
-    struct SEXPREC *enclos;
-    struct SEXPREC *hashtab;
-};
-
-struct closxp_struct {
-    struct SEXPREC *formals;
-    struct SEXPREC *body;
-    struct SEXPREC *env;
-};
-
-struct promsxp_struct {
-    struct SEXPREC *value;
-    struct SEXPREC *expr;
-    struct SEXPREC *env;
-};
-
-/* Every node must start with a set of sxpinfo flags and an attribute
-   field. Under the generational collector these are followed by the
-   fields used to maintain the collector's linked list structures. */
-
-/* Define SWITH_TO_REFCNT to use reference counting instead of the
-   'NAMED' mechanism. This uses the R-devel binary layout. The two
-   'named' field bits are used for the REFCNT, so REFCNTMAX is 3. */
-//#define SWITCH_TO_REFCNT
-
-#if defined(SWITCH_TO_REFCNT) && ! defined(COMPUTE_REFCNT_VALUES)
-# define COMPUTE_REFCNT_VALUES
-#endif
-#define REFCNTMAX (4 - 1)
-
-#define SEXPREC_HEADER \
-    struct sxpinfo_struct sxpinfo; \
-    struct SEXPREC *attrib; \
-    struct SEXPREC *gengc_next_node, *gengc_prev_node
-
-/* The standard node structure consists of a header followed by the
-   node data. */
-typedef struct SEXPREC {
-    SEXPREC_HEADER;
-    union {
-	struct primsxp_struct primsxp;
-	struct symsxp_struct symsxp;
-	struct listsxp_struct listsxp;
-	struct envsxp_struct envsxp;
-	struct closxp_struct closxp;
-	struct promsxp_struct promsxp;
-    } u;
-} SEXPREC, *SEXP;
-
-/* The generational collector uses a reduced version of SEXPREC as a
-   header in vector nodes.  The layout MUST be kept consistent with
-   the SEXPREC definition.  The standard SEXPREC takes up 7 words on
-   most hardware; this reduced version should take up only 6 words.
-   In addition to slightly reducing memory use, this can lead to more
-   favorable data alignment on 32-bit architectures like the Intel
-   Pentium III where odd word alignment of doubles is allowed but much
-   less efficient than even word alignment. */
-typedef struct VECTOR_SEXPREC {
-    SEXPREC_HEADER;
-    struct vecsxp_struct vecsxp;
-} VECTOR_SEXPREC, *VECSEXP;
-
-typedef union { VECTOR_SEXPREC s; double align; } SEXPREC_ALIGN;
-
-/* General Cons Cell Attributes */
-#define ATTRIB(x)	((x)->attrib)
-#define OBJECT(x)	((x)->sxpinfo.obj)
-#define MARK(x)		((x)->sxpinfo.mark)
-#define TYPEOF(x)	((x)->sxpinfo.type)
-#define NAMED(x)	((x)->sxpinfo.named)
-#define RTRACE(x)	((x)->sxpinfo.trace)
-#define LEVELS(x)	((x)->sxpinfo.gp)
-#define SET_OBJECT(x,v)	(((x)->sxpinfo.obj)=(v))
-#define SET_TYPEOF(x,v)	(((x)->sxpinfo.type)=(v))
-#define SET_NAMED(x,v)	(((x)->sxpinfo.named)=(v))
-#define SET_RTRACE(x,v)	(((x)->sxpinfo.trace)=(v))
-#define SETLEVELS(x,v)	(((x)->sxpinfo.gp)=((unsigned short)v))
-
-#if defined(COMPUTE_REFCNT_VALUES)
-# define REFCNT(x) ((x)->sxpinfo.named)
-# define TRACKREFS(x) (TYPEOF(x) == CLOSXP ? TRUE : ! (x)->sxpinfo.spare)
-#else
-# define REFCNT(x) 0
-# define TRACKREFS(x) FALSE
-#endif
-
-#ifdef SWITCH_TO_REFCNT
-# undef NAMED
-# undef SET_NAMED
-# define NAMED(x) REFCNT(x)
-# define SET_NAMED(x, v) do {} while (0)
-#endif
-
-/* S4 object bit, set by R_do_new_object for all new() calls */
-#define S4_OBJECT_MASK ((unsigned short)(1<<4))
-#define IS_S4_OBJECT(x) ((x)->sxpinfo.gp & S4_OBJECT_MASK)
-#define SET_S4_OBJECT(x) (((x)->sxpinfo.gp) |= S4_OBJECT_MASK)
-#define UNSET_S4_OBJECT(x) (((x)->sxpinfo.gp) &= ~S4_OBJECT_MASK)
-
-/* Vector Access Macros */
-#ifdef LONG_VECTOR_SUPPORT
-    R_len_t R_BadLongVector(SEXP, const char *, int);
-# define IS_LONG_VEC(x) (SHORT_VEC_LENGTH(x) == R_LONG_VEC_TOKEN)
-# define SHORT_VEC_LENGTH(x) (((VECSEXP) (x))->vecsxp.length)
-# define SHORT_VEC_TRUELENGTH(x) (((VECSEXP) (x))->vecsxp.truelength)
-# define LONG_VEC_LENGTH(x) ((R_long_vec_hdr_t *) (x))[-1].lv_length
-# define LONG_VEC_TRUELENGTH(x) ((R_long_vec_hdr_t *) (x))[-1].lv_truelength
-# define XLENGTH(x) (IS_LONG_VEC(x) ? LONG_VEC_LENGTH(x) : SHORT_VEC_LENGTH(x))
-# define XTRUELENGTH(x)	(IS_LONG_VEC(x) ? LONG_VEC_TRUELENGTH(x) : SHORT_VEC_TRUELENGTH(x))
-# define LENGTH(x) (IS_LONG_VEC(x) ? R_BadLongVector(x, __FILE__, __LINE__) : SHORT_VEC_LENGTH(x))
-# define TRUELENGTH(x) (IS_LONG_VEC(x) ? R_BadLongVector(x, __FILE__, __LINE__) : SHORT_VEC_TRUELENGTH(x))
-# define SET_SHORT_VEC_LENGTH(x,v) (SHORT_VEC_LENGTH(x) = (v))
-# define SET_SHORT_VEC_TRUELENGTH(x,v) (SHORT_VEC_TRUELENGTH(x) = (v))
-# define SET_LONG_VEC_LENGTH(x,v) (LONG_VEC_LENGTH(x) = (v))
-# define SET_LONG_VEC_TRUELENGTH(x,v) (LONG_VEC_TRUELENGTH(x) = (v))
-# define SETLENGTH(x,v) do { \
-      SEXP sl__x__ = (x); \
-      R_xlen_t sl__v__ = (v); \
-      if (IS_LONG_VEC(sl__x__)) \
-	  SET_LONG_VEC_LENGTH(sl__x__,  sl__v__); \
-      else SET_SHORT_VEC_LENGTH(sl__x__, (R_len_t) sl__v__); \
-  } while (0)
-# define SET_TRUELENGTH(x,v) do { \
-      SEXP sl__x__ = (x); \
-      R_xlen_t sl__v__ = (v); \
-      if (IS_LONG_VEC(sl__x__)) \
-	  SET_LONG_VEC_TRUELENGTH(sl__x__, sl__v__); \
-      else SET_SHORT_VEC_TRUELENGTH(sl__x__, (R_len_t) sl__v__); \
-  } while (0)
-# define IS_SCALAR(x, type) (TYPEOF(x) == (type) && SHORT_VEC_LENGTH(x) == 1)
-#else
-# define LENGTH(x)	(((VECSEXP) (x))->vecsxp.length)
-# define TRUELENGTH(x)	(((VECSEXP) (x))->vecsxp.truelength)
-# define XLENGTH(x) LENGTH(x)
-# define XTRUELENGTH(x) TRUELENGTH(x)
-# define SETLENGTH(x,v)		((((VECSEXP) (x))->vecsxp.length)=(v))
-# define SET_TRUELENGTH(x,v)	((((VECSEXP) (x))->vecsxp.truelength)=(v))
-# define SET_SHORT_VEC_LENGTH SETLENGTH
-# define SET_SHORT_VEC_TRUELENGTH SET_TRUELENGTH
-# define IS_LONG_VEC(x) 0
-# define IS_SCALAR(x, type) (TYPEOF(x) == (type) && LENGTH(x) == 1)
-#endif
-
-/* Under the generational allocator the data for vector nodes comes
-   immediately after the node structure, so the data address is a
-   known offset from the node SEXP. */
-#define DATAPTR(x)	(((SEXPREC_ALIGN *) (x)) + 1)
-#define CHAR(x)		((const char *) DATAPTR(x))
-#define LOGICAL(x)	((int *) DATAPTR(x))
-#define INTEGER(x)	((int *) DATAPTR(x))
-#define RAW(x)		((Rbyte *) DATAPTR(x))
-#define COMPLEX(x)	((Rcomplex *) DATAPTR(x))
-#define REAL(x)		((double *) DATAPTR(x))
-#define STRING_ELT(x,i)	((SEXP *) DATAPTR(x))[i]
-#define VECTOR_ELT(x,i)	((SEXP *) DATAPTR(x))[i]
-#define STRING_PTR(x)	((SEXP *) DATAPTR(x))
-#define VECTOR_PTR(x)	((SEXP *) DATAPTR(x))
-
-/* List Access Macros */
-/* These also work for ... objects */
-#define LISTVAL(x)	((x)->u.listsxp)
-#define TAG(e)		((e)->u.listsxp.tagval)
-#define CAR(e)		((e)->u.listsxp.carval)
-#define CDR(e)		((e)->u.listsxp.cdrval)
-#define CAAR(e)		CAR(CAR(e))
-#define CDAR(e)		CDR(CAR(e))
-#define CADR(e)		CAR(CDR(e))
-#define CDDR(e)		CDR(CDR(e))
-#define CADDR(e)	CAR(CDR(CDR(e)))
-#define CADDDR(e)	CAR(CDR(CDR(CDR(e))))
-#define CAD4R(e)	CAR(CDR(CDR(CDR(CDR(e)))))
-#define MISSING_MASK	15 /* reserve 4 bits--only 2 uses now */
-#define MISSING(x)	((x)->sxpinfo.gp & MISSING_MASK)/* for closure calls */
-#define SET_MISSING(x,v) do { \
-  SEXP __x__ = (x); \
-  int __v__ = (v); \
-  int __other_flags__ = __x__->sxpinfo.gp & ~MISSING_MASK; \
-  __x__->sxpinfo.gp = __other_flags__ | __v__; \
-} while (0)
-
-/* Closure Access Macros */
-#define FORMALS(x)	((x)->u.closxp.formals)
-#define BODY(x)		((x)->u.closxp.body)
-#define CLOENV(x)	((x)->u.closxp.env)
-#define RDEBUG(x)	((x)->sxpinfo.debug)
-#define SET_RDEBUG(x,v)	(((x)->sxpinfo.debug)=(v))
-#define RSTEP(x)	((x)->sxpinfo.spare)
-#define SET_RSTEP(x,v)	(((x)->sxpinfo.spare)=(v))
-
-/* Symbol Access Macros */
-#define PRINTNAME(x)	((x)->u.symsxp.pname)
-#define SYMVALUE(x)	((x)->u.symsxp.value)
-#define INTERNAL(x)	((x)->u.symsxp.internal)
-#define DDVAL_MASK	1
-#define DDVAL(x)	((x)->sxpinfo.gp & DDVAL_MASK) /* for ..1, ..2 etc */
-#define SET_DDVAL_BIT(x) (((x)->sxpinfo.gp) |= DDVAL_MASK)
-#define UNSET_DDVAL_BIT(x) (((x)->sxpinfo.gp) &= ~DDVAL_MASK)
-#define SET_DDVAL(x,v) ((v) ? SET_DDVAL_BIT(x) : UNSET_DDVAL_BIT(x)) /* for ..1, ..2 etc */
-
-/* Environment Access Macros */
-#define FRAME(x)	((x)->u.envsxp.frame)
-#define ENCLOS(x)	((x)->u.envsxp.enclos)
-#define HASHTAB(x)	((x)->u.envsxp.hashtab)
-#define ENVFLAGS(x)	((x)->sxpinfo.gp)	/* for environments */
-#define SET_ENVFLAGS(x,v)	(((x)->sxpinfo.gp)=(v))
-
-#else /* not USE_RINTERNALS */
-// ======================= not USE_RINTERNALS section
-
-#ifdef FASTR
-#include <jni.h>
-typedef jobject SEXP;
-#else
-typedef struct SEXPREC *SEXP;
-#endif
-
-
-#define CHAR(x)		R_CHAR(x)
-const char *(R_CHAR)(SEXP x);
-
-/* Various tests with macro versions in the USE_RINTERNALS section */
-Rboolean (Rf_isNull)(SEXP s);
-Rboolean (Rf_isSymbol)(SEXP s);
-Rboolean (Rf_isLogical)(SEXP s);
-Rboolean (Rf_isReal)(SEXP s);
-Rboolean (Rf_isComplex)(SEXP s);
-Rboolean (Rf_isExpression)(SEXP s);
-Rboolean (Rf_isEnvironment)(SEXP s);
-Rboolean (Rf_isString)(SEXP s);
-Rboolean (Rf_isObject)(SEXP s);
-
-# define IS_SCALAR(x, type) (TYPEOF(x) == (type) && XLENGTH(x) == 1)
-#endif /* USE_RINTERNALS */
-
-#define NAMEDMAX 2
-#define INCREMENT_NAMED(x) do {				\
-	SEXP __x__ = (x);				\
-	if (NAMED(__x__) != NAMEDMAX)			\
-	    SET_NAMED(__x__, NAMED(__x__) + 1);		\
-    } while (0)
-
-#if defined(COMPUTE_REFCNT_VALUES)
-# define SET_REFCNT(x,v) (REFCNT(x) = (v))
-# if defined(EXTRA_REFCNT_FIELDS)
-#  define SET_TRACKREFS(x,v) (TRACKREFS(x) = (v))
-# else
-#  define SET_TRACKREFS(x,v) ((x)->sxpinfo.spare = ! (v))
-# endif
-# define DECREMENT_REFCNT(x) do {					\
-	SEXP drc__x__ = (x);						\
-	if (REFCNT(drc__x__) > 0 && REFCNT(drc__x__) < REFCNTMAX)	\
-	    SET_REFCNT(drc__x__, REFCNT(drc__x__) - 1);			\
-    } while (0)
-# define INCREMENT_REFCNT(x) do {			      \
-	SEXP irc__x__ = (x);				      \
-	if (REFCNT(irc__x__) < REFCNTMAX)		      \
-	    SET_REFCNT(irc__x__, REFCNT(irc__x__) + 1);	      \
-    } while (0)
-#else
-# define SET_REFCNT(x,v) do {} while(0)
-# define SET_TRACKREFS(x,v) do {} while(0)
-# define DECREMENT_REFCNT(x) do {} while(0)
-# define INCREMENT_REFCNT(x) do {} while(0)
-#endif
-
-#define ENABLE_REFCNT(x) SET_TRACKREFS(x, TRUE)
-#define DISABLE_REFCNT(x) SET_TRACKREFS(x, FALSE)
-
-/* Macros for some common idioms. */
-#ifdef SWITCH_TO_REFCNT
-# define MAYBE_SHARED(x) (REFCNT(x) > 1)
-# define NO_REFERENCES(x) (REFCNT(x) == 0)
-# define MARK_NOT_MUTABLE(x) SET_REFCNT(x, REFCNTMAX)
-#else
-# define MAYBE_SHARED(x) (NAMED(x) > 1)
-# define NO_REFERENCES(x) (NAMED(x) == 0)
-# define MARK_NOT_MUTABLE(x) SET_NAMED(x, NAMEDMAX)
-#endif
-#define MAYBE_REFERENCED(x) (! NO_REFERENCES(x))
-
-/* Accessor functions.  Many are declared using () to avoid the macro
-   definitions in the USE_RINTERNALS section.
-   The function STRING_ELT is used as an argument to arrayAssign even
-   if the macro version is in use.
-*/
-
-/* General Cons Cell Attributes */
-SEXP (ATTRIB)(SEXP x);
-int  (OBJECT)(SEXP x);
-int  (MARK)(SEXP x);
-int  (TYPEOF)(SEXP x);
-int  (NAMED)(SEXP x);
-int  (REFCNT)(SEXP x);
-void (SET_OBJECT)(SEXP x, int v);
-void (SET_TYPEOF)(SEXP x, int v);
-void (SET_NAMED)(SEXP x, int v);
-void SET_ATTRIB(SEXP x, SEXP v);
-void DUPLICATE_ATTRIB(SEXP to, SEXP from);
-
-/* S4 object testing */
-int (IS_S4_OBJECT)(SEXP x);
-void (SET_S4_OBJECT)(SEXP x);
-void (UNSET_S4_OBJECT)(SEXP x);
-
-/* Vector Access Functions */
-int  (LENGTH)(SEXP x);
-int  (TRUELENGTH)(SEXP x);
-void (SETLENGTH)(SEXP x, int v);
-void (SET_TRUELENGTH)(SEXP x, int v);
-R_xlen_t  (XLENGTH)(SEXP x);
-R_xlen_t  (XTRUELENGTH)(SEXP x);
-int  (IS_LONG_VEC)(SEXP x);
-int  (LEVELS)(SEXP x);
-int  (SETLEVELS)(SEXP x, int v);
-
-int  *(LOGICAL)(SEXP x);
-int  *(INTEGER)(SEXP x);
-Rbyte *(RAW)(SEXP x);
-double *(REAL)(SEXP x);
-Rcomplex *(COMPLEX)(SEXP x);
-SEXP (STRING_ELT)(SEXP x, R_xlen_t i);
-SEXP (VECTOR_ELT)(SEXP x, R_xlen_t i);
-void SET_STRING_ELT(SEXP x, R_xlen_t i, SEXP v);
-SEXP SET_VECTOR_ELT(SEXP x, R_xlen_t i, SEXP v);
-SEXP *(STRING_PTR)(SEXP x);
-SEXP *(VECTOR_PTR)(SEXP x);
-
-/* List Access Functions */
-/* These also work for ... objects */
-#define CONS(a, b)	cons((a), (b))		/* data lists */
-#define LCONS(a, b)	lcons((a), (b))		/* language lists */
-SEXP (TAG)(SEXP e);
-SEXP (CAR)(SEXP e);
-SEXP (CDR)(SEXP e);
-SEXP (CAAR)(SEXP e);
-SEXP (CDAR)(SEXP e);
-SEXP (CADR)(SEXP e);
-SEXP (CDDR)(SEXP e);
-SEXP (CADDR)(SEXP e);
-SEXP (CADDDR)(SEXP e);
-SEXP (CAD4R)(SEXP e);
-int  (MISSING)(SEXP x);
-void (SET_MISSING)(SEXP x, int v);
-void SET_TAG(SEXP x, SEXP y);
-SEXP SETCAR(SEXP x, SEXP y);
-SEXP SETCDR(SEXP x, SEXP y);
-SEXP SETCADR(SEXP x, SEXP y);
-SEXP SETCADDR(SEXP x, SEXP y);
-SEXP SETCADDDR(SEXP x, SEXP y);
-SEXP SETCAD4R(SEXP e, SEXP y);
-
-SEXP CONS_NR(SEXP a, SEXP b);
-
-/* Closure Access Functions */
-SEXP (FORMALS)(SEXP x);
-SEXP (BODY)(SEXP x);
-SEXP (CLOENV)(SEXP x);
-int  (RDEBUG)(SEXP x);
-int  (RSTEP)(SEXP x);
-int  (RTRACE)(SEXP x);
-void (SET_RDEBUG)(SEXP x, int v);
-void (SET_RSTEP)(SEXP x, int v);
-void (SET_RTRACE)(SEXP x, int v);
-void SET_FORMALS(SEXP x, SEXP v);
-void SET_BODY(SEXP x, SEXP v);
-void SET_CLOENV(SEXP x, SEXP v);
-
-/* Symbol Access Functions */
-SEXP (PRINTNAME)(SEXP x);
-SEXP (SYMVALUE)(SEXP x);
-SEXP (INTERNAL)(SEXP x);
-int  (DDVAL)(SEXP x);
-void (SET_DDVAL)(SEXP x, int v);
-void SET_PRINTNAME(SEXP x, SEXP v);
-void SET_SYMVALUE(SEXP x, SEXP v);
-void SET_INTERNAL(SEXP x, SEXP v);
-
-/* Environment Access Functions */
-SEXP (FRAME)(SEXP x);
-SEXP (ENCLOS)(SEXP x);
-SEXP (HASHTAB)(SEXP x);
-int  (ENVFLAGS)(SEXP x);
-void (SET_ENVFLAGS)(SEXP x, int v);
-void SET_FRAME(SEXP x, SEXP v);
-void SET_ENCLOS(SEXP x, SEXP v);
-void SET_HASHTAB(SEXP x, SEXP v);
-
-/* Promise Access Functions */
-/* First five have macro versions in Defn.h */
-SEXP (PRCODE)(SEXP x);
-SEXP (PRENV)(SEXP x);
-SEXP (PRVALUE)(SEXP x);
-int  (PRSEEN)(SEXP x);
-void (SET_PRSEEN)(SEXP x, int v);
-void SET_PRENV(SEXP x, SEXP v);
-void SET_PRVALUE(SEXP x, SEXP v);
-void SET_PRCODE(SEXP x, SEXP v);
-void SET_PRSEEN(SEXP x, int v);
-
-/* Hashing Functions */
-/* There are macro versions in Defn.h */
-int  (HASHASH)(SEXP x);
-int  (HASHVALUE)(SEXP x);
-void (SET_HASHASH)(SEXP x, int v);
-void (SET_HASHVALUE)(SEXP x, int v);
-
-
-/* External pointer access macros */
-#define EXTPTR_PTR(x)	CAR(x)
-#define EXTPTR_PROT(x)	CDR(x)
-#define EXTPTR_TAG(x)	TAG(x)
-
-/* Bytecode access macros */
-#define BCODE_CODE(x)	CAR(x)
-#define BCODE_CONSTS(x) CDR(x)
-#define BCODE_EXPR(x)	TAG(x)
-#define isByteCode(x)	(TYPEOF(x)==BCODESXP)
-
-/* Pointer Protection and Unprotection */
-#define PROTECT(s)	Rf_protect(s)
-#define UNPROTECT(n)	Rf_unprotect(n)
-#define UNPROTECT_PTR(s)	Rf_unprotect_ptr(s)
-
-/* We sometimes need to coerce a protected value and place the new
-   coerced value under protection.  For these cases PROTECT_WITH_INDEX
-   saves an index of the protection location that can be used to
-   replace the protected value using REPROTECT. */
-typedef int PROTECT_INDEX;
-#define PROTECT_WITH_INDEX(x,i) R_ProtectWithIndex(x,i)
-#define REPROTECT(x,i) R_Reprotect(x,i)
-
-/* Evaluation Environment */
-LibExtern SEXP	R_GlobalEnv;	    /* The "global" environment */
-
-LibExtern SEXP  R_EmptyEnv;	    /* An empty environment at the root of the
-				    	environment tree */
-LibExtern SEXP  R_BaseEnv;	    /* The base environment; formerly R_NilValue */
-LibExtern SEXP	R_BaseNamespace;    /* The (fake) namespace for base */
-LibExtern SEXP	R_NamespaceRegistry;/* Registry for registered namespaces */
-
-LibExtern SEXP	R_Srcref;           /* Current srcref, for debuggers */
-
-/* Special Values */
-LibExtern SEXP	R_NilValue;	    /* The nil object */
-LibExtern SEXP	R_UnboundValue;	    /* Unbound marker */
-LibExtern SEXP	R_MissingArg;	    /* Missing argument marker */
-#ifdef __MAIN__
-attribute_hidden
-#else
-extern
-#endif
-SEXP	R_RestartToken;     /* Marker for restarted function calls */
-
-/* Symbol Table Shortcuts */
-LibExtern SEXP	R_Bracket2Symbol;   /* "[[" */
-LibExtern SEXP	R_BracketSymbol;    /* "[" */
-LibExtern SEXP	R_BraceSymbol;      /* "{" */
-LibExtern SEXP	R_ClassSymbol;	    /* "class" */
-LibExtern SEXP	R_DeviceSymbol;     /* ".Device" */
-LibExtern SEXP	R_DimNamesSymbol;   /* "dimnames" */
-LibExtern SEXP	R_DimSymbol;	    /* "dim" */
-LibExtern SEXP	R_DollarSymbol;	    /* "$" */
-LibExtern SEXP	R_DotsSymbol;	    /* "..." */
-LibExtern SEXP	R_DropSymbol;	    /* "drop" */
-LibExtern SEXP	R_LastvalueSymbol;  /* ".Last.value" */
-LibExtern SEXP	R_LevelsSymbol;	    /* "levels" */
-LibExtern SEXP	R_ModeSymbol;	    /* "mode" */
-LibExtern SEXP	R_NameSymbol;	    /* "name" */
-LibExtern SEXP	R_NamesSymbol;	    /* "names" */
-LibExtern SEXP	R_NaRmSymbol;	    /* "na.rm" */
-LibExtern SEXP  R_PackageSymbol;    /* "package" */
-LibExtern SEXP  R_QuoteSymbol;	    /* "quote" */
-LibExtern SEXP	R_RowNamesSymbol;   /* "row.names" */
-LibExtern SEXP	R_SeedsSymbol;	    /* ".Random.seed" */
-LibExtern SEXP	R_SourceSymbol;     /* "source" */
-LibExtern SEXP	R_TspSymbol;	    /* "tsp" */
-
-LibExtern SEXP  R_dot_defined;      /* ".defined" */
-LibExtern SEXP  R_dot_Method;       /* ".Method" */
-LibExtern SEXP  R_dot_target;       /* ".target" */
-
-/* Missing Values - others from Arith.h */
-#define NA_STRING	R_NaString
-LibExtern SEXP	R_NaString;	    /* NA_STRING as a CHARSXP */
-LibExtern SEXP	R_BlankString;	    /* "" as a CHARSXP */
-
-/* srcref related functions */
-SEXP R_GetCurrentSrcref(int);
-SEXP R_GetSrcFilename(SEXP);
-
-/*--- FUNCTIONS ------------------------------------------------------ */
-
-/* Type Coercions of all kinds */
-
-SEXP Rf_asChar(SEXP);
-SEXP Rf_coerceVector(SEXP, SEXPTYPE);
-SEXP Rf_PairToVectorList(SEXP x);
-SEXP Rf_VectorToPairList(SEXP x);
-SEXP Rf_asCharacterFactor(SEXP x);
-int Rf_asLogical(SEXP x);
-int Rf_asInteger(SEXP x);
-double Rf_asReal(SEXP x);
-Rcomplex Rf_asComplex(SEXP x);
-
-
-#ifndef R_ALLOCATOR_TYPE
-#define R_ALLOCATOR_TYPE
-typedef struct R_allocator R_allocator_t;
-#endif
-
-/* Other Internally Used Functions, excluding those which are inline-able*/
-
-char * Rf_acopy_string(const char *);
-SEXP Rf_alloc3DArray(SEXPTYPE, int, int, int);
-SEXP Rf_allocArray(SEXPTYPE, SEXP);
-SEXP Rf_allocMatrix(SEXPTYPE, int, int);
-SEXP Rf_allocList(int);
-SEXP Rf_allocS4Object(void);
-SEXP Rf_allocSExp(SEXPTYPE);
-SEXP Rf_allocVector3(SEXPTYPE, R_xlen_t, R_allocator_t*);
-R_xlen_t Rf_any_duplicated(SEXP x, Rboolean from_last);
-R_xlen_t Rf_any_duplicated3(SEXP x, SEXP incomp, Rboolean from_last);
-SEXP Rf_applyClosure(SEXP, SEXP, SEXP, SEXP, SEXP);
-SEXP Rf_arraySubscript(int, SEXP, SEXP, SEXP (*)(SEXP,SEXP),
-                       SEXP (*)(SEXP, int), SEXP);
-SEXP Rf_classgets(SEXP, SEXP);
-SEXP Rf_cons(SEXP, SEXP);
-void Rf_copyMatrix(SEXP, SEXP, Rboolean);
-void Rf_copyListMatrix(SEXP, SEXP, Rboolean);
-void Rf_copyMostAttrib(SEXP, SEXP);
-void Rf_copyVector(SEXP, SEXP);
-int Rf_countContexts(int, int);
-SEXP Rf_CreateTag(SEXP);
-void Rf_defineVar(SEXP, SEXP, SEXP);
-SEXP Rf_dimgets(SEXP, SEXP);
-SEXP Rf_dimnamesgets(SEXP, SEXP);
-SEXP Rf_DropDims(SEXP);
-SEXP Rf_duplicate(SEXP);
-SEXP Rf_shallow_duplicate(SEXP);
-SEXP Rf_lazy_duplicate(SEXP);
-/* the next really should not be here and is also in Defn.h */
-SEXP Rf_duplicated(SEXP, Rboolean);
-Rboolean R_envHasNoSpecialSymbols(SEXP);
-SEXP Rf_eval(SEXP, SEXP);
-SEXP Rf_findFun(SEXP, SEXP);
-SEXP Rf_findVar(SEXP, SEXP);
-SEXP Rf_findVarInFrame(SEXP, SEXP);
-SEXP Rf_findVarInFrame3(SEXP, SEXP, Rboolean);
-SEXP Rf_getAttrib(SEXP, SEXP);
-SEXP Rf_GetArrayDimnames(SEXP);
-SEXP Rf_GetColNames(SEXP);
-void Rf_GetMatrixDimnames(SEXP, SEXP*, SEXP*, const char**, const char**);
-SEXP Rf_GetOption(SEXP, SEXP); /* pre-2.13.0 compatibility */
-SEXP Rf_GetOption1(SEXP);
-int Rf_GetOptionDigits(void);
-int Rf_GetOptionWidth(void);
-SEXP Rf_GetRowNames(SEXP);
-void Rf_gsetVar(SEXP, SEXP, SEXP);
-SEXP Rf_install(const char *);
-Rboolean Rf_isFree(SEXP);
-Rboolean Rf_isOrdered(SEXP);
-Rboolean Rf_isUnordered(SEXP);
-Rboolean Rf_isUnsorted(SEXP, Rboolean);
-SEXP Rf_lengthgets(SEXP, R_len_t);
-SEXP Rf_xlengthgets(SEXP, R_xlen_t);
-SEXP R_lsInternal(SEXP, Rboolean);
-SEXP Rf_match(SEXP, SEXP, int);
-SEXP Rf_matchE(SEXP, SEXP, int, SEXP);
-SEXP Rf_namesgets(SEXP, SEXP);
-SEXP Rf_mkChar(const char *);
-SEXP Rf_mkCharLen(const char *, int);
-Rboolean Rf_NonNullStringMatch(SEXP, SEXP);
-int Rf_ncols(SEXP);
-int Rf_nrows(SEXP);
-SEXP Rf_nthcdr(SEXP, int);
-
-Rboolean Rf_pmatch(SEXP, SEXP, Rboolean);
-Rboolean Rf_psmatch(const char *, const char *, Rboolean);
-void Rf_PrintValue(SEXP);
-#ifndef INLINE_PROTECT
-SEXP Rf_protect(SEXP);
-#endif
-SEXP Rf_setAttrib(SEXP, SEXP, SEXP);
-void Rf_setSVector(SEXP*, int, SEXP);
-void Rf_setVar(SEXP, SEXP, SEXP);
-SEXPTYPE Rf_str2type(const char *);
-Rboolean Rf_StringBlank(SEXP);
-SEXP Rf_substitute(SEXP,SEXP);
-const char * Rf_translateChar(SEXP);
-const char * Rf_translateChar0(SEXP);
-const char * Rf_translateCharUTF8(SEXP);
-const char * Rf_type2char(SEXPTYPE);
-SEXP Rf_type2str(SEXPTYPE);
-#ifndef INLINE_PROTECT
-void Rf_unprotect(int);
-#endif
-void Rf_unprotect_ptr(SEXP);
-
-void R_signal_protect_error(void);
-void R_signal_unprotect_error(void);
-void R_signal_reprotect_error(PROTECT_INDEX i);
-
-#ifndef INLINE_PROTECT
-void R_ProtectWithIndex(SEXP, PROTECT_INDEX *);
-void R_Reprotect(SEXP, PROTECT_INDEX);
-#endif
-SEXP R_tryEval(SEXP, SEXP, int *);
-SEXP R_tryEvalSilent(SEXP, SEXP, int *);
-const char *R_curErrorBuf();
-
-Rboolean Rf_isS4(SEXP);
-SEXP Rf_asS4(SEXP, Rboolean, int);
-SEXP Rf_S3Class(SEXP);
-int Rf_isBasicClass(const char *);
-
-Rboolean R_cycle_detected(SEXP s, SEXP child);
-
-typedef enum {
-    CE_NATIVE = 0,
-    CE_UTF8   = 1,
-    CE_LATIN1 = 2,
-    CE_BYTES  = 3,
-    CE_SYMBOL = 5,
-    CE_ANY    =99
-} cetype_t;
-
-cetype_t Rf_getCharCE(SEXP);
-SEXP Rf_mkCharCE(const char *, cetype_t);
-SEXP Rf_mkCharLenCE(const char *, int, cetype_t);
-const char *Rf_reEnc(const char *x, cetype_t ce_in, cetype_t ce_out, int subst);
-
-				/* return(.) NOT reached : for -Wall */
-#define error_return(msg)	{ Rf_error(msg);	   return R_NilValue; }
-#define errorcall_return(cl,msg){ Rf_errorcall(cl, msg);   return R_NilValue; }
-
-#ifdef __MAIN__
-#undef extern
-#undef LibExtern
-#endif
-
-/* External pointer interface */
-SEXP R_MakeExternalPtr(void *p, SEXP tag, SEXP prot);
-void *R_ExternalPtrAddr(SEXP s);
-SEXP R_ExternalPtrTag(SEXP s);
-SEXP R_ExternalPtrProtected(SEXP s);
-void R_ClearExternalPtr(SEXP s);
-void R_SetExternalPtrAddr(SEXP s, void *p);
-void R_SetExternalPtrTag(SEXP s, SEXP tag);
-void R_SetExternalPtrProtected(SEXP s, SEXP p);
-
-/* Finalization interface */
-typedef void (*R_CFinalizer_t)(SEXP);
-void R_RegisterFinalizer(SEXP s, SEXP fun);
-void R_RegisterCFinalizer(SEXP s, R_CFinalizer_t fun);
-void R_RegisterFinalizerEx(SEXP s, SEXP fun, Rboolean onexit);
-void R_RegisterCFinalizerEx(SEXP s, R_CFinalizer_t fun, Rboolean onexit);
-void R_RunPendingFinalizers(void);
-
-/* Weak reference interface */
-SEXP R_MakeWeakRef(SEXP key, SEXP val, SEXP fin, Rboolean onexit);
-SEXP R_MakeWeakRefC(SEXP key, SEXP val, R_CFinalizer_t fin, Rboolean onexit);
-SEXP R_WeakRefKey(SEXP w);
-SEXP R_WeakRefValue(SEXP w);
-void R_RunWeakRefFinalizer(SEXP w);
-
-SEXP R_PromiseExpr(SEXP);
-SEXP R_ClosureExpr(SEXP);
-void R_initialize_bcode(void);
-SEXP R_bcEncode(SEXP);
-SEXP R_bcDecode(SEXP);
-#define PREXPR(e) R_PromiseExpr(e)
-#define BODY_EXPR(e) R_ClosureExpr(e)
-
-/* Protected evaluation */
-Rboolean R_ToplevelExec(void (*fun)(void *), void *data);
-SEXP R_ExecWithCleanup(SEXP (*fun)(void *), void *data,
-		       void (*cleanfun)(void *), void *cleandata);
-
-/* Environment and Binding Features */
-void R_RestoreHashCount(SEXP rho);
-Rboolean R_IsPackageEnv(SEXP rho);
-SEXP R_PackageEnvName(SEXP rho);
-SEXP R_FindPackageEnv(SEXP info);
-Rboolean R_IsNamespaceEnv(SEXP rho);
-SEXP R_NamespaceEnvSpec(SEXP rho);
-SEXP R_FindNamespace(SEXP info);
-void R_LockEnvironment(SEXP env, Rboolean bindings);
-Rboolean R_EnvironmentIsLocked(SEXP env);
-void R_LockBinding(SEXP sym, SEXP env);
-void R_unLockBinding(SEXP sym, SEXP env);
-void R_MakeActiveBinding(SEXP sym, SEXP fun, SEXP env);
-Rboolean R_BindingIsLocked(SEXP sym, SEXP env);
-Rboolean R_BindingIsActive(SEXP sym, SEXP env);
-Rboolean R_HasFancyBindings(SEXP rho);
-
-
-/* ../main/errors.c : */
-/* needed for R_load/savehistory handling in front ends */
-#if defined(__GNUC__) && __GNUC__ >= 3
-void Rf_errorcall(SEXP, const char *, ...) __attribute__((noreturn));
-#else
-void Rf_errorcall(SEXP, const char *, ...);
-#endif
-void Rf_warningcall(SEXP, const char *, ...);
-void Rf_warningcall_immediate(SEXP, const char *, ...);
-
-/* Save/Load Interface */
-#define R_XDR_DOUBLE_SIZE 8
-#define R_XDR_INTEGER_SIZE 4
-
-void R_XDREncodeDouble(double d, void *buf);
-double R_XDRDecodeDouble(void *buf);
-void R_XDREncodeInteger(int i, void *buf);
-int R_XDRDecodeInteger(void *buf);
-
-typedef void *R_pstream_data_t;
-
-typedef enum {
-    R_pstream_any_format,
-    R_pstream_ascii_format,
-    R_pstream_binary_format,
-    R_pstream_xdr_format
-} R_pstream_format_t;
-
-typedef struct R_outpstream_st *R_outpstream_t;
-struct R_outpstream_st {
-    R_pstream_data_t data;
-    R_pstream_format_t type;
-    int version;
-    void (*OutChar)(R_outpstream_t, int);
-    void (*OutBytes)(R_outpstream_t, void *, int);
-    SEXP (*OutPersistHookFunc)(SEXP, SEXP);
-    SEXP OutPersistHookData;
-};
-
-typedef struct R_inpstream_st *R_inpstream_t;
-struct R_inpstream_st {
-    R_pstream_data_t data;
-    R_pstream_format_t type;
-    int (*InChar)(R_inpstream_t);
-    void (*InBytes)(R_inpstream_t, void *, int);
-    SEXP (*InPersistHookFunc)(SEXP, SEXP);
-    SEXP InPersistHookData;
-};
-
-void R_InitInPStream(R_inpstream_t stream, R_pstream_data_t data,
-		     R_pstream_format_t type,
-		     int (*inchar)(R_inpstream_t),
-		     void (*inbytes)(R_inpstream_t, void *, int),
-		     SEXP (*phook)(SEXP, SEXP), SEXP pdata);
-void R_InitOutPStream(R_outpstream_t stream, R_pstream_data_t data,
-		      R_pstream_format_t type, int version,
-		      void (*outchar)(R_outpstream_t, int),
-		      void (*outbytes)(R_outpstream_t, void *, int),
-		      SEXP (*phook)(SEXP, SEXP), SEXP pdata);
-
-void R_InitFileInPStream(R_inpstream_t stream, FILE *fp,
-			 R_pstream_format_t type,
-			 SEXP (*phook)(SEXP, SEXP), SEXP pdata);
-void R_InitFileOutPStream(R_outpstream_t stream, FILE *fp,
-			  R_pstream_format_t type, int version,
-			  SEXP (*phook)(SEXP, SEXP), SEXP pdata);
-
-#ifdef NEED_CONNECTION_PSTREAMS
-/* The connection interface is not available to packages.  To
-   allow limited use of connection pointers this defines the opaque
-   pointer type. */
-#ifndef HAVE_RCONNECTION_TYPEDEF
-typedef struct Rconn  *Rconnection;
-#define HAVE_RCONNECTION_TYPEDEF
-#endif
-void R_InitConnOutPStream(R_outpstream_t stream, Rconnection con,
-			  R_pstream_format_t type, int version,
-			  SEXP (*phook)(SEXP, SEXP), SEXP pdata);
-void R_InitConnInPStream(R_inpstream_t stream,  Rconnection con,
-			 R_pstream_format_t type,
-			 SEXP (*phook)(SEXP, SEXP), SEXP pdata);
-#endif
-
-void R_Serialize(SEXP s, R_outpstream_t ops);
-SEXP R_Unserialize(R_inpstream_t ips);
-
-/* slot management (in attrib.c) */
-SEXP R_do_slot(SEXP obj, SEXP name);
-SEXP R_do_slot_assign(SEXP obj, SEXP name, SEXP value);
-int R_has_slot(SEXP obj, SEXP name);
-
-/* class definition, new objects (objects.c) */
-SEXP R_do_MAKE_CLASS(const char *what);
-SEXP R_getClassDef  (const char *what);
-SEXP R_do_new_object(SEXP class_def);
-/* supporting  a C-level version of  is(., .) : */
-int R_check_class_and_super(SEXP x, const char **valid, SEXP rho);
-int R_check_class_etc      (SEXP x, const char **valid);
-
-/* preserve objects across GCs */
-void R_PreserveObject(SEXP);
-void R_ReleaseObject(SEXP);
-
-/* Shutdown actions */
-void R_dot_Last(void);		/* in main.c */
-void R_RunExitFinalizers(void);	/* in memory.c */
-
-/* Replacements for popen and system */
-#ifdef HAVE_POPEN
-FILE *R_popen(const char *, const char *);
-#endif
-int R_system(const char *);
-
-/* R_compute_identical:  C version of identical() function
-   The third arg to R_compute_identical() consists of bitmapped flags for non-default options:
-   currently all default to TRUE, so the flag is set for FALSE values:
-   1 = !NUM_EQ
-   2 = !SINGLE_NA
-   4 = !ATTR_AS_SET
-   8 = !IGNORE_BYTECODE
-*/
-Rboolean R_compute_identical(SEXP, SEXP, int);
-
-/* C version of R's  indx <- order(..., na.last, decreasing) :
-   e.g.  arglist = Rf_lang2(x,y)  or  Rf_lang3(x,y,z) */
-void R_orderVector(int *indx, int n, SEXP arglist, Rboolean nalast, Rboolean decreasing);
-
-#ifndef R_NO_REMAP
-#define acopy_string		Rf_acopy_string
-#define alloc3DArray            Rf_alloc3DArray
-#define allocArray		Rf_allocArray
-#define allocList		Rf_allocList
-#define allocMatrix		Rf_allocMatrix
-#define allocS4Object		Rf_allocS4Object
-#define allocSExp		Rf_allocSExp
-#define allocVector		Rf_allocVector
-#define allocVector3		Rf_allocVector3
-#define any_duplicated		Rf_any_duplicated
-#define any_duplicated3		Rf_any_duplicated3
-#define applyClosure		Rf_applyClosure
-#define arraySubscript		Rf_arraySubscript
-#define asChar			Rf_asChar
-#define asCharacterFactor	Rf_asCharacterFactor
-#define asComplex		Rf_asComplex
-#define asInteger		Rf_asInteger
-#define asLogical		Rf_asLogical
-#define asReal			Rf_asReal
-#define asS4			Rf_asS4
-#define classgets		Rf_classgets
-#define coerceVector		Rf_coerceVector
-#define conformable		Rf_conformable
-#define cons			Rf_cons
-#define copyListMatrix		Rf_copyListMatrix
-#define copyMatrix		Rf_copyMatrix
-#define copyMostAttrib		Rf_copyMostAttrib
-#define copyVector		Rf_copyVector
-#define countContexts		Rf_countContexts
-#define CreateTag		Rf_CreateTag
-#define defineVar		Rf_defineVar
-#define dimgets			Rf_dimgets
-#define dimnamesgets		Rf_dimnamesgets
-#define DropDims                Rf_DropDims
-#define duplicate		Rf_duplicate
-#define duplicated		Rf_duplicated
-#define elt			Rf_elt
-#define errorcall		Rf_errorcall
-#define eval			Rf_eval
-#define findFun			Rf_findFun
-#define findVar			Rf_findVar
-#define findVarInFrame		Rf_findVarInFrame
-#define findVarInFrame3		Rf_findVarInFrame3
-#define GetArrayDimnames	Rf_GetArrayDimnames
-#define getAttrib		Rf_getAttrib
-#define getCharCE		Rf_getCharCE
-#define GetColNames		Rf_GetColNames
-#define GetMatrixDimnames	Rf_GetMatrixDimnames
-#define GetOption1		Rf_GetOption1
-#define GetOptionDigits		Rf_GetOptionDigits
-#define GetOptionWidth		Rf_GetOptionWidth
-#define GetOption		Rf_GetOption
-#define GetRowNames		Rf_GetRowNames
-#define gsetVar			Rf_gsetVar
-#define inherits		Rf_inherits
-#define install			Rf_install
-#define isArray			Rf_isArray
-#define isBasicClass            Rf_isBasicClass
-#define isComplex		Rf_isComplex
-#define isEnvironment		Rf_isEnvironment
-#define isExpression		Rf_isExpression
-#define isFactor		Rf_isFactor
-#define isFrame			Rf_isFrame
-#define isFree			Rf_isFree
-#define isFunction		Rf_isFunction
-#define isInteger		Rf_isInteger
-#define isLanguage		Rf_isLanguage
-#define isList			Rf_isList
-#define isLogical		Rf_isLogical
-#define isSymbol		Rf_isSymbol
-#define isMatrix		Rf_isMatrix
-#define isNewList		Rf_isNewList
-#define isNull			Rf_isNull
-#define isNumeric		Rf_isNumeric
-#define isNumber		Rf_isNumber
-#define isObject		Rf_isObject
-#define isOrdered		Rf_isOrdered
-#define isPairList		Rf_isPairList
-#define isPrimitive		Rf_isPrimitive
-#define isReal			Rf_isReal
-#define isS4			Rf_isS4
-#define isString		Rf_isString
-#define isTs			Rf_isTs
-#define isUnordered		Rf_isUnordered
-#define isUnsorted		Rf_isUnsorted
-#define isUserBinop		Rf_isUserBinop
-#define isValidString		Rf_isValidString
-#define isValidStringF		Rf_isValidStringF
-#define isVector		Rf_isVector
-#define isVectorAtomic		Rf_isVectorAtomic
-#define isVectorizable		Rf_isVectorizable
-#define isVectorList		Rf_isVectorList
-#define lang1			Rf_lang1
-#define lang2			Rf_lang2
-#define lang3			Rf_lang3
-#define lang4			Rf_lang4
-#define lang5			Rf_lang5
-#define lang6			Rf_lang6
-#define lastElt			Rf_lastElt
-#define lazy_duplicate		Rf_lazy_duplicate
-#define lcons			Rf_lcons
-#define length(x)		Rf_length(x)
-#define lengthgets		Rf_lengthgets
-#define list1			Rf_list1
-#define list2			Rf_list2
-#define list3			Rf_list3
-#define list4			Rf_list4
-#define list5			Rf_list5
-#define listAppend		Rf_listAppend
-#define match			Rf_match
-#define matchE			Rf_matchE
-#define mkChar			Rf_mkChar
-#define mkCharCE		Rf_mkCharCE
-#define mkCharLen		Rf_mkCharLen
-#define mkCharLenCE		Rf_mkCharLenCE
-#define mkNamed			Rf_mkNamed
-#define mkString		Rf_mkString
-#define namesgets		Rf_namesgets
-#define ncols			Rf_ncols
-#define nlevels			Rf_nlevels
-#define NonNullStringMatch	Rf_NonNullStringMatch
-#define nrows			Rf_nrows
-#define nthcdr			Rf_nthcdr
-#define PairToVectorList	Rf_PairToVectorList
-#define pmatch			Rf_pmatch
-#define psmatch			Rf_psmatch
-#define PrintValue		Rf_PrintValue
-#define protect			Rf_protect
-#define reEnc			Rf_reEnc
-#define rownamesgets		Rf_rownamesgets
-#define S3Class                 Rf_S3Class
-#define ScalarComplex		Rf_ScalarComplex
-#define ScalarInteger		Rf_ScalarInteger
-#define ScalarLogical		Rf_ScalarLogical
-#define ScalarReal		Rf_ScalarReal
-#define ScalarString		Rf_ScalarString
-#define ScalarRaw		Rf_ScalarRaw
-#define setAttrib		Rf_setAttrib
-#define setSVector		Rf_setSVector
-#define setVar			Rf_setVar
-#define shallow_duplicate	Rf_shallow_duplicate
-#define str2type		Rf_str2type
-#define StringBlank		Rf_StringBlank
-#define substitute		Rf_substitute
-#define translateChar		Rf_translateChar
-#define translateChar0		Rf_translateChar0
-#define translateCharUTF8      	Rf_translateCharUTF8
-#define type2char		Rf_type2char
-#define type2str		Rf_type2str
-#define unprotect		Rf_unprotect
-#define unprotect_ptr		Rf_unprotect_ptr
-#define VectorToPairList	Rf_VectorToPairList
-#define warningcall		Rf_warningcall
-#define warningcall_immediate	Rf_warningcall_immediate
-#define xlength(x)		Rf_xlength(x)
-#define xlengthgets		Rf_xlengthgets
-
-#endif
-
-#if defined(CALLED_FROM_DEFN_H) && !defined(__MAIN__) && (defined(COMPILING_R) || ( __GNUC__ && !defined(__INTEL_COMPILER) ))
-#include "Rinlinedfuns.h"
-#else
-/* need remapped names here for use with R_NO_REMAP */
-
-/*
-   These are the inlinable functions that are provided in Rinlinedfuns.h
-   It is *essential* that these do not appear in any other header file,
-   with or without the Rf_ prefix.
-*/
-SEXP     Rf_allocVector(SEXPTYPE, R_xlen_t);
-Rboolean Rf_conformable(SEXP, SEXP);
-SEXP	 Rf_elt(SEXP, int);
-Rboolean Rf_inherits(SEXP, const char *);
-Rboolean Rf_isArray(SEXP);
-Rboolean Rf_isFactor(SEXP);
-Rboolean Rf_isFrame(SEXP);
-Rboolean Rf_isFunction(SEXP);
-Rboolean Rf_isInteger(SEXP);
-Rboolean Rf_isLanguage(SEXP);
-Rboolean Rf_isList(SEXP);
-Rboolean Rf_isMatrix(SEXP);
-Rboolean Rf_isNewList(SEXP);
-Rboolean Rf_isNumber(SEXP);
-Rboolean Rf_isNumeric(SEXP);
-Rboolean Rf_isPairList(SEXP);
-Rboolean Rf_isPrimitive(SEXP);
-Rboolean Rf_isTs(SEXP);
-Rboolean Rf_isUserBinop(SEXP);
-Rboolean Rf_isValidString(SEXP);
-Rboolean Rf_isValidStringF(SEXP);
-Rboolean Rf_isVector(SEXP);
-Rboolean Rf_isVectorAtomic(SEXP);
-Rboolean Rf_isVectorList(SEXP);
-Rboolean Rf_isVectorizable(SEXP);
-SEXP	 Rf_lang1(SEXP);
-SEXP	 Rf_lang2(SEXP, SEXP);
-SEXP	 Rf_lang3(SEXP, SEXP, SEXP);
-SEXP	 Rf_lang4(SEXP, SEXP, SEXP, SEXP);
-SEXP	 Rf_lang5(SEXP, SEXP, SEXP, SEXP, SEXP);
-SEXP	 Rf_lang6(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP);
-SEXP	 Rf_lastElt(SEXP);
-SEXP	 Rf_lcons(SEXP, SEXP);
-R_len_t  Rf_length(SEXP);
-SEXP	 Rf_list1(SEXP);
-SEXP	 Rf_list2(SEXP, SEXP);
-SEXP	 Rf_list3(SEXP, SEXP, SEXP);
-SEXP	 Rf_list4(SEXP, SEXP, SEXP, SEXP);
-SEXP	 Rf_list5(SEXP, SEXP, SEXP, SEXP, SEXP);
-SEXP	 Rf_listAppend(SEXP, SEXP);
-SEXP	 Rf_mkNamed(SEXPTYPE, const char **);
-SEXP	 Rf_mkString(const char *);
-int	 Rf_nlevels(SEXP);
-SEXP	 Rf_ScalarComplex(Rcomplex);
-SEXP	 Rf_ScalarInteger(int);
-SEXP	 Rf_ScalarLogical(int);
-SEXP	 Rf_ScalarRaw(Rbyte);
-SEXP	 Rf_ScalarReal(double);
-SEXP	 Rf_ScalarString(SEXP);
-R_xlen_t  Rf_xlength(SEXP);
-# ifdef INLINE_PROTECT
-SEXP Rf_protect(SEXP);
-void Rf_unprotect(int);
-void R_ProtectWithIndex(SEXP, PROTECT_INDEX *);
-void R_Reprotect(SEXP, PROTECT_INDEX);
-# endif
-SEXP R_FixupRHS(SEXP x, SEXP y);
-#endif
-
-#ifdef USE_RINTERNALS
-
-/* Test macros with function versions above */
-#undef isNull
-#define isNull(s)	(TYPEOF(s) == NILSXP)
-#undef isSymbol
-#define isSymbol(s)	(TYPEOF(s) == SYMSXP)
-#undef isLogical
-#define isLogical(s)	(TYPEOF(s) == LGLSXP)
-#undef isReal
-#define isReal(s)	(TYPEOF(s) == REALSXP)
-#undef isComplex
-#define isComplex(s)	(TYPEOF(s) == CPLXSXP)
-#undef isExpression
-#define isExpression(s) (TYPEOF(s) == EXPRSXP)
-#undef isEnvironment
-#define isEnvironment(s) (TYPEOF(s) == ENVSXP)
-#undef isString
-#define isString(s)	(TYPEOF(s) == STRSXP)
-#undef isObject
-#define isObject(s)	(OBJECT(s) != 0)
-
-/* macro version of R_CheckStack */
-#define R_CheckStack() do {						\
-	void R_SignalCStackOverflow(intptr_t);				\
-	int dummy;							\
-	intptr_t usage = R_CStackDir * (R_CStackStart - (uintptr_t)&dummy); \
-	if(R_CStackLimit != -1 && usage > ((intptr_t) R_CStackLimit))	\
-    R_SignalCStackOverflow(usage);				\
-    } while (FALSE)
-#endif
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* R_INTERNALS_H_ */
diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/ffi/RFFI.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/ffi/RFFI.java
index 2965da136b..fe9ea68616 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/ffi/RFFI.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/ffi/RFFI.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/ffi/RFFIFactory.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/ffi/RFFIFactory.java
index a8f5372396..026d07024f 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/ffi/RFFIFactory.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/ffi/RFFIFactory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
diff --git a/mx.fastr/copyrights/overrides b/mx.fastr/copyrights/overrides
index ad9f8e695c..41e5991e9a 100644
--- a/mx.fastr/copyrights/overrides
+++ b/mx.fastr/copyrights/overrides
@@ -1,30 +1,9 @@
 com.oracle.truffle.r.native/builtinlibs/src/fft.c,gnu_r_gentleman_ihaka.copyright
 com.oracle.truffle.r.native/builtinlibs/src/rdummy.c,no.copyright
 com.oracle.truffle.r.native/fficall/jni/src/rfficall.c,gnu_r.copyright
-com.oracle.truffle.r.native/include/jni/R_ext/Applic.h,no.copyright
-com.oracle.truffle.r.native/include/jni/R_ext/Arith.h,no.copyright
-com.oracle.truffle.r.native/include/jni/R_ext/Boolean.h,no.copyright
-com.oracle.truffle.r.native/include/jni/R_ext/BLAS.h,no.copyright
-com.oracle.truffle.r.native/include/jni/R_ext/Callbacks.h,no.copyright
-com.oracle.truffle.r.native/include/jni/R_ext/Complex.h,no.copyright
-com.oracle.truffle.r.native/include/jni/R_ext/Constants.h,no.copyright
-com.oracle.truffle.r.native/include/jni/R_ext/Error.h,no.copyright
-com.oracle.truffle.r.native/include/jni/R_ext/GraphicsDevice.h,no.copyright
-com.oracle.truffle.r.native/include/jni/R_ext/GraphicsEngine.h,no.copyright
-com.oracle.truffle.r.native/include/jni/R_ext/libextern.h,no.copyright
-com.oracle.truffle.r.native/include/jni/R_ext/Linpack.h,no.copyright
-com.oracle.truffle.r.native/include/jni/R_ext/Memory.h,no.copyright
-com.oracle.truffle.r.native/include/jni/R_ext/Print.h,no.copyright
-com.oracle.truffle.r.native/include/jni/R_ext/Random.h,no.copyright
-com.oracle.truffle.r.native/include/jni/R_ext/Rdynload.h,no.copyright
-com.oracle.truffle.r.native/include/jni/R_ext/RS.h,no.copyright
-com.oracle.truffle.r.native/include/jni/R_ext/Utils.h,no.copyright
-com.oracle.truffle.r.native/include/jni/R_ext/Visibility.h,no.copyright
-com.oracle.truffle.r.native/include/jni/libintl.h,no.copyright
-com.oracle.truffle.r.native/include/jni/R.h,no.copyright
-com.oracle.truffle.r.native/include/jni/Rconfig.h,no.copyright
-com.oracle.truffle.r.native/include/jni/Rdefines.h,no.copyright
-com.oracle.truffle.r.native/include/jni/Rinternals.h,gnu_r.copyright
+com.oracle.truffle.r.native/include/jni/src/R_ext/GraphicsDevice.h,no.copyright
+com.oracle.truffle.r.native/include/jni/src/R_ext/GraphicsEngine.h,no.copyright
+com.oracle.truffle.r.native/include/jni/src/libintl.h,no.copyright
 com.oracle.truffle.r.native/library/base/src/registration.c,no.copyright
 com.oracle.truffle.r.native/library/graphics/src/graphics.h,no.copyright
 com.oracle.truffle.r.native/library/graphics/src/init.c,no.copyright
-- 
GitLab