forked from JeffersonLab/evio
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGES
225 lines (180 loc) · 10.6 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
jevio-4.3.1.jar differences from previous jar :
-check lengths when parsing evio so bad values are caught if possible
-fix bug if trying to unpack strings from rawbytes with too few bytes
-fix bug which did not take padding into account when getting data buffer of EvioNode
-fix bug in which after adding a structure with EvioCompactStructureHandler,
the node list was not updated
jevio-4.3.2.jar
-fix bug in which the displayed event # in graphical viewer did not correspond
to the actual event number (bug was in EvioReader)
-fix bug in which the "next" button in graphical viewer did silly things when
at max event number
-made members of EventTreeMenu protected instead of package or private
scope for subclassing purposes
jevio-4.3.3.jar
-same as the previous jar
jevio-4.3.4.jar
-fix bug EvioCompactReader in which parsing fails
when bank/seg/tagseg has last child with data len = 0
(back ported from 4.4.4)
******** NEW VERSION MINOR VERSION *********
jevio-4.4.jar
-improve performance including replacing LinkedLists with ArrayLists or arrays
-fix bug in Java CompactEventBuilder class that miswrites data into direct ByteBuffers (11/13/14)
-fix bug in Java CompactEventBuilder class that miswrites segment header (11/19/14)
-fix bug in EvioCompactStructureHandler.getNodes() throwing NullPointerException (12/8/14)
-add constructor to EvioCompactStructureHandler with EvioNode argument (12/8/14)
-in EvioReader, bomb proof against bad format files, fix bug in which last block's events
are not indexed, reduce initial memory usage (12/10/14)
jevio-4.4.1.jar
-fix major bug in ByteDataTransformer.toByteArray(). If arg is a ByteBuffer obtained from
slice(), its backing array cannot be used to copy into byte array since it copies wrong
data! (1/8/2015)
-fix major bug in EvioCompactStructureHandler.getData() which did not account for padding
in byte and short data (1/8/2015)
jevio-4.4.2.jar
-fix bug in EventParser & EvioEvent that add other evio structures when EvioReader.parseEvent()
or EventParser.parseEvent() are called more than once on an event.
jevio-4.4.3.jar
-fix bug in parsing composite data in which N=0 acts as N=1.
-add EventWriter.writeEvent() method for EvioNode object
jevio-4.4.4.jar
-fix bug EvioCompactReader in which parsing fails
when bank/seg/tagseg has last child with data len = 0
jevio-4.4.5.jar
- same as previous
- implement sequential reading instead of ignoring the
flag in EvioReader constructor.
- cut way back on EvioNode default memory usage (6/17/2015)
jevio-4.4.6.jar
- add getMap() method to iterate through EvioXMLDictionary contents.
Add EvioDictionaryEntry class to help accomplish that. (8/18/2015)
- fix bug which started block header number at 0 instead of 1 (9/3/2015)
******** NEW VERSION MAJOR VERSION *********
jevio-5.0.jar
- fix small bugs
- add capability to add 1 "first event" to beginning of each file including splits
- make switching buffers in EventWriter more efficient
- make EventWriter.setBuffer() more efficient
- fixed EventReader throwing exception when segment or tagsegment had data length of 0
- fix bug in which swapping UNKNOWN32 type data will not copy it
- fix bug which did not set the correct length in header if no data
- add Utilities class methods to convert EvioNode object to XML and to EvioEvent object
- make handling evio header words more efficient
- handle the CompositeData data type in CompactEventBuilder
- add sections on CompositeData to User's Guide
- fix bugs handling string data (certain non-printing ascii characters)
- improve xml representation of event - especially the composite data type
- add capability to parse xml representation of multiple events into list of EvioEvents,
including those with composite data
- add program (apps.Xml2evio) which converts a file of xml format evio data into an evio
binary format file. This is a replacement for xml2evio.c which did not handle composite data.
- fix a host of bugs in printing to and parsing from xml. Can now handle all unsigned
types properly as well as print in hex or decimal. New methods to handle choice of hex.
Handling of xml made consistent with C/C++ lib.
- remove the EvioCompactReader.setBuffer(ByteBuffer buf, boolean fast) method.
The fast = true setting created a null pointer exception in the addStructure
method. I don't think this was used by anyone anyway.
jevio-5.1.jar
- fix bugs in EvioCompactReader in which:
1) addStructure() method did not update all EvioNode objects,
only those associated with events (top level banks)
2) validDataWords variable was not updated
3) if the event-being-added-to was scanned, the added structure was not
scanned and therefore no EvioNodes created and placed in child and
allNodes lists
- added removeEvent() and removeStructure() methods to EvioCompactReader
- added setBuffer() method to BufferNode
- added toString() to BlockNode
- added removeChild(), removeFromAllNodes(), addToAllNodes() methods to EvioNode
- added getBlockNode(), isObsolete() and setObsolete() methods to EvioNode
- added a few methods to deal with first event bit in block header bit info word
- remove close() call from EvioCompactReader.setBuffer() which was completely
unnecessary and led to multi-threading conflict issues in the emu. (5/27/2016)
- fix bug in EvioReader.rewind() which gets propagated to getEventCount() (8/17/2016)
jevio-5.2.jar
- make CompactEventBuilder generate much less garbage. Big win for event builder.
- EvioNode's getByteData() and getStructureBuffer() return buffer instead of buffer.slice()
to reduce garbage.
- add new method EvioNode.getIntData() to efficiently transform bytes to int array.
Have EvioNode store this array for second ask (in event builder).
- add getShortdata() and getLongData() methods for EvioNode as well
- unsynchronize Utilities.printBuffer()
- add EvioCompactReaderUnsync class for parsing evio format buffers without synchronization.
- make EvioCompactReader(Unsync).scanStructure() method more efficient
- eliminate unused parts of BlockNode class
- for evio format ver 1-3 files:
sequential access will be default,
files read in chunks of 500 blocks (previously 1) at a time.
- add ability to add stream id to end of generated file name to
differentiate between multiple streams of data to multiple files
- fix bug in dictionary in which an entry for tag-only (no num defined)
is discarded if an entry already exists for the same tag and a defined num. (9/28/16)
- fix bug reading format 4 files sequentially in which a full block may not be
read in at one time (11/4/16)
- fix bug in which reading format 4 sequentially will process dictionary event as
a regular event instead of reading it specially.
- MAJOR CHANGE: when writing, an ending block header is NOT written with each
event and then overwritten in the next write. This removes the possibility that
a hard drive head wastes a whole disk revolution getting into position for the
backwards file access.
- fix bug in which reading a file sequentially, in which the last event is not fully
written, can cause an infinite read loop
- fix bug in which writing events to a buffer can cause the block headers to start
numbering at 0, not 1.
- fix bug in which reads and writes to file can be incomplete and throw exceptions
- fix bug in which appending to a file can cause a problem if file was originally
written without ending block header
- add EventWriter.flush() method for sending internally buffered data to disk
*********************************************************************************
C CODE
evio-4.3.3
- fix flags for Mac OSX compilation (9/22/2014)
evio-4.4
- fix performance problem writing files.
No longer force a written event to physical disk. (10/7/14)
- fix bug in C lib that miswrites 6th word of block header - event type (11/5/14)
evio-4.4.4
- fix bug in C++ that does not set padding correctly
- fix lots of compiler warnings
evio-4.4.5
- fix problems compiling on Mac
******** NEW VERSION MAJOR VERSION *********
evio-5.0
- fix small bugs
- allow smaller split files
- add capability to add 1 "first event" to beginning of each file including splits
- add a routine, evCreateFirstEventBlock(), to create an evio file format block
containing a first event. Added to facilitate an evio C lib user sending an ET
event or cMsg msg containing this block to the ER which would, in turn, properly
understand it to be a first event to be included in each split file.
- make more swapping routines & macros available
- better doxygen doc
- fix bug in which the version # was improperly set to 5 (set back to 4) since
that version number refers to the evio file format version and not the package
version
- improve xml representation of event - especially the composite data type
- fix a host of bugs in printing to xml. Can now handle all unsigned
types properly as well as print in hex or decimal. Made consistent with Java.
Now treats structure of CompositeData as an array!
- add a routine, evBufToStrings(), to enable users to unpack evio string data
into an array of strings
- add a routine, evStringsToBuf(), to enable users to take an array of strings
and write it into an evio format buffer
- got rid of vxworks and solaris dependencies
- fixed SConstruct python
evio-5.1
- fixed bug in evOpenImpl in which an unsigned int was treated as signed
- fixed compiler warnings on MacOS
evio-5.2
- when writing, by default, make blocks 16MB or 10,000 events (whichever comes first).
Previously blocks were 256kB or 10,000 events.
- add ability to add stream id to end of generated file name to
differentiate between multiple streams of data to multiple files
- add evIsLastBlock, evFlush
- MAJOR CHANGE: when writing, an ending block header is NOT written with each
event and then overwritten in the next write. This removes the possibility that
a hard drive head wastes a whole disk revolution getting into position for the
backwards file access.
- fix bug in which the writing of a split file with a dictionary got a length
and therefore the file format wrong.