Comments on ORAC

new topic     » topic index » view thread      » older message » newer message

Obviously this is all just my opinion, and when it comes across as harsh, that
is probably just because it is smile

1) Implemented as a preprocessor:
  Madness, utter madness.
  I accept you are invested, but I suspect you know I am right: STOP
  Regroup, figure out your goals, and use your head.
  I've been here and done this: if you are determined you will find a way
  to use the stuff you have learned to your advantage. It may take time.

2) Conditional compilation:
  Good, and VERY BAD.
  DEBUG=0->1 is an example of Good.
  Linux vs Windows is an example of WRONG (one .il works on both = good).
  HLL statements to do this = VERY BAD:
function f()
    puts(1,"compiler asks")
    return find(wait_key(),"aA")
end function

if f() then
    include zA.e
else
    include zB.e
end if

Remember this is just my opinion, point is there are cases galore.
You could probably prove me wrong round about here smile

3) include/global mods:
    GOOD
    I've agreed with MWL on similar, what would be cool is something that
    could suggest best possible changes "include"/"include global" wise.

4) comparison ops:
    I predict you just got this badly wrong from a true language semantics 
    point, but as you said it is ultimately tweakable, and not something
    that would particularly worry me.
    (It all depends on exactly how you treat eg (a=b)=(c=d), where for 
     simplicity of argument, a,b,c,d are all seqs of length 3 or 4)
<as point 2>

5) Improved syntax:
    Dot notation. We like.
    Indirect routine calls:
      I think you missed a trick here.
      Impossible from a pre-processor angle, but what if routine_id did +1,
      and c_func/c_proc did +1 on the _same_ counter? Therefore c_func would
      be the faster/better route, missing a wrapping level, but call_func 
      would (accept one sequence parameter and) achieve the same result?
    Auto-increment constants. We like, lots.
      Humbling how simple that is.

I would use "infix notation" rather than "native operators", prolly just me.

abs: Note that nested "|" may need additional round brackets, eg "|a + |b||" 
will not compile properly, but "|a + (|b|)|" would be fine.

~s Hmm: I personally dislike, but that sort of thing would be good as an
  "alias '~'=length(%1)" sort of thing?

On the macro side, macros can (quite rarely imo) be pretty cool, but you 
MUST at least have a "-pp=expand_macros -out=x.exw" option so you can 
figure out/trace(1) what the pig is going on.

You also wrote:
"Perhaps some kind person will volunteer to write a <ahem> simple utility 
that can translate the names in the error file back into their original form.."
Should you steadfastly ignore what I said in point 1 (just my opinion) and 
grant me the means, I hereby volunteer to make Edita do this.
    
Lastly, incremental compilation seems a total cop-out to me. That said, while
2.4 did not need it, imo 2.5 and later do smile

Regards,
Pete

new topic     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu