forked from eddelbuettel/rprotobuf
/
ChangeLog
2268 lines (1665 loc) · 84.7 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
2016-07-19 Craig Radcliffe <chradcliffe@gmail.com>
* configure.in: Make sure that LDFLAGS and CXXFLAGS are preserved
from the environment when writing to src/Makevars
2016-07-10 Dirk Eddelbuettel <edd@debian.org>
* DESCRIPTION (Version): Release 0.4.4
* vignettes/RProtoBuf-paper.Rnw: Added, based on pending JSS publication
* vignettes/RProtoBuf-paper.bib: Ditto
* vignettes/figures/*: Ditto
* vignettes/proto/*: Ditto
* vignettes/jss.cls: Ditto
* vignettes/jss.bst: Ditto
* inst/CITATION: Update to version provided by JSS
* README.md: Updated to use of canonical URLs for CRAN
2016-05-19 Dirk Eddelbuettel <edd@debian.org>
* vignettes/RProtoBuf-unitTests.Rnw: Do not write unit test results to
/tmp per request from CRAN to not write outside test directories
2016-04-26 Dirk Eddelbuettel <edd@debian.org>
* CONTRIBUTING.md: New workflow document
2016-04-25 Jeroen Ooms <jeroenooms@gmail.com>
* R/rexp_obj.R: Fix zero-length edge case
* R/serialize_pb.R: Improved documentation
* man/serialize_pb.Rd: Ditto
2016-04-21 Jeroen Ooms <jeroenooms@gmail.com>
* src/Makevars.win: Accomodate new Windows toolchain
2016-04-21 Jonathon Love <jon@thon.cc>
* inst/unitTests/runit.addressbook.R: Set to mode 0644
* inst/unitTests/runit.bytes.R: Ditto
2016-02-11 Dirk Eddelbuettel <edd@debian.org>
* DESCRIPTION (License): Set to GPL (>= 2) which is what the code
files with actual copyright and license headers had all along
* README.md: Idem
2015-08-25 Dirk Eddelbuettel <edd@debian.org>
* DESCRIPTION (Version): Release 0.4.3
2015-08-24 Dirk Eddelbuettel <edd@debian.org>
* README.md: Additional badges
* inst/unitTests/runit.FieldDescriptor.R: Added msg field
2015-08-23 Dirk Eddelbuettel <edd@debian.org>
* tools/winlibs.R: Actually tests against R 3.3.0
2015-08-23 Jeroen Ooms <jeroenooms@gmail.com>
* tools/winlibs.R: Test for R 3.3.0 on Windows
2015-08-23 Dirk Eddelbuettel <edd@debian.org>
* NAMESPACE: Added imports for as and is from methods
* DESCRIPTION: Removed several of the (largely redundant) URLs, and
minor edits in Description: to update to current standard
* man/RProtoBuf-package.Rd: Updated, removed old URLs.
* .travis.yml: Accelerate by installing dependencies via apt-get
2015-08-05 Balasubramanian Narasimhan <b.naras@gmail.com>
* NAMESPACE: Added import for show from methods package
2015-07-08 Jeroen Ooms <jeroenooms@gmail.com>
* tools/winlibs.R: Update URL to windows build of the required
ProtoBuf library
2015-01-16 Dirk Eddelbuettel <edd@debian.org>
* DESCRIPTION: Minor edits
2015-01-16 Jeroen Ooms <jeroenooms@gmail.com>
* DESCRIPTION: Make SystemRequirements: more explicit
2014-12-11 Jeroen Ooms <jeroenooms@gmail.com>
* DESCRIPTION: Update URLs
2014-12-10 Dirk Eddelbuettel <edd@debian.org>
* DESCRIPTION (Version): Release 0.4.2
2014-12-10 Jeroen Ooms <jeroenooms@gmail.com>
* src/Makevars.win: Use new ProtoBuf 2.6.1 builds on Windows
* tools/winlibs.R: Helper function used for Windows build
* inst/unitTests/runit.int64.R: Fixed a windows bug
2014-12-08 Jeroen Ooms <jeroenooms@gmail.com>
* inst/proto/rexp.proto: Add a new type 'native'
* R/rexp_obj.R: Modify (un)serialize_pb to serialize() non-data types
as 'native' types
2014-12-04 Dirk Eddelbuettel <edd@debian.org>
* .travis.yml: Added after move to GitHub
* README.md: Added minimal first version with Travis badge
2014-12-04 Murray Stokely <mstokely@google.com>
* inst/unitTests/runit.int64.R: restore options on exit from this
function to make the test indempotent.
2014-12-01 Dirk Eddelbuettel <edd@debian.org>
* man/Message-class.Rd: Completed documentation
* man/Descriptor-class.Rd: Ditto
* man/EnumDescriptor-class.Rd: Ditto
2014-12-01 Murray Stokely <mstokely@google.com>
* R/wrapper_ZeroCopyInputStream.R: Avoid file.create for getting
absolute path of a temporary file name (JSS reviewer feedback)
* R/serialize.R: Idem.
2014-11-26 Murray Stokely <mstokely@google.com>
Address feedback from anonymous reviewer for JSS to make this
package more complete:
* inst/unitTests/runit.serialize_pb.R: Add a test to verify that
we can serialize all 100+ built-in datasets with R and get an
identical object to the original once unserialized.
* R/rexp_obj.R: Serialize function, language, and environment
objects by just falling back to R's native serialization and using
raw bytes to store them. This at least lets us round-trip encode
all native R types, even though these three only make sense in the
context of R. Greatly simplify the can_serialize_pb function.
* inst/proto/rexp.proto: Add support for function, language, and
environment objects.
2014-11-25 Dirk Eddelbuettel <edd@debian.org>
* vignettes/RProtoBuf-intro.Rnw: Applied a few corrections spotted by
Tim Hesterberg and communicated in email.
2014-11-24 Murray Stokely <mstokely@google.com>
* inst/unitTests/runit.golden.message.R: remove trailing
whitespace.
* man/P.Rd: Improve output of example.
2014-09-15 Murray Stokely <mstokely@google.com>
Address feedback from anonymous reviewers for our Journal of
Statistical Software submission:
* src/wrapper_EnumDescriptor.cpp (rprotobuf): Correct the
definition of as.list for EnumDescriptors to return a proper list
instead of a named vector.
* man/aslist.Rd: clarify order of returned list for descriptor
objects.
* NAMESPACE: add names as exported method.
* R/00classes.R (show): Update the default print methods to use
cat() with fill=TRUE instead of show() to eliminate the confusing
[1] since the classes in RProtoBuf are not vectorized.
* Make Descriptor and EnumDescriptor objects subsettable with
"[[".
* Add length() method for Descriptor objects.
* Add names() method for Message, Descriptor, and EnumDescriptor
objects.
* inst/unitTests/runit.enums.R (test.enums): Add test of
subsetting an EnumDescriptor object.
* inst/unitTests/runit.descriptors.R (test.descriptor): Add test
for subsetting of descriptor objects.
* DESCRIPTION (Version): Increment.
2014-04-02 Murray Stokely <mstokely@google.com>
Two patches from Karl Millar <kmillar@google.com>:
* src/S4_classes.h (rprotobuf): Change handling of
S4_EnumDescriptor when passed a NULL pointer to just create empty
object with empty name and full_name rather than setting to
R_NilValue.
* src/wrapper_EnumDescriptor.cpp (rprotobuf): Change return value
of getValue* functions on EnumDescriptor and return an
EnumValueDescriptor or R_NilValue on failure.
2014-04-01 Murray Stokely <mstokely@google.com>
* tests/runUnitTests.R: Add improved checks to ensure R CMD CHECK
fails if there are any errors in the tests, not just failures.
2014-03-25 Dirk Eddelbuettel <edd@debian.org>
* DESCRIPTION (Version): Release 0.4.1
2014-03-24 Murray Stokely <mstokely@google.com>
* inst/unitTests/runit.int64.R (test.int64): Check
Rcpp:::capabilities() to ensure we have long long support in Rcpp
before trying to run the 64-bit integer tests.
* inst/unitTests/data/unittest.proto: Comment out
TestEnumWithDupValue. This causes problems with the newest
libprotobuf-2.5 which now wants an option to be specified to
enable enum aliasing like this.
* configure.in: if we can't find the libproto headers with the
default CPPFLAGS/CXXFLAGS, manually add /usr/local/include and try
again.
2014-03-10 Murray Stokely <mstokely@google.com>
* src/DescriptorPoolLookup.cpp (rprotobuf): Import all top-level
enums defined in an imported .proto file.
* src/rprotobuf.cpp (rprotobuf): Add a function to get the enum
descriptor associated with a named enum.
* inst/unitTests/runit.enums.R (test.enums): Test that we import
top-level enums from .proto files correctly.
* R/00classes.R (P): Correct a bug in the show() method for
EnumDescriptor that prevented useful output in some contexts.
2014-02-21 Murray Stokely <mstokely@google.com>
* inst/unitTests/runit.messages.R (test.message): Add a test for
the deprecated group feature which works fine with RProtoBuf.
The type is converted to lower case, which users often forget.
* vignettes/RProtoBuf-intro.Rnw (subsection{Deprecated Feature:
Protocol Buffer Groups}): document groups.
* inst/CITATION: Add a manual CITATION file pointing to the preprint
on arxiv.org in addition to the normal auto-generated citation().
2014-01-19 Dirk Eddelbuettel <edd@debian.org>
* DESCRIPTION: Finalize release 0.4.0 with initial Windows support
* src/S4_classes.h: Adapt to S4 access function renaming in Rcpp
0.10.7 and later, with special thanks to Kevin Ushey
2014-01-13 Murray Stokely <mstokely@google.com>
* inst/unitTests/runit.int64.R (test.int64): Skip this test with a
warning if running on a machine with sizeof(long long) < 8.
* vignettes/RProtoBuf-intro.Rnw (subsection{64-bit integer
issues}): Hide 64-bit field accesses with if conditional to
avoid running code that won't work on platforms without 64-bit
long longs.
* DESCRIPTION (Version): Increment to 0.4.0
2014-01-09 Murray Stokely <mstokely@google.com>
* R/read.R: Add a logical argument 'partial' to readASCII that
accepts uninitialized message fragments.
* src/wrapper_Descriptor.cpp (rprotobuf): Idem
* inst/unitTests/runit.addressbook.R (test.ascii): Add tests for above.
2014-01-04 Murray Stokely <mstokely@google.com>
* R/wrapper_CodedInputStream.R: Accept numeric size arguments for
ReadRaw and ReadString to make this more user friendly for
interactive use by calling as.integer() as needed.
* R/00classes.R (P): Add missing object prameters in
ZeroCopyInputStream calls to ReadRaw and ReadString.
* inst/unitTests/data/encoding.proto: Add example messages used in
the encoding documentation.
* inst/unitTests/runit.serialize.R (test.encoding): Add tests
verifying the exact byte serialization as described in the
encoding documentation.
(test.arrayinputstream): Add new test of ArrayInputStreams.
* src/wrapper_ZeroCopyInputStream.cpp (rprotobuf): Add
BEGIN/END_RCPP macros to gracefully catch exceptions and return
them as R language errors.
* src/streams.cpp (rprotobuf): Idem.
* man/ArrayInputStream-class.Rd: Add some examples of using
ArrayInputStream.
2014-01-04 Dirk Eddelbuettel <edd@debian.org>
* src: Deprecate files SocketCopyingInputStream.{cpp,h}, sisocks.h as
the current RProtoBuf design does not provide networking capabilities
2013-12-31 Murray Stokely <mstokely@google.com>
* src/wrapper_Message.cpp: Fix type coercion bug in add() method
for uint32s and add a missing break statement that erroneously
raised an error when setting some int64 fields. Make more
function arguments const and remove a superfluous
BEGIN_RCPP/END_RCPP. Also add comment about long-vector
support. All of these fixes were highlighted by Flexelint.
* inst/unitTests/runit.int64.R (test.int64): Add tests for above.
* inst/unitTests/runit.extremevalues.R (test.uint32): Idem.
* src/wrapper_FieldDescriptor.cpp (RPB_HANDLE_CASE): Remove
unreachable statement in a macro.
* src/wrapper_Descriptor.cpp (rprotobuf): Remove unused variable,
rename another variable for clarity, and add some TODOs.
* src/wrapper_FileDescriptor.cpp (rprotobuf): Idem.
* src/DescriptorPoolLookup.cpp (rprotobuf): Remove unreachable
statement.
* src/extensions.cpp: Remove unused header.
* src/mutators.cpp (rprotobuf): Update code to check for Long
vectors and use the safer R_xlen_t type everywhere. Protocol
Buffers repeated fields seem to be limited to int size indices
as with normal R vectors.
* src/rprotobuf.h: Idem
2013-12-30 Murray Stokely <mstokely@google.com>
* inst/unitTests/runit.extremevalues.R (test.uint32): Add test
verifying that we can store 2^32 - 1 properly in repeated or
optional protobuf fields.
* src/extractors.cpp (rprotobuf): Correct handling of uint32 for
repeated fields.
* src/wrapper_Message.cpp (rprotobuf): Remove Rf_error in favor of
Rcpp_error so that we throw an exception and unwind the stack to
deallocate objects before jumping to R's error.
* src/DescriptorPoolLookup.cpp (rprotobuf): Idem.
* R/size.R: Correct an incorrect method name that prevented size<-
from working.
* man/size.Rd: Document the behavior of size<-
* (C++): Ran all the C++ files and most of the headers through
clang-format as described in the STYLE file on R-Forge.
Basically, we now use 4-char indents and 100-char limit for line
wrap.
2013-12-28 Murray Stokely <mstokely@google.com>
* src/extractors.cpp (rprotobuf): Correct handling of uint32 for
single values greater than 2^31 by returning as R numeric types
to avoid losing precision since R doesn't have unsigned int
types but C++ does. Works around an Rcpp bug
https://r-forge.r-project.org/tracker/index.php?func=detail&aid=1360&group_id=155&atid=637
2013-12-27 Murray Stokely <mstokely@google.com>
* src/mutators.cpp: Refactor setMessageField into four separate
functions, correct a few minor typos, and wrap everything in a
try/catch block so we catch any exceptions generated by Rcpp::as
or other functions and forward it along to an R-language stop()
error instead of terminating our R instance.
* src/mutators.cpp (rprotobuf): Add more helpful error message
specifying which element of a list is of the wrong type, and what
the expected type is, when setting a list of messages.
* inst/unitTests/runit.messages.R (test.message): Add unit tests
for our handling of setting repeated message fields.
* src/wrapper_Message.cpp: Add const qualifier to
field_desc throughout file.
* src/exceptions.cpp: Remove ancient exceptions handling code,
migrate codebase to use standard exception classes and helper
functions from Rcpp.
* R/exceptions.R (throw): idem.
2013-12-26 Murray Stokely <mstokely@google.com>
* src/mutators.cpp: Support setting int32 values with character
vectors of a decimal number, as we do by necessity for int64s.
Also, refuse to set non-repeated bools to NA, just as we do for
repeated bool fields by raising a stop() error since protocol
buffer bools are 2-valued and NA is the third-value of R bools.
* inst/unitTests/runit.int32.R (test.int32): Add tests for above.
* NAMESPACE: Add missing export for .DollarNames
EnumValueDescriptor to allow completion on that class.
* R/00classes.R: Update FileDescriptor '$' dispatch to work
properly for the names of fields defined in the FileDescriptor,
instead of just returning NULL even for types returned by $
completion.
* vignettes/RProtoBuf-intro.Rnw (subsubsection{Retrieve fields}):
Update the type mapping tables to note that characters can be
extracted from 64-bit integer types with the
RProtoBuf.int64AsString type and note that int32 and int64 types
can be set to character values representing decimal numbers.
* TODO: Update todo list.
* inst/unitTests/runit.bool.R (test.bool): Add more tests about
boolean values, NA handling, etc.
2013-12-23 Murray Stokely <mstokely@google.com>
* DESCRIPTION (Version): increment.
* inst/proto/addressbook.proto: Reserved extension fields in
tutorial.Person.
* vignettes/RProtoBuf-intro.Rnw (subsection{Extensions}): Added a
new section documenting protocol buffer extensions.
2013-12-20 Murray Stokely <mstokely@google.com>
* R/00classes.R: Correct a bug that incorrectly dispatched
as.character() when as.list() was called on Descriptor objects.
2013-12-18 Murray Stokely <mstokely@google.com>
* R/completion.R (.DollarNames.EnumValueDescriptor): Add
$-completion for EnumValueDescriptor and FileDescriptor classes
as with other S4 RProtoBuf classes here.
* R/00classes.R (P): Ensure that the FileDescriptor $name() method
accepts a boolean for full paths just like the generic name()
method.
* R/wrapper_EnumDescriptor.R: Add better error checking. Expect
exceptions if wrong types are provided for arguments rather than
just returning NULL.
2013-12-18 Dirk Eddelbuettel <edd@debian.org>
* vignettes/RProtoBuf-intro.Rnw: Use with vignette builder
* vignettes/RProtoBuf-quickref.Rnw: Idem
* vignettes/RProtoBuf-unitTests.Rnw: Rewritten / simplified
* DESCRIPTION: Increased dependency to R (>= 3.0.0)
* configure.in: No longer create vignettes/Makefile
2013-12-17 Murray Stokely <mstokely@google.com>
* R/completion.R (.DollarNames.Message): Add missing methods to
dollar completion list for Message and Descriptor objects
* vignettes/RProtoBuf/RProtoBuf.Rnw (subsection{messages}): Add
missing methods to Table 2 (Messages) and add a table and new
sections of methods for Descriptor objects.
2013-12-16 Dirk Eddelbuettel <edd@debian.org>
* src/rprotobuf.h (RCPP_ENUM_TRAITS): Don't use extern "C" on
internal functions returning atomistic or C++ types
2013-12-15 Dirk Eddelbuettel <edd@debian.org>
* DESCRIPTION (Version): Release 0.3.2
* tests/runUnitTests.R: Minor rewrite and cleanup from doRUnit.R with
a tip of the hat to Murray's version in his HistogramTools package
2013-12-14 Dirk Eddelbuettel <edd@debian.org>
* src/lookup.cpp (rprotobuf): Descrictor pools attached directly
* R/lookup.R (attachDescriptorPool): No longer attach them here
* src/rprotobuf.h: Updated function declaration
2013-12-14 Murray Stokely <mstokely@google.com>
* src/mutators.cpp (rprotobuf): Fix a bug which incorrectly
prevented users from setting raw non-repeated fields under some
circumstances.
* inst/unitTests/runit.bytes.R (test.all): Verify raw(10) can be
set to required bytes fields to verify correct behavior for use
case mentioned on rprotobuf-yada list.
2013-11-13 Murray Stokely <mstokely@google.com>
* R/extensions.R: Give a user friendly error message if someone tries
to set an extension to a message of the wrong type instead of
causing a C++ check failure that terminates your R session.
* inst/unitTests/runit.extensions.R (test.extension): Add test.
2013-10-23 Murray Stokely <mstokely@google.com>
* src/lookup.cpp (rprotobuf): Remove stop() error in object table
assignment as this was causing errors with the '<<-' operator in
any code using RProtoBuf.
* inst/unitTests/runit.import.R (test.assign.in.global): Add a
test for the above.
2013-09-16 Murray Stokely <mstokely@google.com>
* DESCRIPTION (Version): Increment to 0.3.1.1.
* R/00classes.R: Improve show method for EnumValueDescriptor and
add enum_type to '$' dispatch.
* man/EnumValueDescriptor-class.Rd: Add examples and document
missing methods.
* src/wrapper_EnumValueDescriptor.cpp (rprotobuf): Add missing
enum_type method.
* inst/unitTests/runit.enums.R (test.enums): Add more tests.
2013-09-13 Dirk Eddelbuettel <edd@debian.org>
* DESCRIPTION (Version): Release 0.3.1
2013-09-13 Murray Stokely <mstokely@google.com>
* vignettes/Makefile.in: Update configure to output R_HOME to the
vignette makefile so we can avoid the use of a non-portable GNU
makefile extension here.
2013-09-12 Murray Stokely <mstokely@google.com>
* src/RcppMacros.h: Add Rcpp compatibility macros
which are simplified versions of the now deprecated ones from
Rcpp.
2013-09-11 Murray Stokely <mstokely@google.com>
* configure.in: If pkg-config is not available add -lprotobuf to
PKG_LIBS. This makes it easier to install on MacOS X 10.8, for
example.
2013-09-06 Murray Stokely <mstokely@google.com>
* src/rprotobuf.cpp (rprotobuf): Include the name of the field
that could not be found in exceptions in getFieldDescriptor
(errors from update / new, etc.).
2013-09-03 Murray Stokely <mstokely@google.com>
* inst/NEWS.Rd: Summarize changes since the last release.
* vignettes/RProtoBuf/RProtoBuf.Rnw: Add a new section on 64-bit
issues, document the RProtoBuf.int64AsString option, break out the
'other approaches' section from the 'future work', and fix a few
typos.
2013-08-30 Dirk Eddelbuettel <edd@debian.org>
* NAMESPACE: Import 'file_path_as_absolute' from package tools, and
the two functions needed from the RCurl package
* R/*R: Updated several files which no longer need 'tools:::' prefix
* DESCRIPTION: Updated Depends: and Imports accordingly
2013-08-29 Murray Stokely <mstokely@google.com>
* R/zzz.R (.onLoad): Rename option controlling int64 handling with
package name prefix.
* inst/unitTests/runit.int64.R (test.int64): Idem
* src/extractors.cpp (rprotobuf): Add templated function to reduce
code duplication in last changelist.
* src/mutators.cpp (rprotobuf): Idem
2013-08-27 Murray Stokely <mstokely@google.com>
* src/extractors.cpp (rprotobuf): Add support for a new
option("int64AsString") that controls whether extractors for
64-bit integer fields return character strings or use Rcpp's
default wrap type which coerces to numeric, possibly losing
precision.
* R/zzz.R (.onLoad): Initialize options("int64AsString" = FALSE).
* src/Rcppsupport.h (rprotobuf): Add RepeatedFieldImporter classes
for int64 and uint64 that return strings instead of int64s.
* src/mutators.cpp (rprotobuf): Add support for setting int64
fields as R character vectors that are converted to int64 or
uint64 C++ types with std::stringstream. This allows the user
to get around the lack of 64-bit integer support in R when working
interactively with RProtoBufs where a large precision number or
identifier needs to be stored.
* inst/unitTests/runit.int64.R: Add tests for the above.
2013-08-21 Murray Stokely <mstokely@google.com>
* inst/unitTests/runit.addressbook.R (test.ascii): Add more tests.
* src/wrapper_Descriptor.cpp (rprotobuf): Add better error
handling for readASCII of text strings rather than returning
an empty proto.
* R/extensions.R: Add checks to ensure that a valid extension
FieldDescriptor is passed to getExtension and setExtension.
* inst/unitTests/runit.int64.R (test.int64): Add a test
illustrating how RProtoBuf is broken in handling 64-bit integers
(commented out for now).
* man/P.Rd: Document behavior for extensions.
* inst/unitTests/runit.extensions.R (test.extension): Add more tests.
* src/wrapper_Message.cpp (rprotobuf): Add function for returning
the number of extensions set in this message, to improve show() output.
* src/rprotobuf.cpp (rprotobuf): Add support for looking up
extensions by name and returning FieldDescriptors.
* R/00classes.R (P): Add support for returning extension
descriptors.
2013-07-14 Dirk Eddelbuettel <edd@debian.org>
* inst/unitTests/runit.extensions.R (test.extension): Comment-out
test for setExtension against enum, at least for now
* vignettes/RProtoBuf/RProtoBuf.Rnw: Added Murray to Authors, at last
* vignettes/RProtoBuf-unitTests.Rnw: Idem
* vignettes/RProtoBuf-quickref/RProtoBuf-quickref.Rnw: Idem
2013-07-13 Murray Stokely <mstokely@google.com>
* inst/NEWS.Rd: Summarize new features since the last CRAN release
last year.
* DESCRIPTION: Increment version to 0.3.
2013-07-13 Dirk Eddelbuettel <edd@debian.org>
* man/Message-class.Rd: Added \alias entries for getExtension and
setExtension
* DESCRIPTION: Incremented Version to separate current test builds
from previous release
* DESCRIPTION: Removed 'MinimumLibProtoVersion: 2002000' which we
no longer need as that version of Protocol Buffers was released a
rather long time ago
* R/zzz.R: Check for minimal version is now commented-out
2013-07-12 Murray Stokely <mstokely@google.com>
* src/extensions.cpp: Replace custom extractor and mutator with
call to existing functions in mutators.cpp and extractors.cpp that
can be used for extensions and any other field type.
* src/extensions.R: Idem
* vignettes/RProtoBuf/RProtoBuf.Rnw: Document getExtension,
setExtension methods.
* man/Message-class.Rd: Idem
* src/rprotobuf.h: Remove unused desc argument to
extractFieldAsSEXP.
* src/extractors.cpp: Idem
* inst/unitTests/runit.extensions.R: Add additional tests for
nested enum and message type extensions.
2013-07-11 Murray Stokely <mstokely@google.com>
* R/extensions.R: Implement getExtension, setExtension methods.
* src/extensions.cpp: Implement getExtension, setExtension.
* R/set.R: Add a TODO noting these functions are undocumented.
* R/00classes.R: Add setExtension, getExtension extractors for
message objects.
* R/completion.R: Add setExtension, getExtension.
* NAMESPACE: Add setExtension, getExtension.
* src/DescriptorPoolLookup.cpp: Add top-level
extensions to descriptor pool.
* src/rprotobuf.h: Add helper function for getting field
descriptor objects.
* src/wrapper_FileDescriptor.cpp: Add support for
extensions to getMemberNames and as_list
* src/lookup.cpp: Add support for looking up extensions.
* inst/unitTests/runit.extensions.R: Add basic test for the above.
2013-07-10 Murray Stokely <mstokely@google.com>
* man/aslist.Rd: Document behavior for enum and file descriptors
and be more sparing with \dontrun in examples.
* man/EnumDescriptor-class.Rd: Be more sparing with \dontrun in
examples so we run more test code.
* man/add.Rd: Idem
* man/clone.Rd: Idem
* man/Descriptor-class.Rd: Idem
* man/FieldDescriptor-class.Rd: Idem
* man/FileDescriptor-class.Rd: Idem
* man/is_extension.Rd: Idem
* man/label.Rd: Idem
* man/Message-class.Rd: Idem
* man/number.Rd: Idem
* man/P.Rd: Idem
* man/readProtoFiles.Rd: Idem
* man/type.Rd: Idem
* man/with.Rd: Idem
* man/RProtoBuf-package.Rd: Idem
2013-07-08 Murray Stokely <mstokely@google.com>
* R/has.R: add a has method for EnumDescriptor objects to return a
logical indicating if the named constant exists or not.
* R/00classes.R: fix a typo that prevented the length method from
working properly for EnumDescriptor objects. Use this
functionality to add the number of constants in the show method
for EnumDescriptors.
* R/wrapper_EnumValueDescriptor.R: add a number method to return
the numeric value of this enum constant.
* man/has.Rd: Add example of the above.
* man/number.Rd: Add example of the above.
* man/EnumDescriptor-class.Rd: Add example of the above.
* man/EnumValueDescriptor-class.Rd: Add example of the above.
2013-02-21 Murray Stokely <mstokely@google.com>
* R/00classes.R: add filename and package slots to FileDescriptor
S4 class and provide more user-friendly show() methods for
Messages and FileDescriptors that provide more context about the
contained data.
* src/S4_classes.h: populate package and filename slots when a
FileDescriptor is created based on fields from the underlying
C++ object.
* inst/unitTests/runit.addressbook.R: add a basic test for
FileDescriptors.
* man/FileDescriptor-class.Rd: document the new slots in
FileDescriptor and add examples.
2012-10-03 Murray Stokely <mstokely@google.com>
* src/mutators.cpp (rprotobuf): Fix bug where LENGTH() is used on
non-vectors when setting a repeated message field to a single
Message object. This caused non-deterministic behavior after
memory was read from a random location.
* inst/unitTests/runit.golden.message.R (test.repeatedFields): Add
tests for this case.
2012-09-25 Dirk Eddelbuettel <edd@debian.org>
* man/is_extension.Rd: Use \dontrun on examples as we cannot reload
the same proto file twice
* man/label.Rd: Idem
* man/number.Rd: Idem
* man/type.Rd: Idem
2012-09-24 Murray Stokely <mstokely@google.com>
* R/has.R: Distinguish between non-existant and not-set fields in
a message by returning NULL in the former case.
* R/00classes.R: Idem
* src/wrapper_Message.cpp (rprotobuf): Idem
* inst/unitTests/runit.golden.message.R (test.has): Add test.
* man/has.Rd: Add example of the above.
2012-09-21 Murray Stokely <mstokely@google.com>
* Fix a bug causing segfaults in containing_type().
* R/containing_type.R: Return NULL instead of invalid descriptors
when there is no containing type for an object.
* src/S4_classes.h: Check for NULL pointers in the contructors for
S4_Descriptor and S4_EnumDescriptor as these methods are called on
the return value of e.g. containing_type() in the protobuf API
without checking the return alue.
* man/containing_type-methods.Rd: Add examples section showing
cases where there is and is not a containing_type.
* inst/unitTests/runit.FieldDescriptor.R
(test.FieldDescriptor.class): Add tests for the above.
2012-08-21 Murray Stokely <mstokely@google.com>
* src/mutators.cpp: Add better input checking when setting an
optional field to avoid an uncaught exception that would kill the
R session, and add a test.
* inst/unitTests/runit.golden.message.R (test.invalidAssignments):
Add test for this.
2012-08-18 Dirk Eddelbuettel <edd@debian.org>
* Applied two more patches by Murray and Karl:
- Make readASCII() more robust to error conditions; adds tests to
catch them.
- Correct type(), cpp_type(), and label() methods when
as.string=TRUE; add unit tests for these methods, add examples to
the Rd files for these methods, and adds type and cpp_type to the
NAMESPACE file where they were previously absent.
2012-08-09 Dirk Eddelbuettel <edd@debian.org>
* Applied two more patches by Murray:
- R/wrapper_FieldDescriptor.R: correct more '_' and '__' mismatches
- man/*: update manual pages for style, add examples
- src/mutators.cpp: fix bug in handling of NA in boolean vectors
- inst/unitTests/runit.golden.message.R: add unit test
2012-08-08 Dirk Eddelbuettel <edd@debian.org>
* DESCRIPTION: Release 0.2.5
* src/mutators.cpp: Applied patch by Murray to correctly deal with
nested protocol buffer definitions
* inst/unitTests/runit.nested.R: Added test from Murray
* inst/unitTests/data/nested.proto: Nested protbuf def from Murray
* R/serialize.R: Added patch by Murray to not serialize uninitalized
protocol buffers (with missing required fields)
* inst/unitTests/runit.serialize.R: Added tests for this
* /man/add.Rd: Add patch by Murray for stylistic improvement and
added examples
* inst/NEWS.Rd: Converted NEWS file to .Rd format
* DESCRIPTION: Changed Maintainer: to single person per CRAN Policy
* vignettes/: Moved from inst/doc/ per CRAN Policy
2012-05-15 Dirk Eddelbuettel <edd@debian.org>
* DESCRIPTION: Release 0.2.4
* R/zzz.R (.onLoad): pass lib.loc=libname to readProtoFiles
* R/internals.R (readProtoFiles): use lib.loc argument
* man/readProtoFiles.Rd: Document new lib.loc argument
2012-05-14 Dirk Eddelbuettel <edd@debian.org>
* R/lookup.R: comment-out unlockBinding() which R CMD check does not
like as it turns out that we do not need it here anyway
* inst/unitTests/runit.addressbook.R (test.ascii): Small correction
by converting to character before comparing
* DESCRIPTION: Remove Depends: on int64 which is no longer used,
lower Depends: on Rcpp to 0.9.6 which should be sufficient
2012-05-13 Dirk Eddelbuettel <edd@debian.org>
* src/rprotobuf.h: Added '#include <unistd.h>' to make g++-4.7 happy
* src/*: Reversed out SVN revisions 426 to 434 related to int64
2012-04-07 Dirk Eddelbuettel <edd@debian.org>
* R/zzz.R: Add 'lib.loc=libname' to packageDescription() call as
requested by Brian Ripley
2012-03-20 Dirk Eddelbuettel <edd@debian.org>
* Applied another patch by Murray:
- src/mutators.cpp: Deal with case of repeated strings
- inst/unitTests/runit.golden.message.R: test for this case
2011-07-17 Dirk Eddelbuettel <edd@debian.org>
* Applied another patch by Murray:
- src/wrapper_Descriptor.cpp: Add missing readASCIIFromConnection
C++ function that was called in read.R but not defined.
- R/read.R: Remove an _ in the readASCII C++ functions to match the
naming convention of the other nearby functions.
- man/readASCII.Rd: Add examples of ascii export/import of messages.
- inst/unitTests/runit.addressbook.R: Add tests of ascii
export/import of messages.
2011-07-07 Dirk Eddelbuettel <edd@debian.org>
* src/wrapper_FileDescriptor.cpp (rprotobuf): Applied patch by Murray
to correct a cut & paste error in variable name
2011-04-12 Dirk Eddelbuettel <edd@debian.org>
* DESCRIPTION: Release 0.2.3
2011-04-10 Dirk Eddelbuettel <edd@dexter>
* src/extractors.cpp: Protect UINT64 and INT64 inside of #ifdef test
for RCPP_HAS_LONG_LONG_TYPES which we now need for g++ 4.5 or later
* src/mutators.cpp: Idem
* wrapper_FieldDescriptor.cpp: Idem
2011-04-05 Dirk Eddelbuettel <edd@debian.org>
* inst/doc/Makefile: Call R and Rscript relative to R_HOME/bin
2011-04-04 Dirk Eddelbuettel <edd@debian.org>
* inst/doc/Makefile: Do not call clean in all target
2011-01-12 Dirk Eddelbuettel <edd@debian.org>
* R/with.R: Use envir= argument to eval()
2011-01-11 Dirk Eddelbuettel <edd@debian.org>
* DESCRIPTION: Release 0.2.2
* inst/THANKS: Added new file to say Thanks!
2011-01-10 Dirk Eddelbuettel <edd@debian.org>
* Applied another patch by Murray Stokely providing:
- R/internals.R: generalise readProtoFiles() adding 'pattern' arg
- man/readProtoFiles.Rd: documenting new 'pattern' argument
- src/DescriptorPoolLookup.cpp: enhanced error message
- inst/unitTests/runit.golden.message.R: new unit test for
repeated fields fixed (which was issue addressed earlier)
- inst/runit.import.R: new unit test for non-existing file
2011-01-07 Dirk Eddelbuettel <edd@debian.org>
* Applied patch by Murray Stokely providing all the following:
- src/S4_classes.h: new 'name' and 'full_name' slots
- R/00classes.R: idem
- R/wrapper_EnumDescriptor.R: fix typo now permitting function call
- src/wrapper_EnumDescriptor.cpp: add a bounds check
- src/wrapper_EnumValueDescriptor.cpp: add a new name method
- inst/unitTests/runit.enums.R: add new unit test
* man/EnumValueDescriptor-class.Rd: Add documentation for name
and full_name
2010-10-20 Dirk Eddelbuettel <deddelbuettel@wolve.com>
* inst/doc/Makefile: do not remove the pdf in 'clean'
* inst/unitTests/runit.addressbook.R: stick 'book' into global env.
2010-10-18 Dirk Eddelbuettel <edd@debian.org>
* DESCRIPTION: Release 0.2.1
* ChangeLog: moved from inst/
* inst/NEWS: moved from top-level to that it gets installed with package
2010-10-13 Dirk Eddelbuettel <edd@debian.org>
* src/*: applied patch by Koert Kuipers to support raw bytes
* inst/unitTests/runit.bytes.R: also added unit test by Koert
2010-09-11 Dirk Eddelbuettel <edd@debian.org>
* DESCRIPTION: Release 0.2.0
2010-09-10 Romain Francois <romain@r-enthusiasts.com>
* man/readASCII.Rd: Rd documentation for readASCII
2010-08-20 Romain Francois <romain@r-enthusiasts.com>
* R/read/.R: New readASCII method
2010-08-12 Romain Francois <romain@r-enthusiasts.com>
* src/*: restore R CMD check
2010-08-04 Dirk Eddelbuettel <edd@debian.org>
* inst/unitTests/runit.addressbook.R: start of new unit tests
2010-07-30 Romain Francois <romain@r-enthusiasts.com>
* src/*: correct many small errors so that the vignette builds again
2010-02-02 Dirk Eddelbuettel <edd@debian.org>
* configure.in: More rigorous checks for ProtoBuf headers, library,
mininal version as well as availability of pkg-config.
2010-02-01 Dirk Eddelbuettel <edd@debian.org>
* inst/ChangeLog: added
2010-02-01 Romain Francois <francoisromain@free.fr>
* Release 0.1-0
* [r274] /pkg/man/RProtoBuf-package.Rd: tidying up
* [r273] /pkg/inst/doc/unitTests-results:
* [r272] /pkg/inst/doc/unitTests/RProtoBuf-unitTests.R: minor
cleanups for the unit test vignette (same as in Rcpp)
* [r271] /pkg/DESCRIPTION,
/pkg/inst/doc/unitTests/RProtoBuf-unitTests.R: OS_type: unix (for
now)
* [r270] /pkg/DESCRIPTION: version bump to 0.1-0
* [r269] /pkg/inst/doc/Makefile,
/pkg/inst/doc/RProtoBuf-unitTests.R[DEL],
/pkg/inst/doc/RProtoBuf-unitTests.Rnw, /pkg/inst/doc/unitTests,
/pkg/inst/doc/unitTests/RProtoBuf-unitTests.R: minor cleanups for
the unit test vignette (same as in Rcpp)
2010-01-23 Romain Francois <francoisromain@free.fr>
* [r268] /pkg/inst/doc/Makefile,
/pkg/inst/doc/RProtoBuf-unitTests.R,
/pkg/inst/doc/RProtoBuf-unitTests.Rnw,
/pkg/inst/doc/RProtoBuf-unitTests.Rnw.brew[DEL]: borrow simpler
unit test vignette from Rcpp
2010-01-11 Romain Francois <francoisromain@free.fr>
* [r267] /pkg/DESCRIPTION, /pkg/src/DescriptorPoolLookup.cpp,
/pkg/src/rprotobuf.h: adapt to Rcpp::wrap
2009-12-29 Romain Francois <francoisromain@free.fr>
* [r266] /pkg/DESCRIPTION,
/pkg/inst/unitTests/runit.golden.message.R,
/pkg/src/DescriptorPoolLookup.cpp: adapt to recent changes in
Rcpp
2009-12-27 Romain Francois <francoisromain@free.fr>
* [r265] /pkg/inst/unitTests/data/unittest.proto,
/pkg/inst/unitTests/runit.golden.message.R,
/pkg/src/constructors.cpp, /pkg/src/lookup.cpp: enum might not
have containing types, which used to bomb new_RS4_EnumDescriptor.
fixed and unit tested
* [r264] /pkg/inst/doc, /pkg/inst/doc/Makefile,
/pkg/inst/doc/RProtoBuf-unitTests.Rnw.brew: a bug in .tearDown
prevented the unit tests from working properly
2009-12-26 Romain Francois <francoisromain@free.fr>
* [r263] /pkg/inst/doc/Makefile,
/pkg/inst/doc/RProtoBuf-unitTests.Rnw.brew,
/pkg/inst/doc/RProtoBuf.Rnw,
/pkg/inst/unitTests/runit.golden.message.R[CPY],
/pkg/inst/unitTests/runit.golden_message.R[DEL]: force cleaning
pdfs before vignette creation
* [r262] /pkg/src/lookup.cpp: not sorting manually anymore since
std::set does it for free
* [r261] /pkg/inst/unitTests/runit.draft.R[DEL],
/pkg/inst/unitTests/runit.error.R[DEL],
/pkg/inst/unitTests/runit.golden_message.R: started adding some
proper tests