1. svn problem with pcre?

Jeremy and crew -

When I updated my source code using svn today, I got two messages that may or may not be errors. SVN indicated it did not update pcre.h (in the pcre folder) since "the object already exists". When I changed the name of the existing pcre.h and ran the update again, SVN indicated it did not update config.h (same folder) because the "object already exists". Never deterred, I renamed config.h and tried once more. Everything seemed to work and running "make" (I am using the Linux versions) created eui, euc, eub, and ea as expected. eui shows r1973:1975M as the version.

I have been doing frequent updates using svn for a while now, and this is the first time I have seen this. SVN didn't quite say this was an error, but something didn't look right....

I didn't see anything like this in the Bug Tracker. If you think it is an error, I will be happy to enter it.

Thanks!

George

new topic     » topic index » view message » categorize

2. Re: svn problem with pcre?

George,

This is a problem with the Makefile. We are looking to greatly simplify the makefile or move to a different build system altogether because it's complex and only one person knows how it actually works well enough to fix it. We are waiting on it to be fixed. It was committed to SVN incorrectly.

Jeremy

new topic     » goto parent     » topic index » view message » categorize

3. Re: svn problem with pcre?

jeremy said...

George,

This is a problem with the Makefile. We are looking to greatly simplify the makefile or move to a different build system altogether because it's complex and only one person knows how it actually works well enough to fix it. We are waiting on it to be fixed. It was committed to SVN incorrectly.

Jeremy

Why are we depending on that Makefile that only one person understands?

new topic     » goto parent     » topic index » view message » categorize

4. Re: svn problem with pcre?

jimcbrown said...

Why are we depending on that Makefile that only one person understands?

That's why we are exploring a new build system. Building Euphoria is more complex than the average program due to the generated sources and the fact that the sources generated change all the time. This has caused many things to get complex quickly.

Our makefile was simple a while ago, however it was very problematic. As you add a section of code to the interpreter, the makefile would no longer compile things. We would then have to edit the makefile, update the generated file list, then recompile and test our changes. Then the makefile was made much smarter and we no longer had to do that and everyone was happy. However, now when we want to change the makefile, it's quite complex and understood by only one person. So, the new makefile is less troublesome but very complex. That's how we got to where we are.

There are other options out there but many of the build systems have had problems working with our generator because it generates an unknown list of files. We have worked with Watcom Make, GNU Make, CMake and Jam thus far. On all of them we have had to go to the more advanced/complex methods to make things work. The CMake file is the simpliest so far, but it has it's problems as well as much as I like it.

I hope we can get the build tool chosen and working well before we move to beta.

Jeremy

new topic     » goto parent     » topic index » view message » categorize

5. Re: svn problem with pcre?

jimcbrown said...
jeremy said...

George,

This is a problem with the Makefile. We are looking to greatly simplify the makefile or move to a different build system altogether because it's complex and only one person knows how it actually works well enough to fix it. We are waiting on it to be fixed. It was committed to SVN incorrectly.

Jeremy

Why are we depending on that Makefile that only one person understands?

The problem isn't really the Makefile. And if we move to some other system, most people probably won't bother understanding it, either.

It's that we've changed how pcre is built. Whenever you get a message like that from svn, you can delete the file and svn will check out the new file. The message is svn telling you that it's not going to overwrite a file that you have existing locally with the file from the repository.

Matt

new topic     » goto parent     » topic index » view message » categorize

6. Re: svn problem with pcre?

mattlewis said...

The problem isn't really the Makefile. And if we move to some other system, most people probably won't bother understanding it, either.

It's that we've changed how pcre is built. Whenever you get a message like that from svn, you can delete the file and svn will check out the new file. The message is svn telling you that it's not going to overwrite a file that you have existing locally with the file from the repository.

I guess I jumped ahead thinking of the problem then building pcre once you get past the svn up. Opps.

Jeremy

new topic     » goto parent     » topic index » view message » categorize

7. Re: svn problem with pcre?

mattlewis said...

The problem isn't really the Makefile. And if we move to some other system, most people probably won't bother understanding it, either.

It's that we've changed how pcre is built. Whenever you get a message like that from svn, you can delete the file and svn will check out the new file. The message is svn telling you that it's not going to overwrite a file that you have existing locally with the file from the repository.

You can also do svn up --force

Jeremy

new topic     » goto parent     » topic index » view message » categorize

8. Re: svn problem with pcre?

mattlewis said...

The problem isn't really the Makefile. And if we move to some other system, most people probably won't bother understanding it, either.

Jim just added the building of eutest to the Watcom makefile only. It's a total of 33 lines. We have to translate this to work with GNU Make, then add something similar (but different) to the Unix Makefile so eutest can be built on Unix as well during a normal build install of a source package. Also, the below doesn't include any install or clean targets.

$(BUILDDIR)\eutest.exe: $(BUILDDIR)\eutestdr\main-.c $(BUILDDIR)\eutestdr.wat $(BUILDDIR)\eu.lib $(BUILDDIR)\eutestdr 
	@%create $(BUILDDIR)\eutestdr\eutestdr.lbc 
	@%append $(BUILDDIR)\eutestdr\eutestdr.lbc option quiet 
	@%append $(BUILDDIR)\eutestdr\eutestdr.lbc option caseexact 
	@%append $(BUILDDIR)\eutestdr\eutestdr.lbc library ws2_32 
	@for %i in ($(EUTEST_OBJECTS)) do @%append $(BUILDDIR)\eutestdr\eutest.lbc file %i 
	wlink  $(DEBUGLINK) SYS nt op maxe=25 op q op symf op el @$(BUILDDIR)\eutestdr\eutestdr.lbc name $(BUILDDIR)\eutest.exe 
 
$(BUILDDIR)\eutestdr.wat : $(BUILDDIR)\eutestdr\main-.c 
	@if exist $(BUILDDIR)\objtmp rmdir /Q /S $(BUILDDIR)\objtmp 
	@mkdir $(BUILDDIR)\objtmp 
	@copy $(BUILDDIR)\eutestdr\*.c $(BUILDDIR)\objtmp 
	@cd $(BUILDDIR)\objtmp 
	ren *.c *.obj 
	%create eutestdr.wat 
	%append eutestdr.wat $(EU_NAME_OBJECT) = &   
	for %i in (*.obj) do @%append eutestdr.wat $(BUILDDIR)\eutestdr\%i &  
	%append eutestdr.wat     
	del *.obj 
	cd $(TRUNKDIR)\source 
	move $(BUILDDIR)\objtmp\eutestdr.wat $(BUILDDIR) 
	rmdir $(BUILDDIR)\objtmp 
 
 
$(BUILDDIR)\eutestdr\main-.c : $(TRUNKDIR)\source\eutest.ex $(BUILDDIR)\eutestdr 
	-$(RM) $(BUILDDIR)\eutestdr\*.* 
	cd  $(BUILDDIR)\eutestdr 
	$(EXE) $(INCDIR) $(EUDEBUG) $(TRUNKDIR)\source\ec.ex -wat -plat $(OS) $(RELEASE_FLAG) $(MANAGED_FLAG) $(DOSEUBIN) $(INCDIR) $(TRUNKDIR)\source\eutest.ex 
	cd $(TRUNKDIR)\source 
 
$(BUILDDIR)\eutestdr : 
	mkdir $(BUILDDIR)\eutestdr 
 

In cmake, for example, here is the building what was added to build eutest:

EUC( eutest.ex eutest ) 
 
ADD_EXECUTABLE( eutest ${EXECUTABLE_FLAG} ${EUTEST_SOURCES} ) 
TARGET_LINK_LIBRARIES( eutest eu_back ${EXTRA_LIBS} ) 
IF( LINK_FLAGS ) 
  SET_TARGET_PROPERTIES( eutest PROPERTIES LINK_FLAGS ${LINK_FLAGS} ) 
ENDIF() 

The above works on Watcom and GNU Make, plus our experiemental MSVC build. I have not yet optimized it either. Really, a few of those lines should move to the EUC call.

Jeremy

new topic     » goto parent     » topic index » view message » categorize

9. Re: svn problem with pcre?

jeremy said...
mattlewis said...

The problem isn't really the Makefile. And if we move to some other system, most people probably won't bother understanding it, either.

Jim just added the building of eutest to the Watcom makefile only. It's a total of 33 lines. We have to translate this to work with GNU Make, then add something similar (but different) to the Unix Makefile so eutest can be built on Unix as well during a normal build install of a source package. Also, the below doesn't include any install or clean targets.

