pspp
12 days agowork
Ben Pfaff [Sat, 18 Oct 2025 15:06:02 +0000 (08:06 -0700)]
work

12 days agoall files in submissions/spv parse
Ben Pfaff [Sat, 18 Oct 2025 14:41:16 +0000 (07:41 -0700)]
all files in submissions/spv parse

12 days agosome tables parse
Ben Pfaff [Fri, 17 Oct 2025 23:13:42 +0000 (16:13 -0700)]
some tables parse

12 days agowork
Ben Pfaff [Fri, 17 Oct 2025 21:36:51 +0000 (14:36 -0700)]
work

12 days agowork on legacy spvs
Ben Pfaff [Fri, 17 Oct 2025 20:44:33 +0000 (13:44 -0700)]
work on legacy spvs

13 days agosupport images in spv files
Ben Pfaff [Thu, 16 Oct 2025 23:13:56 +0000 (16:13 -0700)]
support images in spv files

13 days agowork - now all files in the corpus successfully load
Ben Pfaff [Thu, 16 Oct 2025 20:05:46 +0000 (13:05 -0700)]
work - now all files in the corpus successfully load

2 weeks agowork
Ben Pfaff [Thu, 16 Oct 2025 16:08:13 +0000 (09:08 -0700)]
work

2 weeks agowork
Ben Pfaff [Thu, 16 Oct 2025 14:35:04 +0000 (07:35 -0700)]
work

2 weeks agowork
Ben Pfaff [Thu, 16 Oct 2025 14:18:54 +0000 (07:18 -0700)]
work

2 weeks agowork
Ben Pfaff [Wed, 15 Oct 2025 21:51:19 +0000 (14:51 -0700)]
work

2 weeks agofix
Ben Pfaff [Tue, 14 Oct 2025 23:36:11 +0000 (16:36 -0700)]
fix

2 weeks agoimprove value parsing
Ben Pfaff [Tue, 14 Oct 2025 20:57:57 +0000 (13:57 -0700)]
improve value parsing

2 weeks agowork
Ben Pfaff [Tue, 14 Oct 2025 17:01:52 +0000 (10:01 -0700)]
work

2 weeks agowork
Ben Pfaff [Tue, 14 Oct 2025 15:50:34 +0000 (08:50 -0700)]
work

2 weeks agowork
Ben Pfaff [Mon, 13 Oct 2025 15:46:42 +0000 (08:46 -0700)]
work

2 weeks agowork
Ben Pfaff [Mon, 13 Oct 2025 02:36:57 +0000 (19:36 -0700)]
work

2 weeks agowork
Ben Pfaff [Mon, 13 Oct 2025 02:00:15 +0000 (19:00 -0700)]
work

2 weeks agowork on output items
Ben Pfaff [Sun, 12 Oct 2025 18:10:58 +0000 (11:10 -0700)]
work on output items

2 weeks agoIntroduce Heading type and into_item().
Ben Pfaff [Sun, 12 Oct 2025 17:48:46 +0000 (10:48 -0700)]
Introduce Heading type and into_item().

2 weeks agowork
Ben Pfaff [Sun, 12 Oct 2025 17:09:51 +0000 (10:09 -0700)]
work

2 weeks agowork
Ben Pfaff [Sun, 12 Oct 2025 00:52:54 +0000 (17:52 -0700)]
work

2 weeks agowork
Ben Pfaff [Sat, 11 Oct 2025 05:12:25 +0000 (22:12 -0700)]
work

2 weeks agoDrop flagset crate in favor of enumset.
Ben Pfaff [Sat, 11 Oct 2025 05:11:08 +0000 (22:11 -0700)]
Drop flagset crate in favor of enumset.

2 weeks agoDrop bitflags crate in favor of enumset.
Ben Pfaff [Sat, 11 Oct 2025 05:08:02 +0000 (22:08 -0700)]
Drop bitflags crate in favor of enumset.

2 weeks agocan parse selections
Ben Pfaff [Fri, 10 Oct 2025 22:34:25 +0000 (15:34 -0700)]
can parse selections

2 weeks agowork
Ben Pfaff [Fri, 10 Oct 2025 16:36:12 +0000 (09:36 -0700)]
work

3 weeks agowork
Ben Pfaff [Thu, 9 Oct 2025 16:10:54 +0000 (09:10 -0700)]
work

3 weeks agowork
Ben Pfaff [Thu, 9 Oct 2025 15:40:25 +0000 (08:40 -0700)]
work

3 weeks agoAdd serde support to paper-sizes.
Ben Pfaff [Mon, 6 Oct 2025 16:26:11 +0000 (09:26 -0700)]
Add serde support to paper-sizes.

3 weeks agowork on pagesetup
Ben Pfaff [Mon, 6 Oct 2025 01:11:10 +0000 (18:11 -0700)]
work on pagesetup

3 weeks agowork on reading spv files
Ben Pfaff [Thu, 25 Sep 2025 14:50:18 +0000 (07:50 -0700)]
work on reading spv files

3 weeks agorust: Move output drivers to drivers module.
Ben Pfaff [Wed, 24 Sep 2025 15:56:09 +0000 (08:56 -0700)]
rust: Move output drivers to drivers module.

3 weeks agorust: Add `PaperSize` parsing and formatting in paper-sizes crate.
Ben Pfaff [Mon, 6 Oct 2025 01:10:54 +0000 (18:10 -0700)]
rust: Add `PaperSize` parsing and formatting in paper-sizes crate.

3 weeks agorust: Fix author in Cargo.toml in paper-sizes crate.
Ben Pfaff [Mon, 6 Oct 2025 01:10:13 +0000 (18:10 -0700)]
rust: Fix author in Cargo.toml in paper-sizes crate.

3 weeks agorust: New Rust crate `paper-sizes` for detecting paper sizes and defaults.
Ben Pfaff [Fri, 3 Oct 2025 18:45:05 +0000 (11:45 -0700)]
rust: New Rust crate `paper-sizes` for detecting paper sizes and defaults.

5 weeks agorust: Release version 0.5.0.
Ben Pfaff [Wed, 24 Sep 2025 15:12:00 +0000 (08:12 -0700)]
rust: Release version 0.5.0.

5 weeks agorust: Add support for reading SPSS/PC+ system files.
Ben Pfaff [Wed, 17 Sep 2025 15:45:57 +0000 (08:45 -0700)]
rust: Add support for reading SPSS/PC+ system files.

Signed-off-by: Ben Pfaff <blp@cs.stanford.edu>
5 weeks agorust: Run `cargo fmt`.
Ben Pfaff [Wed, 24 Sep 2025 00:16:56 +0000 (17:16 -0700)]
rust: Run `cargo fmt`.

6 weeks agodoc: Remove unused file.
Ben Pfaff [Wed, 17 Sep 2025 15:41:16 +0000 (08:41 -0700)]
doc: Remove unused file.

6 weeks agorust: Release version 0.4.0
Ben Pfaff [Wed, 17 Sep 2025 15:29:00 +0000 (08:29 -0700)]
rust: Release version 0.4.0

6 weeks agorust: Add support for portable files.
Ben Pfaff [Wed, 17 Sep 2025 15:17:38 +0000 (08:17 -0700)]
rust: Add support for portable files.

6 weeks agorust: Rename `test` modules to `tests` for consistency.
Ben Pfaff [Sun, 14 Sep 2025 21:02:59 +0000 (14:02 -0700)]
rust: Rename `test` modules to `tests` for consistency.

6 weeks agorust: Allow creation date in system files to contain dashes.
Ben Pfaff [Mon, 15 Sep 2025 19:51:19 +0000 (12:51 -0700)]
rust: Allow creation date in system files to contain dashes.

6 weeks agorust: Add license and copyright text to the rendered documentation.
Ben Pfaff [Thu, 4 Sep 2025 20:34:28 +0000 (13:34 -0700)]
rust: Add license and copyright text to the rendered documentation.

8 weeks agorust: Fix doctests for lib.rs.
Ben Pfaff [Wed, 3 Sep 2025 18:27:01 +0000 (11:27 -0700)]
rust: Fix doctests for lib.rs.

Shell commands should not be tested as if they are Rust source code.

