What's GLUEscript?

GLUEscript (Glueing Libraries Using EcmaScript) is the successor of wxJavaScript. The new name covers the goal of this project: create a JavaScript engine which can be used as a general purpose language (like Perl for instance).

Read the history behind GLUEscript.

GLUEscript is developed by Franky Braem

SpiderMonkey

GLUEscript uses SpiderMonkey, the JavaScript engine used in FireFox.

SpiderMonkey

Portable Code

GLUEscript is written in portable C++ code. GLUEscript uses PoCo, a library for writing portable C++ code. And wxWidgets is used as GUI toolset. The GUI glue is optional.

Powered by POCO
Built with wxWidgets

GLUEscript uses Premake for generating makefiles for gcc, project files for Visual C++, CodeLite, Code::Blocks, ... Premake can be used on Windows, Linux and MacOS.

GLUEscript needs a new Logo

Who can create a new logo for GLUEscript? Some requirements:

  • The main part is the name and must be written as follows: GLUEscript
  • The words "Glueing Libraries Using EcmaScript" is used as a slogan
  • I want to see a graphic that makes a link with wxWidgets (Maybe this can be used: http://commons.wikimedia.org/wiki/File:WxWidgets.svg)
  • It would be nice to have some derived logo's which can be used for Twitter, the Google group, ...
  • A logo with "Powered By" to spread GLUEscript would also be nice

I was thinking on an image with a tube, and the colours of wxWidgets as glue comes out of that tube ... But if you have better ideas. Let me know!
Send your images to franky.braem@gmail.com

New tracker

From today, GLUEscript uses the tracker system of Sourceforge. Report your bugs or feature request at the tracker.

MySQL and MinGW

When you use the MinGW compiler you need to run some extra commands before you can actually build the MySQL glue:

First get MinGW-utils and extract the binaries in the bin folder of MinGW

Open a console window and go to the library directory of MySQL:

cd C:\Program Files\MySQL\MySQL Server 5.1\lib\opt

Then use reimp to create a .def file:

reimp -d libmysql.lib

To create the .a file, dlltool is used:

dlltool --input-def libmysql.def --dllname libmysql.dll --output-lib libmysql.a

Now you can successfully link the glue MySQL.

Why are there so many C++ macro's in GLUEscript?

GLUEscript uses a lot of macro's in the source code. While many developers find macro's evil, I find them useful for GLUEscript for the following reasons:

  • They reduce a lot of repeating code
  • They hide difficult to read code
  • When something changes only the macro needs to be changed

The third reason is the most important reason for me: Between two versions of GLUEscript the prototype of a callback was changed. Instead of searching and replacing all code in the source files, I only needed to change the macro of the callback.

The last reason of using macro's is that I have a dream, that one day I write a parser that automatically translates C/C++ code into GLUEscript code. Parsing the syntax of macro's is easier then parsing C/C++ code.

Poco Blog

GLUEscript is mentioned on the POCO blog. Read what Alex has to say about GLUEscript.

Build Poco with MinGW and Codelite

I've uploaded new Premake4 scripts in subversion to compile POCO 1.3.5 with MinGW. With these scripts you can generate workspaces for Codelite or Code::Blocks. Follow these steps:

  • Get the scripts from here: http://gluescript.svn.sourceforge.net/viewvc/gluescript/trunk/src/poco.zip
  • Unarchive the zip archive and copy all Lua scripts to the corresponding POCO directories
  • Open a command window and go to the POCO directory
  • Run premake4 and use codelite or codeblocks as action:
    premake4 codelite
    You need to run premake4 in the POCO directory!
  • Open codelite and build the projects. Make sure the Foundation project selects the gcc compiler, not the g++ compiler because zlib compilation fails with g++.

Make sure you use the latest version of MinGW! Don't use the version that is shipped with Codelite or Code::Blocks

Poco SpiderMonkey framework ready

It's been more then 3 months that I'm working on the Poco JavaScript environment for SpiderMonkey. While I was converting some glues to the this new environment, I found a lot of bugs, enhancements, ... Today I think the SpiderMonkey framework is ready. The glues for cURL and SQLite are converted and they work. In the meantime I keep on converting the other glues to the Poco C++ Coding Style and to use the framework, so be patient for the next release ...

POCO SpiderMonkey framework

The design of the POCO SpiderMonkey framework is ready. Now I'm converting all the glues to this framework. This is alot of work, but this will be the best way to test the SpiderMonkey framework. In the meantime I change the code to follow the POCO C++ Coding Style Guide. When I feel it is ready, the framework will be contributed to POCO. You can follow everything in the Subversion repository.

GLUEscript contributes to POCO

The GLUEscript project will work on an JavaScript Environment for POCO. POCO already has an environment for LUA. This code is stored in the POCO sandbox, so it will not be available in the official POCO release in the near future.

How to configure Apache?

The apache module uses a modified version of the Apache Connector from the POCO framework. Configure this as follows:

LoadModule poco_module c:/glue/bin/mod_poco.dll
AddPocoRequestHandler GLUERequestHandlerFactory c:/glue/bin/glue_apache.dll <path>
AddHandler glue .js

All JavaScript files in path are handled by GLUEscript.

Syndicate content