Tuning your Weight Loss vs Performance

clap, Rust
This is a follow up from my previous post. In that post, I conjectured that turning on LTO (Link Time Optimization) and increasing the optimization levels would increase the binary size. My thinking was that the optimizer would more aggressively inline the code since function calls add performance overhead, but after speaking with a few individuals about this I realized I might be wrong (which wouldn't be the first time by a long shot :) ). Some may say this is common sense, but when coming from higher level languages it's not always obvious. Like many things, Rust gives you full control over your code, and lets you pick which parts you care about. Do you care about raw speed, or binary size. In this post we'll talk about how…
Read More

New Years Weight Loss

clap, Rust
Preface: This post is somewhat hard to write, because it contains code that I'm not proud of, it's messy...bloated...it's real. I'm exposing something, in a project that I'm proud of, that isn't great. Sometimes this is hard and painful. But I'm also a firm believer that this is how we grow. I think what I've learned while going through this experience will make me better in the future. Maybe someone else can learn something from me and become better too. It's common practice in the U.S. to make a new years resolution at the start of every calendar year. Top of many people's list is to lose some unwanted weight. For 2018, [crayon-5c12f75618109040004183-i/]  is starting to lose some weight too! Recently, @razrfalcon released a new tool to the Rust community…
Read More

3.x is being worked on!

Uncategorized
Since my last post, countless bug fixes, features, etc. have been merged into the project. There's also a wave of new contributors who I'm immensely grateful for! Something I've been struggling with for the past few months is conflicting priorities to get 3.x out the door, and include all the new feature requests. All this while having very little time to actually work on clap. My paid day job has been monopolizing my time for 2017 in an unfair way, I've been doing more traveling this year than in nearly all of 2015 and 2016 combined! I've decided it's time to get to work, I'm implementing a feature freeze for clap in an effort to get 3.x out the door, at which point the refactoring made in 3.x should also…
Read More

Using Shell Completions

Uncategorized
It's been quite a while since I wrote anything blog-ish about clap, or anything else for that matter. I've had quite a few ideas that I've wanted to talk about, sadly those will have to wait a while longer. For now, I'd like to announce the new site https://clap.rs and obviously this associated blog https://blog.clap.rs My goal is to write more about the neat things that are happening in clap and keep people in the loop on ideas or new features. I have also started a re-make of the old video tutorials; the new ones can be found on youtube. This series aims to go far more in depth into each feature and how to use them. Currently there are only a handful of topics covered, but as I get…
Read More

2.x is out

Uncategorized
I'm [happy|relieved|excited] to announce the release of clap v2.0.0! I spent a good bit of time debating a major version bump. Now that it's released I'd be hard pressed to tell you exactly what I was afraid of. This release, in my opinion, is a dramatic improvement, and feels like a valiant contribution to the Rust community...or at least the portion that uses clap. If you're only here for the free snacks and new features, jump on down to "v2 - Phew!". Otherwise, walk with me, lets converse about this journey. Prologue If you haven't heard of clap before - and I mean Command Line Argument Parser (Not anything else which unfortunately shares the same name. But hey, it's easy to remember and naming things is like 95% of the…
Read More