-
Notifications
You must be signed in to change notification settings - Fork 24
/
Changes
976 lines (763 loc) · 36.3 KB
/
Changes
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
Revision history for {{$dist->name}}
{{$NEXT}}
2.10 2024-12-18 11:11:31 -0700
- Detect V modules according to v.mod files (gh#402)
2.09 2024-08-18 20:33:42 -0600
- Fix bug in complex type detection (gh#396, mauke++)
2.08 2023-05-05 15:48:53 -0600
- Updated non-binding support for Perls to match the policy
of the Perl toolchain (Perls older than 10 years old are
unsupported, with a one-time exception of Perl 5.16). The
intent is not to suddenly drop support for older Perls, but
the FFI-Platypus team may take advantage of features in
supported Perls that will effectively remove compatability
with unsupported Perls.
- Documentation improvements (gh#392)
2.07 2023-03-14 06:59:09 -0600
- Production release identical to 2.06_01
2.06_01 2023-02-27 10:13:25 -0700
- Refactor Alien::FFI fallback mode to delete it as a prereq when it is not
needed instead of adding it when it is. This way the CPAN river rating
for Alien::FFI more closely reflects reality (gh#391)
2.05 2022-11-15 16:59:05 -0700
- Documentation improvements (gh#387, gh#388)
2.04 2022-11-05 07:14:35 -0600
- Documentation improvements (gh#372, gh#378, gh#380, gh#381, gh#382, gh#383,
gh#384, gh#386)
2.03 2022-10-27 21:19:06 -0600
- Add hook for detecting bundled Zig project. You will need to install
FFI::Build::File::Zig to use it. (gh#379)
2.02 2022-10-24 10:43:09 -0600
- The closure method now accepts undef as an argument. It just returns undef
which should be accepted by any function that takes a closure. (gh#376, gh#377)
2.01 2022-08-30 15:37:22 -0600
- Documentation fixes (gh#373)
2.00 2022-08-12 13:58:51 -0600
- Production release identical to 1.91_01
1.91_01 2022-07-05 07:41:07 -0400
- Setting the env environment V variable to a true value now will override the
verbose option on FFI::Build. This allows modules that use it to display verbose
output without having to change the .fbx files. This mirrors the behavior of
how FFI-Platypus itself works. (gh#369)
1.90_02 2022-06-27 08:33:31 -0600
- Documentation updates for API = 2 (gh#340, gh#368)
1.90_01 2022-06-24 11:03:35 -0500
- api = 2 is no longer experimental (gh#365)
1.61_01 2022-06-23 16:16:43 -0500
- Added experimental modules FFI::Build::Plugin and FFI::Build::PluginData (gh#351)
1.60_01 2022-06-23 15:49:42 -0500
- Updated installer
1.59_01 2022-06-19 07:47:49 -0600
- Internal refactor (gh#361)
1.58 2022-06-19 06:19:42 -0600
- TypeParser version 2 accept string(10) as alias for string(10)* (gh#346, gh#359)
1.57 2022-06-15 18:30:29 -0600
- Documentation improvements
1.56 2021-10-27 19:44:37 -0600
- Fixes for very old versions of Mac OS X / Xcode (gh#350)
- Added cxxld method to FFI::Build::Platform (gh#350)
1.55 2021-07-29 10:41:02 -0600
- Production release identical to 1.54_01
1.54_01 2021-07-12 17:05:37 -0600
- FFI::Temp will retry up to 10 times to avoid a race (gh#344, gh#348)
1.53 2021-07-12 12:18:27 -0600
- Documentation improvements (gh#307, gh#347)
1.52 2021-07-01 07:33:44 -0600
- Probe for intmax_t uintmax_t types (gh#341)
1.51 2021-07-01 07:25:38 -0600
- Fix testing bug that was failing on systems with libffi that does
not support variadic functions (ppisar++ gh#323, gh#343, gh#345)
1.50 2021-06-30 08:34:17 -0600
- Production release identical to 1.49_01
1.49_01 2021-06-22 17:07:44 -0600
- float gets promoted to double when used as a varadic argument
(gh#323, gh#338)
1.48_01 2021-06-22 00:32:02 -0600
- Test forks in CI (gh#333, #334, #335)
- Internal refactor of pointer and array input arguments to reduce
duplication (gh#336)
1.47_01 2021-06-21 22:24:40 -0600
- Restore experimental code from 1.45_01
1.46 2021-06-21 22:20:12 -0600
- Hotfix due to testing bug in 1.44 (gh#333)
- This version does not include experimental code from 1.45_01.
1.45_01 2021-06-21 18:23:17 -0600
- Experimental: with api => 2, you can now pass an array reference to
a pointer argument, which is roughly equivalent to an array type with
no size, example: sint[] (gh#227, gh#332)
1.44 2021-06-20 06:50:03 -0600
- Migrate test suite to Test::V0 (gh#327)
- Use parent instead of base in documentation and in code (gh#239 jjatria++)
- Improved consistency of examples and documentation (gh#328, gh#330, jjatria++)
1.43 2021-03-17 09:46:40 -0600
- Fix test hang on cygwin (gh#320, gh#321)
1.42 2021-03-15 05:42:23 -0600
- Production release identical to 1.41_01
1.41_01 2021-03-14 12:49:38 -0600
- Adjusted test introduced in 1.40_01 to not rely on returning
a record-value for platforms that do not support that. (gh#318, gh#319)
1.40_01 2021-03-12 13:08:41 -0700
- Add support for closures returning records pass-by-value
if they do not include string pointers (gh#313, gh#315)
1.39_01 2021-03-09 17:38:37 -0700
- Fix bug where closure ABI wasn't being used for non-default
ABIs (gh#313, gh#314)
- Add support for closures taking records pass-by-value (gh#312)
1.38 2021-03-08 17:13:15 -0700
- Production release identical to 1.37_01
1.37_01 2021-03-06 14:03:35 -0700
- Document the .fbx interface for specifying compiler / linker flags or
using Aliens with bundled C code in FFI::Platypus::Bundle
(gh#221, gh#306)
1.36_01 2021-03-02 17:32:03 -0700
- Improved the reliability of ABI detection on some platforms
(gh#285, gh#301, gh#302)
1.35_01 2021-03-01 16:02:07 -0700
- Favor the Microsoft strdup over the bundled copy if found as _strdup
which is what it is called now (gh#299).
- Added FFI::Platypus::Type::WideString type plugin
(IKEGAMI++ gh#291, gh#292, gh#299)
1.34 2020-10-23 09:04:46 -0600
- Fixed bug in in record meta object which expressed itself on at least
some platforms (gh#287, gh#288)
1.33 2020-09-28 10:47:26 -0600
- FFI::Platypus::Declare is no longer part of this distribution. It is
now available from FFI-Platypus-Declare instead. It has already
been discouraged for quite some time. (gh#285)
- Fix bug where bundled .so name could incorrectly get double colons (::)
in the name in development mode only. This is probably only a problem
on Windows. (gh#284)
1.32 2020-09-21 04:25:13 -0600
- Fix unsupported Perl tests.
Fixes code that refuse to install on 5.10.0t (threads) (gh#275, gh#280)
1.31 2020-07-01 05:28:10 -0600
- Refuse to install on very old versions of Perl 5.8.1, 5.8.2, 5.8.3 and
5.10.0t (threads) (Gh#275)
- Move to new GH org PerlFFI (old org was Perl5-FFI, and will remain to
keep URL redirection). The new URL is
https://github.com/PerlFFI/FFI-Platypus
1.30 2020-06-16 06:51:53 -0600
- Dropping support for Perl 5.8.1, 5.8.2 and 5.8.3, and the threaded version
of 5.10.0. For now Platypus will install on these versions of Perl, but a
warning will be issued, along with a 45s sleep at configure time and a 180s
sleep at test time. Please upgrade to 5.8.4 (or preferrably 5.32).
Starting July 1st, Platypus will refuse to install on these elderly Perls.
(gh#271, gh#272)
1.29 2020-06-06 08:40:10 -0600
- For window (from FFI::Platypus::Buffer), if $size is omitted then
it will assumed to be a C string and computed using strlen (gh#270)
1.28 2020-05-20 01:43:09 -0600
- Production release identical to 1.27_01
1.27_01 2020-05-17 18:01:37 -0600
- Add strcpy to FFI::Platypus::Memory (gh#265)
- Add window to FFI::Platypus::Buffer (gh#266, gh#267)
1.26 2020-05-07 04:59:17 -0600
- The return type for the function method can now be omitted and
defaults to 'void' (gh#262, gh#263)
- The attach_cast method can now take a wrapper function (gh#261, gh#264)
1.25 2020-05-05 19:40:02 -0600
- Fixed bug where return type uint64* was being returned as
sint64* (gh#258, gh#259)
1.24 2020-05-02 16:59:34 -0600
- Add kindof method (gh#243, gh#254)
- Add countof method (gh#243, gh#254)
- Add unitof method (gh#245, gh#254)
- Add def method (gh#244, gh#248, gh#254)
- Add hook load_custom_types to the language plugins that allows
them to define custom types (gh#253)
1.23_01 2020-05-01 11:13:59 -0600
- Custom record arguments are kept around for the lifetime of the
function call, meaning they don't have to be explicitly kept by
the custom code wrapper as long as they aren't used after the
function returns (gh#236, gh#247).
- This completes support for custom record types. This is a
release candidate.
1.22_01 2020-05-01 08:16:25 -0600
- Fix test on MSWin32 + older libffi where returning record values
doesn't work (introduced in 1.20_01, gh#250)
1.21_01 2020-04-29 19:10:59 -0600
- Diagnostic release.
1.20_01 2020-04-29 06:45:11 -0600
- Return record custom record value (gh#214, gh#215, gh#235, gh#238, gh#245)
1.19_01 2020-04-27 12:38:43 -0600
- Diagnostic release.
1.18_01 2020-04-19 10:17:52 -0600
- Return pointer to custom record (gh#214, gh#215, gh#235, gh#238)
1.17_01 2020-04-18 09:04:02 -0600
- Silence (probably harmless) clang warning introduced in 1.12_01
(gh#237, gh#239)
1.16_01 2020-04-18 10:10:37 -0400
- Initial support for custom records. Returning custom records
(either via pointer or by reference) is excluded, but should
be added soon (gh#214, gh#215, gh#235)
1.15_01 2020-04-17 10:34:13 -0600
- Internal refactor (gh#214)
1.14_01 2020-04-17 09:14:25 -0600
- Experimental: with api => 2, a return value of NULL is
translated to undef instead of empty list (gh#234, gh#231)
1.12_01 2020-04-17 10:35:51 -0400
- Added grow and set_used_length functions to
FFI::Platypus::Buffer (djerius++ gh#225)
1.11 2020-04-16 04:07:34 -0600
- Add api method (gh#233)
- On Visual C++ Perl detect libffi using Win32::Vcpkg, if
available (gh#229)
- Simplified internal handling of 64 bit integers for
32 and 64 bit arch (gh#228)
1.10 2020-02-05 16:39:51 -0700
- On OS X, check if homebrew + libffi is installed and use
that instead of falling back on Alien::FFI (libffi isn't
installed by homebrew in a way that it can be found by
without specifically looking for it).
- Die with an appropriate diagnostic if there is a syntax or
runtime error in an .fbx file (FFI::Build).
(djerius++ gh#223)
1.09 2020-01-18 13:41:56 -0700
- Production release identical to 1.08_01
1.08_01 2020-01-17 19:39:21 -0700
- Fix warning on some versions of windows (gh#217, gh#218)
1.07 2019-12-28 08:44:36 -0700
- Fix bug in variadic argument count (gh#210, gh#211)
1.06 2019-12-14 07:49:54 -0700
- Visual C++ Perl build probe for ssize_t (gh#208, gh#209)
1.05 2019-12-13 09:27:50 -0700
- ffi_platypus_bundle.h provides an EXPORT macro which allows
you to decorate functions/data for export under Visual C++ Perl (gh#207)
- ffi_pl_bundle_init, ffi_pl_bundle_constant and ffi_pl_bundle_fini
are now properly marked as EXPORT. No code changes needed as long
as you are using the header file (gh#207)
1.04_01 2019-12-12 19:05:54 -0700
- Some additional testing fixes for Visual C++ Perl build (gh#206)
1.03_01 2019-12-11 20:53:40 -0700
- Restore support for Visual C++ Perl build (gh#202)
- C++ support on Visual C++ Perl is not supported at this time (gh#203)
1.02 2019-12-09 03:07:41 -0700
- FFI::Build is no longer described as "alpha"
- Documentation fixes.
1.01 2019-11-16 07:16:20 -0700
- Documentation fixes only (gh#198, gh#199, gh#200)
1.00 2019-11-15 13:46:15 -0500
- Production release identical to 0.99_06
0.99_06 2019-11-12 21:08:23 -0500
- Detect Rust or Go modules according to Cargo.toml or go.mod files (gh#197)
0.99_05 2019-10-30 19:25:02 -0600
- Add FFI::Build support for build_all method (gh#195)
0.99_03 2019-10-24 10:46:02 -0700
- Documentation
0.99_02 2019-10-14 16:16:16 -0600
- api = 1 is no longer experimental (gh#193)
0.99_01 2019-10-14 14:39:18 -0600
- Convert documentation from api => 0 (implicit) to api => 1 (explicit)
- Improved documentation (gh#181, gh#184)
0.98 2019-10-14 13:18:02 -0600
- Production release identical to 0.97_05
0.97_05 2019-10-12 13:09:12 -0600
- Fixed several memory leaks on some return types and complex type
arguments (gh#190, gh#191)
0.97_04 2019-10-05 12:31:32 -0600
- pointer is no longer an alias for opaque with api => 1 (gh#189)
- Added several reserved words for the type parser when api => 1 (gh#189)
0.97_03 2019-09-25 18:03:13 -0600
- FFI::Platypus::Record has a record_layout_1 function which
uses api => 1 by default. (gh#187)
0.97_02 2019-09-20 04:03:59 -0600
- FFI::Platypus::Record record_layout may now take FFI::Platypus
constructor arguments as a array reference as the first argument
(gh#185)
0.97_01 2019-09-18 20:56:59 -0600
- Pre-compute cast functions when they are created to save time each time
they are called (gh#178, #179)
- sizeof and alignof can now be used as class methods (gh#183)
0.96 2019-08-19 18:33:58 -0400
- Production release identical to 0.95_11
0.95_11 2019-08-19 09:41:56 -0400
- Documentation fixes (hakonhagland++ gh#173)
- Increased Perl::Critic criticism and associated fixes (gh#172)
0.95_10 2019-08-16 16:14:54 -0400
- Detect bad forks.pm (gh#170)
0.95_09 2019-08-15 10:37:41 -0400
- Daignostic release
0.95_08 2019-08-14 09:18:10 -0400
- Document constant interface (see FFI::Platypus::Constant) (gh#169)
0.95_07 2019-08-13 13:38:30 -0400
- Minor tweak to bundle interface: do not create fbx.json file when
running on-demand (gh#167)
- Document bundle interface (see FFI::Platypus::Bundle) (gh#160, gh#168)
0.95_06 2019-08-03 08:51:46 -0400
- Platypus now passes the api version (if > 0) into language plugins
class native_type_map method (gh#165, gh#166)
0.95_05 2019-08-01 16:18:41 -0400
- Under api = 1, a warning will be issued when Platypus tries to load
a file that is not a dnyamic library. Previously, and under api = 0
this warning was only issued if the environment variable
FFI_PLATYPUS_DLERROR is set to a true value (gh#161, gh#163)
0.95_04 2019-07-31 21:18:30 -0400
- New interface for bundling code with dist (see bundle method)
experimental, requires api = 1 (gh#160, gh#162)
- Bundle API provides a way to define Perl constants from C
(gh#138)
0.95_03 2019-07-29 19:21:24 -0400
- Remove build dependent strings from deployment
(gh#104, gh#110, gh#157, gh#159)
0.95_02 2019-07-25 17:15:09 -0400
- Fix memory leak related to array in the case of bad type error (gh#154)
- Fix compiler warnings in record meta module (gh#153, gh155)
- More consistent use of temp directories to work around noexec on /tmp
(gh#156, gh#158)
0.95_01 2019-07-23 22:19:14 -0400
- Add support for "object" types. (gh#49, gh#89, gh#151)
- Fixed bug where 64 bit integer types could be truncated in a
cast on 32 bit platform (gh#151)
- You can now decorate record value types with * to get
a record type using type parse 1 (gh#150)
- Add support for complex arrays on platforms where
complex types are supported (gh#89, gh#152)
0.94 2019-07-23 09:53:46 -0400
- Production release identical to 0.93_03
0.93_03 2019-07-22 15:02:05 -0400
- Reclaim some memory waste introduced in 0.93_01 (gh#149)
0.93_02 2019-07-18 10:03:01 -0400
- Fix complex test on 32bit
0.93_01 2019-07-17 20:21:47 -0400
- Add support for returning records pass-by-value (gh#89, gh#147)
- Add enum and senum (signed enum) types (gh#146)
0.92 2019-07-17 18:16:40 -0400
- Production release identical to 0.91_02
0.91_02 2019-07-16 19:31:40 -0400
- Documentation improvements. (gh#139, gh#145, et. al)
- Fixed minor testing error introduced in 0.91_01 (gh#143, gh#144)
0.91_01 2019-07-14 09:32:13 -0400
- Add support for variadic functions (gh#136, gh#141)
- Include Type Parser version 1. This can be activated using
the api => 1 when creating a FFI::Platypus instance (gh#135)
- Usage of Type Parser version 1 is experimental and will
issue a warning until FFI::Platypus 1.00 is released (gh#135)
- Added support for pass-by-value records (gh#57,gh#92,gh#135)
this requires Type Parser version 1
- Allow decoration of aliases of basic types (gh#135, gh#135)
this requires Type Parser version 1
- Fix bug where Math::LongDouble and Math::Complex detection
wasn't being made for array and pointers of longdouble,
complex_float and complex_double types. (gh#135)
- For functions: allow a single 'void' argument type to indicate
an empty list of arguments (a la old C style). The 'void'
type is otherwise now illegal as an argument type (ie when
there is more than one argument) and will throw an exception
when the function is created. Previously a warning would
be issued when the funtion was called. (gh#140, gh#142)
0.90 2019-07-01 09:47:31 -0400
- Documentation improvements (gh#137, et. al.)
0.89_01 2019-06-24 08:33:05 -0400
- Fixed bug where prototypes to attach were sometimes being
ignored.
- Add sub_ref method to FFI::Platypus::Function (gh#133)
- Better file/line number diagnostics for croak inside a
wrapper (gh#129, gh#132)
0.88 2019-06-19 06:56:57 -0400
- Add mangler attribute for FFI::Platypus (gh#128)
0.87 2019-04-23 08:25:35 -0400
- Add probe for intptr_t and uintptr_t types (gh#123)
- You may now use the ALIEN_INSTALL_TYPE environment
to force using Alien::FFI (gh#121)
- Documentation improvements (gh#122 manwar++ gh#120 ppisar++)
0.86 2019-03-02 16:42:12 -0500
- Production release identical to 0.85_01
0.85_01 2019-03-01 20:38:22 -0500
- Fix configure bug that misconfigured Perls with 32bit IVs
resulting in truncated 64bit values. (gh#117, gh#118).
This was a regression, probably introduced around 0.72
or so. The test t/gh117.t has been added to avoid a
recurrence of this regression.
0.84 2019-02-15 15:26:23 -0500
- FFI::Build sets @rpath on libraries that it builds
on OS X.
0.83 2019-02-12 14:05:04 -0500
- Fix warning in FFI::Build when verbose off
- Allow arry file spec for FFI::Buuild source method
- Added scalar_to_pointer to FFI::Platypus::Buffer
0.82 2019-02-10 10:34:57 -0500
- Production release identical to 0.81_04
0.81_04 2019-02-08 14:49:20 -0500
- Diagnostic release
0.81_02 2019-02-05 12:19:50 -0500
- Diagnostic release
0.81_01 2019-02-04 11:51:52 -0500
- Diagnostic release
0.80 2019-02-01 15:36:50 -0500
- Fix incompatibility with parallel bsd make
0.79 2019-01-31 20:58:07 -0500
- Fix probe runner builder bug (gh#112, gh#113)
0.78 2019-01-30 10:28:22 -0500
- Production release identical to 0.77_03
0.77_03 2019-01-29 21:44:29 -0500
- Remove Java gcj examples. The gcj compiler has been deprecated,
unmaintained, and removed from the gcc collection for quite a while
now.
- Fix problem diagnostic window on Windows during probe
0.77_02 2019-01-29 11:30:56 -0500
- Fix regressions in 0.77_01
0.77_01 2019-01-28 15:47:07 -0500
- Honor compiler and linker flag overrides provided on the command-line
for FFI::Probe::Runner::Builder, make ffi and make ffi-test (gh#104)
0.76_01 2019-01-20 20:14:45 -0500
- function method can now take a wrapper code reference as its last
argument in the same way as attach.
0.75_01 2019-01-19 04:45:19 -0500
- Add strndup to FFI::Platypus::Memory
0.74 2019-01-19 04:42:22 -0500
- Production release identical to 0.73_01
0.73_01 2019-01-13 18:31:33 -0500
- Remove dependency on Win32::ErrorMode on Windows
0.72_01 2019-01-11 22:17:11 -0500
- Remove dependency on Config::AutoConf
0.71_01 2019-01-10 23:29:06 -0500
- Merge FFI-Build into this distribution
- Add FFI::Probe
0.70_01 2019-01-10 15:34:57 -0500
- prereq fix: IPC::Cmd as a configure requires
since it doesn't come with Perl 5.8.x
0.69_01 2019-01-09 15:59:43 -0500
- require Alien::FFI in fallback mode
0.68_01 2019-01-05 21:12:47 -0500
- Improve platform probing of complex type
- Allow override of platform probing using FFI_PLATYPUS_PROBE_OVERRIDE
0.67_01 2019-01-05 09:16:22 -0500
- Better support for complex types: pointers to complex types and complex
type and pointers to complex as return value
0.66_01 2019-01-04 20:16:59 -0500
- EXPERIMENTAL ExtUtils::MakeMaker fixes for dynamic prereqs on windows
- restore FFI_PLATYPUS_DEBUG_FAKE32
- restore FFI_PLATYPUS_NO_ALLOCA
0.65_01 2019-01-04 13:38:58 -0500
- EXPERIMENTAL ExtUtils::MakeMaker fixes for parallel and freebsd build
0.64_01 2019-01-03 03:16:57 -0500
- EXPERIMENTAL ExtUtils::MakeMaker fixes for MSWin32 / cygwin
0.63_01 2019-01-02 11:23:48 -0500
- EXPERIMENTAL ExtUtils::MakeMaker release
0.62_01 2019-01-01 04:23:23 -0500
- New type: array of string "string [x]" and "string []" are supported
- NULL terminated arrays are supported as return types for string and opaque
arrays "opaque []" and "string []"
0.61_01 2018-12-31 19:56:20 -0500
- New type: pointers to string "string *" are supported.
- FFI::Platypus::Type::StringPointer is now deprecated.
0.60_01 2018-12-30 14:55:15 -0500
- sticky/unstick functions can safely be called multiple times
- Removed some extra lookups from closure calls, should be faster now.
0.59 2018-12-16 16:33:37 -0700
- Workaround for possibly buggy pack/unpack on Perl 5.8.8 gh#91
Fixes FFI::Platypus::Type::StringArray
0.58 2018-11-20 14:31:10 -0500
- Add unstick method to FFI::Platypus::Closure
0.57_01 2018-11-04 15:36:33 -0500
- Major refactor of the internals of the type system. The API is
the same but some type meta-data (which was never guaranteed
to stay the same) may have changed.
* The internal representation of types is much smaller (4 bytes
for simple types), which can save a lot of memory if you have
lots of types.
* Fixed width strings example: `string(32)` are now internally
treated the same as a record with no class `record(32)`.
Previously these were separate types but worked identically,
this removes duplicate code.
* Fixed width string arguments to a closure are now read-only,
Usually you should be copying these arguments anyway.
* Removed the internal type "exotic float" which includes
`long double`, `complex float` and `complex double`. These are
now grouped internally with other scalar types.
- Merge FFI::Platypus::Type::StringArray into this distribution
0.56 2018-09-03 09:17:42 -0400
- lib method accepts code reference which will be called immediately
and results added to lib list
0.55 2018-08-29 10:37:36 -0400
- Production release identical to 0.54_03
0.54_03 2018-08-28 10:46:04 -0400
- Additional test diagnostics.
0.54_02 2018-08-28 05:30:04 -0400
- record as closure argument is now read-only. This makes
sense since such records are actually copies. For when
you need a non-copy use an opaque type instead. This allows
records with rw strings (although they will be ro in the
closure).
0.54_01 2018-08-16 03:27:31 -0400
- Experimental: allow record as closure argument
Records with string_rw are not supported, and
will likely crash your script if you try to use
them. Support for such records is probably not in
the cards, but a future version may disallow them
to avoid crashes.
- Closure objects now have a sticky method, similar to what
is already available in the discouraged FFI::Platypus::Declare
interface
0.53 2018-08-15 20:38:29 -0400
- Production release identical to 0.52_04
0.52_04 2018-08-15 05:52:15 -0400
- Work-around for Strawberry Perl 5.14.4 unicode bug (see gh#85)
0.52_03 2018-08-14 15:28:19 -0400
- Major refactoring of test suite
0.52_02 2018-08-14 08:05:07 -0400
- Added standard RTLD_ constants to FFI::Platypus::DL
- Fixed long standing but till now unused bug on Windows where dlopen was
returning a handle for libraries that weren't actually being loaded.
0.52_01 2018-08-13 20:39:32 -0400
- Testing: moved libtest to t/ffi, using the same convention as FFI::Build
- Added FFI::Platypus::DL. Previously this had been (under a different
name) a private interface to libdl used by FFI::Platypus under the covers.
On Windows it is an emulation layer over the native equivalents.
0.51 2018-08-09 03:14:15 -0400
- update the package method to work with FFI-Build
0.50 2018-06-01 07:58:33 -0400
- Additional diagnostics
0.49_05 2018-05-29 12:44:45 -0400
- Require Alien::FFI 0.20 for bugfixes
0.49_04 2018-05-27 07:36:58 -0400
- Additional diagnostics
- Added a FAQ section. Some other minor documentation enhancements.
0.49_03 2018-05-19 10:09:15 -0400
- The previous version contained build files that would break the install
unless you were building on my machine. This is what the previous
version should have been.
0.49_02 2018-05-18 22:08:43 -0400
- Fix version mismatch error with XS
0.49_01 2018-05-18 16:16:13 -0400
- Move the source repository for this project into the GitHub org Perl5-FFI
The new URL is https://github.org/Perl5-FFI/FFI-Platypus
- Remove dependency on JSON::PP, use Data::Dumper for build configuration.
This may improve startup performance.
0.48 2018-02-20 09:37:32 -0500
- setting lib => undef is now the same as setting it to [undef] in the
constructor (previously lib => undef was ignored)
0.47 2017-03-23 18:26:01 -0400
- Fix installer bug where My::ShareConfig was accidentally declared as a
prereq
0.46 2017-03-23 15:47:29 -0400
- Remove some internal use of Module::Build with the intent of one day
migrating to EUMM or some other installer
- Remove Module::Build::FFI. It now has its own distribution.
- Prefix the lang attribute with an equal '=' sign to indicate a fully
qualified class name instead of one under FFI::Platypus::Lang
0.45 2016-10-24 07:59:57 -0400
- Remove check for Threaded Perl / OpenBSD, as the issue there has been
reported fixed
0.44 2016-10-20 14:31:23 -0400
- You can now control which implementation of strdup FFI::Platypus::Memory
uses via the FFI_PLATYPUS_MEMORY_STRDUP_IMPL environment variable.
0.43 2016-07-08 03:28:57 -0400
- Numerous fixes for systems with 64bit big-endian arch
(previously only 32bit big-endian had been tested)
- Officially discourage the use of FFI::Platypus::Declare
0.42 2016-05-06 16:31:01 -0400
- Support for MSYS2
0.41 2016-04-09 16:03:07 -0400
- For the return value undef can be passed in to mean 'void'.
- Fixed installer bug where ABI probe would silently fail if /tmp
was mounted noexec
- Avoid unnecessary downgrade on when Perl is compiled to use longdouble
0.40 2015-08-29 08:45:19 -0400
- Closure declarations ignore white space between () and ->
0.39 2015-08-24 03:23:10 -0400
- Fixed spurious warning: auto loading of record class (via
FFI::Platypus::Record) was ALWAYS warning, when it should have only been
warning on load failure.
0.38 2015-08-13 17:13:07 -0400
- closure method now comes with a more useful diagnostic thinks to
Carp::croak
- Added a check for standard C headers. This seems to help the configure
stage find ptrdiff_t, which was frequently not detected correctly
(at least on Linux).
- Improved thread safety by using MY_CXT for some very infrequently used
global variables.
- Added IRC meta data information for metacpan.org. Please join us at
#native on irc.perl.org!
- Many minor documentation corrections and tweaks. Most significant is
that Convert::Binary::C can now be recommended as it is once again
properly maintained.
- Added tests for threads and forks. If these tests fail in your environment
please let me know!
0.37 2015-05-29 14:28:21 -0400
- Added compatibility back in for older version of constant
(newer one is not available on CPAN yet)
0.36 2015-05-29 13:40:32 -0400
- Explicitly require constant pragma version 1.32
0.35 2015-05-29 12:06:39 -0400
- FFI::Platypus::Record uses constant to create size of alignment constants
instead of creating them with a sub reference (this usage was deprecated
in Perl 5.22)
0.34 2015-05-07 09:27:04 -0400
- Require Alien::FFI which is more reliable at configure time on some
platforms
0.33 2015-03-23 21:55:02 -0400
- Additional fix for Microsoft Visual C++ that didn't get folded into
the previous release.
- Fixed segfault during global destruction (gh#53)
0.32 2015-03-18 13:02:53 -0400
- Make sure -L flags from Alien::FFI come before those in perl Config
For more reliable builds
- Support for Microsoft Visual C++ (you will probably also need
Alien::FFI 0.09 or beter)
0.31 2015-02-26 13:41:23 -0500
- Fix bug involving wide custom arguments
"wide" meaning where a single Perl argument is translated
into multiple machine code arguments. (pipcet++ gh#43)
0.30 2015-02-25 17:50:54 -0500
- You can now pass an opaque in place of a closure type (pipcet++ gh#40,gh#41)
- FFI closures are now cached and can be reused if the same closure is passed
repeatedly (pipcet++ gh#40,gh#42)
- Passing non-reference to scalar as a pointer argument will now issue a
warning (gh#5)
0.29 2015-02-24 08:50:34 -0500
- Delayed loading of Win32::ErrorMode to avoid build prereq failure on Windows
0.28 2015-02-23 14:01:54 -0500
- Fix Win32 probe prereq on non-Strawberry 5.20.x+
- Fix for Solaris cc
0.27 2015-02-22 11:17:05 -0500
- Interface to alternate ABIs / calling conventions
- Added abi method
- Added abis class method
- Simplify Win32 probe
- Added FFI::Platypus::Lang::Win32 which provides data types used by
the Windows API. Takes care of subtle differences between
Win32 and Win64.
- Fixed bugs specific to 5.8.x
- Language plugins can now specify an ABI with abi class method
- Default ABI for FFI::Platypus::Lang::Win32 is stdcall on 32bit windows
0.26 2015-02-18 17:47:43 -0500
- Added support for pointers to longdouble (in C "long double *") type
- Added support for array of longdouble (in C "long double []") type
- Added tied array interface for record array members (see
FFI::Platypus::Record::TieArray) Marked as EXPERIMENTAL
- Array members of records can now be accessed (set/get) by element
- Array members of records types are now documented (see
FFI::Platypus::Record)
- Bugfix: array wasn't being updated on return for variable length
array types
- Should now build with an Alien::FFI that was built with ALIEN_FORCE=1
0.25 2015-02-16 20:18:41 -0500
- Probe for proper long double support instead of trusting ffi.h
- This disables long double support on cygwin, which does not seem to
work, at least in so far as it seems to work on other platforms
patches to prove otherwise are welcome.
0.24 2015-02-16 15:38:58 -0500
- Fixed Windows / Strawberry configuration issues
0.23 2015-02-16 05:44:39 -0500
- Support for longdouble (in C "long double") type.
- Support for complex_float (in C "float complex") type
- Support for complex_double (in C "double complex") type
- Fixes for Big Endian architectures (tested on Linux PowerPC)
0.22 2015-02-12 07:47:32 -0500
- Variable length arrays
- More recent version of Config::AutoConf required in the configure step
(gh#33 zmughal)
- Documentation improvements and additional examples, including a
crazy Java one
0.21 2015-02-09 06:23:03 -0500
- Added FFI::Platypus#alignof method
- Added FFI::Platypus::Record module
- Added fixed length strings example: string(10)
- Added ro and rw trait for strings
0.20 2015-02-05 14:06:11 -0500
- Added optional wrapper argument to FFI::Platypus#attach
and FFI::Platypus::Declare#attach
- Added FFI::Platypus#find_lib method
- FFI::CheckLib is now a runtime requirement for Platypus
- Bumped Alien::FFI requirement to 0.06
0.19 2015-02-03 13:34:53 -0500
- Accept additional extensions, in addition to dlext
Example: on OS X both .bundle and .dylib can be used
Example: although arguably wrong, on cygwin sometimes .so is used
- Added Module::Build::FFI->ffi_dlext class method
0.18 2015-01-30 15:22:07 -0500
- Improved support for C++ in Module::Build::FFI
- Module::Build::FFI can now be subclassed to support foreign
languages other than C and C++. See Module::Build::FFI::Rust as an
example.
- Added a hook to allow different names for native types. See
FFI::Platypus::Lang::Rust for an example.
- Added a hook to allow mangling of symbol (function) names. See
FFI::Platypus::Lang::CPP for an example with C++
- Module::Build::FFI#ffi_include_dir can now be an array reference
- Module::Build::FFI#ffi_source_dir can now be an array reference
- Module::Build::FFI#ffi_libtest_dir can now be an array reference
- Module::Build::FFI will build assembly source files (with .s
extensions) in the libtest and ffi directories
0.17 2015-01-28 11:11:02 -0500
- Allow integer and floating point type default to 0 when not provided
without warning
- You can now take the sizeof a custom type (it will be the size of
the native type that is actually passed on the C argument stack).
- Sizeof should be faster now as it doesn't look up the other meta
information or create a hash to contain it
- Added record type see FFI::Platypus::Type#Records
- Added bool as a primitive type.
0.16 2015-01-23 17:31:00 -0500
- Bumping Alien::FFI version requirement up to 0.04
Thus indirectly Alien::Base to 0.07
Believe this may fix a cpan testers failure that I am seeing
0.15 2015-01-23 16:46:27 -0500
- add FFI::Platypus#ignore_not_found attribute
- add FFI::Platypus#package method
- Module::Build::FFI was moved into this distribution
(formerly distributed as part of FFI-Util)
- added aliases: uchar, ushort, uint and ulong
0.14 2015-01-22 08:19:42 -0500
- Fixed some broken links in the documentation
0.12 2015-01-21 23:22:16 -0500
- First CPAN release
- Improved documentation
- Functionally identically to 0.11
0.11 2015-01-21 16:33:58 -0500
- Release candidate 2
- arguments are available during custom return type even when
platform does not support alloca
- More documentation and examples
- FFI::Platypus::API now use prototypes so you can skip the ()
0.10 2015-01-20 04:06:17 -0500
- Release candidate 1
- Added custom Types API (see FFI::Platypus::API)
- Added String Pointer custom type (FFI::Platypus::Type::StringPointer)
- Added Pointer / Size Buffer custom type
(FFI::Platypus::Type::PointerSizeBuffer)
0.09 2015-01-19 03:01:48 -0500
- Third beta
- moved cast and sizeof from FFI::Platypus::Memory
into FFI::Platypus methods.
- cast and size of functions for FFI::Platypus::Declare
- attach_cast for faster casting
- renamed FFI::Platypus::Declare#function to
FFI::Platypus::Declare#attach to more closely match
the OO interface
- adjusted custom type interface
- renamed ffi_to_perl native_to_perl
- renamed perl_to_ffi perl_to_native
- type argument is now part of the hash and is called
native_type
0.08 2015-01-16 10:55:14 -0500
- Second beta
- add FFI::Platypus::Buffer
stole the buffer functions from FFI::Util
can do this with cast, but cast is slow
- Fixed bug where cast didn't work with closures.
- closure data now free'd when it the closure
goes out of scope (GH#4)
0.07 2015-01-15 18:53:45 -0500
- First (mostly complete) beta
- workaround some issues with closures
- much more comprehensive documentation
0.06 2015-01-14 17:13:57 -0500
- fix typo in last version that broke 32 bit Perls. oops.
0.05 2015-01-14 17:04:25 -0500
- Forth (and mostly complete) alpha
- custom types written in Perl are supported.
- bug fixes for 32 bit Perls (with compilers that support int64_t)
0.04 2015-01-13 11:14:54 -0500
- Third (and incomplete) alpha
- all basic types supported everywhere
- closures do not support non basic types or returning strings from a closure
0.03 2015-01-09 15:40:14 -0500
- Second (and incomplete) alpha
- closure support added (only integer arguments implmented).
- memory leak related to closures will be fixed in the next alpha.
0.02 2015-01-07 17:40:35 -0500
- Early (and incomplete) alpha
0.01 2015-01-07 17:21:27 -0500
- Original (and incompatible) prototype