<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/make-git.git, branch master</title>
<subtitle>git.savannah.gnu.org: git/make.git
</subtitle>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/make-git.git/'/>
<entry>
<title>make -p now uses consistent timestamp format</title>
<updated>2023-05-14T22:26:35+00:00</updated>
<author>
<name>Paul Eggert</name>
<email>eggert@cs.ucla.edu</email>
</author>
<published>2023-05-10T19:10:16+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/make-git.git/commit/?id=c85b71a39620b41c764a58b1595fc1021545665a'/>
<id>c85b71a39620b41c764a58b1595fc1021545665a</id>
<content type='text'>
* NEWS: mention this.
* src/main.c (safer_ctime, time_now): Remove.
(print_data_base): Use file_timestamp_sprintf to format timestamps.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* NEWS: mention this.
* src/main.c (safer_ctime, time_now): Remove.
(print_data_base): Use file_timestamp_sprintf to format timestamps.
</pre>
</div>
</content>
</entry>
<entry>
<title>make -p buffer overrun fix with outlandish current time</title>
<updated>2023-05-14T22:26:35+00:00</updated>
<author>
<name>Paul Eggert</name>
<email>eggert@cs.ucla.edu</email>
</author>
<published>2023-05-10T19:10:14+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/make-git.git/commit/?id=032f784601219474ac2a31d61caa071665451933'/>
<id>032f784601219474ac2a31d61caa071665451933</id>
<content type='text'>
* src/main.c (safer_ctime): New function.
(print_data_base): Use it.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/main.c (safer_ctime): New function.
(print_data_base): Use it.
</pre>
</div>
</content>
</entry>
<entry>
<title>make -p uses same clock as rest of 'make'</title>
<updated>2023-05-14T22:26:35+00:00</updated>
<author>
<name>Paul Eggert</name>
<email>eggert@cs.ucla.edu</email>
</author>
<published>2023-05-10T19:10:15+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/make-git.git/commit/?id=78e6a89b192c1f5ce5f06a55216164a1063da23f'/>
<id>78e6a89b192c1f5ce5f06a55216164a1063da23f</id>
<content type='text'>
Without this patch, the output of 'make -p' would generate output that
sometimes incorrectly implied that the clock jumped backwards.
* src/main.c (time_now): New function.
(print_data_base): Use it.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Without this patch, the output of 'make -p' would generate output that
sometimes incorrectly implied that the clock jumped backwards.
* src/main.c (time_now): New function.
(print_data_base): Use it.
</pre>
</div>
</content>
</entry>
<entry>
<title>[SV 63219] Support an "unload" function for loaded objects</title>
<updated>2023-05-14T22:26:35+00:00</updated>
<author>
<name>Paul Smith</name>
<email>psmith@gnu.org</email>
</author>
<published>2023-05-07T20:51:12+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/make-git.git/commit/?id=1748e6641419e8a48f830caad072ed5b298577af'/>
<id>1748e6641419e8a48f830caad072ed5b298577af</id>
<content type='text'>
If a loaded object defines a symbol &lt;object&gt;_gmk_unload, assume it's
a function and invoke it whenever the loaded object is unloaded.
Original implementation by Dmitry Goncharov &lt;dgoncharov@users.sf.net&gt;

* NEWS: Announce the change.
* doc/make.texi: Describe the behavior.
* src/gnumake.h: Add information to the comments.
* src/makeint.h (unload_all): Declare a new function.
* src/main.c (die): Invoke unload_all().
* src/load.c (unload_func_t): Declare a new type for unload.
(struct load_list): Remember the unload symbol if it exists.
(load_object): Move the parsing of the object name from load_file.
Check for the _gmk_unload symbol and if found, remember it.
(load_file): Allow load_object to do object filename parsing.
(unload_file): Remove the load_list entry when unloading the object.
(unload_all): Unload all the loaded objects.
* tests/scripts/features/loadapi: Test the unload function.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If a loaded object defines a symbol &lt;object&gt;_gmk_unload, assume it's
a function and invoke it whenever the loaded object is unloaded.
Original implementation by Dmitry Goncharov &lt;dgoncharov@users.sf.net&gt;

* NEWS: Announce the change.
* doc/make.texi: Describe the behavior.
* src/gnumake.h: Add information to the comments.
* src/makeint.h (unload_all): Declare a new function.
* src/main.c (die): Invoke unload_all().
* src/load.c (unload_func_t): Declare a new type for unload.
(struct load_list): Remember the unload symbol if it exists.
(load_object): Move the parsing of the object name from load_file.
Check for the _gmk_unload symbol and if found, remember it.
(load_file): Allow load_object to do object filename parsing.
(unload_file): Remove the load_list entry when unloading the object.
(unload_all): Unload all the loaded objects.
* tests/scripts/features/loadapi: Test the unload function.
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove the "preview" status from the loaded object feature</title>
<updated>2023-05-07T20:51:06+00:00</updated>
<author>
<name>Paul Smith</name>
<email>psmith@gnu.org</email>
</author>
<published>2023-05-06T20:21:39+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/make-git.git/commit/?id=8e0e6c678f3cf1199751e3b097745531ceed34ed'/>
<id>8e0e6c678f3cf1199751e3b097745531ceed34ed</id>
<content type='text'>
Add an ABI version both to the header file and passed to the setup
function.  Unfortunately this itself is an ABI break and I couldn't
find a good way to avoid it.

