Difference between revisions of "User:Royce3"

From ReactOS Wiki
Jump to: navigation, search
m
Line 8: Line 8:
 
   gcc is hardcoded in pch detection code so it don't work on linux
 
   gcc is hardcoded in pch detection code so it don't work on linux
 
   support -Wall and -Werror
 
   support -Wall and -Werror
 +
 +
  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
 +
    -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!
  
 
fix taskmgr painting issue:
 
fix taskmgr painting issue:

Revision as of 16:32, 10 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
 support -Wall and -Werror
 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
   -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!

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