From: <cli...@li...> - 2008-12-13 12:07:34
|
Send clisp-cvs mailing list submissions to cli...@li... To subscribe or unsubscribe via the World Wide Web, visit https://lists.sourceforge.net/lists/listinfo/clisp-cvs or, via email, send a message with subject or body 'help' to cli...@li... You can reach the person managing the list at cli...@li... When replying, please edit your Subject line so it is more specific than "Re: Contents of clisp-cvs digest..." CLISP CVS commits for today Today's Topics: 1. clisp/src ChangeLog,1.6702,1.6703 (Sam Steingold) 2. clisp/modules/i18n gettext.c,1.28,1.29 (Sam Steingold) 3. clisp/src ChangeLog,1.6703,1.6704 (Sam Steingold) 4. clisp/modules/i18n gettext.c,1.29,1.30 (Sam Steingold) 5. clisp/modules/regexp test.tst,1.17,1.18 (Sam Steingold) 6. clisp/src ChangeLog,1.6704,1.6705 spvw_global.d,1.28,1.29 (Vladimir Tzankov) ---------------------------------------------------------------------- Message: 1 Date: Fri, 12 Dec 2008 15:59:08 +0000 From: Sam Steingold <sd...@us...> Subject: clisp/src ChangeLog,1.6702,1.6703 To: cli...@li... Message-ID: <E1L...@dd...> Update of /cvsroot/clisp/clisp/src In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv17930/src Modified Files: ChangeLog Log Message: spelling Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v retrieving revision 1.6702 retrieving revision 1.6703 diff -u -d -r1.6702 -r1.6703 --- ChangeLog 10 Dec 2008 16:50:53 -0000 1.6702 +++ ChangeLog 12 Dec 2008 15:59:06 -0000 1.6703 @@ -979,7 +979,7 @@ 2008-10-23 Sam Steingold <sd...@gn...> * configure.in (ALL_LINGUAS): remove obsolete variable, use ... - * po/LINGUAS: new file, keep the list of languags here + * po/LINGUAS: new file, keep the list of languages here * makemake.in: use it 2008-10-23 Sam Steingold <sd...@gn...> ------------------------------ Message: 2 Date: Fri, 12 Dec 2008 18:43:56 +0000 From: Sam Steingold <sd...@us...> Subject: clisp/modules/i18n gettext.c,1.28,1.29 To: cli...@li... Message-ID: <E1L...@dd...> Update of /cvsroot/clisp/clisp/modules/i18n In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv29337/modules/i18n Modified Files: gettext.c Log Message: (SET-LOCALE, res_to_obj): use safe_to_string Index: gettext.c =================================================================== RCS file: /cvsroot/clisp/clisp/modules/i18n/gettext.c,v retrieving revision 1.28 retrieving revision 1.29 diff -u -d -r1.28 -r1.29 --- gettext.c 28 Nov 2008 17:18:22 -0000 1.28 +++ gettext.c 12 Dec 2008 18:43:54 -0000 1.29 @@ -215,7 +215,7 @@ res = setlocale(check_locale_category_map.table[pos].c_const,NULL); end_system_call(); pushSTACK(*check_locale_category_map.table[pos].l_const); - pushSTACK(res ? asciz_to_string(res,GLO(misc_encoding)) : NIL); + pushSTACK(safe_to_string(res,GLO(misc_encoding))); } } else { *locale = check_string(*locale); @@ -225,7 +225,7 @@ res = setlocale(check_locale_category_map.table[pos].c_const,loc_z); end_system_call(); pushSTACK(*check_locale_category_map.table[pos].l_const); - pushSTACK(res ? asciz_to_string(res,GLO(misc_encoding)) : NIL); + pushSTACK(safe_to_string(res,GLO(misc_encoding))); } }); } @@ -244,7 +244,7 @@ end_system_call(); }); } - VALUES1(res ? asciz_to_string(res,GLO(misc_encoding)) : NIL); + VALUES1(safe_to_string(res,GLO(misc_encoding))); } skipSTACK(2); } @@ -475,12 +475,12 @@ #if defined(HAVE_NL_LANGINFO) # define get_lang_info(what) \ begin_system_call(); res = nl_langinfo(what); end_system_call() -# define res_to_obj() (res ? asciz_to_string(res,GLO(misc_encoding)) : NIL) +# define res_to_obj() safe_to_string(res,GLO(misc_encoding)) # define DECLARE_RES char* res # define FINISH_RES #elif defined(WIN32_NATIVE) # define get_lang_info(what) get_locale_info(what,&res,&res_size) -# define res_to_obj() (asciz_to_string(res,GLO(misc_encoding))) +# define res_to_obj() asciz_to_string(res,GLO(misc_encoding)) # define DECLARE_RES int res_size=GET_LOCALE_INFO_BUF_SIZE; char *res=(char*)clisp_malloc(res_size) # define FINISH_RES begin_system_call(); free(res); end_system_call() #endif ------------------------------ Message: 3 Date: Fri, 12 Dec 2008 18:43:57 +0000 From: Sam Steingold <sd...@us...> Subject: clisp/src ChangeLog,1.6703,1.6704 To: cli...@li... Message-ID: <E1L...@dd...> Update of /cvsroot/clisp/clisp/src In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv29337/src Modified Files: ChangeLog Log Message: (SET-LOCALE, res_to_obj): use safe_to_string Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v retrieving revision 1.6703 retrieving revision 1.6704 diff -u -d -r1.6703 -r1.6704 --- ChangeLog 12 Dec 2008 15:59:06 -0000 1.6703 +++ ChangeLog 12 Dec 2008 18:43:54 -0000 1.6704 @@ -1,3 +1,7 @@ +2008-12-12 Sam Steingold <sd...@gn...> + + * modules/i18n/gettext.c (SET-LOCALE, res_to_obj): use safe_to_string + 2008-12-10 Sam Steingold <sd...@gn...> * modules/clx/new-clx/clx.f (SYS_CALL): add ------------------------------ Message: 4 Date: Fri, 12 Dec 2008 18:51:06 +0000 From: Sam Steingold <sd...@us...> Subject: clisp/modules/i18n gettext.c,1.29,1.30 To: cli...@li... Message-ID: <E1L...@dd...> Update of /cvsroot/clisp/clisp/modules/i18n In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv29613 Modified Files: gettext.c Log Message: oops Index: gettext.c =================================================================== RCS file: /cvsroot/clisp/clisp/modules/i18n/gettext.c,v retrieving revision 1.29 retrieving revision 1.30 diff -u -d -r1.29 -r1.30 --- gettext.c 12 Dec 2008 18:43:54 -0000 1.29 +++ gettext.c 12 Dec 2008 18:51:04 -0000 1.30 @@ -201,7 +201,6 @@ /* ======================== locale ======================== */ - DEFUN(I18N:SET-LOCALE, &optional category locale) { /* call setlocale(3) */ gcv_object_t *category = &STACK_1; @@ -215,7 +214,7 @@ res = setlocale(check_locale_category_map.table[pos].c_const,NULL); end_system_call(); pushSTACK(*check_locale_category_map.table[pos].l_const); - pushSTACK(safe_to_string(res,GLO(misc_encoding))); + pushSTACK(safe_to_string(res)); } } else { *locale = check_string(*locale); @@ -225,7 +224,7 @@ res = setlocale(check_locale_category_map.table[pos].c_const,loc_z); end_system_call(); pushSTACK(*check_locale_category_map.table[pos].l_const); - pushSTACK(safe_to_string(res,GLO(misc_encoding))); + pushSTACK(safe_to_string(res)); } }); } @@ -244,7 +243,7 @@ end_system_call(); }); } - VALUES1(safe_to_string(res,GLO(misc_encoding))); + VALUES1(safe_to_string(res)); } skipSTACK(2); } @@ -475,7 +474,7 @@ #if defined(HAVE_NL_LANGINFO) # define get_lang_info(what) \ begin_system_call(); res = nl_langinfo(what); end_system_call() -# define res_to_obj() safe_to_string(res,GLO(misc_encoding)) +# define res_to_obj() safe_to_string(res) # define DECLARE_RES char* res # define FINISH_RES #elif defined(WIN32_NATIVE) ------------------------------ Message: 5 Date: Fri, 12 Dec 2008 19:15:48 +0000 From: Sam Steingold <sd...@us...> Subject: clisp/modules/regexp test.tst,1.17,1.18 To: cli...@li... Message-ID: <E1L...@dd...> Update of /cvsroot/clisp/clisp/modules/regexp In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv547/modules/regexp Modified Files: test.tst Log Message: set locale to C around the "[ -~]" tests to avoid "Invalid range end" Index: test.tst =================================================================== RCS file: /cvsroot/clisp/clisp/modules/regexp/test.tst,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- test.tst 24 Sep 2008 14:11:14 -0000 1.17 +++ test.tst 12 Dec 2008 19:15:46 -0000 1.18 @@ -289,6 +289,10 @@ (re-test "a[-]?c" "ac") ("ac") (re-test "a[-]?c" "ac") ("ac") (re-test "a[-]?c" "ac") ("ac") + +;; the following 7 tests require locale=C +(defparameter *saved-locale* (i18n:set-locale :all)) *saved-locale* +(i18n:set-locale :all "C") "C" (re-test "[ -~]*" "abc") ("abc") (re-test "[ -~ -~]*" "abc") ("abc") (re-test "[ -~ -~ -~]*" "abc") ("abc") @@ -296,6 +300,7 @@ (re-test "[ -~ -~ -~ -~ -~]*" "abc") ("abc") (re-test "[ -~ -~ -~ -~ -~ -~]*" "abc") ("abc") (re-test "[ -~ -~ -~ -~ -~ -~ -~]*" "abc") ("abc") +(string= *saved-locale* (i18n:set-locale :all *saved-locale*)) T ;; Tests from from the Zebu package (originally for nregex.lisp) (re-test "(na)x+" "naxna") ("nax" "na") ------------------------------ Message: 6 Date: Fri, 12 Dec 2008 21:02:59 +0000 From: Vladimir Tzankov <vt...@us...> Subject: clisp/src ChangeLog,1.6704,1.6705 spvw_global.d,1.28,1.29 To: cli...@li... Message-ID: <E1L...@dd...> Update of /cvsroot/clisp/clisp/src In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv6654/src Modified Files: ChangeLog spvw_global.d Log Message: (add_per_thread_special_var): use threads lock Index: spvw_global.d =================================================================== RCS file: /cvsroot/clisp/clisp/src/spvw_global.d,v retrieving revision 1.28 retrieving revision 1.29 diff -u -d -r1.28 -r1.29 --- spvw_global.d 5 Dec 2008 22:54:42 -0000 1.28 +++ spvw_global.d 12 Dec 2008 21:02:57 -0000 1.29 @@ -661,15 +661,18 @@ } -/* add per thread special symbol value - initialized to SYMVALUE_EMPTY. - symbol: the symbol - returns: the new index in the _symvalues thread array */ +/* UP: add per thread special symbol value - initialized to SYMVALUE_EMPTY + > symbol: the symbol + < new index in the _symvalues thread array + A lot of locks are used here. Basically we should use only the + thread locks but if we try to stop the world with threads lock held - we + may introduce deadlock. So use additional lock. */ global maygc uintL add_per_thread_special_var(object symbol) { pushSTACK(symbol); - /* lock threads (also this disables GC) */ + /* lock symvalues lock */ GC_SAFE_MUTEX_LOCK(&thread_symvalues_lock); - symbol=popSTACK(); + symbol = STACK_0; var uintL symbol_index = TheSymbol(symbol)->tls_index; /* check whether till we have been waiting for the threads lock another thread has already done the job !!! */ @@ -678,12 +681,10 @@ } if (num_symvalues == maxnum_symvalues) { /* we have to reallocate the _ptr_symvalues storage in all - threads in order to have enough space. since it is possible other - threads to access at the same time _ptr_symvalues (via Symbol_value) - it is not safe at all to reallocate it. We have two choices: - 1. add locking to the _ptr_symvalue access (per thread). - 2. "stop the world" during this reallocation (as in GC). - Since this will be relatively rear event - we prefer the second way.*/ + threads in order to have enough space. since it is possible other + threads to access at the same time _ptr_symvalues (via Symbol_value) + it is not safe at all to reallocate it. This will not happen + frequently so we are going to stop all threads. */ var uintL nsyms=num_symvalues + SYMVALUES_PER_PAGE; WITH_STOPPED_WORLD(true, { for_all_threads({ @@ -692,13 +693,19 @@ abort(); } }); + maxnum_symvalues = nsyms; }); - maxnum_symvalues = nsyms; } + /* lock the threads - we want no new threads to be created/deleted + while we iterate over them */ + begin_blocking_call(); lock_threads(); end_blocking_call(); + symbol = STACK_0; symbol_index=num_symvalues++; TheSymbol(symbol)->tls_index=symbol_index; for_all_threads({ thread->_ptr_symvalues[symbol_index] = SYMVALUE_EMPTY; }); + unlock_threads(); leave: + skipSTACK(1); /* saved symbol */ GC_SAFE_MUTEX_UNLOCK(&thread_symvalues_lock); if (symbol_index == SYMBOL_TLS_INDEX_NONE) error(error_condition,GETTEXT("could not make symbol value per-thread")); Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v retrieving revision 1.6704 retrieving revision 1.6705 diff -u -d -r1.6704 -r1.6705 --- ChangeLog 12 Dec 2008 18:43:54 -0000 1.6704 +++ ChangeLog 12 Dec 2008 21:02:56 -0000 1.6705 @@ -1,3 +1,8 @@ +2008-12-12 Vladimir Tzankov <vtz...@gm...> + + * spvw_global.d (add_per_thread_special_var): sync initialization of + threads symvalues via threads lock + 2008-12-12 Sam Steingold <sd...@gn...> * modules/i18n/gettext.c (SET-LOCALE, res_to_obj): use safe_to_string ------------------------------ ------------------------------------------------------------------------------ SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada. The future of the web can't happen without you. Join us at MIX09 to help pave the way to the Next Web now. Learn more and register at http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/ ------------------------------ _______________________________________________ clisp-cvs mailing list cli...@li... https://lists.sourceforge.net/lists/listinfo/clisp-cvs End of clisp-cvs Digest, Vol 32, Issue 16 ***************************************** |