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" == &#x200a; ??
138	\% == soft hyphen == &shy;
139
140	groff dashes:
141		- == \[hy] => u2010 (hyphen)
142		\- as u2212 (minus sign)
143		\(en == \[en] == en dash == &ndash == &#x2013;
144		\(em == \[em] == em dash == &mdash == &#x2014;
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