Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Split / move restutil module #340

Merged
merged 2 commits into from
Oct 13, 2013
Merged

Split / move restutil module #340

merged 2 commits into from
Oct 13, 2013

Conversation

mihails-strasuns
Copy link
Contributor

This is some kind of "preparation" request before implementing decorator feature we have recently discussed.
As this will involve adding quite a lot of metaprogramming facilities I have started with cleaning existing stuff
in vibe.http.restutil and moving it to appropriate generic place.

In process have noticed and fixed some bugs and adjusted everything to published code style.

Dicebot added 2 commits October 12, 2013 20:04
Move those smaller modules into freshly created `vibe.utils.meta` package.

vibe.d code style was enforced in process, documented unittest feature used, few small bugs fixed.
@mihails-strasuns
Copy link
Contributor Author

Worth noting though that I current vibe.d master is hopelessly broken on 2.063.2 and with dmd master I can't run rest unittests because of source/vibe/core/concurrency.d(303): Error: static assert (is(Isolated!(SE[]) == IsolatedArray!SE)) is false triggering first.

I am afraid that abandoning normal "last 2 versions" approach is needed for now and returning to it once CI stuff is running - there is no way we can patch all the ICE's with workarounds.

@MartinNowak
Copy link
Contributor

I am afraid that abandoning normal "last 2 versions" approach is needed for now and returning to it once CI stuff is running - there is no way we can patch all the ICE's with workarounds.

Please report any ICE to Bugzilla, mark the bug as regression, choose proper keywords, if necessary raise the priority and most import try to provide a reduced test case (DustMite).
Usually those bugs are fixed in a timely manner, see here for an example.

@mihails-strasuns
Copy link
Contributor Author

@dawgfoto most are fixed in current DMD master, no problem here! Problem is that in absence of CI vibe.d master was rarely tested on 2.063.2 and right now triggers several bugs on last released version. Usually @s-ludwig tries to support 2 last releases of DMD simultaneously providing temporary workarounds for such stuff - I am afraid there is no way to conform to this approach easily in current state.

So it is not yet another DMD rant ;)

@s-ludwig
Copy link
Member

If it's just that unittest issue, lets just put a static if (__VERSION__ >= 2064) around it/them.

@s-ludwig
Copy link
Member

Anyway, it looks much better/cleaner now. I'll merge and see if a few things from vibe.data or vibe.templ can be put there, too.

s-ludwig added a commit that referenced this pull request Oct 13, 2013
Split / move `restutil` module
@s-ludwig s-ludwig merged commit da3659b into vibe-d:master Oct 13, 2013
@mihails-strasuns
Copy link
Contributor Author

If it's just that unittest issue, lets just put a static if (VERSION >= 2064) around it/them.

No, you have misunderstood, unittests fail with current master (2.064). On 2.063.2 it simply results in DMD ICE.

@s-ludwig
Copy link
Member

Hm OK and the ICE is one that is not solved by the static if()? Since most ICEs occur in the later stages I would have assumed that this could help here.

@s-ludwig
Copy link
Member

But regarding the failed unit test.. I don't get it. I've frequently built with "-unittest" in the past days and nothing ever failed. But for some reason, from time to time, certain tests still fail in other environments (sometimes rightfully so and sometimes they shouldn't). But this looks like it may be triggered by some bug along the lines of http://d.puremagic.com/issues/show_bug.cgi?id=11225?

@mihails-strasuns
Copy link
Contributor Author

@s-ludwig No idea, I did not want to distract upon reducing the root case for that ICE and just switched compiler version to master to move forward.

Regarding failing unittest:

$ uname -a
Linux microfog 3.11.1-1-ARCH #1 SMP PREEMPT Sat Sep 14 20:31:35 CEST 2013 i686 GNU/Linux
$ rdmd -I../../openssl -I../../libevent -version=VibeLibeventDriver -unittest -main vibe/http/rest.d 
vibe/core/file.d(146): Deprecation: function std.file.dirEntry is deprecated - Please use DirEntry constructor directly instead.
vibe/core/file.d(146): Deprecation: function std.file.dirEntry is deprecated - Please use DirEntry constructor directly instead.
source/vibe/core/concurrency.d(303): Error: static assert  (is(Isolated!(SE[]) == IsolatedArray!SE)) is false

DMD built from commit e68fac3ce94c8fd64fdc21554bfcc933bdc9b169

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.

3 participants