ObjFW  Changes On Branch 1.2

Changes In Branch 1.2 Excluding Merge-Ins

This is equivalent to a diff from 3777558ccd to 7669b5f9d4

2024-11-02
19:36
Fix exclude glob for `make release` check-in: c9a01cc901 user: js tags: trunk
19:36
Fix exclude glob for `make release` Leaf check-in: 7669b5f9d4 user: js tags: 1.2, 1.2-release
19:13
Increase library versions check-in: 80ae736f4d user: js tags: 1.2
18:15
Set version to 1.3-dev check-in: b8088ce448 user: js tags: trunk
18:11
Branch for 1.2 check-in: 6783d1431a user: js tags: 1.2
02:24
ObjFWHID: Make sure `analog` is always set check-in: 3777558ccd user: js tags: trunk
2024-10-27
23:57
Add support for \x from JSON5 check-in: 229486deb1 user: js tags: trunk

Modified ChangeLog from [5e899eb3a6] to [b178be0081].

1
2
3
4
5
6


































7
8
9
10
11
12
13
Legend:
 * Changes of existing features or bugfixes
 + New features

This file only contains the most significant changes.



































ObjFW 1.1.6 -> ObjFW 1.1.7, 2024-08-25
 * Fixes creating OFStrings from C strings with some encodings.
 * Fixes creating an ASCII C string from an OFString that has been initialized
   by passing an instance of a custom string class.
 * Fixes OFINIFile not parsing `=` within `"` correctly.
 * OFINIFile now allows comments and pairs before the first category.
 * OFINIFile now allows # for comments.






>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
Legend:
 * Changes of existing features or bugfixes
 + New features

This file only contains the most significant changes.

ObjFW 1.1.7 -> ObjFW 1.2, 2024-11-02
 + Adds a new framework for game controllers called ObjFWHID.
 + Adds support for tagged pointer strings.
 + Strings are now allowed to contain `\0`, while preventing such strings from
   being passed to anything that expects a C string.
 * `\u0000` and `\x??` are now allowed in JSON.
 + Adds a new option `OFJSONRepresentationOptionSorted` to create sorted,
   reproducible JSON representations.
 * Socket initialization is now delayed until sockets are used for the first
   time to significantly speed up startup on some systems, in particular game
   consoles.
 + Adds -[readString], -[tryReadString] and -[asyncReadString] to OFStream to
   read until a `\0` is found.
 + Adds support for SCTP sockets.
 + Adds support for UNIX sequenced packet sockets.
 + Adds assembly lookup for the following platforms: ARM64/Win64, RISC-V 64/ELF,
   LoongArch 64/ELF.
 + Adds -[forwardingTargetForSelector:] for the following platforms:
   MIPS64-N64/ELF, RISC-V 64/ELF, LoongArch 64/ELF, PowerPC 64/ELF v1,
   PowerPC 64/ELF v2, ARM64/Win64
 + Adds support for the following encodings: Windows-1250, Codepage 852.
 + Adds support for extended attributes on Solaris.
 * OFPlugin now falls back to loading .dylibs on macOS/iOS when no .bundle was
   found.
 * OFINICategory was renamed to OFINISection.
 * The API for async I/O handlers was changed to contain more arguments, which
   results in new methods that take a handler instead of a block and deprecating
   the old ones.
 * -[attributesOfItemAtIRI:] now works for embedded files.
 * `OF_APPLICATION_DELEGATE()` now works with `-mwindows`.
 + Adds man pages for all utilities.
 * ofdns now defaults to query AAAA and A, not ALL.
 * ofhash now accepts --rmd160 as an alias for --ripemd160.

ObjFW 1.1.6 -> ObjFW 1.1.7, 2024-08-25
 * Fixes creating OFStrings from C strings with some encodings.
 * Fixes creating an ASCII C string from an OFString that has been initialized
   by passing an instance of a custom string class.
 * Fixes OFINIFile not parsing `=` within `"` correctly.
 * OFINIFile now allows comments and pairs before the first category.
 * OFINIFile now allows # for comments.

Modified Makefile from [05a54a52b1] to [c11dd1e926].

24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
	doxygen >/dev/null

