annotate R/scratch/dynamic_loading.R @ 46:c21d1c2c84e1

- removed pydc.py wrapper overhead (which only called pydcext.so functions, directly, anyways) * implies renaming pydcext.* to pydc.* * while at it, iterate directly over args that are passed in (before we did extract fptr, sig and a tuple for the args and iterated over latter afterwards); we might have a tiny perf improvement now - added type stub as package_data
author Tassilo Philipp
date Fri, 13 Nov 2020 14:10:31 +0100
parents 0cfcc391201f
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
1 #
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
2 # GOAL:
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
3 # automatic unloading when all symbols from a library are free'ed.
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
4 #
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
5 #
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
6 #
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
7 # loading a shared library
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
8
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
9 # low-level R
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
10 x <- dyn.load("/lib/libc.so.6")
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
11 handle <- x[["handle"]]
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
12
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
13
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
14
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
15
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
16 # high-level R in conjunction with R packages
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
17 library.dynam()
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
18
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
19 prot = library
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
20 R_MakeExternalPtr(addr, tag, prot)
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
21
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
22
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
23
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
24
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
25 x <- .dynload("/lib/libc.so.6")
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
26 y <- .dynsym(x, "glBegin")
0cfcc391201f initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
27