Skip to content
Snippets Groups Projects
Commit 92c000a2 authored by Olivier Couet's avatar Olivier Couet
Browse files

Remove the html version of the release note files for v600.

parent 7440f5f3
No related branches found
No related tags found
No related merge requests found
Showing
with 1 addition and 566 deletions
<br/>
<hr/>
<a name="bindings"></a>
<h3>Python/Ruby Bindings</h3>
<br/>
<hr/>
<a name="core"></a>
<h3>Platform Support</h3>
<p>Temorarily for version 6.00/00, ROOT has a reduced set of supported platforms.
Most notably Windows is not supported until at least 6.02.
6.00/00 supports only</p>
<ul>
<li>Linux 32bit and 64 bit, i32 and x86-64 and x32 (see below). Likely also PPC but that is untested, please report.</li>
<li>MacOS on Intel CPUs.</li>
</ul>
<p>More platforms are expected to be available later; the lack of support stems from cling not being ported to these platforms yet.</p>
<p>Despite that, an additional platform as been added: the <a href="https://sites.google.com/site/x32abi/">x32 psAPI</a>, called linuxx32gcc.
It is a regular x86-64 ABI but with shorter pointers (4 bytes instead of 8).
This reduces the addressable memory per process to 4GB - but that is usally sufficient.
The advantages are reduced memory consumption (due to the smaller pointers) and increased performance compared to 32bit applications due to the availability of the 64bit instructions.
The clang developers mailing list archive <a href="http://clang-developers.42468.n3.nabble.com/Re-PATCH-add-x32-psABI-support-td4024297.html">contains a good comparison.</a></p>
<p>To build and run binaries compiled in x32, toolchain support is needed. That is available in the in binutils (2.22), GCC (4.7), glibc (2.16), Linux kernel (3.4) and even GDB (7.5).
These versions are not available in regular distributions yet (except for <a href="http://dev.gentoo.org/~vapier/x32/stage3-amd64-x32-20120605.tar.xz"> this beta Gentoo distro</a> built in x32); once they are, building and running x86-64 and x32 side-by-side will be possible.</p>
<h3>Core Libraries</h3>
<h4>Cling vs CINT</h4>
Cling follows the C++ standard much more strictly than CINT. In
particular some code that used to run with CINT will either issue
new warnings or new compilations error.
For example when CINT was parsing Namespace::Symbol it would not
only apply the C++ search rules but also search in the outer
scopes and for this example could actually return ::Symbol instead
of (as Cling now does) issuing a compilation error.
Cling no longer supports refering to a class template instantiation
of a class template that has all default template parameter without
the &lt;&gt;. With:
<pre>template &lt;typename T = int&gt; class vec {};</pre>. With Cling
(and any standard compliant compiler), using <em>vec&lt;&gt;</em>
is allowed (but <em>vec</em> is not).
<h4>Cling not yet implemented features</h4>
In this release Cling does not support the following (but we intended
to re-introduce them soon) features:
<ul><li>Unloading of script and shared libraries</li>
<li>Discovery of symbols that are declared but not implemented
being delayed until run-time. I.e.
<pre>void foo();
void run() { dlopen("foo.so"); foo(); }</pre>does not work in this release.</li>
</ul>
<h4>TInterpreter</h4>
The following are no longer supported and are now only issuing error
messages:
<ul><li>Getgvp</li>
<li>Setgvp</li>
<li>SetRTLD_NOW</li>
<li>SetRTLD_LAZY</li>
</ul>
Use of Setgvp and Getgvp should be looked at carefully as they were
use to control the behavior of the multiplexing CINT wrappers that
were both wrapper the calls to operator new with and without placement
and the constructor (and similarly for operator delete and the
destructor). Cling does not support such a multiplexing wrapper and
alternatively interface must be used (See TClass::New and
TClass::Destructor for example).
<h4>rootcling</h4>
rootcling is the successor to rootcint and genreflex. It is used to implement
backward compatibility wrappers for both of them with the following <em>backward
incompatibilities.</em>
<ul>
<li>rootcling does not support multiline #pragma without a line
continuation as rootcint did (rootcint support #pragma link with a line
continutation only in ROOT v5.34/02 and above).</li>
<li>rootcling no longer re-#defines the private and protected keywords to public.
In particular this means that code compiled as part of the dictionary no longer
has access to protected and private members of a class (except where allowed
by the C++ standard).</li>
<li>rootcling no longer considers a friend declaration to be a
declaration for the friended function. In particular this means that
rootcling may now issue:
<pre>Error: in this version of ROOT, the option '!' used in a linkdef file
implies the actual existence of customized operators.
The following declaration is now required:
TBuffer &amp;operator&lt;&lt;(TBuffer &amp;,const THit *);
</pre>if the operator&lt;&lt; declaration is missing.</li>
</ul>
To steer the parsing done during the execution of rootcling, a new macro:
<em>__ROOTCLING__</em> is now defined during the parsing. The macros
<em>__CINT__</em> and <em>__MAKECINT__</em> are defined only when looking
for <tt>#pragma</tt> statement.
<h4>ACliC</h4>
ACLiC has the following backward incompatibilities:
<ul>
<li>Since rootcling no longer re-#defines the private and protected keyword to public,
the code compiled by ACLIC no longer
has access to protected and private members of a class (except where allowed
by the C++ standard).</li>
</ul>
<h4>TUnixSystem</h4>
<ul>
<li> Simplify <tt>Setenv</tt> coding.</li>
<li> Implement <tt>Unsetenv</tt> using the system function <tt>unsetenv</tt>.
</li>
</ul>
<h4>TColor</h4>
<ul>
<li>
5 new predefined palettes with 255 colors are available vis
<tt>gStyle->SetPalette(n)</tt>:
<ul>
<li> n = 51 a Deep Sea palette is used.</li>
<li> n = 52 a Grey Scale palette is used.</li>
<li> n = 53 a Dark Body Radiator palette is used.</li>
<li> n = 54 a two-color hue palette palette is used.(dark blue through neutral gray to bright yellow)</li>
<li> n = 55 a Rain Bow palette is used.</li>
</ul>
<p><img src="pal255.png" alt="New 255 colors palettes"/></p>
</li>
<li>
Add the optional parameter "alpha" to <tt>TColor::SetPalette</tt> and
<tt>TStyle::SetPalette</tt>. The default value is 1. (opaque palette).
Any value between 0. and 1 define the level of transparency. 0. being fully
transparent and 1. fully opaque.</li>
</ul>
<h4>TColor</h4>
<ul>
<li>
In <tt>SaveAS</tt> implement the possibility to save an object as C code
independant from ROOT. It is enough to save the object in a file with the
extension ".cc". The code as to save each objet should be implement in
each <tt>SavePrimitive</tt> function like in <tt>TF1</tt>.
</li>
</ul>
<br/>
<hr/>
<a name="geom"></a>
<h3>Geometry Libraries</h3>
<br/>
<hr/>
<a name="graf2d"></a>
<h3>2D Graphics Libraries</h3>
<h4>TASImage</h4>
<ul>
<li>In some cases dashed lines with a line width greater than "1" were not
drawn.
</li>
<li> The <tt>TLatex</tt> symbol <tt>#tilde</tt>, was misplaced.
</li>
</ul>
<h4>X11 fonts</h4>
<ul>
<li>A coverity fix in <tt>Rotated.cxx</tt> had a side effect on rotated text
drawn with X11 fonts.
</li>
</ul>
<h4>TGaxis and TAxis</h4>
<ul>
<li> The time axis behavior should now be correct along time zone and summer
saving time. A fix has been done with the of Philippe Gras (CEA Saclay.
IRFU/SEDI) and Julian Sitarek (IFAE). Time axis transported from a time
zone to an other in a ROOT file are correct too. A new example test have
been introduced to test the time axis (timeonaxis3.C)
</li>
</ul>
<h4>TLegend</h4>
<ul>
<li>
The line attribute of objects in the legend were not taken into account with the option "e".
</li>
</ul>
<h4>TPie</h4>
<ul>
<li>
New drawing option "SC" to draw the labels with the slices' colors.
</li>
</ul>
<h4>TMathText</h4>
<ul>
<li>
TMathText's purpose is to write mathematical equations, exactly as TeX would
do it. The syntax is the same as the TeX's one. Author: Yue Shi Lai (MIT))
<br/>
Example:
<pre>
{
TMathText l;
l.SetTextAlign(23);
l.SetTextSize(0.06);
l.DrawMathText(0.50, 1.000, "\\prod_{j\\ge0} \\left(\\sum_{k\\ge0} a_{jk}z^k\\right) = \\sum_{n\\ge0} z^n \\left(\\sum_{k_0,k_1,\\ldots\\ge0\\atop k_0+k_1+\\cdots=n} a_{0k_0}a_{1k_1} \\cdots \\right)");
l.DrawMathText(0.50, 0.800, "W_{\\delta_1\\rho_1\\sigma_2}^{3\\beta} = U_{\\delta_1\\rho_1\\sigma_2}^{3\\beta} + {1\\over 8\\pi^2} \\int_{\\alpha_1}^{\\alpha_2} d\\alpha_2^\\prime \\left[ {U_{\\delta_1\\rho_1}^{2\\beta} - \\alpha_2^\\prime U_{\\rho_1\\sigma_2}^{1\\beta} \\over U_{\\rho_1\\sigma_2}^{0\\beta}} \\right]");
l.DrawMathText(0.50, 0.600, "d\\Gamma = {1\\over 2m_A} \\left( \\prod_f {d^3p_f\\over (2\\pi)^3} {1\\over 2E_f} \\right) \\left| \\mathscr{M} \\left(m_A - \\left\\{p_f\\right\\} \\right) \\right|^2 (2\\pi)^4 \\delta^{(4)} \\left(p_A - \\sum p_f \\right)");
l.DrawMathText(0.50, 0.425, "4\\mathrm{Re}\\left\\{{2\\over 1-\\Delta\\alpha} \\chi(s) \\left[ \\^{g}_\\nu^e \\^{g}_\\nu^f (1 + \\cos^2\\theta) + \\^{g}_a^e \\^{g}_a^f \\cos\\theta \\right] \\right\\}");
l.DrawMathText(0.50, 0.330, "p(n) = {1\\over\\pi\\sqrt{2}} \\sum_{k = 1}^\\infty \\sqrt{k} A_k(n) {d\\over dn} {\\sinh \\left\\{ {\\pi\\over k} \\sqrt{2\\over 3} \\sqrt{n - {1\\over 24}} \\right\\} \\over \\sqrt{n - {1\\over 24}}}");
l.DrawMathText(0.13, 0.150, "{(\\ell+1)C_{\\ell}^{TE} \\over 2\\pi}");
l.DrawMathText(0.27, 0.110, "\\mathbb{N} \\subset \\mathbb{R}");
l.DrawMathText(0.63, 0.100, "\\hbox{RHIC スピン物理 Нью-Йорк}");
}
</pre>
<img alt="TMathText example" title="TMathText example" src="mathtext.png"/>
</li>
</ul>
<h4>TLatex</h4>
<ul>
<li>
The class <tt>TMathText</tt> is a TeX math formulae interpreter. It uses plain
TeX syntax and uses "\" as control instead of "#". If a piece of text containing
"\" is given to <tt>TLatex</tt> then <tt>TMathText</tt> is automatically invoked.
Therefore, as histograms' titles, axis titles, labels etc ... are drawn using
<tt>TLatex</tt>, the <tt>TMathText</tt> syntax can be used for them also. </li>
<li>
Fix a very old bug (in <tt>TTF.cxx</tt> since the beginning).
With the following code the spaces between "text" and #lambda were ignored.
<pre>
TLatex t; t.DrawLatex( 0.1,0.1,"text #Lambda" )
</pre>
</li>
<li>
Implement <tt>#backslash</tt>.
</li>
</ul>
<br/>
<hr/>
<a name="graf3d"></a>
<h3>3D Graphics Libraries</h3>
<h4>Gl in Pad</h4>
<ul>
<li> Transparency is now implemented for "GL in Pad" (<tt>gStyle->SetCanvasPreferGL(1)</tt>).</li>
</ul>
<br/>
<hr/>
<a name="gui"></a>
<h3>GUI Libraries</h3>
<br/>
<hr/>
<a name="hist"></a>
<h3>Histogram Libraries</h3>
<h3>THistPainter</h3>
<ul>
<li>
With option COL <tt>TProfile2D</tt> histograms are handled differently because, for this type of 2D
histograms, it is possible to know if an empty bin has been filled or not. So even
if all the bins' contents are positive some empty bins might be painted. And vice versa,
if some bins have a negative content some empty bins might be not painted.
</li>
<li>
With option COLZ the axis attributes were not imported correctly on the palette axis.
</li>
<li>
Make sure the 2D drawing options COL, ARR, CONT and BOX are ignored when used to
plot a 1D histogram. 1D histograms plotted with one of these options is now drawn
with the default 1D plotting option. This is useful when the default option in the
TBrowser is, for instance, COL. Before this change the 1D histogram appeared as blank.
</li>
<li>
New plotting option <tt>"LEGO3"</tt>.cw
Like the option <tt>"LEGO1"</tt>, the option <tt>"LEGO3"</tt>
draws a lego plot using the hidden surface removal technique but doesn't draw
the border lines of each individual lego-bar. This is very useful for histograms
having many bins. With such histograms the option <tt>"LEGO1"</tt> gives a black
image because of the border lines. This option also works with stacked legos.
</li>
<li>
Line attributes can be used in lego plots to change the edges' style.
</li>
<li>
Implement in THistPainter::GetObjectInfo the case of TProfile and TProfile2D to print the tooltip information on
each bin. Disable the printing of the bin information for TH3, since it is not currently possible to retrieve the
3d bin number from the pixel coordinate.
</li>
<li>
Fit parameters with very long name destroyed the stats display. This is now fixed.
<br/>
Example:
<pre>
{
gStyle->SetOptFit(111);
TH1F *hist = new TH1F("hist","hist",100,-5,5);
TF1 *fit = new TF1("fit","gaus",-5,5);
fit->SetParName(2,"Parameter with very very very very long name");
hist->FillRandom("gaus",5000);
hist->Draw();
hist->Fit(fit);
}
</pre>
</li>
</ul>
<h3>TGraphPainter</h3>
<ul>
<li>
Fix http://root.cern.ch/phpBB3/viewtopic.php?f=3&amp;t=8591.
<br/>
When drawn with option SAME the histogram 1st and last bins might be wrong.
The following macro shows the problem:
<pre>
{
TCanvas *c = new TCanvas("c","c",900,900);
c->Divide (1,2);
TH1D * histo1 = new TH1D ("histo1","histo1",100,0.,100.) ;
histo1->SetBinContent(51,80.) ;
TH1D * histo2 = new TH1D ("histo2","histo2",100,49.9,51.1) ; /// not ok
histo2->SetMinimum(0.) ; histo2->SetMaximum(100.) ;
c->cd(1); gPad->DrawFrame(49.9, 0., 51.1, 100);
histo1->Draw("same");
Double_t xAxis[4] = {3., 5., 7., 9.};
TH1D *histo2 = new TH1D("histo","",3, xAxis);
histo2->SetBinContent(1,2.);
histo2->SetBinContent(2,4.);
histo2->SetBinContent(3,3.);
c->cd(2); gPad->DrawFrame(4.,0., 10.,5.);
histo2->Draw("same");
}
</pre>
</li>
</ul>
<h3>TPaletteAxis</h3>
<ul>
<li>
The histogram Z axis title is now painted along the palette axis.
</li>
</ul>
<h3>TH2, TH3</h3>
<ul>
<li>
Update Projection methods of both TH2 and TH3 to not return a null pointer when an histogram with the same name already existed and it was not compatible.
Now just set the new correct binning on the previously existing histogram.
</li>
</ul>
<h3>TH1</h3>
<ul>
<li>
The following code should produce a plot. It did not.
<pre>
TH1F* h=new TH1F("hist", "histogram", 10, 0, 3);
h->FillRandom("gaus");
h->Draw("same");
</pre>
</li>
</ul>
<h3>TGraph2D</h3>
<ul>
<li>
When <tt>GetX(YZ)axis</tt> were called on a <tt>TGraph2D</tt>, the frame limit
and plotting options were changed.
</li>
<li>
Modify the <tt>Clear</tt> function in order to be able to reuse
a <tt>TGraph2D</tt> after a <tt>Clear</tt> is performed.
</li>
<li>
In <tt>GetHistogram()</tt> the lower and higher axis limits are
always different.
</li>
</ul>
<h3>TF1</h3>
<ul>
<li>
Implement the possibility to save a <tt>TF1</tt> as C code indenpant from ROOT.
It is enough to save the function as a ".cc" file.
<br/>
Example:
<pre>
root [0] TF1 *f1 = new TF1("f1","x*x",-10,10)
root [1] f1->SaveAs("f1.cc");
Info in &lt;TF1::SaveAs&gt;: cc file: f1.cc has been generated
root [2] .x f1.cc(9.)
(double)8.10019368181367980e+01
</pre>
</li>
</ul>
...@@ -47,7 +47,7 @@ ...@@ -47,7 +47,7 @@
### TGraphPainter ### TGraphPainter
- Fix http://root.cern.ch/phpBB3/viewtopic.php?f=3&t=8591. \ - Fix the problem described [here](http://root.cern.ch/phpBB3/viewtopic.php?f=3&t=8591).
When drawn with option SAME the histogram 1st and last bins might When drawn with option SAME the histogram 1st and last bins might
be wrong. The following macro shows the problem: be wrong. The following macro shows the problem:
......
<br/>
<hr/>
<a name="html"></a>
<h3>Html Generator</h3>
<br/>
<hr/>
<a name="io"></a>
<h3>I/O Libraries</h3>
<h4>TFileMerger</h4>
<ul>
<li>Added possibility to merge only a list of objects/folders from the input files, specified by name,
<br />or to skip them from merging. This is fully integrated with the new PartialMerge(flags) schema.
<br/>
Usage:
<br />The names of the objects to be merged or skipped have to be specified using the interface:
<pre>
TFileMerger::AddObjectNames(const char *names)
</pre>
This method can be called several times to add object names. Several names can be added with one
call separated by single blancs (no blanc at the end). Directory names are accepted, applying the
merging selection to all content.
Two new options are being supported for partial merging:
<pre>
<i>TFileMerger::PartialMerge</i><b>(flags | kOnlyListed)</b>
</pre>
This will merge only the objects in the files having the names in the specified list. If a folder is
specified, it whole content will be merged
<pre>
<i>TFileMerger::PartialMerge</i><b>(flags | kSkipListed)</b>
</pre>
This will skip merging for the specified objects. If a folder is specified, its whole content will be skipped
<pre>
Important note:
The kOnlyListed and kSkipListed flags have to be bitwise OR-ed
on top of the merging defaults: kAll | kIncremental (as in the example $ROOTSYS/tutorials/io/mergeSelective.C)
</pre>
</li>
</ul>
<br/>
<hr/>
<a name="math"></a>
<h3>Math Libraries</h3>
<br/>
<hr/>
<a name="misc"></a>
<h3>Misc Packages</h3>
<br/>
<hr/>
<a name="montecarlo"></a>
<h3>MonteCarlo Libraries</h3>
<br/>
<hr/>
<a name="net"></a>
<h3>Networking Libraries</h3>
<p>
A new class TS3WebFile has been introduced. The new class TS3WebFile is an
extension of TWebFile and belongs to the net module.
The name TS3WebFile reflects better the fact that this solution
is intended to be generic to several S3 servers and not limited to Amazon's,
in addition to the fact that it actually extends the capabilities of TWebFile.
</p>
<p>
Compared to the current support of S3 in ROOT (basically the class TAS3File),
the modifications include the improvements below:
</p>
<ul>
<li>
add support for using HTTPS : you can use different schemas for specifying
the underlying transport protocol to use "s3:", "s3http:", "s3https:"
["s3" uses HTTPS]. The current schema, namely "as3:", is supported for
backwards compatibility.
</li>
<li>
extend support for other S3 service providers that do not offer the
virtual hosting functionality (currently only Amazon offers this).
</li>
<li>
support the possibility of specifying user credentials on a per-file
basis or for all S3 files via environment variables.
</li>
<li>
honor the "NOPROXY" option when specified in the constructor.
</li>
<li>
exploit the capability of the S3 file server to provide partial
content responses to multi-range HTTP requests.
</li>
</ul>
<p>
Here are some examples of usages from the end user perspective:
</p>
<pre>
TFile* f = TFile::Open("s3://s3.amazonaws.com/mybucket/path/to/my/file", "AUTH=&lt;accessKey&gt;:&lt;secretKey&gt; NOPROXY")
TFile* f = TFile::Open("s3://s3.amazonaws.com/mybucket/path/to/my/file") // Uses environmental variables for retrieving credentials
</pre>
<p>
Limitations:
</p>
<ul>
<li>
we cannot efficiently detect that a S3 server is able to respond to
multi-range HTTP GET requests. Some servers, such as Amazon's, respond
to such kind of requests with the whole file contents. Other servers,
such as Huawei's, respond with the exact partial content requested.
Therefore, I added the possibility of configuring the behavior via the
ROOT configuration file: the identity of the servers known to correctly
support multi-range requests is configurable. If the server is known to
support this feature, ROOT will send multi-range requests, otherwise it
will issue multiple single-range GET requests, which is also the default
behavior.
</li>
<li>
currently the virtual host syntax:
"s3://mybucket.s3.amazonaws.com/path/to/my/file"
is not supported but can be added if this is considered useful.
</li>
</ul>
<p>
The TAS3File class will be removed and should not have been used directly by
users anyway as it was only accessed via the plugin manager in TFile::Open().
</p>
<br/>
<hr/>
<a name="proof"></a>
<h3>PROOF System</h3>
<br/>
<hr/>
<a name="roofit"></a>
<h3>RooFit Package</h3>
<br/>
<hr/>
<a name="sql"></a>
<h3>SQL Libraries</h3>
<br/>
<hr/>
<a name="tmva"></a>
<h3>TMVA Package</h3>
<br/>
<hr/>
<a name="tree"></a>
<h3>Tree Libraries</h3>
<h4>TTreePlayer</h4>
<ul>
<li>The TEntryList for ||-Coord plot was not defined correctly.
</li>
</ul>
<br/>
<hr/>
<a name="tutorials"></a>
<h3>Tutorials</h3>
<ul>
<li>The new tutorial timeonaxis3.C test the time axis.</li>
<li>New version of cernbluid.C allowing to turn off the printouts.</li>
</ul>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment