Raymond Toy pushed to branch issue-242-c-call-char-result-wrong at cmucl / cmucl

Commits:

7 changed files:

Changes:

  • .gitlab-ci.yml
    ... ... @@ -46,6 +46,7 @@ linux:build:
    46 46
         #- bin/cross-build-world.sh -crl -B boot-2020-04-1 xtarget xcross src/tools/cross-scripts/cross-x86-x86.lisp snapshot/bin/lisp
    
    47 47
         # Regular build using the cross-compiled result or snapshot
    
    48 48
         - bin/build.sh $bootstrap -R -C "x86_linux_clang" -o snapshot/bin/lisp
    
    49
    +    # - bin/build.sh $bootstrap -R -C "x86_linux" -o snapshot/bin/lisp
    
    49 50
         - bin/make-dist.sh -I dist linux-4
    
    50 51
     
    
    51 52
     linux:test:
    

  • bin/build.sh
    ... ... @@ -110,6 +110,8 @@ case `uname -s` in
    110 110
           esac ;;
    
    111 111
     esac
    
    112 112
     
    
    113
    +export LANG=en_US.UTF-8
    
    114
    +
    
    113 115
     buildit ()
    
    114 116
     {
    
    115 117
         if echo $INTERACTIVE_BUILD | grep $BUILD > /dev/null; then
    
    ... ... @@ -130,13 +132,11 @@ buildit ()
    130 132
     	time $BUILDWORLD $TARGET $OLDLISP $BOOT || { echo "Failed: $BUILDWORLD"; exit 1; }
    
    131 133
     	if [ "$REBUILD_LISP" = "yes" ]; then
    
    132 134
     	    $TOOLDIR/rebuild-lisp.sh $TARGET
    
    133
    -	else
    
    134
    -	    # Set the LANG to C.  For whatever reason, if I (rtoy) don't
    
    135
    -	    # do this on my openSuSE system, any messages from gcc are
    
    136
    -	    # basically garbled.  This should be harmless on other
    
    137
    -	    # systems.
    
    138
    -	    LANG=C $MAKE -C $TARGET/lisp $MAKE_TARGET || { echo "Failed: $MAKE -C $TARGET/lisp"; exit 1; }
    
    139
    -        fi
    
    135
    +	fi
    
    136
    +	
    
    137
    +	# Set the LANG to C.  For whatever reason, if I (rtoy) don't do this on my openSuSE system,
    
    138
    +	# any messages from gcc are basically garbled.  This should be harmless on other systems.
    
    139
    +	LANG=C $MAKE -C $TARGET/lisp $MAKE_TARGET || { echo "Failed: $MAKE -C $TARGET/lisp"; exit 1; }
    
    140 140
     
    
    141 141
     	if [ "$BUILD_WORLD2" = "yes" ];
    
    142 142
     	then
    

  • src/code/intl.lisp
    ... ... @@ -51,6 +51,7 @@
    51 51
       Use (INTL:TEXTDOMAIN \"whatever\") in each source file to set this.")
    
    52 52
     (defvar *loaded-domains* (make-hash-table :test 'equal))
    
    53 53
     (defvar *locale-aliases* (make-hash-table :test 'equal))
    
    54
    +(setf (gethash "en_US.UTF-8@piglatin" *locale-aliases*) "en@piglatin")
    
    54 55
     
    
    55 56
     (defstruct domain-entry
    
    56 57
       (domain "" :type simple-base-string)
    

  • src/code/pred.lisp
    ... ... @@ -387,8 +387,8 @@
    387 387
     (defun equal (x y)
    
    388 388
       "Returns T if X and Y are EQL or if they are structured components
    
    389 389
       whose elements are EQUAL.  Strings and bit-vectors are EQUAL if they
    
    390
    -  are the same length and have indentical components.  Other arrays must be
    
    391
    -  EQ to be EQUAL."
    
    390
    +  are the same length and have identical components.  Other arrays
    
    391
    +  must be EQ to be EQUAL."
    
    392 392
       (cond ((eql x y) t)
    
    393 393
     	((consp x)
    
    394 394
     	 (and (consp y)
    

  • src/general-info/release-21f.md
    1
    +# Work in progress
    
    2
    +
    
    3
    +The CMUCL project is pleased to announce the release of CMUCL 21f.
    
    4
    +This is a major release which contains numerous enhancements and bug
    
    5
    +fixes from the <previous> release.
    
    6
    +
    
    7
    +CMUCL is a free, high performance implementation of the Common Lisp
    
    8
    +programming language which runs on most major Unix platforms. It
    
    9
    +mainly conforms to the ANSI Common Lisp standard. CMUCL provides a
    
    10
    +sophisticated native code compiler; a powerful foreign function
    
    11
    +interface; an implementation of CLOS, the Common Lisp Object System,
    
    12
    +which includes multi-methods and a meta-object protocol; a
    
    13
    +source-level debugger and code profiler; and an Emacs-like editor
    
    14
    +implemented in Common Lisp. CMUCL is maintained by a team of
    
    15
    +volunteers collaborating over the Internet, and is mostly in the
    
    16
    +public domain.
    
    17
    +
    
    18
    +## New in this release:
    
    19
    +  * Known issues:
    
    20
    +  * Feature enhancements:
    
    21
    +  * Changes:
    
    22
    +  * ANSI compliance fixes:
    
    23
    +  * Bug fixes:
    
    24
    +  * Gitlab tickets:
    
    25
    +    * ~~#154~~ piglatin translation does not work anymore
    
    26
    +  * Other changes:
    
    27
    +  * Improvements to the PCL implementation of CLOS:
    
    28
    +  * Changes to building procedure:
    
    29
    +
    
    30
    +This release is not binary compatible with code compiled using CMUCL
    
    31
    +21e; you will need to recompile FASL files.
    
    32
    +
    
    33
    +See http://www.cmucl.org or
    
    34
    +https://gitlab.common-lisp.net/cmucl/cmucl for more information,
    
    35
    +See
    
    36
    +https://gitlab.common-lisp.net/cmucl/cmucl/wikis/GettingCmucl
    
    37
    +for obtaining CMUCL, including sources and binaries..
    
    38
    +
    
    39
    +
    
    40
    +We hope you enjoy using this release of CMUCL!

  • src/i18n/locale/cmucl.pot
    ... ... @@ -9083,7 +9083,8 @@ msgstr ""
    9083 9083
     #: src/code/extfmts.lisp
    
    9084 9084
     msgid ""
    
    9085 9085
     "The default external format to use if no other external format is\n"
    
    9086
    -"  specified"
    
    9086
    +"  specified.  This is unaffected by any locale settings or by\n"
    
    9087
    +"  SET-SYSTEM-EXTERNAL-FORMAT."
    
    9087 9088
     msgstr ""
    
    9088 9089
     
    
    9089 9090
     #: src/code/extfmts.lisp
    

  • tests/issues.lisp
    ... ... @@ -830,7 +830,18 @@
    830 830
         (assert-true (stream::find-external-format :euckr))
    
    831 831
         (assert-true (stream::find-external-format :cp949))))
    
    832 832
     
    
    833
    -
    
    833
    +(define-test issue.154
    
    834
    +    (:tag :issues)
    
    835
    +  (let ((old-locale intl::*locale*)
    
    836
    +	(locale "en_US.UTF-8@piglatin")
    
    837
    +	(piglatin-text "Ethay izesay ofway away eamstray inway-ufferbay."))
    
    838
    +    (unwind-protect
    
    839
    +	 (progn
    
    840
    +	   (assert-equal locale (intl:setlocale "en_US.UTF-8@piglatin"))
    
    841
    +	   (print (intl::find-domain "cmucl" intl::*locale*))
    
    842
    +	   (assert-equal piglatin-text (intl:dgettext "cmucl" "The size of a stream in-buffer."))
    
    843
    +	   )
    
    844
    +      (intl:setlocale old-locale))))
    
    834 845
     
    
    835 846
     (define-test issue.158
    
    836 847
         (:tag :issues)