1$Id: TODO.soon,v 1.501 2021-11-20 18:16:26 phil Exp $ 2 3announce 2.2.2 on comp.compilers!! 4 5================ 2.2+ 6 7use ffi.c.nomagic? 8 9paired --with/--without? 10 11setuputil "make"; run Makefile.mod w/ MOD= (& SRC=) args? 12 or use FILE_NEWER?!! 13 14write tests for compressed, (TLS?) I/O 15 16update README, CHANGELOG 17 18flush os_find_symbol stash (& bsd/load.c?) 19 20cvs rm test/ndbm.sno test/random.sno test/sleep.sno test/time.sno 21 22GLOBAL define (non-VAR)???? 23 24DJGPP: inet6 problems? 25 26Windows: permissions issue?? 27 28Mac OS X 10.5.8: birthtimespec 29 30modules: 31 global lib list (need lock)? 32 use count field?? honor on unload?? 33 34 handleio_obj?? handle to io_obj? need handle_table!! 35 need handle_table for handle_tables? 36 cleanup: need to closeall BEFORE unloading all functions 37 38================ 39 40mem i/o: 41 I/O option? 'm' -- take string instead of filename for input 42 or MEMIO_OPEN??? 43 function to get output given unit number 44 45 open_memstream -- POSIX.1-2008 (output only) 46 auxil/memio_obj.c -- need to allow expansion (caller must free) 47 48JSON_ENCODE: take optional indent argument (pretty print) 49 50shared library: 51 versioning: gcc -shared -Wl,-soname,libxx.so.1 -o libxx.so.1.0.1 52 detect/prevent re-entry if not compiled for threads? 53 move all startup banner output to main.c (snobol4_banners?)? 54 thread enable: 55 getopt not thread safe! 56 shared library list should be shared (needs locking!) 57 split INTERP call out of BEGIN (allow I/O reconfig after compile)? 58 rename public io_ to snobol4_ (for snobol4.h)? 59 60FFI: 61 use loadx code for function lookup (ref counting) 62 63Add snobol4load man page (replace load.txt)?? 64 add mgetstr 65 66snobol4.1, snobol4ext man pages: include CSNOBOL4 versions for changes 67 68snobol4func: add "added in CSNOBOL version ..." 69 EXIT (others??) 70 71Use HAVE_PATHS_H/<paths.h>, path.h in generic/execute.c, bsd/popen.c?? 72 73Not on Android: 74 include/path.h:#define TMP_DIR "/tmp" /* exists on all systems?! 75 76re-implement io_getfp w/ stdio_obj_getfp?? 77 78remove io_clearerr method? 79 80setjmp/longjmp for ^C on TTY read?? 81 82genc: 83 Turn SELBRA & STREAM with single label into if 84 85Look at Python tkinter?? 86 87Modernize: 88 use mspec2str in io.c 89 convert rest of library routines 90 Replace bcopy, bzero 91 92other tests from DEC-10 and VAX SNOBOL? 93 arbitrary precision lib?? 94 95snobol4.1, snobol4ext man pages: include CSNOBOL4 versions for changes 96 97Add SITBOL &ERRPARM variable for error info 98 undefined label 99 undefined function 100 failed include 101 102make failed include a syntax error 103 Show filename for failed include??? 104 105setuputils: extract SNOBOL4 code from module.c? 106 can swear I've seen this Perl C code, using =cut for the ending 107 add doc man html commands 108 Use (and document) FILE_NEWER 109 110handle more fatal errors (return from level zero?) 111 112branch to (F)RETURN in SETEXIT handler should clear XOCBSC???? 113 114repl.sno (read/eval/print loop)?? run if -R given??? 115 116snobol4key: document TRACEable keywords 117 118snobol4key/func: document &STNO trace / BREAKPOINT()??? 119 120snobol4key.1: Where does STLIMIT < 0 extension come from??? 121 122allow too few function arguments to APPLY? 123 124allow OPSYN of "[" ? underlying function looks at arg count?? 125 126Newer GUI options (by embedding lua?) 127 wxWidgets 128 GTK+ 129 Qt 130 comparisons: https://wiki.wxwidgets.org/WxWidgets_Compared_To_Other_Toolkits 131 132stat: add st_gen?? 133 134================ 135 136snopea: 137 \^ == "hair space" ==   ?? 138 \% == soft hyphen == ­ 139 140 groff dashes: 141 - == \[hy] => u2010 (hyphen) 142 \- as u2212 (minus sign) 143 \(en == \[en] == en dash == &ndash == – 144 \(em == \[em] == em dash == &mdash == — 145 146 ???? 2011 == non-breaking hyphen 147 1482.1+: 149 Enable -Wimplicit-function-declaration -Werror in configure "check"?? 150 pass CFLAGS env var? 151 ANSIfy: flush str.h 152 153man pages: 154 snobol4func 155 make sure all function & type names in bold, 156 argument names in italic. 157 add better descriptions (esp ARRAY, DEFINE, PROTOTYPE) 158 159 snobol4syn: 160 statement syntax 161 goto 162 expressions: 163 (expr, ....) 164 comment / continuation 165 166 snobol4utf -- from pea comments in utf.sno 167 snobol4com 168 169 snobol4load -- C functions/macros 170 snobol4dynamic -- pea comments in dynamic.sno 171 snobol4wrapper -- pea comments in wrapper.sno 172 173EXIT() 174 call io_finish()???????? 175 implement Win32 version of execute()?? 176 output to stderr if "save" attempted??? 177 178snopea.sno: 179 output anchors for sect/subsect 180 use style sheet for HTML!!! 181 182Windows readline: 183 http://sourceforge.net/projects/mingweditline/?source=directory 184 185MinGW: 186 try stcl? 187 do absolute paths in includes work?? 188 189snopea.sno: 190 rewrite to use functions!!!!! 191 =hdr for table header row? 192 display UC words in small caps? 193 allow nested attributes?! 194 L<URL|text> 195 E<entity>?? 196 S<superscript> 197 s<subscript>??? 198 automatic links for URLs?? 199 Descriptive attribute for example (bold in man, TT in HTML)???? 200 201Phillip Thomas: check if -l is a source file!! 202 203accept string for unit? 204 -NEWIO -OLDIO??? 205 default to I/O association variable name?! 206 207have HAVE_TELLDIR define?? 208 test with: 209 210 #include <dirent.h> 211 212 int 213 main() { 214 DIR *d = opendir("."); 215 return telldir(d) != 0; 216 } 217 218modules: 219 ffi: 220 FFI_CALL_VAR(proto, fhandle, args....) 221 port to windows -- need to abstract dlopen calls 222 223 ndbm module: 224 direct interface to gdbm??? 225 226 More: 227 glob?? fnmatch? 228 Fred W wants: 229 FILENO(), CLOSE(), SELECT(), 230 MALLOC(), FREE() 231 ACCEPT()? 232 233 use mgetstring (even more!) 234 235 curses simulation of DOS SPITBOL screen functions?? 236 237readline: 238 Allow initial text (for Fred W) 239 use "libedit" natively?? 240 supply/use private version of libedit???? 241 Allow readline() access via INPUT? (magic path, or option) 242 Allow control of history 243 Allow control of filename expansion 244 245configure: Flush all use of grep/INCDIR!!! 246 247Supply implicit END (ala SITBOL) 248 249Allow trapping more fatal errors (except storage allocation/internal)? 250 SITBOL &ERRPARM for: 251 undefined function/function entry/label/operator 252 different flavors of UNDF (to set ERRPARAM)?? 253 add 4th slot to OPTBL w/ operator name/string? 254 offending value (wrong datatype) 255 Example: &RTNTYPE: RETPCL <- pointer to nat var? 256 257Benchmark USE_MEM{MOVE,SET} 258 259Flush direct use of b{copy,zero}?? 260 261get rid of old FORTRAN FORMAT strings!! 262 OTSATL: DFLFST, PCHFST 263 264update install-sh (many to choose from!)?? 265 266Look at hash function, OBSFT 267 Use "assention" to implement skip-list??? 268 269Eliminate GC copying, keep free list? 270 Copy into new semi-space? 271 272list/queue utility functions!!! 273 274TAINT flag??? reuse FROZEN??? 275 any input string 276 all string values from external functions? 277 any concatenation with a tainted value 278 checked by: system (HOST), io_fopen (pipe & pty) 279 280Document BREAKPOINT()???? 281 282Compiler: 283 COMPILE(file,listing) function?? 284 allow (re)loading in debugger/IDE 285 get rid of null statements (don't incr STNO) 286 list ';' separated statements on own lines? 287 288SETEXITFUNC() 289 enter handler as function to allow nested handlers! 290 take action depending on return (abort, continue, scontinue) 291 292sdb: 293 don't whine when quitting at first prompt 294 force "run" (rather than continue) at first prompt? 295 set: (just SDB.VARS?) 296 "trace" (via FCALL/FRET) 297 "debug" 298 handle multi-statement lines better? 299 handle block comments better? 300 save and enable &INPUT and &OUTPUT on all debugger entries, 301 restore on all exits!! 302 save printed values? in SDB.VALUES[n]?? 303 remove break/watchpoints when disabled? 304 non-existant file on sdb command line shows "No END"!!! 305 really compiler bug! 306 BUG: breakpoint on bare label (compiler bug) 307 could deal with it in sdb listing file parser 308 BUG: ignored watchpoints (cont N or ignore B N) don't update old value 309 "code" command? 310 list [START [END]] 311 312Implement SITBOL (DIS)ASSOCIATE 313 314Have timing script POST results?? 315 316Agregate dumping (DUMP(2); &DUMP = 2) 317 What about NAMEs? 318 319genc.sno option to use void ** & goto (or goto big_switch;) 320 (configure --mode=xxx)??? 321 322configure --with-boehm-gc 323 find out if gc start/end hook possible. 324 325make "FTRACE" TRACE()able? 326 pass FUNCTION, CALL/RETURN/FRETURN/NRETURN, ARGS/VALUE 327 use in sdb to avoid DEFINE() hack, and CALL/RETURN tracing 328 329 see FENTR2, FNEXT2 330 331see if clearing V&F is necessary in all cases?? try just F???? 332 looked at PDP-10 333 look at 360, VAX macros, B6700 source 334 335set-uid checks: 336 (silently?) ignore environment variables 337 (SNODIR, SNOPATH, SNOBOL_PRELOAD_PATH) 338 Command line arg to re-enable??? 339 Command line args to ignore: -L -I?? 340 341String/number conversion 342 Additional argument to CONVERT() like SITBOL 343 Add STRTOINT 344 Have SPRINTF check for reasonable format?? 345 346have COMPILE_C_DYNAMIC() return object file name?? 347 348Pure SNOBOL test driver able to run under windows 349 need to differentiate between text and binary reference files 350 Need to fix CR handling (mingw?); EOLSTR, _setmode() 351 URL/INET functions need to set binary mode to avoid double CR??? 352 353handle leading or trailing PATH_SEP on SNOPATH and PRELOAD_PATH 354 to mean "and also the default" 355 356Test/distribute modified orange book library [gimpel] 357 358Package up SNOSTORM?? W/ MTS document??? 359 360snobol4 machine generate win32 .mak files?? 361 create a config.m4 file 362 post-process output 363 364convert lib/{hpux,vms,next}/load.c to os_load() API 365 simulate dlopen(), then use unix98 load.c? 366 367Make use of tdb (from samba project: gdbm API w/ multiple writers)? 368 369 Have seperate APIs for each DBM alternative, OPSYN to the default version? 370 371 Direct GDBM support (allows simultaneous access)?? 372 373Add DIFFTIME function?? 374 375Fix utf.sno RUNE() function: 376 use logic.sno (or wctomb()?) 377 378Mac "universal" 379 update, or just just flush?? 380 381only work with boehm GC? 382 383allow LOADed functions to "intern" strings... 384 385hash TABLEs 386 387Implement SPITBOL EXIT [+-][34] freeze functionality 388 389SITBOL &HISTOGRAM support? 390 391================ 392 393Look at Ruby Win32API & win32ole facilities 394 395fall back to "ln -s" in "make install" 396 397dynamic.sno: 398 function(s) to create Makefile? 399 functions to read template file 400 (and either create on the fly, or build Makefile)? 401 402makewrapper: 403 have SYSPRED return int (not a predicate!)? 404 add "HANDLE" datatype? 405 install handle.h 406 export handle routines 407 use SNOEXP() for handle functions? 408 409DBM 410 have way to find out which DB library in use??? 411 412 create/use POSIX_MODE() conversion function. 413 414undefined function (label?) hooks? 415 416convert('2500000000', 'real') fails on home? 417 strtol() does not detect overflow. 418 Delete SPCINT at CONVR+1? 419 Reverse SPCINT/SPREAL at EVAL 420 421report percentage of time in GC? 422 423report max heap size used in stats 424 425pattern match tracing PTRACE? MTRACE? under ifdef? 426 multi-level: entry/exit (subject, matched string) 427 element tracing 428 "cursor" display 429 430Unix domain sockets 431 datagram vs stream 432 allow single accept??? 433 434DYNAMIC LOADING!! 435 add LOADMODULE() -- looks for prototypes? 436 move pmprotos to loadable files? 437 auto-find them???? 438 well known array 439 well known function 440 search for any xxx_prototype 441 use on dynamic load also? 442 use "include" files to declare? 443 generate from .c sources?! 444 445 do PML search at higher level? 446 allow multiple loaders, implement PML as one of many?? 447 448 **** undefended getenv + sprintf() in various load functions!! 449 pull up? 450 451 use snohandle_t's in */load.c? 452 need by-name lookup for unload!!! 453 454 create libtool/load.c?? 455 use -lltdl 456 457 keep usecount in next/load.c? Apple dlopen() simulation does! 458 TESTED 4/15/2003 -- not needed?? 459 http://cvs.opendarwin.org//cgi-bin/cvsweb.cgi/proj/dlcompat/ 460 461output missing function/label name in bad call/goto? 462 463expand interpreter routines? 464 (instead of set constant, prelude, switch on constant) 465 466Rafal: 467 http://www.star.le.ac.uk/~tjg/rc/misc/editline-1.5.tar.gz 468 469Create loadable modules: 470 POSIX 471 MKFIFO, etc? 472 473Test COM 474 InternetExploder?? 475 476man page installation: 477 install preformatted, compressed where it's the norm?! 478 479Oversize integer constants not detected on all systems! 480 use own strtol(l)? 481 482verify correctness of line.ref, include.ref 483 484have tests cleanup after themselves? Add Makefile for "make clean"? 485 just add files to "make spotless" 486 487==== stuff to do for releases; 488 489update version in CHANGES, README, INSTALL, configure 490 491update packaging 492 493run ispell on docs; 494 snobol4.1 495 porting.ms 496 load.txt 497 INSTALL 498 README 499 500update man page: 501 date 502 HOST output 503 504check in all files (incl History, TODO.soon) 505 506note release in TODO.soon 507 508tag all files 509 510================ 511 512use const for ordvst qsort function? use bcmp? memcmp?? 513 (Solaris) 514 515HOST() to return CSNOBOL4 version level?? 516 517Add FORK() to pml.h (under PML_FORK?) 518 519More PML functions: 520 create PIPE() and CLOSEFD()?? CLOSEONEXEC()?? 521 522pass CPP directives thru gendata.sno?? 523 copy to all output files? 524 warn about unknown ops? 525 526add const's to getstring, retstring defns? 527 528put default prefix in configure script (so --prefix help can display it)? 529 530eliminate patern match "function" pointer indirections?? 531 532 ANYCCL -> ANYCFN (XANY) 533 534 Just push index value??? 535 536script to grep for all "ifdefs" and output strings to build.c? 537 just stringify options in config.h? 538 539if using bitfields, try reordering v/f fields depending on endian-ness? 540 541split procs into static & procified? 542 only procified need top label!! 543 544tsort: use a snocone version? 545 546HOST() 547 add build_user??? 548 move to mkbuild script? 549 550new versions of RETxxx macros cause "code not reached" warnings 551 change to obscene use of "," construct??? 552 553create snolib_pic.a??? 554 555sysinfo(SI_PLATFORM, .... ) for HOST()? Sun 556SI_ARCHITECTURE?? Sun, IRIX6.2! 557 558================ 559 560define SIZE_T macro? (grep for SIZE_T comments) 561 562all S_L fetches should use int_t variables! 563 564avoid using unit 8 for terminal? 565 do all systems open stderr (and/or fd 2) r/w??? 566 NO! Win32 does not! input & output consoles are different beasts? 567 568Tests; 569 add "scan.sno" test 570 add outerr.sno test? 571 572SPITBOL features; 573 FENCE() 574 NOT() 575 576 allow STRING for units??? 577 578 SPITBOL-386 HOST() functions????? 579 580================ 581 582GC 583 recode GC in C -- use pointer reversal? 584 585 use mmap() for dynamic region 586 grow/shrink it? 587 seperate dyanmic, vm_advise? 588 589 use semi-spaces? 590 591 replace GC with Boehm package?? 592 593better man page installation 594 install formatted / compressed versions like the natives do 595 596per-machine (arch?) build dirs 597 do machine-independant parts in base dir (genc, gendata, gensyn) 598 leave flat, but split up Makefile work? 599** Need to add $(SRCDIR) to all 'xxx_C=' lines in config/*.m4 600 601io.c cleanup; 602 fseeko by zero not needed if !defined(NO_UNBUF_RW) and !FL_UNBUF 603 set LAST_NONE after fseeko, don't set LAST_{IN,OUT}PUT 604 until actual I/O done 605 io_flushall 606 external MINUNIT, MAXUNIT 607 fflush before mode restore? 608 io_relfile (instead of free(fp)?) 609 io_ecomp() 610 if -r not given, include files not freed? 611 612Steve Kibler's DYNAMIC changes; 613 findvar/findstring? 614 615URL package; 616 Fix "file.sno" (file URL's) to handle null host, "localhost"?? 617 use ftp if not local? 618 Allow user:password@host in ftp url 619 620Win32; 621 replace dummy execute function? 622 document DLL creation in load.txt 623 mention http://www.geocities.com/SiliconValley/5806/implib32.htm 624 625man page; 626 document math error catching problems in BUGS section; 627 "hampered by"; 628 629 + C's lax attitude towards integer errors 630 perhaps due to PDP11's lack of integer overflow trap 631 632 + Lack of IEEE standard interface functions for; 633 enabling exceptions 634 (standard specifies disabled by default?) 635 checking for accrued errors 636 class(), isinf(), or finite() 637 638 + POSIX (& ANSI?) definition of SIGFPE 639 (normal return behavior is undefined) 640 restart/looping 641 642make NO_BITFIELDS VFLD_T "long"?? 643 need to use vfld_t in place of "int" in library routines??? 644 remove default (must supply VFLD_T if defining NO_BITFIELDS)?? 645 646================ 647 648LOAD-wrapper; 649 given pseudo-prototype, generate C code for wrapper function 650 compile, link and LOAD()? 651 652Implement REALCVT?? 653 using sprintf? 654 using catspaw code?? 655 autoload it??? 656 657autoconf: 658 check for index() in <string.h> (BSD44) 659 save additions in (local-config?) file?? 660 661unix98/load.c 662 allow access to symbols from main application?? 663 make shared snolib $(SNOLIB_FILE) 664 665man page: 666 more on I/O options (esp update) 667 examples??? 668 if neither Append nor Update, file is truncated 669 must specify record len for INPUT() on update! 670 recl is per-VARIABLE 671 note, update on INPUT() will not create file??? 672 mention load.txt located in SNOLIB dir 673 674SPITBOL/SNOBOL4+ compatibility document? 675 'd' exponents 676 data type conversions?? 677 no NAME datatype 678 table access creates empty entry (see FREEZE/THAW) 679 APPLY() requires arguments 680 no ATAN() function 681 BACKSPACE() not supported 682 CLEAR() does not take args 683 clears pre-initialized vars (ie; ARB, FENCE) 684 DUMP() 685 no default table values 686 687================ 688 689snobol4io page: 690 properties; layer; 691 recl I/O variable [per-fd for ttys] 692 binary stream(/fd) [per-fd? for ttys] 693 noecho unit 694 append stream/fd 695 update unit/stream/fd 696 unbuf unit 697 698 magic filenames 699 noclose behavior! 700 701==== 702 703Add "N" I/O flag?? 704 set IO_NONBLOCK (POSIX), IO_NDELAY (sysV) 705 or IO_NDELAY (BSD -- effects ALL fd's) 706 707Implement select()/poll()??? 708 709Test: 710 I/O options (include bad strings!) 711 712release updated rebus 713 714update v311.sil table of contents? 715 remove?? 716 717add new utf.sno to snolib?? 718 719add to snobol4+.inc? 720 PATHNAME(), ASC(), SETBREAK() 721 722add UNAME_DOT_VERSION ifdef in posix/sys.c for AIX? 723 724================ after release; 725 726update ftp areas; 727 cs.arizona.edu 728 snobol4.com 729 730update web pages; 731 snobol4.html 732 snobol4.man.html 733 timing lists 734 735announce/notify; 736 SNOBOL4 list 737 SPITBOL list 738 739 SIGPLAN notices?? 740 741 comp.lang.icon,comp.lang.misc,comp.compilers 742 743 free compilers/interpreters list maintainer 744 free-compilers@idiom.com 745 746 SAL@KachinaTech.COM 747 http://SAL.KachinaTech.COM/F/1/SNOBOL4.html 748 749 lingiust list 750 http://www.linguistlist.org/ 751 752 litterature researchers 753 ask Eric Johnson!! 754 755 classicists 756 ask burkhard meisner (meissner@altertum.uni-halle.de) 757 758 retrocomputing museum; 759 http://www.tuxedo.org/~esr/retro/ 760 point them to my resources page? 761 762 Humanist 763 http://www.princeton.edu/~mccarty/humanist/ 764 765================ later; 766 767table default values??? 768 769add $(OBJDIR) prefix before all .o filenames in Makefile2? 770 add explicit rules for version.o, syn.o 771 772add io_flushall() to snolib/system.c 773 add dummy io_flushall to snolib.a? 774 775posix/tty.c; enable 8-bit datapath on "raw"? 776 cfmakeraw(3) 777 778I/O; 779 pass back flags with recl (so "T" is per-var?)?? 780 need to mask off flags to get recl 781 use COMPCL instead of "compiling"??? 782 implement I/O objects (input, output, close methods) 783 add option char to ignore "magic" pathnames? 784 (or char to enter magic namespace) 785 786have gen*.sno output to xxx.[ch]3, perform mv to .[ch]2 after completion? 787 avoids problems when ^C'ed and partial .h2 files written! 788 789rewind tests; 790 split program across files 791 split data across files?? 792 793Create test for plusops off? 794 opsyn ?, look at precedence, associativity 795 try numeric conversion 796 try conversion on numbers with leading spaces (DONE: space2) 797 798==== 799 800SITBOL features; 801 relative/numeric goto 802 foo pat = :<> 803 :<-1> 804 LABEL(.FUNC,OFF) returns CODE! 805 806move data_init into (i)snobol4.c, 807 get rid of (most) entries in "globals" 808 [except for SYSCUT, UNDF, INTR10, more? ] 809 810================ 811 812add code to ato[id]() version of spcint()/spreal() 813 to check syntax?? (so CONVERT NUMERIC works) 814 815================================================================ 816 817from s4+ 818 &INFINITY 819 HUGE_VAL (ANSI/POSIX/SVID?) 820 HUGE bsd? 821 822 &NAN 823 quiet_nan()? sunos4, sunos5 824 signaling_nan()?? sunos4, sunos5 825 infnan(errno) GNU/Linux, 44lite2, 43reno 826 ERANGE: +inf 827 -ERANGE: -inf 828 else: NaN 829 830================ 831 832better math exception catching; 833 834 Ensure operands "finite" before floating point ops??? 835 fp_class_d(): irix5.3 <fp_class.h> 836 fp_class(): sunos4 <math.h> 837 fpclassify(): hpux9 ("ANSI future directions") 838 fpclassify[fdl](): linux 839 class(): aix4 840 finite(): irix5,sunos4/5,netbsd,aix4,hpux9,linux <math.h> 841 finitef(): hpux9 <math.h> 842 fpclass(): irix5.3, sunos5 <ieeefp.h> 843 844 isnan() XPG4 845 846 enable exceptions; 847 ieee_handler: sunos4, sunos5 (replaces "signal" call) 848 fpsetmask: NetBSD/FreeBSD <ieeefp.h> 849 HP-UX <math.h> 850 handle_sigfpes: irix 851 ieee_set_fp_control: OSF/1 852 fp_enable, fp_enable_all: AIX <fptrap.h> 853 854 Use sticky (ieee accrued exception bits); 855 HP/NetBSD: fp{get,set}sticky 856 FreeBSD: fp{get,reset}sticky 857 Sun: ieee_flags("get", "exception", ...) 858 (man floatingpoint) 859 860 catching library errs; 861 matherr: sunos4, sunos5, SVID3, (deprecated in XPG3) 862 863================================================================ 864 865CHAR/LPAD/RPAD in wrong section of v311.sil?! 866 867================ DUMP; 868 869implement SPITBOL &DUMP values? 870&DUMP protected keywords? 871DUMP(n); 872 873 0 no dump 874 1 partial dump (no null variables, constant keywords) 875 2 include values of non-null array/table elements 876 non-null members of user datatypes 877 3 include null-valued variables, stmt labels 878 879from Gene Battin; 880 send &DUMP output to stderr? (SPARC SPITBOL uses stdout) 881 882================ 883 884disallow 0 ^ 0? 885SPITBOL x ^ y (y < 0) always yields REAL? 886 887================ 888 889SITBOL (DIS)ASSOCIATE() 890 INSERTBP() REMOVEBP() 891 CONNECT() 892 893================ 894 895perform live/dead analysis of variables for each function?! 896 897determine if any temporaries are always used only within a function 898 (never live inputs?) 899 900================ 901 902dump MAXLNGTH? sparc SPITBOL uses 2^22! 903 904have genc read entire program; 905 output internal branches first (avoid manual cleanup) 906 output common tails as routines 907 "inline" extra-subroutine branches? 908 (if common tail "simple") 909 910manually copy common code? 911 example: RECOMZ 912 913find places where common tails exist, and move to ends of routines 914 examples (done) STOPTP, RECOMZ 915 916document --add-define= PSSIZE, NDYNAMIC (both take ndescr) 917 918file stat releated functions; 919 NEWER(FILE1,FILE2)?? 920 FILESIZE()?? 921 STAT()?? 922 923see the old TODO file!!! 924 925VMS timing script? 926 SHOW SYSTEM/NOPROCESS/CLUSTER/FULL 927 928Add __P((ret_t)) to func_t? 929 930Create fconvert/gconvert or fcvt/gcvt for realst? 931 932new I/O 933 934flag in descriptor for I/O association? 935 in variable? 936 in in hash table? 937 938implement tty image mode? 939 pass flags to tty_mode? change "cbreak" to enum cooked/cbreak/raw 940 941create Makefiles from file list? 942 snobol4 config program? 943 create dummy os_init(), osdep_open()? 944 945implement UDP server ICP in SERV_LISTEN? 946 use select to wait for packet? 947 need ungetc? 948 949document new INET_xxx flags in man page??? 950 951document API's in snolib.3! 952 953check if REPLACE() args same as last time 954 955implement -IFINCLUDE? 956 process $VAR (as prefix?) 957 958new SPITBOL -IF??? 959 960================ 961github 962 auto-build on Windows? 963 https://github.com/ilammy/msvc-dev-cmd 964 package results? 965