chibisi / saucer Goto Github PK
View Code? Open in Web Editor NEWInterop between the R and D programming languages
License: MIT License
Interop between the R and D programming languages
License: MIT License
Compiler options should be set using a environmental variable rather than on each compilation function call for practical reasons.
Complete the implementation of the ExternalPtr
struct interface with R's externalptr and provide examples in the vignettes (link to readme) and make it available for users in the package.
Write documentation for installing on Fedora OS
Implicit conversion of returned RType variable to SEXP for exported function results in a segfault. For example this
@Export("dot_product") SEXP dot(SEXP x_sexp, SEXP y_sexp)
{
size_t n = LENGTH(x_sexp);
assert(n == LENGTH(y_sexp), "Lengths of the input arrays are not equal");
auto x = NumericVector(x_sexp);
auto y = NumericVector(y_sexp);
auto result = NumericVector(1L);
for(long i = 0; i < n; ++i)
{
result[0] += x[i]*y[i];
}
return result;
}
gives a segfault, but this:
@Export("dot_product") auto dot(SEXP x_sexp, SEXP y_sexp)
{
size_t n = LENGTH(x_sexp);
assert(n == LENGTH(y_sexp), "Lengths of the input arrays are not equal");
auto x = NumericVector(x_sexp);
auto y = NumericVector(y_sexp);
auto result = NumericVector(1L);
for(long i = 0; i < n; ++i)
{
result[0] += x[i]*y[i];
}
return result;
}
does not despite the fact that they are both exported.
Currently code gen code in translator is very messy! It uses ~
and ~=
to generate code string when it should be using the std.format: format
function to do this. This will make the function much more readable and so easier to maintain.
Also move import std.stdio: writeln;
in the translator code for R_init_...
/R_unload_...
functions into the actual functions themselves, rather than outside them.
The following needs to be implemented.
For
//Row selection
DataFrame df; df.rows[i..j]
For
(in column order if string)
//DataFrame slicing
DataFrame[i..j, n..m] //where
Both should return a new DataFrame
. As in the current selection mechanism, if
Add detailed documentation for the use of the package. Probably a good idea to use GitHub Wiki.
There should be a test script that runs when you create a PR from dev to main (or any suitable action) to ensure that specific constraints are met.
At the moment if an integer array is submitted to a function requiring a NumericVector
, we get an type error. This needs to change so that integers submitted in R for NumericVector types in D are automatically converted since int[] -> double[] implicit casting is fine.
assert(...)
statements and replace them with enforce(...)
.There should therefore be only two types of errors:
At the moment stringr
is the only dependency in the package. It is a great convenience, but not strictly required so remove it. If anything in a dependency changes, it could otherwise change the status of the package.
Complete the implementation of the Environment
struct interface with R's environment and ensure its compatibility with Functions. Provide examples in the vignettes (link to readme) and make it available for users in the package.
Finish implementing support for R Function interface and make it available in the API:
Insert MIT License text into the package
Write documentation for installing on Ubuntu OS from scratch
Users need some surety when downloading the package that it is what they expect by verifying the checksum. So release V0.4 should have such a feature to allow this check for users.
At the moment the matrix object supports basic indexing operators RMatrix
object.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.