Difference between revisions of "User:Royce3"

From ReactOS Wiki
Jump to: navigation, search
m
m
Line 46: Line 46:
 
     using winebuild, it's better to differentiate between libraries and  
 
     using winebuild, it's better to differentiate between libraries and  
 
     import libraries in a non-ambiguous way
 
     import libraries in a non-ambiguous way
 +
 +
    side-by-side building of different ntoskrnl versions, one for UP,
 +
    one for SMP, one for Xen etc. Intermediate and output files would
 +
    be stored in different directories. Compilation flags could be
 +
    different for each version ("-DSMP")
  
 
fix taskmgr painting issue:
 
fix taskmgr painting issue:

Revision as of 15:58, 20 April 2005

Royce Mitchell III's TODO List ( not necessarily in order )

rbuild

 output error if a cyclic reference is detected
 make ReactOS boot
 make livecd
 gcc is hardcoded in -pipe detection code so it don't work on linux
 gcc is hardcoded in pch detection code so it don't work on linux
 side-by-side modules:
 Bugs/enhancements found by KJK::Hyperion:
   please auto-detect the name of NASM (nasm vs nasmw)
   invoke ld directly, instead of calling it through gcc. We end up 
   overriding all defaults anyway
   if you don't want to invoke ld directly, at least pass -nostartfiles 
   -nodefaultlibs, or you'll end up linking drivers to kernel32.dll 
   and msvcrt.dll
     CH: Can you give an example where this is needed to avoid that?
   -D_SEH_NO_NATIVE_NLG for all targets that cannot link to msvcrt.dll, 
   like drivers and system DLLs (the flag itself will be obsoleted, but 
   in the meanwhile it's necessary)
   source files should have a dependency on compiler flags, executables 
   on linker flags, etc. or a revision that only changes flags won't 
   cause targets to be rebuilt
   the source tree should be 100% read-only, not just 99% - please 
   generate makefile.auto in the output directory
   while you're at it, you could split makefile.auto in multiple 
   includes. For example, you could generate three includes for each 
   build file: a master include, an include that sets compiler flags 
   and one that sets linker flags. This way, object files could depend 
   on the compiler flags include
   if you don't like the idea, at least make all generated files of 
   each target depend on the build file!
   for a number of reasons, it'd better to split required libraries in 
   static libraries and import libraries. The main reason is import 
   libraries only work properly if they are at the end of the command 
   line. Another reason is that if we want to build ReactOS as ELF 
   using winebuild, it's better to differentiate between libraries and 
   import libraries in a non-ambiguous way
   side-by-side building of different ntoskrnl versions, one for UP,
   one for SMP, one for Xen etc. Intermediate and output files would
   be stored in different directories. Compilation flags could be
   different for each version ("-DSMP")

fix taskmgr painting issue:

 filip0402: implement the WS_EX_TRANSPARENT flag
 filip0402: it needs to be checked on three places...
 filip0402: two in VIS_ComputeVisibleRegion and one in IntFindWindowToRepaint

freetype caching

inf parsing

 ability to right-click inf file and click "Install" to get it installed
 filip2307: well, the setup inf can be installed. we just don't have the registry entries for the context menu entry.
 w3seek: apps\utils\infinst

copy files via gui

desktop context menu

 new shortcut
 display properties

Irksome sth

 grep all GDI_AllocObj ( check the macros that point to it ) and make sure we handle failure gracefully
 grep all GDI_LockObj ( again macros... ) and make sure we handle those failures gracefully too
 ASSERT_KM_POINTER(x) for every x received by an internal kernel function
   bad examples:
     NtWriteFile in ntoskrnl/io/rw.c
     VfatWrite
   soso examples:
     MpfsWrite at least null-checks the mdl

eradicate TAG_NONE

msvc6

ms office 2000

figure out why the following can crash reactos cmd: cmd: [CLEAN] *.o precomp.h.gch cmd.sym cmd.a ./cmd.coff cmd.exe cmd.nostrip.exe cmd.o attrib.o alias.o batch.o beep.o call.o chcp.o choice.o cls.o cmdinput.o cmdtable.o color.o console.o copy.o date.o del.o delay.o dir.o dirstack.o echo.o error.o filecomp.o for.o free.o goto.o history.o if.o internal.o label.o locale.o memory.o misc.o move.o msgbox.o path.o pause.o prmopt.o redir.o ren.o screen.o set.o shift.o start.o strtoclr.o time.o timer.o title.o type.o ver.o

ANSWER: Its because windows cmd insert a newline if the echo'ed string is longer than xxx chars thus the echo'ed text is recognized as a typed command, and since the command starts with cmd it executes cmd. Cmd.exe doesnt like all the unknown parameters very much and crash. -Gunnar

       http://files.reactsoft.com/bsysbug.png

driver installation

 filip2307: Class Installers, UM PnP manager, PnP events, some setupapi SetupDi* APIs, CFGMGR32 + RPC runtime + working WIDL

create libnls so we can get rid of tools/unicode

      • DONE IN ReactOS 0.3.0-SVN ***

rbuild

 error if module referenced by <library> doesn't exist
 <include base="kjs">include</include>
 output error if module referenced by base doesn't exist
 rename junk.tmp, base.tmp and temp.exp to %module%.jnk, %module%.tmp, %module%.exp
 put .exe, .o, etc files in $(ROS_INTERMEDIATE)
 use map instead of vector for factories
 use map created through ctors for module handlers ( kinda like the backend factories )
 implement <xi:fallback>:
    Exception: how about an <xi:include href="config" failonerror="false" /> ?
    Exception: <xi:include href="config.template" />
    Exception: <xi:include href="config" failonerror="false" />
    Exception: then properties in config will override properties in config.template
 add support for <property>, as opposed to <define>
 let make do some of the work to reduce makefile size
 put junk and .a files in $(ROS_TEMPORARY)
    Exception: ROS_TEMPORARY, ROS_INTERMEDIATE, ROS_INSTALL?
 create some variables to reduce makefile size, like %modulename%_INCLUDES, and %modulename%_OBJS
 move module code to a base class where possible ( like the include macro creation )
 mingw backend should auto-detect PCH support and use it if detected
 mingw backend should output <module>_clean target