8 weeks agorust: Rename `mod.rs` files to reflect module names.
Ben Pfaff [Wed, 3 Sep 2025 18:24:28 +0000 (11:24 -0700)]
rust: Rename `mod.rs` files to reflect module names.

This is the more modern Rust style of file naming, which avoids having
many files named `mod.rs`, reducing confusion in editors.

8 weeks agorust: Release version 0.3.0.
Ben Pfaff [Tue, 2 Sep 2025 23:42:29 +0000 (16:42 -0700)]
rust: Release version 0.3.0.

8 weeks agorust: Add top-level documentation for the PSPP crate.
Ben Pfaff [Tue, 2 Sep 2025 23:41:48 +0000 (16:41 -0700)]
rust: Add top-level documentation for the PSPP crate.

8 weeks agorust: Minor documentation update.
Ben Pfaff [Tue, 2 Sep 2025 23:08:35 +0000 (16:08 -0700)]
rust: Minor documentation update.

8 weeks agorust: Move all command documentation into a single directory.
Ben Pfaff [Tue, 2 Sep 2025 22:37:42 +0000 (15:37 -0700)]
rust: Move all command documentation into a single directory.

This makes it much easier to find the documentation for a command, or to
reference a command's documentation, because it's not necessary to guess
which chapter it is documented in.

8 weeks agorust: Improve documentation for `pspp decrypt` and `pspp show`.
Ben Pfaff [Tue, 2 Sep 2025 21:56:23 +0000 (14:56 -0700)]
rust: Improve documentation for `pspp decrypt` and `pspp show`.

Also, update `pspp show` implementation to match.

2 months agorust: Fix clippy warnings.
Ben Pfaff [Fri, 29 Aug 2025 00:01:58 +0000 (17:01 -0700)]
rust: Fix clippy warnings.

2 months agorust: Fix warnings from newer version of rustc.
Ben Pfaff [Thu, 28 Aug 2025 23:22:43 +0000 (16:22 -0700)]
rust: Fix warnings from newer version of rustc.

2 months agorust: Document `pspp decrypt`.
Ben Pfaff [Mon, 25 Aug 2025 19:01:36 +0000 (12:01 -0700)]
rust: Document `pspp decrypt`.

2 months agorust: Work on chapter in manual on invoking PSPP.
Ben Pfaff [Mon, 25 Aug 2025 03:15:38 +0000 (20:15 -0700)]
rust: Work on chapter in manual on invoking PSPP.

2 months agorust: Break CLI commands into separate Rust modules.
Ben Pfaff [Mon, 25 Aug 2025 02:48:22 +0000 (19:48 -0700)]
rust: Break CLI commands into separate Rust modules.

2 months agorust: Refactor how CSV output is written to avoid most heap allocations.
Ben Pfaff [Mon, 25 Aug 2025 02:33:29 +0000 (19:33 -0700)]
rust: Refactor how CSV output is written to avoid most heap allocations.

2 months agorust: Introduce Datum::is_string, Datum::is_number.
Ben Pfaff [Mon, 25 Aug 2025 02:30:28 +0000 (19:30 -0700)]
rust: Introduce Datum::is_string, Datum::is_number.

2 months agorust: Introduce `.to_small_string()` helper trait.
Ben Pfaff [Mon, 25 Aug 2025 02:30:02 +0000 (19:30 -0700)]
rust: Introduce `.to_small_string()` helper trait.

2 months agorust: Implement the remaining CSV output options for `pspp convert`.
Ben Pfaff [Sun, 24 Aug 2025 20:32:01 +0000 (13:32 -0700)]
rust: Implement the remaining CSV output options for `pspp convert`.

2 months agorust: Make .display_plain() for f64 support alternate decimal points.
Ben Pfaff [Sun, 24 Aug 2025 22:17:47 +0000 (15:17 -0700)]
rust: Make .display_plain() for f64 support alternate decimal points.

2 months agorust: Switch to `hashbrown` for value labels to allow more flexible lookup.
Ben Pfaff [Sun, 24 Aug 2025 22:16:19 +0000 (15:16 -0700)]
rust: Switch to `hashbrown` for value labels to allow more flexible lookup.

