ISO/IEC DIS 23360-1-4
(Main)Linux Standard Base (LSB)
Linux Standard Base (LSB)
Noyau de base normalisé Linux (LSB)
General Information
RELATIONS
Standards Content (sample)
DRAFT INTERNATIONAL STANDARD
ISO/IEC DIS 23360-1-4
ISO/IEC JTC 1/SC 22 Secretariat: ANSI
Voting begins on: Voting terminates on:
2020-02-14 2020-05-08
Linux Standard Base (LSB) —
Part 1-4:
Languages specification
ICS: 35.080
THIS DOCUMENT IS A DRAFT CIRCULATED
FOR COMMENT AND APPROVAL. IT IS
THEREFORE SUBJECT TO CHANGE AND MAY
NOT BE REFERRED TO AS AN INTERNATIONAL
STANDARD UNTIL PUBLISHED AS SUCH.
IN ADDITION TO THEIR EVALUATION AS
BEING ACCEPTABLE FOR INDUSTRIAL,
This document is circulated as received from the committee secretariat.
TECHNOLOGICAL, COMMERCIAL AND
USER PURPOSES, DRAFT INTERNATIONAL
STANDARDS MAY ON OCCASION HAVE TO
BE CONSIDERED IN THE LIGHT OF THEIR
POTENTIAL TO BECOME STANDARDS TO
WHICH REFERENCE MAY BE MADE IN
Reference number
NATIONAL REGULATIONS.
ISO/IEC DIS 23360-1-4:2020(E)
RECIPIENTS OF THIS DRAFT ARE INVITED
TO SUBMIT, WITH THEIR COMMENTS,
NOTIFICATION OF ANY RELEVANT PATENT
RIGHTS OF WHICH THEY ARE AWARE AND TO
PROVIDE SUPPORTING DOCUMENTATION. ISO/IEC 2020
---------------------- Page: 1 ----------------------
ISO/IEC DIS 23360-1-4:2020(E)
COPYRIGHT PROTECTED DOCUMENT
© ISO/IEC 2020
All rights reserved. Unless otherwise specified, or required in the context of its implementation, no part of this publication may
be reproduced or utilized otherwise in any form or by any means, electronic or mechanical, including photocopying, or posting
on the internet or an intranet, without prior written permission. Permission can be requested from either ISO at the address
below or ISO’s member body in the country of the requester.ISO copyright office
CP 401 • Ch. de Blandonnet 8
CH-1214 Vernier, Geneva
Phone: +41 22 749 01 11
Fax: +41 22 749 09 47
Email: copyright@iso.org
Website: www.iso.org
Published in Switzerland
ii © ISO/IEC 2020 – All rights reserved
---------------------- Page: 2 ----------------------
ISO/IEC DIS 23360-1-4:2020(E)
Linux Standard Base Languages Specification
LSB Languages 5.0
Copyright © 2015 Linux Foundation
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free
Documentation License, Version 1.1; with no Invariant Sections, with no Front-Cover Texts, and with no Back-
Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".
Portions of the text may be copyrighted by the following parties:• The Regents of the University of California
• Free Software Foundation
• Ian F. Darwin
• Paul Vixie
• BSDI (now Wind River)
• Jean-loup Gailly and Mark Adler
• Massachusetts Institute of Technology
• Apple Inc.
• Easy Software Products
• artofcode LLC
• Till Kamppeter
• Manfred Wassman
• Python Software Foundation
These excerpts are being used in accordance with their respective licenses.
Linux is the registered trademark of Linus Torvalds in the U.S. and other countries.
UNIX is a registered trademark of The Open Group.LSB is a trademark of the Linux Foundation in the United States and other countries.
AMD is a trademark of Advanced Micro Devices, Inc.Intel and Itanium are registered trademarks and Intel386 is a trademark of Intel Corporation.
PowerPC is a registered trademark and PowerPC Architecture is a trademark of the IBM Corporation.
S/390 is a registered trademark of the IBM Corporation.OpenGL is a registered trademark of Silicon Graphics, Inc.
PAM documentation is Copyright (C) Andrew G. Morgan 1996-9. All rights reserved. Used under the following
conditions:1. Redistributions of source code must retain the above copyright notice, and the entire
permission notice in its entirety, including the disclaimer of warranties.2. Redistributions in binary form must reproduce the above copyright notice, this list of
conditions and the following disclaimer in the documentation and/or other materials
provided with the distribution.3. The name of the author may not be used to endorse or promote products derived
from this software without specific prior written permission.© ISO/IEC 2020 – All rights reserved iii
---------------------- Page: 3 ----------------------
ISO/IEC DIS 23360-1-4:2020(E)
Contents
Contents ........................................................................................................................................................... iv
List of Tables .................................................................................................................................................. vi
Foreword ....................................................................................................................................................... vii
Status of this Document ............................................................................................................................. ix
Introduction .................................................................................................................................................... x
I Introductory Elements ............................................................................................................................. 1
1 Scope ................................................................................................................................................................ 2
2 Normative References............................................................................................................................... 2
3 Requirements ............................................................................................................................................... 3
3.1 Relevant Libraries ................................................................................................................................ 3
4 Terms and Definitions .............................................................................................................................. 4
5 Documentation Conventions ................................................................................................................. 6
II Python Interpreter ................................................................................................................................... 7
6 Python Interpreter ..................................................................................................................................... 8
6.1 Introduction ............................................................................................................................................ 8
6.2 Python Interpreter Location ............................................................................................................ 8
6.3 Python Interpreter Version .............................................................................................................. 8
6.4 Operators and Functions ................................................................................................................... 8
6.5 Python Modules .................................................................................................................................... 8
6.6 Python Interpreter Command ........................................................................................................ 8
III Perl Interpreter ..................................................................................................................................... 14
7 Perl Interpreter .......................................................................................................................................... 15
7.1 Introduction .......................................................................................................................................... 15
7.2 Perl Interpreter Location ................................................................................................................ 15
7.3 Perl Interpreter Version .................................................................................................................. 15
7.4 Perl Operators and Functions ....................................................................................................... 15
7.5 Perl Modules ......................................................................................................................................... 15
7.6 Perl Interpreter Command ............................................................................................................. 18
IV XML2 library ........................................................................................................................................... 19
8 Libraries ........................................................................................................................................................ 20
8.1 Interfaces for libxml2........................................................................................................................ 20
8.2 Data Definitions for libxml2........................................................................................................... 49
V XSLT library ........................................................................................................................................... 125
9 Libraries ..................................................................................................................................................... 126
9.1 Interfaces for libxslt ........................................................................................................................ 126
9.2 Data Definitions for libxslt ........................................................................................................... 131
VI Package Format and Installation ................................................................................................. 150
10 Software Installation ...................................................................................................................... 151
10.1 Package Dependencies ............................................................................................................... 151
Annex A Alphabetical Listing of Interfaces by Library .............................................................. 152
A.1 libxml2 ........................................................................................................................................................... 152
A.2 libxslt .............................................................................................................................................................. 181
Annex B B GNU Free Documentation License (Informative) ................................................... 187
B.1 PREAMBLE ................................................................................................................................................... 187
B.2 APPLICABILITY AND DEFINITIONS ................................................................................................. 187
B.3 VERBATIM COPYING ............................................................................................................................... 188
B.4 COPYING IN QUANTITY.......................................................................................................................... 188
B.5 MODIFICATIONS ........................................................................................................................................ 189
iv © ISO/IEC 2020 – All rights reserved---------------------- Page: 4 ----------------------
ISO/IEC DIS 23360-1-4:2020(E)
B.6 COMBINING DOCUMENTS .................................................................................................................... 191
B.7 COLLECTIONS OF DOCUMENTS ......................................................................................................... 191
B.8 AGGREGATION WITH INDEPENDENT WORKS ........................................................................... 191
B.9 TRANSLATION ............................................................................................................................................ 191
B.10 TERMINATION ......................................................................................................................................... 192
B.11 FUTURE REVISIONS OF THIS LICENSE ........................................................................................ 192
B.12 How to use this License for your documents ............................................................................. 192
© ISO/IEC 2020 – All rights reserved v---------------------- Page: 5 ----------------------
ISO/IEC DIS 23360-1-4:2020(E)
List of Tables
Table 2-1 Informative References ........................................................................................................ 2
Table 3-1 Standard Library Names ...................................................................................................... 3
Table 6-1 Python Modules ....................................................................................................................... 8
Table 7-1 Perl Modules ........................................................................................................................... 15
Table 8-1 libxml2 Definition ................................................................................................................. 20
Table 8-2 libxml2 - The XML C parser and toolkit for XML processing FunctionInterfaces ............................................................................................................................................. 20
Table 8-3 libxml2 - The XML C parser and toolkit for XML processing DeprecatedFunction Interfaces ......................................................................................................................... 48
Table 8-4 libxml2 - The XML C parser and toolkit for XML processing Data Interfaces
.................................................................................................................................................................. 48
Table 9-1 libxslt Definition ................................................................................................................. 126
Table 9-2 libxslt - libxslt interfaces Function Interfaces ....................................................... 126
Table A-1 libxml2 Function Interfaces .......................................................................................... 152
Table A-2 libxml2 Data Interfaces ................................................................................................... 181
Table A-3 libxslt Function Interfaces ............................................................................................. 181
vi © ISO/IEC 2020 – All rights reserved---------------------- Page: 6 ----------------------
ISO/IEC DIS 23360-1-4:2020(E)
Foreword
ISO (the International Organization for Standardization) and IEC (the International
Electrotechnical Commission) form the specialized system for worldwide standardiza-
tion. National bodies that are members of ISO or IEC participate in the development of
International Standards through technical committees established by the respective or-
ganization to deal with particular fields of technical activity. ISO and IEC technical com-
mittees collaborate in fields of mutual interest. Other international organizations, gov-
ernmental and non-governmental, in liaison with ISO and IEC, also take part in the work.
In the field of information technology, ISO and IEC have established a joint technical
committee, ISO/IEC JTC 1.International Standards are drafted in accordance with the rules given in the
ISO/IEC Directives, Part 2.
The main task of the joint technical committee is to prepare International Standards.
Draft International Standards adopted by the joint technical committee are circulated
to national bodies for voting. Publication as an International Standard requires ap-
proval by at least 75 % of the national bodies casting a vote.Attention is drawn to the possibility that some of the elements of this document may be
the subject of patent rights. ISO and IEC shall not be held responsible for identifying any
or all such patent rights.The committee responsible for this document is Joint Technical Committee
ISO/IEC JTC 1, Information technology, Subcommittee SC 22, Programming languages,
their environments and system software interfaces.This document is a direct adoption of the Linux Standard Base (LSB) 5.0 Runtime Lan-
guages (Generic), issued by the Linux Foundation. The previous release of these stand-
ards, ISO/IEC 23360-1 through ISO/IEC 23360-8:2006 were international standardspublished under the ISO/IEC/JTC 1 Publicly Available Specification process. This docu-
ment, and others in the series, are published under the GNU Free Documentation Li-
cense (See Annex B).This is version 1.0 of the Linux Standard Base (LSB) languages specification generic
part. This standard replaces portions of ISO/IEC 23360-1:2006 Linux Standard Base,
which is cancelled and replaced by ISO/IEC 23360-1-1 through ISO/IEC 23360-1-5. The
general parts and the other (processor specific) parts of the original Linux Standard
Base are also subdivided as follows:• The common definitions ISO/IEC 23360-1-1;
• The core specification generic part ISO/IEC 23360-1-2;
• The desktop specification generic part ISO/IEC 23360-1-3;
• The languages specification generic part ISO/IEC 23360-1-4 (this document);
• The imaging specification generic part ISO/IEC 23360-1-5;
• The Intel X86-32 architecture core and desktop specification in ISO/IEC 23360-2-
2 and ISO/IEC 23360-2-3 respectively;• The Intel IA64 (Itanium) architecture core and desktop specification in ISO/IEC
23360-3-2 and ISO/IEC 23360-3-3 respectively;• The AMD64 (X86-64) architecture core and desktop specification in ISO/IEC
23360-4-2 and ISO/IEC 23360-4-3 respectively;
• The PowerPC 32 architecture core and desktop specification in ISO/IEC 23360-5-
2 and ISO/IEC 23360-5-3 respectively;
• The PowerPC 64 architecture core and desktop specification in ISO/IEC 23360-6-
2 and ISO/IEC 23360-6-3 respectively;
© ISO/IEC 2020 – All rights reserved vii
---------------------- Page: 7 ----------------------
ISO/IEC DIS 23360-1-4:2020(E)
• The IBM S390 architecture core and desktop specification in ISO/IEC 23360-7-2
and ISO/IEC 23360-7-3 respectively; and
• The IBM S390X architecture core and desktop specification in ISO/IEC
23360-8-2 and ISO/IEC 23360-8-3 respectively.
viii © ISO/IEC 2020 – All rights reserved
---------------------- Page: 8 ----------------------
ISO/IEC DIS 23360-1-4:2020(E)
Status of this Document
This is a released specification, version 5.0. Other documents may supersede or
augment this specification.
A list of current released Linux Standard Base (LSB) specifications is available at
http://refspecs.linuxbase.org (http://refspecs.linuxbase.org/).If you wish to make comments regarding this document in a manner that is
tracked by the LSB project, please submit them using our public bug database at
http://bugs.linuxbase.org. Please enter your feedback, carefully indicating the title
of the section for which you are submitting feedback, and the volume and versionof the specification where you found the problem, quoting the incorrect text if
appropriate. If you are suggesting a new feature, please indicate what the
problem you are trying to solve is. That is more important than the solution, in
fact.
If you do not have or wish to create a bug database account then you can also e-
mail feedback to (subscribe
(http://lists.linuxfoundation.org/mailman/listinfo/lsb-discuss), archives
(http://lists.linuxfoundation.org/pipermail/lsb-discuss/)), and arrangements will
be made to transpose the comments to our public bug database.© ISO/IEC 2020 – All rights reserved ix
---------------------- Page: 9 ----------------------
ISO/IEC DIS 23360-1-4:2020(E)
Introduction
The LSB defines a binary interface for application programs that are compiled and
packaged for LSB-conforming implementations on many different hardwarearchitectures. A binary specification must include information specific to the
computer processor architecture for which it is intended. To avoid the complexity
of conditional descriptions, the specification has instead been divided into generic
parts which are augmented by one of several architecture-specific parts,depending on the target processor architecture; the generic part will indicate
when reference must be made to the architecture part, and vice versa.
This document should be used in conjunction with the documents it references.
This document enumerates the system components it includes, but descriptions
of those components may be included entirely or partly in this document, partly
in other documents, or entirely in other reference documents. For example, the
section that describes system service routines includes a list of the system routines
supported in this interface, formal declarations of the data structures they usethat are visible to applications, and a pointer to the underlying referenced
specification for information about the syntax and semantics of each call. Only
those routines not described in standards referenced by this document, or
extensions to those standards, are described in the detail. Information referenced
in this way is as much a part of this document as is the information explicitlyincluded here.
The specification carries a version number of either the form x.y or x.y.z. This
version number carries the following meaning:
1. The first number (x) is the major version number. Versions sharing the same
major version number shall be compatible in a backwards direction; that is,
a newer version shall be compatible with an older version. Any deletion of a
library results in a new major version number. Interfaces marked as
deprecated may be removed from the specification at a major version
change.
2. The second number (y) is the minor version number. Libraries and individual
interfaces may be added, but not removed. Interfaces may be marked as
deprecated at a minor version change. Other minor changes may be
permitted at the discretion of the LSB workgroup.
3. The third number (z), if present, is the editorial level. Only editorial changes
should be included in such versions.Since this specification is a descriptive Application Binary Interface, and not a
source level API specification, it is not possible to make a guarantee of 100%backward compatibility between major releases. However, it is the intent that
those parts of the binary interface that are visible in the source level API will
remain backward compatible from version to version, except where a featuremarked as "Deprecated" in one release may be removed from a future release.
Implementors are strongly encouraged to make use of symbol versioning to
permit simultaneous support of applications conforming to different releases of
this specification.
LSB is a trademark of the Linux Foundation. Developers of applications or
implementations interested in using the trademark should see the Linux
Foundation Certification Policy for details.
x © ISO/IEC 2020 – All rights reserved
---------------------- Page: 10 ----------------------
ISO/IEC DIS 23360-1-4:2020(E)
© ISO/IEC 2020 – All rights reserved xi
---------------------- Page: 11 ----------------------
ISO/IEC DIS 23360-1-4:2020(E)
I Introductory Elements
© ISO/IEC 2020 – All rights reserved 1
---------------------- Page: 12 ----------------------
ISO/IEC DIS 23360-1-4:2020(E)
1 Scope
The LSB Languages specification defines components for runtime languages
which are found on an LSB conforming system.
2 Normative References
The specifications listed below are referenced in whole or in part by the LSB
Languages specification. Such references may be normative or informative; a
reference to specification shall only be considered normative if it is explicitly cited
as such. The LSB Languages specification may make normative references to aportion of these specifications (that is, to define a specific function or group of
functions); in such cases, only the explicitly referenced portion of the specification
is to be considered normative.Table 2-1 Informative References
Name Title URL
ISO C (1999) ISO/IEC 9899:1999 -
Programming
Languages -- C
Perl Core Modules Perl 5.8.8 Core Modules http://perldoc.perl.org/
5.8.8/index-modules-
A.html
Perl Functions Perl 5.8.8 Functions http://perldoc.perl.org/
5.8.8/perlfunc.html
Perl Language Perl 5.8.8 Language http://perldoc.perl.org/
Reference Reference 5.8.8/index-
language.html
Perl Manual Perl 5.8.8 Manual Page http://perldoc.perl.org/
5.8.8/perlrun.html
Perl Operators Perl 5.8.8 Operators and http://perldoc.perl.org/
Precedence 5.8.8/perlop.html
Perl Syntax Perl 5.8.8 Syntax http://perldoc.perl.org/
5.8.8/perlsyn.html
Python Library Python Library http://www.python.org/
Reference Reference Release 2.4.2 doc/2.4.2/lib/lib.html
Python Reference Python Reference http://www.python.org/
Manual Manual Release 2.4.2 doc/2.4.2/ref/ref.html
Reference Manual for Reference Manual for http://xmlsoft.org/html/
libxml2 libxml2 index.html
Reference Manual for Reference Manual for http://xmlsoft.org/xslt/h
libxslt libxslt tml/index.html
2 © ISO/IEC 2020 – All rights reserved
---------------------- Page: 13 ----------------------
ISO/IEC DIS 23360-1-4:2020(E)
3 Requirements
This specification describes runtime language interpreters which shall be found in
specified locations. It also defines a number of runtime modules which shall be in
an implementation-defined directory which the interpreters shall search bydefault.
3.1 Relevant Libraries
The libraries listed in Table 3-1 shall be available on a Linux Standard Base system,
with the specified runtime names. This list may be supplemented or amended bythe architecture-specific specification.
Table 3-1 Standard Library Names
Library Runtime Name
libxml2 libxml2.so.2
libxslt libxslt.so.1
These libraries will be in an implementation-defined directory which the dynamic
linker shall search by default.
© ISO/IEC 2020 – All rights reserved 3
---------------------- Page: 14 ----------------------
ISO/IEC DIS 23360-1-4:2020(E)
4 Terms and Definitions
For the purposes of this document, the terms given in ISO/IEC Directives, Part 2,
Annex H and the following apply.archLSB
Some LSB specification documents have both a generic, architecture-neutral
part and an architecture-specific part. The latter describes elements whose
definitions may be unique to a particular processor architecture. The term
archLSB may be used in the generic part to refer to the corresponding section
of the architecture-specific part.
Binary Standard, ABI
The total set of interfaces that are available to be used in the compiled binary
code of a conforming application, including the run-time details such ascalling conventions, binary format, C++ name mangling, etc.
Implementation-defined
Describes a value or behavior that is not defined by this document but is
selected by an implementor. The value or behavior may vary among
implementations that conform to this document. An application should not
rely on the existence of the value or behavior. An application that relies on
such a value or behavior cannot be assured to be portable across conforming
implementations. The implementor shall document such a value or behavior
so that it can be used correctly by an application.
Shell Script
A file that is read by an interpreter (e.g., awk). The first line of the shell script
includes a reference to its interpreter binary.Source Standard, API
The total set of interfaces that are available to be used in the source code of
a conforming application. Due to translations, the Binary Standard and theSource Standard may contain some different interfaces.
Undefined
Describes the nature of a value or behavior not defined by this document
which results from use of an invalid program construct or invalid data input.
The value or behavior may vary among implementations that conform to this
document. An application should not rely on the existence or validity of the
value or behavior. An application that relies on any particular value or
behavior cannot be assured to be portable across conforming
implementations.
Unspecified
Describes the nature of a value or behavior not specified by this document
which results from use of a valid program construct or valid data input. The
value or behavior may vary among implementations that conform to this
document. An application should not rely on the existence or validity of the
value or behavior. An application that relies on any particular value or
4 © ISO/IEC 2020 – All rights reserved
---------------------- Page: 15 ----------------------
ISO/IEC DIS 23360-1-4:2020(E)
behavior cannot be assured to be portable across conforming
implementations.
In addition, for the portions of this specification which build on IEEE Std 1003.1-
2001, the definitions given in IEEE Std 1003.1-2001, Base Definitions, Chapter 3apply.
© ISO/IEC 2020 – All rights reserved 5
---------------------- Page: 16 ----------------------
ISO/IEC DIS 23360-1-4:2020(E)
5 Documentation Conventions
Throughout this document, the following typographic conventions are used:
function()
the name of a function
command
the name of a command or utility
CONSTANT
a constant value
parameter
a parameter
vari
...
Questions, Comments and Discussion
Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.