View Issue Details
59 [Z.C++] Backend/Core major N/A 2011-02-17 00:00 2011-10-08 12:17
zaimoni  
zaimoni  
normal  
assigned 0.0.7  
open  
none    
none  
  0.0.10  
long double IEEE emulation
Real hardware is all over the place. It looks very convenient to have our own software long double that tries to convert cleanly to the target hardware format. This needs its own compiled test driver. The target version is soft, and most likely will slide.
Notes
(0000022)
zaimoni   
2011-04-20 19:44   
target version bounced to 0.0.9 as expected
(0000024)
zaimoni   
2011-09-29 19:34   
target version bounced to 0.0.10





View Issue Details
43 [Z.C++] Feature Request minor N/A 2011-01-23 22:18 2011-10-08 12:17
zaimoni  
zaimoni  
normal  
assigned  
open  
none    
none  
  0.0.10  
Pseudorandom regression test driver framework
Again, cf. John Regehr's work.
Notes
(0000025)
zaimoni   
2011-10-08 12:16   
(edited on: 2011-10-08 12:16)
The general idea is something like a shell script loop: for n iterations, first have the test case generator write to a temporary file, then run the target program against the temporary file. The first test case that fails, fails the test and leaves behind the test case.

John Regehr used C with embedded Lua, but this could be varied as convenient.






View Issue Details
28 [Z.C++] Backend/Core minor N/A 2011-01-23 21:07 2011-10-08 12:05
zaimoni Intel  
zaimoni Windows  
normal  
assigned  
open  
none    
none  
  0.0.10  
ISO mode build process
The current process assumes the presence of the memory manager in Zaimoni.STL/core.RAM . This dependency locks down Z.C++ to being built by MingW32 3.4.x/4.2.x/4.3.x for Windows (the memory manager targets Windows. It does not build in higher versions of MingW32, as illegal assembly is generated.) We'd like this to build and pass tests with -DZAIMONI_FORCE_ISO on the command line, for the MingW32 compilers noted. This is a stage 1 change.
There are no notes attached to this issue.





View Issue Details
70 [Z.C++] Backend/Core tweak N/A 2011-09-29 20:03 2011-10-08 10:25
zaimoni  
zaimoni  
normal  
resolved  
fixed  
none    
none 0.0.10  
  0.0.10  
register_string variant that takes ownership
type_system.cpp has some call sites that can use this.
There are no notes attached to this issue.





View Issue Details
71 [Zaiband] Backend/Core block N/A 2011-10-02 02:31 2011-10-03 23:14
zaimoni  
zaimoni  
normal  
resolved  
fixed  
none    
none 3.0.10  
  3.0.10  
debug option DEBUG_AUTOSAVE
This macro, when defined, should cause all "interesting" commands that use energy to auto-save at every move. This should make it easier to get savegames that reproduce crash bugs, etc.
There are no notes attached to this issue.





View Issue Details
69 [Z.C++] Backend/Core tweak N/A 2011-09-29 19:40 2011-10-02 22:10
zaimoni  
zaimoni  
normal  
resolved  
fixed  
none    
none  
  0.0.10  
localize the override of the pedantic option for ZParser
const bool pedantic_backup isn't exception-safe. Use the Perl localization emulation class, and also move this outside of the loop.
There are no notes attached to this issue.





View Issue Details
68 [Z.C++] Pre-release block have not tried 2011-09-29 19:37 2011-10-01 01:41
zaimoni  
zaimoni  
normal  
resolved  
fixed  
none    
none  
  0.0.9  
