Ben Pfaff [Sat, 2 Aug 2025 23:30:34 +0000 (16:30 -0700)]
speed up pick_short_names
This made a real difference for tests, even in release mode
Ben Pfaff [Sat, 2 Aug 2025 18:51:11 +0000 (11:51 -0700)]
improve test
Ben Pfaff [Sat, 2 Aug 2025 18:48:36 +0000 (11:48 -0700)]
write fixes
Ben Pfaff [Sat, 2 Aug 2025 16:49:06 +0000 (09:49 -0700)]
cleanup
Ben Pfaff [Sat, 2 Aug 2025 16:45:23 +0000 (09:45 -0700)]
cleanup
Ben Pfaff [Sat, 2 Aug 2025 16:34:05 +0000 (09:34 -0700)]
a little cleanup
Ben Pfaff [Sat, 2 Aug 2025 16:27:48 +0000 (09:27 -0700)]
traits experiment worked -- needs cleanup
Ben Pfaff [Thu, 31 Jul 2025 21:24:44 +0000 (14:24 -0700)]
more experimenting
Ben Pfaff [Thu, 31 Jul 2025 21:01:36 +0000 (14:01 -0700)]
start experiment with Encoding, RawStringTrait, MutRawString
Ben Pfaff [Wed, 30 Jul 2025 22:26:05 +0000 (15:26 -0700)]
First test for writing a system file.
Ben Pfaff [Tue, 29 Jul 2025 19:51:17 +0000 (12:51 -0700)]
works!
Ben Pfaff [Tue, 29 Jul 2025 15:42:16 +0000 (08:42 -0700)]
clenaup
Ben Pfaff [Tue, 29 Jul 2025 15:27:52 +0000 (08:27 -0700)]
passes!
Ben Pfaff [Mon, 28 Jul 2025 23:23:51 +0000 (16:23 -0700)]
start experiment with merging encodeddatum into datum
Ben Pfaff [Mon, 28 Jul 2025 17:00:52 +0000 (10:00 -0700)]
drop default generic
Ben Pfaff [Mon, 28 Jul 2025 16:53:32 +0000 (09:53 -0700)]
get rid of encodeddat
Ben Pfaff [Mon, 28 Jul 2025 16:52:42 +0000 (09:52 -0700)]
succcess
Ben Pfaff [Mon, 28 Jul 2025 16:46:00 +0000 (09:46 -0700)]
progress
Ben Pfaff [Sat, 26 Jul 2025 18:22:07 +0000 (11:22 -0700)]
generalize encodeddatum
Ben Pfaff [Sat, 26 Jul 2025 17:02:25 +0000 (10:02 -0700)]
get rid of default generic parameter
Ben Pfaff [Sat, 26 Jul 2025 16:57:51 +0000 (09:57 -0700)]
encodedstr is dead
Ben Pfaff [Sat, 26 Jul 2025 16:19:51 +0000 (09:19 -0700)]
generalize encodedstring
Ben Pfaff [Sat, 26 Jul 2025 00:02:57 +0000 (17:02 -0700)]
Revert "wokr on encodedstring"
This reverts commit
412fad0b2ed2f6282fce80cde185c261d87f0b69.
Ben Pfaff [Sat, 26 Jul 2025 00:02:54 +0000 (17:02 -0700)]
wokr on encodedstring
Ben Pfaff [Fri, 25 Jul 2025 23:24:47 +0000 (16:24 -0700)]
wokr on types
Ben Pfaff [Fri, 25 Jul 2025 14:55:48 +0000 (07:55 -0700)]
work on datum
Ben Pfaff [Fri, 25 Jul 2025 14:53:28 +0000 (07:53 -0700)]
more datum
Ben Pfaff [Fri, 25 Jul 2025 14:47:48 +0000 (07:47 -0700)]
work on datum
Ben Pfaff [Fri, 25 Jul 2025 01:55:12 +0000 (18:55 -0700)]
start generalizing datum
Ben Pfaff [Fri, 25 Jul 2025 01:49:38 +0000 (18:49 -0700)]
get rid of dat
Ben Pfaff [Fri, 25 Jul 2025 01:48:51 +0000 (18:48 -0700)]
generalize datum, without yet getting rid of dat
Ben Pfaff [Fri, 25 Jul 2025 01:34:06 +0000 (18:34 -0700)]
Use EncodedDatum all over
Ben Pfaff [Thu, 24 Jul 2025 17:10:46 +0000 (10:10 -0700)]
systematize all the raw/encoded data types
Ben Pfaff [Wed, 23 Jul 2025 14:29:56 +0000 (07:29 -0700)]
make encoding private
Ben Pfaff [Wed, 23 Jul 2025 00:26:14 +0000 (17:26 -0700)]
work on making dictionary fields private
Ben Pfaff [Tue, 22 Jul 2025 21:40:43 +0000 (14:40 -0700)]
Implement vectors accessor for dictionary
Ben Pfaff [Tue, 22 Jul 2025 16:22:49 +0000 (09:22 -0700)]
work on json output
Ben Pfaff [Tue, 22 Jul 2025 01:44:08 +0000 (18:44 -0700)]
cleanup
Ben Pfaff [Mon, 21 Jul 2025 23:17:43 +0000 (16:17 -0700)]
work
Ben Pfaff [Mon, 21 Jul 2025 16:29:35 +0000 (09:29 -0700)]
cleanups
Ben Pfaff [Sun, 20 Jul 2025 21:57:25 +0000 (14:57 -0700)]
work on writing compressed
Ben Pfaff [Sun, 20 Jul 2025 15:18:19 +0000 (08:18 -0700)]
cleanup
Ben Pfaff [Sat, 19 Jul 2025 21:14:34 +0000 (14:14 -0700)]
compressed writing
Ben Pfaff [Sat, 19 Jul 2025 21:04:10 +0000 (14:04 -0700)]
work on writer
Ben Pfaff [Sat, 19 Jul 2025 20:30:22 +0000 (13:30 -0700)]
convert to sav works!
Ben Pfaff [Sat, 19 Jul 2025 17:29:25 +0000 (10:29 -0700)]
bulk of sav writer
Ben Pfaff [Sat, 19 Jul 2025 00:34:03 +0000 (17:34 -0700)]
work on writing sav files
Ben Pfaff [Fri, 18 Jul 2025 16:10:56 +0000 (09:10 -0700)]
work on writing system files
Ben Pfaff [Fri, 18 Jul 2025 01:12:26 +0000 (18:12 -0700)]
rust: Add element_offset() and subslice_range() functions.
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.
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).
Ben Pfaff [Fri, 11 Jul 2025 23:53:49 +0000 (16:53 -0700)]
rust: Fix `cargo doc` warnings.
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.
Ben Pfaff [Fri, 11 Jul 2025 00:23:02 +0000 (17:23 -0700)]
Fix expected output for compressed data tests.
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>
Ben Pfaff [Thu, 5 Jun 2025 20:18:02 +0000 (13:18 -0700)]
ext-array: Use fseeko64 instead of fseeko, if available.
Ben Pfaff [Wed, 4 Jun 2025 21:34:03 +0000 (14:34 -0700)]
DESCRIPTIVES: Fix calculation of Z-scores with listwise missing values.
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.
Ben Pfaff [Fri, 7 Mar 2025 00:44:07 +0000 (16:44 -0800)]
po: Update 'sv' translation from translationproject.org.
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.
Ben Pfaff [Tue, 11 Feb 2025 16:40:24 +0000 (08:40 -0800)]
po: Add sv (Swedish) translation from translationproject.org.
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
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.
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.
Ben Pfaff [Sun, 1 Dec 2024 23:33:55 +0000 (15:33 -0800)]
po: Update translations.
Ben Pfaff [Tue, 26 Nov 2024 19:28:10 +0000 (11:28 -0800)]
po: Update translations.
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.
Friedrich Beckmann [Fri, 22 Nov 2024 13:35:16 +0000 (14:35 +0100)]
README.Git: Just Whitespace
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
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
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.
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.
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.
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.
Ben Pfaff [Fri, 27 Sep 2024 14:49:21 +0000 (07:49 -0700)]
po: Update translations from translationproject.org.
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.
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
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.
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
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
John Darrington [Sat, 14 Oct 2023 04:56:51 +0000 (06:56 +0200)]
Recent ssw to 0.10
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
Ben Pfaff [Sun, 5 May 2024 19:35:25 +0000 (12:35 -0700)]
LOOP: Fix null pointer dereference for errors with index expressions.
Thanks to Zhou Geng for reporting this bug as poc8 in the report here:
https://lists.gnu.org/archive/html/bug-gnu-pspp/2024-03/msg00015.html
Ben Pfaff [Sun, 5 May 2024 18:40:40 +0000 (11:40 -0700)]
NPAR: Fix order of arguments to xnmalloc().
Ben Pfaff [Fri, 3 May 2024 21:45:11 +0000 (14:45 -0700)]
pivot-output: Fix crash when layers axis has no leaves.
Thanks to Zhou Geng for reporting this bug as poc6 in the report here:
https://lists.gnu.org/archive/html/bug-gnu-pspp/2024-03/msg00015.html
Ben Pfaff [Fri, 3 May 2024 16:25:10 +0000 (09:25 -0700)]
MCONVERT: Prevent from appearing inside DO IF or LOOP.
Also, fix a typo in a user string.
Thanks to Zhou Geng for reporting this bug as poc5 in the report here:
https://lists.gnu.org/archive/html/bug-gnu-pspp/2024-03/msg00015.html
Ben Pfaff [Fri, 3 May 2024 16:21:05 +0000 (09:21 -0700)]
MATRIX: Prevent from appearing inside DO IF or LOOP.
Thanks to Zhou Geng for reporting this bug as poc3 in the report here:
https://lists.gnu.org/archive/html/bug-gnu-pspp/2024-03/msg00015.html
Ben Pfaff [Fri, 3 May 2024 00:36:07 +0000 (17:36 -0700)]
MATRIX: Avoid assertion failure when DO IF has multiple ELSEs.
Thanks to Zhou Geng for reporting this bug as poc42 in the report here:
https://lists.gnu.org/archive/html/bug-gnu-pspp/2024-03/msg00015.html
Ben Pfaff [Thu, 2 May 2024 19:59:12 +0000 (12:59 -0700)]
expressions: Fix crash on type mismatch corner case.
Thanks to Zhou Geng for reporting this bug as poc37 in the report here:
https://lists.gnu.org/archive/html/bug-gnu-pspp/2024-03/msg00015.html
Ben Pfaff [Fri, 19 Apr 2024 16:46:05 +0000 (09:46 -0700)]
ascii: Avoid assertion failure on width underflow in text_draw().
Thanks to Zhou Geng for reporting this bug as poc33 in the report here:
https://lists.gnu.org/archive/html/bug-gnu-pspp/2024-03/msg00015.html
Ben Pfaff [Fri, 19 Apr 2024 00:27:12 +0000 (17:27 -0700)]
transformations: Fix memory error in trns_chain_prepend().
This only worked if the transformation chain had one element.
Thanks to Zhou Geng for reporting this bug as poc30 in the report here:
https://lists.gnu.org/archive/html/bug-gnu-pspp/2024-03/msg00015.html
Ben Pfaff [Sun, 14 Apr 2024 17:07:16 +0000 (10:07 -0700)]
LIST: Fix bug listing duplicate variables.
Thanks to Zhou Geng for reporting this bug as poc28 in the report here:
https://lists.gnu.org/archive/html/bug-gnu-pspp/2024-03/msg00015.html
Ben Pfaff [Sun, 14 Apr 2024 16:51:58 +0000 (09:51 -0700)]
SHOW: Fix memory leak on error path.
Ben Pfaff [Sun, 14 Apr 2024 16:48:23 +0000 (09:48 -0700)]
SHOW: Fix crash in SHOW TITLE and SHOW SUBTITLE if there is no (sub)title.
Thanks to Zhou Geng for reporting this bug as poc14 in the report here:
https://lists.gnu.org/archive/html/bug-gnu-pspp/2024-03/msg00015.html
Ben Pfaff [Sun, 14 Apr 2024 16:44:44 +0000 (09:44 -0700)]
po: Update translations from translationproject.org.
Ben Pfaff [Sun, 14 Apr 2024 16:14:43 +0000 (09:14 -0700)]
u8-line: Fix handling of double-width characters in u8_line_reserve().
This code was terribly confusing. This adds a little redundancy but it is
easier to understand.
This is difficult logic and more bugs may lurk.
Thanks to Zhou Geng for reporting this bug as poc13 in the report here:
https://lists.gnu.org/archive/html/bug-gnu-pspp/2024-03/msg00015.html
Ben Pfaff [Sun, 14 Apr 2024 16:11:12 +0000 (09:11 -0700)]
u8-line: Fix read past end of buffer in u8_line_find_pos().
Ben Pfaff [Thu, 4 Apr 2024 20:53:36 +0000 (13:53 -0700)]
Fix bug found by fuzzer.
Thanks to Zhou Geng for reporting this bug as poc9 in the report here:
https://lists.gnu.org/archive/html/bug-gnu-pspp/2024-03/msg00015.html
Ben Pfaff [Wed, 3 Apr 2024 20:11:38 +0000 (13:11 -0700)]
po: Update translations from translationproject.org.
Ben Pfaff [Mon, 1 Apr 2024 17:38:23 +0000 (10:38 -0700)]
po: Update translations from translationproject.org.