📄 changes.txt
字号:
Float64_Type (64 bit float) Not all systems support 64 bit integers. These synonyms are useful when one needs integers and floats of a definite size.14. array_sort changed to use qsort. The main reason for this is that the previous sorting method was derived from a numerical recipes merge sort.15. New namespace manipulation functions available. When a function or variable is declared as `static', it is placed in the private namespace associated with the object being parsed (a file). By default, there is no way of getting at that function or variable from outside the the file. However, the private namespace may be given a name via the `implements' function: implements ("A"); Then the private variables and functions of the namespace A may be accessed via A->variable_name or A->function_name. The default global namespace is called `Global'. For example, the intrinsic function `message' is defined in the global namespace. One may use either of the following forms to access it: message ("hello"); Global->message ("hello");----- snapshot slang1.3_981104 made available -----16. New intrinsics: strtok (See documentation) length (Get the length of an object)17. New data type added: Any_Type. An array of such a type is capable of holding any object, e.g., a = Any_Type [3]; a[0] = 1; a[1] = "string"; a[2] = (1 + 2i); Dereferencing an Any_Type object returns the actual object. That is, @a[1] produces "string". 18. Associative arrays added. See documentation.19. New `foreach' statement. See the section on `foreach' in doc/text/slang.txt as well as the examples in examples/assoc.sl and src/calc.sl.20. Oops. sign function was broken.21. array_sort modified to also accept &function_name.----- snapshot slang1.3_981116 made available (1.3.4) -----22. Before, it was necessary for the aplication to to call SLang_init_slassoc to enable associative array support. This is nolonger necessary if associative array support is enabled in sl-feat.h.23. Examples in the documentation modified to use foreach whenever a simplification occurred.24. Max screen size for 32 bit systems inclreased to 256 rows.25. `private' keyword added to prevent access to an object via the namespace. This works exactly like `static' except that `static' objects may be accessed via the namespace.26. structure access methods now available for application defined types (cl_sput, cl_sget). Also, note that array access methods are also available. See slassoc.c for examples.27. If x is a string, then x[[a:b]] produces a string composed of the characters x[a], ... x[b].29. New intrinsics: listdir: This returns the filenames in a specified directory as an array of strings.30. Source code for intrinsic functions reorganized in a more coherent fashion. In particular, SLang_init_slfile and SLang_init_slunix are obsolete (though still available) and applications should call a combination of the new functions: SLang_init_stdio() /* fgets, fopen, ... */ SLang_init_posix_process () /* getpid, kill, ... */ SLang_init_posix_dir () /* mkdir, stat, ... */ Note that `unix_kill' has been replaced by `kill'. So, if you use unix_kill in your application, change it to `kill'.31. It is now safe to redefine an object while executing the object, e.g., this is now ok: define f(x) { eval ("define f(x) { return x; }"); }32. Binary strings added. This means that it is now possible to use strings with embedded null characters. Too fully exploit this new feature, `fread' and `fwrite' functions were added to the stdio module. In addition `pack', `unpack', `sizeof_pack', `pad_pack_format' were added for converting between binary strings and other data types. See Stdio chapter of the documentation for more information.33. New structure intrinsic: set_struct_fields. This is useful for setting the fields of a structure without doing each one individually.34. Interpreter now understands __FILE__ and __LINE__ as referring to the file name and line number of the object being parsed.35. New intrinsic: array_map. This applies a function to each element of an array and returns the result as an array.36. The documentation for the intrinsic functions has been updated and organized into a more coherent form.37. New interface to C structures. See the documentation.38. Modifications to the interpreter integer types so that short and int are equivalent whenever sizeof(short)==sizeof(int). Ditto for int and long. This reduces the code size.39. NULL is equivalent to 0 in while and if statements, e.g., x = NULL; if (x) { never_executed (); } while (x) { never_executed (); }40. `public' made a keyword to for symmetry with `private' and `static', e.g., public define a_public_function (); public variable a_public_variable; 41. semantics of `implements' modified such that the default variable and function declarations are `static', i.e., define xxx (); % ==> public function implements ("foo"); define yyy (); % ==> static function42. Patch from Martynas Kunigelis <kunimart@pit.ktu.lt> adding more line and symbol drawing characters. Also a patch from k-yosino@inatori.netsweb.ne.jp forcing a flush when disabling use of the terminal's status line.--- Version 1.3.5 released ---43. Corrected the name of SLang_(sg)et_array_element to be consistent with the documentation.44. Fixed a bug involving orelse and andelse statements when _debug_info is non-zero.45. The _apropos intrinsic modified to work with namespaces. In fact, it now returns an array of matches, or if called with out a namespace argument, it returns values to the stack for backward compatibility.46. strchop and strchopr functions modified to return arrays. (this changes was actually made in 1.3.5).47. Semantics of strcompress modified to be more useful. The new semantics are probably more natural and should pose no compatibility problems.48. The `*' operator may be used in array index expressions and is equivalent to `[:]', e.g., a[*,1] means all elements in column 1 of the 2d array.49. New intrinsics to convert bstrings <--> arrays: bstring_to_array array_to_bstring50. New timing intrinsics: tic(); toc(); times (); Also, unix_ctime renamed to ctime (This change occurred in 1.3.5).51. strcat modified to accept more than 2 arguments: strcat ("a", "b", ..., "c") ==> "ab...c";52. %S in format specifiers will convert the object to its string representation and use it as %s.53. strtok defaults to using " \t\r\n\f" if called with one argument.54. fgetslines takes optional second argument that specifies the number of lines to read.55. If typeof(A) is IStruct_Type, and the corresponding C pointer is NULL, then pushing A will result in pushing NULL. This allows A to be compared to NULL.56. More optimization of arithmetic operations to improve speed. My tests indicate that the resulting code involving arithmetic operations are about twice as fast as python (1.5) and about 20% faster than perl 5.57. Patches from Andreas Kraft <kraft@fokus.gmd.de> disabling the listdir intrinsic function if compiled with MSC. Apparantly, the MSC compiler does not support posix functions such as opendir (although other vendors, e.g, Borland, have no problem with this).58. `array_sort' intrinsic may be used without a comparison function. See docs.59. Spelling errors in slang.tm corrected by Uichi Katsuta <katsuta@cced.mt.nec.co.jp> (Thanks!).60. Default install prefix changed from /usr to /usr/local61. Changes made to SLtt/SLsmg code so that when a color definition is made via, e.g., SLtt_set_color, then the SLsmg interface will be get automatcally notified so that the next SLsmg_refresh will produce the correct colors. In addition, SLsmg_touch_screen added.62. It is now possible to evaluate S-Lang expressions with the S-Lang preprocessor e.g., #ifeval (_slang_version > 9900) || (x == 1)63. sl-feat.h: Patch from J鰎g Strohmayer <j_s@gmx.de> to define _SLANG_MAP_VTXX_8BIT=1 for AMIGA.64. New intrinsics: strjoin. This joins elements of a string array. localtime, gmtime65. New SLsmg function: SLsmg_reinit_smg. Instead of calling SLsmg_reset_smg followed immediately by SLsmg_init_smg when processing SIGWINCH signals, call SLsmg_init_smg instead. This will allow SLsmg based code to properly redraw themselves when running in a SunOS cmdtool window by working around a bug in cmdtool.===========================================================================Changes since 1.2.1 1. slcmd.c was not parsing characters in single quotes correctly, e.g., 'a'.Changes since 1.2.0 1. Oops. A NULL pointer could be referenced in slcmd.c.Changes since 1.0.3 beta-1. The SLKeyMap_List_Type structure has been modified to allow the name of the keymap be be an arbitrary length. Unfortunately, this change breaks backward compatibility. So, if you have programs ^^^^^^^^^^^^^^^^^^^^ that are dynamically linked to previous BETA versions of 1.0, you ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ will have to recompile those applications!!! ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^0. The variable SLsmg_Newline_Moves has been renamed to SLsmg_Newline_Behavior with the following interpretation:#define SLSMG_NEWLINE_IGNORED 0 /* default */#define SLSMG_NEWLINE_MOVES 1 /* moves to next line, column 0 */#define SLSMG_NEWLINE_SCROLLS 2 /* moves but scrolls at bottom of screen */#define SLSMG_NEWLINE_PRINTABLE 3 /* prints as ^J */1. Added patches from Joao Luis Fonseca <joaolf@centroin.com.br> to src/mkfiles/makefile.all and a necessary OS/2 specific declaration to slvideo.c. I also added the Watcom patches from Bill McCarthy <WJMc@pobox.com> to makefile.all.2. The terminfo code is now aware of the complete set of terminfo definitions. However, the screen management routines support a small subset. (Eric W. Biederman <ebiederm+eric@npwt.net>).3. Improvements to the SLsmg scrolling alogorithm.4. SLang_process_keystring and SLang_make_keystring now return NULL upon failure.5. SLcomplex_sqrt branch cut modifed to be consistent with FORTRAN.6. If the system supports vsnprintf and snprintf, they are used. The assumption is that they return EOF upon failure. My linux man page for these functions have conflicting statements regarding this.7. Simplified handling of memory managed types. Now it is possible to pass the managed object directly to the intrinsic function. See slfile.c for an explicit example of this technique. Similarly, references may also be passed and the function SLang_assign_to_ref may be used to assign values to the referenced object. This is also illustrated in slfile.c.8. QNX specific tweak to slfile.c from Pavanas Abludo Incusus <pavanas@ccia.com>.9. Fixed a problem where, e.g., x = Double_Type [7,8,9]; y = x[0,[:],[:]]; returned y = Double_Type[8*9] instead of the more intuitive result Double_Type[8,9];10. SLcmd_Cmd_Table_Type structure changed to permit an unlimited number of arguments. The changed should be backward compatible except that a recompilation of the application will be necessary.11. New SLsmg function: SLsmg_set_color_in_region may be used to set the color of a specified region. See demo/smgtest.c for an
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -