<HTML><HEAD>
<META content="text/html charset=utf-8" http-equiv=Content-Type></HEAD>
<BODY 
style="WORD-WRAP: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space" 
dir=ltr>
<DIV dir=ltr>
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: 'Calibri'; COLOR: #000000">
<DIV>Actually, it is an error. As you can see by compiling this instead:</DIV>
<DIV> </DIV>
<DIV>-module('Aaargh!!').</DIV>
<DIV>-define(PLEASE_DONT).</DIV>
<DIV>-ifndef(PLEASE_DONT).</DIV>
<DIV>-error("Weird!").</DIV>
<DIV>-endif.</DIV>
<DIV> </DIV>
<DIV>2> c('Aaargh!!').</DIV>
<DIV>Aaargh!!.erl:2: badly formed 'define'</DIV>
<DIV>Aaargh!!.erl:4: -error("Weird!").</DIV>
<DIV>error</DIV>
<DIV> </DIV>
<DIV>Curiouser and curiouser...</DIV>
<DIV> </DIV>
<DIV>John</DIV>
<DIV 
style='FONT-SIZE: small; TEXT-DECORATION: none; FONT-FAMILY: "Calibri"; FONT-WEIGHT: normal; COLOR: #000000; FONT-STYLE: normal; DISPLAY: inline'>
<DIV style="FONT: 10pt tahoma">
<DIV> </DIV>
<DIV style="BACKGROUND: #f5f5f5">
<DIV style="font-color: black"><B>From:</B> <A title=alex0player@gmail.com 
href="mailto:alex0player@gmail.com">Alex S.</A> </DIV>
<DIV><B>Sent:</B> Monday, January 30, 2017 4:50 PM</DIV>
<DIV><B>To:</B> <A title=john.hughes@quviq.com 
href="mailto:john.hughes@quviq.com">john.hughes@quviq.com</A> </DIV>
<DIV><B>Cc:</B> <A title=erlang-questions@erlang.org 
href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</A> </DIV>
<DIV><B>Subject:</B> Re: [erlang-questions] For your amusement--why doesn't this 
compile?</DIV></DIV></DIV>
<DIV> </DIV></DIV>
<DIV 
style='FONT-SIZE: small; TEXT-DECORATION: none; FONT-FAMILY: "Calibri"; FONT-WEIGHT: normal; COLOR: #000000; FONT-STYLE: normal; DISPLAY: inline'>It’s 
considered an unknown module attribute, and those aren’t errors.<BR>
<DIV>
<BLOCKQUOTE type="cite">
  <DIV>30 янв. 2017 г., в 18:38, <A 
  href="mailto:john.hughes@quviq.com">john.hughes@quviq.com</A> 
написал(а):</DIV>
  <DIV> </DIV>
  <DIV>
  <DIV 
  style="WORD-WRAP: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space" 
  dir=ltr>
  <DIV dir=ltr>
  <DIV style="FONT-SIZE: 12pt; FONT-FAMILY: calibri">
  <DIV>So why isn’t that reported as an error?</DIV>
  <DIV> </DIV>
  <DIV>John</DIV>
  <DIV 
  style="FONT-SIZE: small; TEXT-DECORATION: none; FONT-FAMILY: calibri; FONT-WEIGHT: normal; FONT-STYLE: normal; DISPLAY: inline">
  <DIV style="FONT: 10pt tahoma">
  <DIV> </DIV>
  <DIV style="BACKGROUND: #f5f5f5">
  <DIV style="font-color: black"><B>From:</B> <A title=alex0player@gmail.com 
  href="mailto:alex0player@gmail.com">Alex S.</A> </DIV>
  <DIV><B>Sent:</B> Monday, January 30, 2017 4:31 PM</DIV>
  <DIV><B>To:</B> <A title=john.hughes@quviq.com 
  href="mailto:john.hughes@quviq.com">john.hughes@quviq.com</A> </DIV>
  <DIV><B>Cc:</B> <A title=erlang-questions@erlang.org 
  href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</A> 
  </DIV>
  <DIV><B>Subject:</B> Re: [erlang-questions] For your amusement--why doesn't 
  this compile?</DIV></DIV></DIV>
  <DIV> </DIV></DIV>
  <DIV 
  style="FONT-SIZE: small; TEXT-DECORATION: none; FONT-FAMILY: calibri; FONT-WEIGHT: normal; FONT-STYLE: normal; DISPLAY: inline">
  <DIV> </DIV>
  <DIV>
  <BLOCKQUOTE type="cite">
    <DIV>30 янв. 2017 г., в 18:24, <<A 
    href="mailto:john.hughes@quviq.com">john.hughes@quviq.com</A>> <<A 
    href="mailto:john.hughes@quviq.com">john.hughes@quviq.com</A>> 
    написал(а):</DIV>
    <DIV> </DIV>
    <DIV>
    <DIV dir=ltr>
    <DIV dir=ltr>
    <DIV style="FONT-SIZE: 12pt; FONT-FAMILY: calibri">
    <DIV>Here’s a behaviour that’s had me tearing my hair today. Consider this 
    module:</DIV>
    <DIV> </DIV>
    <DIV>-module('Aaargh!!').</DIV>
    <DIV>-define(PLEASE_DONT).</DIV>
    <DIV>-ifndef(PLEASE_DONT).</DIV>
    <DIV>-compile({parse_transform,undefined_parse_transform}).</DIV>
    <DIV>-endif.</DIV>
    <DIV> </DIV>
    <DIV>It fails to compile, with one simple error message:</DIV>
    <DIV> </DIV>
    <DIV>20> c('Aaargh!!').</DIV>
    <DIV>Aaargh!!.erl: undefined parse transform 
    'undefined_parse_transform'</DIV>
    <DIV>error</DIV>
    <DIV> </DIV>
    <DIV>If you can see why, you’re more an Erlang wizard than I am!</DIV>
    <DIV> </DIV></DIV></DIV></DIV></DIV></BLOCKQUOTE>Easy enough, there’s no 
  one-argument define().</DIV>
  <DIV> </DIV>
  <DIV>Define it to true if you don’t care about the value.</DIV>
  <DIV> </DIV></DIV></DIV></DIV></DIV></DIV></BLOCKQUOTE></DIV>
<DIV> </DIV></DIV></DIV></DIV></BODY></HTML>