The `Equivalent` trait allows us to look up keys that cannot directly
`Borrow` the values in the hash table, which increases the flexibility
and makes value label lookup much easier.

2 months agorust: Change ByteStr from wrapping &[u8] to wrapping [u8].
Ben Pfaff [Sun, 24 Aug 2025 20:51:09 +0000 (13:51 -0700)]
rust: Change ByteStr from wrapping &[u8] to wrapping [u8].

This allows ByteString to implement Borrow<ByteStr>, which makes lookup
in collections easier.

Signed-off-by: Ben Pfaff <blp@cs.stanford.edu>
2 months agorust: Update README.
Ben Pfaff [Sun, 24 Aug 2025 18:41:15 +0000 (11:41 -0700)]
rust: Update README.

2 months agorust: Major additions.
Ben Pfaff [Fri, 18 Jul 2025 16:10:56 +0000 (09:10 -0700)]
rust: Major additions.

This adds support for writing system files to the Rust pspp library and
to the `convert` command in the Rust CLI.  It also renames the `dissect`
command in the CLI to `show` and adds numerous features to it.

This makes many bug fixes across the Rust pspp library and changes the
library internals in several ways.

3 months agorust: Add element_offset() and subslice_range() functions.
Ben Pfaff [Fri, 18 Jul 2025 01:12:26 +0000 (18:12 -0700)]
rust: Add element_offset() and subslice_range() functions.

3 months agorust: Switch from `finl_unicode` to `unicode-properties` crate.
Ben Pfaff [Fri, 18 Jul 2025 00:14:08 +0000 (17:14 -0700)]
rust: Switch from `finl_unicode` to `unicode-properties` crate.

I like its design better.

3 months agorust: Clean up and improve system file handling; add "pspp decrypt".
Ben Pfaff [Sat, 12 Jul 2025 00:05:30 +0000 (17:05 -0700)]
rust: Clean up and improve system file handling; add "pspp decrypt".

This commit substantially improves the system file reader and refactors
and documents it.  It adds the "pspp decrypt" command to the command-line
interface and removes the standalone "sack" example program (which was not
really useful).

3 months agorust: Fix `cargo doc` warnings.
Ben Pfaff [Fri, 11 Jul 2025 23:53:49 +0000 (16:53 -0700)]
rust: Fix `cargo doc` warnings.

3 months agorust: Add support for decrypting encrypted SPSS files.
Ben Pfaff [Thu, 10 Jul 2025 00:48:13 +0000 (17:48 -0700)]
rust: Add support for decrypting encrypted SPSS files.

Also, fix a bug in the C implementation of password decoding.

3 months agoFix expected output for compressed data tests.
Ben Pfaff [Fri, 11 Jul 2025 00:23:02 +0000 (17:23 -0700)]
Fix expected output for compressed data tests.

3 months agoInitial work on Rust implementation of PSPP.
Ben Pfaff [Sun, 19 Mar 2023 00:50:19 +0000 (17:50 -0700)]
Initial work on Rust implementation of PSPP.

To run what's here, use `cargo run` inside the `rust` directory to run
it in place, or `cargo install` to install it to a local directory.  The
`convert` command is the only thing that really works so far.

Signed-off-by: Ben Pfaff <blp@cs.stanford.edu>
4 months agoext-array: Use fseeko64 instead of fseeko, if available.
Ben Pfaff [Thu, 5 Jun 2025 20:18:02 +0000 (13:18 -0700)]
ext-array: Use fseeko64 instead of fseeko, if available.

4 months agoDESCRIPTIVES: Fix calculation of Z-scores with listwise missing values.
Ben Pfaff [Wed, 4 Jun 2025 21:34:03 +0000 (14:34 -0700)]
DESCRIPTIVES: Fix calculation of Z-scores with listwise missing values.

5 months agoMacOS: Adapt Readme and initialization for bundle
Friedrich Beckmann [Fri, 30 May 2025 11:51:29 +0000 (13:51 +0200)]
MacOS: Adapt Readme and initialization for bundle

