Skip to content

Instantly share code, notes, and snippets.

View jponge's full-sized avatar

Julien Ponge jponge

View GitHub Profile
import gololang { GoloTuple = Tuple, ... }
import org.typeunsafe { YoCeylon }
import java.lang { JavaInteger = Integer }
shared void run() {
print(">>> eval-style");
value fun = EvaluationEnvironment().def("|a| -> println(a)");
if (is FunctionReference fun) {
fun.invoke("Yo!");
native("jvm") module org.typeunsafe.ceylonlovesgolo "1.0.0" {
import org.typeunsafe.goloceylon "1.0.0";
import golo.yoceylon "1.0.0";
}
$ ceylon import-jar --descriptor=golo/module.properties golo.yoceylon/1.0.0 golo/yoceylon-1.0.0.jar
Checking declared dependencies:
org.typeunsafe.goloceylon/1.0.0 ... [OK]
The following JDK modules are used and could be declared as shared imports:
java.base
No problems found, publishing...
Published module golo.yoceylon/1.0.0 to repository /Users/jponge/Code/hacks/call-golo-from-ceylon/modules.
native("jvm") module org.typeunsafe.goloceylon "1.0.0" {
shared import java.base "8";
shared import ceylon.interop.java "1.2.0";
shared import "org.eclipse.golo:golo" "3.1.0-incubation-M1";
}
$ cd golo/
$ golo compile YoCeylon.golo
$ jar cvf yoceylon-1.0.0.jar org/
module org.typeunsafe.YoCeylon
function yo = |max| ->
[n foreach n in [1..max] when n % 2 == 0]
native("jvm") module plop "1.0.0" {
import "org.eclipse.golo:golo" "3.1.0-incubation-M1";
}
package org.typeunsafe;
import org.openjdk.jmh.annotations.*;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.concurrent.TimeUnit;
@State(Scope.Thread)
@jponge
jponge / proposal.md
Last active August 6, 2021 15:52
Draft of our upcoming proposal of Golo to the Eclipse Foundation

Discussion

Background

Describe where the project came from. What is the historical journey of the project; who/what company wrote the project. Did it go through any significant alterations/rewrites/language changes?

Golo comes from the research activities of the Dynamid team of the CITI-INRIA Laboratory at INSA-Lyon. After experimentations in the JooFlux dynamic aspect and code injection toolkit, we realized that we could take advantage of the invokedynamic / JSR 292 to design a small, efficient and easy to hack dynamically-typed programming language for the JVM. By "easy to hack", we mean that language and runtime experiments can be approached by students and hobbyists, not just programming language design experts.

We released the first preview of Golo at the Devoxx France conference in March 2013. The language was presented in various JUGs and conferences, including De

Keybase proof

I hereby claim:

  • I am jponge on github.
  • I am jponge (https://keybase.io/jponge) on keybase.
  • I have a public key whose fingerprint is 4E2C F687 3B4F 7FAB 3A17 31AC D435 6BAA 9024 9583

To claim this, I am signing this object: