Forums before death by AOL, social media and spammers... "We can't have nice things"
|    comp.os.vms    |    DEC's VAX* line of computers & VMS.    |    264,096 messages    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
|    Message 263,024 of 264,096    |
|    =?UTF-8?Q?Arne_Vajh=C3=B8j?= to All    |
|    Re: extending MySQL on VMS    |
|    18 Aug 25 20:18:25    |
   
   From: arne@vajhoej.dk   
      
   On 8/18/2025 3:21 PM, Arne Vajhøj wrote:   
   > Is it OK for a language to change operator precedence, because the   
   > change would only make a difference for code not following good   
   > style?   
   >   
   > I don't think so.   
   >   
   > Changing behavior of existing code is not acceptable. Not even   
   > for bad style code.   
   >   
   > I know a few languages has made such changes (changing behavior of   
   > existing code - not specifically changing operator precedence).   
   >   
   > But I still don't like it.   
      
   Everybody know about Python 2.x to 3.x change of / operator semtantics   
   (from integer division to floating point division).   
      
   Less known is how Scala changed statement block definition from 2.x   
   to 3.x:   
      
   $ type Blk1.scala   
   object Blk1 {   
    def main(args: Array[String]): Unit = {   
    val flag = false;   
    if(flag) {   
    println("flag true")   
    }   
    println("done")   
    }   
   }   
   $ scalac """-version"""   
   Scala compiler version 2.13.11 -- Copyright 2002-2023, LAMP/EPFL and   
   Lightbend, Inc.   
   $ scalac Blk1.scala   
   $ java -cp .:/disk0/net/scala/scala-2.13.11/lib/* Blk1   
   done   
   $ scala3c """-version"""   
   Scala compiler version 3.3.0 -- Copyright 2002-2023, LAMP/EPFL   
   $ scala3c Blk1.scala   
   $ java -cp .:/disk0/net/scala3/scala3-3.3.0/lib/* Blk1   
   done   
   $ type Blk2.scala   
   object Blk2 {   
    def main(args: Array[String]): Unit = {   
    val flag = false;   
    if(flag)   
    println("flag true")   
    println("done")   
    }   
   }   
   $ scalac """-version"""   
   Scala compiler version 2.13.11 -- Copyright 2002-2023, LAMP/EPFL and   
   Lightbend, Inc.   
   $ scalac Blk2.scala   
   $ java -cp .:/disk0/net/scala/scala-2.13.11/lib/* Blk2   
   done   
   $ scala3c """-version"""   
   Scala compiler version 3.3.0 -- Copyright 2002-2023, LAMP/EPFL   
   $ scala3c Blk2.scala   
   $ java -cp .:/disk0/net/scala3/scala3-3.3.0/lib/* Blk2   
   done   
   $ type Blk3.scala   
   object Blk3 {   
    def main(args: Array[String]): Unit = {   
    val flag = false;   
    if(flag)   
    println("flag true")   
    println("done")   
    }   
   }   
   $ scalac """-version"""   
   Scala compiler version 2.13.11 -- Copyright 2002-2023, LAMP/EPFL and   
   Lightbend, Inc.   
   $ scalac Blk3.scala   
   $ java -cp .:/disk0/net/scala/scala-2.13.11/lib/* Blk3   
   done   
   $ scala3c """-version"""   
   Scala compiler version 3.3.0 -- Copyright 2002-2023, LAMP/EPFL   
   $ scala3c Blk3.scala   
   $ java -cp .:/disk0/net/scala3/scala3-3.3.0/lib/* Blk3   
   $   
      
   WTF?   
      
   Arne   
      
   PS: Yes - both Scala 2.13 and 3.3 runs fine on VMS. For 3.3 source files   
    must be rfm:stmlf.   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   
|
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
(c) 1994, bbs@darkrealms.ca