release: docs
	echo "Generating tarball for version ${PACKAGE_VERSION}..."
	rm -fr objfw-${PACKAGE_VERSION} objfw-${PACKAGE_VERSION}.tar \
		objfw-${PACKAGE_VERSION}.tar.gz
	fossil tarball --name objfw-${PACKAGE_VERSION} current - \
		--exclude '.fossil-settings,.github' | ofarc -ttgz -xq -
	cp configure config.h.in objfw-${PACKAGE_VERSION}/
	ofarc -cq objfw-${PACKAGE_VERSION}.tar objfw-${PACKAGE_VERSION}
	rm -fr objfw-${PACKAGE_VERSION}
	gzip -9 objfw-${PACKAGE_VERSION}.tar
	rm -f objfw-${PACKAGE_VERSION}.tar
	gpg -b objfw-${PACKAGE_VERSION}.tar.gz || true
	rm -fr objfw-docs-${PACKAGE_VERSION} objfw-docs-${PACKAGE_VERSION}.tar \







|







24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
	doxygen >/dev/null

release: docs
	echo "Generating tarball for version ${PACKAGE_VERSION}..."
	rm -fr objfw-${PACKAGE_VERSION} objfw-${PACKAGE_VERSION}.tar \
		objfw-${PACKAGE_VERSION}.tar.gz
	fossil tarball --name objfw-${PACKAGE_VERSION} current - \
		--exclude '.fossil-settings*,.github*' | ofarc -ttgz -xq -
	cp configure config.h.in objfw-${PACKAGE_VERSION}/
	ofarc -cq objfw-${PACKAGE_VERSION}.tar objfw-${PACKAGE_VERSION}
	rm -fr objfw-${PACKAGE_VERSION}
	gzip -9 objfw-${PACKAGE_VERSION}.tar
	rm -f objfw-${PACKAGE_VERSION}.tar
	gpg -b objfw-${PACKAGE_VERSION}.tar.gz || true
	rm -fr objfw-docs-${PACKAGE_VERSION} objfw-docs-${PACKAGE_VERSION}.tar \

