Skip to content

Commit

Permalink
maint: Merge default to bytecode-interpreter
Browse files Browse the repository at this point in the history
  • Loading branch information
arungiridhar committed Nov 19, 2024
2 parents 04f2510 + 737ae68 commit 971d894
Show file tree
Hide file tree
Showing 13 changed files with 179 additions and 67 deletions.
5 changes: 5 additions & 0 deletions .github/workflows/make-alpine.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,12 @@ jobs:
echo gfortran --version
gfortran --version
mkdir .build
echo "::group::Run configure script"
cd .build && ../configure
echo "::endgroup::"
echo "::group::Show config.log"
cat ./config.log
echo "::endgroup::"
- name: build
# Parallel make seems to fail intermittently when creating the figures
Expand Down
12 changes: 9 additions & 3 deletions .github/workflows/make-macos.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ jobs:
brew install --overwrite [email protected] [email protected]
brew reinstall gcc
brew install arpack epstool fftw fig2dev fltk fontconfig freetype \
ghostscript gl2ps glpk gnuplot graphicsmagick hdf5 libsndfile \
ghostscript gl2ps glpk gnuplot graphicsmagick hdf5 libiconv libsndfile \
libtool openblas pcre2 portaudio pstoedit qhull qrupdate \
qscintilla2 qt@${{ matrix.qt }} rapidjson readline suite-sparse sundials texinfo \
ccache gnu-sed openjdk pkg-config \
Expand All @@ -81,6 +81,7 @@ jobs:
echo "${HOMEBREW_PREFIX}/opt/texinfo/bin" >> $GITHUB_PATH
echo "${HOMEBREW_PREFIX}/opt/bison/bin" >> $GITHUB_PATH
echo "${HOMEBREW_PREFIX}/opt/gnu-sed/libexec/gnubin" >> $GITHUB_PATH
echo "${HOMEBREW_PREFIX}/opt/libiconv/bin" >> $GITHUB_PATH
- name: prepare ccache
# create key with human readable timestamp
Expand Down Expand Up @@ -138,19 +139,24 @@ jobs:
echo gfortran --version
gfortran --version
mkdir .build
echo "::group::Run configure script"
cd .build && ../configure \
CXX="${CXX} ${{ matrix.cxx-compiler-flags }}" \
F77="ccache gfortran" \
CPPFLAGS="-I${HOMEBREW_PREFIX}/opt/gettext/include -I${HOMEBREW_PREFIX}/opt/icu4c/include -I${HOMEBREW_PREFIX}/opt/qt@${{ matrix.qt }}/include -I${HOMEBREW_PREFIX}/opt/readline/include -I${HOMEBREW_PREFIX}/opt/sqlite/include $MY_CPPFLAGS -I${HOMEBREW_PREFIX}/include" \
CPPFLAGS="-I${HOMEBREW_PREFIX}/opt/gettext/include -I${HOMEBREW_PREFIX}/opt/icu4c/include -I${HOMEBREW_PREFIX}/opt/libiconv/include -I${HOMEBREW_PREFIX}/opt/qt@${{ matrix.qt }}/include -I${HOMEBREW_PREFIX}/opt/readline/include -I${HOMEBREW_PREFIX}/opt/sqlite/include $MY_CPPFLAGS -I${HOMEBREW_PREFIX}/include" \
CXXFLAGS="-O2 -g" \
LDFLAGS="-L${HOMEBREW_PREFIX}/opt/bison/lib -L${HOMEBREW_PREFIX}/opt/gettext/lib -L${HOMEBREW_PREFIX}/opt/icu4c/lib -L${HOMEBREW_PREFIX}/opt/readline/lib -L${HOMEBREW_PREFIX}/opt/sqlite/lib $MY_LDFLAGS -L${HOMEBREW_PREFIX}/lib" \
LDFLAGS="-L${HOMEBREW_PREFIX}/opt/bison/lib -L${HOMEBREW_PREFIX}/opt/gettext/lib -L${HOMEBREW_PREFIX}/opt/icu4c/lib -L${HOMEBREW_PREFIX}/opt/libiconv/lib -L${HOMEBREW_PREFIX}/opt/readline/lib -L${HOMEBREW_PREFIX}/opt/sqlite/lib $MY_LDFLAGS -L${HOMEBREW_PREFIX}/lib" \
PKG_CONFIG_PATH="${HOMEBREW_PREFIX}/opt/openblas/lib/pkgconfig:${HOMEBREW_PREFIX}/opt/icu4c/lib/pkgconfig:${HOMEBREW_PREFIX}/${{ matrix.qt-pkg-config-path }}" \
--with-qt=${{ matrix.qt }} \
QCOLLECTIONGENERATOR="qhelpgenerator" \
--with-x=no \
--with-blas="-L${HOMEBREW_PREFIX}/opt/openblas/lib -lopenblas" \
--with-java-homedir="${HOMEBREW_PREFIX}/opt/openjdk" \
--prefix="${HOME}/usr"
echo "::endgroup::"
echo "::group::Show config.log"
cat ./config.log
echo "::endgroup::"
- name: build
run: make -C ./.build all -j3 V=1
Expand Down
5 changes: 5 additions & 0 deletions .github/workflows/make-mingw.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -177,11 +177,16 @@ jobs:
echo $F77 --version
$F77 --version
mkdir .build
echo "::group::Run configure script"
cd .build && ../configure \
JAVA_HOME="" \
--enable-relocate-all \
--disable-docs \
${{ matrix.extra-config-flags }}
echo "::endgroup::"
echo "::group::Show config.log"
cat ./config.log
echo "::endgroup::"
- name: build
# Spawning processes seems to have a big overhead on this platform. Use a somewhat larger number of parallel processes to compensate for that.
Expand Down
5 changes: 5 additions & 0 deletions .github/workflows/make-ubuntu.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -109,10 +109,15 @@ jobs:
echo gfortran --version
gfortran --version
mkdir .build
echo "::group::Run configure script"
cd .build && ../configure \
CPPFLAGS="-I/usr/include/hdf5/serial -I/usr/include/suitesparse" \
LDFLAGS="-L/usr/lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH)/hdf5/serial" \
${{ matrix.extra-config-flags }}
echo "::endgroup::"
echo "::group::Show config.log"
cat ./config.log
echo "::endgroup::"
- name: build
# Parallel make seems to fail intermittently when creating the figures
Expand Down
7 changes: 4 additions & 3 deletions bootstrap
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#! /bin/sh
# Bootstrap this package from checked-out sources.

scriptversion=2024-04-13.15; # UTC
scriptversion=2024-07-04.10; # UTC

# Copyright (C) 2003-2024 Free Software Foundation, Inc.
#
Expand Down Expand Up @@ -117,7 +117,8 @@ Gnulib sources can be fetched in various ways:
* Otherwise, if the 'gnulib' directory does not exist, Gnulib sources
are cloned into that directory using git from \$GNULIB_URL, defaulting
to $default_gnulib_url.
to $default_gnulib_url; if GNULIB_REFDIR is set and is a git repository
its contents may be used to accelerate the process.
If the configuration variable GNULIB_REVISION is set in bootstrap.conf,
then that revision is checked out.
Expand Down Expand Up @@ -237,7 +238,7 @@ fi
# ----------------------------------------------------------------------------

# Local Variables:
# eval: (add-hook 'before-save-hook 'time-stamp)
# eval: (add-hook 'before-save-hook 'time-stamp nil t)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC0"
Expand Down
139 changes: 91 additions & 48 deletions bootstrap-funclib.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# A library of shell functions for autopull.sh, autogen.sh, and bootstrap.

scriptlibversion=2024-04-28.09; # UTC
scriptlibversion=2024-11-12.21; # UTC

# Copyright (C) 2003-2024 Free Software Foundation, Inc.
#
Expand Down Expand Up @@ -468,11 +468,10 @@ prepare_GNULIB_SRCDIR ()
# if the GNULIB_REVISION is a commit hash that only exists in
# origin. In this case, we need a 'git fetch' and then retry
# 'git checkout "$GNULIB_REVISION"'.
(cd "$GNULIB_SRCDIR" \
&& { git checkout "$GNULIB_REVISION" 2>/dev/null \
|| { git fetch origin && git checkout "$GNULIB_REVISION"; }
}
) || exit $?
git -C "$GNULIB_SRCDIR" checkout "$GNULIB_REVISION" 2>/dev/null \
|| { git -C "$GNULIB_SRCDIR" fetch origin \
&& git -C "$GNULIB_SRCDIR" checkout "$GNULIB_REVISION"; } \
|| exit $?
fi
else
if ! $use_git; then
Expand All @@ -491,7 +490,7 @@ prepare_GNULIB_SRCDIR ()
if test -n "$GNULIB_REFDIR" && test -d "$GNULIB_REFDIR"/.git; then
# Use GNULIB_REFDIR as a reference.
echo "$0: getting gnulib files..."
git submodule update --init --reference "$GNULIB_REFDIR" "$gnulib_path" \
git submodule update --init --reference "$GNULIB_REFDIR" "$gnulib_path"\
|| exit $?
else
# GNULIB_REFDIR is not set or not usable. Ignore it.
Expand All @@ -509,50 +508,81 @@ prepare_GNULIB_SRCDIR ()
# The subdirectory 'gnulib' does not yet exist. Clone into it.
echo "$0: getting gnulib files..."
trap cleanup_gnulib HUP INT PIPE TERM
shallow=
if test -z "$GNULIB_REVISION"; then
if git clone -h 2>&1 | grep -- --depth > /dev/null; then
shallow='--depth 2'
fi
git clone $shallow ${GNULIB_URL:-$default_gnulib_url} "$gnulib_path" \
|| cleanup_gnulib
gnulib_url=${GNULIB_URL:-$default_gnulib_url}
if test -n "$GNULIB_REFDIR" && test -d "$GNULIB_REFDIR"/.git; then
# Use GNULIB_REFDIR as a reference.
git clone "$GNULIB_REFDIR" "$gnulib_path" \
&& git -C "$gnulib_path" remote set-url origin "$gnulib_url" \
&& if test -z "$GNULIB_REVISION"; then
git -C "$gnulib_path" pull origin \
&& {
# We want the default branch of "$gnulib_url" (since that's
# the behaviour if GNULIB_REFDIR is not specified), not the
# current branch of "$GNULIB_REFDIR".
default_branch=`LC_ALL=C git -C "$gnulib_path" \
remote show origin \
| sed -n -e 's/^ *HEAD branch: //p'`
test -n "$default_branch" || default_branch='master'
git -C "$gnulib_path" checkout "$default_branch"
}
else
# The 'git checkout "$GNULIB_REVISION"' command succeeds if the
# GNULIB_REVISION is a commit hash that exists locally, or if it
# is a branch name that can be fetched from origin. It fails,
# however, if the GNULIB_REVISION is a commit hash that only
# exists in origin. In this case, we need a 'git fetch' and then
# retry 'git checkout "$GNULIB_REVISION"'.
git -C "$gnulib_path" checkout "$GNULIB_REVISION" 2>/dev/null \
|| { git -C "$gnulib_path" fetch origin \
&& git -C "$gnulib_path" checkout "$GNULIB_REVISION"; }
fi \
|| cleanup_gnulib
else
if git fetch -h 2>&1 | grep -- --depth > /dev/null; then
shallow='--depth 2'
# GNULIB_REFDIR is not set or not usable. Ignore it.
shallow=
if test -z "$GNULIB_REVISION"; then
if git clone -h 2>&1 | grep -- --depth > /dev/null; then
shallow='--depth 2'
fi
git clone $shallow "$gnulib_url" "$gnulib_path" \
|| cleanup_gnulib
else
if git fetch -h 2>&1 | grep -- --depth > /dev/null; then
shallow='--depth 2'
fi
mkdir -p "$gnulib_path"
# Only want a shallow checkout of $GNULIB_REVISION, but git does not
# support cloning by commit hash. So attempt a shallow fetch by
# commit hash to minimize the amount of data downloaded and changes
# needed to be processed, which can drastically reduce download and
# processing time for checkout. If the fetch by commit fails, a
# shallow fetch can not be performed because we do not know what the
# depth of the commit is without fetching all commits. So fall back
# to fetching all commits.
git -C "$gnulib_path" init
git -C "$gnulib_path" remote add origin "$gnulib_url"
git -C "$gnulib_path" fetch $shallow origin "$GNULIB_REVISION" \
|| git -C "$gnulib_path" fetch origin \
|| cleanup_gnulib
git -C "$gnulib_path" reset --hard FETCH_HEAD
git -C "$gnulib_path" checkout "$GNULIB_REVISION" || cleanup_gnulib
fi
mkdir -p "$gnulib_path"
# Only want a shallow checkout of $GNULIB_REVISION, but git does not
# support cloning by commit hash. So attempt a shallow fetch by commit
# hash to minimize the amount of data downloaded and changes needed to
# be processed, which can drastically reduce download and processing
# time for checkout. If the fetch by commit fails, a shallow fetch can
# not be performed because we do not know what the depth of the commit
# is without fetching all commits. So fall back to fetching all
# commits.
git -C "$gnulib_path" init
git -C "$gnulib_path" remote add origin ${GNULIB_URL:-$default_gnulib_url}
git -C "$gnulib_path" fetch $shallow origin "$GNULIB_REVISION" \
|| git -C "$gnulib_path" fetch origin \
|| cleanup_gnulib
git -C "$gnulib_path" reset --hard FETCH_HEAD
(cd "$gnulib_path" && git checkout "$GNULIB_REVISION") || cleanup_gnulib
fi
trap - HUP INT PIPE TERM
else
# The subdirectory 'gnulib' already exists.
if test -n "$GNULIB_REVISION"; then
if test -d "$gnulib_path/.git"; then
# The 'git checkout "$GNULIB_REVISION"' command succeeds if the
# GNULIB_REVISION is a commit hash that exists locally, or if it is
# branch name that can be fetched from origin. It fails, however,
# if the GNULIB_REVISION is a commit hash that only exists in
# origin. In this case, we need a 'git fetch' and then retry
# 'git checkout "$GNULIB_REVISION"'.
(cd "$gnulib_path" \
&& { git checkout "$GNULIB_REVISION" 2>/dev/null \
|| { git fetch origin && git checkout "$GNULIB_REVISION"; }
}
) || exit $?
# GNULIB_REVISION is a commit hash that exists locally, or if it
# is a branch name that can be fetched from origin. It fails,
# however, if the GNULIB_REVISION is a commit hash that only
# exists in origin. In this case, we need a 'git fetch' and then
# retry 'git checkout "$GNULIB_REVISION"'.
git -C "$gnulib_path" checkout "$GNULIB_REVISION" 2>/dev/null \
|| { git -C "$gnulib_path" fetch origin \
&& git -C "$gnulib_path" checkout "$GNULIB_REVISION"; } \
|| exit $?
else
die "Error: GNULIB_REVISION is specified in bootstrap.conf," \
"but '$gnulib_path' contains no git history"
Expand Down Expand Up @@ -682,7 +712,8 @@ Gnulib sources can be fetched in various ways:
* Otherwise, if the 'gnulib' directory does not exist, Gnulib sources
are cloned into that directory using git from \$GNULIB_URL, defaulting
to $default_gnulib_url.
to $default_gnulib_url; if GNULIB_REFDIR is set and is a git repository
its contents may be used to accelerate the process.
If the configuration variable GNULIB_REVISION is set in bootstrap.conf,
then that revision is checked out.
Expand Down Expand Up @@ -850,9 +881,7 @@ update_po_files() {
&& ls "$ref_po_dir"/*.po 2>/dev/null |
sed 's|.*/||; s|\.po$||' > "$po_dir/LINGUAS" || return

langs=$(cd $ref_po_dir && echo *.po | sed 's/\.po//g')
test "$langs" = '*' && langs=x
for po in $langs; do
for po in x $(ls $ref_po_dir | sed -n 's/\.po$//p'); do
case $po in x) continue;; esac
new_po="$ref_po_dir/$po.po"
cksum_file="$ref_po_dir/$po.s1"
Expand Down Expand Up @@ -1216,6 +1245,20 @@ autogen()
$gnulib_tool $gnulib_tool_options --import $gnulib_modules \
|| die "gnulib-tool failed"

if test $with_gettext = yes && test ! -f $m4_base/gettext.m4; then
# The gnulib-tool invocation has removed $m4_base/gettext.m4, that the
# AUTOPOINT invocation had installed. This can occur when the gnulib
# module 'gettext' was previously present but is now not present any more.
# Repeat the AUTOPOINT invocation and the gnulib-tool invocation.

echo "$0: $AUTOPOINT --force"
$AUTOPOINT --force || return

echo "$0: $gnulib_tool $gnulib_tool_options --import ..."
$gnulib_tool $gnulib_tool_options --import $gnulib_modules \
|| die "gnulib-tool failed"
fi

for file in $gnulib_files; do
symlink_to_dir "$GNULIB_SRCDIR" $file \
|| die "failed to symlink $file"
Expand Down Expand Up @@ -1301,7 +1344,7 @@ autogen()
|| die 'cannot generate runtime-po/Makevars'

# Copy identical files from po to runtime-po.
(cd po && cp -p Makefile.in.in *-quot *.header *.sed *.sin ../runtime-po)
cp -p po/Makefile.in.in po/*-quot po/*.header po/*.sed po/*.sin runtime-po
fi
fi

Expand All @@ -1313,7 +1356,7 @@ autogen()
# ----------------------------------------------------------------------------

# Local Variables:
# eval: (add-hook 'before-save-hook 'time-stamp)
# eval: (add-hook 'before-save-hook 'time-stamp nil t)
# time-stamp-start: "scriptlibversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC0"
Expand Down
6 changes: 3 additions & 3 deletions bootstrap.conf
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,8 @@ gnulib_modules="
fpucw
frexp
frexpf
fseek
ftell
fseeko
ftello
ftruncate
getcwd
gethostname
Expand Down Expand Up @@ -204,7 +204,7 @@ source_base="libgnu"
#
# See also: https://lists.gnu.org/archive/html/bug-gnulib/2020-08/msg00150.html

: ${GNULIB_REVISION=6213c5bd72d15ca5e1ea9c34122899e02fed448c}
: ${GNULIB_REVISION=72abb08f4495bf232736f4d13a24bced72a9c327}

# Don't check for translations since we don't have any in Octave yet.
# This avoids the need for sha1sum or compatible utility in bootstrap.
Expand Down
18 changes: 15 additions & 3 deletions libgui/src/find-files-dialog.cc
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,6 @@ find_files_dialog::find_files_dialog (QWidget *p)
m_file_list->setSelectionBehavior (QAbstractItemView::SelectRows);
m_file_list->setSelectionMode (QAbstractItemView::SingleSelection);
m_file_list->setAlternatingRowColors (true);
m_file_list->setToolTip (tr ("Search results"));
m_file_list->setSortingEnabled (true);
m_file_list->horizontalHeader ()->restoreState (settings.value (ff_column_state.settings_key ()).toByteArray ());
m_file_list->horizontalHeader ()->setSortIndicatorShown (true);
Expand Down Expand Up @@ -160,7 +159,9 @@ find_files_dialog::find_files_dialog (QWidget *p)
this, &find_files_dialog::close);

// name options
const QString gbox_style_sheet ("QGroupBox { font-weight: bold; } ");
QGroupBox *name_group = new QGroupBox (tr ("Filename/Location"));
name_group->setStyleSheet(gbox_style_sheet);
QGridLayout *name_layout = new QGridLayout;
name_group->setLayout (name_layout);

Expand All @@ -178,19 +179,30 @@ find_files_dialog::find_files_dialog (QWidget *p)

// content options
QGroupBox *content_group = new QGroupBox (tr ("File contents"));
content_group->setStyleSheet(gbox_style_sheet);
QGridLayout *content_layout = new QGridLayout;
content_group->setLayout (content_layout);
content_layout->addWidget (m_contains_text_check, 4, 1);
content_layout->addWidget (m_contains_text_edit, 4, 2, 1, 3);
content_layout->setColumnStretch (2, 1);
content_layout->addWidget (m_content_case_check, 5, 1);

// results
QLabel *results_hint = new QLabel (tr ("Results: Double click opens the file"
" or sets the directory"));
QGroupBox *results_group = new QGroupBox (tr ("Search results"));
results_group->setStyleSheet(gbox_style_sheet);
QVBoxLayout *results_layout = new QVBoxLayout ();
results_group->setLayout (results_layout);
results_layout->addWidget (results_hint);
results_layout->addWidget (m_file_list);

// main layout
QGridLayout *main_layout = new QGridLayout;
main_layout->setSizeConstraint (QLayout::SetFixedSize);
main_layout->addWidget (name_group, 0, 0);
main_layout->addWidget (content_group, 1, 0);
main_layout->addWidget (button_box, 0, 1, 3, 1);
main_layout->addWidget (m_file_list, 2, 0);
main_layout->addWidget (results_group, 2, 0);
main_layout->setRowStretch (2, 1);
main_layout->addWidget (m_status_bar, 3, 0, 1, -1);

Expand Down
Loading

0 comments on commit 971d894

Please sign in to comment.