Giter Club home page Giter Club logo

hdf5r's People

Contributors

andrewwbutler avatar dipterix avatar hhoeflin avatar jeroen avatar kalibera avatar mannau avatar rcannood avatar rtobar avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hdf5r's Issues

AdressSanitizer Warning: left shift of negative value

R CMD build .;docker run --cap-add SYS_PTRACE -v "$(pwd):/mnt" f023928cf1d8 /bin/bash -c "cd /mnt; Rdevel CMD check *.tar.gz;cat /mnt/hdf5r.Rcheck/00install.out"
convert.c:2324:58: warning: shifting a negative signed value is undefined [-Wshift-negative-value]
      if((ll_ptr[i] > MAX_INT_DOUBLE_PREC || ll_ptr[i] < MIN_INT_DOUBLE_PREC) && ll_ptr[i] != NA_INTEGER64 ) {

./convert.h:31:35: note: expanded from macro 'MIN_INT_DOUBLE_PREC'
#define MIN_INT_DOUBLE_PREC (-1LL << 53)

Array access in reverse order yields an error

When accessing an array with

dset[, c(2,1)]

it results in an error. The underlying reason is that a hyperslab with a negative stride is internally requested, which is not supported by HDF5. The stride-length has to always be non-negative.

Fix format warning in C file

H5ls.c: In function ‘H5Dget_info’:
H5ls.c:78:73: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 3 has type ‘hsize_t {aka long long unsigned int}’ [-Wformat=]
    dims_char_written += sprintf(dataset_info->dims + dims_char_written, "%" PRIu64, dims[i]);
                                                                         ^
H5ls.c:88:84: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 3 has type ‘hsize_t {aka long long unsigned int}’ [-Wformat=]
      maxdims_char_written += sprintf(dataset_info->maxdims + maxdims_char_written, "%" PRIu64, maxdims[i]);

insert check before

insert check before expand f <- function() dset2[10:11, 9] <- matrix(rep(0, 2*9), nrow = 2)

Performance improvement on read and write

Currently in read and write operations, various R6 objects are being created. This R6 object creation takes a few milliseconds. On large read and writes, this isn't a problem. On small read/writes, the performance overhead is quite substantial.

Solution: Avoid the creation of R6 objects and do the necessary bookkeeping internally.

Run ASAN, valgrind tests for package

Copied from the h5 Makefile:

check-asan-gcc: $(PKG_NAME)_$(PKG_VERSION).tar.gz
	@boot2docker up
	$(shell boot2docker shellinit)
	@docker run -v "$(CURRENT_DIR):/mnt" mannau/r-devel-san /bin/bash -c \
		"cd /mnt; apt-get update; apt-get clean; apt-get install -y libhdf5-dev; \
		R -e \"install.packages(c('Rcpp', 'testthat', 'roxygen2', 'highlight', 'zoo', 'microbenchmark'))\"; \
		R CMD check $(PKG_NAME)_$(PKG_VERSION).tar.gz; \
		cat /mnt/h5.Rcheck/00install.out"

check-valgrind: $(PKG_NAME)_$(PKG_VERSION).tar.gz 
	@rm -rf $(CHECKPATH)
	$(R) CMD check --no-clean --use-valgrind $(PKG_NAME)_$(PKG_VERSION).tar.gz

Reading entire dataset

Reading entire dataset using [] (instead of [,]) for 2-dimensional objects should also work, like in matrix(1:9, nrow = 3)[]

Improve README

The readme could be more informative

At several places it is out of date or pointing to an incorrect repo

Dimensions reported in wrong order by ls

In R, the dimensions of each dataset are always written in reverse order (to accomodate the fact that In R the first dimension changes fastest, but in C and hdf5, the last dimension changes fastest).

When printing dataset dimensions using ls, the hdf5 ordering is written out, not the reverse order

H5Class_overview currently not working

H5Class_overview is currently not working since inst/manual/function_overview.html is missing:

> H5Class_overview()
Error in browseURL(system.file("manual/function_overview.html", package = "hdf5r"),  : 
'url' must be a non-empty character string

We should either:

  • Add the manual file inst/manual/function_overview.html
  • Delete H5Class_overview and all references to it

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.