profile
viewpoint

erikdesjardins/chrome-extension-deploy 25

Deploy Chrome extensions to the Chrome Web Store.

erikdesjardins/firefox-extension-deploy 11

Deploy Firefox extensions to AMO.

erikdesjardins/babel-plugin-transform-dead-code-elimination 8

Babel 6 fork of babel-plugin-dead-code-elimination.

erikdesjardins/inert-entry-webpack-plugin 7

Webpack plugin to allow non-js entry chunks.

erikdesjardins/contents-loader 5

Webpack loader to import the contents of a directory.

erikdesjardins/eslint-plugin-dollar-sign 3

Enforce $varName for jQuery assignment.

erikdesjardins/exec-loader 3

Webpack loader to execute imports at build time.

erikdesjardins/extricate-loader 3

Webpack loader to extract content from the bundle.

erikdesjardins/eslint-plugin-no-useless-assign 2

Prevent useless assignment.

erikdesjardins/eslint-plugin-sort-imports-es6 2

A sort-imports rule that properly distinguishes between ES6 import types.

push eventerikdesjardins/properpoly

erikdesjardins

commit sha e21d3c7bb737a33e61df338b389d19f6c3c624c8

simplify readme

view details

push time in 6 days

push eventerikdesjardins/properpoly

erikdesjardins

commit sha 5bb8945f00741210d1d9fa5d4c250e4183c728e6

tweak readme

view details

push time in 6 days

push eventerikdesjardins/properpoly

erikdesjardins

commit sha 184ceda8a5a92cc09ff89ea4d990981347d82b0a

initial impl

view details

push time in 6 days

push eventerikdesjardins/properpoly

erikdesjardins

commit sha 34944942f65caa5e7e0f3d48dc8e3d5352df55a7

Update README.md

view details

push time in 6 days

create barncherikdesjardins/properpoly

branch : master

created branch time in 6 days

created repositoryerikdesjardins/properpoly

RK-002 firmware with better polyphony.

created time in 6 days

pull request commentrust-lang/rust

Rebased: Mark drop calls in landing pads cold instead of noinline

@oxalica I'm confused what you're responding to. I don't think anyone is in doubt that the exponential inlining issues are fixed, that's the reason this PR removes noinline.

We want cold, since panicking paths are cold, pretty much by definition.

InnovativeInventor

comment created time in 19 days

delete branch erikdesjardins/infoband

delete branch : skip

delete time in 20 days

push eventerikdesjardins/infoband

Erik Desjardins

commit sha 2d48d680da079d8106e17fd96c50c876b71ceb82

move instance fetching to create_and_run_message_loop for better error handling

view details

Erik Desjardins

commit sha bbf797206a9f983b16845f04212436e1ae90f67e

stop painting when session is locked hopefully this will avoid the persistent buffered paint failures

view details

Erik Desjardins

commit sha 06c10a31dd846d930bdf9a2ce4cebf3e6b384557

WIP: use PDH to fetch network usage instead of GetIfTable

view details

Erik Desjardins

commit sha f2cf5c406cc678aa34cadd1bde4c0288b4edd0d6

Revert "WIP: use PDH to fetch network usage instead of GetIfTable" This reverts commit 06c10a31dd846d930bdf9a2ce4cebf3e6b384557. As it turns out, this just calls GetIfTable internally, and performance profiling shows it performing pretty much exactly the same...

view details

Erik Desjardins

commit sha 5ce97b62ff6bf687deb7cbcd64a08ba24d1c9131

handle errors for each fetch type separately for better graceful degradation (and more understandable error logs)

view details

Erik Desjardins

commit sha 9dfc3ae6fe6f2ad0531c790583cd89814ac98c19

1.4.2

view details

erikdesjardins

commit sha 4645307d3897e3dbad09d3f314f4b93f518896b5

Merge pull request #10 from erikdesjardins/skip stop painting when session is locked; PDH for network data (not really)

