5 ms·
LLVM 3.1 released
- bobbypage 14y agoSweet, especially the Objective-C Literals: http://clang.llvm.org/docs/ObjectiveCLiterals.html http://clang.llvm.org/docs/ObjectiveCLiterals.html
- lukeman 14y agoYeah, I've been waiting for this release. Just in time for WWDC, too.
- DeepDuh 14y agoSweet indeed. Certainly makes Obj C a little bit more concise.
- misnome 14y agoYes, I am ridiculously excited about this, especially the ability to create single-item NSArray's without a tonne of messy typing - this is probably the largest cleaning effect it will have. Any idea how long it has historically taken apple to move the newer Clang releases?
- Someone 14y agoI don't know, but I guess that the compiler itself has been seriously tested on Mac OS X, and WWDC is June 11-15. Esepcially if they want/dare to use this for compiling Mountain Lion, I expect there to be some kind of release around that time.
- Rickasaurus 14y agoOh cool! I didn't know Julia was LLVM backed! Now if only it had a good IDE package.
- jvoorhis 14y agoLooking forward to playing with autovectorization in ruby-llvm. https://github.com/jvoorhis/ruby-llvm https://github.com/jvoorhis/ruby-llvm
- program 14y agoCollections subscripting operator [] and boxed C strings are life-savers. Instantiating obj-c object is always a pain cause the syntax is very verbose, expecially for NSString: NSString *s = [NSString stringWithCString:"hello" encoding:NSUTF8StringEncoding]; NSString *s = @("hello"); it's 11 characters vs 67. Now what I really, really miss is the implementation of the NSString concatenation operator. stringWithFormat isn't always the answer nor appendString. Please forgive me if you find that my idea is silly: // String concatenation NSString *s = @+(@"hello ", @"world"); Or maybe some concise dictionary operators. NSDictionary *d1 = @{ @"first":@"Hello", @("second"):@"World" }; NSDictionary *d2 = @{ @"third":@"Greetings" }; NSDictionary *cd = @|(d1, d2); // Dictionary merge NSDictionary *id = @&(d1, d2); // Dictionary intersect NSDictionary *dd = @^(d1, d2); // Dictionary difference
- Someone 14y agoI think that would be inconsistent. All existing @<whatever> fragments are evaluated at compile-time. Your @+, @|, @&, @^ feel more appropriate as proper functions (the compiler could still know of them, so it could optimize calls away) Also: dictionary merge/intersect/difference aren't easily defined. For example, what should @&( @{ @"a":@"aye", @"b":@"bee" }, @{ @"a":@"ai ai", @"Bee":@"bee" }) return?
- sjwright 14y agoI don't like it, mainly because it spreads the at-sign too far, and the result is a cornucopia of dense, unreadable at-signs. When you want to do thinks like dictionary operations, I'd prefer to have the intent clearly spelled out in the code.
- luriel 14y agoA cool, seems to include the changes that were needed by llgo: https://github.com/axw/llgo https://github.com/axw/llgo
- seunosewa 14y agoIs there any successful language/runtime that runs primarily on LLVM?
- cristiantincu 14y agoWhat do you mean by “primarily”? Do you mean “specifically”? “Succesful” how? http://en.wikipedia.org/wiki/Llvm http://en.wikipedia.org/wiki/Llvm