From |uke-t|erney @end|ng |rom u|ow@@edu  Tue Jun  4 18:52:57 2019
From: |uke-t|erney @end|ng |rom u|ow@@edu (Tierney, Luke)
Date: Tue, 4 Jun 2019 16:52:57 +0000
Subject: [Rd] [External] undefined symbol errors when compiling package
 using ALTREP API
In-Reply-To: <CACdkz5-3-Z+YqoMoEwC6LPYFxw_NDRHOQG7x3ymai=PU7OjOoA@mail.gmail.com>
References: <CACdkz5-3-Z+YqoMoEwC6LPYFxw_NDRHOQG7x3ymai=PU7OjOoA@mail.gmail.com>
Message-ID: <alpine.DEB.2.21.1906041150200.2805@luke-Latitude-7480>

On Tue, 4 Jun 2019, Mark Klik wrote:

> Hello,
>
> I'm developing a package (lazyvec) that makes full use of the ALTREP
> framework (R >= 3.6.0).
> One application of the package is to wrap existing ALTREP vectors in a new
> ALTREP vector and pass all calls from R to the contained object. The
> purpose of this is to provide a diagnostic framework for working with
> ALTREP vectors and show information about internal calls.
>
> The package builds on Windows and OSX but fails to build on Linux as can be
> seen from the link to the Travis build:
> https://travis-ci.org/fstpackage/lazyvec/jobs/539442806
>
> The reason of build failure is that many ALTREP methods generate 'undefined
> symbol' errors upon building the package (on Linux). I've checked the R
> source code and the undefined symbols seems to be related to the
> 'attribute_hidden' before the function definition. For example, the method
> 'ALTVEC_EXTRACT_SUBSET' is defined as:
>
> SEXP attribute_hidden ALTVEC_EXTRACT_SUBSET(SEXP x, SEXP indx, SEXP call)
>
> My question is why these differences between Windows / OSX and Linux exist
> and if they are intentional?

It is intentional that this not be part of the public API. This is
true of almost all functions with an ALTREP prefix. You need a
different approach that avoids using these directly.

Best,

luke

> Do I need special build parameters to make sure my package builds correctly
> on Linux?
>
> thanks for all the hard work!
>
> best,
> Mark
>
> PS: some additional info:
>
> package github repository: https://github.com/fstpackage/lazyvec
> AppVeyor package build logs:
> https://ci.appveyor.com/project/fstpackage/lazyvec
> Travis package build logs: https://travis-ci.org/fstpackage/lazyvec/builds
>
> 	[[alternative HTML version deleted]]
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>

-- 
Luke Tierney
Ralph E. Wareham Professor of Mathematical Sciences
University of Iowa                  Phone:             319-335-3386
Department of Statistics and        Fax:               319-335-3017
    Actuarial Science
241 Schaeffer Hall                  email:   luke-tierney at uiowa.edu
Iowa City, IA 52242                 WWW:  http://www.stat.uiowa.edu



[Rd] [External] undefined symbol errors when compiling package using ALTREP API
Tierney, Luke