construct *.zip/*tar.bz2
the usual eight
There are no notes attached to this issue.





View Issue Details
67 [Z.C++] Pre-release block have not tried 2011-09-29 19:35 2011-09-30 02:04
zaimoni  
zaimoni  
normal  
resolved  
fixed  
none    
none 0.0.9  
  0.0.9  
Skim all changed source files for further line of code compression/object file size optimization
I.e., complete Stage 3
There are no notes attached to this issue.





View Issue Details
62 [Z.C++] Backend/Core major N/A 2011-04-15 03:21 2011-09-29 19:31
zaimoni  
zaimoni  
normal  
resolved 0.0.7  
fixed  
none    
none 0.0.9  
  0.0.9  
extension __zcc_linkage
To make the following testable, we need a compile-time extension: __zcc_linkage * -1: not declared in this scope * 0: no linkage * 1: internal linkage * 2: external linkage, own-language * 3: external linkage, C The above is a compile-time constant suitable for static assertions. ==== C linkage: external, internal, no [C1X 6.2.2p2] * static |-> internal [C1X 6.2.2p3] * extern [C1X 6.2.2p4] ** no prior definition |-> external linkage ** prior definition: remap no to external; copy internal, external *** should we warn on copying internal? [does this happen in real code?] * declaration of a function with no specifier: pretend it's declared with extern [C1X 6.2.2p5] * declaration of an object at file scope, no specifier: external linkage [C1X 6.2.2p5] * no linkage [C1X 6.2.2p6] ** identifier that isn't an object or function ** identifier that is a function parameter ** block-scope identifier for an object not declared extern ** same identifier used with both internal and external linkage: undefined behavior (Z.C++ should error out) [C1X 6.2.2p7] C++0X linkage: external, internal, no [C++0X 3.5p2 [basic.link]] * namespace scope: name has internal linkage when [C++0X 3.5p3] ** variable, function, or function template that is explicitly static ** variable that is const or constexpr, and neither explicitly extern nor priorly declared to have external linkage ** data member of an anonymous union [C++0X 3.5p4] * unnamed namespaces, and all namespaces declared within them at any depth, have internal linkage. * other namespaces have external linkage * a name with namespace scope, that has not already been given linkage, gets the linkage of the enclosing namespace if it is the name of ** a variable ** a function ** a named class (cf. p9) ** an unnamed class defined in a typedef in which the class has the typedef name for linkage purposes (cf. 7.1.3p9) ** a named enumeration (cf. 7.2) ** an unnamed enumeration defined in a typedef declaration in which the enumeration has the typedef name for linkage purposes (cf. 7.1.3) ** an enumerator belonging to an enumeration with linkage ** a template [C++0X 3.5p5] * a member function, static data member, named class or enumeration of class scope, or an unnamed class or enumeration defined in a class-scope typedef declaration such that the class or enumeration has the typedef name for linkage purposes, has external linkage if the name of the class has external linkage. [C++0X 3.5p6] * name of a function declared in block scope, and name of a variable declared by a block scope extern declaration, have linkage. ** If there is a visible prior declaration with linkage having same name and type, ignoring entities declared outside of the innermost enclosing namespace scope, the block scope declaration declares the same entity and receives the previous linkage. If there is more than one such declaration, the program is ill-formed. [C++0X 3.5p7] * a block scope declaration of an entity with linkage is not found to refer to some other declaration, then that entity is a member of the innermost enclosing namespace. But it does not introduce the member name in its namespace scope. [C++0X 3.5p8] * names not covered by the above have no linkage * except as above, a name declared at block scope has no linkage * a type is said to have linkage iff ** it is a class or enumeration type that is named, or has a name for linkage purposes, and the name has linkage ** unnamed class or enumeration member of a class with linkage ** specialization of a class template [this should be forced to have external linkage; 14.3.1 and 14.3.2 handle template argument linkage] ** fundamental type ** compound type other than a class or enumeration, compounded exclusively from types that have linkage ** cv-qualified version of a type with linkage * type without linkage shall not be used as the type of a variable or function with external linkage unless ** entity has C language linkage (7.5) ** entity is declared within an unnamed namespace ** entity is not ODR-used (3.2), or is defined in the same translation unit. [classes that have linkage, may contain members with no linkage] [C++0X 3.5p9] * Two names that are the same (p3), and that are declared in different scopes shall denote the same variable, function, enumerator, template, or namespace if ** both names have external linkage, or both names have internal linkage and are declared in the same translation unit, and ** both names refer to members of the same namespace, or to members, not by inheritance, of the same class, and ** when both names denote functions, the parameter-type-lists of the functions (8.3.5) are identifical, and ** when both names denote function templates, the signatures (14.5.6.1) are the same. [C++0X 3.5p10] * After all adjustments of types (in which typedefs are replaced by their definitions), the types specified by all declarations referring to a a given variable or function shall be identical, except that declarations for an array object can differ by the presence or absence of a major array bound (8.3.4). Violating this doesn't require a diagnostic. use linkage-specifications (extern "C", etc.; cf. 7.5) to link to non-C++ declarations.
Notes
(0000023)
zaimoni   
2011-05-22 20:07   
Placeholder: use -2 for "unimplemented"

Note that *.zo format needs to store type information for objects, so it has to know about type definitions even with C's no-linkage.





View Issue Details
63 [Z.C++] Pre-release block N/A 2011-04-20 19:40 2011-05-02 13:53
zaimoni  
zaimoni  
high  
resolved 0.0.8  
fixed  
none    
none 0.0.8  
  0.0.8  
construct *.zip/*tar.bz2
Z.C++.0.0.8.dbg.tar.bz2 Z.C++.0.0.8.dbg.zip Z.C++.0.0.8.rel.tar.bz2 Z.C++.0.0.8.rel.zip Z.C++.0.0.8.src.tar.bz2 Z.C++.0.0.8.src.zip Z.C++.0.0.8.tests.tar.bz2 Z.C++.0.0.8.tests.zip
There are no notes attached to this issue.





View Issue Details
66 [Z.C++] Pre-release block have not tried 2011-04-21 17:25 2011-04-28 23:22
zaimoni  
zaimoni  
high  
resolved 0.0.8  
fixed  
none    
none 0.0.8  
  0.0.8  
Regenerate help file for zcc
POSIX option -E added (preprocess only)
There are no notes attached to this issue.





View Issue Details
64 [Z.C++] Pre-release block have not tried 2011-04-20 19:41 2011-04-28 23:21
zaimoni  
zaimoni  
high  
resolved 0.0.8  
fixed  
none    
none 0.0.8  
  0.0.8  
Adjust _version.h
needs to be for 0.0.8; also catch folder changes
There are no notes attached to this issue.





View Issue Details
65 [Z.C++] Pre-release block N/A 2011-04-20 19:43 2011-04-28 21:44
zaimoni  
zaimoni  
high  
resolved 0.0.8  
fixed  
none    
none 0.0.8  
  0.0.8  
Skim all changed source files for further line of code compression/object file size optimization
the usual process.
There are no notes attached to this issue.





View Issue Details
18 [Z.C++] Backend/Core minor N/A 2011-01-11 04:05 2011-04-16 17:12
zaimoni  
zaimoni  
normal  
resolved  
fixed  
none    
none 0.0.8  
  0.0.8  
Remove normal-form imposer in CPP_notice_class_struct_union_enum, C99_notice_struct_union_enum
The normal-form we apply to const/volatile isn't obviously maintainable as zcc actually reacts to more parts of the declaration. It also unexpectedly changes the textual representation of the program. Simply removing the normal form imposer triggers asserts.
There are no notes attached to this issue.





View Issue Details
52 [Z.C++] Backend/Core minor have not tried 2011-02-04 09:40 2011-04-15 02:28
zaimoni  
zaimoni  
normal  
resolved 0.0.7  
fixed  
none    
none 0.0.8  
  0.0.8  
Wire in thread_local storage class properly
* _Thread_Local (C1X) and thread_local (C++0X) need to be at the same array slot in C99_decl_specifiers and CPP0X_decl_specifiers * Then the users of these C arrays (C99_decl_specifier_scanner and CPP0X_decl_specifier_scanner) need to actually pay attention to thread-local storage class. (They're compatible with static and extern, but no other storage classes.)
Notes
(0000020)
zaimoni   
2011-02-14 08:32   
(edited on: 2011-04-09 09:15)
Checklist for test case building out:

We need language-specific tests for dealing with extern/static default issues.

more test cases
* Pass_thread_local
* Pass_static_thread_local
* Pass_extern_thread_local
(above must not exist, integrate into other tests)
!** Pass_enum_def.in
!** Pass_struct_def.in
!** Pass_union_def.in
!** Pass_class_def.hpp
!** Pass_enum_def2.hpp
!** Pass_struct_def2.hpp
!** Pass_union_def2.hpp
!** Pass_class_def2.hpp
!** Pass_enum_def_decl.in [missing]
!** Pass_class_def_decl.hpp

Ignore these four, intent is subsumed by Pass_.._def2.hpp
** Pass_enum_def_decl2.hpp [missing]
** Pass_class_def_decl2.hpp [missing]
** Pass_struct_def_decl2.hpp [missing]
** Pass_union_def_decl2.hpp [missing]

These exist but don't have .in files
!** Pass_struct_def_decl.h/hpp
!** Pass_union_def_decl.h/hpp

these need to be created
* Error_thread_local_typedef.in
* Error_extern_thread_local_typedef.in
* Error_static_thread_local_typedef.in
* Error_extern_static_thread_local_typedef.in

(0000021)
zaimoni   
2011-02-27 02:18   
[marker to make date sort work]





View Issue Details
1 [Zaiband] Backend/Core minor N/A 2011-01-09 23:33 2011-02-17 03:17
zaimoni  
zaimoni  
normal  
assigned  
open  
none    
none  
  Vaporware  
Super ghosts
Passwall monsters that can get triple moves on the player, should be very deadly. Ghosts are the earliest examples of these. Note: this will cause Zaiband 3.0.8 to be alpha, as the monster list will need rebalancing. Problem: If the player is next to a wall, the passwall monster should be getting free melee attacks once it gets a proper setup: @#G @G# [move] @G# [attack] @#G [back off] Note that since the G is in a wall at all times, that the only effects that can hit in V mechanics are Line of Sight (LoS) and melee. [Both missiles and ball/bolt spells do not penetrate walls.] Heng(band) mechanics is not a panacea for the player, since even then walls block further propagation of ball/bolt/missile effects. In diagram below, a ball spell detonating at x cannot reach the Xorn X even in Heng mechanics; the ghost G can be tagged only with Heng mechanics. .x. @#G .#X [Note: pushing off to vaporware because I haven't decided how to code the triple-move detection yet. I had to make energy gain a public stat, but prototyping suggests this could be arranged to be an "emergent" feature, rather than specifically coded.]
There are no notes attached to this issue.





View Issue Details
60 [Zaiband] Backend/Core minor have not tried 2011-02-17 00:45 2011-02-17 03:16
zaimoni  
zaimoni  
normal  
assigned 3.0.9  
open  
none    
none  
  3.0.10  
project_p : move blind messages to table
these messages are typically first first. Lines of code reduction.
There are no notes attached to this issue.





View Issue Details
54 [Zaiband] Backend/Core minor have not tried 2011-02-05 21:38 2011-02-17 03:15
zaimoni  
zaimoni  
normal  
resolved 3.0.9  
fixed  
none    
none 3.0.10  
  3.0.10  
Migrate stun, confusion, fear counters to agent_type
this affects: monster_type: byte stunned; /**< Monster is stunned */ byte confused; /**< Monster is confused */ byte monfear; /**< Monster is afraid */ timed_effects: TMD_STUN,TMD_AFRAID,TMD_CONFUSED This needs a new array core_timed in agent_type. It would be good to make player/monster effects consistent while we're at it, but don't overexert there.
Notes
(0000019)
zaimoni   
2011-02-11 20:29   
Confusion done. Adding hasted and slowed to the effects list to convert.





