Skip to content

vacuum-persistent #10

Open
tomaskulich wants to merge 295 commits into
polux:masterfrom
vacuumlabs:master
Open

vacuum-persistent #10
tomaskulich wants to merge 295 commits into
polux:masterfrom
vacuumlabs:master

Conversation

@tomaskulich

Copy link
Copy Markdown

No description provided.

Roman Hudec and others added 30 commits August 29, 2014 14:43
…transientMap

Conflicts:
	lib/src/map_impl.dart
Conflicts (deleted):
	benchmark/map_bench_wordcount.dart
	benchmark/src/benchmark.dart
	benchmark/src/simple_map_1.dart
	benchmark/src/simple_map_2.dart
@googlebot

Copy link
Copy Markdown

We found a Contributor License Agreement for you (the sender of this pull request), but were unable to find agreements for the commit author(s). If you authored these, maybe you used a different email address in the git commits than was used to sign the CLA (login here to double check)? If these were authored by someone else, then they will need to sign a CLA as well, and confirm that they're okay with these being contributed to Google.

@polux

polux commented Feb 23, 2015

Copy link
Copy Markdown
Owner

@tomaskulich thank you for this even more impressive PR :) As discussed on #7, please let me know when everyone has signed the CLA. As you can see, there's also now a googlebot tracking this.

@tomaskulich

Copy link
Copy Markdown
Author

@polux all relevant people have signed the CLA. Also, feel free to change / refactor / discuss anything.

@googlebot

Copy link
Copy Markdown

We found a Contributor License Agreement for you (the sender of this pull request) and all commit authors, but as best as we can tell these commits were authored by someone else. If that's the case, please add them to this pull request and have them confirm that they're okay with these commits being contributed to Google. If we're mistaken and you did author these commits, just reply here to confirm.

@tomaskulich

Copy link
Copy Markdown
Author

Hm, googlebot doesn't seem happy with the CLAs :) I'm not sure, what to do about it.

@polux

polux commented Mar 5, 2015

Copy link
Copy Markdown
Owner

Thank you! I'll check manually that everyone as signed the CLA then. It'll take me some time to merge the PR as there are apparently merge conflicts, but I'll do it ASAP. Thanks again!

@polux

polux commented Mar 23, 2015

Copy link
Copy Markdown
Owner

(Still working this out, I haven't forgotten.)

@polux

polux commented Mar 23, 2015

Copy link
Copy Markdown
Owner

@tomaskulich we're trying to understand why googlebot rejects the PR and would need you to ping this thread to trigger it again while we monitor it. Could you please ping this thread when you get a chance? Sorry for the inconvenience.

@tomaskulich

Copy link
Copy Markdown
Author

ping

@polux

polux commented Mar 23, 2015

Copy link
Copy Markdown
Owner

@tomaskulich I just go an explanation from the googlebot team: since you opened the PR it's clear that you're ok with this code being contributed to Google. But even if your co-authors have signed the CLA, there's no way of knowing they're ok with this particular code being contributed to Google. They might have signed the CLA for an unrelated project. There is no way for googlebot to know they're ok even if we do.

@syslo, @matystl, @jurom, @brandys11, @black3r can you please +1 this thread or say "I agree" or something like that?

Even after I get all the +1s googlebot won't mark the PR as successful because it can't parse "any form of agreement", but I will know it's ok to merge.

Thank you again for this huge pull request!

@matystl

matystl commented Mar 23, 2015

Copy link
Copy Markdown

+1 and "I agree"
not realy sure what +1 means so hope comment like this is enough

@jurom

jurom commented Mar 23, 2015

Copy link
Copy Markdown

"I agree", +1, and I'm ok with this particular code being contributed to Google. I hope this statement is sufficient.

@polux

polux commented Mar 24, 2015

Copy link
Copy Markdown
Owner

Thanks guys, "+1" is enough, "I agree" is enough too. So what you wrote is plenty enough :)

@syslo

syslo commented Mar 24, 2015

Copy link
Copy Markdown

I agree

@black3r

black3r commented Mar 24, 2015

Copy link
Copy Markdown

+1

@polux

polux commented Mar 25, 2015

Copy link
Copy Markdown
Owner

Thank you all! @brandys11: friendly ping.

@brandys11

Copy link
Copy Markdown

+1

@polux

polux commented Mar 26, 2015

Copy link
Copy Markdown
Owner

Yay! Thank you all again for this amazing pull request! It apparently has conflicts so it'll take me some time to merge but I'll make sure to do it. My plan is to basically release a version 1 which is your version 2.

@tomaskulich

Copy link
Copy Markdown
Author

@polux Hi, how is it going? Did you have a chance to go through the PR?

@polux

polux commented May 18, 2015

Copy link
Copy Markdown
Owner

Hi, I've started looking at it but I've had a lot of work recently and it's a big PR :) My intent though is to discuss a few design points with you and then make it the basis for version 1 of the library.

Here's a first question: did you chose to define

V get(K key, [V notFound])

instead of

V get(K key, [V notFound()])

on purpose? I would have gone for the latter but I can imagine that someone would find it overkill. Did you give it some thought and then chose the latter or did you just pick the former without considering the alternatives? In that case, would you think it makes sens to change it?

@tomaskulich

Copy link
Copy Markdown
Author

Hi, we were discussing both of the alternatives. I agree that the second alternative gives you more power, but its questionable, whether it's worth the cost. The two use-cases which come to my mind are:

Use case 1: Obtaining the notFound value takes a long time, i.e.

cache.get('key', timeConsumingOperationToGetValue) 

seems more reasonable than

cache.get('key', timeConsumingOperationToGetValue())

Use case 2: Obtaining notFound value may fail, if key is already present in the map. In such a (rare) case:

map.get('key', mayFailWhenMapContainsKey)

will be safe although

map.get('key', mayFailWhenMapContainsKey())

won't.

We consider these use-cases as quite unimportant (you can always use a workaround with setting notFound to null / none / whatever and then calculate the alternative value explicitly) and not worth the additional typing.

@tomaskulich

Copy link
Copy Markdown
Author

@polux Please let me know, if there is anything else, I can explain. There are a few weird issues (hopefully, they are properly commented) in the code, mostly because we tried to tune the performance and this comes at some cost.

@tomaskulich

Copy link
Copy Markdown
Author

@polux I realized, that some parts of the code must be really hard to understand without 'bigger picture' of how the implementation work. I wrote technical documentation (in separate file, just commenting the code felt strange) explaining a few things, maybe you'll find it useful.

@polux

polux commented May 20, 2015

Copy link
Copy Markdown
Owner

Awesome, thanks!

@tosh

tosh commented Dec 10, 2015

Copy link
Copy Markdown

Hey guys, just wanted to express interest in a consolidated persistent 1.0 :) Thanks for working on this.

@polux

polux commented Dec 10, 2015

Copy link
Copy Markdown
Owner

I haven'y forgotten about this but this PR is huge and:

  • it has merge conflicts
  • it has some breaking changes (return type of lookup for instance)

I need a large chunk of time to work on merging it, maybe my next vacation...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants