ChangeLog 70 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029
  1. 2019-07-12 Per Bothner <per@bothner.com>
  2. New GVector type for "generalized vector".
  3. * GVector.java: New interface.
  4. * BitVector.java: Implement GVector.
  5. * F32Vector.java: Likewise.
  6. * F64Vector.java: Likewise.
  7. * PrimIntegerVector.java: Likewise.
  8. * Range.java: Likewise.
  9. * FVector.java: Likewise.
  10. (copyFrom): Generalize source to GVector.
  11. 2018-07-20 Per Bothner <per@bothner.com>
  12. * PrintConsumer.java: Add hooks for DomTerm show/hide buttons.
  13. (isDomTerm): New method, super for ones in OutPort and XMLPrinter.
  14. (writeShowHideButton, startHiderSection, endHiderSection): New method.
  15. 2017-08-03 Per Bothner <per@bothner.com>
  16. * Sequences.java (subList, dronop): Use coerceToSequence.
  17. This extends the methods to Java arrays and other non-List sequences.
  18. 2017-06-08 Per Bothner <per@bothner.com>
  19. * PairWithPosition.java: Update for new source position model.
  20. 2017-04-25 Per Bothner <per@bothner.com>
  21. * Sequences.java (getSize): Use sizeInCodePoints for strings.
  22. 2017-04-20 Per Bothner <per@bothner.com>
  23. * IString.java (SubString): New constructor for member class.
  24. * CharBuffer.java (length): Remove method -causes infinite recursion.
  25. The inherited method works fine.
  26. 2017-04-18 Per Bothner <per@bothner.com>
  27. * FString.java (replace): Avoid needlessly making a copy of source.
  28. * IString.java (subSequence): Fix so it works for SubString.
  29. 2017-04-10 Per Bothner <per@bothner.com>
  30. * PrimVector.template: Move previous utf16ToString change to right file.
  31. 2017-04-09 Per Bothner <per@bothner.com>
  32. * ByteVector.java (utf16ToString): Two new methods.
  33. * Strings.java (toUtf16): New static method.
  34. 2017-04-06 Per Bothner <per@bothner.com>
  35. * ByteVector.java (toUtf8): Rename to utf8ToString.
  36. * Strings.java (toUtf8): Rename to fromUtf8.
  37. * PrimVector.template: Fix castOrNull/cast for FVector.
  38. FVector.java is a generated class. Fixes bug from 2017-02-03.
  39. 2017-03-26 Per Bothner <per@bothner.com>
  40. * FString.java (prepend *2): Two new methods.
  41. 2017-03-25 Per Bothner <per@bothner.com>
  42. * FString.java (prependCharacter): New method.
  43. 2017-03-20 Per Bothner <per@bothner.com>
  44. * Strings.java (replicate): Change return type to plain String.
  45. 2017-03-15 Per Bothner <per@bothner.com>
  46. * Strings.java (replicate): New method.
  47. (offsetByCodePoints): Add index checking.
  48. * FString.java (<init>): Minor optimization.
  49. 2017-03-10 Per Bothner <per@bothner.com>
  50. String viewed as vector works same as string-ref.
  51. I.e. a string is a list of Unicode chars (with no #\ignorable-char).
  52. * FString.java: Major re-write.
  53. * CharSeq.java (subSequence, consume): Remove methods.
  54. * SubCharSeq.java: Remove - no longer needed.
  55. 2017-02-28 Per Bothner <per@bothner.com>
  56. * CharSeq.java (fill): Remove two 'fill' methods.
  57. They aren't used any more as they don't work for non-BMP characters.
  58. * FString.java (fill): Remove methods.
  59. * SubCharSeq.java (fill): Likewise.
  60. 2017-02-03 Per Bothner <per@bothner.com>
  61. * PrimVector.template (cast, castOrNull): New methods.
  62. * CharVector.java (cast, castOrNull): Likewise.
  63. * FVector.java (cast, castOrNull): Likewise.
  64. 2017-01-17 Per Bothner <per@bothner.com>
  65. * IString.java (SubString): New class for substring of an IString.
  66. Generalize methods to handle plain IString as well as SubString.
  67. (valueOf): New factory method.
  68. * Strings.java (compareTo): New static method.
  69. 2016-12-03 Per Bothner <per@bothner.com>
  70. * FString.java: Simplify set of constructors.
  71. * IString.java (valueOf): New factory method.
  72. (toCharArray, getBytes(String)): New methods.
  73. 2016-11-28 Per Bothner <per@bothner.com>
  74. * IString.java: Implement Comparable.
  75. (compareTo): New method.
  76. (hashCode, equals): New methods.
  77. * Strings.java (offsetByCodePoints): Fix logic bug.
  78. * AbstractSequence.java (setAt): New method - more efficient than set.
  79. 2016-11-27 Per Bothner <per@bothner.com>
  80. * AbstractSequence.java: Trivial inlining.
  81. 2016-10-15 Per Bothner <per@bothner.com>
  82. * PrimVector.template: Fix incorrect edits in generated files by making here instead.
  83. (FVector.makConstant, FVector.replaceAll, ByteVector.writeTo): New methods.
  84. * ByteVector.java: Re-generated.
  85. * FVector.java: Re-generated.
  86. 2016-10-11 Per Bothner <per@bothner.com>
  87. * PrintConsumer.java (writeBreak): Make public.
  88. 2016-09-21 Per Bothner <per@bothner.com>
  89. * Strings.java (toJson): New method.
  90. (printQuoted): Some tweaks.
  91. 2016-09-03 Per Bothner <per@bothner.com>
  92. * AbstractFormat.java: Moved to gnu/kawa/format.
  93. * AbstractFormat.java (format): Fix logic for non-OutPort case.
  94. 2016-09-02 Per Bothner <per@bothner.com>
  95. Add support for pseudo-ranges, with unspecified start *and* end.
  96. * Range.java (isUnspecifiedStart): New method.
  97. (upto, downto): New factor methods - logic moded from RangeUtils.
  98. * ComposedArray.java: Resolve pseudo-ranges.
  99. 2016-09-01 Per Bothner <per@bothner.com>
  100. * ComposedArray.java: Restructured the logic a bit.
  101. 2016-08-31 Per Bothner <per@bothner.com>
  102. * Range.java: Move factory method to java/kawa/functions/RangeUtils.java.
  103. (isUnbounded): Move public.
  104. 2016-08-14 Per Bothner <per@bothner.com>
  105. * Blob.java: Don't implement Consumble.
  106. (consume): Remove method.
  107. * ByteVector.java (writeTo): Add one-argument overload
  108. 2016-08-12 Per Bothner <per@bothner.com>
  109. A cleaner format/consumer model.
  110. * AbstractFormat.java (class FormatConsumer): New static class.
  111. (makeConsumer): New method.
  112. (getPassThroughOutPort): New static method.
  113. * PrintConsumer.java: Add a bucnh of of methods, include
  114. some moved from OutPort or PrettyWriter.
  115. 2016-07-17 Per Bothner <per@bothner.com>
  116. * IntSequence.java: Implement AVector rather than List *and* Array.
  117. * Range.java: Impplement AVector - i.e. Array as well as Sequence.
  118. 2016-05-02 Per Bothner <per@bothner.com>
  119. * Arrays.java (hashCode(Array)): New static method.
  120. * AbstractSequence.java (hashCode): Use new method for Arrays.
  121. 2016-05-01 Per Bothner <per@bothner.com>
  122. * ConstVector.java: Remove class. Use FVector.makeVector instead.
  123. * FVector.java (makeVector): New factory method.
  124. (replaceAll): New method.
  125. * SimpleVector.java (VERY_SIMPLE_FLAG): New constant.
  126. (isReadOnly, setReadOnly): New methods.
  127. 2016-03-16 Okumura Yuki <mjt@cltn.org>
  128. * IntSequence.java: Fix thinko.
  129. 2016-03-11 Per Bothner <per@bothner.com>
  130. * CharBuffer.java (delete): Remove unneeded and wrong override.
  131. Fixes bug reported by Jamison Hope.
  132. 2016-03-10 Per Bothner <per@bothner.com>
  133. Major re-write for more general array support.
  134. Rename methods like byteAt to getByte and longAtBuffer to getLongRaw.
  135. * SimpleVector.java: Add new 64-bit 'info' field, used for flags,
  136. sub-range bounds, or gap bounds. Handle gao management,
  137. * IndirectIndexable.java: Removed class - no longer delegating
  138. indexing to an indexes mapper class. Doing it in SimpleVector
  139. is less general but more memory- and cache-friendly.
  140. * GapManager.java: Removed class - functionality now in SimpleVector.
  141. * Arrays.java: New class with static utility methods.
  142. * TransformedArray.java: New abstract class.
  143. * ComposedArray.java: New class for generalized indexing.
  144. * FlattenedArray.java: New class for a flattened (ravel) view.
  145. * AVector.java: New interface.
  146. 2016-01-19 Per Bothner <per@bothner.com>
  147. * GeneralArray.java (getTag): New method.
  148. 2015-08-18 Per Bothner <per@bothner.com>
  149. Make result of sequence-as-index return same type, with sharing.
  150. * FString.java (getBuffer, setBuffer): Change to throw exception.
  151. (set): Re-implement.
  152. (setAt): Add implementation.
  153. * GapManager.java (subList): New method.
  154. * IndirectIndexable.java (size): Move implementation from sub-classes.
  155. (getBufferLength): New abstract method, used by size.
  156. (withIndexes): New abstract method.
  157. (indexesSelect, indexesSubList): New protected helper methods.
  158. (select, subList): New methods.
  159. * IndirectIndexedSeq.java (getBufferLength): New method.
  160. (size): Removed - subsumed by IndirectIndexable version.
  161. * IntSequence.java (subList): New, with overriding returning types.
  162. * PrimVector.template (withIndexes, subList): New methods.
  163. * Range.java (subListFromRange, subList): New methods.
  164. (valueOfUnbounded): Create an IntRnge if appropriate.
  165. * Sequences.java (class ComposedIndexes): New member class.
  166. (indirectIndexed(IntSequence,IntSequence)): New method.
  167. (indirectIndexed(List,IntSequence)): Improve.
  168. * SimpleVector.java (size, getBufferLength): Moved to super-class.
  169. (setAt): New method.
  170. * Strings.java (indirectIndexed): Optimize for FString.
  171. * SubCharSeq.java (valueOf): New convenience/factory method.
  172. * Sequence.java (setAt): New method.
  173. * AbstractSequence.java (setAt): New dummy implementation.
  174. 2015-08-13 Per Bothner <per@bothner.com>
  175. * SimpleVector.java (forEach): (JAVA8-only) Fix syntax errors,
  176. reported by Jamison Hope. Replace by implementation using segments.
  177. 2015-07-31 Per Bothner <per@bothner.com>
  178. Re-implement SimpleVector to use an index mapper.
  179. * AbstractCharVector.java
  180. * GapVector.java: Replace by ...
  181. * GapManager.java: which is an IntSequence index mapper. Thus any
  182. SimpleVector subclass can be dynamically switch to a gap vector.
  183. * StableVector.java: Likewise replace by ...
  184. * StableManager.java: which is a subclass of GapManager.
  185. * IndirectIndexable.java: New abstract class for sequences that can
  186. be re-mappings of other sequences or Lists.
  187. * IndirectIndexedSeq.java: Changed to extend IndirectIndexable.
  188. * SimpleVector.java: Re-write to be IndirectIndexable.
  189. * Sequences.java (indirectIndexed, replace): New helper methods.
  190. * Strings.java (toUtf8): New helper method.
  191. * Range.java: Make Externalizable.
  192. (cantWriteMarker): New static field.
  193. (toString): New method.
  194. * PrimIntegerVector.java: New abstract class.
  195. * Blob.java: Update for being based on IndirectIndexable.
  196. * ConstVector.java: Likewise.
  197. * FString.java: Likewise.
  198. * CharVector.java: Likewise.
  199. * CharBuffer.java: Change to extend FString, and using a
  200. StableManager for the indexes. Move some code to FString.
  201. * PrimVector.template: New source template to be pre-processed
  202. into any of the following classes.
  203. * BitVector.java: Now auto-generated from PrimVector.template.
  204. * ByteVector.java: Likewise.
  205. * ShortVector.java: Likewise.
  206. * IntVector.java: Likewise.
  207. * LongVector.java: Likewise.
  208. * F32Vector.java: Likewise.
  209. * F64Vector.java: Likewise.
  210. * S16Vector.java: Likewise.
  211. * S32Vector.java: Likewise.
  212. * S64Vector.java: Likewise.
  213. * S8Vector.java: Likewise.
  214. * U16Vector.java: Likewise.
  215. * U32Vector.java: Likewise.
  216. * U64Vector.java: Likewise.
  217. * U8Vector.java: Likewise.
  218. * FVector.java: Likewise.
  219. * CharSeq.java: Remove some pre-Java5 cruft.
  220. 2015-07-22 Per Bothner <per@bothner.com>
  221. * Sequences.java (writeUInt, writeULong): New methods.
  222. 2015-07-02 Per Bothner <per@bothner.com>
  223. * CharBuffer.java (delete): Change parameters to be consistent
  224. with String.delete's (start,end) convention.
  225. * Range.java: Add generic parameter to supertypes.
  226. 2015-06-22 Per Bothner <per@bothner.com>
  227. * LList.java: Use getCdr/getCar methods instead of reading car/cdr
  228. fields directly.
  229. * LListPosition.java: Likewise.
  230. 2015-06-12 Per Bothner <per@bothner.com>
  231. * Strings.java (indirectIndexed): New method.
  232. * Range.java (isUnbounded): New method.
  233. * IndirectIndexedSeq.java: New class.
  234. * S32Vector.java: Also implement IntSequence.
  235. * Sequences.java (asIntSequenceOrNull): New method.
  236. * Range.java (IntRange.getStepInt): New method.
  237. (valueOfUnbounded, valueOfLT, valueOfLE, valueOfGT, valueOfGE):
  238. New factory methods.
  239. 2015-06-11 Per Bothner <per@bothner.com>
  240. * Sequences.java (asSequenceOrNull, coerceToSequence, getSize):
  241. New methods.
  242. (getIterator): Use asSequenceOrNull.
  243. * SubCharSeq.java: Implement Externalizable.
  244. * TreeList.java (getNextKindI): Fix handling of CHAR_FOLLOWS.
  245. 2015-06-10 Per Bothner <per@bothner.com>
  246. Efficient treatment of CharSequences as sequences of Unicode characters.
  247. * AbstractCharVector.java: New abstract class extends SimpleVector.
  248. Move some code from FString.java to here.
  249. * CharSeq.java: Change to extend Sequence<Char> (20-bit code points)
  250. rather than Sequence<Character> (16-bit code units).
  251. (subSequence): Return CharSeq rather than CharSequence.
  252. * CharVector.java: New class, extends AbstractCharVector.
  253. This extends Sequence<Character>, and is meant to wrap char arrays.
  254. * FString.java: Change to extend AbstractCharVector.
  255. * Sequences.java (getIterator): For char[] return a CharVector
  256. rather than an FString.
  257. * CharBuffer.java: Parameterize by Char, not Character.
  258. * Strings.java (characterAt) Add overload which takes start and
  259. end indexes.
  260. * SubCharSeq.java: Parameterize by Char, not Character.
  261. Use new Strings.characterAt method.
  262. * FString.java (delete, insertRepeated): New methods.
  263. (<init>(int,int)): Re-write to use insetRepeated.
  264. 2015-06-07 Per Bothner <per@bothner.com>
  265. Tweak SimpleVector classes for performace (use primitive values more),
  266. and to use new unsigned primitive types.
  267. Also fix pervasive off-by-one comparison bug.
  268. Add add 'add' methods taking primitive value.
  269. * BitVector.java: Parameterize as SimpleVector<Boolean>.
  270. * CharBuffer.java: Parameterize as <Character>.
  271. * CharSeq.java: Parameterize as Sequence<Character>.
  272. * F32Vector.java: Parameterize as SimpleVector<Float>.
  273. * F64Vector.java: Parameterize as SimpleVector<Double>.
  274. * FString.java: Parameterize as SimpleVector<Character>.
  275. * PrimIntegerVector.java: New abstract class extends SimpleVector.
  276. * SimpleVector.java (intAt, intBuffer, longAt, longAtBuffer):
  277. Methods moved to PrimIntegerVector.
  278. * IntVector.java: New abstract class extends PrimIntegerVector.
  279. Move code there from S32Vector and U32Vector.
  280. * S32Vector.java: Change to extend IntVector<Integer>.
  281. * U32Vector.java: Change to extend IntVector<UInt>.
  282. * LongVector.java: New abstract class extends PrimIntegerVector.
  283. Move code there from S64Vector and U64Vector.
  284. * S64Vector.java: Change to extend LongVector<Long>.
  285. * U64Vector.java: Change to extend LongVector<ULong>.
  286. * ByteVector.java: Add type parameter.
  287. * S8Vector.java: Change to extend ByteVector<Byte>.
  288. * U8Vector.java: Change to extend ByteVector<UByte>.
  289. * ShortVector.java: New abstract class extends PrimIntegerVector.
  290. Move code there from S16Vector and U16Vector.
  291. * S16Vector.java: Change to extend ShortVector<Short>.
  292. * U16Vector.java: Change to extend ShortVector<UShort>.
  293. * StableVector.java: Add type parameter.
  294. * SubCharSeq.java: Parameterize as AbstractSequence<Character>.
  295. 2015-06-01 Per Bothner <per@bothner.com>
  296. * SubCharSeq.java: Reimplement to handle substring of arbitrary
  297. CharSequence. Hence we can't extends SubSequence.
  298. * AbstractSequence.java (nextIndex): Make non-abstract by
  299. adding a default implementation.
  300. * Range.java (nextIndex): Remove - subsumed by inherited default.
  301. * GeneralArray1.java (nextIndex): Likewise.
  302. * SimpleVector.java (nextIndex): Likewise.
  303. * SimpleVector.java (removePos): Fix one-by-one error.
  304. (removePos): Fix logic error.
  305. 2015-05-21 Per Bothner <per@bothner.com>
  306. * IntSequence.java: Fix pre-processing syntax error.
  307. 2015-05-20 Per Bothner <per@bothner.com>
  308. * IntSequence.java: New interface.
  309. * Range.java: Implement IntSequence.
  310. (getInt): Rename intAt.
  311. * S32Vector.java: Implement IntSequence.
  312. 2015-05-01 Per Bothner <per@bothner.com>
  313. * AbstractSequence.java (boundedHash): New method.
  314. * LList.java (boundedHash): New method.
  315. * Pair.java (hashCode): Moved to ...
  316. * LList.java (hashCode): ... here.
  317. 2015-04-22 Per Bothner <per@bothner.com>
  318. * SimpleVector.java (setSize): Grow buffer by a factor of 1.5, not 2.
  319. 2015-04-18 Per Bothner <per@bothner.com>
  320. * Sequences.java (subList, drop, drop): New convenience methods.
  321. * FString.java (setCharacterAt): Handle IGNORABLE_CHAR.
  322. (appendCharacter): Likewise.
  323. * Strings.java (characterAt): New method.
  324. 2015-03-11 Per Bothner <per@bothner.com>
  325. * TreeList.java (ensureSpace): Parrial inline to allow overrride
  326. in ValueSpace.
  327. 2015-02-27 Per Bothner <per@bothner.com>
  328. * Sequences.java (CharacterIterator.remove): Add method required
  329. for Java 7 or earlier.
  330. 2015-02-26 Per Bothner <per@bothner.com>
  331. * Sequences.java: New file.
  332. (getIterator): New method.
  333. (class CharacterIterator): New static member class.
  334. * Range.java: New class, extends AbstractSequence.
  335. (class IntRange): New static member class.
  336. 2015-02-24 Per Bothner <per@bothner.com>
  337. Minor performance improvements.
  338. * LListPosition.java (next): New method.
  339. * SeqPosition.java (next): New method. Should be afster/simpler.
  340. Also fixes bug where next would fail if a value is eofValue.
  341. 2014-09-17 Per Bothner <per@bothner.com>
  342. * PairWithPosition.java (init): New method.
  343. (readExternal): Use new init method.
  344. 2014-08-31 Per Bothner <per@bothner.com>
  345. * Makefile.am: Merge in gnu/Makefile.am.
  346. 2014-08-14 Per Bothner <per@bothner.com>
  347. * FString.java (replace): New method.
  348. 2014-08-11 Per Bothner <per@bothner.com>
  349. * FString (append(Object)): New method.
  350. * FString.java (ensureBufferLength, append): Fix logic errors.
  351. 2014-08-08 Per Bothner <per@bothner.com>
  352. * CharBuffer.java (setCharacterAt): Performance improvement.
  353. 2014-08-06 Per Bothner <per@bothner.com>
  354. * CharSeq.java (setCharacterAt): New method.
  355. * CharBuffer.java (setCharacterAt): New method.
  356. (insert): Handle beforemarkers parameter.
  357. * FString.java (<init>(int,char)): Handle parameters to (int,int)
  358. and handle non-BMP characters.
  359. (setCharacterAt): New method.
  360. * SubCharSeq.java (setCharacterAt): New method.
  361. 2014-08-05 Per Bothner <per@bothner.com>
  362. * Strings.java (sizeInCodePoints): New method.
  363. 2014-08-04 Per Bothner <per@bothner.com>
  364. * FString.java (alloc, appendCharacter): New methods.
  365. 2014-05-21 Per Bothner <per@bothner.com>
  366. * TreeList.java (posToDataIndex): Fix thinko in gap handling.
  367. 2014-03-17 Per Bothner <per@bothner.com>
  368. * Blob.java (toString): Added some heuristics - for now just
  369. check for byte-order mark.
  370. 2013-12-21 Per Bothner <per@bothner.com>
  371. * Blob.java: New class, extends U8Vector.
  372. * Makefile.am: Update accordingly.
  373. * ByteVector.java (getInputStream): New method.
  374. 2013-12-20 Per Bothner <per@bothner.com>
  375. * Strings.java (printQuoted): Add escape option value.
  376. * PrintConsumer.java: Add synchronization.
  377. 2013-11-28 Matthieu Vachon <matthieu.o.vachon@gmail.com>
  378. * TreeList.java: Don't use @Override for a method implementing
  379. an interface - Java 5 doesn't like it.
  380. 2013-11-13 Per Bothner <per@bothner.com>
  381. * SimpleVector.java (size): Make protected.
  382. 2013-11-10 Per Bothner <per@bothner.com>
  383. * Pair.java (lastPair): Make non-final.
  384. 2013-11-03 Per Bothner <per@bothner.com>
  385. * AbstractSequence.java (nextIndex): Make abstract, rather than
  386. a circular default that depends on getIndexDifference which
  387. depends on nextIndex.
  388. * GeneralArray.java (nextIndex): New implementation.
  389. * TreeList.java (nextIndex): New implementation.
  390. * AbstractSequence.java (consume(int,int.Consumer)): New method.
  391. * TreeList.java (dump): Handle null object entry.
  392. * SeqPosition.java: Make generic.
  393. * ExtPosition.java: Likewise.
  394. * LListPosition.java: Update accordingly.
  395. (set): Remove now-redundant method.
  396. * LList.java: Add needed generic parameters.
  397. * TreeList.java: Likewise.
  398. * AbstractSequence.java: Likewise.
  399. * AbstractSequence.java (getNextTypeName): Replace null-turning
  400. default implementation with one that calls getNextTypeObject.
  401. * TreeList.java (getNextTypeName): Remove now-redundant method.
  402. * AbstractSequence.java (createPos): Add default implementation.
  403. * SimpleVector.java (createPos): Remove redundant implemengtation.
  404. * GeneralArray1.java (createPos): Likewise.
  405. * GapVector.java (add): Use setBuffer rather than set. The
  406. former may be more efficient, as it doesn't get the old value.
  407. * GapVector.java (consumePosRange): Fix infinite-recursion thinko.
  408. 2013-11-01 Per Bothner <per@bothner.com>
  409. * PositionConsumer.java (consume(SeqPosition)): Rename
  410. to writePosition.
  411. * TreeList.java: Update accordingly.
  412. 2013-10-31 Per Bothner <per@bothner.com>
  413. * SimpleVector.java (consumeNext): Remove redundant method - it
  414. doesn't really buy anything compared to the inherited default.
  415. * BitVector.java, ByteVector.java, F32Vector.java, F64Vector.java,
  416. FString.java, FVector.java, S16Vector.java, S32Vector.java,
  417. S64Vector.java, U16Vector.java, U32Vector.java, U64Vector.java:
  418. Likewise.
  419. * GapVector.java: Add generic parameter.
  420. * SubSequence.java: Likewise.
  421. 2013-10-31 Per Bothner <per@bothner.com>
  422. * SimpleVector.java (setBuffer): Change return type to void.
  423. * BitVector.java, F32Vector.java, F64Vector.java, FString.java,
  424. FVector.java, S16Vector.java, S32Vector.java, S64Vector.java,
  425. S8Vector.java, U16Vector.java, U32Vector.java, U64Vector.java,
  426. U8Vector.java: Update accordingly.
  427. 2013-10-19 David Van Horn
  428. Per Bothner <per@bothner.com>
  429. * RAPair.java: Port to Java of low-level class definition and methods
  430. from SRFI-101 "Purely Functional Random-Access Pairs and Lists"
  431. reference implementation.
  432. * Makefile.am: Update accordingly.
  433. 2013-09-20 Per Bothner <per@bothner.com>
  434. * Consumer.java: If JAVA8 implement java.util.function.Consumer and
  435. java.util.function.PInt,Long,Double}Consumer.
  436. * SimpleVector.java (forEach): New method (optimization) if JAVA8.
  437. 2013-09-15 Per Bothner <per@bothner.com>
  438. * StableVector.java (adjustPositions): Fix off-by-one calculations.
  439. * CharBuffer.java (dump): Adjust for gap size when printing positions.
  440. 2013-09-03 Per Bothner <per@bothner.com>
  441. * PrintConsumer.java (write): The write method is supposed to
  442. take a (start,length)-pair, not a (start,end)-pair.
  443. (append): Update call to write.
  444. 2013-08-31 Per Bothner <per@bothner.com>
  445. * Strings.java (copyInfo): Fix off-by-one error.
  446. 2013-08-25 Per Bothner <per@bothner.com>
  447. * FString.java: Some simplication of constructors that copy a
  448. CharSequence.
  449. * Strings.java (copyInto): New static method, used by string-copy!.
  450. 2013-05-11 Per Bothner <per@bothner.com>
  451. * PrintConsumer.java (write): If range is empty, write empty String.
  452. Thus delimiter actions done for any string get done.
  453. (append): Don't use loop - use above version of write instead.
  454. 2013-03-04 Per Bothner <per@bothner.com>
  455. * Strings.java (printQuoted): Generalize to Appendable.
  456. 2013-02-14 Per Bothner <per@bothner.com>
  457. * Pair.java: Use getCar()/getCdr() instead of accessinging car/cdr
  458. fields directly - which may not work for for subclasses.
  459. * ImmutablePair.java (<init>): Call super constructor.
  460. 2012-11-29 Per Bothner <per@bothner.com>
  461. * U8Vector.java (toUtf): Add (start,length) parameters.
  462. * ByteVector.java (copyFrom): New method.
  463. * FVector.java (copyFrom): New method.
  464. 2012-11-28 Per Bothner <per@bothner.com>
  465. * ByteVector.java (getBuffer): Change return type to public,
  466. to support open-input-bytevector.
  467. 2012-11-27 Per Bothner <per@bothner.com>
  468. * U8Vector.java: New constructor.
  469. (writeTo): Move to super-class.
  470. * ByteVector.java (writeTo): New method, moved from U8Vector.
  471. (copyFrom, readFrom): New methods.
  472. 2012-11-22 Per Bothner <per@bothner.com>
  473. * U8Vector.java (writeTo): New method.
  474. 2012-11-20 Per Bothner <per@bothner.com>
  475. * FString.java (<init>): Add constructor taking StringBuilder,
  476. in addition to ones taking StringBuffer.
  477. * FVector.java (setAll): Rename to ...
  478. (fill): and add optional range parameters.
  479. * SimpleVector.java: Also implement RandomAccess.
  480. 2012-06-08 Per Bothner <per@bothner.com>
  481. * LList.java (toString): Use getCar/getCdr instead of car/cdr.
  482. 2012-01-19 Per Bothner <per@bothner.com>
  483. * LList.java (listRef): Remove method - reimplemented in Scheme.
  484. 2011-12-19 Per Bothner <per@bothner.com>
  485. * U8Vector.java (<init>): Add copy constructors.
  486. (toUtf8): New method.
  487. 2011-07-11 Per Bothner <per@bothner.com>
  488. * ConstVector.java (<init>): New default constructor.
  489. (setDataBackDoor): New method used by LispReader.
  490. * Pair.java (setCarBackdoor): New method used by LispReader.
  491. 2011-04-25 Charles Turner <chturne@gmail.com>
  492. Per Bothner <per@bothner.com>
  493. * LList.java: Give a class identity to the Empty field
  494. for type information
  495. * EmptyList.java (new): New class that identifies empty lists.
  496. * Makefile.am: Update accordingly.
  497. 2011-04-15 Per Bothner <per@bothner.com>
  498. * SimpleVector.java (add): Fix off-by-one bug, reported by Jamison Hope.
  499. 2011-01-03 Per Bothner <per@bothner.com>
  500. * SimpleVector.java (checkCanWrite): New method.
  501. Call checkCanWrite before any mutation.
  502. * FVector.java: Likewise call checkCanWrite before any mutation.
  503. * ConstVector.java: New class, extends FVector.
  504. (checkCanWrite): Override to throw exception.
  505. * Makefile.am: Update.
  506. 2010-11-27 Per Bothner <per@bothner.com>
  507. * AbstractFormat.java (writeObject): Only closeThis, don't close.
  508. 2010-11-21 Per Bothner <per@bothner.com>
  509. Partially generic-ize.
  510. * Sequence.java: Add generic parameter for element type.
  511. * Array.java: Likewise.
  512. * AbstractSequence.java: Likewise.
  513. * ExtSequence.java: Likewise.
  514. * SimpleVector.java: Likewise.
  515. * FVector.java: Likewise.
  516. * SeqPosition.java: Likewise, for pointed-to element type.
  517. 2010-06-30 Per Bothner <per@bothner.com>
  518. * FilterConsumer.java: Change to implement XConsumer.
  519. (writeComment, writeCDATA, writeProcessingInstruction,
  520. beginEntity, endEntity): New methods.
  521. (before): New empty method to provide override hook.
  522. * FilterConsumer.java: (append(CharSequence,int,int),
  523. append(CharSequence)): Re-implement to call write method.
  524. 2010-06-21 Per Bothner <per@bothner.com>
  525. * ByteVector.java: New abstract class, extends SimpleVector.
  526. * S8Vector.java: Change to extend ByteVector.
  527. * U8Vector.java: Likewise.
  528. * Makefile.am: Update accordingly.
  529. 2010-06-18 Per Bothner <per@bothner.com>
  530. * TreeList.java (nextMatching, nextDataIndex): Add missing
  531. FLOAT_FOLLOWS cases.
  532. 2009-11-19 Per Bothner <per@bothner.com>
  533. * StableVector.java (adjustPositions, removePosRange): Fix thinkos.
  534. (checkInvariants): New commented-out test method.
  535. 2009-10-17 Per Bothner <per@bothner.com>
  536. * FVector.java (make): New helper method.
  537. 2009-08-06 Per Bothner <per@bothner.com>
  538. Fix for Savannah bug #27188 "Sequence printing".
  539. * SubSequence.java (startPos, endPos): New methods.
  540. * SubSequence.java (subSequencePos): New optimized method.
  541. * AbstractSequence.java (subList): Use subSequencePos.
  542. 2009-05-12 Per Bothner <per@bothner.com>
  543. * UnescapedData.java: Make UnescapedData implement CharSequence.
  544. 2009-03-13 Per Bothner <per@bothner.com>
  545. * FString.java: Optimize by copying data field to local before loops.
  546. * FVector.java: Likewise.
  547. 2009-03-07 Per Bothner <per@bothner.com>
  548. * Strings.java (printQuoted): Also use R6RS escapes \a, \b, \v, and \f.
  549. 2008-11-10 Per Bothner <per@bothner.com>
  550. * SimpleVector.java (resizeShift): New internal method.
  551. * GapVector.java (gapReserve(int,int)): Optimize so we don't
  552. copy twice when doing gapReserve(int) followed by shiftGap.
  553. * StableVector.java: Similar optimization.
  554. * CharBuffer.java (indexOf): Fix thinko.
  555. 2008-10-29 Per Bothner <per@bothner.com>
  556. * SeqPosition.java (toString): Also write nextIndex().
  557. 2008-06-08 Per Bothner <per@bothner.com>
  558. * ImmutablePair.java: New class, extends Pair.
  559. (setCar, setCdr): Throw exception.
  560. * Makefile.am: Update accordingly.
  561. * PairWithPosition.java: New extends ImmutableList.
  562. * Pair.java (car, cdr): Make protected.
  563. (setCdrBackdoor): New method.
  564. 2008-06-03 Per Bothner <per@bothner.com>
  565. * Pair.java (car, cdr): Make non-public.
  566. (getCar, getCdr, setCar, setCdr): New public accessor methods.
  567. 2008-03-23 Per Bothner <per@bothner.com>
  568. * EofClass.java (eofValue): Fix type of literal. This fixes
  569. code-generator to #!eof.
  570. Fixes Savannah bug #22703 "Wrong type inferred for #!eof".
  571. 2007-12-30 Per Bothner <per@bothner.com>
  572. * FString.java (append(CharSequence,int,int)): Optimize.
  573. * CharBuffer.java (indexOf, lastIndexOf, substring): New methods.
  574. 2007-02-18 Per Bothner <per@bothner.com>
  575. * FString.java (<init>(CharSeq)): Change implementation.
  576. (<init>(CharSequence), <init>CharSequence,int,int)): New methods.
  577. (addAll(CharSequence)): New method.
  578. (addAllString): Generalize to CharSequence and String.
  579. * Strings.java (printQuoted): Change non-use:CharSequence type.
  580. 2007-01-20 Per Bothner <per@bothner.com>
  581. * TreeList.java (writeComment, writeProcessingInstruction):
  582. New overloaded methods.
  583. 2007-01-17 Per Bothner <per@bothner.com>
  584. * TreeList.java (beginEntity, endEntity): Ignore if not at top level.
  585. (stringValue): Fix END_ENTITY handling.
  586. (nextNodeIndex, nextDataIndex): Handle END_ENTITY.
  587. 2007-01-02 Per Bothner <per@bothner.com>
  588. * AbstractFormat.java (writeObject): Leave file path null.
  589. 2006-12-14 Per Bothner <per@bothner.com>
  590. * TreeList.java (nextDataIndex): Handle BEGIN_ENTITY.
  591. 2006-12-06 Per Bothner <per@bothner.com>
  592. * Consumer.java (beginDocument): Renamed to startDocument.
  593. (beginGroup): Renamed to startElement.
  594. (endGroup): Renamed to endElement.
  595. (beginAttribute): Renamed to startAttribute.
  596. * TreeList.java (BEGIN_GROUP_SHORT): Renamed to BEGIN_ELEMENT_SHORT.
  597. (BEGIN_GROUP_SHORT_INDEX_MAX): Renamed to BEGIN_ELEMENT_SHORT_INDEX_MAX.
  598. (END_GROUP_SHORT): Renamed to END_ELEMENT_SHORT.
  599. (BEGIN_GROUP_LONG): Renamed to BEGIN_ELEMENT_LONG.
  600. (END_GROUP_LONG): Renamed to END_ELEMENT_LONG.
  601. * Sequence.java (GROUP_VALUE): Renamed to ELEMENT_VALUE.
  602. * FilterConsumer.java: Update accordingly.
  603. * AbstractFormat.java: Likewise.
  604. * LList.java: Likewise.
  605. * PrintConsumer.java: Likewise.
  606. * FVector.java: Likewise.
  607. * AbstractSequence.java: Likewise.
  608. * ElementPredicate.java: Renamed to ItemPredicate.
  609. * GroupPredicate.java: Renamed to ElementPredicate.
  610. * Makefile.am: Update accordingly.
  611. * NodePredicate.java: Likewise.
  612. * TreeList.java: Likewise.
  613. * AbstractSequence.java: Likewise.
  614. 2006-11-25 Per Bothner <per@bothner.com>
  615. * AbstractSdequence.java (unsupportedException): New static method.
  616. (unsupported): Use it.
  617. 2006-11-22 Per Bothner <per@bothner.com>
  618. Partially revert changes from 11-17 and 11-18.
  619. However, we've renamed writeChar and writeChars to write,
  620. * Consumer.java (append*3): Only define in JAVA5 case.
  621. (write): New/renamed methods.
  622. * FilterConsumer.java: Rename Consumer methods append->write.
  623. * PrintConsumer.java: Likewise.
  624. * TreeList.java: Likewise.
  625. * FString.java: Update accordingly.
  626. * AbstractFormat.java: Likewise.
  627. * LList.java: Likewise.
  628. 2006-11-18 Per Bothner <per@bothner.com>
  629. * Consumer.java (writeChars): Remove method.
  630. * PrintConsumer.java (writeChars): Likewise.
  631. * TreeList.java (writeChars): Likewise.
  632. * FilterConsumer.java (writeChars): Likewise.
  633. (append(CharSequence)): Just call the general case.
  634. * AbstractFormat.java: Update writeChars -> append.
  635. * LList.java: Likewise.
  636. * Consumer.java (append): Make append methods conditional on
  637. CharSequence (which is Java4), rather than JAVA5.
  638. Add fallback case that takes a String.
  639. * FilterConsumer.java: Always implement some append method.
  640. * FString.java: If JAVA5, implement Appendable.
  641. (ensureBufferLength): New method.
  642. (append): Implement methods.
  643. * PrintConsumer.java: Implement append methods.
  644. * TreeList.java: Implement append methods.
  645. * AbstractSequence.java: Remove append methods.
  646. 2006-11-17 Per Bothner <per@bothner.com>
  647. * Consumer.java (append): Make unconditional, rather than JAVA5-only.
  648. (writeChar): Remove, replaced by append.
  649. * PrintConsumer.java: Also rename writeChar to append, but return void.
  650. * AbstractFormat.java: Update writeChar -> append.
  651. * AbstractSequence.java: Likewise.
  652. * FilterConsumer.java: Likewise.
  653. * LLIst.java: Likewise.
  654. * TreeList.java: Likewise.
  655. (CHAR_PAIR_FOLLOWS): Remove code - doesn't really work.
  656. Use a surrugate pair instead.
  657. 2006-11-15 Per Bothner <per@bothner.com>
  658. * TreeList.java (dump): Check for out-of-range object index.
  659. 2006-11-14 Per Bothner <per@bothner.com>
  660. * TreeList.java (writeJoiner): Make public.
  661. * TreeList.java (dump): Write identityHashCode in hex.
  662. 2006-11-13 Per Bothner <per@bothner.com>
  663. * PairWithPosition.java: Implement SourceLocation.
  664. (position): Change interpretation.
  665. * PrintConsumer.java (endNumber): New method, to be overridden.
  666. (writeFloat, writeDouble, writeInt, writeLong): Call endNumber.
  667. 2006-11-09 Per Bothner <per@bothner.com>
  668. * Consumer.java (beginGroup, endGroup): Remove typeName parameter.
  669. (beginAttribute): Remove attrName parameter.
  670. * PrintConsumer.java: Update for Consumer changes
  671. * TreeList.java: Likewise.
  672. (find(Object,Object)): Removed.
  673. *getNextTypeName): Since we don't store group/attribute String names
  674. any more, change to just do toString of getNextTypeObject.
  675. (getNextTypeIndex): Now just inline in getNextTypeObject.
  676. * AbstractFormat.java: Update for Consumer changes
  677. * LList.java: Likewise.
  678. * FVector.java: Likewise.
  679. * NamedChildrenFilter.java: Likewise.
  680. * FilterConsumer.java: Likewise.
  681. (attributeName): Remove no-longer-needed field.
  682. 2006-11-05 Per Bothner <per@bothner.com>
  683. * TreeList.java (MAX_CHAR_SHORT): Make public.
  684. (stringValue): New method.
  685. 2006-10-26 Per Bothner <per@bothner.com>
  686. * TreeList.java (setGroupName): Now also works when the gruupIndex
  687. is a BEGIN_GROUP_LONG, as it is when called from NodeTree.
  688. (BEGIN_ATTRIBUTE_LONG_SIZE, END_ATTRIBUTE_SIZE): New fields.
  689. 2006-10-24 Per Bothner <per@bothner.com>
  690. * TreeList.java (currentParent): Initial value should be -1,
  691. (BEGIN_ENTITY, BEGIN_DOCUMEMT): Clarify parent_offset semantics.
  692. (beginEntity, endEntity, beginDocument, endDocument, parentOrEntityI):
  693. Fix accordingly.
  694. (endDocument, endEntity): Add sanity checks.
  695. (posToDataIndex): Fix ipos/index confusion and lack of updating.
  696. (dump): Print raw parent offset for BEGIN_DOCUMENT/BEGIN_ENTITY.
  697. 2006-10-22 Per Bothner <per@bothner.com>
  698. * XConsumer.java (writeBaseUri): Remove method.
  699. (beginEntity, endEntity): New methods.
  700. * TreeList.java (BASE_URI): Removed constant.
  701. (BEGIN_ENTITY, BEGIN_ENTITY_SIZE, END_ENITY): New constants.
  702. (BEGIN_DOCUMENT): Now also includes parent_offset operand.
  703. (beginDocument): Also store parent offset.
  704. (writeBaseUri): Removed method.
  705. (beginEntity, endEntity): New methods.
  706. (parentOrEntityPos, parentOrEntityI, getNextKindI): New methods.
  707. (parentPos): Use new methods.
  708. * AbstractSequence.java (baseUriOfPos): Remove method.
  709. 2006-09-28 Per Bothner <per@bothner.com>
  710. * TreeList.java (DOCUMENT_URI): New constant.
  711. (writeDocumentUri): New method.
  712. (documentUriOfPos): New method.
  713. (gotoChildrenStart, consumeIRange, toString, getNextKind, stringValue,
  714. nextNodeIndex, nextMatching, baseUriOfPos, dump): Handle DOCUMENT_URI.
  715. * TreeList.java (dump, baseUriOfPos): Fix bugs in handling of
  716. PROCESSING_INSTRUCTION.
  717. 2006-09-26 Per Bothner <per@bothner.com>
  718. * TreeList.java (clear): Also reset oindex field.
  719. * TreeList.java (dump): Print hash code in hex.
  720. * TreeList.java (dump): Normally suppress printing follow-on words.
  721. * TreeList.java (setGroupName, setAttributeName): New methods
  722. 2006-09-14 Per Bothner <per@bothner.com>
  723. * TreeList.java (getAttributeCount): New method.
  724. * TreeList.java (nextMatching): Allow -1 for 'limit'.
  725. * AbstractSequence.java (firstChildPos(int,ElementPredicate)): New.
  726. 2006-09-11 Per Bothner <per@bothner.com>
  727. * TreeList.java: Remove unused local variables.
  728. 2006-09-06 Per Bothner <per@bothner.com>
  729. * SimpleVector.java (remove): Remove unused local 'result'.
  730. * TreeList.java (nextMatching): Removed unused locals 'j' and checkAll.
  731. 2006-06-16 Per Bothner <per@bothner.com>
  732. * Consumer.java (endAttribute): Note we allow unmatched endAttribute,
  733. to indicate end of a parameter in a function parameter list.
  734. * TreeList.java (endAttribute): Handle unmatched endAttribute.
  735. * TreeList.java (writeObject): No special handling of SeqPosition.
  736. It is not needed, and is wrong if given a JEmacs marker.
  737. 2006-06-12 Per Bothner <per@bothner.com>
  738. * LList.java (get): Throw IndexOutOfBoundsException rather than
  739. ArrayIndexOutOfBoundsException since we're not an array.
  740. * Sequence.java (set): Declare new method.
  741. 2006-06-04 Per Bothner <per@bothner.com>
  742. * TreeList.java (JOINER): New constant.
  743. (writeJoiner): New method.
  744. (writeChars, write): Call writeJoiner if no characters.
  745. (gotoChildrenStart): Skip bogus/pointless initial JOINER.
  746. (stringValue): Add spaces between atomic items.
  747. (nextNodeIndex, nextMatching): Skip JOINER.
  748. (nextDataIndex, dump): Handle JOINER.
  749. 2006-04-13 Per Bothner <per@bothner.com>
  750. * TreeList.java (beginGroup): Fix error in "popping" currentParent.
  751. * TreeList.java (dump): New debug helper method.
  752. 2006-03-15 Per Bothner <per@bothner.com>
  753. * FilterConsumer.java (beforeContent): New sub-class hook.
  754. Call it before the various writeXxx methods.
  755. (inAttribute, attributeName, attributeType): New convience
  756. fields for sub-class use.
  757. * TreeList.java (getNextTypeIndex): Take extra parameter to indicate
  758. if we want type-name or type-object. This is needed to make it work
  759. for processing-instructions, whihc only have one objects array entry.
  760. 2005-12-30 Per Bothner <per@bothner.com>
  761. * Strings.java (printQuoted): Allow any CharSequence, not just
  762. CharSeq, if java.lang.CharSequence is available - e.g. JDK 1.4 or later.
  763. 2005-12-18 Per Bothner <per@bothner.com>
  764. * GapVector.java: Add protected no-arg constructor, for serialization.
  765. * StableVector.java: Likewise.
  766. * CharBuffer.java: Likewise. Also implement java.io.Serializable.
  767. * StableVector.java (remove): Fix buggy position adjustment.
  768. * CharBuffer.java (dump): Suppress printing unused positions.
  769. 2005-12-11 Per Bothner <per@bothner.com>
  770. * GapVector.java (getSegment): New method, based on old getChars
  771. method in gnu.jemacs.swing.BufferContent.
  772. (removePosRange): Fix thinko in calculating where to shiftGap.
  773. * StableVector.java (chainFreelist): Fix two thinkos.
  774. (removePosRange): We have to unchainFreelist before we can
  775. loop over the positions.
  776. * CharBuffer.java (toString): Use new getSegment method.
  777. (dump): Moved from gnu.jemacs.swing.BufferContent.
  778. 2005-12-05 Per Bothner <per@bothner.com>
  779. * AbstractFormat.java (beginGroup): Emit a space after the typename.
  780. (beginAttribute): Don't need an initial space.
  781. 2005-12-03 Per Bothner <per@bothner.com>
  782. * AbstractSequence.java (consumePosRange): Add missing nextPos call.
  783. Ooops.
  784. * GeneralArray1.java (createPos, nextPos): Need to define these,
  785. since the ones in AbstractSequence are mutually dependent, and it
  786. matters since GeneralArray1 but not GeneralArray implements Sequence.
  787. (consumePosRange): Optimization.
  788. 2005-11-29 Per Bothner <per@bothner.com>
  789. * LList.java (consX): New method.
  790. 2005-11-14 thomas kirk <tk@research.att.com>
  791. * AbstractFormat.java (format): Close OutPort.
  792. 2005-11-03 Per Bothner <per@bothner.com>
  793. * AbstractFormat.java (beginAttribute, endAttribute): New methods.
  794. 2005-08-16 Per Bothner <per@bothner.com>
  795. * PositionConsumer.java (consume) Change return type to void.
  796. (writePosition): Likewise.
  797. * TreeList.java (consume, writePosition): Update accordingly.
  798. 2005-07-21 Per Bothner <per@bothner.com>
  799. * AbstractFormat.java (writeBoolean): Use target's writeBoolean.
  800. 2005-06-15 Per Bothner <per@bothner.com>
  801. * SeqPosition.java (nextElement): Remove redundant throws specifier.
  802. 2005-06-04 Per Bothner <per@bothner.com>
  803. * AbstractFormat.java: Moved from gnu.kawa.util.
  804. * Makefile.am: Update accordingly.
  805. * FormatToConsumer.java: Remove interface. Use AbstractFormat instead.
  806. * Makefile.am: Update accordingly.
  807. * Consumer.java: If JAVA5 is defined, extend Appendable.
  808. (append): Add 3 methods, if JAVA5 is defined,
  809. * String.java: Remove now-redundant implements of Appendable.
  810. * FilterConsumer.java (append): Add 3 methods, if JAVA5 is defined,
  811. 2005-04-18 Per Bothner <per@bothner.com>
  812. * CharSeq.java: Use use:java.lang.CharSequence conditional instead
  813. of JAVA5, where appropriate. Make it the default.
  814. * FString.java: Likewise.
  815. * CharBuffer.java: Likewise.
  816. * SubCharSeq.java: Likewise.
  817. (subCharSeq): New provate helper method - not needed if JAVA 5.
  818. 2005-04-03 Per Bothner <per@bothner.com>
  819. * AbstractSequence.java: Fix two javadoc typos.
  820. 2005-03-17 Per Bothner <per@bothner.com>
  821. * LList.java (checkNonList): New static helper function.
  822. (consume, toString): Use checkNonList.
  823. Fixes Savannah bug #12216.
  824. 2005-01-07 Per Bothner <per@bothner.com>
  825. * CharSeq.java: #ifdef JAVA5 also extend CharSequence.
  826. (writeTo): If Java 5, output is Appendable, not Writer.
  827. * SubCharSeq.java: New class extends SubSequence implements CharSeq.
  828. * Makefile.am: Update accordingly.
  829. * AbstractSequence.java (append): New Java5 methods.
  830. * CharBuffer.java (subSequence, writeTo): New Java 5 methods.
  831. * FString.java: #ifdfe JAVA5, implement Appendable.
  832. (subSequence, append, writeTo): New Java 5 methods.
  833. * PrintConsumer.java: #ifdef JAVA5, implement Appendable.
  834. (append): New Jav5 methods.
  835. * TreeList.java (append): Make methods return more specific TreeList.
  836. * LList.java: Partially de-tabify.
  837. * SimpleVector.java: Likewise.
  838. * SubSequence.java (get): Check index in range.
  839. 2005-01-02 Per Bothner <per@bothner.com>
  840. * AbstractSequence.java, Convert.java, EofClass.java, F32Vector.java,
  841. F64Vector.java, FString.java, FVector.java, LList.java, Pair.java,
  842. S16Vector.java, S32Vector.java, S64Vector.java, S8Vector.java,
  843. SeqPosition.java, Sequence.java, SimpleVector.java, TreeList.java,
  844. U16Vector.java, U32Vector.java, U64Vector.java, U8Vector.java:
  845. Change "select" (preprocessor) syntax.
  846. 2004-11-06 Per Bothner <per@bothner.com>
  847. * LList.java (compareTo): Move comment, so it doesn't get
  848. removed by select-java1.
  849. * TreeList.java: If JAVA5 is selected, implement Appendable.
  850. 2004-08-31 Per Bothner <per@bothner.com>
  851. * AbstractSequence.java (getIterator(int)): New overloaded method.
  852. (getIterator(), listIterator): Define in terms of new method.
  853. * LList.java (getIterator(int)): New method replaces getIterator().
  854. * ExtPosition.java (finalize): Rename to release.
  855. Just use the inherited finalize.
  856. * TreePosition.java (clear): Rename to release.
  857. (set): Change to use clear.
  858. (finalize): Remove as being redundant.
  859. * LListPosition.java (set): Clear xpos if we're not setting it.
  860. (set): New overloaded method, to override inherited method.
  861. (gotoPrevious): Add cast to pick specific method.
  862. * LListPosition.java (hasPrevious): New method.
  863. * LListPosition.java (getNextPair): Take cdr of result.
  864. * LListPosition.java (getNextPair): Take cdr of result.
  865. * PositionManager.java (getPositionObject, register, release):
  866. Add synchronization.
  867. * SeqPosition.java (previous): Use getPrevious method.
  868. 2004-08-04 Christian Surlykke <christian@surlykke.dk>
  869. * GapVector.java: (GapVector) Initialization of gapStart and gapEnd.
  870. 2004-08-19 Per Bothner <per@bothner.com>
  871. * GapVector.java (gapReserve): Use setSize to change base.size,
  872. rather than setBufferLength, which doesn't update size.
  873. (size, hasNext, fill, gapReserve, nextIndex): Use base.size
  874. rather than getBufferLength for performance and consistency.
  875. 2004-08-08 Chris Dean <ctdean@sokitomi.com>
  876. * FString.java (addAllStrings): Only grow the internal buffer.
  877. 2004-07-20 Per Bothner <per@bothner.com>
  878. * LList.java: Remove useless import statements.
  879. * Sequence.java: Likewise.
  880. 2004-05-29 Per Bothner <per@bothner.com>
  881. * TreeList.java (nextDataIndex): Fix thinko.
  882. 2004-05-20 Per Bothner <per@bothner.com>
  883. * TreeList.java (PROCESSING_INSTRUCTION): Make protected.
  884. * Sequence.java (CDATA_VALUE): New constant.
  885. * TreeList.java (getNextKind): Return CDATA_VALUE if CDATA_SECTION.
  886. * AbstractSequence.java (getIteratorAtPos): Add a copyPos.
  887. * TreeList.java (consumeIRange): Use getIteratorAtPos.
  888. (toString): Likewise.
  889. * TreeList.java (toString): Print separator.
  890. 2004-05-18 Per Bothner <per@bothner.com>
  891. * TreeList.java (statistics): New methods.
  892. 2004-05-05 Per Bothner <per@bothner.com>
  893. * XConsumer.java (writeCDATA): New method.
  894. * TreeList.java (CDATA_SECTION): New constant.
  895. (writeCData): New method.
  896. (consumeIRange, toString, getNextKind, stringValue, nextNodeIndex,
  897. nextMatching, nextDataIndex, dump): Handle CDATA_SECTION.
  898. 2004-05-04 Per Bothner <per@bothner.com>
  899. * SimpleVector.java (compareToInt, compareToLong): New helper methods.
  900. * F32Vector.java: Implement Comparable, if JAVA2..
  901. (compareTo): New method.
  902. * F64Vector.java: Likewise.
  903. * FVector.java: Likewise.
  904. * U64Vector.java: Likewise.
  905. * S8Vector.java: Likewise - using compareToInt.
  906. * S16Vector.java: Likewise.
  907. * S32Vector.java: Likewise.
  908. * U8Vector.java: Likewise.
  909. * U16Vector.java: Likewise.
  910. * S64Vector.java: Likewise - using compareToLong.
  911. * U32Vector.java: Likewise.
  912. * LList.java: Implement Comparable, if JAVA2.
  913. (compareTo): New method.
  914. * Pair.java (compareTo): Two new methods.
  915. 2004-04-22 Per Bothner <per@bothner.com>
  916. * FString.java: Implement Comparable, if JAVA2.
  917. (compareTo): New method.
  918. 2004-04-18 Per Bothner <per@bothner.com>
  919. * XConsumer.java (XConsumer): New interface, extends Consumer.
  920. * Makefile.am: Update accordingly.
  921. * Sequence.java (COMMENT_VALUE, PROCESSING_INSTRUCTION_VALUE): New
  922. constants.
  923. * TreeList.java: Implement XConsumer.
  924. (COMMENT, PROCESSING_INSTRUCTION): New contants.
  925. (writeComment, writeProcessingInstruction): New methods.
  926. (consumeIRange, toString, getNextKind, stringValue, nextNodeIndex,
  927. nextMatching, nextDataIndex, dump): Handle new node kinds.
  928. 2004-01-27 Rafael Jesus Alcantara Perez <rafa@dedaloingenieros.com>
  929. * Pair.java (lastPair): Fix thinko.
  930. 2004-01-12 Per Bothner <per@bothner.com>
  931. * TreeList.java (parentPos): The begin-offset is just one word.
  932. Fixes bug reported 2003-11-29 by sascha_opletal@web.de.
  933. 2004-01-04 Per Bothner <per@bothner.com>
  934. * AbstractSequence.java (getIteratorAtPos): New method.
  935. * TreeList.java (getPosNext): Use getIteratorAtPos method, which
  936. is overridden by NodeTree to return a KNode.
  937. * TreeList.java (BEGIN_ATTRIBUTE_LONG, BEGIN_DOCUMENT, END_DOCUMENT,
  938. END_GROUP_SHORT, END_GROUP_LONG): Make protected.
  939. 2003-11-16 Per Bothner <per@bothner.com>
  940. * Pair.java (readResolve): New method.
  941. * PairWithPosition.java (<init>): New default constructor.
  942. 2003-11-09 Chris Dean <Chris.Dean@sokitomi.com>
  943. * FString.java (addAll): New method to add an FString directly.
  944. * FString.java (addAllStrings): New method to add an array of
  945. FStrings.
  946. 2003-11-09 Per Bothner <per@bothner.com>
  947. * SeqPosition.java (toString): Rename to toInfo, and add new toString.
  948. 2003-11-03 Per Bothner <per@bothner.com>
  949. * UnescapedData.java: New longer implement Consumable.
  950. (consume): Remove method.
  951. 2003-10-07 Per Bothner <per@bothner.com>
  952. * AbstractSequence.java (equals): If either operand is non-List
  953. or non-Sequence, just compare using identity.
  954. 2003-10-02 Per Bothner <per@bothner.com>
  955. * Sequence.java: Move class EofClass to separate file.
  956. * Makefile.am: Update accordingly.
  957. * EofClass.java: Make class public.
  958. (eofValue): New public field.
  959. * Sequence.java (eofValue): Make same as EofClass.eofValue.
  960. 2003-09-30 Per Bothner <per@bothner.com>
  961. * TreeList.java (INT_FOLLOWS): Make public - used by CallContext.
  962. * TreeList.java (getPosNextInt): New method.
  963. 2003-09-24 Per Bothner <per@bothner.com>
  964. * TreeList.java (copyToList): Revert use of gnu.xml.NodeTree.
  965. 2003-09-23 Per Bothner <per@bothner.com>
  966. * LList.java (makeList): Generalize parameter to java.util.List,
  967. but only if JAVA2.
  968. * FVector.java (<init>)(Sequence)): Likewise.
  969. 2003-09-14 Per Bothner <per@bothner.com>
  970. * AbstractSequence.java (nextMatching): New method.
  971. * TreeList.java (newMatching): New method, based on nextMatchingChild.
  972. (nextMatchingChild): Remove.
  973. 2003-09-09 Per Bothner <per@bothner.com>
  974. * AbstractSequence.java (nextIndex): Use getIndexDifference.
  975. * TreeList.java (getIndexDifference): New method.
  976. 2003-09-04 Per Bothner <per@bothner.com>
  977. * TreeList.java (dump): Print attribute type as well as name.
  978. 2003-08-02 Per Bothner <per@bothner.com>
  979. * AbstractSequence.java (firstAttributePos): New method.
  980. * TreeList.java (firstAttributePos): New method.
  981. * AttributePredicate.java (isInstance): Remove xpos parameter.
  982. * TreeList.java (createPos): Just call createRelativePos.
  983. (createRelativePos): Fix some corner cases.
  984. * TreeList.java (posToDataIndex): Fix some corner cases.
  985. * TreeList.java (copyToList): New method.
  986. This is a kludge, since it creates a gnu.xml.NodeTree.
  987. (getPosNext): Use use copyToList when copying to new TreeList.
  988. * TreeList.java (compare): Simplify and fix using posToDataIndex.
  989. 2003-07-26 Per Bothner <per@bothner.com>
  990. * TreeList.java (POSITION_PAIR_FOLLOWS): Make protected.
  991. * TreeList.java (dump): Also print identityHashCode.
  992. 2003-07-23 Per Bothner <per@bothner.com>
  993. * AbstractSequence.java (stableCompare): New method.
  994. (compare): New static 4-argument method.
  995. 2003-07-10 Per Bothner <per@bothner.com>
  996. * AbstractSequence.java (consumeNext): Hopefully more efficient.
  997. * TreeList.java (dump): Write out class name.
  998. 2003-05-09 Per Bothner <per@bothner.com>
  999. * AbstractSequence.java.in, Convert.java.in, SeqPosition.java.in,
  1000. Sequence.java.in, SimpleVector.java.in: Renamed to ...
  1001. * AbstractSequence.java, Convert.java, SeqPosition.java, Sequence.java,
  1002. SimpleVector.java: New files, using new JAVA1/JAVA2 framework.
  1003. * Makefile.am: Updated accordingly.
  1004. Various cleanups followed.
  1005. * LList.java (class LListPostion): Moved to ...
  1006. * LListPosition.java: .. new file, as it is also used by Pair.java.
  1007. 2003-05-03 Per Bothner <per@bothner.com>
  1008. * AbstractSequence.java.in (addAll): Fix typo in non-collections case.
  1009. 2003-04-08 Per Bothner <per@bothner.com>
  1010. * Sequence.java.in (EofClass): New non-public class.
  1011. (eofValue): Use EofClass instance.
  1012. 2003-04-05 Per Bothner <per@bothner.com>
  1013. * GeneralArray.java (toString): Two new methods.
  1014. 2003-03-13 Per Bothner <per@bothner.com>
  1015. * TreeList.java (consumeIRange): Fix typo in BASE_URI handling.
  1016. 2003-03-02 Per Bothner <per@bothner.com>
  1017. * AbstractSequence.java.in (getPosPrevious): Make public.
  1018. * SubSequence.java (getPosPrevious): Likewise.
  1019. * TreeList.java (getPosPrevious): Likewise.
  1020. 2003-02-19 Per Bothner <per@bothner.com>
  1021. * TreeList.java (oindex): Field moved here from ValuesStack.
  1022. (availOject): Removed field
  1023. (find(Object), find(Object,Object)): Methods moved here
  1024. from ValuesStack. This fixes quadratic behavior, at the cost of
  1025. not sharing duplicate indexes.
  1026. 2003-02-13 Per Bothner <per@bothner.com>
  1027. * AbstractSequence.java.in (parentPos, baseUriOfPos): New methods.
  1028. * TreeList.java (BASE_URI): New constant.
  1029. (writeBaseUri): New method, to add base-uri property.
  1030. (baseUriOfPos): New method.
  1031. (gotoChildrenStart): Skip BASE_URI for documents and groups.
  1032. (consumeIRange, dump): Handle BASE_URI.
  1033. (toString, stringValue, nextNodeIndex, nextMatchingChild):
  1034. Skip BASE_URI.
  1035. (parentPos): New method.
  1036. * TreeList.java (curerntBeginGroup): Re-named to currentParent.
  1037. (beginDocument, endDocument): Set and clear currentParent.
  1038. 2003-01-05 Per Bothner <per@bothner.com>
  1039. Replace position triples (including xpos), with positions pairs,
  1040. using just an 'int' "Pos" cookie to identify a position.
  1041. * PositionContainer.java: Remove no-longer-useful interface.
  1042. * AbstractSequence.java.in (fillPosRange): New method.
  1043. (fill): Re-write to use nextPos+setPosPrevious.
  1044. (elements, iterator): Use getIterator and make final.
  1045. (getIterator): Default implementation uses startPos.
  1046. (indexOf, removeAll, retailAll, toArray, hashCode): Re-implement using
  1047. startPos+nextPos+getPosPrevious.
  1048. (contains): Re-implement to just call indexOf.
  1049. (containsAll): Fix bug.
  1050. (listIterator): Use new SeqPosition constructor.
  1051. (add, releasePosition, copyPosition, gotoNext, gotoPrevious):
  1052. Remove methods taking a PositionContainer.
  1053. (addPos): New method.
  1054. (removePos): Renamed from remove. Remove xpos parameter. Update.
  1055. (removePosRange): Renamed from remove. Remove xpos parameters.
  1056. (isAfter): Rename to isAfterPos. Remove xpos parameter.
  1057. (getNext): Renamed to getPosNext. Remove xpos parameter.
  1058. (getPrevious): Renamed to getPosPrevious. Remove xpos parameter.
  1059. (subSequence): Renamed to subSequencePos. Remove xpos parameter.
  1060. (setNext): Renamed to setPosNext. Remove xpos parameter.
  1061. (setPrevious): Renamed to setPosPrevious. Remove xpos parameter.
  1062. (consume): Renamed to consumePosRange. Remove xpos parameters.
  1063. (getIndexDifference, nextIndex, getContainingSequenceSize, hasNext,
  1064. fromEndIndex, getNextKind, getNextTypeName, getNextTypeObject, equals,
  1065. compare, hasPrevious, consumeNext): Remove xpos parameter.
  1066. (remove(int)): Re-implement using createPos+getNext+removePos.
  1067. (remove(Object)): Likewise.
  1068. (clear): Re-implement using removePos.
  1069. (createPos): New abstract method.
  1070. (makePosition, createPosition, makeRelativePosition,
  1071. makeStartPosition, makeEndPosition): Remove methods.
  1072. (createRelativePos, startPos, endPos, releasePos, copyPos, nextPos,
  1073. previousPos, firstChildPos): New methods.
  1074. (subList): Re-implement using createPos.
  1075. (toString(String,StringBuffer)): New helper method.
  1076. * SeqPosition.java.in: No longer implement PositionContainer.
  1077. (getPositionInt, getPositionPtr, setPosition, setSequence,
  1078. countPositions): Remove PositionContainer methods.
  1079. (xpos): Remove field.
  1080. (toString): Don't print xpos.
  1081. (hasNext, getNextKind, getNextTypeName, getNextTypeObject, hasPrevious,
  1082. getNext, nextIndex, fromEndIndex, getContainingSequenceSize, isAfter,
  1083. previousIndex, remove, add, init, release): Don't pass xpos to
  1084. corresponding sequence method.
  1085. (<init>(AbstractSequence,int,boolean)): Re-implement using createPos.
  1086. (<init>(AbstractSequence,int,Object)): Remove xpos parameter.
  1087. (make): Likewise.
  1088. (copy): New method.
  1089. (gotoStart): Re-implement using setPos and startPos.
  1090. (gotoEnd): Re-implement using setPos and endPos.
  1091. (gotoChildrenStart): New method.
  1092. (hasMoreElements): Use hasNext and make final.
  1093. (gotoNext): Make non-final. Use nextPos.
  1094. (gotoPrevious): New method.
  1095. (next): Use getNext and gotNext methods in this class, not sequence.
  1096. (previous): Use getPosPrevious and new gotoPrevious method.
  1097. (nextElement): Make final, define in terms of next.
  1098. (nextIndex): Make non-final.
  1099. (getNext, getPrevious) Use renamed getPosNext, getPosPrevious.
  1100. (init, release): Update for renamed releasePos, copyPos.
  1101. (setNext, setPrevious): New methods.
  1102. (set) Use them.
  1103. (setPos, setPos): New methods.
  1104. (init): Renamed to set.
  1105. (getPos): New method.
  1106. (various): Use getPos instead of accessing ipos directly.
  1107. * SimpleVector.java.in (createPosition): Rename to createPos.
  1108. (isAfter): Rename to isAfterPos. Remove xpos parameter.
  1109. (getNext): Rename to getPosNext. Remove xpos parameter.
  1110. (remove): Rename to consumePosRange. Remove xpos parameters.
  1111. (consume): Rename to getPosNext. Remove xpos parameter.
  1112. (nextIndex, consumeNext, getNextKind): Remove xpos parameter.
  1113. (nextPos): New method.
  1114. (add): Remove methods taking a PositionContainer.
  1115. (addPos): New method.
  1116. * U8Vector.java, U16Vector.java, U32Vector.java, U64Vector.java,
  1117. S8Vector.java, S16Vector.java, S32Vector.java, S64Vector.java,
  1118. F32Vector.java, F64Vector.java, FString.java, FVector.java,
  1119. BitVector.java (consumeNext): Remove xpos parameter.
  1120. (remove): Rename to consumePosRange. Remove xpos parameters.
  1121. * FVector.java (consumePosRange): New method.
  1122. * GapVector.java (add): Remove methods taking a PositionContainer.
  1123. (addPos): New method.
  1124. (nextIndex, nextIndex, getNextKind): Remove xpos parameter.
  1125. (remove): Rename to consumePosRange. Remove xpos parameters.
  1126. (clear): Remove - use inherited method.
  1127. (createPosition): Rename to createPos.
  1128. (consume): Renamed to consumePosRange. Rmeove xpos parammeters.
  1129. (fill): Replaced by fillPosRange.
  1130. * StableVector.java (createPosition): Rename to createPos.
  1131. (startPos, endPos, nextPos. copyPos, addPos): New methods.
  1132. (makeStartPosition, makeEndPosition, gotoNext, copyPosition, add):
  1133. Removed methods.
  1134. (isAfter): Rename to isAfterPos.
  1135. (hasNext, nextIndex): Remove xpos parameter.
  1136. (releasePosition): Renamed to releasePos. Remove xpos parameter.
  1137. (remove): Renamed to removePosRange. Rmeove xpos parammeters.
  1138. (consume): Renamed to consumePosRange. Rmeove xpos parammeters.
  1139. (fillPosRange): New method.
  1140. * CharBuffer.java (delete): Use createPos+removePos.
  1141. * GeneralArray.java (createPos): New method.
  1142. * SubSequence.java: No longer implement PositionContainer.
  1143. (xpos0, xpos1): Remove fields.
  1144. (<init>): New constructor.
  1145. Update various methods.
  1146. * PositionManager.java: New class.
  1147. * ExtPosition.java: New class, extends SeqPosition.
  1148. * ExtSequence: New abatract class; extends AbstacrtSequence.
  1149. * ElementPredicate.java (isInstance): Renamed to isInstancePos,
  1150. remove xpos parameter.
  1151. * GroupPredicate.java: Remove xpos parameter.
  1152. * LList.java: new inherit from ExtSequence.
  1153. (getIterator, createPos, createRelativePos): New methods.
  1154. (various): Other updates; some logic moved to LListPosition.
  1155. (makePosition): Removed PositionContainer method.
  1156. (class LListPosition): New, inherits from ExtPosition.
  1157. * Pair.java (hasNext, nextPos, getPosNext, getPosPrevious, lastPair,
  1158. getPosPrevious, lastPaur): New methods.
  1159. * TreeList.java (consumeRange): Rebane to consumeIRange.
  1160. Fix bug in INT_FOLLOWS/FLOAT_FOLLOWS/LONG_FOLLOWS/DOUBLE_FOLLOWS cases.
  1161. (consumePosRange): New method.
  1162. (POSITION_TRIPLE_FOLLOWS): Renamed to POSITION_PAIR_FOLLOWS.
  1163. (posToDataIndex, firstChildPos, toSrring, compare, hashCode):
  1164. New methods.
  1165. (various): Update various methods.
  1166. * PositionConsumer.java (consume): Take SeqPosition, not TreePosition.
  1167. (wrotePosition): Remove xpos parameter.
  1168. * TreePosition.java (xpos): "New" field, now private and here.
  1169. (xstack): Removed.
  1170. Remove PosutionContainer methods.
  1171. Various updates.
  1172. * TreePositionList.java: Removed, since it was unused.
  1173. * Makefile.am: Update accordingly.
  1174. * package.html: Update for new world.
  1175. 2003-01-06 Per Bothner <per@bothner.com>
  1176. * AbstractSequence.java.in (isEmpty): Fix obvious thinko.
  1177. 2003-01-05 Per Bothner <per@bothner.com>
  1178. * LList.java (toString): New method.
  1179. 2002-09-21 Per Bothner <per@bothner.com>
  1180. * TreeList.java (getIntN): Mask with 0xFFFF, in case low word is < 0.
  1181. (getLongN): Likewise, and force shifts to be long.
  1182. 2002-07-24 Per Bothner <per@bothner.com>
  1183. * LList.java (getPrevious, setPrevious): New methods.
  1184. 2002-06-10 Per Bothner <per@bothner.com>
  1185. * Array.java (isEmpty, getRowMajor, getLowBound, getSize, transpose):
  1186. New methods.
  1187. * GeneralArray.java: Extend AbstractSequence.
  1188. Generalize to arbitrary lower bound.
  1189. (makeSimple, get, getRowMajor, getLowBound, getSize, transpose):
  1190. New methods.
  1191. * Sequence.java.in: Don't implement Array.
  1192. * SimpleVector.java.in: Do implement Array.
  1193. (getRowMajor, transpose): New methods.
  1194. * AbstractSequence.java.in (getLowBound(int), getSize(int)): New.
  1195. * GeneralArray1.java: New class, extends GeneralArray and Sequence.
  1196. * Makefile.am: (java_sources): Update accordingly.
  1197. * FVector.java (<init>): Don't set initial value if it is null.
  1198. 2002-05-06 Per Bothner <per@bothner.com>
  1199. * TreeList.java (find(Object), find (Object,Object)): Make public.
  1200. * TreePosition.java (depth): New field.
  1201. (set, getRoot, push, popNoRelease, getAncestor, dump): Use depth.
  1202. 2002-04-18 Per Bothner <per@bothner.com>
  1203. * AbstractSequence.java.in (createPosition): New semi-abstract method.
  1204. (makePosition): New default implementation uses createPosition.
  1205. * GapVector.java (makePosition): Remove - just use inherited default.
  1206. (createPosition): New method.
  1207. * SimpleVector.java.in (makePosition): Likewise remove.
  1208. (createPosition): New method.
  1209. * StableVector.java (makePosition): Likewise remove.
  1210. * TreePositionList.java (makePosition): Likewise remove.
  1211. (createPosition): New method.
  1212. * TreePosition.java (<init>): Just call super constructor.
  1213. * TreeList.java (makePosition): Likewise remove.
  1214. (createPosition): New method.
  1215. * TreeList.java (stringValue): Use nextNodeIndex.
  1216. 2002-04-06 Per Bothner <per@bothner.com>
  1217. * NodePredicate.java: New class, extends ElementPredicate.
  1218. * GroupPredicate.java: Change to extend NodePredicate.
  1219. * AttributePredicate.java: New class, extends NodePredicate.
  1220. * Makefile.am (java_sources); Add new classes.
  1221. * TreeList.java (nextMatchingChild): Generalize to take en
  1222. ElementPredicate instead of a GroupPredicate.
  1223. * TreeList.java (nextNodeIndex): New method.
  1224. (consumeNext): Call nextNodeIndex.
  1225. * TreeList.java (hasNext): Return false also for END_DOCUMENT.
  1226. * AbstractSequence.java.in (hasNext): Make public.
  1227. * GapVector.java (hasNext): Likewise.
  1228. * LList.java (hasNext): Likewise.
  1229. * StableVector.java (hasNext): Likewise.
  1230. 2002-03-19 Per Bothner <per@bothner.com>
  1231. * AbstractSequence.java.in (remove): Make public.
  1232. * SimpleVector.java.in (remove): Make public.
  1233. * StableVector.java (makePosition): Make public.
  1234. 2002-02-16 Per Bothner <per@bothner.com>
  1235. * UnescapedData.java: Implement Consumable..
  1236. (consume): New method.
  1237. 2002-02-05 Per Bothner <per@bothner.com>
  1238. * TreeList.java (getNextTypeIndex): Fix bad BEGIN_GROUP_LONG handling.
  1239. * TreeList.java (nextMatchingChild): New method.
  1240. * ElementPredicate.java: New interface.
  1241. * GroupPredicate.java: New interface, extends ElementPredicate.java.
  1242. * Makefile.am (java_sources): Update accordingly.
  1243. 2002-02-01 Per Bothner <per@bothner.com>
  1244. * PrintConsumer.java (writeInt): Add missing startNumber call.
  1245. 2002-01-23 Per Bothner <per@bothner.com>
  1246. * ConsumerWriter.java: Extends Writer.
  1247. * PrintConsumer.java: New class, extends PrintWriter.
  1248. * Makefile.am (java_sources): Add new classes.
  1249. 2002-01-21 Per Bothner <per@bothner.com>
  1250. * UnescapedData.java: New class.
  1251. * Makefile.am (java_sources): Add UnescapedData.java.
  1252. 2002-01-07 Per Bothner <per@bothner.com>
  1253. * Consumer.java (beginDocument, endDocument): New methods.
  1254. * FilterConsumer.java (beginDocument, endDocument): New methods.
  1255. * TreeList.java (END_DOCUMENT): New code.
  1256. (BEGIN_DOCUMENT): Now followed by pointer to END_DOCUMENT.
  1257. (various methods): update as appropriate.
  1258. * FilterConsumer.java (skipping): New boolean field.
  1259. (Consumer methods): Do nothing if skipping is true.
  1260. * VoidConsumer.java: New extends FilterConsumer.
  1261. (Consumer methods): Remove - use inherited versions.
  1262. 2001-12-29 Per Bothner <per@bothner.com>
  1263. * TreeList.java (consumeRange): Fix indexing bug for BEGIN_GROUP_LONG.
  1264. * TreeList.java (stringValue): Fix indexing bugs.
  1265. Support POSITION_TRIPLE_FOLLOWS.
  1266. 2001-12-24 Per Bothner <per@bothner.com>
  1267. * TreeList.java (get): Add working implementation.
  1268. * FString.java (getChars): New method.
  1269. 2001-11-24 Per Bothner <per@bothner.com>
  1270. * TreeList.java (writeObject): Special-case SeqPosition.
  1271. * SeqPosition.java.in (<init>): New constructor.
  1272. (toString): Handle null sequence.
  1273. * FString.java (getChars): New method, writes to StringBuffer.
  1274. 2001-11-18 Per Bothner <per@bothner.com>
  1275. * TreeList.java (dump): Better output for POSITION_TRIPLE_FOLLOWS.
  1276. 2001-11-12 Per Bothner <per@bothner.com>
  1277. * TreeList.java (dump): Print group and attribute type objects.
  1278. 2001-11-06 Per Bothner <per@bothner.com>
  1279. * TreeList.java (stringValue): Make attributes and long groups work.
  1280. 2001-10-25 Per Bothner <per@bothner.com>
  1281. * AbstractSequence.java.in (getNextKind, getNextTypeName,
  1282. getNextTypeObject, gotoNext, gotoChildrenStart): Make public.
  1283. * GapVector.java, LList.java, SimpleVector.java.in, StableVector.java,
  1284. SubSequence.java, TreeList.java: Update accordingly.
  1285. 2001-10-17 Per Bothner <per@bothner.com>
  1286. * Sequence.java.in (ATTRIBUTE_VALUE): New constant.
  1287. * TreeList.java (getNextKind, getNext): Handle BEGIN_ATTRIBUTE_LONG.
  1288. (attrStart): New field.
  1289. (beginAttribute, endAttribute): Use it to correctly set end pointer.
  1290. (gotoAttributesStart, gotoAttributesStart): New methods.
  1291. (nextDataIndex): Return index *after* END_ATTRIBUTE.
  1292. 2001-10-05 Per Bothner <per@bothner.com>
  1293. * CharSequence.java: Renamed to CharSeq.java to avoid conflict with
  1294. similar interface java.lang.CharSequence in JDK 1.4beta.
  1295. * CharSeq.java: New interface renamed fro CharSequence.
  1296. (toString): Added new method - matching JDK 1.4 CharSequence.
  1297. * CharBuffer.java (toString): New method.
  1298. * CharBuffer.java, FString.java, Strings.java, Makefile.am:
  1299. Update for CharSequence -> CharSeq renaming.
  1300. 2001-08-15 Per Bothner <per@bothner.com>
  1301. * Sequence.java.in (DOCUMENT_VALUE): New constant.
  1302. * AbstractSequence.java.in (toArray): Removed debugging catch.
  1303. * SeqPosition.java.in (make): New static method
  1304. * TreeList.java (consumeRange): On POSITION_TRIPLE_FOLLOWS
  1305. create new SeqPostion, not TreePosition.
  1306. (getNext): Likewise.
  1307. * TreePosition.java (stringValue): New methods.
  1308. * TreeList.java (nextDataIndex): Fix off-by-one error.
  1309. * SeqPosition.java.in (toString): New method
  1310. * TreeList.java (BEGIN_DOCUMENT): New constant.
  1311. (beginDocument, endDocument): New methods.
  1312. (consumeRange, getNextKind, getNextTypeObject, nextDataIndex,
  1313. dump): Handle BEGIN_DOCUMENT.
  1314. * TreeList.java (size): Re-write to use nextDataIndex rather
  1315. than less efficient and broken consumeRange.
  1316. (gotoChildrenStart(int)): New overloaded method.
  1317. (consumeRange): Remove maxSteps parameter.
  1318. (consumeNext): Use nextDataIndex.
  1319. (getNextKind, getNextTypeObject): Make public.
  1320. 2001-07-15 Per Bothner <per@bothner.com>
  1321. * Consumer.java: Replace endAttributes by endAttribute.
  1322. * VoidConsumer.java: Likewise.
  1323. * FilterConsumer.java: Likewise.
  1324. * TreeList.java (END_ATTRIBUTES): Removed constant.
  1325. (END_ATTRIBUTE): New constant.
  1326. (beginGroup): No longer emit END_ATTRIBUTES word.
  1327. (beginAttribute): Write END_ATTRIBUTE word.
  1328. (endAttributes): Removed.
  1329. (endAttribute): New method.
  1330. (consumeRange, gotoChildrenStart, hasNext, getNextKind, getNext,
  1331. nextDataIndex, dump): Update accordingly.
  1332. * FVector.java: Remove endAttributes call.
  1333. * PositionConsumer.java (writePosition): New method.
  1334. * TreeList.java: Implement PositionConsumer.
  1335. (consume, writePosition): New methods.
  1336. (POSITION_REF_FOLLOWS, POSITION_TRIPLE_FOLLOWS): New constants.
  1337. (consumeRange, getNextKind, getNext, nextDataIndex, dump):
  1338. Support new constants.
  1339. * TreeList.java (<init>): New constructors.
  1340. (isEmpty): New method.
  1341. (consumeRange): Fix logic checking maxSteps.
  1342. (getNext): Handle BEGIN_GROUP_SHORT/_LONG using copy constructor.
  1343. * TreePositionList.java (added): New helper method,.
  1344. (consume): Replace old logic by new 'added' method..
  1345. (writePosition): New method.
  1346. (expand): New helper method.
  1347. * AbstractSequence.java.in (toArray): Change 0-argument version
  1348. to use correct implementation rather than using 1-argument version.
  1349. * AbstractSequence.java.in (consume) Likewise.
  1350. * LList.java (consume): Likewise.
  1351. * FormatToConsumer.java (beginGroup, endGroup): New methods.
  1352. 2001-06-17 Per Bothner <per@bothner.com>
  1353. Various improvements to documentation comments.
  1354. * package.html: Additional text.
  1355. 2001-06-03 Per Bothner <per@bothner.com>
  1356. * CharSequence.java (consume(int,int,Consumer)): New method.
  1357. * CharBuffer.java (consume): Implement.
  1358. * SimpleVector.java.in (consume): Likewise.
  1359. * SimpleVector.java.in (get, intAt, longAt, set):
  1360. Fix off-by-one errors: > should be >=.
  1361. * SimpleVector.java.in (getNext): New method.
  1362. * AbstractSequence.java.in (consumeNext): New method.
  1363. (consume): Fix to use nextElement.
  1364. * U8Vector.java, F32Vector.java, F64Vector.java, U8Vector.java,
  1365. S16Vector.java, S32Vector.java, S64Vector.java, S8Vector.java,
  1366. U16Vector.java, U32Vector.java, U64Vector.java, U8Vector.java,
  1367. FString.java, SimpleVector.java.in (consumeNext): New methods.
  1368. * TreeList.java (consumeStep): Replaced by new consumeNext method.
  1369. * U16Vector.java, U8Vector.java (consume): Mask off value.
  1370. * FString.java (consume): Just do plain write.
  1371. * FormatToConsumer.java: New interface.
  1372. * Makefile.am (java_sources): Add FormatToConsumer.java.
  1373. * LList.java (print): Remove unused method.
  1374. (consume): Re-write to generate more robust output.
  1375. 2001-05-16 Per Bothner <per@bothner.com>
  1376. * TreeList.java (getNext): Better error for default unsupported case.
  1377. 2001-05-09 Per Bothner <per@bothner.com>
  1378. * Makefile.am (install-data-am): Removed bogus dependency.
  1379. * TreeList.java (data, hasNext): Make public.
  1380. (getNext): New method.
  1381. * PairWithPosition.java (<init>): Remove constructor taking a
  1382. LineBufferedReader to remove dependency on gnu.text.
  1383. 2001-04-24 Per Bothner <per@bothner.com>
  1384. * Convert.java: Moved to ...
  1385. * Convert.java.in: New file.
  1386. (parseDouble): New static convenience method.
  1387. * Makefile.am: Update to generate Convert.java from Convert.java.in.
  1388. 2001-04-22 Per Bothner <per@bothner.com>
  1389. * Convert.java (booleanToObject, objectToBoolean): New methods.
  1390. (toObject, toBoolean): New static methods.
  1391. * BitVector.java: New class, extends SimpleVector.
  1392. * Makefile.am: Update accordingly.
  1393. 2001-04-10 Per Bothner <per@bothner.com>
  1394. * TreePosition.java (copy constructor): Positions are numbered
  1395. with the most recent (a leaf) as 0.
  1396. * TreePosition.java (gotoParent): Handle null sequence.
  1397. 2001-04-09 Per Bothner <per@bothner.com>
  1398. * Sequence.java.in (isEmpty): New method.
  1399. (EOF_VALUE, INT_U8_VALUE, INT_S8_VALUE, INT_U16_VALUE, INT_S16_VALUE,
  1400. INT_U32_VALUE, INT_S32_VALUE, INT_U64_VALUE, INT_S64_VALUE,
  1401. FLOAT_VALUE, DOUBLE_VALUE, BOOLEAN_VALUE, TEXT_BYTE_VALUE, CHAR_VALUE,
  1402. OBJECT_VALUE, GROUP_VALUE): New constants.
  1403. * AbstractSequence.java.in (getNextKind, getNextTypeName,
  1404. getNextTypeObject): New methods.
  1405. * SeqPosition.java.in (getNextKind, getNextTypeName,
  1406. getNextTypeObject): New methods.
  1407. * SimpleVector.java.in (getNextKind, getElementKind): New methods.
  1408. * GapVector.java (getNextKind): New method.
  1409. * FString.java, F32Vector.java, F64Vector.java, S16Vector.java,
  1410. S32Vector.java, S64Vector.java, S8Vector.java, U16Vector.java,
  1411. U32Vector.java, U64Vector.java, U8Vector.java (getElementKind):
  1412. New method.
  1413. * SubSequence.java (getNext, getPrevious): Fix thinko.
  1414. (getNextKind): New method.
  1415. * TreeList.java (endGroup, consumeRange): Fix thinkos.
  1416. (makePosition, gotoChildrenStart, getNextKind, getNextTypeIndex,
  1417. getNextTypeName, getNextTypeObject, makeRelativePosition,
  1418. nextDataIndex): New methods.
  1419. * TreePosition.java: Implement Cloneable.
  1420. (TreePosition(TreePosition)): New copy constructor.
  1421. (clone, set): New method.
  1422. (push): Handle case of depth == -1.
  1423. (clear): Improve.
  1424. * FilterConsumer.java: New class, implements Consumer.
  1425. * PositionConsumer.java: New interface.
  1426. * TreePositionList.java: New class.
  1427. * Makefile.am: Add new classes.
  1428. 2001-04-04 Per Bothner <per@bothner.com>
  1429. * VoidConsumer.java: New class, implements Consumer.
  1430. * Makefile.am (java_sources): Add VoidConsumer.java.
  1431. 2001-04-02 Per Bothner <per@bothner.com>
  1432. * TreeList.java: Make it extend AbstractSequence.
  1433. Made various fields public for convenience that probably shouldn't be.
  1434. (clear, size, makePosition, get, hasNext): New method.
  1435. (ensureSpace): Set data to new array. Oops.
  1436. (beginGroup, beginAttribute): New versions that just take an index.
  1437. 2001-03-23 Per Bothner <per@bothner.com>
  1438. * Makefile.am: The automake Java support does not handle "built"
  1439. Java sources, so roll our own.
  1440. 2001-03-08 Per Bothner <per@bothner.com>
  1441. New package.
  1442. Many of the classes are based on ones that used to be in gnu.kawa.util.