📄 changes.txt
字号:
Changes since 1.4.81. src/slarray.c: superfluous call to SLclass_add_math_op removed (Michael Noble <mnoble at space.mit.edu>)2. src/slang.c: foreach (NULL) using("next"){} foo (); caused _NARGS=1 in foo.3. src/slarrfunc.c: Fix to prevent sum(NULL) from causing a core-dump.4. src/slimport.c: import (module, "") made equivalent to import(module,"Global"); This way, import(module, current_namespace()) will work when the current namespace is anonymous.5. src/slospath.c: Several users have requested that I add the ability to define a load path and use that path when loading interpreter files. To this end, several new functions were added to the API: char *SLpath_get_load_path (void); int SLpath_set_load_path (char *path); /* Get and Set the path to be searched for files */ int SLpath_get_path_delimiter (void); SLpath_set_path_delimiter (int delimiter); /* Get and set the character delimiter for search paths */ int SLang_load_file_verbose (int verbose); /* if non-zero, display file loading messages */ New intrinsics include: set_slang_load_path get_slang_load_path path_get_delimiter These functions, nor the intrinsics have an effect on applications that use SLang_load_file_hook or SLns_load_file_hook for loading files. The change should be transparant to applications that use the stock load file mechanism. The main difference is that if one attempts to load a file with no extension, e.g., "foo", but the file does not exist, then the interpreter will try to load the more recent of "foo.sl" and "foo.slc". See src/slsh.c for how the functions may be used.6. slsh/slsh.c: Updated to use the new search path code outlined above. Also, slsh is distributed with a collection of general purpose slang functions, including jed's provide/require functions. See slsh/README for more information.7. doc/tm/cslang.tm: Modified the section describing the implemetation of intrinsic functions in an effort to clarify the discussion.8. src/slang.c: tiny memory leak resulting from peephole optimzations added earlier found and fixed.9. src/slarrmisc.c: new intrinsic: cumsum computes the cumulative sum of an array via the new SLarray_map_array function.Changes since 1.4.71. src/sldisply.c: make sure SLtt_erase_line leaves the cursor at the beginning of a line in all cases. Previously, this happened only for terminals able to delete to the end of line _and_, when writing to the last line, the ability to insert a character.2. doc/tm/cslang.tm: In the discussion of the MAKE_CSTRUCT_FIELD macro, SLANG_STRING_TYPE was used instead of SLANG_INT_TYPE (mnoble@space.mit.edu). Similarly, in the discussion of intrinsic structures, My_Window was used instead of My_Win dburke@head-cfa.cfa.harvard.edu.3. src/slang.c: peephole optimizations of 1.4.7 were conflicting with __tmp optimizations. This was causing something as simple as define f() { variable a = [1.0:10.0:1]; variable b = a * 0.0; return a; } to fail.4. src/slarray.c Allow ranges to index higher dimensional array.5. slsh/slsh.c: Updated to allow a user specified search path. See slsh/README for more info.Changes since 1.4.61. src/slclass.c: Change "-??-" to "- ?? -" to avoid its interpretation as a trigraph. Miquel Garriga <miquel at icmab.es>2. src/mkfiles/makefile.all: If compiling with mingw32, use "cp" instead of "copy". Miquel Garriga <miquel at icmab.es>3. src/sllimits.h: Increased the size of the local variable and recursion stacks on 32 bit systems.4. src/slarrfun.c: "sum", "min", and "max" intrinsic functions added. Since these may conflict with application defined function, they have been placed in their own module. To get them, use SLang_init_array_extra --- SLang_init_all will not pick up this module. Version 2 of the library will add these functions to the main array function module.5. src/sltermin.c: Work around a bug in the solaris 7+8 tset program which improperly sets the TERMCAP environment variable (Paananen Mikko <mikkopa@cs.tut.fi>).6. src/slprep.c: Added support for "#stop" and a few other useful or convenient features. See comments at the top of slprep.c for more details. (Mark Olesen <molesen@zeunastaerker.de>).7. src/<misc>.c: "const" qualifier added to several places to put constant variables in rdata/text segment to be shared between other processes. ("Andrew V. Samoilov" <samoilov@usb.zp.ua>)8. src/sldisply.c: If colors were defined using the "Sf" capability instead of the "AF" capability, then assume those are specified in BGR format instead of RGB. (Pavel Roskin <proski@gnu.org>)9. slsh/slsh.c: "status" was not declared if compiled with SLSH_LIB_DIR defined. (mnoble@space.mit.edu)10. slsh/Makefile.g32: new file to allow slsh to be compiled with mingw32.11. src/sldisply.c,sltermin.c: if running as setuid/setgid, then limit access to the environment for such a process. <solar@openwall.com>.12. src/slstd.c: New intrinsic function _get_namespaces may be used to get a list of currently defined namespaces.13. src/slstruct.c: better support for pushing and popping structures from C via the SLang_push/pop_cstruct. See doc/text/cslang.txt for details.14. slsh/Makefile.in: install target added15. src/slang.c: additional peep-hole optimizations added16. src/*.c: fixes it enable the library to be compiled without floating support support.Changes since 1.4.51. doc/tm/rtl/struct.tm: Typos in documentation for set_struct_fields corrected by Douglas Burke <dburke@head-cfa.harvard.edu>.2. src/sldisply.c: VMS specific problem: SLang_TT_Write_FD was not getting initialized (Hartmut Becker <Hartmut.Becker@compaq.com>).3. src/slarith.c: On a 64 bit system, it was possible that Int_Type objects were not getting properly converted to Double_Type.4. src/sltoken.c: A unitialized memory reference fixed in the error handling of an empty character declaration ('').5. src/slstd.c: call to _SLinit_slcomplex moved to slmath.c. This means that one does not get complex number support unless math support is also enabled. (suggested by Michael Noble <mnoble@head-cfa.harvard.edu>)6. src/slclass.c: Make sure that when registering a class using SLANG_VOID_TYPE, the reserved class ids are not used.7. src/slmisc.c, src/sltoken.c: moved SLatoi and friends from sltoken to slmisc.c. This avoids linking in the interpreter when it is not needed.8. doc/tm/rtl/array.tm: Documentation for the "where" function corrected by <G.Milde@physik.tu-dresden.de>.9. src/slkeypad.c: support added for F11 and F12 keys10. src/slimport.c: Better handling of dlopen errors as suggested by Michael Noble <mnoble@head-cfa.harvard.edu.11. src/slstruct.c: make sure field names have legal names.12. src/slistruct.c: SLns_add_istruct_table added.13. src/sltoken.c: New name-space specific functions added: SLns_load_file, SLns_load_string These may be used to load a file or a string into a specified namespace. Simarily, the "eval" and "evalfile" functions may now be given a second argument to specify a namespace.14. src/slstd.c: __eqs function added to test for "sameness" of its arguments, __class_type returns information about how an object is classified, __class_id to return its class id. See examples/saveobj.sl for an example of the use of these functions.15. src/slarray.c: a 2-d array can nolonger be specified in-line as, e.g., [[1,2],[3,4]]. This now produces a 1-d array: [1,2,3,4].16. src/slregexp.c: fix for case-insentive matches involving e.g., a\{1,3\} type regexps (Thomas Schultz <tststs@gmx.de>)17. src/slarray.c: Allow setting elements of pointer type arrays to NULL, e.g., a[10] = NULL.18. src/slsignal.c: If CYGWIN, then assume posix signal handling works.19. src/slang.c: Do not allow an intrinsic function, variable, etc table to be added twice.20. src/slarray.c: Added _isnull intrinsic for checking for NULL values of array elements. This is useful since something like "where(a==NULL)" does not check the individual elements, whereas "where(_isnull(a))" does.21. src/sldisply.c: typo involving the initialization of Del_Eol_Str for terminals that do not have such capability. (Pavel Roskin <proski@gnu.org>)Changes since 1.4.41. Added QNX specific patches and fixed some typos that prevented it from compiling when _SLANG_OPTIMIZE_FOR_SPEED is 0. (Tijs Michels <tijs@vimec.nl>).2. Make sure '#ifeval expr' evaluates up to the end of a line and no further.3. src/sldisply.c: Do not look for pad info in the graphic charset pairs string. Also, when comparing space characters, be sure to take into account ACS. (Marek Paliwoda <paliwoda@inetia.pl>)4. Trivial code cleanups to avoid BCC 5.x warnings.5. src/mkfiles/makefile.all: BCC-specific tweaks (John Skilleter <John.Skilleter@pace.co.uk>)6. SLang_push/pop_datatype made public7. src/slutty.c: if tty is not initialized and an attempt is made to read from the tty, set errno to EBADF.8. src/slkeypad.c: New function SLkp_set_getkey_function. This may be used to specify a different function to read keys.9. src/slcurses.c: If an invalid keysequence is entered, simply return the characters of the sequence on successive getkey calls.10. src/slarray.c: Inline arrays of the form [1f, 0] were not working.11. src/sldisply.c: Make sure SLtt_get_screen size gets called by SLtt_initialize.12. doc/tm/rtl/struct.tm: typeof in example for get_struct_field_names corrected by Chris Baluta.13. modules/varray.c: example showing how a memory mapped array may be created. It also illustrates the free_fun callback for arrays.14. examples/life.sl: a S-Lang implementation of Conway's life.15. src/slclass.c: SLclass_dup_object function added. Although push/pop can be used to achieve a duplicated object, this function makes it a little easier.16. src/slang.h: Prototyes involving "unsigned char" to represent data types have been modified to use SLtype, which is typedefed to be an unsigned char. V2 will use a different size for data types.17. Misc tweaks to aclocal.m4, src/Makefile.in, etc to support MacOSX. I have not tested it on that system.18. The library may now be compiled under CYGWIN using the same procedure as under Unix.19. src/slkeypad.c: Some xterm-specific escape sequences added by Denis Zaitsev <zzz@cd-club.ru>. Changes since 1.4.31. Fixed a bug that shows up on 64 bit BigEndian machines--- it affected no others.2. Fixed potential problem in pre-parsing binary strings.3. Bug a fixed affecting only pure termcap-based systems. It has been around a while, I am surprised that it took so long to be discovered.Changes since 1.4.21. If init_NAME_module_ns does not exist in a module, then try to load init_NAME_module as long as the module is to be imported into the Global namespace.2. src/sldisply.c: allow more than 200 rows and 250 columns. Who uses such windows?3. Allow Void_Type to be specified for the data-type in array_map if the function returns nothing.4. src/slarray.c: A statement such as [1:-1][[1:-1]] = [1:-1]; was causing a core dump.5. src/sldisply.c: (Unix/VMS) SLsmg/SLtt routines will write using the file descriptor SLang_TT_Write_FD, which, by default, is initialized to fileno(stdout).6. src/slposio.c: New C API functions: SLfile_get_fd returns the file descriptor associated with the SLFile object. SLfile_dup_fd: duplicate an SLFile object7. src/slposio.c: New intrinsics: dup_fd (dup a file descriptor)8. SLerrno.c: C API Function: SLerrno_set_errno.9. SLerrno.c: More errno values added.10. Raising complex types to powers supported.11. slang.c: current_namespace was returning "global" instead of "Global" for the global namespace.12. slang.c: `use_namespace("X");define f();' was not placing `f' into `X'.13. path_is_absolute fixed to return integer14. src/slarray.c: generate an error when an empty array is passed to array_map.15. src/slarray.c: a=3; a[*] should return an array.16. Make sure setlocale(LC_NUMERIC,"C") gets called.17. slvideo.c: SLtt_set_cursor_visibility implemented for win32.18. slvideo.c: SLtt_get_screen_size corrected for win32 by Zusha P.19. configure: modified to not automatically assume that -ldl is required for dlopen. In addition, molesen@zeunastaerker.de sent patches for building dynamically linked library under irix.20. slsh/Makefile: generated by configure.21. modules/Makefile: generated by configure22. src/slimport.c: If no module path has been set, fall back on $(prefix)/lib/slang/modules23. src/Makefile.in: DESTDIR support added by Brad <brad@comstyle.com>.24. src/Makefile.in: documentation is installed in $(prefix)/doc/slang and no longer in $(prefix)/doc/slang/$(slang_version)25. sleep intrinsic can take a floating point number to sleep fractional seconds.26. src/slang.c: fix SLang_run_hooks to accept a namespace qualifier.27. New modules added to the module directory: fcntl, select, termios.Changes since 1.4.11. slang.c: Under certain conditions, the continue statement was not properly handled in do..while statements. src/test/loops.sl added for testing.2. slparse.c: avoid potential (rare?) infinite loop when slang error occurs (Stanis砤 Bartkowski <sb@protest.com.pl>).3. slsmg.c: When SLsmg_init_smg is called, mark the display as trashed.4. It is now possible to add intrinsics to their own namespace via new SLns_add* functions. Moreover, the import function now takes an optional additional argument that specifies a namespace.5. New namespace intrinsics: use_namespace, current_namespace6. Changed inner-product algorithm to minimize the number of cache misses.7. sldisply.c: Kanji specific patch from Jim Chen <jimc@ns.turbolinux.com.cn>.8. sldisply.c: Assume that Eterm and rxvt are xterm-like (Michael Jennings <mej@valinux.com>).9. sldostty.c: mouse support added by Gisle Vanem <giva@bgnett.no>.10. slsearch.c: avoid infinite loop if search string has no length. 11. SCO elf support added by Mike Hopkirk <hops@sco.com>.12. slregexp.c: regexp \d+ was not working properly13. keyhash.c: typos involving USER_BLOCK keywords corrected. (the use of USER_BLOCKs is discouraged).14. New intrinsic variable: _slang_doc_dir. This specifies the installation location of the doc files.15. Make sure it can compile with SLTT_HAS_NON_BCE_SUPPORT set to 0.Changes since 1.4.01. slw32tty.c: `v' key was not being handled on win32 systems. Also, Shift-TAB will now generate ^@-TAB.2. New intrinsic function: strreplace. This is more flexible than str_replace.3. VMSMAKE.COM: slstring added to list of files to get compiled.4. slsh/Makefile, modules/Makefile: added patch from Jim Knoble <jmknoble@pobox.com> to create elf versions (make ELF=elf).5. AIX IBMC patches from Andy Igoshin <ai@vsu.ru>.6. autoconf/config.sub: tweaked to properly handle recent alpha systems.7. If compiling on an alpha, add -mieee compiler flags.8. SLang_roll_stack and SLang_reverse_stack functions made public.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -