June 2011
1 post
new domain, we moved!
today is the day of the 0.9 release and the first day in society of our new domain: http://efenelang.org follow us on the new blog, this blog is kept for historical purposes only see you there!
Jun 30th
December 2010
1 post
fnt - jquery-like templates for the erlang...
About fnt - efene templates first the most important, fnt code is hosted at github here: https://github.com/marianoguerra/fnt—efene-templates the documentation is here: http://marianoguerra.com.ar/fnt/ you are invited to contribute by testing it, reporting bugs, improving the documentation, spreading the word and the most awesome of all, by helping with the development. fnt (efene templates)...
Dec 17th
1 note
November 2010
1 post
really nice DSL for configuration and more...
yesterday reading something about coffeescritpt (an awesome language btw) y decided to try something I saw on the coffeescript page. after a slight modification of the parser I was able to write the following: @public run = fn () Awesome = me: name: "Mariano", age: 25, language: efene ,bob: name: "SpongeBob", age:...
Nov 10th
September 2010
4 posts
congratulations to djui!
djui requested a pull from his repo today, I just pushed the changes to efene master. with this simple action he became the first official contributor of efene. when we reach our secret goal* of conquering the world he will be able to point to this blog post with pride ;) * not *that* secret any more thanks to him and hurry up! you can be the second contributor!
Sep 27th
a little more object oriented
I added the ability to call methods inside structs. a call to a function inside a struct will pass the struct as first parameter implicitly. with this we get a behaviour similar to python where methods are just functions that receive an object as first parameter (normally called self). here are some examples: @public present = fn (Self) io.format("Hi!, I'm ~s ~s, my email is ~s~n", ...
Sep 19th
1 note
more on efene's structs
I’ve decided that structs are the way to go for efene and removed all traces of “objects” from the code. The reasons to do this: structs are a real data structure and not a closure trick to look like a data structure. You can introspect them, operate on them, dump and see what’s inside. This allow people to write code that interact with structs in ways I can’t...
Sep 18th
1 note
efene now JSON friendly - introducing structs
if I describe efene as “a javascript like syntax” then it should plain nice with JSON right? well, from now I can say it does… introducing structs: >>> Me = {firstname: "mariano", lastname: "guerra", location: {city: "cordoba", country: "argentina"}} {struct,[{firstname,"mariano"}, {lastname,"guerra"}, ...
Sep 18th
August 2010
5 posts
flattr button for efene
I added a flattr button to efene pages so people can “flattr” me if they found my work interesting. if you have a project, join to flattr, if I find it useful I will contribute (my first flatter was for dpkg :)
Aug 9th
Getting legal
I decided to get legal and add all the changes in the code to release efene under the 3 clause BSD license. this are some needed steps to stabilize the project so people can be sure that efene won’t eat their lunch. next step, define a naming strategy to avoid efene modules colliding with existing and future modules of erlang.
Aug 8th
1 note
fat arrows - some syntactic sugar for "dicts"
I was thinking on how to make some kind of dict like structure on efene with the things provided by erlang. I identified a pattern and decided to have some syntactic sugar for it. a common thing in erlang is to “tag” something with a two item tuple that contains the “tag” that represent what the second item is, and the value. Things like {error, Reason}, {ok, Value}...
Aug 6th
1 note
efene builds on windows + documentation
Today I installed a Windows XP VM and made efene work on windows, this involved two steps, build fnc.c in windows and make build scripts to compile the compiler and the libraries. the result is fnc.exe (you don’t need to build this, it’s already available in the repo) and the documentation to build efene:  * Build efene on *nix  * Build efene on windows
Aug 2nd
new compiler frontend and documentation
since yesterday I worked rewriting the compiler frontend (fnc) to C, unifying fnc and fn and writing documentation for it. the result is a brand new unified compiler frontend with full documentation. the docs are here: http://marianoguerra.com.ar/efene/docs/reference/fnc.html happy compiling!
Aug 1st
July 2010
4 posts
efene 0.8 - a language for the erlang VM -...
For the complete release notes with details on each item and examples see the release notes here: http://marianoguerra.com.ar/efene/docs/releases/oeight.html About efene efene is a programming language that runs on the erlang virtual machine. The idea is to provide an alternative syntax to erlang that is most suitable for people coming from languages like Java, C, C++, C#, Javascript. The...
Jul 25th
meta programming in efene take II
yesterday I made the first implementation of meta programming in efene, today some changes and some code to show that I wasn’t dreaming too much. first change: ${ … } expression is now $( … ) to match Template Haskell syntax (and jquery :P) second change: now meta programming can be made at module level, that means that you can generate any kind of code with meta programming...
Jul 13th
meta programming in efene
I was reading about template haskell and decided to give it a try in efene, the result after an hour of hacking (and reading) is this: >>> [|1|] {integer,1,1} >>> [| 1 + 2 * 3 |] {op,1,'+',{integer,1,1},{op,1,'*',{integer,1,2},{integer,1,3}}} >>> erl_eval.expr([|1 + 2 * 3|], erl_eval.new_bindings()) {value,7,[]} >>> [|fn (A, B) { A + B }|] {'fun',1, ...
Jul 13th
a gen_server behavior in efene
to show the status of efene and show that it can be used for complex and real life thing I decided to port a random gen_server example to efene (in this case ifene). I did a search for “erlang behavior example” and picked a useful example, in this case this post seemed interesting: http://20bits.com/articles/erlang-a-generic-server-tutorial/ you can see the original code there,...
Jul 13th
June 2010
1 post
efene 0.7 - a language for the erlang VM -...
For the complete release notes with details on each item and examples see the release notes here: http://marianoguerra.com.ar/efene/docs/releases/oseven.html About efene efene is a programming language that runs on the erlang virtual machine. The idea is to provide an alternative syntax to erlang that is most suitable for people coming from languages like Java, C, C++, C#, Javascript. The...
Jun 6th
May 2010
7 posts
for loops
for those who can’t live without for loops or aren’t confortable with recursion, map and lists.foreach, now efene provides for loops. here are some examples, after them the output of the execution: @public run = fn () R0 = for X in lists.seq(1, 10) A = X + 1 A R1 = for X in lists.seq(1, 10) if X % 2 == 0 A = X + 1 A R2 = for X in...
May 27th
"fixing" if expressions in erlang
In erlang the if expression works the same way as guards, from the erlang documentation: The set of valid guard expressions (sometimes called guard tests) is a subset of the set of valid Erlang expressions. The reason for restricting the set of valid expressions is that evaluation of a guard expression must be guaranteed to be free of side effects. that means that we...
May 26th
efene 0.6 released - objects, attributes,...
For the complete release notes with details on each item and examples see the release notes here: http://marianoguerra.com.ar/efene/docs/releases/osix.html About efene efene is a programming language that runs on the erlang virtual machine. The idea is to provide an alternative syntax to erlang that is most suitable for people coming from languages like Java, C, C++, C#, Javascript. The language...
May 24th
efene tutorial, first chapter draft finished
I started working on an efene tutorial that starts with a hello world and ends with a fully usable web application. The tutorial is divided in 4 parts, right now the first part is finished, but needs some review from people actually following the tutorial. The tutorial is located here: http://www.marianoguerra.com.ar/efene/tutorial/ ...
May 15th
web hello world with mochiweb and simplebridge in...
I was looking for examples on how to make a hello world web page using erlang, and since I couldn’t find it I made it myself. for this example we are going to use mochiweb and simplebridge mochiweb: MochiWeb is an Erlang library for building lightweight HTTP servers. simplebridge: SimpleBridge takes the pain out of coding to multiple Erlang HTTP servers by creating a standardized...
May 9th
Download and build latest snapshot of efene
This instructions describe how to download the latest snapshot of efene from the git repository and how to build them from source. the requirements are: a unix-like operating system (shell, wget and tar will be used) erlang installed the following is a valid shell script, you can put it on a file and run it with “sh file” and will do the tasks for you #!/usr/bin/env sh echo "store the...
May 4th
efene 0.5 - two languages for the erlang VM -...
new release of efene. efene is a programming language that runs on the erlang virtual machine. the idea is to provide an alternative syntax to erlang that is most suitable for people coming from languages like Java, C, C++, C#, Javascript and alternatively python and ruby using ifene (indented efene). the language is almost 100% compatible with erlang (and will be), the compiler allows to...
May 2nd
1 note
April 2010
1 post
efene 0.4 - a language for the erlang VM -...
new release of efene. efene is a programming language that runs on the erlang virtual machine. the idea is to provide an alternative syntax to erlang that is most suitable for people coming from languages like Java, C, C++, C#, Javascript. the language is almost 100% compatible with erlang (and will be), the compiler allows to translate an efene source file into a readable erlang one or...
Apr 10th
4 notes
March 2010
4 posts
efene 0.3 - a language for the erlang VM -...
third release of efene. efene is a programming language that runs on the erlang virtual machine. the idea is to provide an alternative syntax to erlang that is most suitable for people coming from languages like Java, C, C++, C#, Javascript. the language is almost 100% compatible with erlang (and will be), the compiler allows to translate an efene source file into a readable erlang one or...
Mar 19th
interactive shell and command line eval!
today I added two features that will make learning efene a lot easier. this features are the interactive shell and command line eval. interactive shell is what you get in erlang when you type erl, it let you write expressions that are evaluated right away and let you experiment with stuff. the command line eval is what you get in python when you do python -c “something” the...
Mar 11th
efene Language Reference
I started documenting the syntax of efene in the Language Reference any comment will be welcome
Mar 9th
efene programming language 0.2 released
second release of efene. project website: http://github.com/marianoguerra/efene efene is a programming language that runs on the erlang virtual machine. the idea is to provide an alternative syntax to erlang that is most suitable for people coming from languages like Java, C, C++, C#, Javascript. the language is almost 100% compatible with erlang (and will be), the compiler allows to...
Mar 8th
February 2010
2 posts
efene mailing list
a mailing list is available at librelist just send a mail to efene@librelist.com to subscribe. as first mail you may send a hello world program in efene and present yourself by saying your name, where you are, how did you heard about efene and anything else you would like to say.
Feb 12th
efene on rosetta code
I started to add content to rosseta code about efene so people can see how some problems are solved with efene compared with other languages. this are some links: language page unresolved problems you are invited to start contributing examples.
Feb 12th
January 2010
5 posts
Jan 22nd
Some ideas behind efene
For some it may be something small but I consider this two features to be interesting on efene, I think that both may help in creating small domain specific languages that may make easier to code. Or maybe It’s just me :P The first one is the posibility to write function arguments without usign a ‘,’ this looks like the following. draw = fn (dot at X Y) { ...
Jan 15th
Learning some efene, erlang and erlang internals
Let’s play a little with efene and in the meantime learn some erlang and erlang internals for free. Let’s build a simple division function that will return the result of the division between A and B but return the atom error if B is 0 divide = fn (_A, 0) { error } (A, B) { A / B } run = fn () { Helper = fn (A, B) { io.format("~p/~p=~p~n", [A,...
Jan 13th
how to build efene
to build efene you need to get the sources by doing git clone git://github.com/marianoguerra/efene.git you will also need erlang and the go compiler installed on your machine then just do cd efene/src ./build.sh this will build the erlang modules and the efene compiler frontend (which is written in go) after that you can go to the examples dir to see some real world code, you can...
Jan 12th
efene 0.1 released
efene is a programming language that runs on the erlang virtual machine. the idea is to provide an alternative syntax to erlang that is most suitable for people coming from languages like Java, C, C++, C#, Javascript. the language is almost 100% compatible with erlang (and will be), the compiler allows to translate an efene source file into a readable erlang one. It also adds some syntactic...
Jan 12th