Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #9684

Re: preprocessor idea

Date 2011-11-06 17:03 -0500
From Arne Vajhøj <arne@vajhoej.dk>
Newsgroups comp.lang.java.programmer
Subject Re: preprocessor idea
References (2 earlier) <9foia2FjbkU1@mid.individual.net> <4e97a33b$0$282$14726298@news.sunsite.dk> <9g127uF848U1@mid.individual.net> <4e9b93ce$0$284$14726298@news.sunsite.dk> <9g34seFjqlU1@mid.individual.net>
Message-ID <4eb70446$0$288$14726298@news.sunsite.dk> (permalink)
Organization SunSITE.dk - Supporting Open source

Show all headers | View raw


On 10/17/2011 12:53 PM, Robert Klemme wrote:
> On 10/17/2011 04:32 AM, Arne Vajhøj wrote:
>> On 10/16/2011 5:56 PM, Robert Klemme wrote:
>>> On 10/14/2011 04:49 AM, Arne Vajhøj wrote:
>>>> On 10/13/2011 12:35 PM, Robert Klemme wrote:
>>>>> On 12.10.2011 01:17, Arne Vajhøj wrote:
>>>
>>>>>> Run the Java code through the C preprocessor with the same defines.
>>>>>>
>>>>>> String[] javaarray = {
>>>>>> "None"
>>>>>> #ifdef lib1
>>>>>> ,"lib1"
>>>>>> #endif
>>>>>> #ifdef lib1
>>>>>> ,"lib1"
>>>>>> #endif
>>>>>> };
>>>>>
>>>>> I do not think it's worthwhile to open that can of worms for this
>>>>> decision. After all getting rid of the CPP is one of the major
>>>>> advantages of Java over C++ (even Stroustrup regrets not having ripped
>>>>> it out of C++) and complicating the Java build process just for that
>>>>> decision seems too heavy - especially since there are other solutions
>>>>> available.
>>>>
>>>> What other solution achieve the same?
>>>
>>> Please see elsewhere in this thread.
>>
>> Well - they do not seem to be on my news server.
>>
>> The only suggestion it carry are yours of:
>> * changing the logic, which may be a good idea, but is definitely
>> not the same
>
> Do you say that because of
>
>> Java does not support any preprocessor
>> flags, but in this case I need a tip for creating a flexiable Java
>> code during the class is compiled
>> (eg: ifdef1 = true => String[] javaarray = {"lib1"})
>
> ? Right, I took the liberty to ignore the specific requirement to change
> the Java code because I consider the ultimate task to solve to only load
> those libs which can be used. Changing the Java code is just one means
> to that end.

Alternative approaches can be very good.

But it is an alternative approach.

>> * use JNI to get the info from the native side, which will
>> require approx. 10 as much code than this
>
> Well, but the solution to use CPP for Java code will probably need a
> similar amount of code - even if it's not in Java but in ant scripts or
> Makefiles. And it will be a dramatic change to the build process. One
> also needs to decide whether to apply CPP to all Java files or just
> selectively to a single one. The first option is probably cleaner from a
> build process point of view but increases the risk of bugs (i.e. if CPP
> starts replacing things in other files that it is not supposed to
> change) while the second solution is an ugly crutch IMHO.

It will require adding 1 line to the makefile/build script.

Arne

Back to comp.lang.java.programmer | Previous | Next | Find similar


Thread

Re: preprocessor idea Arne Vajhøj <arne@vajhoej.dk> - 2011-11-06 17:03 -0500

csiph-web