science/gnudatalanguage: upgrade to v1.1.1

Release notes at https://github.com/gnudatalanguage/gdl/releases/tag/v1.1.1
This commit is contained in:
Thierry Thomas 2025-03-23 18:52:01 +01:00
parent 7adbfa1284
commit 29746d8977
4 changed files with 9 additions and 77 deletions

View file

@ -1,5 +1,5 @@
PORTNAME= gnudatalanguage
PORTVERSION= 1.1
PORTVERSION= 1.1.1
DISTVERSIONPREFIX= v
CATEGORIES= science lang
MASTER_SITES= https://github.com/${PORTNAME}/gdl/releases/download/v${PORTVERSION}/

View file

@ -1,3 +1,3 @@
TIMESTAMP = 1736881277
SHA256 (gdl-v1.1.tar.gz) = 915b290af1fe21fe1307ecb3756b7841dd28fdeff541d4a36cf7b57371c3c9f3
SIZE (gdl-v1.1.tar.gz) = 33779333
TIMESTAMP = 1742749829
SHA256 (gdl-v1.1.1.tar.gz) = 744ed3abcdc5e1bbf31147a8a0c21c33662f200b6096ee3d3adedd160a3a9662
SIZE (gdl-v1.1.1.tar.gz) = 33813887

View file

@ -1,73 +0,0 @@
--- src/gdl2gdl.cpp.orig 2024-11-02 17:32:21 UTC
+++ src/gdl2gdl.cpp
@@ -29,6 +29,7 @@
#include <sys/mman.h> /* shared memory and mmap() */
#include <sys/shm.h>
#include <sys/stat.h>
+#include <sys/wait.h>
#include "dinterpreter.hpp"
static bool atexit_already_done = false;
@@ -103,13 +104,29 @@ void g2gAsynchronousReturnTrap() {
}
void g2gAsynchronousReturnTrap() {
- while (g2gMap.size() > 0) {
- for (g2gMapIter it = g2gMap.begin(); it != g2gMap.end(); ++it) {
- if ( (*it).second.status==1 && (*it).second.nowait ) gdl_ipc_read_client_nowait((*it).first);
- }
- usleep (10000);
+ while (!g2gMap.empty()) {
+ for (auto g2gMapIter = g2gMap.cbegin(); g2gMapIter != g2gMap.cend();) {
+ if ((*g2gMapIter).second.status == 1 && (*g2gMapIter).second.nowait) {
+ gdl_ipc_read_client_nowait((*g2gMapIter).first);
+ }
+ // contrib by @jkohnert - to be used should a concurrency problem with the spawn command appear.
+ // At the moment better to keep initial version (GD).
+ // // we need to take care of our children, use a no-hang wait call to check the pid
+ // int status = -1;
+ // if (waitpid((*g2gMapIter).first, &status, WUNTRACED | WCONTINUED | WNOHANG) == -1) {
+ // // we're out of luck, wait returns an error, so break the loop and exit
+ // std::cerr << "g2gAsynchronousReturnTrap exiting" << std::endl;
+ // break;
+ // }
+ // // remove stopped children from the map
+ // if (WIFEXITED(status) || WIFSIGNALED(status))
+ // g2gMap.erase(g2gMapIter++);
+ // // we need to manually count here, since we're modifying the map in the loop
+ // else
+ ++g2gMapIter;
+ }
+ usleep(10000); // GD: should replace usleep by nanosleep everywhere !
}
-// std::cerr<<"g2gAsynchronousReturnTrap exiting"<<std::endl;
}
int gdl_ipc_write_to_client(EnvT* e, DLong* id, const std::string & command, bool nowait = true) {
@@ -419,7 +436,7 @@ messageBoxHandle StartIndividualClientMessageChannel(s
name=G2G_SERVER_QUEUE_BASENAME+i2s(getpid())+"_"+i2s(++ClientSessionNumber);
messageBoxHandle h;
- if ((h = mq_open(name.c_str(), O_RDONLY | O_CREAT, QUEUE_PERMISSIONS, &attr)) == -1) {
+ if ((h = mq_open(name.c_str(), O_RDONLY | O_CREAT, QUEUE_PERMISSIONS, &attr)) == (messageBoxHandle)-1) {
throw GDLException("Server: mq_open (client) :"+string(strerror(errno)));
}
return h;
@@ -430,7 +447,7 @@ void gdl_ipc_ClientGetsMailboxAddress(std::string & s)
}
void gdl_ipc_ClientGetsMailboxAddress(std::string & s) {
g2gClientMailbox=s;
- if ((gdl2gdlMessageBoxHandle = mq_open(g2gClientMailbox.c_str(), O_WRONLY)) == -1) {
+ if ((gdl2gdlMessageBoxHandle = mq_open(g2gClientMailbox.c_str(), O_WRONLY)) == (messageBoxHandle)-1) {
throw GDLException("Server: mq_open (server) :"+string(strerror(errno)));
}
//here is a good point to start to be absolutely silent
@@ -1006,7 +1023,7 @@ namespace lib {
params.description.clear();
params.status=0;
params.obj=o;
- bool startspy = (g2gMap.size() == 0) ; //will start a spy detached thread for NOWAIT operations, that will end itself when g2GMap is empty
+ bool startspy = (g2gMap.empty()) ; //will start a spy detached thread for NOWAIT operations, that will end itself when g2GMap is empty
g2gMap.insert(std::pair<pid_t,gdl2gdlparams>(subprocess_pid,params));
g2gMap.at(subprocess_pid).MessageChannelHandle=id;
// insure communication with child is OK waiting for a status change

View file

@ -190,6 +190,7 @@ bin/gdl
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/testsuite/test_bug_n000599.pro
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/testsuite/test_bug_n000607.pro
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/testsuite/test_bug_n000608.pro
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/testsuite/test_bugs_poly2d.pro
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/testsuite/test_byte_conversion.pro
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/testsuite/test_bytscl.pro
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/testsuite/test_call_external.pro
@ -204,6 +205,7 @@ bin/gdl
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/testsuite/test_clip.pro
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/testsuite/test_colorsetup.pro
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/testsuite/test_common.pro
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/testsuite/test_compile_opt.pro
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/testsuite/test_constants.pro
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/testsuite/test_container.pro
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/testsuite/test_convert2.pro
@ -344,6 +346,7 @@ bin/gdl
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/testsuite/test_rebin.pro
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/testsuite/test_resolve_routine.pro
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/testsuite/test_restore.pro
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/testsuite/test_rot.pro
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/testsuite/test_rounding.pro
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/testsuite/test_routine_dir.pro
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/testsuite/test_routine_filepath.pro
@ -420,6 +423,7 @@ bin/gdl
%%DATADIR%%/lib/appleman.pro
%%DATADIR%%/lib/array_indices.pro
%%DATADIR%%/lib/bilinear.pro
%%DATADIR%%/lib/boolean.pro
%%DATADIR%%/lib/box_cursor.pro
%%DATADIR%%/lib/c_correlate.pro
%%DATADIR%%/lib/calendar.pro
@ -663,6 +667,7 @@ bin/gdl
%%DATADIR%%/lib/utilities/path_remove.pro
%%DATADIR%%/lib/utilities/path_sep_add.pro
%%DATADIR%%/lib/utilities/path_show.pro
%%DATADIR%%/lib/utilities/pref_get.pro
%%DATADIR%%/lib/utilities/profiler.pro
%%DATADIR%%/lib/utilities/read_anygraphicsfilewithmagick.pro
%%DATADIR%%/lib/utilities/read_ascii_basic.pro