|
|
| A Scripting Language. |
|
damage
Member #3,438
April 2003
|
I'm surprised no-one has mentioned C#. The great thing about C# is that the .net framework gives you an interface to the C# compiler, so it's a simple matter to compile C# source files on the fly. C# is useful as a scripting language because it's faster than Java but much more easy to use than C or C++. ____ |
|
nonnus29
Member #2,606
August 2002
|
Quote: I'm surprised no-one has mentioned C#. The great thing about C# is that the .net framework gives you an interface to the C# compiler, so it's a simple matter to compile C# source files on the fly. C# is useful as a scripting language because it's faster than Java but much more easy to use than C or C++. Wow, C# sounds great aside from the unfortunate platform dependancy thing.... [/sarcasm] edit |
|
curtis warren
Member #3,898
September 2003
|
Quote: Wow, C# sounds great aside from the unfortunate platform dependancy thing.... [/sarcasm] edit
And why not? I've heard it's very good at what it does. |
|
Johnny13
Member #805
October 2000
|
Quote: give me one reason not to use it? Speed? 23 said: there's a JavaScript raytracer ... Interesting, render a flower took 27.74 sec =_=" Alg3D Praise my Games!!<code>#define SPAMMER (post>=666&&postperday>=6)</code><Mr.spellcaster>What post? <Mr.spellcaster>A useful post by me. |
|
Marcello
Member #1,860
January 2002
|
Ok, let's see... I got spidermonkey working and integrated into an extremely simple C++ wrapper so I could integrate it into one of my games to experiment with. Speedwise, I loaded a script (var i=6000,n=0; while(--i>=0)n+=i; print(n);), compiled it, ran it every game 'step' (60"f"ps), and it had no impact on speed, going up to 7000 started to affect the framerate, but there will be very little looping in-script for my engine, so I'm not concerned about speed. Obviously speed-critical components will be written in C++ no matter what language I'm using, so it's all rather academic. Guile, Io, both are syntaxes I'm not familiar with, so there's no real point in going with those over python for example. c-smile looks pretty cool, considering it's java and javascript. As for C#, allow me to say, no. If I were to go that far, I'd use java. But both are overkill. Plus C# sucks by definition. |
|
Korval
Member #1,538
September 2001
|
Quote: Please tell me, what feature you need is missing? I don't know. I don't use it. But there could very well be something, considering its origins. Quote: The obvious reason is "because you can". That's not a reason; that's a justification for a decision that has already been made. Quote: but why Lua if you can use JavaScript? That's hardly an open-minded statement, as it presupposes the notion that JavaScript is a better language. Quote: It's object oriented but is also great for procedural jobs. So the language itself is easy to use and offers lots of features. What makes it "easy to use"? In what way does it "offer lots of features"? Quote: I downloaded SpiderMonkey when Marcello asked for help. And now I've a running scripting system. Neat. What is the C/C++-to-JavaScript API like? Quote: I can execute scripts in different contexts but need just one runtime. What do you mean by context? Quote: I can run scripts with different security levels easily. Can't you do that by simply restricting the API that the script is allowed to use? Quote: I know there's a JavaScript raytracer ... That gives me an idea. I've had this raytracer notion in the back of my head for a few years now, slowly refining it. And there are a number of non-performance parts of it that it would not be a bad idea to script (material/lighting computations, camera/ray generation, etc). This would make it easier to write shaders and so forth for the system. |
|
spellcaster
Member #1,493
September 2001
|
Quote: I don't know. I don't use it. you have no idea, but you think it's best to bash it first? Have you considered to STFU if you don't know what you're talking about? Quote: But there could very well be something, considering its origins. You have no idea what you're talking about, do you? Please enlighten us... what is that cruel origin? Quote: That's hardly an open-minded statement, as it presupposes the notion that JavaScript is a better language.
You realize that I just reversed your statement ("But why use Javascript if you can use Lua")? Of course you do. Quote: What makes it "easy to use"? In what way does it "offer lots of features"? Browse to the spidermonkey website and read. Quote: What is the C/C++-to-JavaScript API like?
See above. Quote: What do you mean by context?
Again, check the spidermonkey website for a more detailed explanation. Quote: Can't you do that by simply restricting the API that the script is allowed to use?
That's (mainly) what you do. Just using a well defined niterface. Again, just read the intro pages on the spidermonkey webpage. -- |
|
Korval
Member #1,538
September 2001
|
Quote: You realize that I just reversed your statement ("But why use Javascript if you can use Lua")? Of course you do. With one significant exception. Lua was designed with 2 features game developers like: small size and speed. And LuaBind builds off of this (granted, the template metaprogramming kills off the code-size benifit) by adding ease-of-use. Lua ought to be highly considered by anyone who might want to use a scripting language for games, for the above reasons alone. JavaScript has to justify its use, because it doesn't have the above reasons. Quote: Browse to the spidermonkey website and read. I did. The result was hardly what you expected. The API is no better or worse than what you get with Lua. LuaBind completely blows it out of the water in terms of ease of use. As far as the language itself is concerned, I didn't see anything in particular that was significantly better or worse than Lua. Sure, it has a well-defined notion of classes and inhieritance, but LuaBind gives Lua a similar notion (I recently discovered that it actually extends the Lua language a bit). Quote: But mainly you provide a callback dealing with get / set requests for the different attributes (that's something lua can't do) Why would you want to? Quote: Infact, had you read them before starting this discussion, we could have avoided all this. Assuming what I read was actually anything valuable. However, what I found was a language/API that was no better than vanilla Lua. Considering that Lua is smaller (library size) and likely faster, there's nothing here to convince me to switch, or even recommend it as a good alternative to Lua. The API isn't the hacked-on API that I imagined that it could have been, but it doesn't show any real improvement over plain Lua. And plain Lua has LuaBind to cover up the nastiness. As an example of what LuaBind can do, observe: Let's say that these are classes we want to expose to the scripting language. One of them is just an API class. The other is a base class that we want the script to override with a new one:
39 lines. The following is 100% of the LuaBind code required to register these:
33 lines. Fewer lines than it took to declare and define the classes to begin with. I seriously doubt that the SpiderMonkey API can do that. Also, note the lack of possibility for errors. If I change the signature of functions, unless the function is intended to be overriden (and those API's should be virtually frozen the moment they were first used in a script), I don't have to change anything in the registering code. It implicitly knows the function signature. The other exception to this is function overloading, where you have to specify an explicit signature. So the potential for registration errors is quite low, even with the exceptional cases. |
|
Thomas Fjellstrom
Member #476
June 2000
|
Does it do the same with C? If the LuaBind api is just C++, thats a reason not to use it. For me at least. -- |
|
CGamesPlay
Member #2,559
July 2002
|
Tomasu: "void MyFunc()" <-- No lua state -- Ryan Patterson - <http://cgamesplay.com/> |
|
spellcaster
Member #1,493
September 2001
|
Quote: I didn't see anything in particular that was significantly better or worse than Lua.
Right. That's we wre telling you from the beginning. As I said, if you had read the site, the whole discussion had never started. Quote: Why would you want to? Mainly because you can then do stuff like this in your script: sprite.frames = "image.bmp"; Which is exactly the same as sprite.setFrames("image.bmp"); Just without the function call. That means you can use attributes like attributes while you still ensure that you only have a single point of access. That's neat. Quote: Considering that Lua is smaller (library size) and likely faster, there's nothing here to convince me to switch,
We never inteded to do that. Quote: but it doesn't show any real improvement over plain Lua. Since it's older than LUA, I guess that's ok. And it's pretty easy to write some wrapper generting code, and the c -> js connection is IMHO simpler than the way LUA is doing it... so I don't miss LUA bind much. Quote: 33 lines. Fewer lines than it took to declare and define the classes to begin with. I seriously doubt that the SpiderMonkey API can do that.
As I said, that's nothing I'm concerned with. The API functions are exposed once, it's not something that I need to change often. But that's just a hassle for the engine coder. The gained benfit from javascript is IMO worth the extra (one-time) work. (Before Korval asks what benefits, I'd like to add a "see above"). -- |
|
curtis warren
Member #3,898
September 2003
|
Can anyone point me to a place where I can download spidermonkey in a zip or tar package (preferably zip)? I tried their website but all I can find is an online listing of all the files, and I really don't want to have to download each one seperately. |
|
Marcello
Member #1,860
January 2002
|
at the top of http://www.mozilla.org/js/spidermonkey/ it says: Quote: You can get the engine via CVS and build it yourself, or look for recent tarballs at (please check the mirrors first), http://ftp.mozilla.org/pub/js/. Release notes are available at http://www.mozilla.org/js/spidermonkey/release-notes/. The mirrors link led me to http://mirrors.xmission.com/mozilla/js/ and I grabbed it there. [edit] My choice for javascript was because, a) I've been using javascript in web for about 7 years now (the days of "ripping off" scripts and tweaking them), b) I worked with the Rhino engine (a java implementation of javascript) for scripting my own java app (although I got so into messing with rhino, the app ended up being a pretty funky javascript interface, but not what I had intended), c) lua looks ugly as hell. Some of the nice things about javascript come from its uber-loose interface, such as the feature to leave out semicolons if you have a newline. As mentioned before, I don't switch between languages very easily and have trouble enough going from java to c++ within the same day (mainly because of bool/boolean though Although I haven't looked at lua scripting much, so perhaps it has this functionality, but to be able to do stuff along the lines of: character.name = "Alexis" character.age = 23 for (attribute in character) { print("character attribute " + attribute + ": " + character[attribute]) } is one of my favorite features of javascript. Plus this is pretty cool: character.onhit = function (event) { ... } You can even dynamically generate functions at runtime using eval(): function characterHit(event,character) { print(character.name+" got hit! HP -"+event.hitloss) } function makeCharacterHit(char) { return eval("function(event){characterHit(event,characters." + char + ")}") } characters.bob.onhit = makeCharacterHit("bob") characters.fred.onhit = makeCharacterHit("fred") Of course, that's pretty evil and it could probably be done a little cleaner than that. [edit numero 2] I should also mention that the 500kb overhead added to the exe isn't really a big deal since the games will most likely be over 10 megs each, and possibly on CD. Marcello |
|
curtis warren
Member #3,898
September 2003
|
Ok, thanks. I got to that page already, but I downloaded the wrong thing (the jsd one :/) |
|
Julien Cugniere
Member #947
February 2001
|
Just for your information (and for fun!): character.name = "Alexis" character.age = 23 for (attribute in character) { print("character attribute " + attribute + ": " + character[attribute]) } is done in lua that way: character.name = "Alexis" character.age = 23 for attribute in character do print("character attribute " .. attribute .. ": " .. character[attribute]) end -- faster alternative: for attribute,value in character do print("character attribute " .. attribute .. ": " .. value) end Function can also be dynamically generated: function characterHit(event,character) { print(character.name+" got hit! HP -"+event.hitloss) } function makeCharacterHit(char) { return eval("function(event){characterHit(event,characters." + char + ")}") } characters.bob.onhit = makeCharacterHit("bob") characters.fred.onhit = makeCharacterHit("fred") becomes: function characterHit(event,character) print(character.name .. " got hit! HP - " .. event.hitloss) end function makeCharacterHit(char) return function(event) characterHit(event,characters[char]) end end characters.bob.onhit = makeCharacterHit("bob") characters.fred.onhit = makeCharacterHit("fred")
As can be seen, the syntax for generating function is actually simpler in lua, (IMHO, at least I don't see why you find lua so ugly! But then seeing how the languages are similar in these examples, I suppose JavaScript can be an alternative, if its speed is correct. What I like about lua is the fact that everything is a (pretty fast and convenient hash table). But I don't know much about JavaScript... |
|
spellcaster
Member #1,493
September 2001
|
Quote: is done in lua that way:
No, sorry. for attribute in character do if character.listAttrs[attribute] do print("") end end
Since you can specify what attributes should be listed in that for loop. -- |
|
Marcello
Member #1,860
January 2002
|
except lua uses end/do which is lame by default. Marcello |
|
Julien Cugniere
Member #947
February 2001
|
Well there's nothing one can do about other people's tastes |
|
Kuba Wroniecki
Member #4,082
November 2003
|
HAH! REAL men (and women) use DOS BATCH SCRIPTS
-- |
|
Thomas Fjellstrom
Member #476
June 2000
|
Kuba, you are mistaken -- |
|
curtis warren
Member #3,898
September 2003
|
Quote: REAL men (and women) use DOS BATCH SCRIPTS
No, real men hard code everything in asm! C:\spidermonkey>gcc -c jsapi.c jsarena.c jsarray.c jsatm.c jsbool.c jscntxt.c js date.c jsdbgapi.c jsdhash.c jsdtoa.c jsemit.c jsexn.c jsfile.c jsfun.c jsgc.c js hash.c jsinterp.c jslock.c jslog2.c jslong.c jsmath.c jsnum.c jsobj.c jsopcode.c jsparse.c jsprf.c jsregexp.c jsscan.c jsscope.c jsscript.c jsstr.c jsutil.c jsx drapi.c prmjtime.c -DXP_PC -DWIN32 -DEXPORT_JS_API -D_declspec=__declspec And I get a whole bunch of errors. Here's the end of it: 1jsxdrapi.c:581: cast specifies function type
2jsxdrapi.c: In function `JS_XDRValue':
3jsxdrapi.c:596: `JS_XDRRegisterClass' declared as function returning a function
4jsxdrapi.c: In function `JS_XDRRegisterClass':
5jsxdrapi.c:596: static symbol `JS_XDRRegisterClass' is marked dllexport
6jsxdrapi.c:597: parse error before "numclasses"
7jsxdrapi.c:600: `numclasses' undeclared (first use in this function)
8jsxdrapi.c:600: dereferencing pointer to incomplete type
9jsxdrapi.c:601: dereferencing pointer to incomplete type
10jsxdrapi.c:605: dereferencing pointer to incomplete type
11jsxdrapi.c:605: dereferencing pointer to incomplete type
12jsxdrapi.c:607: cast specifies function type
13jsxdrapi.c:608: dereferencing pointer to incomplete type
14jsxdrapi.c:609: dereferencing pointer to incomplete type
15jsxdrapi.c:612: dereferencing pointer to incomplete type
16jsxdrapi.c:616: dereferencing pointer to incomplete type
17jsxdrapi.c:618: dereferencing pointer to incomplete type
18jsxdrapi.c:620: dereferencing pointer to incomplete type
19jsxdrapi.c:621: cast specifies function type
20jsxdrapi.c:627: dereferencing pointer to incomplete type
21jsxdrapi.c:628: cast specifies function type
22jsxdrapi.c: In function `JS_XDRFindClassIdByName':
23jsxdrapi.c:633: static symbol `JS_XDRFindClassIdByName' is marked dllexport
24jsxdrapi.c:634: parse error before "i"
25jsxdrapi.c:636: `numclasses' undeclared (first use in this function)
26jsxdrapi.c:636: dereferencing pointer to incomplete type
27jsxdrapi.c:641: dereferencing pointer to incomplete type
28jsxdrapi.c:642: dereferencing pointer to incomplete type
29jsxdrapi.c:645: dereferencing pointer to incomplete type
30jsxdrapi.c:646: `i' undeclared (first use in this function)
31jsxdrapi.c:647: dereferencing pointer to incomplete type
32jsxdrapi.c:649: dereferencing pointer to incomplete type
33jsxdrapi.c:658: dereferencing pointer to incomplete type
34jsxdrapi.c:660: dereferencing pointer to incomplete type
35jsxdrapi.c:668: dereferencing pointer to incomplete type
36jsxdrapi.c: In function `JS_XDRFindClassById':
37jsxdrapi.c:676: static symbol `JS_XDRFindClassById' is marked dllexport
38jsxdrapi.c:677: parse error before "i"
39jsxdrapi.c:679: `i' undeclared (first use in this function)
40jsxdrapi.c:679: dereferencing pointer to incomplete type
41jsxdrapi.c:681: dereferencing pointer to incomplete type
42jsxdrapi.c: In function `JS_XDRValue':
43jsxdrapi.c:683: parse error at end of input
44jsstr.h:163: warning: array `js_empty_ucstr' assumed to have one element
45jsstr.h:167: warning: array `js_X' assumed to have one element
46jsstr.h:168: warning: array `js_Y' assumed to have one element
47jsregexp.h:49: storage size of `parens' isn't known
48jsregexp.h:51: storage size of `lastMatch' isn't known
49jsregexp.h:52: storage size of `lastParen' isn't known
50jsregexp.h:53: storage size of `leftContext' isn't known
51jsregexp.h:54: storage size of `rightContext' isn't known
52jscntxt.h:203: storage size of `propertyTreeHash' isn't known
53jscntxt.h:324: storage size of `regExpStatics' isn't known
54In file included from prmjtime.c:44:
55jstypes.h:238:6: #error "Must define one of XP_BEOS, XP_MAC, XP_OS2, XP_WIN or X
56P_UNIX"
57jstypes.h:254:2: #error No suitable type for JSInt8/JSUint8
58jstypes.h:267:2: #error No suitable type for JSInt16/JSUint16
59jstypes.h:287:2: #error No suitable type for JSInt32/JSUint32
60In file included from prmjtime.c:44:
61jstypes.h:319: parse error before "JSUint32"
62jstypes.h:319: warning: no semicolon at end of struct or union
63jstypes.h:321: warning: data definition has no type or storage class
64jstypes.h:322: parse error before "JSUint64"
65jstypes.h:322: warning: data definition has no type or storage class
66jstypes.h:338:2: #error 'sizeof(int)' not sufficient for platform use
67jstypes.h:379: parse error before "JSBool"
68jstypes.h:379: warning: data definition has no type or storage class
69jstypes.h:389: parse error before "JSPackedBool"
70jstypes.h:389: warning: data definition has no type or storage class
71In file included from jstypes.h:397,
72 from prmjtime.c:44:
73jsotypes.h:69: parse error before "uint"
74jsotypes.h:69: warning: data definition has no type or storage class
75jsotypes.h:72: parse error before "uintn"
76jsotypes.h:72: warning: data definition has no type or storage class
77jsotypes.h:73: parse error before "uint64"
78jsotypes.h:73: warning: data definition has no type or storage class
79jsotypes.h:79: parse error before "uint16"
80jsotypes.h:79: warning: data definition has no type or storage class
81jsotypes.h:80: parse error before "uint8"
82jsotypes.h:80: warning: data definition has no type or storage class
83jsotypes.h:83: parse error before "intn"
84jsotypes.h:83: warning: data definition has no type or storage class
85jsotypes.h:95: parse error before "int64"
86jsotypes.h:95: warning: data definition has no type or storage class
87jsotypes.h:106: parse error before "int16"
88jsotypes.h:106: warning: data definition has no type or storage class
89jsotypes.h:107: parse error before "int8"
90jsotypes.h:107: warning: data definition has no type or storage class
91In file included from prmjtime.c:47:
92jsprf.h:65: parse error before "JS_snprintf"
93jsprf.h:65: parse error before "JSUint32"
94jsprf.h:65: warning: data definition has no type or storage class
95jsprf.h:95: parse error before '*' token
96jsprf.h:95: parse error before "JSUint32"
97jsprf.h:95: `JSIntn' declared as function returning a function
98jsprf.h:97: parse error before "JS_sxprintf"
99jsprf.h:97: parse error before "f"
100jsprf.h:97: warning: data definition has no type or storage class
101jsprf.h:102: parse error before "JS_vsnprintf"
102jsprf.h:102: parse error before "JSUint32"
103jsprf.h:102: warning: data definition has no type or storage class
104jsprf.h:105: parse error before "JS_vsxprintf"
105jsprf.h:105: parse error before "f"
106jsprf.h:105: warning: data definition has no type or storage class
107jsprf.h:140: parse error before "JS_sscanf"
108jsprf.h:140: warning: data definition has no type or storage class
109In file included from prmjtime.h:42,
110 from prmjtime.c:48:
111jslong.h:66: parse error before "JSLL_MaxInt"
112jslong.h:66: warning: data definition has no type or storage class
113jslong.h:67: parse error before "JSLL_MinInt"
114jslong.h:67: warning: data definition has no type or storage class
115jslong.h:68: parse error before "JSLL_Zero"
116jslong.h:68: warning: data definition has no type or storage class
117jslong.h:275: parse error before '*' token
118In file included from prmjtime.c:48:
119prmjtime.h:55: parse error before "JSInt32"
120prmjtime.h:55: warning: no semicolon at end of struct or union
121prmjtime.h:56: warning: data definition has no type or storage class
122prmjtime.h:57: parse error before "tm_min"
123prmjtime.h:57: warning: data definition has no type or storage class
124prmjtime.h:58: parse error before "tm_hour"
125prmjtime.h:58: warning: data definition has no type or storage class
126prmjtime.h:59: parse error before "tm_mday"
127prmjtime.h:59: warning: data definition has no type or storage class
128prmjtime.h:60: parse error before "tm_mon"
129prmjtime.h:60: warning: data definition has no type or storage class
130prmjtime.h:61: parse error before "tm_wday"
131prmjtime.h:61: warning: data definition has no type or storage class
132prmjtime.h:62: parse error before "tm_year"
133prmjtime.h:62: warning: data definition has no type or storage class
134prmjtime.h:63: parse error before "tm_yday"
135prmjtime.h:63: warning: data definition has no type or storage class
136prmjtime.h:64: parse error before "tm_isdst"
137prmjtime.h:64: warning: data definition has no type or storage class
138prmjtime.h:73: parse error before "PRMJ_Now"
139prmjtime.h:73: warning: data definition has no type or storage class
140prmjtime.h:77: parse error before "PRMJ_LocalGMTDifference"
141prmjtime.h:77: warning: data definition has no type or storage class
142prmjtime.h:85: parse error before "PRMJ_DSTOffset"
143prmjtime.h:85: parse error before "local_time"
144prmjtime.h:85: warning: data definition has no type or storage class
145prmjtime.c:215: parse error before "tsecs"
146prmjtime.c:220: parse error before "PRMJ_LocalGMTDifference"
147prmjtime.c:274: parse error before "PRMJ_ToExtendedTime"
148prmjtime.c:274: parse error before "base_time"
149prmjtime.c: In function `PRMJ_ToExtendedTime':
150prmjtime.c:276: parse error before "exttime"
151prmjtime.c:279: `JSInt32' undeclared (first use in this function)
152prmjtime.c:279: (Each undeclared identifier is reported only once
153prmjtime.c:279: for each function it appears in.)
154prmjtime.c:283: `diff' undeclared (first use in this function)
155prmjtime.c:284: `tmp' undeclared (first use in this function)
156prmjtime.c:285: parse error before "_i"
157prmjtime.c:285: `tmp1' undeclared (first use in this function)
158prmjtime.c:285: `_i' undeclared (first use in this function)
159prmjtime.c:286: parse error before "_a"
160prmjtime.c:286: `_a' undeclared (first use in this function)
161prmjtime.c:286: `_b' undeclared (first use in this function)
162prmjtime.c:286: `JSUint32' undeclared (first use in this function)
163prmjtime.c:286: parse error before "_a1"
164prmjtime.c:286: `_a1' undeclared (first use in this function)
165prmjtime.c:286: `_a0' undeclared (first use in this function)
166prmjtime.c:286: parse error before numeric constant
167prmjtime.c:286: parse error before ')' token
168prmjtime.c:286: `_b1' undeclared (first use in this function)
169prmjtime.c:286: `_b0' undeclared (first use in this function)
170prmjtime.c:286: parse error before numeric constant
171prmjtime.c:286: parse error before ')' token
172prmjtime.c:286: `_y0' undeclared (first use in this function)
173prmjtime.c:286: `_y1' undeclared (first use in this function)
174prmjtime.c:286: `_y2' undeclared (first use in this function)
175prmjtime.c:286: `_y3' undeclared (first use in this function)
176prmjtime.c:286: parse error before numeric constant
177prmjtime.c:288: `g1970GMTMicroSeconds' undeclared (first use in this function)
178prmjtime.c:289: `low' undeclared (first use in this function)
179prmjtime.c:291: parse error before "_a"
180prmjtime.c:292: parse error before "_a"
181prmjtime.c:296: parse error before "_a"
182prmjtime.c:298: parse error before "_i"
183prmjtime.c:298: `exttime' undeclared (first use in this function)
184prmjtime.c:298: `base_time' undeclared (first use in this function)
185prmjtime.c:299: parse error before "_a"
186prmjtime.c:300: parse error before "_a"
187prmjtime.c: At top level:
188prmjtime.c:305: parse error before "PRMJ_Now"
189prmjtime.c:398: parse error before "PRMJ_DSTOffset"
190prmjtime.c:398: parse error before "local_time"
191prmjtime.c: In function `PRMJ_DSTOffset':
192prmjtime.c:400: parse error before "us2s"
193prmjtime.c:420: `JSInt32' undeclared (first use in this function)
194prmjtime.c:420: parse error before "diff"
195prmjtime.c:423: storage size of `prtm' isn't known
196prmjtime.c:429: `us2s' undeclared (first use in this function)
197prmjtime.c:430: parse error before "_a"
198prmjtime.c:430: `JSUint32' undeclared (first use in this function)
199prmjtime.c:430: `_negative' undeclared (first use in this function)
200prmjtime.c:430: `_a' undeclared (first use in this function)
201prmjtime.c:430: `local_time' undeclared (first use in this function)
202prmjtime.c:430: `_b' undeclared (first use in this function)
203prmjtime.c:433: `maxtimet' undeclared (first use in this function)
204prmjtime.c:453: `diff' undeclared (first use in this function)
205prmjtime.c:462: parse error before "_a"
206prmjtime.c:462: parse error before "_a1"
207prmjtime.c:462: `_a1' undeclared (first use in this function)
208prmjtime.c:462: `_a0' undeclared (first use in this function)
209prmjtime.c:462: parse error before numeric constant
210prmjtime.c:462: parse error before ')' token
211prmjtime.c:462: `_b1' undeclared (first use in this function)
212prmjtime.c:462: `_b0' undeclared (first use in this function)
213prmjtime.c:462: parse error before numeric constant
214prmjtime.c:462: parse error before ')' token
215prmjtime.c:462: `_y0' undeclared (first use in this function)
216prmjtime.c:462: `_y1' undeclared (first use in this function)
217prmjtime.c:462: `_y2' undeclared (first use in this function)
218prmjtime.c:462: `_y3' undeclared (first use in this function)
219prmjtime.c:462: parse error before numeric constant
220prmjtime.c: At top level:
221prmjtime.c:537: parse error before "tsecs"
222prmjtime.c: In function `PRMJ_basetime':
223prmjtime.c:540: `JSInt32' undeclared (first use in this function)
224prmjtime.c:540: parse error before "year"
225prmjtime.c:555: `result' undeclared (first use in this function)
226prmjtime.c:556: `result1' undeclared (first use in this function)
227prmjtime.c:557: `result2' undeclared (first use in this function)
228prmjtime.c:560: `base' undeclared (first use in this function)
229prmjtime.c:562: parse error before "_a"
230prmjtime.c:562: `JSUint32' undeclared (first use in this function)
231prmjtime.c:562: `_negative' undeclared (first use in this function)
232prmjtime.c:562: `_a' undeclared (first use in this function)
233prmjtime.c:562: `_b' undeclared (first use in this function)
234prmjtime.c:563: parse error before "_a"
235prmjtime.c:563: `tsecs' undeclared (first use in this function)
236prmjtime.c:567: parse error before "_a"
237prmjtime.c:570: `isleap' undeclared (first use in this function)
238prmjtime.c:572: parse error before "_a"
239prmjtime.c:573: `days' undeclared (first use in this function)
240prmjtime.c:575: `year' undeclared (first use in this function)
241prmjtime.c:576: parse error before "_a"
242prmjtime.c:585: parse error before "_a"
243prmjtime.c:586: `mday' undeclared (first use in this function)
244prmjtime.c:589: `month' undeclared (first use in this function)
245prmjtime.c:592: `yday' undeclared (first use in this function)
246prmjtime.c:607: parse error before "_a"
247prmjtime.c:607: parse error before "_a1"
248prmjtime.c:607: `_a1' undeclared (first use in this function)
249prmjtime.c:607: `_a0' undeclared (first use in this function)
250prmjtime.c:607: parse error before numeric constant
251prmjtime.c:607: parse error before ')' token
252prmjtime.c:607: `_b1' undeclared (first use in this function)
253prmjtime.c:607: `_b0' undeclared (first use in this function)
254prmjtime.c:607: parse error before numeric constant
255prmjtime.c:607: parse error before ')' token
256prmjtime.c:607: `_y0' undeclared (first use in this function)
257prmjtime.c:607: `_y1' undeclared (first use in this function)
258prmjtime.c:607: `_y2' undeclared (first use in this function)
259prmjtime.c:607: `_y3' undeclared (first use in this function)
260prmjtime.c:607: parse error before numeric constant
261prmjtime.c:608: parse error before "_a"
262prmjtime.c:612: `wday' undeclared (first use in this function)
263prmjtime.c:618: parse error before "_a"
264prmjtime.c:619: `hours' undeclared (first use in this function)
265prmjtime.c:620: parse error before "_a"
266prmjtime.c:620: parse error before "_a1"
267prmjtime.c:620: parse error before numeric constant
268prmjtime.c:620: parse error before ')' token
269prmjtime.c:620: parse error before numeric constant
270prmjtime.c:620: parse error before ')' token
271prmjtime.c:620: parse error before numeric constant
272prmjtime.c:621: parse error before "_a"
273prmjtime.c:625: parse error before "_a"
274prmjtime.c:626: `minutes' undeclared (first use in this function)
275prmjtime.c:627: parse error before "_a"
276prmjtime.c:627: parse error before "_a1"
277prmjtime.c:627: parse error before numeric constant
278prmjtime.c:627: parse error before ')' token
279prmjtime.c:627: parse error before numeric constant
280prmjtime.c:627: parse error before ')' token
281prmjtime.c:627: parse error before numeric constant
282prmjtime.c:628: parse error before "_a"
283prmjtime.c:630: `seconds' undeclared (first use in this function)
284prmjtime.c:632: `prtm' undeclared (first use in this function)
285prmjtime.c:633: `JSInt8' undeclared (first use in this function)
286prmjtime.c:633: parse error before "seconds"
287prmjtime.c:634: parse error before "minutes"
288prmjtime.c:635: parse error before "hours"
289prmjtime.c:636: parse error before "mday"
290prmjtime.c:637: parse error before "month"
291prmjtime.c:638: parse error before "wday"
292prmjtime.c:639: `JSInt16' undeclared (first use in this function)
293prmjtime.c:639: parse error before "year"
294prmjtime.c:640: parse error before "yday"
I can't show them all because there are too many (it goes past the maximum amount of text on a ms-dos window |
|
Chris Katko
Member #1,881
January 2002
|
REAL (wo)men write out circuits for ROM chips. Assembly. That's for lamers!
Ah, the good ol' days of circuit-based games. It's amazing how far we've come. "Materialistic things can't bring you happiness. Except Marshmellows--which are pretty much the same thing." |
|
curtis warren
Member #3,898
September 2003
|
Real men/women build their own cpu with the game in the registers |
|
Marcello
Member #1,860
January 2002
|
I had to use -XP_WIN instead of -XP_PC. Marcello |
|
curtis warren
Member #3,898
September 2003
|
It still doesn't work |
|
|
|