How is pattern matching in Scala implemented at the bytecode level?

The low level can be explored with a disassembler but the short answer is that it’s a bunch of if/elses where the predicate depends on the pattern case Sum(l,r) // instance of check followed by fetching the two arguments and assigning to two variables l and r but see below about custom extractors case “hello” … Read more

Java 7 language features with Android

If you are using Android Studio, the Java 7 language should be enabled automatically without any patches. Try-with-resource requires API Level 19+, and NIO 2.0 stuff are missing. If you can’t use Java 7 features, see @Nuno’s answer on how to edit your build.gradle. The following is for historical interest only. A small part of … Read more

Can you “compile” PHP code and upload a binary-ish file, which will just be run by the byte code interpreter?

After this question was asked, Facebook launched HipHop for PHP which is probably the best-tested PHP compiler to date (seeing as it ran one of the world’s 10 biggest websites). However, Facebook discontinued it in favour of HHVM, which is a virtual machine, not a compiler. Beyond that, googling PHP compiler turns up a number … Read more