* NEWS: Announce the ABI is not a preview and the incompatibility.
* doc/make.texi: Remove the preview warnings for object loading.
Document the new ABI version argument.
* src/gnumake.h (GMK_ABI_VERSION): Set the ABI version to 1.
Add comments documenting the format of the setup function.
* src/load.c (setup_func_t): Rename from load_func_t.
(load_file): Pass the ABI version to the setup function.
* tests/scripts/features/load: Rework the setup function.
* tests/scripts/features/loadapi: Ditto.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add an ABI version both to the header file and passed to the setup
function.  Unfortunately this itself is an ABI break and I couldn't
find a good way to avoid it.

* NEWS: Announce the ABI is not a preview and the incompatibility.
* doc/make.texi: Remove the preview warnings for object loading.
Document the new ABI version argument.
* src/gnumake.h (GMK_ABI_VERSION): Set the ABI version to 1.
Add comments documenting the format of the setup function.
* src/load.c (setup_func_t): Rename from load_func_t.
(load_file): Pass the ABI version to the setup function.
* tests/scripts/features/load: Rework the setup function.
* tests/scripts/features/loadapi: Ditto.
</pre>
</div>
</content>
</entry>
<entry>
<title>* src/read.c (eval): [SV 40942] Allow targets named "load"</title>
<updated>2023-05-07T20:51:06+00:00</updated>
<author>
<name>Paul Smith</name>
<email>psmith@gnu.org</email>
</author>
<published>2023-05-06T20:12:11+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/make-git.git/commit/?id=3f28ec2f58c3defebd1d9e66ec0ae653e78d88d5'/>
<id>3f28ec2f58c3defebd1d9e66ec0ae653e78d88d5</id>
<content type='text'>
Previously "load:" worked but "load :" failed.  Allow the latter as
well.  This doesn't fix all issues; "load foo :" is still treated
as a load operation for "foo" and ":".  Avoids SV 50413 as well.
* tests/scripts/features/load: Write tests.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously "load:" worked but "load :" failed.  Allow the latter as
well.  This doesn't fix all issues; "load foo :" is still treated
as a load operation for "foo" and ":".  Avoids SV 50413 as well.
* tests/scripts/features/load: Write tests.
</pre>
</div>
</content>
</entry>
<entry>
<title>* tests/test_driver.pl: Show info about failed tests</title>
<updated>2023-05-07T20:51:06+00:00</updated>
<author>
<name>Paul Smith</name>
<email>psmith@gnu.org</email>
</author>
<published>2023-05-06T18:45:56+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/make-git.git/commit/?id=24a84f99bb131675bd8f7e714e5b9d342fbde361'/>
<id>24a84f99bb131675bd8f7e714e5b9d342fbde361</id>
<content type='text'>
Remove working directories for skipped tests.
We use different directories per test so don't keep rmfiles.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove working directories for skipped tests.
We use different directories per test so don't keep rmfiles.
</pre>
</div>
</content>
</entry>
<entry>
<title>* tests/scripts/features/comments: Add missing "1;"</title>
<updated>2023-05-06T18:45:09+00:00</updated>
<author>
<name>Paul Smith</name>
<email>psmith@gnu.org</email>
</author>
<published>2023-05-06T18:45:09+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/make-git.git/commit/?id=05c86bfcb2db2a9916b0ed99fdab273f6cbd47da'/>
<id>05c86bfcb2db2a9916b0ed99fdab273f6cbd47da</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[SV 64124] Avoid use-after-free in expand_variable_buf()</title>
<updated>2023-04-30T13:41:02+00:00</updated>
<author>
<name>Dmitry Goncharov</name>
<email>dgoncharov@users.sf.net</email>
</author>
<published>2023-04-30T13:39:04+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/make-git.git/commit/?id=06c75a35b93ac6ceacf0474e8b3a23d494fcea07'/>
<id>06c75a35b93ac6ceacf0474e8b3a23d494fcea07</id>
<content type='text'>
When the expanded value of the variable in buf occupies more space
than available in variable_buffer, function variable_buffer_output
reallocates variable_buffer: return a pointer into the new memory,
not the old memory.

* src/expand.c (expand_variable_buf): Preserve the offset of buf and
return that offset into the (potentially reallocated) buffer.
* tests/scripts/features/expand: Add tests.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When the expanded value of the variable in buf occupies more space
than available in variable_buffer, function variable_buffer_output
reallocates variable_buffer: return a pointer into the new memory,
not the old memory.

* src/expand.c (expand_variable_buf): Preserve the offset of buf and
return that offset into the (potentially reallocated) buffer.
* tests/scripts/features/expand: Add tests.
</pre>
</div>
</content>
</entry>
<entry>
<title>[SV 64115] Suppress warnings about undefined GNUMAKEFLAGS</title>
<updated>2023-04-30T13:40:50+00:00</updated>
<author>
<name>Dmitry Goncharov</name>
<email>dgoncharov@users.sf.net</email>
</author>
<published>2023-04-30T13:30:19+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/make-git.git/commit/?id=ebe0a1c9f1d1529a3f2c64d628686f500d460b0e'/>
<id>ebe0a1c9f1d1529a3f2c64d628686f500d460b0e</id>
<content type='text'>
* src/variable.c (defined_vars): Add GNUMAKEFLAGS to defined variables.
* tests/scripts/options/warn: Add a test.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* src/variable.c (defined_vars): Add GNUMAKEFLAGS to defined variables.
* tests/scripts/options/warn: Add a test.
</pre>
</div>
</content>
</entry>
</feed>
