Module talk:BaseConvert/Archive 1
This is an archive of past discussions about Module:BaseConvert. Do not edit the contents of this page. If you wish to start a new discussion or revive an old one, please do so on the current talk page. |
Archive 1 |
convert with 'Module:No globals' error?
I have used the code as documented (2 lines, see below). It looks like that, by adding require('Module:No globals')
, an error is triggered.
Reproduce: see Module:User:DePiep/BCdemo:
- |testBC: Script error: No such module "User:DePiep/BCdemo".
- |testBCnoglobals: Script error: No such module "User:DePiep/BCdemo".
Something I can do? I want to use the Module:No globals in top (not in functions), i.e. for the whole module. @GKFX and Toohool: DePiep (talk) 18:27, 11 April 2022 (UTC)
- @DePiep: I think you just need to precede the first two function declarations with
local
(solocal function ...
. User:GKFXtalk 19:14, 11 April 2022 (UTC)- Done, see Module:User:DePiep/BCdemo. Not solved; note that I needed public function p.xxx(). BTW, you are fee to edit in there (it's a dedicated test-demo). -DePiep (talk) 19:26, 11 April 2022 (UTC)
Got it. In Module:BaseConvert/sandbox, I have made local
three functions: diff. To consider: should _convert()
be public i.e., be p._convert()
(not local
)? Depends on the frame/args handling in p.convert()
if I'm right.
- Testing Module:BaseConvert/sandbox i.c.w. Module:No globals
- |testBCsbox: Script error: No such module "User:DePiep/BCdemo".
- |testBCsboxnoglobals: Script error: No such module "User:DePiep/BCdemo".
Anyway, how to arrive at an edit proposal? -DePiep (talk) 19:46, 11 April 2022 (UTC)
- Re. _convert, it has too many positional arguments to be a nice API. I would stick with convert as the public function since it takes a table which emulates named arguments. User:GKFXtalk 19:56, 11 April 2022 (UTC)
Preparing Edit Request, tech review please
I propose to change all code in Module:BaseConvert with code from Module:BaseConvert/sandbox (diff).
The issue: when Module:No globals is used per documentation, Module:BaseConvert throws an error for r/w a global variable (like "Tried to write global normalizeFullWidthChars"). This is solved by declaring all internal functions explicitly local
. There are three, see the diff; the sandbox was tested with 'No globals' too.
If no (tech) issues or questions arise, I'll make this a formal Edit Request. (32k transclusions). -DePiep (talk) 20:18, 11 April 2022 (UTC)
- There are still some globals in the sandbox. I'll fix it soon (a couple of hours from now). Johnuniq (talk) 05:34, 12 April 2022 (UTC)
- I cleaned the whitespace in both the sandbox and main modules (no trailing spaces, use tabs for indents). I also fixed the remaining globals in the sandbox and made a couple of minor tweaks. The diff with the main module is very minor and I don't think an edit request is needed. I'll watch this for a while and if you want, I'll update the main module if there are no other suggestions. Johnuniq (talk) 07:27, 12 April 2022 (UTC)
- @Johnuniq: OK, thx. Pls proceed as you think best. -DePiep (talk) 11:18, 12 April 2022 (UTC)
- OK, I updated the main module so it now has no globals. Johnuniq (talk) 04:59, 13 April 2022 (UTC)
- @Johnuniq: OK, thx. Pls proceed as you think best. -DePiep (talk) 11:18, 12 April 2022 (UTC)
- I cleaned the whitespace in both the sandbox and main modules (no trailing spaces, use tabs for indents). I also fixed the remaining globals in the sandbox and made a couple of minor tweaks. The diff with the main module is very minor and I don't think an edit request is needed. I'll watch this for a while and if you want, I'll update the main module if there are no other suggestions. Johnuniq (talk) 07:27, 12 April 2022 (UTC)