view details

push time in 20 days

PR merged erikdesjardins/infoband

stop painting when session is locked; PDH for network data (not really)

I was going to use PDH to collect network usage information, but it just calls GetIfTable internally anyways...

image

+106 -48

0 comment

8 changed files

erikdesjardins

pr closed time in 20 days

created tagerikdesjardins/infoband

tagv1.4.2

Windows "DeskBand" displaying cpu/mem/disk/network info.

created time in 20 days

push eventerikdesjardins/infoband

Erik Desjardins

commit sha 9dfc3ae6fe6f2ad0531c790583cd89814ac98c19

1.4.2

view details

push time in 20 days

push eventerikdesjardins/infoband

Erik Desjardins

commit sha 06c10a31dd846d930bdf9a2ce4cebf3e6b384557

WIP: use PDH to fetch network usage instead of GetIfTable

view details

Erik Desjardins

commit sha f2cf5c406cc678aa34cadd1bde4c0288b4edd0d6

Revert "WIP: use PDH to fetch network usage instead of GetIfTable" This reverts commit 06c10a31dd846d930bdf9a2ce4cebf3e6b384557. As it turns out, this just calls GetIfTable internally, and performance profiling shows it performing pretty much exactly the same...

view details

Erik Desjardins

commit sha 5ce97b62ff6bf687deb7cbcd64a08ba24d1c9131

handle errors for each fetch type separately for better graceful degradation (and more understandable error logs)

view details

push time in 20 days

PR opened erikdesjardins/infoband

stop painting when session is locked
+73 -21

0 comment

6 changed files

pr created time in 20 days

create barncherikdesjardins/infoband

branch : skip

created branch time in 20 days

PullRequestReviewEvent

pull request commentrust-lang/rust

Rebased: Mark drop calls in landing pads cold instead of noinline

Minimized repro:

// run-pass
// edition:2021
// needs-unwind

use std::panic::catch_unwind;
use std::sync::Arc;

struct DecrementOnDrop(*const ());

impl Drop for DecrementOnDrop {
    fn drop(&mut self) {
        unsafe { Arc::decrement_strong_count(self.0); }
    }
}

fn block_on() {
    let _waker = DecrementOnDrop(Arc::into_raw(Arc::new(())));

    panic!();
}

#[inline(never)]
#[no_mangle]
fn panicked_at() {
    _ = catch_unwind(|| block_on());
}

fn main() {
    panicked_at();
}

InnovativeInventor

comment created time in 22 days

pull request commentrust-lang/rust

Rebased: Mark drop calls in landing pads cold instead of noinline

I've spent some time looking into this, and I can't tell what the cause of the problem is. But there's definitely something wrong here.

What I can tell is:

_CxxThrowException, here, gets called with a valid pointer to an Exception object (throw_ptr).

The cleanup function, here, instead of getting passed throw_ptr, is called with some unrelated nonsensical pointer, henceforth referred to as foo. The first four bytes that foo points to are always zero, so this load returns zero, which of course is not the correct canary value, triggering the "foreign rust exception" error.

I cannot tell how foo ends up as the argument to cleanup, but it seems like a miscompile, since foo points to (what seems to be) a deallocated object (see below). cleanup is called via a bunch of convoluted MSVC unwinding code, which I am trying to reverse engineer.

Setting memory breakpoints on the memory pointed to by foo, these are the operations that occur (in pseudo-rust):

struct Foo {
  a: AtomicU32,
  b: AtomicU32,
  inner: *const Inner
}

struct Inner {
	a: AtomicU32,
	...
}
// ...things happen...

foo = alloc(Foo)
*foo = <stack data> // something like `*foo = Foo { 1, 1, *const Inner { 1 } }`

// ...other things happen...

panic(...) // calls `_CxxThrowException(throw_ptr)`

// ...other things happen...

if decrement(foo.a) != 0 { goto other code; }
if decrement(foo->inner.a) != 0 { goto other code; }
if decrement(foo.b) != 0 { goto other code; }
dealloc(foo)

// ... other things happen...

cleanup(foo) // at this point, due to the decrements, foo points to `Foo { 0, 0, *const Inner { 0 } }`

This behavior, with two atomic counters getting decremented to zero before it's deallocated, makes me think Foo is Arc, although Arc isn't nested like that (maybe it's Arc<Arc<T>>...). Not that this really helps us understand why foo is getting passed to cleanup instead of the correct value...

InnovativeInventor

comment created time in 22 days

Pull request review commentrust-lang/rust

Add regression test for LLVM 17-rc3 miscompile

+// compile-flags: -O -Ccodegen-units=1+// only-x86_64-unknown-linux-gnu

We should avoid making tests target specific unless it's absolutely required, since it makes the development experience worse for devs on other platforms.

If you need to, you can make the test no_core and specify --target x86_64-unknown-linux-gnu instead, which works regardless of the host (e.g.), but I don't think that will be necessary here--you can probably just delete this line.

djkoloski

comment created time in 24 days

PullRequestReviewEvent

Pull request review commentrust-lang/rust

Add regression test for LLVM 17-rc3 miscompile

+// compile-flags: -O -Ccodegen-units=1+// only-x86_64-unknown-linux-gnu++#![crate_type = "lib"]++#[repr(i64)]+pub enum Boolean {+    False = 0,+    True = 1,+}++impl Clone for Boolean {+    fn clone(&self) -> Self {+        *self+    }+}++impl Copy for Boolean {}++extern "C" {+    fn set_value(foo: *mut i64);+}++pub fn foo(x: bool) {+    let mut foo = core::mem::MaybeUninit::<i64>::uninit();+    unsafe {+        set_value(foo.as_mut_ptr());+    }++    if x {+        let l1 = unsafe { *foo.as_mut_ptr().cast::<Boolean>() };+        if matches!(l1, Boolean::False) {+            unsafe {+                *foo.as_mut_ptr() = 0;+            }+        }+    }++    let l2 = unsafe { *foo.as_mut_ptr() };+    if l2 == 2 {+        // CHECK: call void @bar+        bar();+    }+}++#[no_mangle]+#[inline(never)]+pub fn bar() {+    println!("Working correctly!");+}

Nit: declaring bar as an extern fn would make the IR a bit cleaner.

djkoloski

comment created time in 24 days

Pull request review commentrust-lang/rust

Add regression test for LLVM 17-rc3 miscompile

+// compile-flags: -O -Ccodegen-units=1+// only-x86_64-unknown-linux-gnu

Does this need to be limited to x64 linux? It doesn't look target specific.

djkoloski

comment created time in 24 days

PullRequestReviewEvent
PullRequestReviewEvent

delete branch erikdesjardins/infoband

delete branch : fix

delete time in 24 days

push eventerikdesjardins/infoband

Erik Desjardins

commit sha 405a5e9b7f43c370580b627744014415704fa375

always skip paint on error, not just the first time

view details

Erik Desjardins

commit sha 7105f5ff0ea92b04f700629e3960bba495cedd8c

actually deny warnings in clippy

view details

Erik Desjardins

commit sha b312dcc5bdd219f7544e35ab472d28a2087b10e1

1.4.1

view details

erikdesjardins

commit sha c7146e61b00541e35c260d51c5aec4432a520f06

Merge pull request #9 from erikdesjardins/fix always skip paint on error, not just the first time

view details

push time in 24 days

created tagerikdesjardins/infoband

tagv1.4.1

Windows "DeskBand" displaying cpu/mem/disk/network info.

created time in 24 days

push eventerikdesjardins/infoband

Erik Desjardins

commit sha b312dcc5bdd219f7544e35ab472d28a2087b10e1

1.4.1

view details

push time in 24 days

more