profile
viewpoint

mbrubeck/android-completion 212

Bash completion for "adb" from the Google Android SDK

mbrubeck/agate 41

Very simple server for the Gemini hypertext protocol

mbrubeck/by_address 13

Rust wrapper type that implements hashing and comparison by pointer address

mbrubeck/c-repl 4

a C read-eval-print loop

mbrubeck/bugwd 2

Readable, memorable URLs to replace long bug numbers

mbrubeck/2048-AI 0

A simple AI for 2048

mbrubeck/actix 0

Actor framework for Rust

mbrubeck/advisory-db 0

Security advisory database for Rust crates published through crates.io

issue commentservo/rust-smallvec

RFC: rewrite based on min_const_generics for 2.0

I looked into some possible SmallVec optimisations yesterday. They weren't fruitful, but I thought I'd describe my findings here in case you find them useful for the 2.0 rewrite.

I was motivated by a few comments here, which described a large branch prediction penalty for spilled SmallVecs. I'd seen similar complaints before, so I wanted to investigate possible fixes.

Some data here suggests large performance improvements when using a (32-bit) cmov in place of an unpredictable branch, with minimal or zero performance loss when the branch is completely predictable.

It occurred to me that, with the SmallVec implementation you described above, the length is unchanged whether or not the array is spilled. SmallVec::deref is only branching on which value to assign to a single pointer, which is a good candidate for use of cmov.

I experimented with code which reduced all branching in SmallVec::deref to a trivial let p: *const T = if a { b } else { c }. Unfortunately, I noticed that LLVM completely refused to emit a cmov instruction when it could potentially cause an unnecessary memory access. It turns out this is a known LLVM bug.

Unless you're willing to use inline assembly behind a feature flag, this idea is probably at a dead end. You could experiment with bit-masking as a replacement for cmov, but I think that would cost at least three CPU cycles (xor, and, xor), while a mispredicted branch might cost ten or less.

SimonSapin

comment created time in 3 hours

startedmbrubeck/agate

started time in 3 hours

startedmbrubeck/agate

started time in 4 hours

startedmbrubeck/robinson

started time in 13 hours

created repositoryaconbere/smart-relay

A kicad project that builds a programmable relay with a current and voltage sensing

created time in 2 days

created repositoryaconbere/avr-rust-attiny85-test

Smallest possible build for an attiny85 test

created time in 2 days

startedlaunchdarkly/haskell-server-sdk

started time in 2 days

startedmbrubeck/android-completion

started time in 2 days

startedrougier/mu4e-dashboard

started time in 2 days

created repositorybrson/paxos-for-dummies-like-me

created time in 2 days

startedmbrubeck/agate

started time in 3 days

created repositoryunhammer/org-upcoming-modeline

created time in 3 days

startedesgibter/fandomstats

started time in 3 days

fork jdm/fandomstats

Fandom Statistics

fork in 3 days

startedmbrubeck/robinson

started time in 3 days

startedchuntaro/emacs-keypression

started time in 3 days

fork autonome/Cumulus

☁️ A SoundCloud player that lives in your menubar.

http://gillesdemey.github.io/Cumulus

fork in 4 days

startedmbrubeck/android-completion

started time in 4 days

startedmrdoob/stats.js

started time in 5 days

startedfactbook/factbook.json

started time in 5 days

push eventunicode-rs/unicode-segmentation

Travis CI User

commit sha a844e6ff87b2d88c38ca01d7df1447cdbe9d19ef

Update documentation

view details

push time in 5 days

fork autonome/Web-Extension-Starter

Typescript, React, Redux, Styled-Component and Webpack based sample extension boilerplate. Runs on Chrome and Firefox. Sample chrome extension.

fork in 5 days

issue closedunicode-rs/unicode-segmentation

Missing changelog for 1.7

Could you please add this?

closed time in 5 days

dhardy

issue commentunicode-rs/unicode-segmentation

Missing changelog for 1.7

Ah, the publication commit wasn't pushed. I anyway did a new commit for 1.7.1 with the doc changes https://github.com/unicode-rs/unicode-segmentation/commit/3b75ee19b3c0ddacaeec03be688a7b8766833728

dhardy

comment created time in 5 days

push eventunicode-rs/unicode-segmentation

Manish Goregaokar

commit sha 3b75ee19b3c0ddacaeec03be688a7b8766833728

Publish 1.7.1 (1.7.0 has the same non-documentation changes)

view details

push time in 5 days

issue commentunicode-rs/unicode-segmentation

Missing changelog for 1.7

I don't believe that there has been a release of the Unicode 13 changes. I submitted the PR with those updates. If there is anything that I can do to help prep a release, please let me know.

dhardy

comment created time in 5 days

issue commentunicode-rs/unicode-segmentation

Missing changelog for 1.7

The docs also need an update.

dhardy

comment created time in 5 days

issue openedunicode-rs/unicode-segmentation

Missing changelog for 1.7

Could you please add this?

created time in 5 days

more