Changeset 4e595a7 in git
- Timestamp:
- Jun 5, 1997, 6:41:21 PM (26 years ago)
- Branches:
- (u'spielwiese', 'a7324b6e0b44a1a8ed3fa4d9ca3e2ff210ddd52c')
- Children:
- 5756804ac5037bf827b8e5d382c302898cafb2f0
- Parents:
- 61941e21fd08b603e3f7a01037a82e96bc71952c
- Location:
- Singular
- Files:
-
- 1 added
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/Makefile.in
r61941e2 r4e595a7 355 355 tesths.cc iparith.og mpsr_Tok.og $(OBJG) ${LDFLAGS} ${LIBS} 356 356 357 iparith.og: ${OBJS}iparith.inc iparith.cc357 iparith.og: iparith.inc iparith.cc 358 358 $(CXXG) ${CXXFLAGSG} ${CPPFLAGS} ${DEFSG} -c iparith.cc -o iparith.og 359 359 -
Singular/configure
r61941e2 r4e595a7 533 533 534 534 SINGULAR_MAJOR_VERSION=1 535 SINGULAR_MINOR_VERSION= 0535 SINGULAR_MINOR_VERSION=1 536 536 SINGULAR_SUB_VERSION=0 537 VERSION_DATE=" Beta, May1997"537 VERSION_DATE="June 1997" 538 538 539 539 -
Singular/configure.in
r61941e2 r4e595a7 7 7 dnl 8 8 SINGULAR_MAJOR_VERSION=1 9 SINGULAR_MINOR_VERSION= 09 SINGULAR_MINOR_VERSION=1 10 10 SINGULAR_SUB_VERSION=0 11 VERSION_DATE=" Beta, May1997"11 VERSION_DATE="June 1997" 12 12 AC_SUBST(SINGULAR_MAJOR_VERSION) 13 13 AC_SUBST(SINGULAR_MINOR_VERSION) -
Singular/sing_mp.cc
r61941e2 r4e595a7 2 2 * Computer Algebra System SINGULAR * 3 3 ****************************************/ 4 /* $Id: sing_mp.cc,v 1.1 2 1997-04-12 16:04:46 SingularExp $ */4 /* $Id: sing_mp.cc,v 1.13 1997-06-05 16:41:21 obachman Exp $ */ 5 5 6 6 /* … … 23 23 #include"mpsr.h" 24 24 25 static int Batch_ReadEval(si_link silink); 26 25 27 #ifdef MPSR_DEBUG 26 28 #define MP_SET_LINK_OPTIONS(link) \ … … 34 36 35 37 /* =============== general utilities ====================================== */ 36 void FreeCmdArgs(int argc, char** argv)38 static void FreeCmdArgs(int argc, char** argv) 37 39 { 38 40 int i; … … 43 45 } 44 46 45 void GetCmdArgs(int *argc, char ***argv, char *str)47 static void GetCmdArgs(int *argc, char ***argv, char *str) 46 48 { 47 49 if (str == NULL || str[0] == '\0') … … 103 105 * 104 106 ***************************************************************/ 105 BOOLEAN slOpenMPFile(si_link l, short flag)107 static BOOLEAN slOpenMPFile(si_link l, short flag) 106 108 { 107 109 char *argv[] = {"-MPtransp", "FILE", "-MPmode", "append", … … 221 223 } 222 224 223 BOOLEAN slOpenMPTcp(si_link l, short flag) 225 static MP_Link_pt slOpenMPFork(si_link l, int n_argc, char **n_argv) 226 { 227 MP_Link_pt link = NULL; 228 char *argv[] = {"-MPtransp", "TCP", "-MPmode", "fork", "-MPport", "1703"}; 229 char *port = IMP_GetCmdlineArg(n_argc, n_argv, "-MPport"); 230 231 if (port != NULL) argv[5] = port; 232 233 link = MP_OpenLink(mp_Env, 6, argv); 234 if (link != NULL) 235 { 236 if (MP_GetLinkStatus(link, MP_LinkIsParent)) 237 { 238 /* parent's business */ 239 if (l->name != NULL) FreeL(l->name); 240 l->name = mstrdup("parent"); 241 return link; 242 } 243 else 244 { 245 /* child's business -- go into batch mode */ 246 if (l->name != NULL) FreeL(l->name); 247 l->name = mstrdup("child"); 248 MP_SET_LINK_OPTIONS(link); 249 SI_LINK_SET_RW_OPEN_P(l); 250 l->data = (void *) link; 251 feBatch=TRUE; 252 _exit(Batch_ReadEval(slCopy(l))); 253 } 254 } 255 else 256 { 257 /* only parent can get here */ 258 return NULL; 259 } 260 } 261 262 263 264 static BOOLEAN slOpenMPTcp(si_link l, short flag) 224 265 { 225 266 MP_Link_pt link = NULL; … … 240 281 if (strcmp(l->mode, "connect") == 0) link = slOpenMPConnect(argc, argv); 241 282 else if (strcmp(l->mode, "listen") == 0) link = slOpenMPListen(argc, argv); 242 else 243 { 244 link = slOpenMPLaunch(argc, argv); 245 if (link != NULL && (strcmp(l->mode, "launch") != 0)) 246 { 247 FreeL(l->mode); 248 l->mode = mstrdup("launch"); 249 } 283 else if (strcmp(l->mode, "launch") == 0) link = slOpenMPLaunch(argc, argv); 284 else 285 { 286 if (strcmp(l->mode, "fork") != 0) 287 { 288 if (l->mode != NULL) FreeL(l->mode); 289 l->mode = mstrdup("fork"); 290 } 291 link = slOpenMPFork(l, argc, argv); 250 292 } 251 293 … … 268 310 ***************************************************************/ 269 311 270 BOOLEAN slWriteMP(si_link l, leftv v)312 static BOOLEAN slWriteMP(si_link l, leftv v) 271 313 { 272 314 leftv next = (v != NULL ? v->next : (leftv) NULL); … … 322 364 } 323 365 324 BOOLEAN slCloseMP(si_link l)325 { 326 if ((strcmp(l->mode, "launch") == 0 ) &&366 static BOOLEAN slCloseMP(si_link l) 367 { 368 if ((strcmp(l->mode, "launch") == 0 || strcmp(l->mode, "fork") == 0) && 327 369 (MP_GetLinkStatus((MP_Link_pt)l->data,MP_LinkReadyWriting) == MP_TRUE)) 328 370 SentQuitMsg(l); … … 333 375 334 376 335 BOOLEAN slDumpMP(si_link l)377 static BOOLEAN slDumpMP(si_link l) 336 378 { 337 379 mpsr_ClearError(); … … 345 387 } 346 388 347 BOOLEAN slGetDumpMP(si_link l)389 static BOOLEAN slGetDumpMP(si_link l) 348 390 { 349 391 mpsr_ClearError(); … … 357 399 } 358 400 359 char* slStatusMP(si_link l, char* request)401 static char* slStatusMP(si_link l, char* request) 360 402 { 361 403 if (strcmp(request, "read") == 0) … … 381 423 * 382 424 ***************************************************************/ 425 426 int Batch_ReadEval(si_link silink) 427 { 428 leftv v = NULL; 429 // establish top-level identifier for link 430 idhdl id = enterid(mstrdup("mp_ll"), 0, LINK_CMD, &idroot, FALSE); 431 IDLINK(id) = silink; 432 433 // the main read-eval-write loop 434 while(1) 435 { 436 v = slRead(silink, v); 437 if (feErrors != NULL) 438 { 439 if (v != NULL) v->CleanUp(); 440 v = mpsr_InitLeftv(STRING_CMD, (void *) feErrors); 441 feErrors = NULL; 442 } 443 444 // no need to evaluate -- it is done in the read 445 if (v->Typ() == STRING_CMD && 446 (strcmp((char *)v->Data(), MPSR_QUIT_STRING) == 0)) 447 { 448 slKill(silink); 449 return 0; 450 } 451 452 slWriteMP(silink, v); 453 454 if (v != NULL) 455 { 456 v->CleanUp(); 457 Free(v, sizeof(sleftv)); 458 v = NULL; 459 } 460 } 461 // should never get here 462 return 1; 463 } 383 464 384 465 // #define MPSR_BATCH_DEBUG … … 394 475 #endif 395 476 si_link silink = (si_link) Alloc0(sizeof(sip_link)); 396 leftv v = NULL;397 477 char *port = IMP_GetCmdlineArg(argc, argv, "-MPport"); 398 478 char *host = IMP_GetCmdlineArg(argc, argv, "-MPhost"); 399 479 char *istr; 400 idhdl id;401 480 402 481 // parse argv to get port and host … … 419 498 slInit(silink, istr); 420 499 FreeL(istr); 421 422 500 // open link 423 501 if (slOpen(silink, SI_LINK_OPEN)) … … 428 506 } 429 507 430 // establish top-level identifier for link 431 id = enterid(mstrdup("mp_ll"), 0, LINK_CMD, &idroot, FALSE); 432 IDLINK(id) = silink; 433 434 // the main read-eval-write loop 435 while(1) 436 { 437 v = slRead(silink, v); 438 if (feErrors != NULL) 439 { 440 if (v != NULL) v->CleanUp(); 441 v = mpsr_InitLeftv(STRING_CMD, (void *) feErrors); 442 feErrors = NULL; 443 } 444 445 // no need to evaluate -- it is done in the read 446 if (v->Typ() == STRING_CMD && 447 (strcmp((char *)v->Data(), MPSR_QUIT_STRING) == 0)) 448 { 449 slKill(silink); 450 return 0; 451 } 452 453 slWriteMP(silink, v); 454 455 if (v != NULL) 456 { 457 v->CleanUp(); 458 Free(v, sizeof(sleftv)); 459 v = NULL; 460 } 461 } 462 // should never get here 463 return 1; 464 } 508 return Batch_ReadEval(silink); 509 } 510 465 511 466 512 /***************************************************************
Note: See TracChangeset
for help on using the changeset viewer.