profile
viewpoint
Aleksey Kladov matklad @ferrous-systems Berlin https://matklad.github.io/ rosalind.info, Stepik.org, IntelliJ Rust, rust-analyzer. Stuck writing parsers.

intellij-rust/intellij-rust 3358

Rust plugin for the IntelliJ Platform

fitzgen/id-arena 58

A simple, id-based arena

ferrous-systems/cargo-review-deps 45

A tool for auditing Cargo dependencies during updates

async-rs/a-chat 36

A simple chat implemented on top of async-std

cuviper/autocfg 31

Automatic cfg for Rust compiler features

eugenyk/hpcourse 16

Repository to store student's practical works on high performance computing course

CAD97/sorbus 13

An experimental reimplementation of rowan, focused on size efficiency

lambda-llama/icfpc2016 2

λ-llama code for ICFP contest 2016

CAD97/str-index 1

A sketch of a general Rust string index newtype

PR opened cuviper/autocfg

Hide rustc output by default.

But add an environment variable to allow showing it, if wanted.

Fixes #30

+3 -0

0 comment

1 changed file

pr created time in 11 hours

issue openedrust-analyzer/ungrammar

vim syntax highlighting

It's not perfect, but does the job for now 😄 - feel free to copy/paste syntax/ungram.vim, link it, or PR:

<p align="center"> ungram.vim </p>

Usage w/ Plug: Plug drtychai/ungrammar.vim

created time in 13 hours

PR opened matklad/cargo-xtask

README: mdkir => mkdir

I tried copying this command... :P

+1 -1

0 comment

1 changed file

pr created time in 13 hours

created tagrust-analyzer/ungrammar

tagv1.10.0

created time in 19 hours

PR merged rust-analyzer/ungrammar

Derive more traits for Node and Token
  • Derive Hash for Node and Token
    • I'd like to be able to use these types as keys for a HashMap
  • Derive PartialOrd and Ord as well
    • I don't particularly need these but perhaps if someone wanted to put them into a BTreeMap it might be handy
  • Add an iterator for tokens of a grammar
  • Write docs
  • Enforce some lints
+52 -5

4 comments

4 changed files

azdavis

pr closed time in 19 hours

push eventrust-analyzer/ungrammar

Ariel Davis

commit sha 66763c849cce0a3ff42e1a7afa53ba327ebe9573

Derive more for Node and Token

view details

Ariel Davis

commit sha d873e88012aa8d4d35ae0484296b4aa2c7b6a136

Add a tokens iterator

view details

Ariel Davis

commit sha 3beaff7e387b0eb194ea31522919ad2fb8993324

Write docs

view details

Ariel Davis

commit sha 63617418291fa757f0a519eadb5f26ac7151a70f

Reorder

view details

Ariel Davis

commit sha 02be05795f7c2fff200c9df1b3fe4b3b5a4c5099

Fix typo

view details

Ariel Davis

commit sha ab160cda347d2d068ea2b38f4b8d91c1478b18fd

Pluralize

view details

Ariel Davis

commit sha e4ab990f5579933e945f537213fd12b16c3bbcd4

Add more doc

view details

Ariel Davis

commit sha b82d2fc7a33d05ff6bfdf5a0b44d2a4c70abf741

Fix typo

view details

Ariel Davis

commit sha e4e81fe54d93774d71091232a06bfa8e81c23234

Bump minor version

view details

bors[bot]

commit sha 58464513187be183f77fbf5b1997edde2ec6320a

Merge #25 25: Derive more traits for Node and Token r=azdavis a=azdavis - Derive Hash for Node and Token - I'd like to be able to use these types as keys for a HashMap - Derive PartialOrd and Ord as well - I don't particularly need these but perhaps if someone wanted to put them into a BTreeMap it might be handy - Add an iterator for tokens of a grammar - Write docs - Enforce some lints Co-authored-by: Ariel Davis <ariel.z.davis@icloud.com>

view details