I changed the way the bundle is build to allow codesigning.
The binary is moved to Content/MacOS and therefore the location
of the resources like icons is changed with respect to the
binary location.

7 months agopo: Update 'sv' translation from translationproject.org.
Ben Pfaff [Fri, 7 Mar 2025 00:44:07 +0000 (16:44 -0800)]
po: Update 'sv' translation from translationproject.org.

8 months agoFix order of variables in error message.
Ben Pfaff [Mon, 17 Feb 2025 17:39:54 +0000 (09:39 -0800)]
Fix order of variables in error message.

Thanks to Frans Houweling for reporting the bug.

8 months agopo: Add sv (Swedish) translation from translationproject.org.
Ben Pfaff [Tue, 11 Feb 2025 16:40:24 +0000 (08:40 -0800)]
po: Add sv (Swedish) translation from translationproject.org.

8 months agoIndependent Samples T-Test Dialog: Fix Crash
John Darrington [Mon, 3 Feb 2025 16:27:05 +0000 (17:27 +0100)]
Independent Samples T-Test Dialog: Fix Crash

Only unref the existing grouping variable, if the new one is non-null.
Otherwise it gets unreffed too many times.

Fixes bug 66747

9 months agoQUICK CLUSTER: Use fixed format for cluster centers.
Ben Pfaff [Tue, 28 Jan 2025 22:22:51 +0000 (14:22 -0800)]
QUICK CLUSTER: Use fixed format for cluster centers.

This command used the variables' own formats for their centers.  This was
a bad idea for at least two reasons.  First, the variables might have a
format that does not show any decimal places, but clusters wouldn't
ordinarily have integer centers, so this is confusing.  Second, if a
cluster center happens to have a value label, it could be shown instead,
which is even more confusing.  This fixes the problem by using a fixed
format instead.

Thanks to Andreas Hammer for reporting the problem.

10 months agotests: Make it harder to run the testsuite outside of "make check".
Ben Pfaff [Wed, 4 Dec 2024 22:28:31 +0000 (14:28 -0800)]
tests: Make it harder to run the testsuite outside of "make check".

This confused a user.

10 months agopo: Update translations.
Ben Pfaff [Sun, 1 Dec 2024 23:33:55 +0000 (15:33 -0800)]
po: Update translations.

11 months agopo: Update translations.
Ben Pfaff [Tue, 26 Nov 2024 19:28:10 +0000 (11:28 -0800)]
po: Update translations.

11 months agoREADME.Git: More MacOS build and debug infos. Switch to brew
Friedrich Beckmann [Fri, 22 Nov 2024 13:50:43 +0000 (14:50 +0100)]
README.Git: More MacOS build and debug infos. Switch to brew

I modified the build instructions from macports to brew because
I use brew now. I added some instructions for debugging with lldb.

11 months agoREADME.Git: Just Whitespace
Friedrich Beckmann [Fri, 22 Nov 2024 13:35:16 +0000 (14:35 +0100)]
README.Git: Just Whitespace

11 months agomessage: check if location is present before accessing it
Friedrich Beckmann [Fri, 22 Nov 2024 13:21:27 +0000 (14:21 +0100)]
message: check if location is present before accessing it

The message location is accessed without checking if the
location is actually present. I added a check if the message
location is there. Thanks to Simon Jacobs for reporting the
bug!

Closes: https://savannah.gnu.org/bugs/?66239
11 months agoimport assistant: fix variable width after guesser with output constraints
Friedrich Beckmann [Thu, 21 Nov 2024 12:25:10 +0000 (13:25 +0100)]
import assistant: fix variable width after guesser with output constraints

The current code fixes the guessed variable width according to
input constraints. But the data output stages checks the
width against output constraints. The minimum width for FMT_E
is 1 for input and 6 for output. When the guesser proposes FMT_E
with width 5, then 5 is chosen. With this patch, the width is
fixed to 6.

Thanks to Fatemeh Ilkhani for reporting the bug and providing a
csv that triggers the crash.

Closes: https://savannah.gnu.org/bugs/?66456
12 months agoMATRIX: Fix test for very large matrix.
Ben Pfaff [Mon, 21 Oct 2024 17:49:00 +0000 (10:49 -0700)]
MATRIX: Fix test for very large matrix.

