{"id":3005,"date":"2014-12-14T15:05:42","date_gmt":"2014-12-14T13:05:42","guid":{"rendered":"http:\/\/www.tutego.de\/blog\/javainsel\/?p=3005"},"modified":"2014-12-19T10:34:58","modified_gmt":"2014-12-19T08:34:58","slug":"eclipse-project-4-5-mars-m4","status":"publish","type":"post","link":"https:\/\/www.tutego.de\/blog\/javainsel\/2014\/12\/eclipse-project-4-5-mars-m4\/","title":{"rendered":"Eclipse Project 4.5 (Mars) M4"},"content":{"rendered":"<p>Je l\u00e4nger ich Eclipse benutze, desto seltener besch\u00e4ftige ich mich mit Release-Dates oder den Features &#8212; es sei denn, ich warte auf die Unterst\u00fctzung von neuen Sprache-Features.<\/p>\n<p>So gingen auch die bisherigen Milestones von 4.5 an mir spurlos vorbei, auch der letzte Milestone M4 vom 12.12. Zusammenfassend Neuerungen, die (f\u00fcr mich) interessanter sind:<\/p>\n<h2><a title=\"https:\/\/www.eclipse.org\/eclipse\/news\/4.5\/M4\/\" href=\"https:\/\/www.eclipse.org\/eclipse\/news\/4.5\/M4\/\">https:\/\/www.eclipse.org\/eclipse\/news\/4.5\/M4\/<\/a><\/h2>\n<p><strong>Assigning stdin to a file<br \/>\n<\/strong>Stdin can now be assigned to a file in the &#8222;Common&#8220; tab of launch configuration dialogs.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.eclipse.org\/eclipse\/news\/4.5\/M4\/images\/stdin-file.png\" alt=\"\" \/><\/p>\n<p><strong>Automatic scroll lock in Console view<br \/>\n<\/strong>Scrolling up in the <b>Console<\/b> view using keys, mouse wheel, or scroll bar now automatically enables the <b>Scroll Lock<\/b> mode.<\/p>\n<p>When you scroll down to the end of the console, the scroll lock is automatically released again.<\/p>\n<p><strong>Improved flow analysis for loops<br \/>\n<\/strong>Flow analysis has been improved to more precisely capture the flow of null values in loops. This mainly achieves a reduction of false positive reports from null analysis.<\/p>\n<p><a href=\"https:\/\/www.eclipse.org\/eclipse\/news\/4.5\/M4\/images\/loop-flows.txt\"><img decoding=\"async\" src=\"https:\/\/www.eclipse.org\/eclipse\/news\/4.5\/M4\/images\/loop-flows.png\" alt=\"\" \/><\/a><\/p>\n<p>Previously, example method &#8222;test1&#8220; would raise a potential null pointer warning at point (3). To correct this issue the merging of information leading towards point (3) has been improved to correctly see that the null value from point (1) can never reach point (3).<\/p>\n<p>In example method &#8222;test2&#8220; JDT previously reported a redundant null check at (3), because analysis didn&#8217;t see that the assignment directly above could indeed assign a non-null value.<\/p>\n<p>In example method &#8222;test3&#8220; it was reported that &#8222;o can only be null&#8220; at (3), because the information from the two null-assignments wrongly overruled the one assignment from non-null. With improved analysis this is now softened to saying &#8222;o may be null&#8220;.<\/p>\n<p>The graph on the right hand side illustrates the new composition of flow information: for each relevant point (3) inside a loop, the analysis first merges the flows that lead into (1). This result is concatenated with the partial flow (b.c), which leads from the loop start to point (3). Improved precision has thus been achieved within the design limits of a single AST traversal in order to minimize impact on compiler performance.<\/p>\n<h2><a title=\"https:\/\/www.eclipse.org\/eclipse\/news\/4.5\/M3\" href=\"https:\/\/www.eclipse.org\/eclipse\/news\/4.5\/M3\">https:\/\/www.eclipse.org\/eclipse\/news\/4.5\/M3<\/a>:<\/h2>\n<p><strong>&#8218;Terminate\/Disconnect All&#8216; in Console view<br \/>\n<\/strong>You can invoke the <b>Terminate\/Disconnect All<\/b> action from the Console view&#8217;s context menu:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.eclipse.org\/eclipse\/news\/4.5\/M3\/images\/console-terminate-disconnect-all.png\" alt=\"\" \/><\/p>\n<p><strong>Add inferred lambda parameter types<br \/>\n<\/strong>You can explicitly add the inferred types of the parameters in a lambda expression by invoking the <b>Quick Assist (Ctrl+1) &#8211; Add inferred lambda parameter types<\/b>:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.eclipse.org\/eclipse\/news\/4.5\/M3\/images\/infer-lambda-parameter-types.png\" alt=\"\" \/><\/p>\n<p><strong>Convert method reference to lambda and back<br \/>\n<\/strong>New <b>Quick Assists (Ctrl+1)<\/b> have been added to convert&#8230;<\/p>\n<ul>\n<li>from method reference to lambda expression:<img decoding=\"async\" src=\"https:\/\/www.eclipse.org\/eclipse\/news\/4.5\/M3\/images\/convert-to-lambda.png\" alt=\"Integer::toHexString\" \/><\/li>\n<li>from lambda expression to method reference:<img decoding=\"async\" src=\"https:\/\/www.eclipse.org\/eclipse\/news\/4.5\/M3\/images\/convert-to-method-reference.png\" alt=\"t -&gt; Integer.toHexString(t)\" \/><\/li>\n<\/ul>\n<h2><a title=\"https:\/\/www.eclipse.org\/eclipse\/news\/4.5\/M2\/\" href=\"https:\/\/www.eclipse.org\/eclipse\/news\/4.5\/M2\/\">https:\/\/www.eclipse.org\/eclipse\/news\/4.5\/M2\/<\/a><\/h2>\n<p>Compiler schneller.<\/p>\n<h2><a title=\"https:\/\/www.eclipse.org\/eclipse\/news\/4.5\/M1\/\" href=\"https:\/\/www.eclipse.org\/eclipse\/news\/4.5\/M1\/\">https:\/\/www.eclipse.org\/eclipse\/news\/4.5\/M1\/<\/a><\/h2>\n<p><strong>Word wrap in the Console<br \/>\n<\/strong>A new formatting option has been contributed to the <b>Console<\/b> view for all I\/O consoles: <b>Word Wrap<\/b>.<\/p>\n<p>The new option is available on the Console view toolbar and in the content popup menu within the Console view.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.eclipse.org\/eclipse\/news\/4.5\/M1\/images\/word-wrap.png\" alt=\"The new word wrap toolbar and popup menu command\" \/><\/p>\n<p>Der <a title=\"http:\/\/www.eclipse.org\/projects\/project-plan.php?planurl=\/eclipse\/development\/plans\/eclipse_project_plan_4_5.xml\" href=\"http:\/\/www.eclipse.org\/projects\/project-plan.php?planurl=\/eclipse\/development\/plans\/eclipse_project_plan_4_5.xml\">http:\/\/www.eclipse.org\/projects\/project-plan.php?planurl=\/eclipse\/development\/plans\/eclipse_project_plan_4_5.xml<\/a> gibt uns noch einen Milestone vor, dann beginnt die Feinarbeit:<\/p>\n<ul>\n<li><b>M5 <\/b>2015-01-30 4.5M5<\/li>\n<li>\u00a0\u00a0\u00a0 2015-02-13 CQ Submission Deadline<\/li>\n<li><b>M6 <\/b>2015-03-20 .5M6 (API Freeze)<\/li>\n<li><b>M7 <\/b>2015-05-01 4.5M7 (Feature Freeze)<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Je l\u00e4nger ich Eclipse benutze, desto seltener besch\u00e4ftige ich mich mit Release-Dates oder den Features &#8212; es sei denn, ich warte auf die Unterst\u00fctzung von neuen Sprache-Features. So gingen auch die bisherigen Milestones von 4.5 an mir spurlos vorbei, auch der letzte Milestone M4 vom 12.12. Zusammenfassend Neuerungen, die (f\u00fcr mich) interessanter sind: https:\/\/www.eclipse.org\/eclipse\/news\/4.5\/M4\/ Assigning [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","_links_to":"","_links_to_target":""},"categories":[7],"tags":[8],"class_list":["post-3005","post","type-post","status-publish","format-standard","hentry","category-entwicklungsumgebung","tag-eclipse"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/3005","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/comments?post=3005"}],"version-history":[{"count":3,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/3005\/revisions"}],"predecessor-version":[{"id":3010,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/3005\/revisions\/3010"}],"wp:attachment":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/media?parent=3005"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/categories?post=3005"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/tags?post=3005"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}