push time in 19 hours

pull request commentrust-analyzer/ungrammar

Derive more traits for Node and Token

Build succeeded:

azdavis

comment created time in 19 hours

push eventrust-analyzer/ungrammar

Ariel Davis

commit sha 66763c849cce0a3ff42e1a7afa53ba327ebe9573

Derive more for Node and Token

view details

Ariel Davis

commit sha d873e88012aa8d4d35ae0484296b4aa2c7b6a136

Add a tokens iterator

view details

Ariel Davis

commit sha 3beaff7e387b0eb194ea31522919ad2fb8993324

Write docs

view details

Ariel Davis

commit sha 63617418291fa757f0a519eadb5f26ac7151a70f

Reorder

view details

Ariel Davis

commit sha 02be05795f7c2fff200c9df1b3fe4b3b5a4c5099

Fix typo

view details

Ariel Davis

commit sha ab160cda347d2d068ea2b38f4b8d91c1478b18fd

Pluralize

view details

Ariel Davis

commit sha e4ab990f5579933e945f537213fd12b16c3bbcd4

Add more doc

view details

Ariel Davis

commit sha b82d2fc7a33d05ff6bfdf5a0b44d2a4c70abf741

Fix typo

view details

Ariel Davis

commit sha e4e81fe54d93774d71091232a06bfa8e81c23234

Bump minor version

view details

bors[bot]

commit sha 58464513187be183f77fbf5b1997edde2ec6320a

Merge #25 25: Derive more traits for Node and Token r=azdavis a=azdavis - Derive Hash for Node and Token - I'd like to be able to use these types as keys for a HashMap - Derive PartialOrd and Ord as well - I don't particularly need these but perhaps if someone wanted to put them into a BTreeMap it might be handy - Add an iterator for tokens of a grammar - Write docs - Enforce some lints Co-authored-by: Ariel Davis <ariel.z.davis@icloud.com>

view details

push time in 19 hours

delete branch rust-analyzer/ungrammar

delete branch : staging.tmp

delete time in 19 hours

push eventrust-analyzer/ungrammar

Ariel Davis

commit sha 66763c849cce0a3ff42e1a7afa53ba327ebe9573

Derive more for Node and Token

view details

Ariel Davis

commit sha d873e88012aa8d4d35ae0484296b4aa2c7b6a136

Add a tokens iterator

view details

Ariel Davis

commit sha 3beaff7e387b0eb194ea31522919ad2fb8993324

Write docs

view details

Ariel Davis

commit sha 63617418291fa757f0a519eadb5f26ac7151a70f

Reorder

view details

Ariel Davis

commit sha 02be05795f7c2fff200c9df1b3fe4b3b5a4c5099

Fix typo

view details

Ariel Davis

commit sha ab160cda347d2d068ea2b38f4b8d91c1478b18fd

Pluralize

view details

Ariel Davis

commit sha e4ab990f5579933e945f537213fd12b16c3bbcd4

Add more doc

view details

Ariel Davis

commit sha b82d2fc7a33d05ff6bfdf5a0b44d2a4c70abf741

Fix typo

view details

Ariel Davis

commit sha e4e81fe54d93774d71091232a06bfa8e81c23234

Bump minor version

view details

bors[bot]

commit sha 1e0068d132679592ddfe7e1ebdd0e272c1652cc1

[ci skip][skip ci][skip netlify] -bors-staging-tmp-25

view details

push time in 19 hours

create barnchrust-analyzer/ungrammar

branch : staging.tmp

created branch time in 19 hours

pull request commentrust-analyzer/ungrammar

Derive more traits for Node and Token

Great! Added functionality & no breaking changes => minor version bump.

bors r+

azdavis

comment created time in 19 hours

pull request commentrust-analyzer/ungrammar

Derive more traits for Node and Token

:v: azdavis can now approve this pull request. To approve and merge a pull request, simply reply with bors r+. More detailed instructions are available here.

azdavis

comment created time in 20 hours

startedmatklad/cargo-xtask

started time in 21 hours

PR opened rust-analyzer/ungrammar

Derive more traits for Node and Token
  • Derive Hash for Node and Token
    • I'd like to be able to use these types as keys for a HashMap
  • Derive PartialOrd and Ord as well
    • I don't particularly need these but perhaps if someone wanted to put them into a BTreeMap it might be handy
  • Write docs
  • Enforce some lints
+43 -3

0 comment

2 changed files

pr created time in a day

issue closedcuviper/autocfg

Can I probe for const generics support?

I'd like to probe support for (minimal) const generics by checking this code:

type A<const N: usize> = [(); N];

But this can't be done with probe_type and I'm not sure how else to do it (other than maybe probe_rustc_version which seems kind of awkward). Any workarounds?

closed time in a day

cole-miller

startedmatklad/cargo-xtask

started time in a day

issue openedsalsa-rs/salsa

API for defining query implementations

I'm curious about the API for defining query implementations, which I find a little surprising and unergonomic.

I'm thinking in particular about how one must define them as free functions that pollute namespace but that magically get wired into the (generated) storage implementations. Why not instead have users provide these in place of "default" implementations in their trait definitions?

That is, instead of:

#[salsa::query_group(HelloWorldStorage)]
trait HelloWorld: salsa::Database {
    #[salsa::input]
    fn input_string(&self, key: ()) -> Arc<String>;

    fn length(&self, key: ()) -> usize;
}

fn length(db: &dyn HelloWorld, (): ()) -> usize {
    // Read the input string:
    let input_string = db.input_string(());

    // Return its length:
    input_string.len()
}

one would do:

#[salsa::query_group(HelloWorldStorage)]
trait HelloWorld: salsa::Database {
    #[salsa::input]
    fn input_string(&self, key: ()) -> Arc<String>;

    fn length(&self, key: ()) -> usize {
        // Read the input string:
        let input_string = self.input_string(());

        // Return its length:
        input_string.len()
    }
}

Furthermore, methods without any such default implementation could be assumed to be inputs (thus negating the need to explicitly mark them as such).

created time in a day

issue openedmatklad/countme

Mention thread safety in the README

I'm assuming this works across threads but it would be nice to call that out in the readme.

created time in a day

created tagmatklad/countme

tagv2.0.0-pre.2

created time in 2 days

created tagrust-analyzer/rowan

tagv0.12.1

created time in 2 days

created tagmatklad/countme

tagv2.0.0-pre.1

created time in 2 days

delete branch matklad/countme

delete branch : dm

delete time in 2 days

PR merged matklad/countme

Overhaul API

bors r+ 🤖

+316 -122

3 comments

8 changed files

matklad

pr closed time in 2 days

push eventmatklad/countme

Aleksey Kladov

commit sha 0b5621df116735639ea58582424b01ae7a1af785

Overhaul API

view details

bors[bot]

commit sha 1bb173021772e64c1fc68f16bc1a6da00a6e4a17

Merge #2 2: Overhaul API r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>

view details

push time in 2 days

pull request commentmatklad/countme

Overhaul API

Build succeeded:

matklad

comment created time in 2 days

delete branch matklad/countme

delete branch : staging.tmp

delete time in 2 days

push eventmatklad/countme

Aleksey Kladov

commit sha 0b5621df116735639ea58582424b01ae7a1af785

Overhaul API

view details

bors[bot]

commit sha 1bb173021772e64c1fc68f16bc1a6da00a6e4a17

Merge #2 2: Overhaul API r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>

view details

push time in 2 days

push eventmatklad/countme

Aleksey Kladov

commit sha 0b5621df116735639ea58582424b01ae7a1af785

Overhaul API

view details

bors[bot]

commit sha 314497599729d52408edadf6543334fbb1f716a5

[ci skip][skip ci][skip netlify] -bors-staging-tmp-2

view details

push time in 2 days

more