On 1 Apr 2016, at 09:38, Arran Cudbard-Bell <a.cudbardb@freeradius.org> wrote:
On 1 Apr 2016, at 09:33, Arran Cudbard-Bell <a.cudbardb@freeradius.org> wrote:
My script is only 470 lines long, but it uses DBI module (and some minor others). Maybe it's quite complex and causing the slowdown. The DBI module is huge.
If your Perl script is 470 lines, you can probably do all of that work in unlang. Actually, i'm trying to migrate from unlang to Perl. Because of unlang's poor syntax (such as returning only one value from {%sql .. })
map sql "SELECT ALL, THE, COLUMNS FROM STFU WHERE 1" { Reply-Message += 'ALL', Reply-Message += 'THE', Reply-Message += 'COLUMNS' }
-Arran
I have almost a complete rlm_lua implementation, there just doesn't seem to be a demand for it.
Lua/LuaJIT was designed to be embedded, they are insanely fast (especially so with LuaJIT), lock free, and fits well with our current and future processing models.
The marshalling/unmarshalling code in rlm_perl and rlm_python is complete garbage, the stuff I wrote for rlm_lua does everything on the fly as attributes are read from and written to.
I expect marshalling rlm_python could be improved, but I hold out little hope for the steaming pile of filth that is Perl.
You know what, this has gone on for too long shinyhead:freeradius-server-fork arr2036$ rm -rf src/modules/rlm_perl/ shinyhead:freeradius-server-fork arr2036$ git commit -a -m "DIE PERL DIE" You need a passphrase to unlock the secret key for user: "Arran Cudbard-Bell <a.cudbardb@freeradius.org>" 4096-bit RSA key, ID 9FB6D7CA, created 2012-09-11 (main key ID 30A8CAA2) [upstream-v3.1.x 90f5fdb] DIE PERL DIE 6 files changed, 6056 deletions(-) delete mode 100644 src/modules/rlm_perl/.gitignore delete mode 100644 src/modules/rlm_perl/all.mk.in delete mode 100644 src/modules/rlm_perl/config.h.in delete mode 100755 src/modules/rlm_perl/configure delete mode 100644 src/modules/rlm_perl/configure.ac delete mode 100644 src/modules/rlm_perl/rlm_perl.c shinyhead:freeradius-server-fork arr2036$ git push Counting objects: 3328, done. Delta compression using up to 8 threads. Compressing objects: 100% (2739/2739), done. Writing objects: 100% (3328/3328), 524.30 KiB | 0 bytes/s, done. Total 3328 (delta 2701), reused 768 (delta 586) To ssh://git@github.com/FreeRADIUS/freeradius-server.git + 267e87a...1e00c5c v3.1.x -> v3.1.x Problem solved. -Arran Arran Cudbard-Bell <a.cudbardb@freeradius.org> FreeRADIUS Development Team FD31 3077 42EC 7FCD 32FE 5EE2 56CF 27F9 30A8 CAA2