|
Boost : |
From: Paul A. Bristow (boost_at_[hidden])
Date: 2001-12-07 07:21:44
That is REALLY useful info. Thanks. Paul
> -----Original Message-----
> From: Jason Shirk [mailto:jasonsh_at_[hidden]]
> Sent: Thursday, December 06, 2001 11:18 PM
> To: boost_at_[hidden]
> Subject: RE: [boost] MS VC 6 Internal Compiler Error using regex
>
>
> A PCH is really a core dump with some header information. When using
> the PCH (the /Yu option), the compiler simply calls MapViewOfFileEx
> mapping in the PCH at the address the heap was created at.
>
> This works great on NT because each process has its own address space.
> As long as the process (cl.exe in this case) carefully manages its own
> memory, it can ensure the memory region needed for the PCH is always
> available.
>
> On Win9x, the address space is shared between processes, so a process
> can't control the address space required for the PCH heap. So, when the
> compiler fails to load the PCH at the address it was dumped out at, we
> load the heap at a new address, and then adjust all pointers in the heap
> by the offset between old and new addresses.
>
> It actually reminds me very much of the generic object [un]serialization
> problem.
>
> The idea is simple, but it's very hard code to maintain and test. To
> test, almost every construct the compiler can parse must occur when the
> PCH is created, then that construct must somehow be referenced when the
> PCH is used and has been relocated.
>
> This should also explain the need for the /Zm option. The compiler
> needs to ensure it has a contiguous address space for the heap we create
> the PCH from. The /Zm option is the poor man's way of helping ensure
> that. We do have a few improvements we can make to alleviate the need
> for the /Zm option in most cases, but nobody really complains, so it
> will probably wait.
>
> Jason Shirk
> VC++ Compiler Team
>
> -----Original Message-----
> From: Mountfort, Geoff [mailto:gmountfort_at_[hidden]]
> Sent: Thursday, December 06, 2001 2:49 PM
> To: 'boost_at_[hidden]'
> Subject: RE: [boost] MS VC 6 Internal Compiler Error using regex
>
> I'm interested.
>
> Geoff
>
> -----Original Message-----
> From: Jason Shirk [mailto:jasonsh_at_[hidden]]
> Sent: Friday, 7 December 2001 9:32 AM
> To: boost_at_[hidden]
> Subject: RE: [boost] MS VC 6 Internal Compiler Error using regex
>
>
> PCH's don't always work well on Win9x based machines due in part to our
> design and to a lesser degree the emphasis placed on testing (both
> internally and by actual customer use.)
>
> PCH's are very reliable on WinNT and beyond.
>
> There are solid technical reasons for this. If anyone is interested,
> I'm more than happy to explain.
>
> VC7 won't install on Win9x machines, so in theory this problem will
> quietly go away once people upgrade.
>
> Jason Shirk
> VC++ Compiler Team
>
> -----Original Message-----
> From: Paul A. Bristow [mailto:boost_at_[hidden]]
> Sent: Thursday, December 06, 2001 2:08 PM
> To: boost_at_[hidden]
> Subject: RE: [boost] MS VC 6 Internal Compiler Error using regex
>
> When I was using a Win98 machine, with 'default' IDE settings,
> for a plain console application.
> I used to get this problem (before I even knew pre-compiled headers
> existed!).
> Haven't tried recompiling on a W2k machine I now use.
>
> I tried increasing a stack size (as a MS document recommended for
> internal
> compile faults)
> as I remember, but it didn't help.
>
> Incidentally I don't find 'edit and continue' works reliably either.
>
> Rebuild each time did work.
>
> Thanks
>
> Paul
>
>
> > -----Original Message-----
> > From: Jason Shirk [mailto:jasonsh_at_[hidden]]
> > Sent: Thursday, December 06, 2001 5:41 PM
> > To: boost_at_[hidden]
> > Subject: RE: [boost] MS VC 6 Internal Compiler Error using regex
> >
> >
> > Are you hitting this problem on a Win9x/WinME machine or a
> > WinNT/Win2K/WinXP machine?
> >
> > Are you using -YX or -Yc/-Yu?
> >
> > If it's a Win9x only problem, then I think I know what is wrong.
> >
> > -----Original Message-----
> > From: Paul A. Bristow [mailto:boost_at_[hidden]]
> > Sent: Thursday, December 06, 2001 7:23 AM
> > To: boost_at_[hidden]
> > Subject: RE: [boost] MS VC 6 Internal Compiler Error using regex
> >
> > I agree with this advice - I have found if you have complex code it
> may
> > be
> > necessary
> > to do this for EVERY re-compile.
> >
> > Paul
> >
> > Dr Paul A Bristow, hetp Chromatography
> > Prizet Farmhouse
> > Kendal, Cumbria
> > LA8 8AB UK
> > +44 1539 561830
> > Mobile +44 7714 33 02 04
> > mailto:pbristow_at_[hidden]
> >
> >
> > > -----Original Message-----
> > > From: Mountfort, Geoff [mailto:gmountfort_at_[hidden]]
> > > Sent: Thursday, December 06, 2001 12:00 AM
> > > To: 'boost_at_[hidden]'
> > > Subject: RE: [boost] MS VC 6 Internal Compiler Error using regex
> > >
> > >
> > > When confronted with an unexpected MSVC error message I have found
> > Build >
> > > Batch Build... > Rebuild All often works miracles.
> > >
> > >
> > > Geoff (VC 6.0 SP 3)
> > >
> > > -----Original Message-----
> > > From: the_dilster [mailto:dylan_at_[hidden]]
> > > Sent: Thursday, 6 December 2001 10:48 AM
> > > To: boost_at_[hidden]
> > > Subject: [boost] MS VC 6 Internal Compiler Error using regex
> > >
> > >
> > > std::string pattern;
> > > std::string line;
> > > ...
> > > boost::regex expr(pattern);
> > > boost::smatch what;
> > > boost::regex_match(line, what, expr);
> > >
> > > e:\boost_1_25_0\boost\regex\detail\regex_match.hpp(1053) : fatal
> > > error C1001: ININTERNAL COMPILER ERROR
> > >
> > > VC 6.0 SP 5
> > >
> > > Compiling in debug mode, no optimisations.
> > >
> > > Tried using cmatch, line.c_str(), same thing.
> > > Put in
> > > #define BOOST_NO_MEMBER_TEMPLATES
> > > before
> > > #include "boost/regex.hpp"
> > >
> > > and it worked, then took it out again and it worked again!
> > > Deleting the obj file seems to work too...very strange.
> > >
> > > Dylan
> > >
> > >
> > > Info: http://www.boost.org Send unsubscribe requests to:
> > > <mailto:boost-unsubscribe_at_[hidden]>
> > >
> > > Your use of Yahoo! Groups is subject to
> > http://docs.yahoo.com/info/terms/
> > >
> > >
> > >
> > > Info: http://www.boost.org Send unsubscribe requests to:
> > > <mailto:boost-unsubscribe_at_[hidden]>
> > >
> > > Your use of Yahoo! Groups is subject to
> > http://docs.yahoo.com/info/terms/
> > >
> > >
> > >
> > >
> >
> >
> > Info: http://www.boost.org Send unsubscribe requests to:
> > <mailto:boost-unsubscribe_at_[hidden]>
> >
> > Your use of Yahoo! Groups is subject to
> > http://docs.yahoo.com/info/terms/
> >
> >
> >
> > Info: http://www.boost.org Send unsubscribe requests to:
> > <mailto:boost-unsubscribe_at_[hidden]>
> >
> > Your use of Yahoo! Groups is subject to
> http://docs.yahoo.com/info/terms/
> >
> >
> >
> >
>
>
> Info: http://www.boost.org Send unsubscribe requests to:
> <mailto:boost-unsubscribe_at_[hidden]>
>
> Your use of Yahoo! Groups is subject to
> http://docs.yahoo.com/info/terms/
>
>
>
> Info: http://www.boost.org Send unsubscribe requests to:
> <mailto:boost-unsubscribe_at_[hidden]>
>
> Your use of Yahoo! Groups is subject to
> http://docs.yahoo.com/info/terms/
>
>
> Info: http://www.boost.org Send unsubscribe requests to:
> <mailto:boost-unsubscribe_at_[hidden]>
>
> Your use of Yahoo! Groups is subject to
> http://docs.yahoo.com/info/terms/
>
>
>
> Info: http://www.boost.org Send unsubscribe requests to:
> <mailto:boost-unsubscribe_at_[hidden]>
>
> Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
>
>
>
>
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk