makeinfo complained (correctly) about mismatching order of @menu entries
and actual @nodes/@subsections.
Also move the "Binary stream methods" subsection after the four
subsections about generic and character I/O which seems more coherent
than having it in the middle.
This is part 1 of the compact-instance-feature change, and motivated by
the design as sketched out in doc/internals-notes/compact-instance.
%INSTANCE-REF 0 was generally assumed to access an object's layout,
but this won't be true in general. Moreover, DO-INSTANCE-TAGGED-SLOT
won't scan an instance's layout, so any code that wanted to iterate over
all defined slots plus layout now needs to read the layout separately.
Additionally, gencgc has been made to use instance_length() and
instance_layout() accessors.
Does not introduce any breaking reader or printer changes.
Adds an SB-UNICODE package that holds accessors for the internal
database and many Unicode standard algorithms.
Some Unicode-related tests will not pass on this commit because
the #\UNICODE1_[NAME] syntax is not recognized.
Squashed commit of the following:
commit 6d8f72f21c29d25986325cd4bcd19b7c195f196b
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Wed Jul 30 11:42:41 2014 -0500
Fixes compliance issues related to the BIDI class of unallocated codepoints
commit 601aee5ed52779f37e9d9e4c3f091062da73f0e5
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Tue Jul 29 16:55:28 2014 -0500
Adds test to ensure CL casing is one-to-one
commit 5232c20071254b61d32a82314a39f00c194f46e4
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Tue Jul 29 16:42:01 2014 -0500
Fixes typo that breaks the build
commit 56d5757689c1c36e82a7d5c0b0443015240e129d
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Tue Jul 29 16:36:22 2014 -0500
Adds age support
- Exports SB-UNICODE:AGE
- Modifies misc database
commit 42afd5ace1a8aaba75f3e47f4a4a004f0e34c9e9
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Tue Jul 29 13:07:48 2014 -0500
Adds block information
- Adds ORDERED-RANGES-POSITION
- Adds SB-UNICODE:CHAR-BLOCK
commit 1844ae409086d0fa61a324340c99158bc2137087
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Tue Jul 29 12:07:53 2014 -0500
Replaces membership tests with binary searches in target-unicode
commit e208231dc9716760670d30fccedc8e37dcec5083
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Tue Jul 29 10:50:01 2014 -0500
Adds unicode-1-name support
- Exports SB-UNICODE:UNICODE-1-NAME
- Allows specification of characters by Unicode 1 name with UNICODE1_ prefix
commit b881c531e10cd90fedd99f4e43c11807da578c6d
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Mon Jul 28 17:08:08 2014 -0500
Adds BIDI mirroring glyph support to further cl-unicode compatibility.
commit c56683490d2005cb29f945ba53e7eea296aa4e06
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Mon Jul 28 15:19:06 2014 -0500
Adds general PropList.txt support for cl-unicode and HEX-DIGIT-P.
- Exports PROPLIST-P
- Exports HEX-DIGIT-P
- Adds tests for the Proplist slurping.
- (proplist-p c :whitespace) -> :white-space,
and :other-default-ignorable -> :other-default-ignorable-code-point
commit 01ddeaeb7db2426b684c80337ad5b52f2f38d155
Merge: 39e51a8 39d0843
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Mon Jul 28 09:33:48 2014 -0500
Merge branch 'master' into unicode-algorithms
commit 39e51a8dac81472849a04db76c2ec786ba4a7ed9
Merge: e528868 80e9a6e
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Wed Jul 23 10:13:28 2014 -0500
Merge branch 'master' into unicode-algorithms
commit e5288682849ed64d29d29d48f4b946ad925d0637
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Wed Jul 23 10:12:00 2014 -0500
Gives U+1F5CF the name Unicode_Page
commit 4d45ce46c949a5e947e5d499d8d34eee490ea38c
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Tue Jul 22 15:42:38 2014 -0500
Clarifies documentation
commit 15750e5e0c9f58680eed7aca39f063bbd8004ae8
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Tue Jul 22 15:39:50 2014 -0500
Deals with the issues caused by U+1F5CF (PAGE)
We mignt not be exactly Unicode-conformant anymore.
commit 59f1000139a852dc8949c51aa6078929c36653dd
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Tue Jul 22 13:13:47 2014 -0500
Converts SBCL's Unicode database to use Unicode 7.0 data files
- Adds new scripts to target-unicode.lisp
- Adjusts parsing code in ucd.lisp to accound for newly-inserted spaces
- Updates data files
- There is a bug with name conversion. U+1F5CF (PAGE), a new character,
tries to have the same name as U+0C, which ANSI Cl says has to have the name
"Page".
Issue currently unresolved, causes tests to fail.
commit a9876e9a5fd9a2646de80d823b1d6e2939582ee1
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Tue Jul 22 10:49:27 2014 -0500
Updated defininion of case-ignorable for Unicode 7.0
commit 898da4d3cad5c0428af01d135304f2dfb74bfef4
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Mon Jul 21 15:35:24 2014 -0500
Adds MATH-P to SB-UNICODE
commit 326a2b4d5182d1fc3b367d9dbb4c4a1b7dd5c226
Merge: 6019f05 d12f538
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Tue Jul 15 13:57:29 2014 -0500
Merge branch 'master' into unicode-algorithms
commit 6019f05e8f36460acfb595b65659122f7c10e2c3
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Fri Jul 11 11:16:08 2014 -0500
Add Unicode casing tests
commit 041681637bbb9b611e933716c8a7cff0bce29161
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Fri Jul 11 11:15:42 2014 -0500
Fix the reader so that normalization tests pass
commit 5ae54f45fe338bc9f4e0048600a48cffbff84bdc
Merge: f38a831 fe1e638
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Fri Jul 11 09:36:30 2014 -0500
Merge branch 'master' into unicode-algorithms
Conflicts:
src/code/reader.lisp
src/code/target-char.lisp
commit f38a831a1b809cef8696cc0955410988e63264e5
Merge: 5623de6 8170663
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Tue Jul 1 07:25:02 2014 -0500
Merge branch 'master' into unicode-algorithms
Conflicts:
src/code/target-char.lisp
commit 5623de6a737c33e3548bbff095a4aa01bc0d44e1
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Thu Jun 5 13:25:15 2014 -0500
Minor formatting fix
commit d9eabf4ee6c1b373e665c4857326dc86a26e4a53
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Wed Jun 4 18:20:00 2014 -0500
Improves locale detection
commit 1b606fa2eab91b474faa2b13b6cf0dbf7b0f8839
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Wed Jun 4 17:30:13 2014 -0500
Adds locale detection to casing functions.
commit 440109752fe1ff6f04a9e587ab3a47b13e29ed1d
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Wed Jun 4 14:11:58 2014 -0500
Optimizes the normalizer a bit.
commit c36994d3c740e0f66f2f77b3fd0ffed0682f57f3
Merge: d624870 637119d
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Wed Jun 4 13:55:02 2014 -0500
Merge branch 'normalizing-reader' into unicode-algorithms
commit d624870aaf4e235ebbd999a14ffa6664807e8401
Merge: 1fe33e8 615be91
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Wed Jun 4 13:54:51 2014 -0500
Merge branch 'master' into unicode-algorithms
commit 637119d9a242ff5136c0ddc00b6f40bc61fa0ece
Merge: a5acc38 615be91
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Wed Jun 4 13:54:20 2014 -0500
Merge branch 'master' into normalizing-reader
Conflicts:
src/code/reader.lisp
commit a5acc38c0657ecfea821128805262e0e033c3367
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Wed Jun 4 12:40:15 2014 -0500
Adds READTABLE-NORMALIZATION to control whether the readtable normalizes strings.
commit 77ace120bb10b1826873920ee1707e9af4c6b2a6
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Wed Jun 4 11:49:18 2014 -0500
Makes the reader normalize unescaped symbols to NFKC before interning them.
Makes the printer print symbols that aren't NFKC in escapes.
commit 1fe33e8569536494176d977a0b5e86a10424b83e
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Tue Jun 3 10:12:56 2014 -0500
Optimizes normalization, fixes property tests
commit e78d05d138a08bc171af2e42f9ae8975b92efe25
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Tue Jun 3 08:58:40 2014 -0500
Adds Default_Ignorable detection
commit a9813ad037c037828323dc52835314327e9a7a1a
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Mon Jun 2 17:23:20 2014 -0500
Fixed broken documentation
commit cf261b0f5ed600d1b362694e86b76df11c68bea1
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Mon Jun 2 16:11:33 2014 -0500
Adds functions that detect confusable strings.
LIST-ALL-CONFUSABLES is implemented, but it's O($DEITYhelpus) for any
input with more than a few letters. Suggestions welcome.
commit bbf03ed4fc4da725729e4c64c3ff39d77948adfd
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Mon Jun 2 14:57:13 2014 -0500
Adds a union-find data stracture to hold the IDNA confusable sets.
commit d62e7aa621f20b7d0868adbcabc59d45e9964a90
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Fri May 30 14:41:03 2014 -0500
Rename DECIMAL-DIGIT for consitsency with the other digit functions.
commit 0a22348a7750a2a0b2c3781ead9c71588109cf44
Merge: a68b331 a42a2c6
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Fri May 30 12:14:31 2014 -0500
Merge branch 'master' into unicode-algorithms
commit a68b33153328bb3ccace22e838e2a7f9a60ed59f
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Fri May 30 10:38:23 2014 -0500
Adds proper language-independent casing support, fixes Greek final sigma.
commit cd4ff239c0de12f56fb181175d31e5918536a89e
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Thu May 29 16:18:58 2014 -0500
Use code-chars to work around broken build introduced in last commit.
commit 7d600068bdc6a7eb9750a8c010b9f0681528b708
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Thu May 29 16:12:02 2014 -0500
Adds handling for the Greek final sigma in word-final position.
commit 68a21aea9cd72b200f438a6aa8b13a64648b1c47
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Thu May 29 13:23:11 2014 -0500
Adds the greedy linebreaker.
commit 16befd034dcdc0af125be52e255e3fef17bfd7c3
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Thu May 29 11:17:58 2014 -0500
Adds the line break analyzer.
- Several tests removed from the testcases beacuse they conflict with
the rules in the standard. See any line in LineBreakTest.txt with a
comment starting in ### for details.
commit cb03fc5601093e09ce4a5db1a9002314a773bd13
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Wed May 28 13:53:16 2014 -0500
Adds the line break class property
commit 76312eaa777ee1141346b87178280f78e019263e
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Wed May 28 09:26:55 2014 -0500
Adds script property support.
commit 64400ab64d24fc04e9aa758f3d9ef74cddbe7e41
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Tue May 27 15:59:01 2014 -0500
Bugfix for the bugfix
commit 617c97a9ba372e64668a2ce9eba79de5e10e0cdf
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Tue May 27 15:26:17 2014 -0500
FIxes some collation bugs.
commit 2affc41e371f2820a07fe05fb480961b92e2365f
Merge: 9cebdb5 36efb16
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Tue May 27 13:39:51 2014 -0500
Merge branch 'plus-in-character-reader' into unicode-algorithms
commit 36efb163607e64386cd5bc65d1e22bad64d81ddc
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Tue May 27 13:37:49 2014 -0500
Makes codepoint parsing in #\ more general.
Unicode characters can be specified by codepoint with these forms
- #\U[codepoint]
- #\u[codepoint]
- #\U+[codepoint]
- #\u+[codepoint]
Codepoints are no longer restricted to being either 4 or 8 digits
long.
commit 9cebdb5351241c72afbe7c0589a12ffaea0ea082
Merge: 9389e10 8127fc9
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Tue May 27 13:33:04 2014 -0500
Merge branch 'master' into unicode-algorithms
commit 9389e10a410c5994a7c0926b2cd9eacdca60bac1
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Tue May 27 12:02:08 2014 -0500
Updated some docstrings
commit b452ef358cab9cac3aa6c812f4dd4cc763db54e3
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Tue May 27 11:39:45 2014 -0500
Adds functions that collate Unicode strings according to UTS #10.
commit 71697d577937ceb405547807067df13200cd1e00
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Fri May 23 17:11:51 2014 -0500
Adds code to read the dumped collation database.
Collation algorithm not yet implemented.
commit d7c5f8e6530682158e3002de9f2e089152bdbc4c
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Fri May 23 12:36:49 2014 -0500
Add code to output the collation database to ucd.lisp
The database is a UB32 with length tags stuffed into the high bits of the first codepoint in each entry.
Collation keys are packed into a 32-byte entry
commit 164a56a98dc71bd4db29f0d724e2023971bc9194
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Thu May 22 21:37:12 2014 -0500
Efficiency improvements as suggested by the IRC
commit 7d58fddb9c6d951409113a6e3cffde775f239882
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Thu May 22 14:47:15 2014 -0500
Add documntation for SB-UNICODE.
Now no one can complain about me not writing any.
Also removes some trailing whitespace in tests.
commit daedb709b990d63216bd983e5dcc4b3018fb05b0
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Thu May 22 14:02:58 2014 -0500
Adds tests to make sure that the break types are encoded correctly.
- Also fixes some bugs exposed by those tests
commit bdda9bcf194b7db5121a6033b7b8c0815763d871
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Thu May 22 10:48:39 2014 -0500
Adds the EAST-ASIAN-WIDTH function
commit 354d777d720ce000caa489b67cc8b2a5c754d844
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Wed May 21 17:45:54 2014 -0500
Adds Unicode sentence breaking at SB-UNICODE:SENTENCES
I'm not proud of these functions, but they work.
Tests were added to unicode-breaking.impure.lisp
commit 99f09b6492cbe74729c2455d4812660f9495e97f
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Wed May 21 12:16:42 2014 -0500
Adds SB-UNICODE:TITLECASE
Also slightly optimizes some of the lookups in word and grapheme breaking.
commit 83f77154aada690f5170685d373fd79fe729df03
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Tue May 20 19:57:13 2014 -0500
Adds word breaking, defining SB-UNICODE:WORDS
- Tests for word-breaking are included and pass
commit 227a8075e15ddd2e348dfcf078d93916cfd6cce7
Merge: 531ada6 54ea3bf
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Tue May 20 14:15:26 2014 -0500
Merge branch 'master' into unicode-algorithms
commit 531ada6d2208072fea9ebc7e26c46a051b292d64
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Tue May 20 14:14:06 2014 -0500
Adds functions for accessing several of the properties from PropList.txt
- Also changes GENERAL-CATEGORY and BIDI-CLASS to return keywords, not strings
commit 1933bfd9d9309b5aad0d6ac081023b2a74047fb3
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Mon May 19 18:46:05 2014 -0500
Adds tests for grapheme breaking and makes them pass
commit 8694b8f7e8fc83d8267042ee1ccd123c9e00abdb
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Mon May 19 17:46:39 2014 -0500
Implements grapheme breaking from UAX #29
commit 86cb8e5b23faec8c2e8b912a9ceefa2de2720109
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Mon May 19 16:02:53 2014 -0500
Adds a HANGUL-SYLLABLE-TYPE function.
commit 72359cbdb05aa069cb15494bb1c1df2b134c2ce5
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Mon May 19 14:30:31 2014 -0500
Adds Unicode uppercasing, lowercasing, and casefolding.
commit af99aee4a2216f00a5abecaca2b89f2d6ead84ba
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Mon May 19 11:42:53 2014 -0500
FIxes various bugs in the database rewrite and adds documentation.
- The build no longer fails because of lack of argument coercion in equal-char-code
- Various adjustments made to normalization so those tests pass
- Several minor bugs in ucd.lisp resolved
- NormalizationTest.txt updated to Unicode 6.3 (no changes)
- The new database is documented
commit 15070304ff63d2cee3fc081789faf4f29b8c8151
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Sat May 17 18:45:30 2014 -0500
Fixed some issues with the character database.
Most properties now look up properly.
Build broken in PCL.
commit c4ac96922703a2ca0112807d0411ab9ba0fd2f94
Merge: e0309c6 ebcbcdd
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Sat May 17 17:57:12 2014 -0500
Merge branch 'master' into database-rewrite
commit e0309c69a15e7f464225539b9b9ed72c193adf06
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Fri May 16 13:31:04 2014 -0500
Updates the Unicoed package to use the new database.
BUild still broken, documentation still nonexistent.
commit 4fbc5af6e82840a53c2c82eff5d891cd1ec2a888
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Fri May 16 12:16:30 2014 -0500
target-char.lisp now compiles.
The documentation rewlite is on the way.
commit 59efbdf535eaaa80d4747ea24c912342ba0d15dd
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Thu May 15 17:01:01 2014 -0500
Adjusts the case pages to make the list shorter.
This trades a much shorter list lookup for a need to enlarge the hashtable.
commit 9ae0e2c1115b4e914f5176f104d5deb8b8410758
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Thu May 15 15:37:14 2014 -0500
Rewrites the Unicode database to be more robust, part 1
There is currently no nice explanatory ASCII art comment for database
access. That comes in a bit.
Features of the new database:
- Supports Unicode 6.3
- Incorporates full Unicode casing information
- Is somewhat more extensible
- Uses fewer magic numbers
- The database is split into multiple arrays, so one part can be
changed without adjusting the whole thing
commit 7c459b7493d87cafe5a331388f948a8d506e6aa8
Merge: 04e36dc 7a795d6
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Wed May 14 10:34:04 2014 -0500
Merge branch 'unicode6.3' into database-rewrite
commit 04e36dc499699e34c4cf0b0291770e190ec89985
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Wed May 14 10:01:08 2014 -0500
Removed workaround case in tests
commit 7436bc344caf282c160e5adfc74689111cca85d1
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Tue May 13 17:01:55 2014 -0500
Removes the mapping between BELL and #\Bel to fix Unicode
Unicode encodes U+1F514 (named BELL), which conflicts with the alias
"Bell" -> #\Bel defined in target-char.lisp. This causes
(name-char (char-name (code-char #x1F514))) => #\Bel not #\BELL
(U+1F514) as expected. This ambiguity had to be resolved by either
removing "BELL" -> #\Bel or "BELL" -> U+1F514. Discussion in IRC led
to the determination that removal of the #\Bel alias was the best
course of action.
This is a breaking change. If it affects you, please raise the issue
for further discussion.
commit 1953800b9b497c6d2d12c5550c02b453f4870406
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Tue May 13 09:04:20 2014 -0500
Remove trailing whitespace in two files
commit a8651a2e49823b026776c44e55a2ec3f952d1880
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Mon May 12 17:52:08 2014 -0500
Ombibus initial commit for the SB-UNICODE package
- Adds src/code/target-unicode.lisp to the build order
- Defines a new SB-UNICODE package and adds it to the list of packages
to generate docstrings for
- Moves SB-IMPL::NORMALIZE-STRING and its dependencies to the
SB-UNICODE package and exports it
- Defines public accessors for several of the properties in
UnicodeData.txt
- Adjusts the Unicode normalization tests to account for the new
location of NORMALIZE-STRING
- Adds tests for the newly-defined property accessors
commit 7a795d6818edc80f0cb27b9004255b5164df8b91
Author: Krzysztof Drewniak <krzysdrewniak@gmail.com>
Date: Tue May 13 10:02:32 2014 -0500
Unicode 6.3 support, but the build is broken somehow
the universal superclass is a special-case for validate-superclass.
That has knock-on implications on its metaclass (can't be
built-in-class) which means we have to document an exception to
another part of AMOP.
DEFSTRUCT slot names are a bit weird, but behave basically like
strings rather than like symbols. This makes their interaction with
the MOP a little problematic, but for now simply allow things to
pass through and generally work "as expected".
Report from Eric Marsden sbcl-devel 2013-11-05
Executing (sb-ext:assert-version->= 1 1 13) signals a continuable
error if the running SBCL is older than 1.1.13 (and an undefined
function error before that).
Based on a patch by Philip Munksgaard.
Closes lp#674372.
Remove a level of indirection when unbinding special bindings, instead
of saving a symbol on the binding stack, and then accessing its
tls-index to unbind it, save the tls-index directly, saving one memory
read.
Texinfo 5 is more assertive about its syntax: macros with
non-alphanumerics have never actually been allowed, but we used to be
able to get away with @& to escape an ampersand under @iftex, and
defining @&key macros under @iffnottex. Nuh-uh, not any more. (fixes
lp#1189146)
The details of the indexes, particularly in html format, differ slightly
under texinfo 4 and 5 (related to the trickery around hiding package
prefixes for decent alphabetization). It might be nice to sort this out
Once And For All, eventually.
Introduce PRINT-BACKTRACE and LIST-BACKTRACE as forward compatible
replacements for BACKTRACE and BACKTRACE-AS-LIST. (Not yet deprecated.)
*SHOW-ENTRY-POINT-DETAILS* is also deprecated. Function names and
lambda-lists are now always cleaned, but the details that were
previously available via the debug name are now provided as part of
the auxilliary frame info.
*METHOD-FRAME-STYLE* can be :MINIMAL, :NORMAL, or :FULL, defaulting to
:NORMAL.
Example terminal session using Linedit:
* (defpackage :foo (:use :cl) (:local-nicknames (:sb :sb-ext)))
#<PACKAGE "FOO">
* (in-package :foo)
#<PACKAGE "FOO">
* (sb:posix-
sb:posix-environ sb:posix-getenv
* (sb:posix-getenv "USER")
"nikodemus"
API:
function PACKAGE-LOCAL-NICKNAMES package
function PACKAGE-LOCALLY-NICKNAMED-BY package
function ADD-PACKAGE-LOCAL-NICKNAME nick global &optional package
function REMOVE-PACKAGE-LOCAL-NICKNAME old-nick &optional package
DEFPACKAGE option: (:local-nicknames {(local-nick global-name)}*)
:PACKAGE-LOCAL-NICKNAMES in *FEATURES*
Design issues and considerations:
* "CL", "COMMON-LISP", and "KEYWORD" signal a continuable error
when used as local nicknames. I think this is good for sanity,
but not strictly required. Because of the way (find-package
:keyword) is idiomatically used to guarantee print/read
consistency across packages, I think it at least should be
protected.
* To preserve read/print consistency, we use package local nicknames
as prefixes when printing.
* The hook into FIND-PACKAGE is invisible, but built on top of
FIND-PACKAGE-USING-PACKAGE -- undocumented and unexported, but
waiting to be turned into something interesting by Christophe.
* Local nicknames are protected by package locks.
* If you want to bypass nicknames, you need to first get into
a known package without nicknames. There could be an explicit
way as well, but not sure if that's needed or a good idea.
Random crap mixed in:
Re-order DEFPACKAGE option docs in rough order of usefulness.
That is, in the texinfo files of the user manual, the internals manual,
and in sbcl.1. Fix spelling and grammar errors, put sufficiently many
dots in abbreviations and consistently write "SBCL" in all caps in
prose. Also, SIGABORT should be SIGABRT.
* Also support :WAIT-P in WITH-RECUSIVE-LOCK.
* Deprecate GET-MUTEX properly (been deprecated since early 2010, but didn't signal
a compile-time warning, and we used it internally.)
* Make WITH-MUTEX signal a runtime error when :VALUE is used and is other
than current thread or NIL. Releasing it isn't going to work right if
someone else holds it.
Document initial random state consistency, how to achieve or avoid
repeatability of random numbers, extensions with respect to seeding,
generation of random floats, and the currently used PRNG algorithm.
Move the docstring of SEED-RANDOM-STATE over from the "Miscellaneous
Extensions" section.
* Add "Deprecated Interfaces" chapter to the manual.
* Add list of deprecated interfaces along with a policy note to a
comment near DEFINE-DEPRECATED-FUNCTION.
* Add a proper deprecation warning for SB-C::MERGE-TAIL-CALLS.
* Fix the deprecation warning for WITH-SPINLOCK. (Accidentally
referred to WITH-RECURSIVE-SPINLOCK before.)
Deprecate QUIT. It occupies an uncomfortable niche between processes
and threads, and doesn't actually do what it says on the tin unless
you call it from the main thread.
SIGTERM now uses EXIT, and doesn't depend on sessions.
WITH-DEADLINE (:SECONDS NIL :OVERRIDE T) can now be used to ignore
deadlines.
JOIN-THREAD on the main thread now blocks indefinitely instead of
claiming the thread did not exit normally.
New functions:
* SB-EXT:EXIT. Always exits the process. Takes keywords :CODE,
:ABORT, and :TIMEOUT. Code is the exit status. Abort controls if
the exit is clean (unwind, exit-hooks, terminate other threads) or
dirty. Timeout controls how long to wait for other threads to
finish.
* SB-THREAD:RETURN-FROM-THREAD. Normal termination for current
thread -- equivalent to return from the thread function with the
specified values. Takes keyword :ALLOW-EXIT, which determines if
returning from the main thread is an error, or equivalent to
calling EXIT :CODE 0.
* SB-THREAD:ABORT-THREAD. Abnormal termination for current thread --
equivalent to invoking the initial ABORT restart estabilished by
MAKE-THREAD (previously known as TERMINATE-THREAD, but ANSI
recommends there to always be an ABORT restart.) Takes keyword
:ALLOW-EXIT, which determines if aborting the main thread is an
error, or equivalent to calling EXIT :CODE 1.
* SB-THREAD:MAIN-THREAD-P. Let's you determine if a given thread is
the main thread of the process. This is important for some
functions on some operating systems -- and RETURN-FROM-THREAD and
ABORT-THREAD also need it.
* SB-THREAD:MAIN-THREAD. Returns the main thread object. Convenient
for when you need to eg. load a foreign library in the main
thread.