📄 changes.txt
字号:
9. SLang_free_function added. If you call SLang_pop_function, then when finished, call SLang_free_function. This does nothing in 1.X but may do something in 2.x.10. src/slrline.c: Keybindings for ESC O A, etc added.11. src/slsmg.c: SLsmg_write_nstring: avoid many loops if an extremely large value is passed (> 0x7FFFFFFF).12. src/slregexp.c made thread safe13. src/slsmg.c: Cursor was not always properly positioned when after SLsmg_touch_lines called.14. If terminal does not have erase to eol capability, then use spaces.15. doc/tm/strops.sl: doc for strcat updated to reflect its ability to concatenate N strings.16. Documentation updated to indicate that floating point range arrays are open intervals such that [a:b] does not include b. slarray.c was modified to enforce this specification. Previously, whether or not b was included in the interval was indeterminate.17. src/slsmg.c: bug involving SLsmg_set_screen_start fixed.18. src/slparse.c: parser was failing to catch misplaced `}'.Changes since 1.3.101. If a floating point exception occurs and the OS allows the library to handle it without forcing a longjmp, then SL_FLOATING_EXCEPTION will get generated instead of SL_INTRINSIC_ERROR. Note: Linux provides no way to handle floating point exceptions without forcing a longjmp. In my opinion, this is a flaw.2. SLang_pop_double was returning the wrong value for short and character types.3. New intrinsic: is_struct_type(X) ==> non-zero is X is a struct.4. typecast operation from user defined type to Struct_Type added.5. slkeypad.c: DOS/Windows DELETE_KEY definition added (Doug Kaufman <dkaufman@rahul.net>)6. slposdir.c: Do not depend upon the existence of rmdir on VMS systems.7. slang.c: abs, sign, mul2, chs, sqr were not being treated as function calls.8. sldisply.c:SLtt_cls: If the terminal is a color terminal but being used as a black and white terminal, then reset colors before clearing.9. path_sans_extname intrinsic added.10. slimport.c: If module defines deinit_NAME, will be be called prior to unloading the module. (Ulrich Dessauer <des@gmx.de>)Changes since 1.3.90. typedef unsigned short SLsmg_Char_Type added to slang.h. Applications that access SLsmg functions read/write_raw and SLsmg_char_at should use SLsmg_Char_Type unstead of unsigned short because this will be changed to unsigned long in version 2.0.1. Documentation patches from Vlad Harchev <hvv@hippo.ru> added.2. slstring.c: offsetof(SLstring,bytes) --> offsetof(SLstring,bytes[0]) to avoid compiler warning on some systems.3. slcmplex.c: an int was used where a double should have beed used.4. egcs g++ was optimizing slang.c:SLclass_push_ptr_obj away because it was declared as inline. In my opinion, this is another g++ bug.5. sscanf intrinsic added. See docs.6. SLmake_lut rewritten to correct incorrect handling of ranges with a hyphen at the end.7. Small bug involving non-BCE terminals in SLsmg_set_color_in_region fixed.8. Functions SLcomplex_asinh/acosh/atanh implemented.9. install-elf will nolonger install .h files twice.10. @Struct_Type may be used to create a struct.12. X[i]++, X[i]-=Y, etc implemented.13. Much of slw32tty.c rewritten to fix several bugs in the win32 tty support. In addition, if SLgetkey_map_to_ansi(1) has been called, then function and arrow keys will produce escape sequences that allow one to distinguish alt, ctrl, and shift function keys.14. OS/2 specific typo in slposdir.c corrected (Eddie Penninkhof <wizball@xs4all.nl>).15. slang.c:add_slang_function: On the very rare occasion that this function failed, memory would get freed twice.Changes since 1.3.81. Color was not enabled on VMS.2. If MAKE_INTRINSIC was used to declare a function which takes arguments, then a typecast error would result when the function was called. New programs should not use MAKE_INTRINSIC since it bypasses argument type-checking.3. src/sl-feat.h: SLTT_XTERM_ALWAYS_BCE variable added to force the assumption of the bce (background-color-erase) capability of xterm. The default is 0, which means to accept the terminfo setting. To force it to 1 during run-time, set the COLORTERM_BCE environment variable. This is useful when using, e.g., rxvt to login to a solaris system where the terminfo file will probably not indicate bce.4. SLw32tty.c:SLang_init_tty: Open CONIN$ instead of using GetStdHandle. This is necessary if stdin has been redirected.5. SLposdir.c: Stat structure contains new field `st_opt_attrs' that may be used to contain system specific information that `struct stat' does not provide. In particular, under win32, this field contains the file attributes, e.g., whether or not a file is hidden.6. Appropriate typecasts added to avoid warnings on systems that do not support `void *'.7. Characters in the range 128-255 are allowed in identifiers.8. Correction to the documentation for SLang_init_tty (Ricard Sierra <irebulle@nexo.es>).9. SLANG_END_*_TABLE macros added to quiet silly egcs compiler warnings.10. typo in sltime.c caused it not to compile under Ultrix.11. Speed improvement of binary operations involving arrays, particularly when used in conjunction with the __tmp function.12. traceback messages include the filename containing the function13. File local intrinsic variable `_auto_declare' added. If non-zero, any undefined global variable will be given static scope.14. __uninitialize intrinsic function added.15. listdir was returning NULL on empty directories. It has been changed to return String_Type[0]. It will return NULL upon error.16. slang.h: if __unix is defined, then also define __unix__ (Albert Chin-A-Young <china@thewrittenword.com>).17. foreach using extended to File_Type objects. See documentation.18. Tweak to the inner-product operator such that if A is a vector, and B is a 2-d matrix, then A will be regarded as a 2-d matrix with 1 column.Changes since 1.3.70. configure script updated to autoconf 2.13. If /usr/include/slang.h exists, then the default prefix will be set to /usr.1. Compile error fixed if _SLANG_HAS_DEBUG_CODE is 0.2. Bug fix involving typecast(Array_Type, Any_Type).3. __IBMC__ patches from Eddie Penninkhof <wizball@xs4all.nl>.4. If A = Assoc_Type[] (Any_Type array), then A[x] automatically dereferences the Any_Type object.5. Bug fixed involving Assoc_Type optimization cache.6. Tweaks to SLtt_smart_puts for improved performace.7. array_map modifed such that the first array in its argument list controls the number of elements in the output array. This is a backward compatible change and makes the function more flexible.8. Additional tweaks to speedup array inary functions if _SLANG_OPTIMIZE_FOR_SPEED > 1.9. Patch from Thomas Henlich <henlich@mmers1.mw.tu-dresden.de> fixing a problem with the `SLang_define_case' function, which allows customization of the upper/lower case tables.10. strtrans and str_delete_chars intrinsic functions added.11. tweaks to interpreter for some additional speed.Changes since 1.3.61. Added a modified version of a patch from Martynas Kunigelis <martynas@diskena.dammit.lt> to allow writes to the lower left corner.2. SIZEOF_LONG changed to 4 for VMS alpha systems (Jouk Jansen <joukj@hrem.stm.tudelft.nl>).3. MSC patches from gustav@morpheus.demon.co.uk (Paul Moore). He also contributed code for listdir with MSC.4. SLsmg.c: Background color erase tweaks for terminals that lack this capability.5. Fixed a NULL pointer dereference when doing Struct_Type[2][0].6. Added slsh/scripts/ls and slsh/scripts/badlinks. `ls' is designed for non-Unix systems and `badlinks' finds all symbolic links in specified directories that point to non-existent files.7. SLang_Version_String and intrinsic variable _slang_version_string added.8. stat_file modified under win32 such that a trailing `\' is stripped if present.9. stat_is intrinsic modified to return a character instead of an integer.10. The matrix-multiplication operator `#' now performs inner-products on arrays, e.g., if A and B arrays: A = A_i..jk B = B_kl..m Then, (A#B)_i..jl..m = A_i..jk B_kl..m where k is summed over. This means that `#' is a matrix multiplication operator for 2-d arrays, and acts as a dot-product operator for 1-d arrays. In the process, it has been extended to complex numbers.11. _reshape intrinsic function added. Unlike `reshape', this function creates a new array and returns it.12. Array indexing via characters works again, e.g., A['a']. Changes since 1.2.20. New assignment operators: *= /= &= |= The addition of these operators meant that some of the internal byte-codes had to be modified. This change should only cause problems with byte-compiled or preprocessed .sl files. As far as I know, only the JED editors uses this feature. So, after upgrading the library, and before running JED, do the equivalent of rm $JED_ROOT/lib/*.slc That is, delete the byte-compiled .slc files.1. Now the language supports `!if ... else' statements. 2. New intrinsics: __is_initialized: This may be used to see whether or not a variable is initialized, e.g, __is_initialized (&variable); __get_reference: Returns a reference to an object with a specified name. rmdir, rename, remove (slfile.c): these return 0 upon success, -1 upon failure and set errno getpid, getgid, getppid (slunix.c) _typeof: This is similar to `typeof' except in the case of arrays where it returns the data type of the array __pop_args, __push_args: see documentation fseek, ftell, and symbolic constants SEEK_END, SEEK_CUR, SEEK_SET sleep usage3. `Conj' function added to get the complex conjugate4. New array module that implementes additional array functions, e.g., transpose, matrix multiplication, etc... Use `SLang_init_array' to initialize.5. An array such as [[1,2,3],[4,5,6]] is interpreted as a 2-row 3-column array.6. Amiga patches from J鰎g Strohmayer <j_s@gmx.de>.7. New table types: SLang_IConstant_Type SLang_DConstant_Type These are useful for defining symbolic constants. See slmath.c and slfile.c for examples of their use.8. A new pseudo-function: __tmp This `function' takes a single argument, a variable, and returns the value of the variable, and then undefines the variable. For example, variable x = 3; variable y; y = __tmp(x); will result in `y' having a value of `3' and `x' will be undefined. The purpose of this pseudo-function is to free any memory associated with a variable if that variable is going to be re-assigned. For example, consider: variable x = [1:10:0.1]; x = 3*x^2 + 2; At the time of the re-assignment of `x' in the last statement, two arrays will exist. However, x = 3*__tmp(x)^2 + 2; results in only one array at the time of the assignment, because the original array associated with `x' will have been deleted. This function is a pseudo-function because a syntax error results if used like __tmp (sin(x));9. New low-level push/pop functions that are designed specifically for use in constructing the push/pop methods of application defined data types. These functions have names of the form: SLclass_push_*_obj SLclass_pop_*_obj where * represents int, long, char, short, ptr, double, float. See sltypes.c to see how they are used by, e.g., SLANG_INT_TYPE.10. New module import facility. See modules subdirectory for examples. To enable this, use SLang_init_module in you application. Modules will be searched in the following order 1. Along the path specified by the `set_import_module_path' function, or by the C functiion SLang_set_module_load_path. 2. Along the path given by the SLANG_MODULE_PATH environment variable. 3. Along a system dependent path, e.g., LD_LIBRARY_PATH 4. In the current directory. New interpreter intrinsics include: import (String_Type MODULE_NAME); set_import_module_path (String_Type PATH); String_Type get_import_module_path ();11. New integer and floating point types added to the language. Now all basic C signed and unsigned integer types are supported: C bindings S-Lang bindings --------------------------------------- SLANG_CHAR_TYPE Char_Type SLANG_UCHAR_TYPE UChar_Type SLANG_SHORT_TYPE Short_Type SLANG_USHORT_TYPE UShort_Type SLANG_INT_TYPE Int_Type SLANG_UINT_TYPE UInt_Type SLANG_LONG_TYPE Long_Type SLANG_ULONG_TYPE ULong_Type SLANG_FLOAT_TYPE Float_Type SLANG_DOUBLE_TYPE Double_Type For example, `Long_Type[10]' creates an array of 10 longs.12. New intrinsic: set_struct_field. See function reference for more info.----- snapshot slang1.3_981030 made available -----13. Type synonyms added: Int16_Type, UInt16_Type (16 bit (un)signed integer) Int32_Type, UInt32_Type (32 bit (un)signed integer) Int64_Type, UInt64_Type (64 bit (un)signed integer) Float32_Type (32 bit float)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -