|
1 | | -Changes for QuantLib 1.31: |
2 | | -========================== |
| 1 | +Changes for QuantLib 1.31.1: |
| 2 | +============================ |
3 | 3 |
|
4 | | -QuantLib 1.31 includes a record 68 pull requests from several contributors. |
| 4 | +QuantLib 1.31.1 is a bug-fix release for QuantLib 1.31. |
5 | 5 |
|
6 | | -Some of the most notable changes are included below. |
7 | | -A detailed list of changes is available in ChangeLog.txt and at |
8 | | -<https://github.com/lballabio/QuantLib/milestone/28?closed=1>. |
| 6 | +It fixes a regression that could cause a segmentation fault when |
| 7 | +bootstrapping an interest-rate curve using OIS rates. |
9 | 8 |
|
| 9 | +Details are available at |
| 10 | +<https://github.com/lballabio/QuantLib/milestone/30?closed=1>. |
10 | 11 |
|
11 | | -Portability |
12 | | ------------ |
13 | | - |
14 | | -- **Future end of support:** as announced in the notes for the |
15 | | - previous release, after this release using `std::tuple`, |
16 | | - `std::function` and `std::bind` (instead of their `boost` |
17 | | - counterparts) will become the default. If you're using `ext::tuple` |
18 | | - etc. in your code (which is suggested), this should be a transparent |
19 | | - change. If not, you'll still be able to choose the `boost` versions |
20 | | - via a configure switch for a while; but we do suggest you start |
21 | | - using `ext::tuple` etc. in the meantime. |
22 | | - |
23 | | -- The cmake build now creates (but doesn't install) a |
24 | | - `quantlib-config` script that can be used to retrieve flags for |
25 | | - compiling QuantLib-dependent projects; thanks to Christian |
26 | | - Köhnenkamp (@kohnech). |
27 | | - |
28 | | -- A number of Boost classes and functions only used internally were |
29 | | - replaced by their standard-library equivalent; thanks to Jonathan |
30 | | - Sweemer (@sweemer). |
31 | | - |
32 | | - |
33 | | -Patterns |
34 | | --------- |
35 | | - |
36 | | -- **Optional change of behavior:** by default, the `LazyObject` class |
37 | | - forwards only one notification after recalculating and silently |
38 | | - ignores the others. In some edge cases, this could lead to objects |
39 | | - not being updated. It's now possible to enable a different behavior |
40 | | - where all notifications are forwarded; the new behavior can be |
41 | | - chosen at compile time via the configure option |
42 | | - `--disable-faster-lazy-objects` (or disabling |
43 | | - `QL_FASTER_LAZY_OBJECTS` in cmake or `userconfig.hpp`) or at run |
44 | | - time by calling |
45 | | - `LazyObject::Defaults::instance().alwaysForwardNotifications()`. |
46 | | - This might cause a slow down, so you're invited to try it out and |
47 | | - report on the mailing list. If there are no problems, the new |
48 | | - behavior might become the default in future releases. Also, a new |
49 | | - configure option `--enable-throwing-in-cycles` (`QL_THROW_IN_CYCLES` |
50 | | - in cmake or `userconfig.hpp`) is optionally available; when both |
51 | | - this option and the new behavior are enabled, notifications cycles |
52 | | - involving a lazy object will throw an exception. It is suggested to |
53 | | - try enabling the option and removing such loops, if any. Thanks to |
54 | | - Peter Caspers (@pcaspers) for the change and to Ralf Konrad |
55 | | - (@ralfkonrad), Jonathan Sweemer (@sweemer) and GitHub user |
56 | | - @djkrystul for feedback. |
57 | | - |
58 | | - |
59 | | -Date/time |
60 | | ---------- |
61 | | - |
62 | | -- **Change of behavior:** when the end-of-month option is true, the |
63 | | - constructor of a schedule no longer adjust to the end of their month |
64 | | - the effective date and the termination date if they were passed |
65 | | - explicitly. Thanks to Hristo Raykov (@HristoRaykov). |
66 | | - |
67 | | -- Added separate US SOFR calendar to manage days that are business |
68 | | - days for the US government bond market but in which SOFR doesn't |
69 | | - fix; for instance, Good Friday 2023 (@lballabio). Thanks to Tom |
70 | | - Anderson (@tomwhoiscontrary) for reporting the issue. |
71 | | - |
72 | | -- Fixed some rolling rules for South Korean calendar; thanks to Jonghee |
73 | | - Lee (@nistick21). |
74 | | - |
75 | | -- Fixed incorrect 2023 holidays for Hong Kong calendar; thanks to |
76 | | - Fredrik Gerdin Börjesson (@gbfredrik). |
77 | | - |
78 | | -- Added Hong Kong holidays for 2021-2024; thanks to Rémy Frèrebeau |
79 | | - (@rfrerebe-stx) and Binrui Dong (@BrettDong). |
80 | | - |
81 | | -- Added Singapore holidays for 2019-2023; thanks to Rémy Frèrebeau |
82 | | - (@rfrerebe-stx). |
83 | | - |
84 | | -- Added Indian holidays for 2021-2025; thanks to Fredrik Gerdin |
85 | | - Börjesson (@gbfredrik). |
86 | | - |
87 | | -- Added Taiwanese holidays for 2020-2023; thanks to @jsmx. |
88 | | - |
89 | | -- Added a few election days for South African and South Korean |
90 | | - calendar; thanks to Fredrik Gerdin Börjesson (@gbfredrik). |
91 | | - |
92 | | -- Updated Danish calendar; starting in 2024, General Prayer Day will |
93 | | - no longer be a holiday. Thanks to Fredrik Gerdin Börjesson |
94 | | - (@gbfredrik). |
95 | | - |
96 | | -- Fixed a few holidays in Finland and Singapore calendars; Thanks to |
97 | | - Fredrik Gerdin Börjesson (@gbfredrik). |
98 | | - |
99 | | -- More day counters (Act/364, Act/365.25, Act/366) now take into |
100 | | - account intraday resolution when enabled; thanks to Klaus Spanderen |
101 | | - (@klausspanderen). |
102 | | - |
103 | | - |
104 | | -Cash flows |
105 | | ----------- |
106 | | - |
107 | | -- The accrued amount for CPI coupons is now correctly based on the |
108 | | - index ratio at settlement date. An inspector for retrieving the |
109 | | - index ratio at a given date was also added (@lballabio). |
110 | | - |
111 | | -- Enabled the use of normal volatilities in Hagan pricer for CMS |
112 | | - coupons; thanks to Andre Miemiec (@amiemiec). |
113 | | - |
114 | | -- Floating-rate coupons are now lazy; thanks to Peter Caspers |
115 | | - (@pcaspers). |
116 | | - |
117 | | - |
118 | | -Indexes |
119 | | -------- |
120 | | - |
121 | | -- When passed a tenor of 7 or 14 business days, interest-rate indexes |
122 | | - would wrongly convert it to 1 or 2 weeks. This is now fixed |
123 | | - (@lballabio). Thanks to Eugene Toder (@eltoder) for reporting the |
124 | | - issue. |
125 | | - |
126 | | -- Added DESTR and SWESTR indexes; thanks to Fredrik Gerdin Börjesson |
127 | | - (@gbfredrik). |
128 | | - |
129 | | -- Added CORRA index; thanks to @AND2797. |
130 | | - |
131 | | -- When an YoY inflation index is calculated as a ratio, the underlying |
132 | | - inflation index is available through an inspector and its fixings |
133 | | - are used to calculate the fixing of the YoY index (@lballabio). |
134 | | - |
135 | | - |
136 | | -Instruments |
137 | | ------------ |
138 | | - |
139 | | -- Instruments now register automatically with the global evaluation |
140 | | - date and are notified when it changes. This makes sense in general |
141 | | - (if the evaluation date changes, you probably want to recalculate) |
142 | | - and can also help avoid some edge cases when lazy objects only |
143 | | - forward their first notification (@lballabio). |
144 | | - |
145 | | -- Allowed passing a schedule without a regular tenor to callable |
146 | | - fixed-rate bonds; thanks to Hristo Raykov (@HristoRaykov) for the |
147 | | - fix and to @OleBueker for reporting the issue. |
148 | | - |
149 | | -- Reorganized the constructors of FRA instruments; thanks to Jake Heke |
150 | | - (@jakeheke75). |
151 | | - |
152 | | - |
153 | | -Term structures |
154 | | ---------------- |
155 | | - |
156 | | -- Ensures that upfront CDS helpers update correctly when the global |
157 | | - evaluation date changes; thanks to Andrea Pellegatta (@andrea85p) |
158 | | - for the fix and to @bkhoor for reporting the issue. |
159 | | - |
160 | | -- Allow more maturities for SOFR quarterly contract in SOFR futures |
161 | | - rate helper; thanks to Jake Heke (@jakeheke75). |
162 | | - |
163 | | -- Added constructor for date-dependent strikes to StrippedOptionlet; |
164 | | - thanks to Peter Caspers (@pcaspers). |
165 | | - |
166 | | - |
167 | | -Test suite |
168 | | ----------- |
169 | | - |
170 | | -- Global settings (such as the evaluation date) are now restored and |
171 | | - index fixings are now cleaned automatically at the end of each test |
172 | | - case, making it unnecessary to clean them up manually. Thanks to |
173 | | - Eugene Toder (@eltoder). |
174 | | - |
175 | | -- The parallel unit-test runner now passes the `--run_test=<filter>` |
176 | | - option down to the underlying Boost.Test implementation. Thanks to |
177 | | - Eugene Toder (@eltoder). |
178 | | - |
179 | | - |
180 | | -Deprecated features |
181 | | -------------------- |
182 | | - |
183 | | -- **Removed** features deprecated in version 1.26: |
184 | | - - The `CPICoupon` constructor taking a number of fixing days and its |
185 | | - `indexObservation`, `adjustedFixing` and `indexFixing(date)` methods. |
186 | | - - The `CPICashFlow` constructor taking a fixing date. |
187 | | - - The `withFixingDays` methods of `CPILeg`. |
188 | | - - The `ZeroInflationCashFlow` constructor taking a calendar and |
189 | | - business-day convention. |
190 | | - - The `LsmBasisSystem::PolynomType` typedef and the |
191 | | - `MakeMCAmericanEngine::withPolynomOrder` method. |
192 | | - - The `Observer::set_type` and `Observable::set_type` typedefs. |
193 | | - - The `Curve` class. |
194 | | - - The `LexicographicalView` class. |
195 | | - - The `Composite` class. |
196 | | - - The `DriftTermStructure` class. |
197 | | - |
198 | | -- Deprecated the various `time_iterator` and `value_iterator` types in |
199 | | - `TimeSeries`, as well as methods returning them. The more general |
200 | | - `const_iterator` and `const_reverse_iterator` types can be used |
201 | | - instead. |
202 | | - |
203 | | -- Deprecated the constructors of `CPICoupon` taking a spread, as well |
204 | | - as its `spread` method, its protected `spread_` data member, and the |
205 | | - `withSpreads` methods of `CPILeg`. |
206 | | - |
207 | | -- Deprecated the `adjustedFixing` method and the protected `spread_` |
208 | | - data member of `CPICouponPricer`. |
209 | | - |
210 | | -- Renamed `BlackVanillaOptionPricer` to `MarketQuotedOptionPricer` and |
211 | | - deprecated the old name. |
212 | | - |
213 | | -- Deprecated a couple of constructors of `ForwardRateAgreement`. |
214 | | - |
215 | | -- Deprecated the constructor of `YoYInflationIndex` taking a `ratio`. |
216 | | - Also, deprecated explicit classes for YoY ratio indexes |
217 | | - `YYGenericCPIr`, `YYAUCPIr`, `YYEUHICPr`, `YYFRHICPr`, `YYUKRPIr`, |
218 | | - `YYUSCPIr` and `YYZACPIr`. |
219 | | - |
220 | | -- Deprecated the `base`, `increment`, `decrement`, `advance` and |
221 | | - `distance_to` methods of the `step_iterator` class. |
222 | | - |
223 | | - |
224 | | -**Thanks go also** to Jonathan Sweemer (@sweemer), Jose Garcia |
225 | | -(@j053g), Jake Heke (@jakeheke75), Eugene Toder (@eltoder), Binrui |
226 | | -Dong (@BrettDong), the Xcelerit Dev Team (@xcelerit-dev), Ralf Konrad |
227 | | -(@ralfkonrad), Fredrik Gerdin Börjesson (@gbfredrik) and Tom Anderson |
228 | | -(@tomwhoiscontrary) for a number of smaller fixes and improvements. |
0 commit comments