Comments are closed
cJass on the Google Code.
Our BugTracker (recommend to post bugreports and features request there).
Beta tester notes.
all times are GMT +03:00Latest posts
Pages: 1 [2] 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
posted at 03/09/11 17:32Guest
You should really drop off JASS2's block syntax and make everything with curly brackets. It's just better that way. You should also change the syntax of interfaces and function pointers to a more C-like one.
posted at 26/08/11 20:52Guest
Please update the dev version with the newest one, I think it's good enough to be considered "dev".
For people who don't check feedback page...
For people who don't check feedback page...
posted at 24/08/11 10:57ADOLF
No, I'm working)Project died again? :(
posted at 24/08/11 09:18Guest
Project died again? :(
posted at 22/08/11 13:12Guest
""Betas run's JassHelper to preparser textmacroses. So try to copy SFmpq.dll (take it in jassnewgenpack*\AdicHelper\) to:
jassnewgenpack*\bin\
jassnewgenpack*\jasshelper\
jassnewgenpack*\jasshelper\bin\""
Thanks a lot, Adolf! It works now :D
You should mention this somewhere, in case someone else runs in the same problem. Or the installer should replace those.
jassnewgenpack*\bin\
jassnewgenpack*\jasshelper\
jassnewgenpack*\jasshelper\bin\""
Thanks a lot, Adolf! It works now :D
You should mention this somewhere, in case someone else runs in the same problem. Or the installer should replace those.
posted at 21/08/11 10:01ADOLF
Before i changed wehack.lua, it didn't happen.Why do i, once i update wehack.lua, keep geting error message when i save map: "SFmpq.dll missing"? :/
Betas run's JassHelper to preparser textmacroses. So try to copy SFmpq.dll (take it in jassnewgenpack*\AdicHelper\) to:
jassnewgenpack*\bin\
jassnewgenpack*\jasshelper\
jassnewgenpack*\jasshelper\bin\
jassnewgenpack*\jasshelper\
jassnewgenpack*\jasshelper\bin\
posted at 20/08/11 23:46Guest
Why do i, once i update wehack.lua, keep geting error message when i save map: "SFmpq.dll missing"? :/
Before i changed wehack.lua, it didn't happen.
Before i changed wehack.lua, it didn't happen.
posted at 19/08/11 21:17ADOLF
2 Troll-Brain :
code.google.com/p/cjass/issues/detail?id=15 <- I'll add this feature to optimizer latter)
2 Anonymus :
Hmm, maybe I know how fix it. cJass just add some lib wit this function:
Hmm, maybe I know how fix it. cJass just add some lib wit this function:
_sGroupCopyCode db "library cjGroupCopyLib75hJKJ3745gf", 0dh, 0ah
db "globals", 0dh, 0ah
db "group cj_tmpgr_copy_nw509ert7", 0dh, 0ah
db "endglobals", 0dh, 0ah
db "function cj_group_copy_75hJKJ3745gf takes nothing returns nothing", 0dh, 0ah
db "//# optional", 0dh, 0ah
db "call GroupAddUnit(cj_tmpgr_copy_nw509ert7,GetEnumUnit())", 0dh, 0ah
db "endfunction", 0dh ,0ah
db "endlibrary", 0dh, 0ah
I try to add to all user defined libraries rewuires cjGroupCopy***
posted at 19/08/11 17:34Guest
Here's the code which causes error with for loop
unit GroupPickNearestUnitToLoc(group g, location loc) {
real dist_min = 0
unit nearest_unit = null
// /*
for(unit u; UnitsInGroup(g))
{
location loc_unit = GetUnitLoc(u)
real dist = DistanceBetweenPoints(loc_unit, loc)
if dist_min == 0 || dist_min > dist
dist_min = dist
nearest_unit = u
endif
}
// */
return nearest_unit
}
However, if I use it in an empty map, it compiles correctly. So it's "endemic" to my map?? I can provide any other details if you need.
Compiled code
function GroupPickNearestUnitToLoc takes group g,location loc returns unit
local real dist_min=0
local unit nearest_unit=null
local unit cjlocgn_00000000
local location cjlocgn_00000001
local real cjlocgn_00000002
set cj_tmpgr_copy_nw509ert7=cjgrfgn_00000001
call GroupClear(cj_tmpgr_copy_nw509ert7)
call ForGroup(g, function cj_group_copy_75hJKJ3745gf)
loop
set cjlocgn_00000000=FirstOfGroup(cjgrfgn_00000001)
exitwhen cjlocgn_00000000 == null
call GroupRemoveUnit(cjgrfgn_00000001, cjlocgn_00000000)
set cjlocgn_00000001=GetUnitLoc(cjlocgn_00000000)
set cjlocgn_00000002=DistanceBetweenPoints(cjlocgn_00000001, loc)
if dist_min == 0 or dist_min > cjlocgn_00000002 then
set dist_min=cjlocgn_00000002
set nearest_unit=cjlocgn_00000000
endif
endloop
set cj_v666_unit=nearest_unit
set cjlocgn_00000001=null
set nearest_unit=null
return cj_v666_unit
endfunction
posted at 19/08/11 13:31Troll-Brain
I'm making benchmarks :
Because variable name length really does matter, i would need the shortest ones.
It would be great if i could use #for with the "special" "base" 63 (a-Z ; 0-9 , _ ) instead of the decimal base.
The first character has to be a letter and the last mustn't be an _ , and ofc if the generated word is only one character it has to be a letter.
The first character has to be a letter and the last mustn't be an _ , and ofc if the generated word is only one character it has to be a letter.
The first benchmark is failed because of that, a good script optimizer should rename locals with one letter (hell 52 seems enough for the whole functions) and rename globals and functions with as short characters as possible (even one if it's possible).
But if you consider it way too specific or don't want to do it, just tell me, i will make a personal external script for that.
Alternatively you could also improve the optimizer but i think you have enough work with fixing bugs and features adding ^^
Keep the good work.
posted at 19/08/11 11:39ADOLF
Post anywhere map or code - I need to see it).37 is still bugged with for loop :(
posted at 18/08/11 21:08Guest
.37 is still bugged with for loop :(
I receive error from jasshelper
Undefined function bla-bla-bla
Undefined function bla-bla-bla
call ForGroup(g, function cj_group_copy_75hJKJ3745gf)
posted at 17/08/11 17:46ADOLF
Try to commeny this line. Last betas are incompatible with the libraries types and printf; We'll update it later.while (cond) whilenot not(cond),
posted at 17/08/11 15:12Guest
That's from the newest version (.37 I think).
Something with { symbol.
posted at 17/08/11 15:08Guest
There's a problem with "types" library.
Error log
[8] Critical error: bad char
[8] Critical error: bad char
define
{
int integer
bool boolean
void nothing
float real
while (cond) whilenot not(cond),
break=exitwhen true
enddefine
posted at 17/08/11 10:12ADOLF
2 Troll-Brain :
Hi!
Hmm, I do not remember exactly why it is so=/ Use () yet.But it seems there is no bug if you use (), like
It's buffer overflow bug:For some odd reason there is also a problem with the 2898 declaration
// ~ transladet to c asm
char ParsedLocalsCode [0x00010000]
char ParsedFuncCode [0x000a0000]
I'll increase this buffers in the next beta (.37)
posted at 17/08/11 01:57Troll-Brain
There is definetely something wrong with conditonnal compilation and the value "1", i've made several tests, and bugs seems to happen only with this value (well at least seems to be fine with 0 and 2).
The nature of the bugs depends of the relative position of the comparaison to 1 (the first condition, the first elseif, the last elseif ...) in the conditionnal block structure.
The nature of the bugs depends of the relative position of the comparaison to 1 (the first condition, the first elseif, the last elseif ...) in the conditionnal block structure.
But it seems there is no bug if you use (), like
# if ( MyValue == 1 )
This time i made the tests with the last beta 1.4.2.36
posted at 16/08/11 03:21Troll-Brain
Btw i have installed with the cjass installer and i'm using the 1.4.2.14 version of AdicHelper
posted at 16/08/11 03:18Troll-Brain
Hello.
Bugs report.
Conditional compilation is broken when you use integers (booleans seems to work)
library Benchmark initializer init {
#define private TEST_TO_DO = 2 // 1 for locals test and 2 for globals test
#define private PERIOD = 0.01 // depends your hardware configuration, if it lags to much try an higher value, if there is not enough fps drop try a lower one
globals
#for i (1,10000)
integer J##i
#endfor
endglobals
private nothing Test() {
#if TEST_TO_DO == 1
#for i (1,10000)
local integer j##i = 1
#endfor
#elseif TEST_TO_DO == 2
#for i (1,10000)
J##i = 1
#endfor
#else
PauseTimer(GetExpiredTimer()) ; DisplayTextToPlayer(GetLocalPlayer(),0,0,"invalid TEST_TO_DO")
#endif
debug DisplayTextToPlayer(GetLocalPlayer(),0,0,"limit op not reached")
}
private nothing init() {
TimerStart(CreateTimer(),PERIOD,true,function Test)
}
}
Whatever TEST_TO_DO value, it always consider it as == 1 (or maybe it considers only the first if condition, can't test it yet).
For some odd reason there is also a problem with the 2898 declaration :
local integer j2897=1
local intege
898=1
local integer j2899=1
As you can see it splits, i'm sure it's not jasshelper fault because i've checked the parsed_war3map.j of the subfolder AdicHelper (i'm using the JNGP).
And the bug comes with this script (the local definition) but not with the second one (the global setting)
Btw i had to edit the function compilemap_path of wehack.lua to get it work.
cmdline = cmdline .. " jasshelper\\common.j jasshelper\\blizzard.j AdicHelper\\parsed_war3map.j \"" .. mappath .."\""
I asked jasshelper to parse the external file that was built by adichelper, because else the input file was the script as it was (i mean without Adichelper preprocessing)
posted at 12/08/11 12:05ADOLF
It's too long.Maybe you should just rewrite cjass in c
No, debugging in ASM is awesome.It'd be a hell of a lot easier to debug : P
Also many bugs - classical bugs (buffer overflow) of low level languages (like C, where coder may use pointers)...
posted at 12/08/11 08:58nestharus
lol..
Aren't you happy I have these huge system libraries and tons of resources?
cjass will work when I can save my massive system library with cjass enabled and all of the systems enabled and not have a crash ; P.
I'm just going through the libs in it and finding these bugs for you ; ).
posted at 12/08/11 07:58Guest
Maybe you should just rewrite cjass in c
It'd be a hell of a lot easier to debug : P
posted at 11/08/11 11:17nestharus
submitted the issues on Google Code so that they can be tracked more easily : ).
posted at 11/08/11 10:42ADOLF
Beta tester notes
posted at 11/08/11 02:28Frotty
Nestharus is right
//! textmacro a
//! endtextmacro
Still does crash, maybe i had an empty line after it.