Here's a preliminary experiment to see how much memory is saved with the new copy-on-write friendly (bitmap marking) GC.
Calculated by memstats.rb https://gist.github.com/kenn/5105061 on Debian x86_64.
# ./memstats.rb 20547
| # http://henrik.nyh.se/2008/12/git-dirty-prompt | |
| # http://www.simplisticcomplexity.com/2008/03/13/show-your-git-branch-name-in-your-prompt/ | |
| # username@Machine ~/dev/dir[master]$ # clean working directory | |
| # username@Machine ~/dev/dir[master*]$ # dirty working directory | |
| function parse_git_dirty { | |
| [[ $(git status 2> /dev/null | tail -n1) != "nothing to commit (working directory clean)" ]] && echo "*" | |
| } | |
| function parse_git_branch { | |
| git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e "s/* \(.*\)/[\1$(parse_git_dirty)]/" |
| - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView | |
| { | |
| if(_reachedEndOfFeed) return; | |
| if(!_dynamicFeed) return; | |
| DLog(); | |
| if (!reloading) | |
| { | |
| checkForRefresh = YES; // only check offset when dragging | |
| } |
| # When I posted the results of the Roman Numeral Calculator kata | |
| # earlier this week, I said that I felt that the evolution of the code | |
| # through TDD was much more interesting than the final result. Let me | |
| # explain. | |
| # | |
| # First, some background. The goal of this Kata is to produce a | |
| # RomanNumeralCalculator object that converts from arabic numbers to | |
| # Roman numerals, and from Roman numerals back to arabic. | |
| Then { calculate("1").should == "I" } |
| // Copyright (c) 2012-2013 Peter Steinberger (http://petersteinberger.com) | |
| // | |
| // Permission is hereby granted, free of charge, to any person obtaining a copy | |
| // of this software and associated documentation files (the "Software"), to deal | |
| // in the Software without restriction, including without limitation the rights | |
| // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |
| // copies of the Software, and to permit persons to whom the Software is | |
| // furnished to do so, subject to the following conditions: | |
| // | |
| // The above copyright notice and this permission notice shall be included in |
| =begin | |
| READ THIS FOR CONTEXT: | |
| http://tenderlovemaking.com/2012/07/30/is-it-live.html | |
| =end | |
| strategy = |
| nline void pspdf_dispatch_sync_reentrant(dispatch_queue_t queue, dispatch_block_t block) { | |
| dispatch_get_current_queue() == queue ? block() : dispatch_sync(queue, block); | |
| } |
Here's a preliminary experiment to see how much memory is saved with the new copy-on-write friendly (bitmap marking) GC.
Calculated by memstats.rb https://gist.github.com/kenn/5105061 on Debian x86_64.
# ./memstats.rb 20547
| // Taken from the commercial iOS PDF framework http://pspdfkit.com. | |
| // Copyright (c) 2014 Peter Steinberger, PSPDFKit GmbH. All rights reserved. | |
| // Licensed under MIT (http://opensource.org/licenses/MIT) | |
| // | |
| // You should only use this in debug builds. It doesn't use private API, but I wouldn't ship it. | |
| // PLEASE DUPE rdar://27192338 (https://openradar.appspot.com/27192338) if you would like to see this in UIKit. | |
| #import <objc/runtime.h> | |
| #import <objc/message.h> |
| source ~/.bash_profile | |
| cd ${SRCROOT} | |
| /path/to/xctool.sh -reporter json-compilation-database:compile_commands.json clean | |
| /path/to/xctool.sh -reporter json-compilation-database:compile_commands.json build | |
| oclint-json-compilation-database | sed 's/\(.*\.\m\{1,2\}:[0-9]*:[0-9]*:\)/\1 warning:/' |
| #import "KWMatcher.h" | |
| typedef BOOL (^FTKiwiCustomMatcherBlock)(id subject); | |
| @interface FTKiwiCustomBlockMatcher : KWMatcher | |
| // Your custom matcher block will receive the expectation ‘subject’ and must | |
| // return `YES` if the expaction passes or `NO` if it fails. | |
| - (void)be:(FTKiwiCustomMatcherBlock)block; |