Commit graph

84 commits

Author SHA1 Message Date
Gabor Melis d9b4878a31 Make FDEFINITION not strip encapsulation
This fixes the ANSI non-compliance passed down from early
CMUCL (1991-10-31). The bug was that FDEFINITION did not return the
same value as SYMBOL-FUNCTION for symbols (lp#799533). The fix is an
incompatible change but only affects encapsulated (e.g. TRACEd and
SP-PROFILE:PROFILEd) non-generic functions.

However, encapsulations belong to the definition (the name) and not to
the function associated with the name, so (SETF (FDEFINITION NAME) FN)
strips encapsulations from FN and keeps the encapsulations of NAME.

- SB-EXT:UNENCAPSULATED-FUNCTION was added.

- Encapsulated functions are printed as

    #<FUNCTION FOO ENCAPSULATED>

  or, if they have no proper name, as

    #<FUNCTION FOO ENCAPSULATED {B1782332}>

  This is the same as for unencapsulated functions except for the
  additional " ENCAPSULATED".

- Unused slots were removed from SB-PROFILE:PROFILE-INFO.

- Since generic function identity is stable in face of encapsulation,
  CLOS is largely unaffected by this change.
2026-05-30 10:55:46 +02:00
Christophe Rhodes 4bdd89eada Export and document NO-PRIMARY-METHOD
Both its existence, and also what MOP programmers must do to support
it.
2023-10-31 20:37:06 +00:00
Christophe Rhodes cacbb24d03 Minor manual enhancements
- index entry for unbound slots;
- alphabetize +slot-unbound+ rather than have it under + in the index.
2022-11-29 08:44:00 +00:00
Christophe Rhodes 8c3b510596 Handle SLOT-MAKUNBOUND like other slot functions
This allows removal of the coupling between dispatch functions of
SLOT-MAKUNBOUND-USING-CLASS and SLOT-BOUNDP-USING-CLASS.

Condition slots can be unbound; make the boundp and makunbound logic
explicit, and integrate it into the CLOS mechanisms.

Structure non-raw slots can also (rarely) be unbound, when a
by-order-of-arguments constructor is defined with the initialization
coming from an &AUX variable with no default.  Integrate this
knowledge into the CLOS mechanisms, avoiding handling boundness of
slots in the code fragments that CLOS uses (while preserving existing
behaviour of the accessor functions defined by DEFSTRUCT.)

Add tests of various expected behaviours of SLOT-BOUNDP and friends.
These tests are not complete, given the number of different ways CLOS
can walk and optimize code and that instances of structures,
conditions and classes can be constructed, but they hopefully exercise
some previously-untested pathways.
2022-11-29 08:41:47 +00:00
Christophe Rhodes ab340f240b Fix change-class / (setf slot-value-using-class) interaction
As reported by Shinmera on #lisp, in CHANGE-CLASS, slots with
:INSTANCE allocation were being read correctly in the presence of
applicable non-standard SLOT-VALUE-USING-CLASS methods, but were being
written with a direct access to the slot vector even if the new class
had (SETF SLOT-VALUE-USING-CLASS) methods applicable.

The fix is to short-circuit the slot-value-using-class methods, rather
than execute them.  The reason is not directly related to
CHANGE-CLASS, but rather the protocol for updating obsolete instances:
in order to fulfil that case, we must read and write an object's slots
at a lower-level than going through SLOT-VALUE-USING-CLASS, because
SLOT-VALUE-USING-CLASS will cause another obsolete instance trap.  The
protocol is specified to support only :INSTANCE and :CLASS slots, so
if we impose a rule that the same methods must be applicable to the
old and new slots of the same name, our direct reads and writes will
have the same effect on the slot vectors as full protocol reads and
writes, preserving the illusion that an object is mutated in-place to
the new or updated class.
2020-02-08 14:19:31 +00:00
Jan Moringen 7ec9a8836e Less verbosity, more error reporting in SB-EXT:SEARCH-ROOTS
* Disable output on stderr unless heap_trace_verbose is true.

* Turn errors reported by gc_prove_liveness into Lisp errors.
2019-08-12 20:46:37 +02:00
Jan Moringen 8d50da1d69 Export and document experimental SB-EXT:SEARCH-ROOTS 2019-08-12 20:46:36 +02:00
Christophe Rhodes 0f8e032418 fix beyond-ansi.texinfo
... the perils of being an evenings-and-weekends texinfo programmer
2019-04-11 07:52:55 +01:00
Christophe Rhodes 9738cabf54 better manual indexing for the beyond-ansi section 2019-04-10 22:32:15 +01:00
Christophe Rhodes 66dd179ec8 document the rational float reader extension 2019-04-10 22:32:15 +01:00
Christophe Rhodes 62aa25a998 minor manual enhancements
subsections for the various reader extensions, index entries
2019-04-10 22:32:15 +01:00
Christophe Rhodes 920277da13 manual improvements
makeinfo complains if (some?) @ref node targets have colons in them.
Adjust docstrings.lisp to produce @anchor nodes without colons, and
rewrite explicit references accordingly.

The info reader cannot parse the generated index for cross-references
if anchors have newlines in them.  Be more conservative about printing
anchor names, and also shorten the anchor name for methods by not
including the whole lambda list.

The @lw macro which we were using to try to break class precedence
lists appropriately broke, again.  Remove it completely and use
@raggedright instead.

Include a version identifier in the @copying text for info format, as
otherwise the version number doesn't appear anywhere in the output.

Use a smaller font size, for fewer horrible linebreaks (since there
are fewer linebreaks in total)

Add a couple of index entries for deprecation conditions.
2018-12-30 19:44:05 +00:00
Jan Moringen 563d0dd3fe manual: Add sb-concurrency operators to Timeouts and Deadlines table 2018-01-03 18:21:10 +01:00
Jan Moringen bb4eb71eaf manual: Add @menu command for Timeouts and Deadlines section
New texinfo versions don't need it. Old ones apparently do.
2017-12-16 19:28:28 +01:00
Jan Moringen 5f3f3545f6 manual: Initial description of timeouts and deadlines 2017-12-16 18:45:34 +01:00
Jan Moringen 70330e869d manual: Do not attempt to include PURIFY docstring 2017-11-10 09:59:51 +01:00
Douglas Katzman fea634311c Optimize test for unbound CLOS slots, part 2 of 2.
Change unbound slot marker to the unbound marker object, among the benefits
being that a slot intended to contain a symbol could accidentally have stored
SB-PCL::..UNBOUND-MARKER.. but should not store the unbound marker; and
comparison is 4 bytes shorter on x86-64, 3 bytes shorter on x86,
and on all others avoids a code header constant.

This change is nearly invisible, even to code using SB-PCL:+SLOT-UNBOUND+
as recommended in doc/manual/behond-ansi.texinfo. There are a few observable
differences which should not matter to production code:
1. (CAS (SLOT-VALUE obj 'slot) sb-pcl:+slot-unbound+ 'newval)
   might return the unbound marker instead of a "genuine" object
   in the language. This is fine - the only correct use of the CAS result
   is to compare again the expected old value.
2. evaluating SB-PCL:+SLOT-UNBOUND+ at the REPL prints
   "EVAL returned an unbound marker."
   The test was inherited from CMUCL, and it's not clear why
   that particular test for the unbound marker is sensible.
   Arguably a valid fix would be silently allow '* become unbound,
   and thus print "#<unbound marker {51}>" which would happen in any other
   situation wherein an unbound symbol's value was inadvertently obtained.
2017-06-19 16:18:47 -04:00
Jan Moringen bb7a213dfe manual: Minor texinfo markup improvements 2016-01-03 00:26:38 +01:00
Jan Moringen dde1f4d5e7 Document and export SEQUENCE:PROTOCOL-UNIMPLEMENTED
Also store and report the name of the unimplemented operation.

Suggested-by: Jim Newton <jimka.issy@gmail.com>
2015-12-02 12:41:53 +01:00
Jan Moringen dde6eedcd5 Typo fixes in Unicode section of beyond-ansi.texinfo 2015-03-28 19:28:16 +01:00
Krzysztof Drewniak 308cb136d3 Update the documentation and tests to account for the removal of the UNICODE1_ prefix on UNICODE 1 names. 2014-11-14 12:46:26 -06:00
Krzysztof Drewniak d8fc681f68 Improves Unicode support and upgrades SBCL's database to Unicode 7.0
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
2014-10-01 22:35:00 -05:00
Jan Moringen 3400efe29b Documentation and news entry for SB-SEQUENCE:{MAP,CONCATENATE,MERGE} 2014-09-17 22:23:51 +02:00
Christophe Rhodes 11b217c486 fix bug #1332983
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.
2014-09-01 11:45:32 +01:00
Christophe Rhodes fc0f9907f4 fix manual build
just the wrong include for assert-version->=
2013-11-20 21:23:22 +00:00
Christophe Rhodes 69968cef67 relax restriction on defstruct slot names
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
2013-11-15 09:28:22 +00:00
Paul Khuong 920b5eb02b New function SB-EXT:ASSERT-VERSION->=
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.
2013-11-14 17:32:02 -05:00
Christophe Rhodes 440baf2d4f Document extensible sequence protocol
Based on patch by Jan Moringen from lp#994528
2013-09-05 17:30:33 +01:00
Nikodemus Siivola f1e41363fc suffix PACKAGE-LOCALLY-NICKNAMED-BY with -LIST
Less confusing, and more in line with PACKAGED-NICKNAMED-BY-LIST &co.

  (Thanks to Rudi Schlatte for heads-up.)
2013-02-21 12:47:56 +02:00
Nikodemus Siivola 1a4f36e402 fix manual build 2013-02-07 22:18:43 +02:00
Nikodemus Siivola 6129b1ebc5 restore old behaviour as the default for package variance
Use *on-package-variance* to adjust.

  Hint:

    (setf *on-package-variance* '(:warn (:swank :swank-backend) :error t))
2013-02-01 21:26:12 +02:00
Nikodemus Siivola 098f53bae5 oops, it's :package-local-nicknams, not :local-nicknames
Also mention it in the manual.

  ...just couldn't get it right the first time.
2013-02-01 18:40:23 +02:00
Nikodemus Siivola b0b221088b package local nicknames
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.
2013-02-01 18:22:39 +02:00
Lutz Euler e35a79c777 Typo and other small fixes in the manuals and the man page
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.
2012-10-13 21:11:43 +02:00
Lutz Euler af1b968cdc Add a section about random number generation to the manual.
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.
2012-08-12 20:56:40 +02:00
Nikodemus Siivola 8a33bf2208 protect against read-time package-lock circumvention from LOCKED::(BAR)
Instead of binding *PACKAGE*, bind *READER-PACKAGE* which only
  affects the package READ-TOKEN interns into in the absence of a
  prefix.

  lp#902806
2011-12-12 15:53:27 +02:00
Nikodemus Siivola 2612849876 add support for package::form-read-in-package syntax
sb-c::(csubtypep (specifier-type 'fixnum) (specifier-type 'integer))

 Isn't that lovely? The superbly fantasic thing is that this even works
 *right* with package locks:

    (in-package :cl-user)

    sb-c::(defun some-internal-bit ...)

  causes a package lock violation since the current package is back to CL-USER
  by the type the code is executed.
2011-12-05 12:45:36 +02:00
Nikodemus Siivola bc24f7bd29 GC documentation tweaks
* Fold documentation of (SETF GC-LOGFILE) into that of GC-LOGFILE.

  * Document default value of GENERATION-NUMBER-OF-GCS-BEFORE-PROMOTION.

  * Order the dictionary entries in the manual's GC section more logically.
    I hope.
2011-11-19 17:04:38 +02:00
Nikodemus Siivola b43491a8a0 export DYNAMIC-SPACE-SIZE from SB-EXT 2011-11-19 17:04:37 +02:00
Nikodemus Siivola b85af70795 waiting for arbitrary events SB-EXT:WAIT-FOR
While using this to wait for other threads isn't good style,
  sometimes it is _much_ easier to just state the thing you're
  waiting for than build the synchronization to make it nice.

  And sometimes the event lives in the external world, in which case
  you really need to poll anyways:

    (wait-for (probe-file pathname))
2011-10-28 18:56:49 +03:00
Nikodemus Siivola f71d9c8d57 1.0.48.35: SB-EXT:GC-LOGFILE
GENCGC only.

  (SETF SB-EXT:GC-LOGFILE) to a pathname starts logging before/after
  generation statistics there. Doing the same with NIL stops logging.
2011-05-30 12:00:19 +00:00
Nikodemus Siivola 838316d0ad 1.0.45.32: export SB-PCL:+SLOT-UNBOUND+
Using STANDARD-INSTANCE-ACCESS with this provided is much nicer --
  no need to muck around with SLOT-BOUNDP-USING-CLASS and such.

  Also add quick SIA tests and some dependant update abuse
  to tests.

  lp#718039
2011-02-13 20:34:14 +00:00
Nikodemus Siivola ec0e9da75f 1.0.43.62: implement SB-EXT:DELETE-DIRECTORY
Extend MAP-DIRECTORY with :CLASSIFY-SYMLINKS so implementing "delete
 symlinks but don't follow them" behaviour for :RECURSIVE T is nice
 and easy.
2010-10-15 10:16:48 +00:00
Nikodemus Siivola 7e4eb6a578 1.0.43.61: teach docstrings.lisp about parentheses
Kludge to get things like (SIMPLE-ARRAY T (3)) right in docstrings.

 Also document SB-EXT:GET-TIME-OF-DAY and SB-EXT:SEED-RANDOM-STATE.
2010-10-15 09:52:58 +00:00
Christophe Rhodes 74cfbf6d05 1.0.39.9: improvements to the manual
These improvements mainly centre around better indexing, including
some nifty trickery to get suitably collated and aligned index
entries (to cope with issues like *earmuffs* and sb-foo package
prefixes).  This patch also incorporates work by Robert Goldman to
document the commands for enabling and disabling the debuggers.

The remainder of this log message is a squashed version of my git
branch's log messages:

improve text relating to my support availability

Remove a stray comma in instructions for signal-related bug reporting

Patch from Robert Goldman for enable/disable-debugger documentation

trick texinfo's collation engine into producing a better index

The issue is that the sort order and what is printed (both in the
index and as the title of a definition entry) are deeply tied together
in texinfo, and there's no obvious way short of rewriting lots of TeX
code to undo that.  There is one get-out clause, though: texinfo
macros are replaced by their arguments.  So define a number of macros
which hide from the collation engine things that we would rather not
play a part in the sorting (package names, "(setf", *earmuffs*)

In the process, note that @deffoo in texinfo automatically produces an
index entry, so get rid of the apparently redundant extra index
entries produced by docstrings.lisp
Mostly move to using the new indexing helper macros

Only mostly: there are a few remaining issues.  The first is
declarations, which are treated as types; I think they might warrant
their own index; similarly, various commands (debugger, inspector)
aren't really functions.  Hardest of all is the ffi chapter, which has
handwritten function documentation which is highly similar to but not
exactly the same as the docstrings for those operators; it would be
good to merge the documentation into the docstrings, include the
autogenerated texinfo snippets into the manual, and thereby gain
complete consistency.
add some index entries from the efficiency chapter

... because why not?
manually (!) change the entries for FFI-related functions and macros

Making the docstrings match the text match reality is an exercise for
the future.
make index in info form mostly work

info readers apparently parse the formatted index to work out where to
go.  This is hilariously bad if the index entries contain colons, so
define macros conditional on output format to make sure that they
don't in info.
better, more useful indexes

Now that collation is sorted (!), getting the display of index entries
to be useful is important.  This not-quite-general trick is to make
the package name as small as possible, have the colon always in the
same horizontal position, and arrange that the package name extends at
most three characters ("sb-") into the left margin.  This is the most
tolerable I can find.

Continue not having package information at all in info format; in
other formats, place the package information after the symbol name.
This probably goes wrong in corner cases like
(setf sb-mop:symbol-value-using-class)
deal with remaining manually-documented functions

make documentation for declarations consistent

Arbitrarily decide that declarations belong in the function index
rather than the type index; use the package prefix texinfo macros to
get them properly indented.
One more manually-documented thing which needed a package macro decoration

Fix the nopkg{} macro to align index entries in TeX mode

Use it for debugger commands.
2010-06-06 20:43:57 +00:00
Nikodemus Siivola 4ec0d70e08 1.0.32.33: GENCGC tuning parameters
* Define +HIGHEST-NORMAL-GENERATION+ and +PSEUDO-STATIC-GENERATION+
   in lisp, and let genesis tell C about them.

 * Make various generations[gen].foo tweakable from lisp, give them
   nice interface functions and document the same.

 * Bits of manual prettification in related parts.
2009-11-19 16:08:37 +00:00
Nikodemus Siivola 71035f77a0 1.0.30.13: SB-EXT:CONSTANT-FUNCTION does not exits
* Remove reference to it from the manual.
2009-07-29 15:36:58 +00:00
Nikodemus Siivola 146ca8325e 1.0.28.63: SB-EXT:DEFINE-HASH-TABLE-TEST
* Based on old SB-INT:DEFINE-HASH-TABLE-TEST, but:
   ** macro, not a function.
   ** only two arguments: name of the test function, and the hash function
      (which can also be a lambda form.)
   ** :TEST accepts both 'NAME, and #'NAME as well.
   ** pick up redefinitions of the test and hash-function without
      re-executing the D-H-T-T form.
   ** protected by package locks.

 * MAKE-HASH-TABLE :HASH-FUNCTION supported as well. EQ-based hashing
   not legal for user-provided hash functions, accidents prevented by
   wrapping functions which may return a true secondary value in
   a closure.

 * Documentation -- other hash-table extensions as well.

 * Documentation generation improvements:
   ** use the shortest package name available -- CL:FOO, not
      COMMON-LISP:FOO.
   ** kludge around texi2pdf making &key and company bold
   ** add exceptions so that we don't format words ANSI and CLHS
      as lowecase symbols.
2009-05-21 09:56:16 +00:00
Nikodemus Siivola fb2656c40f 1.0.23.22: rename SIMPLE-ARRAY-VECTOR to ARRAY-STORAGE-VECTOR
* Allow fething the underlying vector of any non-displaced array.
2008-12-05 11:31:39 +00:00
Nikodemus Siivola 4191783c20 1.0.23.17: new function: SIMPLE-ARRAY-VECTOR
* For users to extract the underlying vector from a multidimensional
   array. Warn about implementation-detail nature of this.

 * Add Miscellaneuous Extensions section to Beyond ANSI chapter in the
   manual.
2008-12-04 10:01:04 +00:00