Modified configure.ac from [9067714a39] to [14f2e39cfd].

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
AC_INIT(ObjFW, 1.2dev, js@nil.im, objfw, https://objfw.nil.im/)
AC_CONFIG_SRCDIR(src)
AC_CONFIG_AUX_DIR(build-aux)
AC_CONFIG_MACRO_DIR(build-aux/m4)

AC_DEFINE(OBJFW_VERSION_MAJOR, 1, [The major version of ObjFW])
AC_DEFINE(OBJFW_VERSION_MINOR, 2, [The minor version of ObjFW])
dnl This may only be set to 1.2 once 1.2 is released
AC_SUBST(BUNDLE_VERSION, 1.1.0)
AC_SUBST(BUNDLE_SHORT_VERSION, 1.1)

for i in configure.ac build-aux/m4/*; do
	AS_IF([test $i -nt configure], [
		AC_MSG_ERROR([$i is newer than configure! Run ./autogen.sh!])
	])
done

|






<
|
|







1
2
3
4
5
6
7

8
9
10
11
12
13
14
15
16
AC_INIT(ObjFW, 1.2, js@nil.im, objfw, https://objfw.nil.im/)
AC_CONFIG_SRCDIR(src)
AC_CONFIG_AUX_DIR(build-aux)
AC_CONFIG_MACRO_DIR(build-aux/m4)

AC_DEFINE(OBJFW_VERSION_MAJOR, 1, [The major version of ObjFW])
AC_DEFINE(OBJFW_VERSION_MINOR, 2, [The minor version of ObjFW])

AC_SUBST(BUNDLE_VERSION, 1.2.0)
AC_SUBST(BUNDLE_SHORT_VERSION, 1.2)

for i in configure.ac build-aux/m4/*; do
	AS_IF([test $i -nt configure], [
		AC_MSG_ERROR([$i is newer than configure! Run ./autogen.sh!])
	])
done

2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
])

AS_IF([test x"$GOBJC" = x"yes"], [
	OBJCFLAGS="$OBJCFLAGS -Wwrite-strings -Wpointer-arith"

	AC_ARG_ENABLE(werror,
		AS_HELP_STRING([--disable-werror], [do not build with -Werror]))
	AS_IF([test x"$enable_werror" != x"no"], [
		OBJCFLAGS="$OBJCFLAGS -Werror"
	])

	old_OBJCFLAGS="$OBJCFLAGS"
	OBJCFLAGS="$OBJCFLAGS -Werror"
	AC_MSG_CHECKING(whether we need -Wno-strict-aliasing due to GCC bugs)
	AC_COMPILE_IFELSE([







|







2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
])

AS_IF([test x"$GOBJC" = x"yes"], [
	OBJCFLAGS="$OBJCFLAGS -Wwrite-strings -Wpointer-arith"

	AC_ARG_ENABLE(werror,
		AS_HELP_STRING([--disable-werror], [do not build with -Werror]))
	AS_IF([test x"$enable_werror" = x"yes"], [
		OBJCFLAGS="$OBJCFLAGS -Werror"
	])

	old_OBJCFLAGS="$OBJCFLAGS"
	OBJCFLAGS="$OBJCFLAGS -Werror"
	AC_MSG_CHECKING(whether we need -Wno-strict-aliasing due to GCC bugs)
	AC_COMPILE_IFELSE([

Modified extra.mk.in from [8178291278] to [ee822dd682].

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
OBJFW_SHARED_LIB = @OBJFW_SHARED_LIB@
OBJFW_STATIC_LIB = @OBJFW_STATIC_LIB@
OBJFW_FRAMEWORK = @OBJFW_FRAMEWORK@
OBJFW_LIB_MAJOR = 1
OBJFW_LIB_MINOR = 2
OBJFW_LIB_PATCH = 0
OBJFW_LIB_MAJOR_MINOR = ${OBJFW_LIB_MAJOR}.${OBJFW_LIB_MINOR}

OBJFWRT_SHARED_LIB = @OBJFWRT_SHARED_LIB@
OBJFWRT_STATIC_LIB = @OBJFWRT_STATIC_LIB@
OBJFWRT_FRAMEWORK = @OBJFWRT_FRAMEWORK@
OBJFWRT_LIB_MAJOR = 1
OBJFWRT_LIB_MINOR = 1
OBJFWRT_LIB_PATCH = 4
OBJFWRT_LIB_MAJOR_MINOR = ${OBJFWRT_LIB_MAJOR}.${OBJFWRT_LIB_MINOR}

OBJFWBRIDGE_SHARED_LIB = @OBJFWBRIDGE_SHARED_LIB@
OBJFWBRIDGE_STATIC_LIB = @OBJFWBRIDGE_STATIC_LIB@
OBJFWBRIDGE_FRAMEWORK = @OBJFWBRIDGE_FRAMEWORK@
OBJFWBRIDGE_LIB_MAJOR = 1
OBJFWBRIDGE_LIB_MINOR = 0












|
|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
OBJFW_SHARED_LIB = @OBJFW_SHARED_LIB@
OBJFW_STATIC_LIB = @OBJFW_STATIC_LIB@
OBJFW_FRAMEWORK = @OBJFW_FRAMEWORK@
OBJFW_LIB_MAJOR = 1
OBJFW_LIB_MINOR = 2
OBJFW_LIB_PATCH = 0
OBJFW_LIB_MAJOR_MINOR = ${OBJFW_LIB_MAJOR}.${OBJFW_LIB_MINOR}

OBJFWRT_SHARED_LIB = @OBJFWRT_SHARED_LIB@
OBJFWRT_STATIC_LIB = @OBJFWRT_STATIC_LIB@
OBJFWRT_FRAMEWORK = @OBJFWRT_FRAMEWORK@
OBJFWRT_LIB_MAJOR = 1
OBJFWRT_LIB_MINOR = 2
OBJFWRT_LIB_PATCH = 0
OBJFWRT_LIB_MAJOR_MINOR = ${OBJFWRT_LIB_MAJOR}.${OBJFWRT_LIB_MINOR}

OBJFWBRIDGE_SHARED_LIB = @OBJFWBRIDGE_SHARED_LIB@
OBJFWBRIDGE_STATIC_LIB = @OBJFWBRIDGE_STATIC_LIB@
OBJFWBRIDGE_FRAMEWORK = @OBJFWBRIDGE_FRAMEWORK@
OBJFWBRIDGE_LIB_MAJOR = 1
OBJFWBRIDGE_LIB_MINOR = 0