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 Jan 31, 2025
2 parents 83ddd89 + 2c7ab23 commit 5e2998b
Show file tree
Hide file tree
Showing 17 changed files with 290 additions and 105 deletions.
4 changes: 2 additions & 2 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -1536,7 +1536,7 @@ fi

OCTAVE_CHECK_LIB(bz2, BZIP2,
[BZIP2 library not found. Octave will not be able to compress or decompress bzip2 files.],
[bzlib.h], [BZ2_bzCompressInit])
[bzlib.h], [BZ2_bzCompressInit], [], [], [], [bzip2])

### Check for HDF5 library.

Expand Down Expand Up @@ -1654,7 +1654,7 @@ CPPFLAGS="$Z_CPPFLAGS $CPPFLAGS"
LIBS="$Z_LDFLAGS $Z_LIBS $LIBS"
OCTAVE_CHECK_LIB(curl, cURL,
[cURL library not found. The ftp objects, urlread, and urlwrite functions will be disabled.],
[curl/curl.h], [curl_easy_escape])
[curl/curl.h], [curl_easy_escape], [], [], [], [libcurl])
if test -n "$CURL_LIBS"; then
## Additional check on cURL library that was found
AC_CACHE_CHECK([for CURLOPT_DIRLISTONLY in curl/curl.h],
Expand Down
4 changes: 2 additions & 2 deletions doc/interpreter/genpropdoc.m
Original file line number Diff line number Diff line change
Expand Up @@ -876,7 +876,7 @@ element defines a pixel with the element (1,1) representing the \

case "clim"
s.doc = "Define limits for the color axis of __objname__ \
children that have the @qcode{cdata} property. \
children that have the @code{cdata} property. \
__modemsg__";
s.valid = valid_2elvec;
s.category = "Color and Transparency";
Expand All @@ -885,7 +885,7 @@ element defines a pixel with the element (1,1) representing the \
s.doc = "Current state of the color limit mode, either \
manually set by the \
@ref{XREFaxesclim, , @w{@qcode{\"clim\"} property}} or automatically set by \
Octave to the minimum and maximum @qcode{cdata} values of __objname__'s \
Octave to the minimum and maximum @code{cdata} values of __objname__'s \
children.";
s.category = "Color and Transparency";

Expand Down
2 changes: 1 addition & 1 deletion doc/interpreter/plot.txi
Original file line number Diff line number Diff line change
Expand Up @@ -747,7 +747,7 @@ figure window, call the @code{close} function.
@subsection Use of the "interpreter" Property

@code{text} (such as titles, labels, legend item) and @code{axes} objects
feature an @ref{XREFtextinterpreter,,@qcode{"interpreter}} and a
feature an @ref{XREFtextinterpreter,,@qcode{"interpreter"}} and a
@ref{XREFaxesticklabelinterpreter,,@qcode{"ticklabelinterpreter"}} property
respectively. It determines the manner in which special control sequences in
the text are rendered.
Expand Down
2 changes: 2 additions & 0 deletions etc/NEWS.9.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ Summary of bugs fixed for version 9.4.0 (tbd):

### GUI
- Update Spanish translation file (bug #66616).
- Update Brazilian Portuguese translation file (bug #66554).

### Build system / Tests
- `cellfun`: Add test for function failing to return requested output
Expand All @@ -16,6 +17,7 @@ Summary of bugs fixed for version 9.4.0 (tbd):
(bug #66642).

### Documentation
- Clarify default editor difference between CLI and GUI (bug #66703).


Summary of bugs fixed for version 9.3.0 (2024-12-12):
Expand Down
155 changes: 155 additions & 0 deletions etc/RELEASE-CHECKLIST.wiki
Original file line number Diff line number Diff line change
@@ -0,0 +1,155 @@
= VERSION.1 Release Checklist =

{{Note|'''Timeline''' (tentative)

* YYYY-MM-DD 🚀 Release Kick-off ⚽ (default branch merged to stable)
* YYYY-MM-DD 🛠️ 1st release candidate '''VERSION.0.90''' on https://alpha.gnu.org/gnu/octave/
* YYYY-MM-DD 🏁 Final Release 🎉 '''VERSION.1.0''' on https://ftp.gnu.org/gnu/octave/ }}

Please use <code>&lt;strike&gt; &lt;/strike&gt;</code> to mark items below as done.

== 🚀 Kick-off ⚽ ==

=== ⚙️ Update stable and default branch to new version numbers ===

Completion Date:

* Merge default onto stable to become the current stable release (see instructions in <code>etc/HACKING.md</code>).
* Bump version numbers in <code>configure.ac</code> on stable branch (see <code>etc/HACKING.md</code>).
* Bump version numbers in <code>configure.ac</code> on default branch (see <code>etc/HACKING.md</code>).
* Create new <code>etc/NEWS.VERSION+1.md</code> file on default branch by copying <code>etc/NEWS.VERSION.md</code> and then removing text so that it is a template file with headings only.
=== ⚙️ Update gnulib to latest version ===

Completion Date:

'''Must occur first''' as it could resolve existing, or create new, bug reports. You should run <code>./bootstrap</code> in the source tree after updating to the new gnulib version.

=== 📢 Call for bug reports ===

Completion Date:

* Put out a general call for reports on [https://octave.discourse.group/ Octave Discourse] for all outstanding, but unreported, known bugs.
* Create Savannah <code>Release</code> tag <code>VERSION.0.90</code> on bug tracker for 1st release candidate.
* Mark items that should be fixed for the release with this tag.
* Update Savannah <code>Planned Release</code> and <code>Fixed Release</code> tags by adding <code>VERSION.1.0 (current stable)</code> and <code>VERSION+1.1.0 (current default)</code>.
* Review bug overview at https://octave.space/savannah/.
=== 📢 Update GUI translation files ===

Completion Date:

* Call for updates ([https://octave.discourse.group/ Octave Discourse]) that might change GUI strings.
* String freeze date:
* Update language translation files (<code>*.ts</code>). See instructions in <code>libgui/languages/build_ts/README.md</code>.
* Create bug report on Savannah as a centralized location for uploading files and tracking status of translations.
* Call for translations of GUI strings on [https://octave.discourse.group/c/maintainers/7 Octave Discourse Maintainers], CC-ing the translators (see [https://hg.savannah.gnu.org/hgweb/octave/file/tip/libgui/languages/translators list of translators]).
* Collect translation files on Savannah bug report and push to Mercurial.
=== ⚖️ GPL License activities ===

Completion Date:

<ul>
<li><p>Update copyright statements for all source controlled files.</p>
<p>Command to update copyright notifications</p>
<p><code>hg locate | xargs sed -i 's/Copyright (C) \([0-9][0-9][0-9][0-9]\)-2023 The Octave Project Developers/Copyright (C) \1-2024 The Octave Project Developers/; s/Copyright (C) 2023 The Octave Project Developers/Copyright (C) 2023-2024 The Octave Project Developers/'</code></p>
<p>Command to check results before checking in</p>
<p><code>hg diff | grep ^[-+][^-+] | sed 's/[0-9][0-9][0-9][0-9]-/YYYY-/' | sort -u</code></p></li>
<li><p>Update dates in any other locations (<code>CITATION</code>, MXE <code>README.html</code> file).</p></li>
<li><p>Add any new contributors to <code>doc/interpreter/contributors.in</code> who wish to be mentioned (don’t add them without permission).</p></li></ul>

=== ✅ Style-check code base ===

Completion Date:

This will produce lots of whitespace changes, but no behavior changes. '''Must occur after patches have been added''', since whitespace changes can prevent patches from applying.

* [https://wiki.octave.org/Octave_style_guide m-file style check]
* [https://wiki.octave.org/C%2B%2B_style_guide C++ style check]
=== 📖 Review documentation ===

Completion Date:

* Grammar check documentation (See <code>doc/interpreter/doccheck/README</code>).
* Spell check documentation (<code>make spellcheck</code>).
* Verify no functions missing from manual (<code>make doc/interpreter/undocumented_list</code>).
* Verify deprecated functions removed from manual (<code>*.txi</code>) and from “see also” links.
* Verify all formats (Info, HTML, PDF) build correctly.
* Review <code>etc/NEWS.VERSION.md</code> for any features which should be announced.
* Review <code>__unimplemented__.m</code> for the latest changes to [https://wiki.octave.org/Octave_Forge Octave Forge] packages and new Matlab functions.
* Update <code>installer-files/README.html</code> in MXE Octave with version highlights.
== 🔃 Repeat until all bugs are resolved ==

Completion Date of first iteration:

=== ⚠️ Current state at Savannah ===

Bug overview at https://octave.space/savannah/.

=== ✅ <code>make check</code> ===

* Verify <code>make check</code> is passing on all [http://buildbot.octave.org:8010/#/waterfall buildbot combinations of OS and compilers] and [https://github.com/gnu-octave/octave/actions GitHub CI runners]. Also check [https://github.com/gnu-octave/octave-buildbot/actions test suite runs on “freshly brewed Octave for Windows”] (Kai’s buildbots on octave.space).
* Use software tools to check quality of Octave code.
** Check for memory leaks by configuring with <code>--enable-address-sanitizer-flags</code> and compiling with <code>-g -O0 -fno-optimize-sibling-calls</code> in <code>CFLAGS</code>, <code>CXXFLAGS</code>, and <code>LDFLAGS</code>.
** Check for bad memory accesses by compiling with <code>-g -O0 -fsanitize=undefined -fno-omit-frame-pointer -fno-optimize-sibling-calls</code> in <code>CFLAGS</code>, <code>CXXFLAGS</code>, and <code>LDFLAGS</code>.
** Update static code analysis results.
*** For <code>clang</code>, do <code>scan-build make -j&lt;N&gt; all</code> and then <code>scan-view</code>.
*** See [https://wiki.octave.org/PVS_static_analyzer_-_5.0_Release PVS static analyzer - 5.0 Release].
** Use other tools such as <code>cppcheck</code>, etc.
* Start discussion on [https://octave.discourse.group/c/maintainers/8 Octave Discourse Maintainers] about which failing tests that must be fixed and which can be declared '''WON’T FIX'''.
=== 🛠️ Create new release candidate ===

* Ensure correct version information (see “Release Numbering” in <code>/etc/HACKING.md</code>).
* Create <code>hg tag</code> in repository with release candidate version number (<code>rc-MAJOR-MINOR-PATCH</code>).
* Verify <code>make dist</code> works.
* Verify <code>make distcheck</code> passes.
* Create [https://wiki.octave.org/Windows_Installer Windows Installer].
* Upload release candidates to https://alpha.gnu.org/gnu/octave/.
* Check [https://wiki.octave.org/Windows_Installer Windows Installer] (executable and zip formats) against false positive detection at [https://virustotal.com/ virustotal.com].
* Add release candidate version to Savannah bug tracker.
* Announce release candidate to [https://octave.discourse.group/ Octave Discourse].
== 🏁 Final Release 🎉 ==

=== 📃 Update version information ===

Completion Date:

* Ensure correct version information in <code>configure.ac</code> (see “Release Numbering” in <code>/etc/HACKING.md</code>)
** Set <code>OCTAVE_RELEASE_DATE</code> to the current date.
** Set the year in <code>OCTAVE_COPYRIGHT</code> to the current year.
* Create <code>hg tag</code> in repository with release candidate version number (<code>release-VERSION-1-0</code>).
* Update <code>etc/NEWS.VERSION.md</code> (final release date in Summary header).
* Update <code>CITATION</code> (version, year, URL) if not already done as part of &quot;GPL License activities.
* Update <code>etc/icons/org.octave.Octave.appdata.xml</code> (version number and release date).
* Upload all tarballs to https://ftp.gnu.org/gnu/octave/.
* Update web site files: <code>NEWS-VERSION.html</code>, <code>index.in</code>, <code>news.in</code>, and <code>download.in</code>.
* Update https://wiki.octave.org/Release_History page.
* Update Savannah bug tracker <code>Release</code> field to have new release number.
* Update Savannah bug tracker: '''OPEN''' bugs marked as '''WON’T FIX''' should be marked as '''CONFIRMED''' (or more appropriate) for the final release.
* Hide release candidate versions for <code>Release</code> field on Savannah.
=== 📢 Announce final release ===

Completion Date:

* Octave mailing-lists (yes, still) [mailto:[email protected] [email protected]] and [mailto:[email protected] [email protected]].
* Octave web site (https://hg.octave.org/web-octave)
* Steps documented in this [https://hg.octave.org/web-octave/rev/fe59d0118a2b changeset].
* Upload documentation (manual HTML + PDF <code>octave.org/doc</code> and version in <code>octave.org/.htaccess</code>, Doxygen <code>octave.org/doxygen</code>)
* This wiki
* Template:Release = 7.3.0
* Template:Release Date = November 2, 2022
* Template:Release Year = 2022
=== ☑️ Post-Release ===

Completion Date:

* Remove all deprecated functions scheduled for deletion on default branch. These functions are tagged with <code>OCTAVE_DEPRECATED</code> in C++ or are m-files located in the directory <code>scripts/deprecated</code>. Check file <code>etc/NEWS.VERSION-2.md</code> for list of features that have been deprecated.
[[Category:Releases]]
30 changes: 18 additions & 12 deletions libinterp/corefcn/error.cc
Original file line number Diff line number Diff line change
Expand Up @@ -506,7 +506,13 @@ void
error_system::vwarning (const char *name, const char *id,
const char *fmt, va_list args)
{
flush_stdout ();
int warn_opt = warning_enabled (id);

if (warn_opt == 2)
{
// Handle this warning as an error. ERROR_1 won't return.
error_1 (id, fmt, args);
}

std::string base_msg = format_message (fmt, args);
std::string msg_string;
Expand All @@ -526,13 +532,17 @@ error_system::vwarning (const char *name, const char *id,
last_warning_id (id);
last_warning_message (base_msg);

if (discard_warning_messages ())
// If WARN_OPT is 0, then the warning is disabled. But we sill
// still set LAST_WARNING_MESSAGE above.
if (discard_warning_messages () || warn_opt == 0)
return;

tree_evaluator& tw = m_interpreter.get_evaluator ();

bool in_user_code = tw.in_user_code ();

flush_stdout ();

if (! quiet_warning ())
{
octave_diary << msg_string;
Expand Down Expand Up @@ -588,16 +598,12 @@ error_system::error_1 (const char *id, const char *fmt,
void
error_system::vwarning (const char *id, const char *fmt, va_list args)
{
int warn_opt = warning_enabled (id);

if (warn_opt == 2)
{
// Handle this warning as an error.

error_1 (id, fmt, args);
}
else if (warn_opt == 1)
vwarning ("warning", id, fmt, args);
// OK, this probably seems strange now, but there is a version of
// vwarning that takes the "name" of the warning as an argument,
// possibly because "usage" was previously handled as a warning?
// For consistent behavior, that function will deal with all the
// ON/OFF/ERROR warning state options.
vwarning ("warning", id, fmt, args);
}

void
Expand Down
Loading

0 comments on commit 5e2998b

Please sign in to comment.