View Issue Details
57 [Z.C++] Backend/Core minor N/A 2011-02-08 12:23 2011-02-16 23:40
zaimoni  
zaimoni  
normal  
resolved 0.0.7  
fixed  
none    
none 0.0.8  
  0.0.8  
making defining INSTALL_TO macro optional
This optimizes the default build from SVN checkout.
There are no notes attached to this issue.





View Issue Details
55 [Z.C++] Backend/Core minor N/A 2011-02-06 18:15 2011-02-14 19:11
zaimoni  
zaimoni  
normal  
resolved 0.0.7  
fixed  
none    
none 0.0.8  
  0.0.8  
Convert this kind of fragment to a function and condense
char* tmp2 = _new_buffer_nonNULL_throws<char>(ZAIMONI_LEN_WITH_NULL(tmp3.second)); memmove(tmp2,tmp_front.data()+tmp3.first,tmp3.second); tmp.index_tokens[0].token.first = tmp2; should be tmp.index_tokens[0].token.first = C_string_make(tmp_front.data()+tmp3.first,tmp3.second);
There are no notes attached to this issue.





View Issue Details
51 [Z.C++] Backend/Core tweak always 2011-02-04 09:20 2011-02-11 11:02
zaimoni  
zaimoni  
normal  
resolved 0.0.7  
fixed  
none    
none 0.0.8  
  0.0.8  
Warning suppression, Zaimoni.STL/Core.RAM/memory.cpp
memory.cpp:922: warning: unused parameter 'tracer' memory.cpp:934: warning: unused parameter 'tracer' memory.cpp:954: warning: unused parameter 'tracer' memory.cpp:960: warning: unused parameter 'tracer'
There are no notes attached to this issue.





View Issue Details
56 [Zaiband] Backend/Core minor N/A 2011-02-07 20:39 2011-02-09 07:31
zaimoni  
zaimoni  
normal  
resolved 3.0.9  
fixed  
none    
none 3.0.10  
  3.0.10  
Relocate extract_energy reference array to a static member of agent_type from global
It always uses the speed member anyway.
There are no notes attached to this issue.





View Issue Details
50 [Z.C++] Backend/Core minor N/A 2011-01-29 05:17 2011-02-08 12:22
zaimoni  
zaimoni  
normal  
resolved 0.0.7  
fixed  
none    
none 0.0.8  
  0.0.8  
Change default location for zcc, z_cpp executables to bin subdirectory of top-level source
This requires counter-changes to the testing subdirectory, but gets the following benefits * failing to adjust the INSTALL_TO macro no longer breaks default builds * don't need to edit test case drivers during release process
There are no notes attached to this issue.





View Issue Details
48 [Z.C++] Backend/Core tweak N/A 2011-01-26 09:12 2011-02-06 08:21
zaimoni  
zaimoni  
normal  
resolved 0.0.7  
fixed  
none    
none 0.0.8  
  0.0.8  
MetaToken<T>::release() as alternative to MetaToken<T>::TransferOutAndNULL
This would help make ZParser.cpp more concise. It's not a functional replacement, as TransferOutAndNULL does memory management on the target.
Notes
(0000018)
zaimoni   
2011-02-06 08:21   
net lines of code change -1





View Issue Details
53 [Zaiband] Backend/Core minor N/A 2011-02-04 10:51 2011-02-05 21:04
zaimoni  
zaimoni  
normal  
resolved 3.0.9  
fixed  
none    
none 3.0.10  
  3.0.10  
Complete imposing zaimoni::simple_lock on uses of character_icky
C++ conversion; this foolproofs the use of character_icky as a fake lock variable.
There are no notes attached to this issue.





View Issue Details
49 [Z.C++] Backend/Core tweak N/A 2011-01-27 01:14 2011-02-04 09:14
zaimoni  
zaimoni  
normal  
resolved 0.0.7  
fixed  
none    
none 0.0.8  
  0.0.8  
Switch GetCCharacterLiteralAt to static, with return type char* rather than a reference parameter
This should reduce the line count slightly.
There are no notes attached to this issue.





View Issue Details
46 [Z.C++] Pre-release block N/A 2011-01-25 02:50 2011-01-29 23:03
zaimoni  
zaimoni  
normal  
resolved  
fixed  
none    
none 0.0.7  
  0.0.7  