<snip>

The above works on Watcom and GNU Make, plus our experiemental MSVC build. I have not yet optimized it either. Really, a few of those lines should move to the EUC call.

Hey, I'm not saying that it wouldn't be a good thing to simplify and have a cross platform solution. I'm just saying that the argument about who all understands the makefiles is a straw man. It's mainly a function of spending time to understand what's in them.

Anyways, here's what I get with cmake 2.6.2as available with Ubuntu 9.04 (I have no idea what any of it means):

$ cmake -G "Unix Makefiles" .. 
 
[snip lots of autoconf like stuff...] 
 
CMake Error at source/CMakeLists.txt:70 (INCLUDE_DIRECTORIES): 
  include_directories given empty-string as include directory. 
 
 
-- Translating int.ex... 
CMake Error at source/CMakeMacros.cmake:147 (INCLUDE): 
  include could not find load file: 
 
    /home/matt/euphoria/dev/rdsclean/build/source/int/int.cmake 
Call Stack (most recent call first): 
  source/CMakeLists.txt:113 (EUC) 
 
 
CMake Error at source/CMakeLists.txt:116 (ADD_EXECUTABLE): 
  add_executable called with incorrect number of arguments 
 
 
CMake Error at source/CMakeLists.txt:117 (TARGET_LINK_LIBRARIES): 
  Cannot specify link libraries for target "eui" which is not built by this 
  project. 
 
 
-- Configuring incomplete, errors occurred! 
Matt

new topic     » goto parent     » topic index » view message » categorize

10. Re: svn problem with pcre?

mattlewis said...

Hey, I'm not saying that it wouldn't be a good thing to simplify and have a cross platform solution. I'm just saying that the argument about who all understands the makefiles is a straw man. It's mainly a function of spending time to understand what's in them.

Anyways, here's what I get with cmake 2.6.2as available with Ubuntu 9.04 (I have no idea what any of it means):

I have not spent time with it recently because of the problem in needing to pre-translate the code, which I didn't like. I was just using the simplicity of CMake as an example.

I am not sure of the answer, but I do know it's quite a drag having to maintain the two build files, and then if in 4.1 we release a MSVC version that's a 3rd makefile that everyone has to learn the syntax of and maintain when making any changes.

Jeremy

new topic     » goto parent     » topic index » view message » categorize

11. Re: svn problem with pcre?

jeremy said...

I have not spent time with it recently because of the problem in needing to pre-translate the code, which I didn't like.

Yeah, I think the solution is probably to use the new makefile generation from the translator, where the generated makefiles (int.mak, ec.mak, etc) are both targets and includes of the generated makefile. Of course, I have no idea [yet] how to get that to work with a build system like cmake or bakefile.

But then there's not a lot that I do know about them...

Matt

new topic     » goto parent     » topic index » view message » categorize

12. Re: svn problem with pcre?

mattlewis said...

Yeah, I think the solution is probably to use the new makefile generation from the translator, where the generated makefiles (int.mak, ec.mak, etc) are both targets and includes of the generated makefile. Of course, I have no idea [yet] how to get that to work with a build system like cmake or bakefile.

Well, the problem with that approach is the need to transfer all sorts of possible configuration flags to the child process. For instance, did the user customize the CFLAGS working on finding the best optimization flags? Or do they have some new platform they are porting to so they added a flag like -DWEIRD_OS... All of those need to be passed on to the child.

Jeremy

new topic     » goto parent     » topic index » view message » categorize

13. Re: svn problem with pcre?

Thanks Jeremy and team. All is working as expected with release 1987.

George

jeremy said...

George,

This is a problem with the Makefile. We are looking to greatly simplify the makefile or move to a different build system altogether because it's complex and only one person knows how it actually works well enough to fix it. We are waiting on it to be fixed. It was committed to SVN incorrectly.

Jeremy

new topic     » goto parent     » topic index » view message » categorize

14. Re: svn problem with pcre?

jeremy said...

Well, the problem with that approach is the need to transfer all sorts of possible configuration flags to the child process. For instance, did the user customize the CFLAGS working on finding the best optimization flags? Or do they have some new platform they are porting to so they added a flag like -DWEIRD_OS... All of those need to be passed on to the child.

Jeremy

Actually, that should be the most trivial part....

new topic     » goto parent     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu