forked from gnustep/libs-base
-
Notifications
You must be signed in to change notification settings - Fork 1
/
ChangeLog
21911 lines (16827 loc) · 754 KB
/
ChangeLog
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
2019-08-09 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSRunLoop.m:
* Source/NSThread.m:
Improve reporting of excess performers so that, when one thread
performs selectors in another, you can see the class of the receiver
and the selector involved.
2019-08-08 Richard Frith-Macdonald <rfm@gnu.org>
* configure.ac: check for malloc_usable_sizer()
* configure: regenerate
* Headers/GNUstepBase/config.h.in: regenerate
* Headers/Foundation/NSDebug.h: Add GSMemoryBytes()
* Headers/GNUstepBase/NSObject+GNUstepBase.h: Rework memory usage
reporting extensions API.
* Source/Additions/NSMutableString+GNUstepBase.m:
* Source/Additions/NSObject+GNUstepBase.m:
* Source/GSArray.m:
* Source/GSCountedSet.m:
* Source/GSDictionary.m:
* Source/GSSet.m:
* Source/GSString.m:
* Source/NSConcreteHashTable.m:
* Source/NSConcreteMapTable.m:
* Source/NSData.m:
* Source/NSDebug.m:
* Source/NSDistantObject.m:
* Source/NSObject.m:
* Source/NSProxy.m:
* Source/NSRunLoop.m:
Updates for new memory reporting extensions API. The parts of this
dealing with the size of the contents of an object are now off by
default (trying to calculate the size of an object is problematic if
it is mutated while you are doing it) but classes can implement
-sizeOfContentExcluding: to turn it on if they are thread-safe.
Implementations provided for immutable container objects and for all
strings.
2019-08-06 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSData.m: Implement
[NSMutableData+dataWithBytesNoCopy:length:freeWhenDone]
2019-07-28 Fred Kiefer <fredkiefer@gmx.de>
* Source/NSByteCountFormatter.m: Fix to work in non fragile settings.
2019-07-19 Gregory Casamento <greg.casamento@gmail.com>
* Headers/Foundation/NSByteCountFormatter.h
* Source/NSByteCountFormatter.m
Implementation of NSByteCountFormatter as documented.
* Tests/base/NSByteCountFormatter
Add test for this class.
2019-07-10 Frederik Seiffert <frederik@algoriddim.com>
* Headers/Foundation/NSArray.h:
* Headers/Foundation/NSOrderedSet.h:
Fix generics definition of NSMutableArray and NSMutableOrderedSet.
Fix NSArray and NSOrderedSet KVC method types to not use generic type.
2019-07-14 Fred Kiefer <fredkiefer@gmx.de>
* Source/NSUbiquitousKeyValueStore.m: Change to use GNUstep
formatting. Move simple methods into base class. Correct the usage
of long long NSNumber.
2019-07-10 Gregory Casamento <greg.casamento@gmail.com>
* Headers/Foundation/NSUbiquitousKeyValueStore.h
* Source/NSUbiquitousKeyValueStore.m: Implementation of
skeletal version of this class for compilation. Also put in
place a way to make concrete subclasses for various services.
2019-07-02 Wolfgang Lux <wolfgang.lux@gmail.com>
* Tests/base/GSTLS/basic.m: Use fixed time zone.
2019-07-02 Gregory John Casamento <greg.casamento@gmail.com>
* Headers/Foundation/NSOrderedSet.h: Added header for class cluster
implementation of NSOrderedSet.
* Source/NSOrderedSet.m: Implementation of NSOrderedSet and NSMutableOrderedSet
* Source/GSOrderedSet.m: Implementation of concrete class.
2019-07-01 Fred Kiefer <fredkiefer@gmx.de>
* Source/GSXML.m (fatalErrorFunction): Use correct function to get
line number.
* Source/NSOperation.m (_execute): Surround with NS_DURING to free
lock on error.
2019-06-11 Richard Frith-Macdonald <rfm@gnu.org>
* Headers/GNUstepBase/GSIArray.h:
* Headers/GNUstepBase/NSObject+GNUstepBase.h:
* Source/Additions/NSObject+GNUstepBase.m:
* Source/GSArray.m:
* Source/GSCountedSet.m:
* Source/GSDictionary.m:
* Source/GSSet.m:
* Source/NSArray.m:
* Source/NSConcreteHashTable.m:
* Source/NSConcreteMapTable.m:
* Source/NSData.m:
* Source/NSDictionary.m:
* Source/NSDistantObject.m:
* Source/NSObject.m:
* Source/NSProxy.m:
* Source/NSSet.m:
* Source/NSString.m:
Revise mechanism for extention to report memory usage of individual
objects. This makes the inclusion of size of objects in ivars a
default, while allowing easy extension to include other heap memory.
API change not final.
2019-05-23 Frederik Seiffert <frederik@algoriddim.com>
* configure:
* configure.ac:
Link against libandroid on Android.
* Headers/Foundation/NSBundle.h:
* Source/NSBundle.m:
Added methods for passing Android asset manager from Java to GNUstep
and for getting AAsset/AAssetDir for given path in main bundle.
Skip app bundle suffix check on Android. Extended bundle resource
paths backbone to check for known paths directly on Android as we
can't enumerate directories.
Extended -localizations method to check for known localizations
directly (requires setting userLanguages in NSUserDefaults).
Extracted path cache cleaning into separate method.
* Source/GSFileHandle.h:
* Source/GSFileHandle.m:
Added file handle support for reading Android assets from main bundle.
* Source/NSData.m:
Added support for reading Android assets from main bundle in
readContentsOfFile(). This is also used by all other
-initWithContentsOfFile: and related methods from other classes.
* Source/NSFileManager.m:
Added support for Android assets from main bundle in
fileExistsAtPath:isDirectory:, isReadableFileAtPath:,
NSDirectoryEnumerator, and copying from assets. Extended
GSAttrDictionary with basic support for Android assets.
* Source/NSProcessInfo.m:
Added +initialize method to auto-initialize NSProcessInfo on Android
using fake executable path "/data/data/<app identifier>/exe" (Android
apps don't have a real executable path).
2019-05-20 Frederik Seiffert <frederik@algoriddim.com>
* Source/NSLog.m: Have all logs go to syslog on android.
* Source/NSThread.m: Spinlock implementation using builtins as
implemented by David in libobjc2
* Source/NSRunLoop.m
* Headers/GNUstepBase/config.h.in:
* configure.ac:
This updates the libdispatch runloop integration to be compatible with
the Swift corelibs libdispatch release at
(https://github.com/apple/swift-corelibs-libdispatch).
In that release, the main queue handle and drain functions have been
renamed with a "_4CF" (for CoreFoundation) suffix and have moved to
private.h, so we now check for the existance of this header and
function names.
Note that libdispatch must be compiled with
INSTALL_PRIVATE_HEADERS=YES.
Also fixes the checks for the HAVE_LIBDISPATCH_RUNLOOP define (was
inverted) and ensures that both the handle and drain functions are
available.
2019-02-16 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSString.m: Removed public functions which could conflict
with application code. Rewrote percent unescaping to avoid possible
buffer overruns.
* Tests/base/NSString/test09.m: avoid excess logging (for readability
of test output).
2019-04-12 Gregory John Casamento <greg.casamento@gmail.com>
* Source/NSCharacterSet.m: Added declarations/implementations for
URL*AllowedCharacterSet.
* Headers/NSCharacterSet.h: Added declarations here for
URL*AllowedCharacterSet
* Source/CharSets/*: Added headers to define new charactersets.
* Source/NSString.m: Added methods stringByRemovingPercentEncoding/
stringByAddingPercentEncodingWithAllowedCharacterSet:
* Header/NSString.h: Added declrations for methods mentioned above.
2019-03-29 Igor Zhukov <fsb4000@yandex.ru>
* Source/NSDateFormatter.m:
* configure:
* configure.ac:
Decrease ICU version requirements to 49 to support Windows 2000.
2019-03-25 Sergii Stoian <stoyan255@gmail.com>
* Resources/Lanuages/Ukrainian:
Fix wrong \U sequence for letter 'i' and short weekdays.
2019-03-18 Wolfgang Lux <wolfgang.lux@gmail.com>
* Tools/gdomap.c:
Fix crash in donames() when getaddrinfo returns an error.
2019-02-27 Richard Frith-Macdonald <rfm@gnu.org>
* Source/Additions/Unidoce.m: comment-out left-over debug logging.
* Source/NSJSONSerialization.m: escape characters with codepoint
greater than 0x7f.
2019-02-15 Richard Frith-Macdonald <rfm@gnu.org>
* Source/GSMime.m: When encoding quoted words in a header, ensure
we don't split multibyte utf-8 characters into separate words.
* Tests/base/GSMime/general.m: Add test for encode/decode folded
subject line wit a euro symbol at the fold point.
2019-02-14 Richard Frith-Macdonald <rfm@gnu.org>
* Source/GSPrivate.h:
* Source/NSBundle.m:
* Source/NSPathUtilities.m:
* Source/objc-load.m:
GSPrivateSymbolPath() simplified by removing the unused argument
and consolidated code so that, if the class lookup via dladdr()
fails, we fall back to use __objc_dynamic_get_symbol_path().
2019-02-14 Richard Frith-Macdonald <rfm@gnu.org>
* Source/Additions/GSMime.m: Fix encoded word encoding specifier
to be uppercase ('B' or 'Q') as pere strict RFC specification.
* Tests/base/GSMime/build.m: Add testcase for correct encoding.
2019-02-13 Richard Frith-Macdonald <rfm@gnu.org>
* Tests/base/GSTLS/basic.m: Update testcase to use correct guard.
2019-02-12 Ivan Vucica <ivan@vucica.net>
* Headers/GNUstepBase/GSTLS.h: Change guard to check for value of
GS_USE_GNUTLS and not for its defined state. This preprocessor
constant might be defined with a zero value indicating desire not to
use GnuTLS, which would still pass the old check.
2019-02-11 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSObject.m: Improve thread safety with NSZombie particularly
on startup/shutdown; be more careful about locking access to the
zombieMap and also ensuring we don't raise an exception inside the
locked sections (by passing a nil map to the functions).
2019-01-06 Armando Pesenti Gritti <armando.pesentigritti@theengagehub.com>
* Headers/GNUstepBase/GSTLS.h: Header moved to provide public
exposure of TLS classes giving ObjC interface to GNU TLS.
* Source/GSTLS.m: New methods to provide certificate expiry times.
* Source/DocMakefile: Make documentation from GSTLS.h
* Source/GNUmakefile: Install GSTLS.h
* Source/GSHTTPURLHandle.m: Adjust location of GSTLS header
* Source/GSSocketStream.m: Adjust location of GSTLS header
* Source/NSFileHandle.m: Adjust location of GSTLS header
* Source/NSURLProtocol.m: Adjust location of GSTLS header
* Tests/base/GSTLS: Add tests for certificate expiry
Patch by Armando, adjusted by RFM.
2019-01-06 Fred Kiefer <fredkiefer@gmx.de>
* Source/Additions/Unicode.m: Move variable u to the correct scope
and initialize it.
2019-01-06 Ivan Vucica <ivan@vucica.net>
* ANNOUNCE:
* NEWS:
* Documentation/ReleaseNotes.gsdoc:
* Documentation/news.texi:
Update release notes for 1.26.0.
* Version:
Bump version to 1.26.0.
2019-01-06 Ivan Vucica <ivan@vucica.net>
* Tests/base/NSBundle/resources.m:
Fixed change in 2107c82ca4778e4cf9b8624d1bd1fd60fe104373 which made
NSArray *arr become invisible to the "NSBundle GNUstep resources"
test set.
2019-01-06 Ivan Vucica <ivan@vucica.net>
* config/icu.m4:
* configure.ac:
Merge the change to use pkg-config to detect ICU. Patch by Hugh
McMaster <hugh.mcmaster@outlook.com>.
Update PR #32 to require ICU 5.0+ and not 4.6+.
* configure:
Regenerated to incorporate the changes from PR #32. Regenerated with
autoconf 2.69.
2019-01-06 Fred Kiefer <fredkiefer@gmx.de>
* Documentation/news.texi: Update release notes for 1.26.0.
* ChangeLog: Fix typos in this document.
2019-01-03 Richard Frith-Macdonald <rfm@gnu.org>
* Source/GSTLS.h:
* Source/GSTLS.m:
* Source/NSFileHandle.m:
Track the age of TLS sessions for server connections and, when
accepting an incoming connection, replace the current server
connection (if the existing one is more than 5 minutes old) so
that cached certificate information will be updated from file
(eg if a certificate needs to be updated while a server is running).
2018-12-06 Wolfgang Lux <wolfgang.lux@gmail.com>
* Headers/Foundation/NSObject.h:
Remove reference to the copyWithZone: implementation of NSObject,
which was removed ages ago.
2018-12-05 Richard Frith-Macdonald <rfm@gnu.org>
* Headers/Foundation/NSURLHandle.h:
* Source/NSURLHandle.m:
* Source/GSHTTPURLHandle.m:
Expose GNUstep specific methods for old code that depends on them.
Newer code should use the newer HTTP/HTTPS APIs
2018-12-04 Richard Frith-Macdonald <rfm@gnu.org>
* Headers/GNUstepBase/NSURL+GNUstepBase.h:
* Source/NSURL.m:
Add [-cacheKey] method to return a key usable for caching HTTP URL
connections that go to the same scheme, host and port.
* Source/GSHTTPURLHandle.m:
New [-setURL:] method to change the URL used by a handle so that
a networek connection used by a handle can be re-used if possible
(ie if the scheme, host and port parts are unchanged).
2018-08-24 Richard Frith-Macdonald <rfm@gnu.org>
* Source/GSTLS.m: Fixup for last modification ... still verify the
certificate (so we can find out who issued/owns it) even if we do
not have verification turned on ... the verification setting controls
whether we reject the connection. Also fixed off by one bug in
getting the issuer and owner distinguished names.
2018-08-13 Richard Frith-Macdonald <rfm@gnu.org>
* Source/GSTLS.m: Change behavior so that when acting as a server we
always request that the client sends us a certificate (if it doesn't
have one, it should ignore the request). The 'verify' setting should
control only whether a request without a certificate is rejected.
2018-08-08 Riccardo Mottola <rm@gnu.org>
* configure.ac
* configure:
When checking for pthread_np.h include pthread.h if available or
it may fail (e.g. OpenBSD).
2018-08-06 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSUserDefaults.m: Update the cache on change of volatile
domain or search list, not just when perstistent domain values
change.
2018-07-19 Richard Frith-Macdonald <rfm@gnu.org>
* NSTimeZones/NSTimeZones.tar: Updated zone info and corrected preferred
abbreviation mappings to match OSX.
2018-07-14 Richard Frith-Macdonald <rfm@gnu.org>
* Source/Additions/Unicode.m: improve utf8 validity checks,
switch to state machine based utf8 parsing for better performance.
* Tests/base/NSString/utf8.m: add a few tests for utf8 parsing.
2018-07-10 Richard Frith-Macdonald <rfm@gnu.org>
* configure.ac:
* configure:
When using clang, we now supply -fobjc-runtime=gcc to target the
gnu/gcc runtime ABI.
2018-07-07 Fred Kiefer <fredkiefer@gmx.de>
* Source/NSString.m: Add primitive implementation for
rangeOfComposedCharacterSequencesForRange:.
2018-07-06 Fred Kiefer <fredkiefer@gmx.de>
* Source/GSString.m: Remove GSString copyWithZone:.
* Source/NSString.m: Raise exception when no data is provided for the
string. This brings our implementation closer to the Cocoa one.
* Source/GSString.m: Add similar exceptions.
2018-07-02 Richard Frith-Macdonald <rfm@gnu.org>
* Tests/base/NSString/test00.m: : Move _unicodeString from here...
* Source/GSString.m: ... to here.
In order to reliably test the internal 16bit unicode implementation
we must have a method guaranteed to produce an instance of the correct
class.
2018-07-01 Fred Kiefer <fredkiefer@gmx.de>
* Source/NSString.m: Small cleanup for printf registration.
* Tests/base/NSString/test00.m: Add David Chisnall's test from
newapi branch slightly reformatted.
* Source/GSString.m: Remove code that was identical to super class.
* Source/GSString.m: Move the method _unicodeString from here...
* Tests/base/NSString/test00.m: ...to here.
2018-06-28 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSXMLParser.m: Fix conversion of numeric entities with large
values into UTF-16 surrogate pairs before returning them as string.
2018-06-12 Richard Frith-Macdonald <rfm@gnu.org>
* Documentation/Base.gsdoc:
* Source/GSPrivate.h:
* Source/NSException.m:
* Source/NSUserDefaults.m:
Add boolean GSExceptionStackTrace user default to turn on inclusion
of stack trace information in the -description of an exception
(like the GNUSTEP_STACK_TRACE environment variable). Useful for
diagnostic logs of a long running server process.
2018-04-30 Graham Lee <graham@iamleeg.com>
* Source/NSCalendar.m (calendarWithIdentifier:):
New convenience method implemented by Cocoa.
2018-05-29 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSObject.m: avoid static initialisation macro for allocation
locks in case some systems implement it in a way that doesn't work
after static initialisation takes place.
2018-05-27 Fred Kiefer <fredkiefer@gmx.de>
* Tests/base/NSProcessInfo/general.m: Mark test for -systemUptime
as hopeful as it may fail in GNU Hurd.
Fixes bug #53941.
Based on idea by Yavor Doganov <yavor@gnu.org>
2018-05-21 Fred Kiefer <fredkiefer@gmx.de>
* Source/GSConcreteValueTemplate.m: Add hack to make point and
size subclasses for NSValue interchangable.
2018-05-20 Ivan Vucica <ivan@vucica.net>
* Source/NSThread.m:
Fix typo in code branch for platforms without pthread_spin_lock().
Check for value of HAVE_PTHREAD_SPIN_LOCK instead of whether the
macro is defined.
2018-05-18 Richard Frith-Macdonald <rfm@gnu.org>
* Tools/gdnc.m: Remove a little unused code
* Headers/Foundation/NSFileHandle.h:
* Source/GSHTTPURLHandle.m:
* Source/GSSocketStream.m:
* Source/GSTLS.h:
* Source/GSTLS.m:
* Source/NSURLProtocol.m:
Add support for TLS SNI (Server Name Indication) and a new option
(GSTLSServerName) to control what name (if any) is passed in the TLS
handshake.
2018-05-17 Yavor Doganov <yavor@gnu.org>
* Tests/base/NSNumberFormatter/basic10_4.m: Avoid test failure on
big-endian platforms by converting unichar to an NSString.
2018-05-10 Fred Kiefer <fredkiefer@gmx.de>
* Tools/pl2link.m (main): Don't write deprecated fields to desktop
link file.
Patch by: Josh Freeman <gnustep_lists@twilightedge.com>
2018-04-24 Richard Frith-Macdonald <rfm@gnu.org>
* configure: regenerate
* NSObject.m: tiny cosmetic whitespace tidyup
* NSThread.m: move declarations to avoid compiler warning
2018-04-23 Riccardo Mottola <rm@gnu.org>
* Source/NSThread.m:
Detect if platform is missing spin locks and provide an dummy
implementation. Emit warning during compilation and runtime (in debug).
2018-04-16 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSThread.m: ensure that the thread specific memory key is
initialised before use.
2018-04-15 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSException.m: Improve -symbold method on platforms without
backtrace support (list addresses with a message to say the symbols
are not available).
2018-04-12 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSLock.m: Using class_createInstance() to allocate locks
seems to be causing memory issues and crashes somehow. Temporarily
comment out that code to try to get things working again.
2018-04-12 Richard Frith-Macdonald <rfm@gnu.org>
* Source/Additions/Unicode.m:
* Source/NSArray.m:
* Source/NSCharacterSet.m:
* Source/NSString.m:
Use pthread mutex directly to try to avoid initialising NSLock too
early on during process startup.
2018-04-10 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSObject.m: Don't set the name of the global lock until
after we have make sure that strings and autorelease are set up.
2018-04-10 Richard Frith-Macdonald <rfm@gnu.org>
* Source/Additions/Unicode.m:
* Source/GSHTTPAuthentication.m:
* Source/GSHTTPURLHandle.m:
* Source/GSMDNSNetServices.m:
* Source/GSURLPrivate.h:
* Source/NSCalendar.m:
* Source/NSCharacterSet.m:
* Source/NSConnection.m:
* Source/NSCountedSet.m:
* Source/NSIndexPath.m:
* Source/NSKeyValueObserving.m:
* Source/NSLocale.m:
* Source/NSMessagePort.m:
* Source/NSSocketPort.m:
* Source/NSUserDefaults.m:
* Source/NSValueTransformer.m:
Replace the obsolete GSLazyLock code with standard NSLocks now that
almost all significant software is multithreaded.
2018-04-10 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSThread.m: When adding a new thread, set the thread specific
memory to point to the object before doing anything else which might
attempt to access the thread (causing recursive registration).
2018-04-09 Richard Frith-Macdonald <rfm@gnu.org>
* Source/Additions/unicode/cop.h: Add comment/fixme
* Source/Additions/Unicode.m:
* Source/NSString.m:
Move uni_isnonsp() to NSString.m and make it use nonBaseCharacterSet
so that it correctly copes with both surrogate pairs and traditional
composed character sequences. NB. David points out that this is not
full/correct unicode grapheme cluster handling (it's the main part
of the handling for 'legacy' grapheme clusters).
2018-04-04 Richard Frith-Macdonald <rfm@gnu.org>
* Headers/Foundation/NSLock.h:
* Headers/Foundation/NSThread.h:
* Source/GSPrivate.h:
* Source/NSException.m:
* Source/NSLock.m:
* Source/NSThread.m:
Revised code for efficient stack traces and for tracking the use of
locks and detecting deadlocks.
2018-03-30 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSException.m: Fix second argument to backtrace()
2018-03-28 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSException.m: Use pthread mutexes directly to avoid
recursive interactions with tracking NSL:ock activity.
2018-03-27 Richard Frith-Macdonald <rfm@gnu.org>
* Source/GSPrivate.h:
* Source/NSDebug.m:
* Source/NSException.m:
* Source/NSThread.m:
* Headers/Foundation/NSThread.h:
Move stack info code from NSDebug to NSException so its all in one
place and. Make thread call stack addresses method use windows code
as well as libbacktrace. Remove unused method.
* Source/NSTimeZone.m:
Simplify and optimise locking by using pthread_mutex functions
directly.
2018-03-26 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSDebug.m:
Avoid recursion in lock tracing when using memory allocation stats.
* Source/NSObject.m:
Make gnustep_global_lock an untraced lock to avoid recursion issues
when tracing.
2018-03-26 Richard Frith-Macdonald <rfm@gnu.org>
* Headers/Foundation/NSLock.h:
* Headers/Foundation/NSThread.h:
* Source/GSPrivate.h:
* Source/NSLock.m:
* Source/NSThread.m:
Experimental code to add support for tracing locks held by different
threads and to report deadlock situations where threads have
obtained locks in the wrong order and can never proceed.
2018-03-26 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSBundle.m:
* Source/NSOperation.m:
Give locks names to ease debugging
* Source/NSObject.m:
* Source/NSZone.m:
Updates to use pthread mutexes directly rather than NSLock objects
in key places for performance.
2018-03-26 Richard Frith-Macdonald <rfm@gnu.org>
* Source/GSPThread.h:
* Source/GSException.m:
Optimise generation of stack traces to store them in a single simple
malloced buffer and only generate an NSArray of return addresses if
actually requested. Also adjust output of stack trace to exclude the
top few frames involved in generation of the trace, so we see only
the frames of interest.
2018-03-16 Richard Frith-Macdonald <rfm@gnu.org>
* Headers/Foundation/NSLock.h: Expose pointer to function handling
logging of deadlocks.
* Source/NSLock.m: Indirect via pointer so apps can intercept the
logging of deadlocks.
* Source/GSHTTPURLHandle.m: Provide more detailed debug logging.
* Source/NSURLProtocol.m: Provide more detailed debug logs.
2018-02-25 Richard Frith-Macdonald <rfm@gnu.org>
* Source/GSeq.h: Fixup error in last modification.
* Source/GSString.m: Add method to reliably get a GSUnicodeString
* Tests/base/NSString/test00.m: Fix tests to properly check range
searches using all combinations of 8bit and 16bit representation
strings.
2018-02-25 Richard Frith-Macdonald <rfm@gnu.org>
* Source/GSeq.h: Fix boundary checks searching for unicode strings.
2018-02-16 Yavor Doganov <yavor@gnu.org>
* Tests/base/NSNumberFormatter/basic10_4.m: Extend test expression
to fix test failure with ICU 60.2.
2018-02-11 Richard Frith-Macdonald <rfm@gnu.org>
* Tools/gdomap.c: Fix strncat length limits.
2018-02-09 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSTimeZone.m: fix missing fieldwidth specified in fscanf call
2018-02-09 Fred Kiefer <fredkiefer@gmx.de>
* Source/NSXMLElement.m(-addAttribute:): Correct linear list code
for name spaces. This fixes the last remaining Coverity issue.
2018-02-08 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSPortCoder.h
* Source/NSUnarchiver.h
Improve checks for loss of data converting sizes of scalar types.
2018-02-07 Richard Frith-Macdonald <rfm@gnu.org>
* Source/GSAttributedString.m: remove a little dead code
* Tests/base/NSMutableAttributedString/test00.m: add sanity checks
* Tests/base/NSMutableAttributedString/test01.m: add sanity checks
* Source/GSString.m: raise exception on character conversion failure
* Source/NSNumberFormatter.m: remove dead code
* Source/NSPropertyList.m: avoid warnings using cast to void
* Source/NSMessagePortNameServer.m: added security checks
* Source/NSDecimal.m: tweak underflow setting for negative numbers
* Tools/AGSHtml.m: remove useless test
2018-02-07 Yavor Doganov <yavor@gnu.org>
* Source/NSPortMessage.m (sendBeforeDate:): Invoke
-sendBeforeDate:msgid:components:from:reserved: so that the value
of _msgid is taken into account.
(initWithSendPort:receivePort:components:): Set _msgid to 0.
2018-02-06 Richard Frith-Macdonald <rfm@gnu.org>
* Headers/Foundation/NSException.h:
* Source/NSAssertionHandler.m:
* Documentation/manual/ExceptionHandling.texi:
Update NSAssert() and NSCAssert() to handle variable arguments
(as OSX has done) and mark the numbered macros as obsolete.
* Source/NSMessagePort.m:
* Source/NSSocketPort.m: Log if we fail to turn on keepalive
* Source/NSURL.m: fix possible nul pointer dereference
* Source/NSPropertyList.m: check step before use
* Source/NSDate.m: add comment that we are ignoring non-digits
* Source/NSCache.m: use double division for calcualting averrage
* Source/NSPredicate.m: check for termination of quoted strings
2018-02-05 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSPortCoder.m: Remove redundant (always true) conditional.
Use cast to mask 64bit values.
* Source/NSUnarchiver.m: Remove redundant (always true) conditional.
* Source/NSPropertyList.m: Remove dead code
* Source/NSDecimal.m: Remove dead code, tweak underflow setting for
negated numbbers.
* Tools/gdnc.m: Remove dead code
2018-02-04 Richard Frith-Macdonald <rfm@gnu.org>
* Source/GSFileHandle.m: keep checker happy by using return value of
setsockopt.
* Source/Additions/Unicode.m: ensure iconv handle is closed
* Source/NSLocale.m: localeIdentifierFromComponents should cope with
collation alone being set.
* Source/GSString.m: better handling if character conversion fails.
* Source/NSRunLoop.m: suppress warning using cast.
* Source/NSTimeZone.m: check that time zone hour is in range 0 to 23
2018-02-03 Richard Frith-Macdonald <rfm@gnu.org>
* Source/GSFTPURLHandle.m: change memcpy to memmove to avoid possible
problems with overlapping source and destination areas.
* Source/Additions/Unicode.m: ensure iconv handle is closed
* Source/NSXMLParser.m: fix incorrect type assignment
2018-02-01 Fred Kiefer <fredkiefer@gmx.de>
* Source/GSFormat.m: Call va_end with the correct parameter.
* Source/NSObject+NSComparisonMethods.m: Add missing return.
* Source/GSString.m (-replaceCharactersInRange:withString:,
-initWithBytesNoCopy:...freeWhenDone:): Remove dead code.
* Source/NSDistantObject.m (-initWithCoder:): Remove dead code.
* Source/NSPredicate.m (_eval_avg:): Don't devide by zero.
Fix issues found by Coverity.
2018-01-26 Richard Frith-Macdonald <rfm@gnu.org>
* NSCharacterSets/GNUmakefile:
* NSCharacterSets/alphanumericCharSet.dat:
* NSCharacterSets/controlCharSet.dat:
* NSCharacterSets/dataToHeader.c:
* NSCharacterSets/decimalDigitCharSet.dat:
* NSCharacterSets/decomposableCharSet.dat:
* NSCharacterSets/illegalCharSet.dat:
* NSCharacterSets/letterCharSet.dat:
* NSCharacterSets/lowercaseLetterCharSet.dat:
* NSCharacterSets/newlineCharSet.dat:
* NSCharacterSets/nonBaseCharSet.dat:
* NSCharacterSets/punctuationCharSet.dat:
* NSCharacterSets/symbolAndOperatorCharSet.dat:
* NSCharacterSets/uppercaseLetterCharSet.dat:
* NSCharacterSets/whitespaceAndNlCharSet.dat:
* NSCharacterSets/whitespaceCharSet.dat:
Obsolete files deleted.
* NSCharacterSets/README.CharSet: updated
* Source/NSCharacterSetData.h: regenerated using the ucsdata library
and the charsets tools to take into account the fact that a unicode
zero width space should be counted as white space by us.
* Source/NSURL.m: A few OSX compatibility tweaks.
* Tests/base/NSURL/basic.m: A couple more OSX compatibility tests.
2018-01-25 Richard Frith-Macdonald <rfm@gnu.org>
* Headers/Foundation/NSException.h:
* Source/NSException.m:
* Source/Additions/NSObject+GNUstepBase.m:
Mark exception raising methods with GS_NORETURN_METHOD.
Alter noreturn method implementations so the compiler knows
that they really don't return.
Use pragma to suppress warnings about noreturn methods whose
formal declaration says they return an id.
2018-01-23 Richard Frith-Macdonald <rfm@gnu.org>
* Source/Additions/NSNumber+GNUstepBase.m:
* Source/GSValue.m:
* Source/NSZone.m:
* Tools/gdomap.c:
Fix various small issues picked by automated checker.
2018-01-19 Richard Frith-Macdonald <rfm@gnu.org>
* Source/Makefile.postamble: Restore optimisation flags (removed 18
years ago) for NSInvocation and NSConnection (and remove obsolete
mframe setting) as suggested by Yavor Doganov.
2018-01-15 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSThread.m: Improve exception message when performing a
selector on a finished thread.
* Source/NSTask.m: Do not try to notify task completion on a thread
that is not executing.
* configure.ac: Fix for older versions of pkg-config
* configure: regenerate
2018-01-14 Yavor Doganov <yavor@gnu.org>
* Tests/base/NSXMLDocument/basic.m:
* Tests/base/NSXMLDocument/cdata.m:
* Tests/base/NSXMLNode/basic.m:
* Tests/base/NSXMLElement/attributes.m:
* Tests/base/NSXMLElement/basic.m:
* Tests/base/NSXMLElement/children.m:
* Tests/base/NSXMLElement/transfer.m:
* Tests/base/NSXMLNode/children.m:
* Tests/base/NSXMLNode/description.m:
* Tests/base/NSXMLNode/kinds.m:
* Tests/base/NSXMLNode/namespaces.m: Skip tests if libxml2 is not
available.
* Tests/base/NSTimeZone/use.m: Skip one more test if
NSLOCALE_SUPPORTED is undefined.
* Tests/base/NSRegularExpression/basic.m: Skip all tests if ICU is
not available.
2018-01-14 Richard Frith-Macdonald <rfm@gnu.org>
* configure.ac: Remove explicit test for SAX2.h as we now assume
it is present based on the version of libxml2.
* configure: regenerate
* Source/GSXML.m: fix errors in loading/resolving of external entities
and fix the parsing methods to correctly return whether the xml was
validated against a DTD (when that feature is turned on).
* Tests/base/GSXML/basic.m: add a couple of tests for resolving
external references and validating against a DTD.
2018-01-14 Yavor Doganov <yavor@gnu.org>
* configure.ac: Use PKG_PROG_PKG_CONFIG instead of AC_PATH_PROG to
find pkg-config as it supports cross-compilation.
* configure.ac: Bump ICU requirement to >= 50 for UDAT_PATTERN.
2018-01-11 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSXMLParser.m: OSX compatibility tweaks and correction
for setting entity resolution flag in sloppy parser.
* Headers/GNUstepBase/GSXML.h: new [-resolveEntities:] method to
enable resolving of external entities (now off by default).
* Source/Additions/GSXML.m: Changes to turn off resolving of
external entity references my default (adding a new method to turn
the feature back on) as a security fix to prevent xml injection
attacks (eg where an attacker gets the local password file substituted
into an xml document).
* Tests/base/NSXMLParser/parse.m: external entity resolution test.
* Tests/base/GSXML/basic.m: external entity resolution test.
2018-01-04 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSObject.m: Fix bug with one path to object allocation
failing to record the object for memory debuggin purposes.
2018-01-03 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSURL.m:
Tweaks for OSX compatibility ... treat a missing path in an http URL
as an empty string rather than as nil.
2018-01-02 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSFileManager.m:
* Tests/base/NSFileManager/general.m:
Added <graham@iamleeg.com> Graham Lee's fix for #51592 to not raise
an assertion, but rather call the handler if the source file being
copied does not exist.
2017-12-21 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSSocketPort.m:
* Source/NSMessagePort.m:
* Source/win32/NSMessagePort.m:
There is a possible race condition when attempting to write a message
to a port; the port handle is added to the run loop and then the loop
is entered, but if an event occurs in the loop which invalidates the
handle and causes it to be removed from the loop before the lower
level code to wait for I/O is entered, the loop may never receive an
event on the handle and could wait indefinitely.
The solution is not to remove the handle from the loop when it is
invalidated or when an event occurs on an invalidated handle, but
only remove it in the method which added it. Of course, this means
we must make certain to remove it when we should, which means that
the loop must be run inside an exception handler which makes sure to
remove the handle from the loop before re-raising the exception.
2017-12-31 Ivan Vucica <ivan@vucica.net>
* ANNOUNCE
* NEWS
* Documentation/ReleaseNotes.gsdoc
* Documentation/news.texi: Update release notes for 1.25.1 to
take note of compatibility improvement changes since release
notes were written, and to fix a typo.
2017-12-21 Riccardo Mottola <rm@gnu.org>
* Source/NSObject.m:
Cleanup previous commit.
2017-12-21 Riccardo Mottola <rm@gnu.org>
* Source/NSObject.m:
Compatibility for OS/compiler not supporting weak symbols.
2017-12-20 Richard Frith-Macdonald <rfm@gnu.org>
* configure.ac: Remove obsolete --enable-objc-nonfragile-abi flag
when building for ng.
* configure: regenerate
2017-12-19 Richard Frith-Macdonald <rfm@gnu.org>
* Version: 1.25.1 release
* Documentation/ReleaseNotes.gsdoc: update for release
* Documentation/news.texi: update for release
* ANNOUNCE: regenerate
* INSTALL: regenerate
* NEWS: regenerate
* README: regenerate
2017-12-18 Graham Lee <graham@iamleeg.com>
* Source/NSJSONSerialization.m: Fix for bug #12 on github. This
makes sure that unsigned integer types are written as such,
avoiding a potential overflow.
* Tests/base/NSJSONSerialization/tests00.m: Test case for above.
2017-12-17 David Chisnall <theraven@sucs.org>
* Source/NSObject.m: Refactor refcount usage.
This makes it easier for the runtime to change how reference
counts are
stored by removing any refcount manipulation from -base when
the runtime
provides accessors. This should have no functionality
change with
existing runtimes, but will let newer runtimes drop in
alternative
representations easily.
2017-12-03 Fred Kiefer <fredkiefer@gmx.de>
* Headers/Foundation/NSFileManager.h
* Source/NSFileManager.m: Correct setting the delegate.
Add new symbolic link method.
2017-11-16 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSArray.m: Fix for bug reported on github by zneak.
2017-11-04 Fred Kiefer <fredkiefer@gmx.de>
* Source/GSLocale.m: Protect against
GSPrivateNativeCStringEncoding() corrupting the return value of
setlocale(). Bug #52331 reported by Jakub Wilk <jwilk@jwilk.net>.
2017-10-26 Stefan Bidigaray <stefanbidi@gmail.com>
* Source/NSDateFormatter.m: Fix how UDateFormat is created. Fixes
bug #52011.
2017-09-06 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSThread.m: Improve handling in case where we try to perform
a method in a thread and it can't be woken (the pipe to awaken the run
loop is full). Instead of blocking forever, give up after a second.
Typically pipe buffers are from 4KB to 64KB so a full buffer almost
certainly indicates that the thread is hung.
2017-08-24 Stefan Bidigaray <stefanbidi@gmail.com>
* Source/NSLocale.m: Fix bug in ISO code methods.
2017-08-21 Richard Frith-Macdonald <rfm@gnu.org>