lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


First off, apologies if this isn't the right place for commercial
opportunities. The (seemingly defunct) Lua Jobs wiki page directed me
here, but in lurking I couldn't see any other similar posts.

I am looking for someone to do a small amount of consultancy
supporting me to extend a custom version of the Lua language. I
estimate the first task (detailed below) to be pretty short, but
ideally I'd like to work with someone who would continue to work with
me over the next few months.

---

Skills: Intimate knowledge of Lua's C source (i.e. the actual
implementation of Lua, not its C-API). Generally high technical
competency.

Location: I don't care. I'm in the UK. If we happen to need a skype
conversation, we can figure out timezones. We need to be able to
reliably understand each other's written English.

Task: Extend Lua to add mutator assignments: (+=, -=, etc: we need the
six numerical operators, but clearly once one is done, the pattern
should be pretty trivial for me to copy). I need the operator to work
for numbers at the C level (solutions where C calls Lua to implement
these operators for numbers is unacceptable), there also needs to be a
new metatable method for each operator. I'm happy for the
implementation to be at the codegen level, or to extend the VM (if,
indeed, both are even options, technically). The operators must
evaluate both sides only once (a[foo()] += 3 is not the same as
a[foo()] = a[foo()] + 3). These assignments should not be valid as
part of a "local" statement, nor as part of a table constructor. I do
not need them to be valid for multiple assignment (e.g. foo,bar += 2,
foo,bar+=1,2), but obviously I don't mind if they do, as long as you
can explain the semantics of what you implement.

Deliverables: A patch file on an agreed download of the Lua source
(5.1.4, say), or (ideally for me, if you use it) a github pull request
for the changes. Rudimentary tests should be provided [format isn't
crucial, e.g. a Lua file and a target output file so I can do "$
modified-lua test.lua | diff sample.out -" and get nothing, is fine].

Payment: $80 per hour, with a cap on the number of hours mutually
agreed in advance. Paid either by international bank transfer or (if
you prefer) PayPal.  Payment within 7 days of agreed delivery, or on
receipt of invoice by email, whichever is later.

---

After this task I would be interested in commissioning consultancy
work, email advice, and code review. This would be on an as-needed
basis, again at $80 per hour.

---

I'm aware there are some resources out there that do similar stuff to
this specific task (there is a patch to add a := operator, for
example, which only has behavior through a metatable method, there's
MetaLua, which introduces too much extra stuff as well), and there are
places like StackOverflow I could angle for some free advice. But I
have a lot of other engineering to do, and I can't spare the time to
educate myself sufficiently to think clearly about these tradeoffs or
any lurking pitfalls. I'm always aware that I don't know what I don't
know, so I want to have someone who will take responsibility for it
being done right.

Oh, and if the results are useful, I'll happily release these changes
under any OSS license (though the full customized Lua-like-language I
can't because of its integration with the wider project I'm working
on). It may be a Pony, but my ideal person would be a core dev who
says "hey, let's use this cash to do the work to make these operators
part of the core language" (because that would give me bags of
confidence the result would be stress tested widely). Having said
that, I also know that Lua's power and elegance comes from its
simplicity, and who am I to say what extensions should be added!

I make my living programming, so I'll be pretty laid back with someone
who knows what they're doing. I'm also incapable of being brief. Sorry
if this was tldr!

Ian.