I kept getting processes killed as out-of-memory for the "MATRIX - very
large matrices" test.  Somehow, GSL was really trying to allocate a
matrix with 230,000,000,000 elements, which would require 1.84 PB of
memory, which I don't have.

This makes the matrix allocator report out-of-memory if a sequence would
have more than about 2 billion elements, fixing my OOM killer problem.

12 months agoAdd translation context for statistical "Error"
Theppitak Karoonboonyanan [Fri, 11 Oct 2024 09:46:06 +0000 (16:46 +0700)]
Add translation context for statistical "Error"

Since gnulib's gettext.h defines pgettext() as macro with string
catenation, it's impossible to add pgettext version API for
pivot_value_new_text().  Rather, the pivot_value creation part is
split into pivot_value_new_text_translate() and let's expand
pgettext() upon calling it.

With this, C_() and NC_() macros are defined for translation with
context.

Fixing bug #66244.

12 months agogui: Fix translatability of tip meant for non-free operating systems.
Ben Pfaff [Mon, 21 Oct 2024 16:42:52 +0000 (09:42 -0700)]
gui: Fix translatability of tip meant for non-free operating systems.

Thanks to Theppitak Karoonboonyanan for reporting this bug.

12 months agowindows: update spreadsheet build dependency from 0.8 to 0.10
Friedrich Beckmann [Sun, 13 Oct 2024 14:47:05 +0000 (16:47 +0200)]
windows: update spreadsheet build dependency from 0.8 to 0.10

The windows build on cais.etech.fh-augsburg.de failed because
the windows build dependencies script build spread-sheet 0.8
while pspp now insists on 0.10.

13 months agopo: Update translations from translationproject.org.
Ben Pfaff [Fri, 27 Sep 2024 14:49:21 +0000 (07:49 -0700)]
po: Update translations from translationproject.org.

14 months agodoc: Document FILTER on REGRESSION.
Ben Pfaff [Mon, 19 Aug 2024 22:08:01 +0000 (15:08 -0700)]
doc: Document FILTER on REGRESSION.

Thanks to Andreas Hammer for the suggestion.

16 months agoAvoid a crash when attempting to allocate very large matrices.
John Darrington [Sun, 9 Jun 2024 10:16:38 +0000 (12:16 +0200)]
Avoid a crash when attempting to allocate very large matrices.

Partial fix for bug #65545

16 months agoClipboard: psppire-output-view - Adapt advertised target formats
Friedrich Beckmann [Sun, 2 Jun 2024 17:45:01 +0000 (19:45 +0200)]
Clipboard: psppire-output-view - Adapt advertised target formats

When charts are copied to the clipboard, then also text formats
were advertised. This patch restricts the advertised clipboard
formats such that applications choose the correct format.

See: https://savannah.gnu.org/bugs/?65288

The preferred format for charts/images is svg or some image format
For tables no image format is advertised such that John can paste
html as editable table in libreoffice.

16 months agoFix a crash when attempting to add vectors whose names differed only in case.
John Darrington [Sun, 2 Jun 2024 15:11:36 +0000 (17:11 +0200)]
Fix a crash when attempting to add vectors whose names differed only in case.

Partial fix for bug #65545

16 months agoFix an assertion failure when running PERMISSIONS with the --safer option
John Darrington [Sun, 2 Jun 2024 09:43:27 +0000 (11:43 +0200)]
Fix an assertion failure  when running PERMISSIONS with the --safer option

Partial fix for bug #65545

16 months agoRecent ssw to 0.10
John Darrington [Sat, 14 Oct 2023 04:56:51 +0000 (06:56 +0200)]
Recent ssw to 0.10

17 months agodoc: set LC_ALL=C for building tutorial images
Friedrich Beckmann [Sat, 11 May 2024 15:20:46 +0000 (17:20 +0200)]
doc: set LC_ALL=C for building tutorial images

The previous commit to fix the "make install" problem in shells which
have a locale setting different from "US" did not work for Bernd on
archlinux. Thanks for reporting the problem!

Closes: https://savannah.gnu.org/bugs/?65124