I'd have to agree with the sentiments against C-style pre-processing.
Anything that breaks linting or an IDE's static analysis would make
development a pain.

Eli Perelman

On Wed, Nov 25, 2015 at 11:55 AM, Sam Giles <[email protected]> wrote:

> I was surprised having worked in m-c that Gaia wasn't using the C
> pre-processor fwiw.
>
> But I think the fact it will break syntax is a show stopper - unless we
> pre-process before linting - but the problem is deeper than that, I think
> the approachability of the code base will be affected by this.  Not because
> the C pre-processor is obscure, I don't think it is at all, but because the
> syntax is just different to what you might expect.  I'd also be worried
> about how easy it is to set up the toolchain for Windows developers.
>
> I don't see what the problem with the third party pre-processor proposed
> is, it at least covers what we already have in a better way and despite
> encasing the conditions in comments, is practically offering the same as
> the C pre-processor–without macros 🙌.
>
> Sam
>
> On Wed, Nov 25, 2015 at 5:31 PM, David Flanagan <[email protected]>
> wrote:
>
>> If there is a pre-processing system that is already familiar to the
>> majority of web developers, I'd buy this argument. But I don't think there
>> is. So most web developers who encounter preprocessing in FirefoxOS will
>> have to learn our system from scratch. If that is true, then I'd favor the
>> solution with 40+ years of use over something that someone just made up and
>> posted on github.  And if `#ifdef FOO` scares away contributors then I
>> don't see how `<!-- @ifdef FOO -->` is any less scary!  Its not like I'm
>> suggesting we use m4 here.
>>
>> If the argument is that we need a preprocessor that we can run in node
>> without invoking the shell, then maybe we can find a cpp implementation in
>> node.
>>
>> Maybe we want a syntax that uses comments so that the code remains valid
>> even before preprocessing so that linters and other tools don't get
>> confused. That seems like a reason that we need something other than cpp.
>>
>> Greg thinks that we need a preprocessor that can do template expansion
>> and looping. I find that surprising and a little scary, but I don't know
>> what the use case is.
>>
>> Anyway, my point is that the C preprocessor is venerable and well
>> understood by generations of programmers. IT seems to me that any
>> discussion of "what preprocessor should we use" should begin with the
>> question "can we just use cpp?"
>>
>>   David
>>
>>
>>
>> On Wed, Nov 25, 2015 at 8:14 AM, Justin D'Arcangelo <
>> [email protected]> wrote:
>>
>>> We should use a preprocessor that is familiar to web/JS devs. We're
>>> trying to grow contributors, not scare them away.
>>>
>>> -Justin
>>>
>>>
>>> On Nov 25, 2015, at 11:08 AM, David Flanagan <[email protected]>
>>> wrote:
>>>
>>> Why can't we use the standard C preprocessor (with #if, #ifdef, #define,
>>> and even #include) for this instead of adopting a new technology?
>>>
>>>   David
>>>
>>> P.S. When we do adopt a preprocessor solution, I'm interested to explore
>>> whether I can use it to include unit tests in the same file as the code
>>> being tested.
>>>
>>> On Tue, Nov 24, 2015 at 9:54 PM, Fred Lin <[email protected]> wrote:
>>>
>>>> Seems we have kind of common agreement to reuse the third-party
>>>> preprocess library[1].
>>>>
>>>> Francisco has done some experiment port, and found the library has some
>>>> node dependency.
>>>> It also brings the request to have the node based build script.
>>>>
>>>>
>>>> 1. https://github.com/jsoverson/preprocess
>>>> <https://github.com/jsoverson/preprocess>
>>>>
>>>>
>>>> regards
>>>> --
>>>> Fred
>>>>
>>>> On Wed, Nov 18, 2015 at 10:40 PM, Francisco Jordano <
>>>> [email protected]> wrote:
>>>>
>>>>> +1 to this,
>>>>>
>>>>> several reasons to do it:
>>>>>
>>>>> - It support multiple languages (javascript, html, css, c, etc)
>>>>> - You can combine as many options as you want.
>>>>> - The options have value, which could add a complete new set of cases,
>>>>> not just the binary one.
>>>>>
>>>>> Cheers,
>>>>> f
>>>>>
>>>>> On 18 November 2015 at 14:07, Fred Lin <[email protected]> wrote:
>>>>>
>>>>>> In Gaia currently we have preprocessor.js[1] that support some
>>>>>> syntax[2] to exclude/include HTML/JS/CSS in build time.
>>>>>>
>>>>>> With this tool, developer can exclude files, code sections from
>>>>>> origin HTML/JS/CSS files to shape the source to fit more kinds of 
>>>>>> devices.
>>>>>>
>>>>>>
>>>>>>
>>>>>> html code....
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> <!--IFDEF_FIREFOX_SYNC
>>>>>> html code section
>>>>>> ENDIF_SAMPLE-->
>>>>>>
>>>>>> The consideration during review is we can't put html related comments
>>>>>> inside of <!-- -->, which make bad patten match and also make the editor
>>>>>> cry.
>>>>>>
>>>>>> As my experience about other code mangler/optimizer, some of them
>>>>>> support Ruby like start/end syntax,  such as:
>>>>>>
>>>>>> <!-- @if NODE_ENV='production' --><script 
>>>>>> src="some/production/lib/like/analytics.js"></script><!-- @endif -->
>>>>>>
>>>>>> Which wrap target code section with start comment and end comment,
>>>>>> therefore the origin source is still viewable in plain HTML. May we have
>>>>>> something similar so we won't left orphan comments in HTML file?
>>>>>>
>>>>>>
>>>>>> Another thought is since we can use npm modules now (Not 100% sure),
>>>>>> why we don't reuse existing preprocessor[3] and send PR to them to 
>>>>>> leverage
>>>>>> efforts from outside talents?
>>>>>>
>>>>>>
>>>>>> 1.
>>>>>> https://github.com/mozilla-b2g/gaia/blob/master/build/preprocessor.js
>>>>>> 2.
>>>>>> https://github.com/mozilla-b2g/gaia/blob/master/apps/settings/elements/root.html#L140
>>>>>> 3. https://github.com/jsoverson/preprocess
>>>>>>
>>>>>> regards
>>>>>> --
>>>>>> Fred
>>>>>>
>>>>>
>>>>>
>>>>
>>>> _______________________________________________
>>>> dev-fxos mailing list
>>>> [email protected]
>>>> https://lists.mozilla.org/listinfo/dev-fxos
>>>>
>>>>
>>> _______________________________________________
>>> dev-fxos mailing list
>>> [email protected]
>>> https://lists.mozilla.org/listinfo/dev-fxos
>>>
>>>
>>
>> _______________________________________________
>> dev-fxos mailing list
>> [email protected]
>> https://lists.mozilla.org/listinfo/dev-fxos
>>
>>
>
> _______________________________________________
> dev-fxos mailing list
> [email protected]
> https://lists.mozilla.org/listinfo/dev-fxos
>
>
_______________________________________________
dev-fxos mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-fxos

Reply via email to