View previous topic :: View next topic |
Author |
Message |
dsieber
Joined: 27 Mar 2004 Posts: 16
|
Posted: Sun Apr 18, 2004 10:20 pm Post subject: Updated info on VS.NET 7.0 installation problems |
|
|
Ok, I am still tracking down what the problems are (this is for those people I emailed a beta version to). Bottom line: it doesn't install correctly for VS.NET 7.0.
The registration code in DCoder.dll, generated by the Wizard in the SDK, hard-codes version 7.1 for the registry key, so a VS.NET 7.0 installation still isn't getting initialized correctly after a DCoder install.
OTOH, my installation script actually checks which version you have, and writes the "Packages" GUID to the correct location. (sigh) Ok, we are getting closer. This has really been a PITA so far... my apologies to the beta testers, and thanks again for your patience. Will try to correct this ASAP. _________________ dave |
|
Back to top |
|
|
sscotteg
Joined: 13 Apr 2004 Posts: 3 Location: Australian Capital Territory
|
Posted: Mon Apr 19, 2004 3:55 am Post subject: |
|
|
Dave,
I get nothing in 7.1! THe options know nothing about a 'd' file type and there is no colour syntax.
Can you give me the registry settings and I'll have a look and see if I can figure anything out.
I'll also try unistalling the VSIP |
|
Back to top |
|
|
dsieber
Joined: 27 Mar 2004 Posts: 16
|
Posted: Mon Apr 19, 2004 8:40 am Post subject: |
|
|
sscotteg wrote: | Dave,
I get nothing in 7.1! THe options know nothing about a 'd' file type and there is no colour syntax.
Can you give me the registry settings and I'll have a look and see if I can figure anything out.
I'll also try unistalling the VSIP |
Could be because of the earlier test with dservice.dll, but I thought installing this new one should have overwritten those settings.
I'll prepare a post with a list of the registry details. It's more than just having "D" under "Languages" -- you have to have the GUID entered in 3 or 4 places, and a few other things. I will try to get that done this morning.
I'm really amazed at how much trouble it is getting a simple COM DLL to install. Can you imagine an entire OS or a company's product line built with such technology? _________________ dave |
|
Back to top |
|
|
jcc7
Joined: 22 Feb 2004 Posts: 657 Location: Muskogee, OK, USA
|
Posted: Mon Apr 19, 2004 11:14 am Post subject: |
|
|
dsieber wrote: | I'm really amazed at how much trouble it is getting a simple COM DLL to install. Can you imagine an entire OS or a company's product line built with such technology? | I'd bet such a company would consider replacing such a cumbersome technology in favor of some new technology called .NET (which would likely be more cumbersome than the technology it's replacing). |
|
Back to top |
|
|
qbert
Joined: 30 Mar 2004 Posts: 209 Location: Dallas, Texas
|
Posted: Tue Apr 20, 2004 5:05 pm Post subject: |
|
|
Hi , I use download and run the MSI installation , still not getting any recognition of D files for 7.0 , you mentioned a registry key is possible I can change that ?
Also if I remember correctly you are going to try to use the dmd front end as the parser for VS ? If so I'd like to help out.
Thanks,
Z |
|
Back to top |
|
|
dsieber
Joined: 27 Mar 2004 Posts: 16
|
Posted: Tue Apr 20, 2004 6:33 pm Post subject: |
|
|
qbert wrote: | Hi , I use download and run the MSI installation , still not getting any recognition of D files for 7.0 , you mentioned a registry key is possible I can change that ? |
There are several registry entries that have to be created, and I haven't had time to create the document I promised (sorry anyone who is waiting). If you look in the registry under
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio
you'll see the versions installed on your box. If you don't have 7.1 installed, but you see entries under 7.1 in the registry, that's part of the problem -- the SDK code from Microsoft installs in 7.1 if it doesn't find certain other info. You could copy those values over to the 7.0 hive (carefully!) and see if that helps.
If you don't have 7.1 installed, can you check something for me? Run a command prompt and type "SET", see if there is a line like this:
DevEnvDir=C:\MSVS.NET2003\Common7\IDE
or like this:
ENVSDK_REGKEY=7.1Exp
And let me know what values you have.
qbert wrote: | Also if I remember correctly you are going to try to use the dmd front end as the parser for VS ? If so I'd like to help out. |
Hang tight for a little while, I want to get the installation issues resolved, and then I will look at how to do the parsing. Are you familiar with the Babel SDK? _________________ dave |
|
Back to top |
|
|
qbert
Joined: 30 Mar 2004 Posts: 209 Location: Dallas, Texas
|
Posted: Tue Apr 20, 2004 10:36 pm Post subject: |
|
|
dsieber wrote: |
DevEnvDir=C:\MSVS.NET2003\Common7\IDE
or like this:
ENVSDK_REGKEY=7.1Exp
|
Hmm neither of those variables exist, in fact the only variables that refrence VS.net are the LIB and INCLUDE, along with
VSCOMNTOOLS="C:\Program Files\Microsoft Visual Studio .NET\Common7\Tools\"
I have keys for 6 - 7.1, but only 6 - 7.0 installed, it looks like the 7.1 entry has only 2 subkeys , one for XT ( a MFC toolkit ) and under Packages
C:\Program Files\Common Files\Microsoft Shared\Babel\7.0\BabelPackage.dll , which exists for 7.0 also.
dsieber wrote: |
Hang tight for a little while, I want to get the installation issues resolved, and then I will look at how to do the parsing. Are you familiar with the Babel SDK? |
No not familiar , Im actually interested in having the parser for another project, so I had hoped we could get a basic D parser, then have a sort of plug and play thing going on for the backend. |
|
Back to top |
|
|
dsieber
Joined: 27 Mar 2004 Posts: 16
|
Posted: Tue Apr 20, 2004 10:59 pm Post subject: |
|
|
qbert wrote: |
Hmm neither of those variables exist, in fact the only variables that refrence VS.net are the LIB and INCLUDE, along with
VSCOMNTOOLS="C:\Program Files\Microsoft Visual Studio .NET\Common7\Tools\"
|
Ok, you're the second case of this: apparently the key I'm looking for, as per the documention, is not there for 7.0. And the Wizard-generated code for the language service hard-codes 7.1 if the key is not found. So that's the bug (or at least one of them )
Quote: | C:\Program Files\Common Files\Microsoft Shared\Babel\7.0\BabelPackage.dll , which exists for 7.0 also.
|
The Babel stuff is put there by my installer.
Quote: | No not familiar , Im actually interested in having the parser for another project, so I had hoped we could get a basic D parser, then have a sort of plug and play thing going on for the backend.
|
Ah, right. There has been a couple of inquiries about this, and I think it would be a good thing to have. Have you checked out Walter's front-end code? It's good and clean, and I think adaptable. And it's the only real documentation on the exact nature of the language (poor guy is swamped, and the grammar on the D site is not complete), and you get all his error checking too.
The reason I asked about Babel is that it looks like that's the most challenging part for me, in order to get Intellisense working. I'll have to muck around with the parser (whichever one I use) quite a bit. Babel can work from a yacc grammar, and you add in all sorts of code for parameters, scopes, brace matching, name matching, etc, so a complete grammar would help me out a lot too. But every time I think about using yacc again, I quickly go look at Walter's code and hope it'll work instead . _________________ dave |
|
Back to top |
|
|
qbert
Joined: 30 Mar 2004 Posts: 209 Location: Dallas, Texas
|
Posted: Fri Apr 23, 2004 11:31 am Post subject: |
|
|
Quote: | Ah, right. There has been a couple of inquiries about this, and I think it would be a good thing to have. Have you checked out Walter's front-end code? It's good and clean, and I think adaptable. |
Yes Ive looked over it, it is clean ( C style C++ it looks like ), but it is huge, and the backend is indiscrimantly mixed in, so you cant tell which is a part of which. Ive narrowed down the unresolved symbols to about 150 or so, 1 by 1, but im afraid to do it like this, because in the end i doubt the program will do anything.
Quote: |
But every time I think about using yacc again, I quickly go look at Walter's code and hope it'll work instead . |
Yea, ive honestly never had much luck with it . Its a rock and a hardplace for sure, let me know when you have some time ? Make we can hash out the best method to get a working parser.
Thanks!
Charles |
|
Back to top |
|
|
dsieber
Joined: 27 Mar 2004 Posts: 16
|
Posted: Fri Apr 23, 2004 1:13 pm Post subject: |
|
|
qbert wrote: | Yes Ive looked over it, it is clean ( C style C++ it looks like ), but it is huge, and the backend is indiscrimantly mixed in, so you cant tell which is a part of which. Ive narrowed down the unresolved symbols to about 150 or so, 1 by 1, but im afraid to do it like this, because in the end i doubt the program will do anything. |
I have compiled it, but I did not try to link it yet, so perhaps there will be some more problems. But any code that referenced the back-end, I just removed that source file
Also, mars.c is the main startup code for the command line compiler, so of course there is stuff there which will would not be used for other applications. You definitely would have to hack it up a bit.
Quote: | Yea, ive honestly never had much luck with it . Its a rock and a hardplace for sure, let me know when you have some time ? Make we can hash out the best method to get a working parser. |
I started a Yacc grammar, but have got only a fraction done. It is difficult because the grammar spec on the Digital Mars site is incomplete and even wrong in some places. The declarations are the hardest part, it seems, and the spec is very confusing: Decl, DeclDef, Declaration, Declarator, Declarator2 -- what the hell are they supposed to be?
If you want, I could give you what I have so far (not much, and it's messy!) and you can see if you can work with it. I also have a Flex lexer, which works but remember that I wrote it for Babel syntax highlighting, so it does a few non-standard things. Same for the yacc grammar.
But I think -- for DCoder -- that using Walter's code is the way I should go. It will take some work to fit it into Babel for Visual Studio, but I think that is easier, and less work, than creating a grammar from scratch (especially because the online language spec for D is not complete). _________________ dave |
|
Back to top |
|
|
qbert
Joined: 30 Mar 2004 Posts: 209 Location: Dallas, Texas
|
Posted: Sun Apr 25, 2004 12:34 pm Post subject: |
|
|
Yea could you send me what you have for the frontend ? I've just been using the dmd download and some stubs created by opend , dli.
Im at charles@jwavro.com
Gracias,
Carlos |
|
Back to top |
|
|
dsieber
Joined: 27 Mar 2004 Posts: 16
|
Posted: Mon Apr 26, 2004 8:36 am Post subject: |
|
|
qbert wrote: | Yea could you send me what you have for the frontend ? I've just been using the dmd download and some stubs created by opend , dli. |
Sure Carlos, I'll email them to you this morning. Just remember that both of them (the Flex lexer and the Yacc parser) have some Babel-related things in them.
For instance, for syntax highlighting with Babel the lexer must return a token for everything that will be colored, but in a real lexer you may not want to have separate tokens for everything (regular string vs. Wysisyg string vs Hex string, for instance). And it must return a token at the end of each line, which isn't really right for multi-line comments or strings. It has start states for these (and other things), where in a real lexer you would ignore comments and grab entire strings as a single token. Things like that.
The Yacc parser knows about the multiple strings, and handles them, and Babel filters out the comments so that they never get to the parser, so somehow it all "works"
The Yacc parser is only partially complete, but what I have done so far works. I've kept it down to 0 shift/reduce conflicts and 0 reduce/reduce conflicts in what I had got done, which is the goal. I was adding one thing at a time and making sure it worked. Some items are commented out, until I get them working, and some items are just stubs.
I may post all of the source I have in case anyone else wants to work on it. I think I've lost my interest in D for now, but I may check it out after 1.0 is finished, and see how the issues were resolved. _________________ dave |
|
Back to top |
|
|
qbert
Joined: 30 Mar 2004 Posts: 209 Location: Dallas, Texas
|
Posted: Mon Apr 26, 2004 12:12 pm Post subject: |
|
|
Wow good stuff! Quite a bit done it seems. I cant belive you managed 0 confilcts, even GCC's grammar has some 100+ . This'll do nicely, I will try to work my way through it ( itll be slow going for sure ) , and if anyone wants the updates just let me know.
Quote: | I think I've lost my interest in D for now, but I may check it out after 1.0 is finished, and see how the issues were resolved. |
That sucks, hate to see you go. To be honest though Im waiting for 1.0 too, think i've burnt myself out ( though I still use D sometimes at work so its cool ).
Hope to see you back here!
Charles |
|
Back to top |
|
|
dsieber
Joined: 27 Mar 2004 Posts: 16
|
Posted: Mon Apr 26, 2004 1:25 pm Post subject: |
|
|
qbert wrote: | Wow good stuff! Quite a bit done it seems. I cant belive you managed 0 confilcts, even GCC's grammar has some 100+ . This'll do nicely, I will try to work my way through it ( itll be slow going for sure ) , and if anyone wants the updates just let me know. |
LOL -- don't be too impressed, it's incomplete and I left all the hard parts for you . If you can keep it at 0 conflicts, I will be very impressed!
BTW, while I am thinking about it: obviously you can pull out all the actions I wrote in the grammar (all those "babel->" calls). Same in the lexer. I was using Flex and Bison from the Cygwin package, so it should be compatibile with whatever you are using. I do believe, however, that it will not work correctly for non-ASCII source files. This is probably a Flex issue -- just something to be aware of.
Quote: | That sucks, hate to see you go. To be honest though Im waiting for 1.0 too, think i've burnt myself out ( though I still use D sometimes at work so its cool ). |
Well, I just have to work on other things, so it's temporary. I am really eager for Walter to make D a great language, but I hope some of the issues are resolved in a good way.
I'll answer any questions you have on the lexer and grammar. Seriously, just ask here, and I get an email notification, and I'll explain anything I was doing. I hate picking up someone else's code and not knowing what they were doing, so I will gladly help you out if you want it. _________________ dave |
|
Back to top |
|
|
qbert
Joined: 30 Mar 2004 Posts: 209 Location: Dallas, Texas
|
Posted: Wed Jun 02, 2004 10:35 am Post subject: |
|
|
Hey dave, hope your emails still valid ,
So im starting on the parser now, I've removed all the babel stuff and it compiles fine, however im using
flex -+ lexer.lex
to create the lexer and
bison parser.y
to create the parser , then compiling them together with G++ ( from cygwin package )
I get errors :
parser.tab.c: In function `int yyparse()':
parser.tab.c:2202: error: `yylex' undeclared (first use this function)
parser.tab.c:2202: error: (Each undeclared identifier is reported only once for
each function it appears in.)
parser.tab.c:2484: error: `yyerror' undeclared (first use this function)
I think its because the parser create is C , and the lexer is C++ . I couldnt find an option to get bison to generate C++ code, I noticed you used parser.hpp in the lex file , I dont see any flags for bison to generate C++ , how can i get it to ? Or how did you compile them ?
Thanks,
Charlie |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|