There are two actions.
a) uploading a file *.lua into the lua file system and
b) running code via the lua interpreter
The lua interpreter is involved in both but in a) it is only asked to execute the writing of code into a file so special escape [[...xxxxx...]] syntax is used so the interpreter doesn't interpret what is between [[ and ]] while uploading to the file.
With other and earlier lua loaders the writeline[[xxxx]] was needed.
Since this was somewhat unpleasant the 0.83 loader was improved and will now upload code for the interpreter via the "upload file" button without the need of the [[xxx]]
syntax ( it does it for you behind the scenes ). A binary upload is faster so 0.83 will load a lua file to upload your lua code as binary. To do this is must first up load via text loader the binary loader.
This is automatic so the first file has two automated steps and subsequent files one automated step.This is faster for code files and necessary for non text files such as a*.gif.