Clone this wiki locally
PDQ 7 Development
The primary goal for this release is to make PDQ acceptable for uploading to CRAN. This is a non-trivial exercise because there is some legacy C code in the PDQ library that needs to be reorganized while, at the same time, keeping it consistent for programmatically porting to other languages besides R—chiefly Perl (for the book) and Python.
To get there, the following steps have been identified.
Migrate from SourceForge to GitHub.
Change the return type for the following functions from int to void:Must be coordinated with SWIG config files.
PDQ_CreateMultiNode(). Using the returned int as a counter was deprecated in version 6.1.1.
Expose the functionsThese functions compensate for the
PDQ_Lib.hsince PDQ 5.0) to other languages besides C, ~~and update user manual. Check they work in C.
void-ing of the
Convert PDQ-R to Rcpp interface. Clean out the
examples/directory and other contributed code directories leaving only examples that actually use the PDQ C library.
Update all the Help
- Rationalize the R demo models.
Fix compiler warning:
./PDQ_Lib.h:40:24: warning: conversion from string literal to 'char *' is deprecated
- Add unit tests for PDQ C library as well as Perl, Python, and R languages.
- Get PDQ interface accepted on CRAN repository.
Add the ability to solve multi-server queueing nodes servicing an arbitrary number of workloads. Halt execution if queueing network definition is incomplete per PDQ 6.2.0 note.
- Check for duplicate names of PDQ nodes and streams before calling
- Get interface accepted on CPAN and PyPI.
- Convert to build system with Cmake rather than makefiles.
Allow longer text in
What is the purpose of
GetComment()in PDQ_Lib.h? Either expose it or remove it.
- Rename PDQ functions and update user manual:
Report()to accept file pointer as arg and update user manual.
- Get rid of
PDQ_xxx_p()prototypes, which are legacy hangovers for the Solaris SE toolkit.
doubles recast as pointers
- The procedure body uses those pointers rather than doubles
- Add PDQ network visualization
- In Perl 5,
use pdqmeans the
pdq::qualifier is not necessary (unlike
require pdq). This does not seem to work as advertised in PDQ. It may be a SWIG problem. Possibly the same issue exists with PyDQ.
GetThruMax()to be used for
TRANSclass (i.e., open QNMs).