Changes in version 0.1.11 - Add integer overflow guards in the C-level string buffer (src/sbuf.c). sAppendN, sAppend, and addLine previously computed the new allocation size as sbb->o + 2 + n + SBUF_MXBUF (or analogous expression). When the user-controlled n was large enough this expression overflowed int to a negative value, which R_Realloc then converted to a huge unsigned size and crashed. The guard converts this into a clean R error. - Document known (int)strlen(gBuf) cast in all 10 NONMEM-record parser entry-points (src/abbrec.c, src/abbrev.c, src/data.c, src/input.c, src/lst.c, src/model.c, src/omega.c, src/sub.c, src/tab.c, src/theta.c). Inputs at or above INT_MAX bytes cause silent length truncation passed to dparse(). A long-term fix will switch each call site to udparse() once dparser-R ships that symbol to CRAN. - Fix implicit ptrdiff_t to int truncation in rc_dup_str (src/records.c). When the parser passes a string segment longer than INT_MAX bytes (or a NUL-terminated string of that length), the pointer difference / strlen result was silently cast to int, truncating the length to a wrong (often negative) value. The new guard rejects such inputs with an informative R error. Changes in version 0.1.10 - Bug fix for covariance matrices that span multiple FORTRAN output pages - Bug fix for multiple errors are imported using nonmem2rx() - Change NONMEM import for mixture models to prepend NM to MIXNUM and related import items so they will not interact with rxode2/nlmixr2's handling of mixture models. Changes in version 0.1.9 (2025-11-27) - Try to make sure all the values that can be numeric are numeric #208 - Use qs2 since qs is being archived Changes in version 0.1.8 (2025-08-29) - Better handling of ytype - Added work-around for new Rstudio completion Changes in version 0.1.7 (2025-07-15) - Added $ERROR (ONLY OBS) support - if statements can be upper or lower case #196 Changes in version 0.1.6 (2024-11-28) - Add more flexible replacement of ETA and other values #188 - Add ability to use nonmem2rx with a NONMEM control stream text input Changes in version 0.1.5 (2024-09-18) - Be more forgiving in the validation and remove IDs without observations when solving the IPRED problem. - Binary linkage to dparser changed to structure only, meaning nonmem2rx may not have to be updated if dparser is updated. Changes in version 0.1.4 (2024-05-29) - When reading NONMEM results from xml will try nm: prefixed tags and non-nm: prefixed tags. - Omega and Sigma prior estimates are currently ignored (theta priors were already ignored) - Improve reading in theta values from the xml - Read all NONMEM files using latin1 encoding to allow single byte parser to work - When lines in the NONMEM input dataset start with # they are now ignored. - When all IDs are zero, NONMEM assumes restarting time gives different IDs; this is now reflected in NONMEM translation of IDs. - With linCmt() parsing, expand the scope of conflicting parameters that will be renamed with an import. - Added better parsing for ELSE where there is another IF on the next line. - Prefixed conflicting VP with rxm. when linCmt() models to be more accommodating when importing linear compartment models. Changes in version 0.1.3 (2023-12-12) - Added explicit requirement for rxode2 2.0.13 - Added support of DADT(#) statements on the right side of the equation, i.e. DADT(3) = DADT(1) + DADT(2) (#164) - Added support of ADVAN#, TRANS# (#161) - Added more NONMEM-specific solving options - Fixed security related format issues as requested by CRAN #167 - Now omega, thetaMat, dfObs and dfSub are incorporated into model function (by default). You can change this with the nonmem2rx keep argument - Using the rxode2 2.0.13 makes sure that the solves for models where the endpoint is not determined in the typical nlmixr2 style will validate more often (due to a bug in solving in rxode2). Changes in version 0.1.2 (2023-07-03) - Added support for ADVAN5 and ADVAN7 models - Add parsing of accept/ignore characters for example IGNORE=(C='C') (See Issue #140) - Add more robust reading of NONMEM information (and add source) in nminfo() (See issue #142) - Since NONMEM does not protect divide by zeros by default, the default for solveZero is changed to solveZero = TRUE for nonmem2rx objects. - Fixed bug for renaming eta and theta when they are renamed so that the ui$iniDf does not match the theta# or eta# (Issue #153) - Turned off testing of the as.nonmem2rx example since it took too much time (according to CRAN) Changes in version 0.1.1 (2023-06-01) - Fix internal memory issue (LTO, valgrind etc) Changes in version 0.1.0 (2023-05-26) - Added a NEWS.md file to track changes to the package.