construct *.zip/*tar.bz2
this also verifies the build instructions
Notes
(0000015)
zaimoni   
2011-01-25 02:52   
Target compiler/options
* MingW32
** 3.4.5/release
** 3.4.5/debug
** 4.2.1/release
** 4.2.1/debug
** 4.3.3/release
** 4.3.3/debug

we want the usual src, debug-binary windows, release-binary windows, test case archives





View Issue Details
45 [Z.C++] Pre-release block have not tried 2011-01-25 02:48 2011-01-27 02:53
zaimoni  
zaimoni  
normal  
resolved  
fixed  
none    
none 0.0.7  
  0.0.7  
Adjust _version.h
* version # to 0.0.7 * relocate INSTALL_TO macro to here to make adjusting the full install path easier
Notes
(0000017)
zaimoni   
2011-01-27 02:53   
ignoring INSTALL_TO change for now





View Issue Details
44 [Z.C++] Pre-release block N/A 2011-01-25 02:46 2011-01-27 02:30
zaimoni  
zaimoni  
normal  
resolved  
fixed  
none    
none 0.0.7  
  0.0.7  
Skim all changed source files for further line of code compression/object file size optimization
General stage 3 cleanup.
Notes
(0000016)
zaimoni   
2011-01-26 11:10   
One file left: CSupport.cpp.in





View Issue Details
47 [Z.C++] Backend/Core minor N/A 2011-01-25 06:17 2011-01-25 06:17
zaimoni  
 
normal  
new  
open  
none    
none  
  Vaporware  
Target machine string encodings
The standards do not dictate the representation of ordinary string literals. The implemented default is "either the code point fits in an unsigned char, or die". We should at least support UTF8 as well. There probably are similar issues with wchar_t-based string literals.
There are no notes attached to this issue.





View Issue Details
17 [Z.C++] Backend/Core tweak N/A 2011-01-11 00:38 2011-01-25 04:44
zaimoni  
zaimoni  
low  
resolved  
fixed  
none    
none 0.0.7  
  0.0.7  
INC_INFORM wants a variant for weak_token
INC_INFORM(const char* const,size_t) is being called with both values from the same weak_token in many places. This is definitely a source code size reduction, and may be an object file size reduction.
There are no notes attached to this issue.





View Issue Details
23 [Z.C++] Backend/Core major have not tried 2011-01-14 03:30 2011-01-25 02:35
zaimoni  
zaimoni  
high  
resolved  
fixed  
none    
none 0.0.7  
  0.0.7  
const/volatile struct test case suite
actually exercise declaring const/volatile struct-typed variables. This does imply building out the backend support for them.
Notes
(0000012)
zaimoni   
2011-01-23 20:17   
(edited on: 2011-01-24 18:02)
Augmentation targets:
* Pass_struct_def.in (then regenerate and update) [done]
* new file Pass_struct_def2.hpp to test depth-1 namespaces
* new file Error_struct_runon_def.in (regenerate and update) [done]

Cf. enum versions for general sense of what to do.






View Issue Details
22 [Z.C++] Backend/Core major N/A 2011-01-14 03:29 2011-01-25 02:35
zaimoni  
zaimoni  
high  
resolved  
fixed  
none    
none 0.0.7  
  0.0.7  
const/volatile union test case suite
actually exercise declaring const/volatile union-typed variables. This does imply building out the backend support for them.
Notes
(0000010)
zaimoni   
2011-01-23 02:07   
(edited on: 2011-01-24 18:02)
Augmentation targets:
* Pass_union_def.in (then regenerate and update) [done]
* new file Pass_union_def2.hpp to test depth-1 namespaces
* new file Error_union_runon_def.in (regenerate and update) [done]

Cf. enum versions for general sense of what to do.

(0000013)
zaimoni   
2011-01-23 20:21   
Initial testing hit problems:
C:\CPP_App\Z.C++\tests\zcc.in\decl.C99>..\..\..\zcc Error_union_runon_def.h
size_t kleene_star_core<classifier>::operator[](size_t) const [with classifier =
 size_t (*)(const parse_tree&)]
kleene_star.hpp:29
size()>i

C:\CPP_App\Z.C++\tests\zcc.in\decl.C99>..\..\..\zcc Error_union_runon_def.hpp
size_t kleene_star_core<classifier>::operator[](size_t) const [with classifier =
 size_t (*)(const parse_tree&)]
kleene_star.hpp:29
size()>i

C:\CPP_App\Z.C++\tests\zcc.in\decl.C99>..\..\..\zcc Pass_union_def.hpp
size_t kleene_star_core<classifier>::operator[](size_t) const [with classifier =
 size_t (*)(const parse_tree&)]
kleene_star.hpp:29
size()>i

C:\CPP_App\Z.C++\tests\zcc.in\decl.C99>..\..\..\zcc Pass_union_def.h
size_t kleene_star_core<classifier>::operator[](size_t) const [with classifier =
 size_t (*)(const parse_tree&)]
kleene_star.hpp:29
size()>i





View Issue Details
24 [Z.C++] Backend/Core major have not tried 2011-01-14 03:31 2011-01-25 02:34
zaimoni  
zaimoni  
high  
resolved  
fixed  
none    
none 0.0.7  
  0.0.7  
const/volatile class test case suite
actually exercise declaring const/volatile class-typed variables. This does imply building out the backend support for them.
Notes
(0000014)
zaimoni   
2011-01-23 23:36   
(edited on: 2011-01-24 18:02)
Augmentation targets:
* Pass_class_def.cpp [done]
* new file Pass_class_def2.hpp to test depth-1 namespaces
* new file Error_class_runon_def.hpp [done]

Cf. enum versions for general sense of what to do.






View Issue Details
42 [Z.C++] Backend/Core major N/A 2011-01-23 22:15 2011-01-23 22:20
zaimoni  
 
normal  
new  
open  
none    
none  
  0.1.0  
enough of asm() directives to represent *NIX utilities true, false
This refers to the C++ standard's very implementation-defined asm() directive, which takes a C string literal. The general plan is to use these directives, and their analogs in implementation-reserved namespaces, to implement inline assembly that reasonably directly corresponds to *.zo file content.
There are no notes attached to this issue.





View Issue Details
41 [Z.C++] General minor N/A 2011-01-23 22:09 2011-01-23 22:09
zaimoni  
 
normal  
new  
open  
none    
none  
  Vaporware  
Exotic hardware feature catalog
So we know what Z.C++ could have to cross-compile to.
There are no notes attached to this issue.





View Issue Details
40 [Z.C++] General minor N/A 2011-01-23 22:05 2011-01-23 22:05
zaimoni  
 
normal  
new  
open  
none    
none  
  Vaporware  
Target languages
Placeholder so we don't forget what languages are interesting. * C * C++ * FORTRAN 66, 77, 90, ... (implement these in sequence) * ALGOL68 * Haskell98 More languages are possible.
There are no notes attached to this issue.





View Issue Details
39 [Z.C++] Backend/Core major N/A 2011-01-23 21:59 2011-01-23 21:59
zaimoni  
 
normal  
new  
open  
none    
none  
  0.1.0  
Enough of *.zo format to represent *NIX utilities true, false
*.zo is scheduled to be the internal object format for Z.C++ . We'll have to be able to export to more conventional formats (e.g., OMF, ELF) that do not have the support for link-time program correctness features Z.C++ needs.
There are no notes attached to this issue.





View Issue Details
38 [Z.C++] Feature Request minor N/A 2011-01-23 21:49 2011-01-23 21:50
zaimoni  
 
normal  
new  
open  
none    
none  
  Vaporware  
parallel versions of the Python helper scripts in the tools directory, in other scripting languages.
To avoid language lock-in for these.
There are no notes attached to this issue.





View Issue Details
37 [Z.C++] Feature Request minor N/A 2011-01-23 21:44 2011-01-23 21:44
zaimoni  
 
normal  
new  
open  
none    
none  
  Vaporware  
CLang: __has_feature magic macro
Implement this if we actually have something relevant.
There are no notes attached to this issue.





View Issue Details
36 [Z.C++] Feature Request minor N/A 2011-01-23 21:43 2011-01-23 21:43
zaimoni  
 
normal  
new  
open  
none    
none  
  Vaporware  
CLang: __has_builtin magic macro
Implement this if we actually have something relevant
There are no notes attached to this issue.





View Issue Details
35 [Z.C++] Backend/Core major N/A 2011-01-23 21:39 2011-01-23 21:41
zaimoni  
 
normal  
new  
open  
none    
none  
  0.1.0  
Compile *NIX utilities true and false to at least one executable format.
Probably PE (Windows), although ELF is also high on the list. For *NIX, don't ignore the older formats (e.g., aout).
There are no notes attached to this issue.





View Issue Details
34 [Z.C++] Backend/Core major N/A 2011-01-23 21:34 2011-01-23 21:40
zaimoni  
 
normal  
new  
open  
none    
none  
  0.1.0  
C/C++ no-template function declaration parsing
Need this for int main, obviously.
There are no notes attached to this issue.





View Issue Details
33 [Z.C++] Feature Request minor N/A 2011-01-23 21:29 2011-01-23 21:29
zaimoni  
 
normal  
new  
open  
none    
none  
  Vaporware  
Pseudorandom test driver for arithmetic -- zcc, z_cpp
Cf. John Regehr's work. It's based on Lua, but other implementations should be fine.
There are no notes attached to this issue.





View Issue Details
32 [Z.C++] Feature Request minor N/A 2011-01-23 21:25 2011-01-23 21:25
zaimoni  
 
normal  
new  
open  
none    
none  
  Vaporware  
Enforce restrictions on incoming macro parameters for INT.._C and UINT..._C families in stdint.h/cstdint
The standards require a single unsuffixed integer literal token. This would use a new ZCC pragma.
There are no notes attached to this issue.





View Issue Details
31 [Z.C++] Backend/Core minor have not tried 2011-01-23 21:18 2011-01-23 21:18
zaimoni  
 
normal  
new  
open  
none    
none  
  Vaporware  
Cross-platform floating point arithmetic emulation
A generic IEEE 754 extended format; basically a long double emulation based on uintmax_t. comp.lang.fortran suggests there's quite a bit of hardware out there that isn't even remotely close to IEEE.
There are no notes attached to this issue.





View Issue Details
30 [Z.C++] Backend/Core minor have not tried 2011-01-23 21:11 2011-01-23 21:12
zaimoni  
 
normal  
new  
open  
none    
none  
  Vaporware  
Build on MSVC 10.0
MSVC 10, express edition -- free, major compiler.
There are no notes attached to this issue.





View Issue Details
29 [Z.C++] Backend/Core minor N/A 2011-01-23 21:09 2011-01-23 21:11
zaimoni  
 
normal  
new  
open  
none    
none  
  Vaporware  
Build on Knoppix
Knoppix has a live DVD that ships with GCC. Make Z.C++ build here.
There are no notes attached to this issue.





View Issue Details
19 [Z.C++] Backend/Core major N/A 2011-01-11 10:58 2011-01-23 02:09
zaimoni  
zaimoni  
high  
resolved  
fixed  
none    
none 0.0.7  
  0.0.7  
const/volatile enum test case suite
actually exercise declaring const/volatile enum-typed variables. This does imply building out the backend support for them.
Notes
(0000005)
zaimoni   
2011-01-20 22:08   
(edited on: 2011-01-22 21:17)
Augmentation targets:
* Pass_enum_def.in (then regenerate and update) [done]
* new file Pass_enum_def2.hpp to test depth-1 namespaces
* warnings and errors as needed

exhaustive-check:
* Pass: ringing changes on extern [const] [volatile] [done]
* Pass: ringing changes on uninitialized static [volatile] [done]
** handle use of uninitialized data during program flow analysis
* Error: uninitialized static const (no defined way to modify to a valid state with a trivial constructor), downgrade to warning with --pedantic as this is legal but useless
** deferred. Proper initializer parsing isn't going to happen in time.
* note default linkage issues...plain const uninitialized is fine with default-extern, but an error with default-static. Definitely a cross-language compatibility warning when legal.

(0000006)
zaimoni   
2011-01-22 01:46   
(edited on: 2011-01-22 01:47)
static/extern testing dies on extern good_test x1;
=====
C:\CPP_App\Z.C++\tests\zcc.in\decl.C99>..\..\..\zcc Pass_enum_def.h
Pass_enum_def.h:10: error: declaration disoriented by missing , (C99 6.7p1)
Pass_enum_def.h:10: error: declarator missing (C99 6.7p1)
void parse_tree::DeleteNSlotsAt(size_t, size_t) [with unsigned int arg_idx = 0u]

ParseTree.hpp:237
0<n

C:\CPP_App\Z.C++\tests\zcc.in\decl.C99>..\..\..\zcc Pass_enum_def.hpp
Pass_enum_def.hpp:10: error: declaration disoriented by missing , (C++98 7p1)
Pass_enum_def.hpp:10: error: declarator missing (C++98 7p1)
void parse_tree::DeleteNSlotsAt(size_t, size_t) [with unsigned int arg_idx = 0u]

ParseTree.hpp:237
0<n

(0000007)
zaimoni   
2011-01-22 07:43   
New file Error_enum_runon_def.in in tests/zcc.in/decl.C99 . Gives us test coverage for an error case.
(0000008)
zaimoni   
2011-01-22 19:54   
static const uninitialized is recoverable using const_cast -- so just warn?
(0000009)
zaimoni   
2011-01-22 20:10   
(edited on: 2011-01-22 21:15)
new files planned: Warn_enum_static_const.in, Warn_enum_static_const2.in .

[Except...we don't have good initializer support set so would have problems *not* warning in the initialized case.]

(0000011)
zaimoni   
2011-01-23 02:09   
deferring static const tests to when the parser is caught up.





View Issue Details
26 [Z.C++] Backend/Core minor have not tried 2011-01-23 02:03 2011-01-23 02:04
zaimoni  
 
normal  
new  
open  
none    
none  
  Vaporware  
Warn for static const declarations of variables, whose types have trivial constructors, without initializers
The variable isn't usable (undefined behavior) until it's initialized to a valid value, and it takes a const_cast to do that. const_cast could fail at runtime if the variable lands in a read-only section.
There are no notes attached to this issue.





View Issue Details
25 [Z.C++] Backend/Core major N/A 2011-01-22 21:23 2011-01-22 21:23
zaimoni  
 
normal  
new  
open  
none    
none  
  Vaporware  
Basic initializer support and recognition for declarations
Actually check that initializers are expressions. A later stage would associate them with their declarations.
There are no notes attached to this issue.





View Issue Details
21 [Zaiband] Backend/Core block N/A 2011-01-12 09:48 2011-01-14 06:10
zaimoni  
zaimoni  
normal  
resolved  
fixed  
none    
none 3.0.10  
  3.0.10  
relocate player object awareness to player_type from object_kind
New field: byte* object_knowledge; Want to load this, and inventory, with player information rather than beforehand.
Notes
(0000004)
zaimoni   
2011-01-14 06:10   
We lost masking of scroll flavors before identification, as an ease-of-implementation decision.





View Issue Details
3 [Zaiband] Backend/Core block N/A 2011-01-09 23:35 2011-01-12 08:39
zaimoni  
zaimoni  
normal  
resolved  
fixed  
none    
none 3.0.10  
  3.0.10  
Force "know all monster information" option on?
Need to make a style decision -- exactly what information should be visible in-game (as opposed to by examining the edit files). I'm strongly tempted to just eliminate the whole cheat option "know all monster information" (and the corresponding monsters learn/monsters cheat AI options). Of course, this does make the self-healing problem more acute.
Notes
(0000003)
zaimoni   
2011-01-12 08:39   
Looks like this was already implemented when bootstrapping Mantis.





View Issue Details
8 [Zaiband] Backend/Core crash N/A 2011-01-09 23:44 2011-01-11 10:51
zaimoni  
zaimoni  
high  
resolved 3.0.9  
fixed  
none    
none 3.0.10  
  3.0.10  
stabilize line of sight
We have problems with the precise permissive field of view algorithm: crash-on-look-at-wrong-square.
Notes
(0000002)
zaimoni   
2011-01-11 10:51   
Out-of-bounds C array access when the target viewing square was out of range.





View Issue Details
15 [Z.C++] Backend/Core major N/A 2011-01-10 00:16 2011-01-11 04:02
zaimoni  
zaimoni  
high  
resolved  
fixed  
none    
none 0.0.7  
  0.0.7  
standardize struct/class/union/enum parsing
We'd like struct/class/union/enum parsing to be a function call so that it can be done from within function parameter lists, etc. Migration remaining: * C: UNION_NAME, UNION_NAMED_DEF, UNION_ANON_DEF, STRUCT_NAME, STRUCT_NAMED_DEF, STRUCT_ANON_DEF; then eliminate dead switch * C++: UNION_NAME, UNION_NAMED_DEF; then eliminate dead switch
Notes
(0000001)
zaimoni   
2011-01-10 04:08   
C++ changes completed.





View Issue Details
7 [Zaiband] Backend/Core minor N/A 2011-01-09 23:43 2011-01-10 09:50
zaimoni  
 
normal  
new  
open  
none    
none  
  Vaporware  
Redo store interface to handle indefinite quantities
Specifically, the Home: its space limitation is too restrictive, currently. Cf. "Tales of the Bold Rogue"/Eddie Grove, at http://groups.google.com/group/rec.games.roguelike.angband/browse_thread/thread/bebff4c9dadf9479/a3ab6062c598226a [^] . On the flip side, stores should *not* stock anything which the player has "too many of".
There are no notes attached to this issue.





View Issue Details
6 [Zaiband] Backend/Core major N/A 2011-01-09 23:37 2011-01-10 09:50
zaimoni  
 
normal  
new  
open  
none    
none  
  Vaporware  
Do not send ineffective monsters where the player is
Cf. RGRD flamewar "Combat Realism vs. Playability" at http://groups.google.com/group/rec.games.roguelike.development/browse_thread/thread/2263b2828a6a5567/b88e480ef29246ea [^] . While I don't mind effective armor in Zaiband (and thus the hp system is fine as-is), throwing known-ineffective monsters at the player is not particularly reasonable. This has two parts: * accurate melee and ranged power rating (with feedback from the kill counts; breeders and group-generated monsters will need different rating heuristics) * Actually using that power rating to determine whether the monster would even be sent into a DL. This does not apply to initial level generation, only monsters spawned afterwards (reverse-Word of Recalled?).
There are no notes attached to this issue.





View Issue Details
5 [Zaiband] Backend/Core minor N/A 2011-01-09 23:36 2011-01-10 09:49
zaimoni  
 
normal  
new  
open  
none    
none  
  Vaporware  
Informative telepathy
Consider whether telepathy should give more information than just where monsters are. [This goes under unfair death prevention, but is rather wargame-like in effect.] Note that this reduces cheating AI quite a bit. Possibilities include * detailed attack information [de-cheats the AI a lot] * resistances [although elementals and exotic hounds may be a bit skewed; being *made* of an attack form may make the monster oblivious to being resistant to the attack form. (de-cheats the AI some)] * monster race, if this shouldn't be simply obvious. (Currently, it is formally known upon the first kill.)
There are no notes attached to this issue.





View Issue Details
4 [Zaiband] Backend/Core minor N/A 2011-01-09 23:36 2011-01-10 09:49
zaimoni  
 
normal  
new  
open  
none    
none  
  Vaporware  
Reasonable tactical movement
1) Melee-only monsters should actively try not to be seen, at least when this is consistent with staying close to the player. This includes: * not stepping into a player light radius * stepping back so that a player's next move doesn't let the player see the monster, at least in corridors * Note that, due to Zaiband's visibility fixes, often the "nearest possible distance before being seen" is 2; this should be considered acceptable. 2) Monsters with ranged attacks should not advance and be seen, when they could use their ranged attack instead.
There are no notes attached to this issue.





View Issue Details
2 [Zaiband] Backend/Core major N/A 2011-01-09 23:34 2011-01-10 09:49
zaimoni  
 
normal  
new  
open  
none    
none  
  Vaporware  
Monsters should wake up sleeping monsters
Cf. http://angband.oook.cz/forum/showthread.php?t=733&page=4 [^] . This should be easy, with the already-revised noise system. Probably we should require sleeping monsters to be in LoS of a monster that also has LoS on the player (otherwise the DL will wake up way too fast.) Thinking about this more carefully: If a monster has LoS to the player * If the monster also has LoS to a sleeping monster, then try to wake up the sleeping monster. Use minimum of sensory ranges for this. [Done] * If the player resists something, update resistance information. If we have LoS on an awake monster that uses the resisted attack, and that does not have LoS on the player, communicate the resistance information. * Wake-up shouting precludes communication. Set some reasonable limit on communication attempts per round (3 or 4), possibly controlled by internal energy level. Note that not all monsters can communicate with other monsters, or receive communications. It is also unclear how many languages are involved. * All Morgothian employees understand each other. [Change terminology when deTolkeinizing the setting.] * STUPID monsters neither try to communicate, nor receive communications. * Maybe an ASOCIAL flag that turns off communication outright? (Tigers, for instance.) * Hounds (Z and C) are rather vocal, but not awesomely intelligible to others. * Elementals and organic beings should be natively mutually unintelligible.
There are no notes attached to this issue.





View Issue Details
14 [Z.C++] Feature Request minor N/A 2011-01-09 23:52 2011-01-10 09:34
zaimoni  
 
normal  
new  
open  
none    
none  
  Vaporware  
Enforce standards' restrictions on identifiers
From GCC: #pragma GCC poison ___ ... : makes referenced identifiers preprocessing errors when tokenized after this point. Doesn't affect uses before that point, even in macro expansions. * this is a special case of a feature needed to allow headers to enforce C/C++/POSIX reserved keywords. We also need to render identifiers toxic by prefix and/or suffix, in some cases context-sensitively.
There are no notes attached to this issue.





View Issue Details
13 [Z.C++] Feature Request minor N/A 2011-01-09 23:51 2011-01-10 09:34
zaimoni  
 
normal  
new  
open  
none    
none  
  Vaporware  
option --deathstation
Named after the legendary Deathstation 9000, which uses every loophole in the language standards possible to fail to compile programs. We only implement this option for "easy" instances. The differences between stddef.h and cstddef, and stdind.h and cstdint, would be the first targets
There are no notes attached to this issue.





View Issue Details
10 [Z.C++] Feature Request minor N/A 2011-01-09 23:48 2011-01-10 09:34
zaimoni  
 
normal  
new  
open  
none    
none  
  Vaporware  
option --do-what-i-mean
The option --do-what-i-mean should allow (but warn on) constructs that are perfectly well-defined, but prohibited by the standards anyway. Example 1: #if 1 #elif #endif Example 2: #ifdef __VA_ARGS__ #endif
There are no notes attached to this issue.





View Issue Details
9 [Z.C++] Feature Request minor N/A 2011-01-09 23:47 2011-01-10 09:33
zaimoni  
 
normal  
new  
open  
none    
none  
  Vaporware  
option to disable C99 __VA_ARGS__ suppression
It's theoretically possible that ancient C code could use __VA_ARGS__ ; we'd need to disable C99 behavior to compile that.
There are no notes attached to this issue.





View Issue Details
12 [Z.C++] Backend/Core minor N/A 2011-01-09 23:50 2011-01-10 09:33
zaimoni  
 
normal  
new  
open  
none    
none  
  Vaporware  
float.h
This target-specific header needs to be dynamically generated. Deferring to vaporware as cross-platform emulation of floating point is not required of the C preprocessor.
There are no notes attached to this issue.





View Issue Details
11 [Z.C++] Backend/Core minor N/A 2011-01-09 23:49 2011-01-10 09:32
zaimoni  
 
normal  
new  
open  
none    
none  
  Vaporware  
Support CHAR_BIT!=8
Actually two items: * support native CHAR_BIT!=8 (e.g., the current string-escaping techniques won't work for CHAR_BIT==10 as they assume all characters can be octal-escaped) * support target CHAR_BIT different than native CHAR_BIT The absolute minimum CHAR_BIT we could have to worry about is 6 (EBDIC platforms), although representing the entire legal character set takes 7 bits.
There are no notes attached to this issue.