update packages

This commit is contained in:
2025-02-26 20:16:44 +01:00
parent 59db017445
commit 45d49daef0
291 changed files with 16240 additions and 522600 deletions

View File

@@ -1,6 +1,6 @@
;;; ess-custom.el --- Customize variables for ESS -*- lexical-binding: t; -*-
;; Copyright (C) 1997-2020 Free Software Foundation, Inc.
;; Copyright (C) 1997-2025 Free Software Foundation, Inc.
;; Author: Rodney Sparapani
;; Maintainer: ESS-help <ess-help@r-project.org>
@@ -141,7 +141,7 @@
"Directory containing ess-site.el(c) and other ESS Lisp files."
:group 'ess
:type 'directory
:package-version '(ess . "19.04"))
:package-version '(ess . "25.01.1"))
(defcustom ess-etc-directory
;; Try to detect the `etc' folder only if not already set up by distribution
@@ -156,7 +156,7 @@ The ESS etc directory stores various auxiliary files that are useful
for ESS, such as icons."
:group 'ess
:type 'directory
:package-version '(ess . "19.04"))
:package-version '(ess . "25.01.1"))
;; Depending on how ESS is loaded the `load-path' might not contain
;; the `lisp' directory. For this reason we need to add it before we
@@ -192,7 +192,7 @@ See `ess-auto-width'. Be warned that ESS can set the width a
lot."
:group 'ess
:type 'boolean
:package-version '(ess . "19.04"))
:package-version '(ess . "25.01.1"))
(defcustom ess-auto-width nil
"When non-nil, set the width option when the window configuration changes.
@@ -206,7 +206,7 @@ window's width minus that number. Anything else is treated as
(const :tag "Frame width" :value frame)
(const :tag "Window width" :value window)
(integer :tag "Integer value"))
:package-version '(ess . "19.04"))
:package-version '(ess . "25.01.1"))
(defcustom ess-handy-commands '(("change-directory" . ess-change-directory)
("install.packages" . ess-install-library)
@@ -329,7 +329,7 @@ process. If a symbol, the symbol's value should be a directory.
For example, the following setting would always start the process
in the directory of the current file:
(setq ess-startup-directory 'default-directory)
(setq ess-startup-directory ''default-directory)
If `ess-startup-directory' is nil (the default) and
`ess-startup-directory-function' is non-nil, the value returned
@@ -380,7 +380,7 @@ processes buffers are always numbered (e.g. R:2:foo."
'ess-use-inferior-program-name-in-buffer-name
'ess-use-inferior-program-in-buffer-name "ESS 18.10")
(defcustom ess-use-inferior-program-in-buffer-name nil
"For R, use e.g., 'R-2.1.0' or 'R-devel' (the program name) for buffer name.
"For R, use e.g., `R-2.1.0' or `R-devel' (the program name) for buffer name.
Avoids the plain dialect name."
:group 'ess
:type 'boolean)
@@ -478,7 +478,7 @@ If \\='process, only check if the buffer has an inferior process."
:type '(choice (const :tag "Always" t)
(const :tag "With running inferior process" process)
(const :tag "Never" nil))
:package-version '(ess . "18.10"))
:package-version '(ess . "25.01.1"))
(defcustom ess-use-auto-complete t
"If non-nil, activate auto-complete support.
@@ -562,7 +562,7 @@ contain spaces on either side."
;; them.
:type '(repeat string)
:group 'ess
:package-version '(ess "18.10"))
:package-version '(ess . "25.01.1"))
(defvar ess-S-assign)
(make-obsolete-variable 'ess-S-assign 'ess-assign-list "ESS 18.10")
@@ -584,7 +584,7 @@ This gets appended to `prettify-symbols-alist', so set it to nil
if you want to disable R specific prettification."
:group 'ess-R
:type '(alist :key-type string :value-type symbol)
:package-version '(ess . "18.10"))
:package-version '(ess . "25.01.1"))
;;*;; Variables concerning editing behavior
@@ -751,7 +751,7 @@ is non-nil. Affects `ess-save-file'."
(const :tag "Use compilation-ask-about-save and auto-save-visited-mode."
:value auto)
(const :tag "Save without asking." :value t))
:package-version '(ess . "19.04"))
:package-version '(ess . "25.01.1"))
;;*;; Variables controlling editing
@@ -1317,7 +1317,7 @@ the same KEY before adding the new one."
(defcustom ess-own-style-list (cdr (assoc 'RRR ess-style-alist))
"Indentation variables for your own style.
Set `ess-style' to 'OWN to use these values. To change
Set `ess-style' to \='OWN to use these values. To change
these values, use the customize interface. See the documentation
of each variable for its meaning."
:group 'ess-edit
@@ -1371,7 +1371,7 @@ This always dumps to a sub-directory (\".Src\") of the current ess
working directory (i.e. first elt of search list)."
:group 'ess-edit
:type 'directory
:package-version '(ess . "18.10"))
:package-version '(ess . "25.01.1"))
(defvar ess-dump-filename-template nil
"Internal. Initialized by dialects.")
@@ -1404,7 +1404,7 @@ Currently this should not be used to interact with the inferior
process because this hook runs too early, before the inferior
mode had a chance to properly start up the process. To interact
with the process, you must use a mode-specific hook like
'ess-r-post-run-hook'."
`ess-r-post-run-hook'."
:group 'ess-hooks
:type 'hook)
@@ -1427,19 +1427,21 @@ Used to decide highlighting and tag completion."
:type '(repeat string))
(defcustom ess-roxy-tags-param '("author" "aliases" "concept" "details"
"examples" "format" "keywords"
"example" "examples" "examplesIf"
"format" "keywords"
"method" "exportMethod"
"name" "note" "param"
"include" "references" "return"
"include" "references" "return" "returns"
"seealso" "source" "docType"
"title" "TODO" "usage" "import"
"exportClass" "exportPattern" "S3method"
"exportClass" "exportPattern"
"exportS3Method" "S3method"
"inherit" "inheritParams" "inheritSection"
"importFrom" "importClassesFrom"
"importMethodsFrom" "useDynLib"
"rawNamespace"
"rdname" "section" "slot" "description"
"md" "eval" "family")
"md" "eval" "evalNamespace" "family")
"The tags used in roxygen fields that require a parameter.
Used to decide highlighting and tag completion."
:group 'ess-roxy
@@ -1531,7 +1533,7 @@ there is no project root in the current directory."
(const :tag "*proc:project-root* or *proc*" ess-gen-proc-buffer-name:project-or-simple)
(const :tag "*proc:project-root* or *proc:dir*" ess-gen-proc-buffer-name:project-or-directory)
function)
:package-version '(ess . "19.04"))
:package-version '(ess . "25.01.1"))
(defcustom ess-kermit-command "gkermit -T"
@@ -1858,7 +1860,7 @@ This variable also affect the evaluation of input code in
iESS. The effect is similar to the above. If t then ess waits for
the process output, otherwise not."
:group 'ess-proc
:package-version '(ess . "19.04")
:package-version '(ess . "25.01.1")
:type '(choice (const t) (const nowait) (const nil)))
(defcustom ess-eval-deactivate-mark (fboundp 'deactivate-mark); was nil till 2010-03-22
@@ -2052,6 +2054,15 @@ See also function `ess-create-object-name-db'.")
"recover" "browser")
"Reserved words or special functions in the R language.")
(defvar ess-r--keystrings
'("\\" "\?")
"Reserved non-word strings or special functions whose names
include special characters in the R language.
Similar font-locking usage as `ess-R-keywords', but dedicated to
strings that should not be treated as `words by `regexp-opt' in
`ess-r--find-fl-keyword'.")
(defvar ess-S-keywords
(append ess-R-keywords '("terminate")))
@@ -2088,7 +2099,8 @@ See also function `ess-create-object-name-db'.")
(defvar ess-R-function-name-regexp
(concat "\\(" "\\sw+" "\\)"
"[ \t]*" "\\(<-\\)"
"[ \t\n]*" "function\\b"))
"[ \t\n]*" "\\(function\\b\\|\\(\\\\[ \t\n(]+\\)\\)"))
;; "[ \t\n(]+" after "\\\\" since cannot use "\\b" to bound a non-word
(defvar ess-S-function-name-regexp
ess-R-function-name-regexp)
@@ -2317,7 +2329,7 @@ This defaults to `default-frame-alist' and is used only when
the variable `ess-help-own-frame' is non-nil."
:group 'ess-help
:type 'alist
:package-version '(ess . "18.10"))
:package-version '(ess . "25.01.1"))
; Faces
;;;=====================================================
@@ -2463,7 +2475,7 @@ Created for each process."
See also `ess-verbose'."
:group 'ess-proc
:type 'boolean
:package-version '(ess . "18.10"))
:package-version '(ess . "25.01.1"))
(defcustom ess-verbose nil
"Non-nil means write more information to `ess-dribble-buffer' than usual."

View File

@@ -605,6 +605,11 @@ process-less buffer because it was created with
(nconc
(list "STATATERM=emacs"
(format "PAGER=%s" inferior-ess-pager))
;; This lets R code know whether Emacs was running with a
;; light or dark background at startup time
(let ((bg-mode (frame-parameter nil 'background-mode)))
(when (memq bg-mode '(light dark))
(list (format "ESS_BACKGROUND_MODE=%s" (symbol-name bg-mode)))))
process-environment))
(tramp-remote-process-environment
(nconc ;; it contains a pager already, so append
@@ -820,7 +825,7 @@ to `ess-completing-read'."
(delete-dups (list "R" "S+" (or (bound-and-true-p S+-dialect-name) "S+")
"stata" (or (bound-and-true-p STA-dialect-name) "stata")
"julia" "SAS")))))
(pname-list (delq nil ;; keep only those matching dialect
(pname-list (delq nil ;; keep only those matching dialect and `ess-gen-proc-buffer-name-function'
(append
(mapcar (lambda (lproc)
(and (equal ess-dialect

View File

@@ -42,7 +42,8 @@
;; Don't require `julia-mode' to compile this file.
(when t (require 'julia-mode))
(declare-function julia-mode "julia-mode" ())
(declare-function julia-latexsub "julia-mode" ())
(declare-function julia-mode-latexsub-completion-at-point-before "julia-mode" ())
(declare-function julia-mode-latexsub-completion-at-point-around "julia-mode" ())
(defvar julia-mode-syntax-table)
(defvar ac-prefix)
@@ -117,12 +118,6 @@ See `comint-input-sender'."
;;; COMPLETION
(defun ess-julia-latexsub-completion ()
"Complete latex input in format required by `completion-at-point-functions'."
(if (julia-latexsub) ; julia-latexsub returns nil if it performed a completion, the point otherwise
nil
(lambda () t) ;; bypass other completion methods
))
(defun ess-julia-object-completion ()
"Return completions in format required by `completion-at-point-functions'."
@@ -369,7 +364,8 @@ It makes underscores and dots word constituent chars.")
(remove-hook 'completion-at-point-functions #'ess-filename-completion 'local) ;; should be first
(add-hook 'completion-at-point-functions #'ess-julia-object-completion nil 'local)
(add-hook 'completion-at-point-functions #'ess-filename-completion nil 'local)
(add-hook 'completion-at-point-functions #'ess-julia-latexsub-completion nil 'local)
(add-hook 'completion-at-point-functions #'julia-mode-latexsub-completion-at-point-before nil 'local)
(add-hook 'completion-at-point-functions #'julia-mode-latexsub-completion-at-point-around nil 'local)
(if (fboundp 'ess-add-toolbar) (ess-add-toolbar)))
;; Inferior mode
@@ -393,7 +389,8 @@ It makes underscores and dots word constituent chars.")
(remove-hook 'completion-at-point-functions #'ess-filename-completion 'local) ;; should be first
(add-hook 'completion-at-point-functions #'ess-julia-object-completion nil 'local)
(add-hook 'completion-at-point-functions #'ess-filename-completion nil 'local)
(add-hook 'completion-at-point-functions #'ess-julia-latexsub-completion nil 'local)
(add-hook 'completion-at-point-functions #'julia-mode-latexsub-completion-at-point-before nil 'local)
(add-hook 'completion-at-point-functions #'julia-mode-latexsub-completion-at-point-around nil 'local)
(setq comint-input-sender #'ess-julia-input-sender))
(defvar ess-julia-mode-hook nil)

View File

@@ -1,6 +1,6 @@
(define-package "ess" "20230807.1422" "Emacs Speaks Statistics"
(define-package "ess" "20250110.1437" "Emacs Speaks Statistics"
'((emacs "25.1"))
:commit "d8914196ceb2061d850cc899aed79342519972ff" :authors
:commit "0eb240bcb6d0e933615f6cfaa9761b629ddbabdd" :authors
'(("David Smith" . "dsmith@stats.adelaide.edu.au")
("A.J. Rossini" . "blindglobe@gmail.com")
("Richard M. Heiberger" . "rmh@temple.edu")

View File

@@ -90,7 +90,7 @@ each element is passed as argument to `lintr::with_defaults'."
} else {
tryCatch(lintr::lint(commandArgs(TRUE), ...),
error = function(e) {
cat('@@warning: @@', e)
cat('@@warning: @@', conditionMessage(e))
})
}
}

View File

@@ -372,7 +372,7 @@ namespace.")
(ess-goto-char string-end)
(ess-looking-at "<-")
(ess-goto-char (match-end 0))
(ess-looking-at "function\\b" t)))
(ess-looking-at "function\\b\\|\\\\" t)))
font-lock-function-name-face)
((save-excursion
(and (cdr (assq 'ess-fl-keyword:fun-calls ess-R-font-lock-keywords))
@@ -394,23 +394,44 @@ namespace.")
font-lock-comment-face))
(defvar ess-r--non-fn-kwds
'("in" "else" "break" "next" "repeat"))
'("in" "else" "break" "next" "repeat")
"Reserved words that should not be treated as names of special
functions by `ess-r--find-fl-keyword'; such reserved words do
not need to be followed by an open parenthesis to trigger
font-locking.
See also `ess-r--non-fn-kstrs'.")
(defvar ess-r--non-fn-kstrs
'("\?")
"Reserved non-word strings that should not be treated as names of
special functions by `ess-r--find-fl-keyword'; such reserved
strings do not need to be followed by an open parenthesis to
trigger font-locking.
See also `ess-r--non-fn-kwds'.")
(defvar-local ess-r--keyword-regexp nil)
(defun ess-r--find-fl-keyword (limit)
"Search for R keyword and set the match data.
"Search for R keyword or keystring and set the match data.
To be used as part of `font-lock-defaults' keywords."
(unless ess-r--keyword-regexp
(let (fn-kwds non-fn-kwds)
(let (fn-kwds non-fn-kwds fn-kstrs non-fn-kstrs)
(dolist (kw ess-R-keywords)
(if (member kw ess-r--non-fn-kwds)
(push kw non-fn-kwds)
(push kw fn-kwds)))
(dolist (kw ess-r--keystrings)
(if (member kw ess-r--non-fn-kstrs)
(push kw non-fn-kstrs)
(push kw fn-kstrs)))
(setq ess-r--keyword-regexp
(concat "\\("
(regexp-opt non-fn-kwds 'words)
"\\|"
(regexp-opt non-fn-kstrs t)
"\\)\\|\\("
(regexp-opt fn-kwds 'words)
"\\|"
(regexp-opt fn-kstrs t)
"\\)"))))
(let (out)
(while (and (not out)

View File

@@ -129,8 +129,9 @@ All Rd mode abbrevs start with a grave accent (`)."
;; "Alpha" "Gamma" "alpha" "beta" "epsilon" "lambda" "mu" "pi" "sigma"
;; "ge" "le" "left" "right"
;;
"RdOpts" "R" "S3method" "S4method" "Sexpr" "acronym"
"bold" "cite" "code" "command" "cr" "dQuote" "deqn" "dfn" "dontrun"
"RdOpts" "R" "S3method" "S4method" "Sexpr"
"abbr" "acronym"
"bold" "cite" "code" "command" "cr" "dQuote" "deqn" "dfn" "dontdiff" "dontrun"
"dontshow" "donttest" "dots" "email" "emph" "enc" "env" "eqn" "figure" "file"
"href"
"ifelse" "if"

View File

@@ -115,6 +115,7 @@ can then examine these objects, plot them, and so on."
`[("Name" 18 t)
("Class" 10 t)
("Length" 10 ess-rdired--length-predicate)
("Rows" 10 ess-rdired--rows-predicate)
("Size" 10 ess-rdired--size-predicate)])
(add-hook 'tabulated-list-revert-hook #'ess-rdired-refresh nil t)
(when (and (not ess-rdired-auto-update-timer)
@@ -173,7 +174,7 @@ details."
(defun ess-rdired--tabulated-list-entries (text)
"Return a value suitable for `tabulated-list-entries' from TEXT."
(let (name class length size)
(let (name class length rows size)
(if (not (string-match-p " +\"" text))
;; Normal-world
(setq text (split-string text " " t)
@@ -185,13 +186,15 @@ details."
text (split-string (substring text (1+ (match-end 0))) " " t)))
(setq class (nth 0 text)
length (nth 1 text)
size (nth 2 text))
rows (nth 2 text)
size (nth 3 text))
(list name
`[(,name
help-echo "mouse-2, RET: View this object"
action ess-rdired-view)
,class
,length
,rows
,size])))
(defun ess-rdired-edit ()
@@ -274,6 +277,13 @@ Return t if A's length is < than B's length."
(lenB (aref (cadr B) 2)))
(< (string-to-number lenA) (string-to-number lenB))))
(defun ess-rdired--rows-predicate (A B)
"Enable sorting by rows in `ess-rdired' buffers.
Return t if A's length is < than B's length."
(let ((lenA (aref (cadr A) 2))
(lenB (aref (cadr B) 2)))
(< (string-to-number lenA) (string-to-number lenB))))
(defun ess-rdired--size-predicate (A B)
"Enable sorting by size in `ess-rdired' buffers.
Return t if A's size is < than B's size."

View File

@@ -729,6 +729,8 @@ Use the current buffer if nil."
"\\|NOTE: Estimated G matrix is not positive definite."
"\\|NOTE: Compressing data set .* increased size by"
"\\|NOTE: ERROR DETECTED IN ANNOTATE="
"\\|NOTE: Import cancelled. Output dataset .* already exists."
"\\|NOTE: Export cancelled. Output file"
"\\|WARNING: Apparent symbolic reference .* not resolved."
"\\|WARNING: Length of character variable has already been set."
"\\|WARNING: Not all variables in the list "

View File

@@ -389,50 +389,29 @@ number."
;;; ;; SAS procedure names
(cons (concat "\\<proc[ ]+"
(regexp-opt '(
;; SAS base and SAS/Graph
"append"
"calendar" "catalog" "chart" "cimport" "cport" "compare" "contents" "copy" "corr"
"datasets" "dbcstab" "display"
"explode" "export"
"fcmp" "format" "forms" "freq" "fsbrowse" "fsedit" "fsletter" "fslist" "fsview"
"ganno" "gchart" "gcontour" "gdevice" "geocode" "gfont" "gimport" "ginside"
"gkeymap" "gmap" "goptions" "gplot" "gprint" "gproject" "greduce" "gremove"
"greplay" "gslide" "gtestit" "g3d" "g3grid"
"iml" "import" "insight"
"mapimport" "means"
"options"
"plot" "pmenu" "print" "printto"
"rank" "registry" "report"
"setinit" "sgdesign" "sgmap"
"sgpanel" "sgplot" "sgrender" "sgscatter" "sort" "sql" "standard" "summary"
"tabulate" "template" "timeplot" "transpose" "trantab"
"univariate"
;;SAS/Stat and SAS/ETS
"aceclus" "anova" "arima" "autoreg"
"bgenmod" "blifereg" "boxplot" "bphreg"
"calis" "cancorr" "candisc" "catmod" "citibase" "cluster" "computab" "corresp" "countreg"
"discrim" "distance"
"entropy" "expand"
"factor" "fastclus" "forecast"
"gam" "gee" "genmod" "glimmix" "glm" "glmmod" "glmpower" "glmselect"
"hpmixed"
"inbreed"
"kde" "krige2d"
"lattice" "lifereg" "lifetest" "loess" "logistic"
"mcmc" "mdc" "mds" "mi" "mianalyze" "mixed" "modeclus" "model" "mortgage" "multtest"
"nested" "nlin" "nlmixed" "npar1way"
"orthoreg"
"panel" "pdlreg" "phreg" "plan" "plm" "pls" "power" "princomp" "prinqual" "probit"
"qlim" "quantreg"
"reg" "risk" "robustreg" "rsreg"
"score" "seqdesign" "seqtest" "severity" "sim2d" "similarity" "simlin" "simnormal"
"spectra" "statespace" "stdize" "stepdisc"
"surveyfreq" "surveylogistic" "surveymeans" "surveyphreg" "surveyreg" "surveyselect" "syslin"
"tcalis" "timeid" "timeseries" "tphreg" "tpspline" "transreg" "tree" "ttest"
"ucm"
"varclus" "varcomp" "variogram" "varmax"
"x11" "x12"
"access" "aceclus" "adaptivereg" "aggregation" "anom" "anova" "append" "appsrv" "arima" "assess" "astore" "authlib" "autoreg"
"bchoice" "bglimm" "binning" "bnet" "bom" "boolrule" "boxplot" "build"
"calendar" "calis" "callrfc" "cancorr" "candisc" "capability" "cardinality" "carima" "cas" "casutil" "catalog" "catmod" "causalgraph" "causalmed" "causaltrt" "ccdm" "ccopula" "cesm" "chart" "cimport" "clp" "cluster" "cntselect" "compare" "compile" "computab" "contents" "convert" "copula" "copy" "corr" "correlation" "corresp" "countreg" "cpanel" "cpm" "cport" "cqlim" "cspatialreg" "cusum" "cv2view"
"datasets" "datasource" "datekeys" "db2ext" "db2util" "dbcstab" "dbf" "dbload" "delete" "dfil" "dif" "discrim" "display" "distance" "dmsrvadm" "dmsrvdatasvc" "dmsrvprocesssvc" "document" "download" "dqloclst" "dqmatch" "dqscheme" "ds2" "dstods2" "dtree"
"ecm" "entropy" "esm" "expand" "explode" "export"
"factex" "factmac" "factor" "fastclus" "fastknn" "fcmp" "fedsql" "fism" "fmm" "fmtc2itm" "fontreg" "forest" "format" "forms" "freq" "freqtab" "fsbrowse" "fsedit" "fsletter" "fslist" "fsview"
"g3d" "g3grid" "ga" "gam" "gammod" "gampl" "gamselect" "ganno" "gantt" "gareabar" "gbarline" "gchart" "gcontour" "gdevice" "gee" "genmod" "genselect" "geocode" "gfont" "ginside" "gis" "gkpi" "glimmix" "glm" "glmmod" "glmpower" "glmselect" "gmap" "gmm" "goptions" "gplot" "gproject" "gradar" "gradboost" "greduce" "gremove" "greplay" "groovy" "gslide" "gtile" "gvarclus"
"hadoop" "hdmd" "hmm" "hp4score" "hpbin" "hpbnet" "hpboolrule" "hpcandisc" "hpcdm" "hpclus" "hpcopula" "hpcorr" "hpcountreg" "hpdecide" "hpdmdb" "hpds2" "hpexport" "hpf" "hpfarimaspec" "hpfdiagnose" "hpfengine" "hpfesmspec" "hpfevents" "hpfexmspec" "hpfidmspec" "hpfmm" "hpforest" "hpfreconcile" "hpfrepository" "hpfselect" "hpftemprecon" "hpfucmspec" "hpgenselect" "hpimpute" "hplmixed" "hplogistic" "hpmixed" "hpneural" "hpnlmod" "hppanel" "hppls" "hpprincomp" "hpqlim" "hpquantselect" "hpreduce" "hpreg" "hprisk" "hpsample" "hpseverity" "hpsplit" "hpsummary" "hpsvm" "hptmine" "hptmscore" "http"
"ica" "iclifetest" "icphreg" "iml" "import" "imstat" "imxfer" "inbreed" "infomaps" "iomoperate" "irt" "ishikawa" "items"
"javainfo" "json"
"kclus" "kde" "kpca" "krige2d"
"lasr" "lattice" "lifereg" "lifetest" "lmixed" "loan" "localedata" "loess" "logistic" "logselect" "lua"
"macontrol" "mapimport" "mbanalysis" "mbc" "mcmc" "mdc" "mddb" "mds" "mdsummary" "means" "metadata" "metalib" "metaoperate" "mi" "mianalyze" "migrate" "mixed" "modeclus" "model" "modelmatrix" "mtlearn" "multtest" "mvpdiagnose" "mvpmodel" "mvpmonitor" "mwpca"
"nested" "netdraw" "network" "nlin" "nlmixed" "nlmod" "nmf" "nnet" "npar1way"
"odslist" "odstable" "odstext" "olap" "olapcontents" "olapoperate" "operate" "optex" "optgraph" "options" "optload" "optlp" "optlso" "optmilp" "optmodel" "optnet" "optnetwork" "optqp" "optsave" "orthoreg"
"panel" "pareto" "partition" "pca" "pdlreg" "pds" "pdscopy" "phreg" "phselect" "plan" "plm" "plot" "pls" "plsmod" "pm" "pmenu" "power" "presenv" "princomp" "prinqual" "print" "printto" "probit" "proto" "prtdef" "prtexp" "psmatch" "pwencode"
"qdevice" "qlim" "qtrselect" "quantlife" "quantreg" "quantselect" "quest"
"rank" "rareevents" "rdc" "rdpool" "rdsec" "recommend" "reg" "registry" "regselect" "release" "reliability" "report" "risk" "rmstreg" "robustreg" "rpca" "rsreg"
"s3" "sandwich" "scaproc" "score" "scoreaccel" "semisuplearn" "seqdesign" "seqtest" "server" "severity" "sevselect" "sgdesign" "sgmap" "sgpanel" "sgpie" "sgplot" "sgrender" "sgscatter" "shewhart" "sim2d" "similarity" "simlin" "simnormal" "simsystem" "smcalib" "smproject" "smscore" "smselect" "smspec" "soap" "sort" "source" "sparseml" "spatialreg" "spc" "spdo" "spectra" "spp" "sql" "sqoop" "ssm" "standard" "statespace" "stdize" "stdrate" "stepdisc" "stp" "stream" "summary" "surveyfreq" "surveyimpute" "surveylogistic" "surveymeans" "surveyphreg" "surveyreg" "surveyselect" "svdd" "svmachine" "syslin"
"tabulate" "tapecopy" "tapelabel" "textmine" "timedata" "timeid" "timeplot" "timeseries" "tmodel" "tmscore" "tpspline" "transpose" "transreg" "trantab" "tree" "treesplit" "tscsreg" "tsinfo" "tsmodel" "tsne" "tsreconcile" "ttest"
"ucm" "univariate" "upload"
"varclus" "varcomp" "varimpute" "variogram" "varmax" "varreduce" "vasmp"
"x11" "x12" "x13" "xsl"
) 'words)) font-lock-constant-face)
; (cons (concat
@@ -489,6 +468,7 @@ number."
(cons (concat ;"\\<"
(regexp-opt
'(
;; SAS functions found in sashelp.vfunc where fncprod='X'
"abs" "arcos" "arsin" "atan"
"betainv" "byte"
"call execute" "call label" "call module" "call modulei"

View File

@@ -1522,6 +1522,11 @@ the output into *ess.dbg* buffer."
(define-key map (kbd "M-C") #'ess-debug-command-continue)
(define-key map [(control meta ?C)] #'ess-debug-command-continue-multi)
(define-key map (kbd "M-N") #'ess-debug-command-next)
(define-key map (kbd "M-S") #'ess-debug-command-step)
(define-key map (kbd "M-W") #'ess-debug-command-where)
(define-key map (kbd "M-F") #'ess-debug-command-finish)
(define-key map (kbd "M-H") #'ess-debug-command-help)
(define-key map (kbd "M-R") #'ess-debug-command-resume)
(define-key map [(control meta ?N)] #'ess-debug-command-next-multi)
(define-key map (kbd "M-Q") #'ess-debug-command-quit)
(define-key map (kbd "M-U") #'ess-debug-command-up)
@@ -1785,6 +1790,61 @@ Equivalent to `n' at the R prompt."
(ess-send-string (ess-get-process) "0")
(ess-send-string (ess-get-process) "n")))
(defun ess-debug-command-step ()
"Step into in debug mode.
Equivalent to `s' at the R prompt."
(interactive)
(ess-force-buffer-current)
(unless (ess--dbg-is-active-p)
(error "Debugger is not active"))
(if (ess--dbg-is-recover-p)
(ess-send-string (ess-get-process) "0")
(ess-send-string (ess-get-process) "s")))
(defun ess-debug-command-finish ()
"Step next in debug mode.
Equivalent to `f' at the R prompt."
(interactive)
(ess-force-buffer-current)
(unless (ess--dbg-is-active-p)
(error "Debugger is not active"))
(if (ess--dbg-is-recover-p)
(progn (ess-send-string (ess-get-process) "0")
(ess-send-string (ess-get-process) "f"))
(ess-send-string (ess-get-process) "f")))
(defun ess-debug-command-resume ()
"Step next in debug mode.
Equivalent to `f' at the R prompt."
(interactive)
(ess-force-buffer-current)
(unless (ess--dbg-is-active-p)
(error "Debugger is not active"))
(if (ess--dbg-is-recover-p)
(progn (ess-send-string (ess-get-process) "0")
(ess-send-string (ess-get-process) "r"))
(ess-send-string (ess-get-process) "r")))
(defun ess-debug-command-where ()
"Step next in debug mode.
Equivalent to `where' at the R prompt."
(interactive)
(ess-force-buffer-current)
(unless (ess--dbg-is-active-p)
(error "Debugger is not active"))
(ess-send-string (ess-get-process) "where"))
(defun ess-debug-command-help ()
"Step next in debug mode.
Equivalent to `where' at the R prompt."
(interactive)
(ess-force-buffer-current)
(unless (ess--dbg-is-active-p)
(error "Debugger is not active"))
(ess-send-string (ess-get-process) "help"))
(defun ess-debug-command-next-multi (&optional N)
"Ask for N and step (n) N times in debug mode."
(interactive)

View File

@@ -784,12 +784,18 @@ Copied almost verbatim from gnus-utils.el (but with test for mac added)."
;; FIXME: allow '%foo%' but only when quoted; don't allow [_0-9] at beg.
(space "\\(\\s-\\|\n\\)*") ; white space
(S7-method (concat "method(" Symb "," space
"\\(list(\\(" Symb ",?" space "\\)+)\\|" Symb
"\\))"))
(part-1 (concat
"\\(" ;;--------outer Either-------
"\\(\\(" ; EITHER
Q xSymb Q ; any function name between quotes
"\\)\\|\\("
Symb ; (beginning of name) + ess-r-symbol-pattern
"\\)\\|\\(" ; Add S7 method as a valid function name
S7-method
"\\)\\)")) ; END EITHER OR
(set-S4-exp
@@ -807,7 +813,7 @@ Copied almost verbatim from gnus-utils.el (but with test for mac added)."
"\\(" space "\\s<.*\\s>\\)*" ; whitespace, comment
;; FIXME: in principle we should skip 'definition *= *' here
space "function\\s-*(" ; whitespace, function keyword, parenthesis
space "\\(function\\|\\\\\\)\\s-*(" ; whitespace, function keyword, parenthesis
)))
`(,part-1 ,part-2))
"Partial regex for matching functions.

View File

@@ -1,6 +1,6 @@
;;; ess.el --- Emacs Speaks Statistics -*- lexical-binding: t; -*-
;; Copyright (C) 1997-2022 Free Software Foundation, Inc.
;; Copyright (C) 1997-2024 Free Software Foundation, Inc.
;; Author: David Smith <dsmith@stats.adelaide.edu.au>
;; A.J. Rossini <blindglobe@gmail.com>
@@ -17,7 +17,7 @@
;;
;; Maintainer: ESS Core Team <ESS-core@r-project.org>
;; Created: 7 Jan 1994
;; Version: 18.10.3snapshot
;; Version: 25.01.0
;; URL: https://ess.r-project.org/
;; Package-Requires: ((emacs "25.1"))
;; ESSR-Version: 1.8

View File

@@ -14,7 +14,7 @@ File: ess.info, Node: Top, Next: Introduction, Up: (dir)
ESS: Emacs Speaks Statistics
****************************
ESS version 18.10.3snapshot
ESS version 25.01.0
by A.J. Rossini,
R.M. Heiberger,
@@ -249,7 +249,42 @@ File: ess.info, Node: New features, Next: Credits, Prev: Features, Up: Intro
1.2 New features in ESS
=======================
Changes and New Features in 19.04 (unreleased):
Changes and New Features in 25.01.0:
* polymode: In our transition from literate libraries (such as noweb
documented below with respect to 19.04), we now recommend the
polymode packages as a more suitable replacement. Furthermore, we
suggest the related polymodes including poly-noweb, poly-markdown
and poly-R (installed in that order). The package polymode itself,
as well as the polymodes packages, are all on MELPA rather than
ELPA. Therefore, you need to add MELPA to the list of installation
archives as follows. '(add-to-list 'package-archives
'("melpa-stable" . "https://stable.melpa.org/packages/"))' for 'M-x
package-install'
* ESS[R]: The shorthand notation for lambda functions and the
question mark are now fontified as keywords. Contributed by Maxime
Pettinger.
* ESS[SAS]: Developed new comprehensive lists of PROCs and functions
for syntax highlighting. See 'etc/proc.sas' and 'etc/func.sas'.
Changes and New Features in 24.01.1:
* Revert a bug introduced with the 'ess-request-a-process' change
Changes and New Features in 24.01.0:
* fix docstring warnings in ess-custom
* :package-version is now set to "VERSION" in ess-custom. By make
this is replaced with "24.01.0" (or similar).
* Better "collaboration" with org-mode. Now 'ess-request-a-process'
obeys 'ess-gen-proc-buffer-name-function', thanks to Ihor
Radchenko.
Changes and New Features in 19.04 (unreleased):
* ESS[R]: When a background command is interrupted with C-g, ESS now
asks the user if they want to disable background evaluations
@@ -511,7 +546,7 @@ documentation for more detail:
* 'Makefile' fixes, notably for 'make install' and including full
docs in the tarballs.
Bug Fixes in 18.10-1:
Bug Fixes in 18.10.1:
* New functions 'ess-eval-line-visibly-and-step' ('C-c C-n' and
'ess-eval-region-or-line-visibly-and-step' ('C-RET') which behave
as the old versions of 'ess-eval-line-and-step' and
@@ -5021,109 +5056,109 @@ Concept Index

Tag Table:
Node: Top268
Node: Introduction2914
Node: Features5668
Node: Current Features6494
Node: New features9945
Node: Credits35243
Node: Manual38860
Node: Installation41526
Node: Installing from a third-party repository42463
Node: Installing from source43410
Node: Activating and Loading ESS45002
Node: Check Installation46076
Node: Interactive ESS46296
Node: Starting up47141
Node: Multiple ESS processes47885
Node: ESS processes on Remote Computers48966
Node: Customizing startup53069
Node: Controlling buffer display55959
Node: Entering commands58580
Node: Command-line editing59738
Node: Transcript60971
Node: Last command62740
Node: Process buffer motion64166
Node: Transcript resubmit65669
Node: Saving transcripts67634
Node: Command History69424
Node: Saving History72833
Node: History expansion73594
Node: Hot keys76805
Node: Statistical Process running in ESS?80875
Node: Emacsclient82154
Node: Other82946
Node: Evaluating code83965
Node: Transcript Mode87761
Node: Resubmit88914
Node: Clean89977
Node: Editing objects90973
Node: Edit buffer92091
Node: Loading94137
Node: Error Checking95164
Node: Indenting96213
Node: Styles99257
Node: Other edit buffer commands101631
Node: Source Files103287
Node: Source Directories107891
Node: Help111044
Node: Completion115490
Node: Object names115705
Node: Function arguments118339
Node: Minibuffer completion119282
Node: Company119756
Node: Icicles120143
Node: Developing with ESS121463
Node: ESS tracebug121909
Node: Getting started with tracebug124916
Node: Editing documentation127074
Node: R documentation files127626
Node: roxygen2131329
Node: Namespaced Evaluation135740
Node: Extras137738
Node: ESS ElDoc138762
Node: ESS Flymake140258
Node: Handy commands141352
Node: Highlighting142549
Node: Parens143584
Node: Graphics144060
Node: printer144731
Node: X11145487
Node: winjava145826
Node: Imenu146238
Node: Toolbar147085
Node: Xref147493
Node: Rdired147821
Node: Package listing148884
Node: Org150268
Node: Sweave and AUCTeX151222
Node: ESS for R153774
Node: ESS(R)--Editing files154074
Node: iESS(R)--Inferior ESS processes154575
Node: Philosophies for using ESS(R)157230
Node: Example ESS usage158157
Node: ESS for SAS159562
Node: ESS(SAS)--Design philosophy160285
Node: ESS(SAS)--Editing files161218
Node: ESS(SAS)--TAB key163072
Node: ESS(SAS)--Batch SAS processes164438
Node: ESS(SAS)--Function keys for batch processing169466
Node: iESS(SAS)--Interactive SAS processes178953
Node: iESS(SAS)--Common problems182707
Node: ESS(SAS)--Graphics184231
Node: ESS(SAS)--Windows185014
Node: ESS for BUGS185592
Node: ESS for JAGS187348
Node: Mailing lists/bug reports190700
Node: Bugs190964
Node: Reporting Bugs192588
Node: Mailing Lists193481
Node: Help with Emacs194208
Node: Customization194740
Node: Indices195514
Node: Key index195689
Node: Function and program index200821
Node: Variable index210241
Node: Concept index213802
Node: Introduction2906
Node: Features5660
Node: Current Features6486
Node: New features9937
Node: Credits36694
Node: Manual40311
Node: Installation42977
Node: Installing from a third-party repository43914
Node: Installing from source44861
Node: Activating and Loading ESS46453
Node: Check Installation47527
Node: Interactive ESS47747
Node: Starting up48592
Node: Multiple ESS processes49336
Node: ESS processes on Remote Computers50417
Node: Customizing startup54520
Node: Controlling buffer display57410
Node: Entering commands60031
Node: Command-line editing61189
Node: Transcript62422
Node: Last command64191
Node: Process buffer motion65617
Node: Transcript resubmit67120
Node: Saving transcripts69085
Node: Command History70875
Node: Saving History74284
Node: History expansion75045
Node: Hot keys78256
Node: Statistical Process running in ESS?82326
Node: Emacsclient83605
Node: Other84397
Node: Evaluating code85416
Node: Transcript Mode89212
Node: Resubmit90365
Node: Clean91428
Node: Editing objects92424
Node: Edit buffer93542
Node: Loading95588
Node: Error Checking96615
Node: Indenting97664
Node: Styles100708
Node: Other edit buffer commands103082
Node: Source Files104738
Node: Source Directories109342
Node: Help112495
Node: Completion116941
Node: Object names117156
Node: Function arguments119790
Node: Minibuffer completion120733
Node: Company121207
Node: Icicles121594
Node: Developing with ESS122914
Node: ESS tracebug123360
Node: Getting started with tracebug126367
Node: Editing documentation128525
Node: R documentation files129077
Node: roxygen2132780
Node: Namespaced Evaluation137191
Node: Extras139189
Node: ESS ElDoc140213
Node: ESS Flymake141709
Node: Handy commands142803
Node: Highlighting144000
Node: Parens145035
Node: Graphics145511
Node: printer146182
Node: X11146938
Node: winjava147277
Node: Imenu147689
Node: Toolbar148536
Node: Xref148944
Node: Rdired149272
Node: Package listing150335
Node: Org151719
Node: Sweave and AUCTeX152673
Node: ESS for R155225
Node: ESS(R)--Editing files155525
Node: iESS(R)--Inferior ESS processes156026
Node: Philosophies for using ESS(R)158681
Node: Example ESS usage159608
Node: ESS for SAS161013
Node: ESS(SAS)--Design philosophy161736
Node: ESS(SAS)--Editing files162669
Node: ESS(SAS)--TAB key164523
Node: ESS(SAS)--Batch SAS processes165889
Node: ESS(SAS)--Function keys for batch processing170917
Node: iESS(SAS)--Interactive SAS processes180404
Node: iESS(SAS)--Common problems184158
Node: ESS(SAS)--Graphics185682
Node: ESS(SAS)--Windows186465
Node: ESS for BUGS187043
Node: ESS for JAGS188799
Node: Mailing lists/bug reports192151
Node: Bugs192415
Node: Reporting Bugs194039
Node: Mailing Lists194932
Node: Help with Emacs195659
Node: Customization196191
Node: Indices196965
Node: Key index197140
Node: Function and program index202272
Node: Variable index211692
Node: Concept index215253

End Tag Table

View File

@@ -80,7 +80,7 @@
.ess.helpLinks <- function(topic, package) {
tryCatch(
warning = function(...) NULL,
error = function(...) NULL,
error = function(...) NULL, # needs R >= 2.13.0
{
ast <- .ess.fetchParsedRd(topic, package)
.ess.findLinks(ast)
@@ -156,7 +156,7 @@
}
.ess.strip.error <- function(msg, srcfile) {
pattern <- paste0(srcfile, ":[0-9]+:[0-9]+: ")
pattern <- paste(srcfile, ":[0-9]+:[0-9]+: ", sep = "")
sub(pattern, "", msg)
}
@@ -218,12 +218,12 @@ if(.ess.Rversion < "1.8")
sink(getConnection(1))
on.exit({
writeLines(paste0(sentinel, "-END"))
writeLines(paste(sentinel, "-END", sep = ""))
if (sinked)
sink(NULL)
})
writeLines(paste0(sentinel, "-START"))
writeLines(paste(sentinel, "-START", sep = ""))
.ess.environment.state$env <- parent.frame()
on.exit(.ess.environment.state$env <- NULL, add = TRUE)

View File

@@ -11,7 +11,7 @@
## load .base.R and all other files into ESSR environment; then attach ESSR
.ess.ESSR.load <- function(dir) {
if (nzchar(Sys.getenv("ESSR_TEST_LOAD_ERROR")))
if (Sys.getenv("ESSR_TEST_LOAD_ERROR") != "")
stop('Loading failed with a nice message.')
Rver <- .ess.ESSR.get.rver()

View File

@@ -158,7 +158,15 @@
mode <- sapply(objs, data.class)
length <- sapply(objs, length)
size <- sapply(objs, function(obj) format(object.size(obj)))
d <- data.frame(mode, length, size)
rows <- sapply(objs,nrow)
# sapply returns a list rather than a vector if there are NULLs eg nrow returns NULL for non-dataframes.
# check if list, replace NULLS with NA and convert to vector
if (is.list(rows)) {
rows[sapply(rows,is.null)] <- NA
rows <- unlist(rows)
}
d <- data.frame(mode, length, rows, size)
var.names <- row.names(d)

1058
lisp/ess/etc/all.txt Normal file

File diff suppressed because it is too large Load Diff

80
lisp/ess/etc/func.sas Normal file
View File

@@ -0,0 +1,80 @@
proc freq order=freq data=sashelp.vfunc;
tables source fnctype fncprod;
run;
/*
title 'FNCPROD=B';
proc print data=sashelp.vfunc;
where fncname>' ' & FNCPROD='B';
run;
title 'FNCPROD=X';
proc print data=sashelp.vfunc;
where fncname>' ' & FNCPROD='X';
run;
title 'FNCPROD=T';
proc print data=sashelp.vfunc;
where fncname>' ' & FNCPROD='T';
run;
title 'FNCPROD=I';
proc print data=sashelp.vfunc;
where fncname>' ' & FNCPROD='I';
run;
endsas;
*/
data vfunc;
set sashelp.vfunc end=last;
by fncname;
where fncname>' ' & (fncprod='X' | source=fncprod='B');
file "func.txt";
if _n_=1 then do;
put ";; SAS functions found in sashelp.vfunc where fncprod='X' | source=fncprod='B'";
end;
if last.fncname;
fncname=lowcase(fncname);
retain alpha 'abcdefghijklmnopqrstuvwxyz' prev 1;
format fncname $quote32.;
i=indexc(alpha, substr(fncname, 1, 1));
if i>prev then do;
prev=i;
put;
end;
put fncname @;
if last then put;
run;
data vfunc;
set sashelp.vfunc end=last;
by fncname;
if last.fncname;
where fncname>' ' & (fncprod='X' | source=fncprod='B');
file "check-func.sas";
fncname=trim(lowcase(fncname))||'();';
put fncname;
run;
proc contents varnum;
run;
proc print;
var fncname;
format fncname $quote32.;
run;

80
lisp/ess/etc/proc.sas Normal file
View File

@@ -0,0 +1,80 @@
/*
all.txt scraped from
<https://documentation.sas.com/doc/en/pgmsascdc/9.4_3.5/allprodsproc/procedures.htm>;
*/
data proc;
length name $ 20;
infile 'all.txt';
input name;
if length(name)>1 & name^='SAS';
if verify(name, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ')=0;
name=lowcase(name);
run;
proc sort nodupkey data=proc;
by name;
run;
data proc;
set proc;
by name;
*these PROCs are not present on my system: YMMV;
*if it starts with HP, then it requires the high-performance products;
*where name not in:(
'aggregation', 'appsrv',
'compile',
'db2ext', 'db2util', 'dmsrvadm', 'dmsrvdatasvc', 'dmsrvprocesssvc',
'dqloclst', 'dqmatch', 'dqscheme',
'gis',
'hp',
'imstat', 'imxfer', 'items',
'lasr',
'mddb',
'optgraph',
'pds', 'pdscopy',
'quest',
'rdc', 'rdpool', 'rdsec', 'recommend', 'release', 'risk',
'source',
'tapecopy', 'tapelabel',
'vasmp'
);
run;
proc print;
run;
data proc;
set proc end=last;
file "proc.txt";
retain alpha 'abcdefghijklmnopqrstuvwxyz' prev 1;
format name $quote32.;
i=indexc(alpha, substr(name, 1, 1));
if i>prev then do;
prev=i;
put;
end;
put name @;
if last then put;
run;
data proc;
length name $ 35;
set proc end=last;
format name;
file "check-proc.sas";
name='proc '||trim(name)||';run;quit;';
put name;
run;

23
lisp/ess/etc/proc.txt Normal file
View File

@@ -0,0 +1,23 @@
"access" "aceclus" "adaptivereg" "aggregation" "anom" "anova" "append" "appsrv" "arima" "assess" "astore" "authlib" "autoreg"
"bchoice" "bglimm" "binning" "bnet" "bom" "boolrule" "boxplot" "build"
"calendar" "calis" "callrfc" "cancorr" "candisc" "capability" "cardinality" "carima" "cas" "casutil" "catalog" "catmod" "causalgraph" "causalmed" "causaltrt" "ccdm" "ccopula" "cesm" "chart" "cimport" "clp" "cluster" "cntselect" "compare" "compile" "computab" "contents" "convert" "copula" "copy" "corr" "correlation" "corresp" "countreg" "cpanel" "cpm" "cport" "cqlim" "cspatialreg" "cusum" "cv2view"
"datasets" "datasource" "datekeys" "db2ext" "db2util" "dbcstab" "dbf" "dbload" "delete" "dfil" "dif" "discrim" "display" "distance" "dmsrvadm" "dmsrvdatasvc" "dmsrvprocesssvc" "document" "download" "dqloclst" "dqmatch" "dqscheme" "ds2" "dstods2" "dtree"
"ecm" "entropy" "esm" "expand" "explode" "export"
"factex" "factmac" "factor" "fastclus" "fastknn" "fcmp" "fedsql" "fism" "fmm" "fmtc2itm" "fontreg" "forest" "format" "forms" "freq" "freqtab" "fsbrowse" "fsedit" "fsletter" "fslist" "fsview"
"g3d" "g3grid" "ga" "gam" "gammod" "gampl" "gamselect" "ganno" "gantt" "gareabar" "gbarline" "gchart" "gcontour" "gdevice" "gee" "genmod" "genselect" "geocode" "gfont" "ginside" "gis" "gkpi" "glimmix" "glm" "glmmod" "glmpower" "glmselect" "gmap" "gmm" "goptions" "gplot" "gproject" "gradar" "gradboost" "greduce" "gremove" "greplay" "groovy" "gslide" "gtile" "gvarclus"
"hadoop" "hdmd" "hmm" "hp4score" "hpbin" "hpbnet" "hpboolrule" "hpcandisc" "hpcdm" "hpclus" "hpcopula" "hpcorr" "hpcountreg" "hpdecide" "hpdmdb" "hpds2" "hpexport" "hpf" "hpfarimaspec" "hpfdiagnose" "hpfengine" "hpfesmspec" "hpfevents" "hpfexmspec" "hpfidmspec" "hpfmm" "hpforest" "hpfreconcile" "hpfrepository" "hpfselect" "hpftemprecon" "hpfucmspec" "hpgenselect" "hpimpute" "hplmixed" "hplogistic" "hpmixed" "hpneural" "hpnlmod" "hppanel" "hppls" "hpprincomp" "hpqlim" "hpquantselect" "hpreduce" "hpreg" "hprisk" "hpsample" "hpseverity" "hpsplit" "hpsummary" "hpsvm" "hptmine" "hptmscore" "http"
"ica" "iclifetest" "icphreg" "iml" "import" "imstat" "imxfer" "inbreed" "infomaps" "iomoperate" "irt" "ishikawa" "items"
"javainfo" "json"
"kclus" "kde" "kpca" "krige2d"
"lasr" "lattice" "lifereg" "lifetest" "lmixed" "loan" "localedata" "loess" "logistic" "logselect" "lua"
"macontrol" "mapimport" "mbanalysis" "mbc" "mcmc" "mdc" "mddb" "mds" "mdsummary" "means" "metadata" "metalib" "metaoperate" "mi" "mianalyze" "migrate" "mixed" "modeclus" "model" "modelmatrix" "mtlearn" "multtest" "mvpdiagnose" "mvpmodel" "mvpmonitor" "mwpca"
"nested" "netdraw" "network" "nlin" "nlmixed" "nlmod" "nmf" "nnet" "npar1way"
"odslist" "odstable" "odstext" "olap" "olapcontents" "olapoperate" "operate" "optex" "optgraph" "options" "optload" "optlp" "optlso" "optmilp" "optmodel" "optnet" "optnetwork" "optqp" "optsave" "orthoreg"
"panel" "pareto" "partition" "pca" "pdlreg" "pds" "pdscopy" "phreg" "phselect" "plan" "plm" "plot" "pls" "plsmod" "pm" "pmenu" "power" "presenv" "princomp" "prinqual" "print" "printto" "probit" "proto" "prtdef" "prtexp" "psmatch" "pwencode"
"qdevice" "qlim" "qtrselect" "quantlife" "quantreg" "quantselect" "quest"
"rank" "rareevents" "rdc" "rdpool" "rdsec" "recommend" "reg" "registry" "regselect" "release" "reliability" "report" "risk" "rmstreg" "robustreg" "rpca" "rsreg"
"s3" "sandwich" "scaproc" "score" "scoreaccel" "semisuplearn" "seqdesign" "seqtest" "server" "severity" "sevselect" "sgdesign" "sgmap" "sgpanel" "sgpie" "sgplot" "sgrender" "sgscatter" "shewhart" "sim2d" "similarity" "simlin" "simnormal" "simsystem" "smcalib" "smproject" "smscore" "smselect" "smspec" "soap" "sort" "source" "sparseml" "spatialreg" "spc" "spdo" "spectra" "spp" "sql" "sqoop" "ssm" "standard" "statespace" "stdize" "stdrate" "stepdisc" "stp" "stream" "summary" "surveyfreq" "surveyimpute" "surveylogistic" "surveymeans" "surveyphreg" "surveyreg" "surveyselect" "svdd" "svmachine" "syslin"
"tabulate" "tapecopy" "tapelabel" "textmine" "timedata" "timeid" "timeplot" "timeseries" "tmodel" "tmscore" "tpspline" "transpose" "transreg" "trantab" "tree" "treesplit" "tscsreg" "tsinfo" "tsmodel" "tsne" "tsreconcile" "ttest"
"ucm" "univariate" "upload"
"varclus" "varcomp" "varimpute" "variogram" "varmax" "varreduce" "vasmp"
"x11" "x12" "x13" "xsl"