As has become clear from this article's title, my current open source commits streak came up to
128 days and I write article about it.
Something about Zephir
Because most of all my projects or commits is related to Zephir I will start speaking about it first. It's amazing that language grows every day, and it takes good feedback. New open source projects gives popularity to Zephir.
0.4.3 Alpha Release
We released a new branch - 0.4.3, new futures and fixes:
- Fixed variables initialization in conditions #413
- Stubs generating fixes #418, #421, #434
- Fixed is_numeric function call
- Fixed internal CS errors #416
- Fixed identical operator #423
- Fixed small memory leak inside parser #431
- Improve try-catch
- Fix string constants escaping, IssetOperator with variables #456
- Added support for doubles in typeof statements
- Fixed arithmetical errors #441
- Added deprecated method modifier #462
- Added ability for lookup php.ini inside project #446
0.4.4 What we have
- Fix declarations for arrays
- Fix declarations for objects
- Remove auto generated part from kernel component
Will see more details next time.
My plans for Zephir 0.5
Language grows every day, and it's time to take a significant step and rewrite some places for new architecture.
Split all components
The main idea of this task is that we need to split components and minimize relations between its.
- Zephir\Kernel (wrapper for Zend Engine with extended functions)
After splitting components we can create new ways, for example:
- Zephir -> PHP
- PHP -> Zephir
- Zephir & PHP -> Zephir
Object AST in Zephir
We need to create Object AST because with current json ast we can't controll it. After removing and create of new object AST we can create Zephir\Parsers for all languages what we want. This is a priority task to standardize parsing components.
Support for another compilers intro core (not only gcc)
Some moments in core component is static but I added opportunity to change compiler in
For example after these changes you can change compiler from gcc to llvm-gcc. After it you get JIT by LLVM technology.
Some moth ago I decided something about that I need to build new project because all ORMs what I used is slower and bigger. The decision was immediate to make new project, where I will implement philosophy Of Doctrine 2, my experience and Zephir language.
In the Phalcon 2 I fixed build for PHP 5.6 support and sometimes ask on issues.
It's a new project and now I am planing architecture and future goals. But is I fell the general idea of the project is "build Phalcon application with predefined modules in easy way".
First I'll implement:
- Admin-panel (grud, setting, auth, acl)
- User module
- Catalog module (products catalog. Category view, product view)
- Cart module
- OAuth module (social auth module)
After BETA release i will create new branch with Lynx support.
Yesterday I saw new twit from Rushmore Mushambi about his realization of zephir-compiler realtime build system on bash.
The decision was immediate and I after spending 40 minutes on work, I released
watch command with React component.
With this feature compilation process doesn't take time on core bootstrapping, and next time we can create support for partial build. (build only files what we need)
See future request Watch command #472
I decided to stop contributing Zephir because I have got a lot of conflicts with Zephir's authors.
My Blog development
I created english version of my blog. As you can see All my articles is about technical and it's really hard to write it because It takes up 5 hours for one article. If you anyone wants to help me with translation or corrections you can contact with me by easy way for you.
Upcoming articles (with planned date)
- How to set up own dns server (10 August)
- Zephir vs PHP-CPP (20 Aug)
- Screencasts about how to build the fastest application using the fastest Phalcon framework (1 September)
If you want to see my new articles or projects, please follow me or start my project. (i will be happy)
Will see you soon and I talk to you : "Happy Coding with Phalcon and Zephir".