* Fri Nov 23 16:42:47 JST 2012 Naoyuki Sawa
- uBoehm GCv́A\[XR[ĥ݂ŔzzĂAŃCurhKv܂B
  uBoehm GCṽ\[XR[hAVisual Studio 6.0 gărhāACu𐶐܂B
- AvP[VŃCugpۂɁAŏKvȃt@CcA͍폜܂B
- ȉArh菇L^܂B

 uBoehm GCṽ\[XR[h_E[hB
http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc-7.2d.tar.gz  \clip\keep\gc-7.2d.7zɕۑB
,,
http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc.tar.gz c ̎_̍ŐVverB2012/11/23_ł͏Lt@CƓełB

 gc.tar.gzWJB
gc.tar.gz ̃\[XR[ho[WɑΉAtH_WJ܂B
2012/11/23_ gc.tar.gz ́Agc-7.2 ƂtH_ɂȂ܂B

 WJtH_̒ֈړ
> cd gc-7.2

 Visual Studio p CNt@CAMAKEFILE Ƀl[B
> ren NT_MAKEFILE MAKEFILE

 MAKEFILE CB
Visual Studio p CNt@Cɂ́A_ACǂ_܂B
.c.obj:
    $(cc) $(cdebug) $(cflags) $(cvars) -Iinclude -DALL_INTERIOR_POINTERS -DGC_NOT_DLL -D_CRT_SECURE_NO_DEPRECATE -DDONT_USE_USER32_DLL $*.c /Fo$*.obj
                                                                                                                 ~~~~~~~~~~~~~~~~~~~~~ ǉ
.cpp.obj:
    $(cc) $(cdebug) $(cflags) $(cvars) -Iinclude -DALL_INTERIOR_POINTERS -DGC_NOT_DLL -D_CRT_SECURE_NO_DEPRECATE -DDONT_USE_USER32_DLL $*.cpp /Fo$*.obj
                                                                                                                 ~~~~~~~~~~~~~~~~~~~~~ ǉ
{{2015/11/22RgǋL:Lɉ'-DLARGE_CONFIG'w肷鎖ɂ܂BuSun Nov 22 21:02:41 JST 2015 Naoyuki SawaṽRgQƂĉB}}
L̂悤ɏCȂƁAR\[AvP[VŃCugpꍇɂAuser32.dll 𖾎IɃNȂ΂ȂȂȂ܂B
DONT_USE_USER32_DLL }N`ĂƂŁA̖肪܂B
ڍׂ́AuBoehm GCṽ\[XR[h misc.c QƂĂB

 Visual Studio 6.0 ̊ϐݒ肷B
> "C:\Program Files\Microsoft Visual Studio\VC98\Bin\VCVARS32.BAT"

 rhB
Visual Studio p CNt@C̐擪ɋLڂĂʂAL̃R}hŃrh܂B
> nmake nodebug=1 all

 Kvȃt@Ĉ݂cāA͍폜B
AvP[VŃCugpۂɁAŏKvȃt@ĆAL݂̂ł:
gc.lib
include/gc.h
include/gc_version.h
include/gc_config_macros.h
include/gc_cpp.h@c C++ŎgpȂꍇ͂sv
ŏKvȃt@C͏L̂ƂȂ̂łAɉ include tH_̃wb_t@CASĎcĂƂɂ܂B
񐄏(problematic)ł͂邪A֗Ȋ֐Agc.h ȊÕwb_t@CŐ錾Ă邩łB(GC_finalize_all() Ȃ)

================================================================================
* Sun Sep 22 18:51:53 JST 2013 Naoyuki Sawa
uBoehm GCvŃ[NoƁAut@C.gc.logvƂt@CɃOo͂B
̓ύXAR\[֒ڃOo͂ꍇ́AvO̐擪Ɉȉ̂悤ɏΗǂ:
putenv("GC_LOG_FILE=CON");//Oo͐w
GC_set_find_leak(1);//[NoJn

================================================================================
* Fri Apr 25 10:09:50 JST 2014 Naoyuki Sawa
- uBoehm GCv7.4.0Ƀo[WAbv܂B
  ݂݂ɁAuBoehm GCvWebTCg̏ꏊς悤ł:
  http://www.hboehm.info/gc/
  _E[ht@CURL:
  http://www.hboehm.info/gc/gc_source/gc-7.4.0.tar.gz  \clip\keep\gc-7.4.0.7zɕۑB
- rh@́Agc-7.2d.tar.gz̎ƂقړlłBL̐QƂĂB
  Agc-7.4.0.tar.gz̃\[Xɂ́AMSVC++ 6.0ΉɊւ2ӏԈႢÂ܂܂ł̓RpCG[ɂȂ܂B
  RpCG[邽߂ɁAL̂悤ɏCĂ:
@ gc-7.4.0/include/gc_config_macros.h 235s:
  yCOz# elif defined(_MSC_VER) && _MSC_VER >= 14
  yCz# elif defined(_MSC_VER) && _MSC_VER >= 1400
A gc-7.4.0/include/gc_config_macros.h 269s:
  yCOz# elif defined(_MSC_VER) && _MSC_VER >= 12
  yCz# elif defined(_MSC_VER) && _MSC_VER >= 1400

================================================================================
* Thu Sep 11 21:15:51 JST 2014 Naoyuki Sawa
- uBoehm GCv7.4.2Ƀo[WAbv܂B
  _E[ht@CURL:
  http://www.hboehm.info/gc/gc_source/gc-7.4.2.tar.gz  \clip\keep\gc-7.4.2.7zɕۑB
- rh@́Agc-7.2d.tar.gz̎ƂقړlłBL̐QƂĂB
- Ogc-7.4.0.tar.gzōsAMSVC++ 6.0Ή̂߂̏CAgc-7.4.2.tar.gzłsKvL܂B
  Ogc-7.4.0.tar.gz̐AQƂĂB

================================================================================
 * Tue Nov 03 21:42:14 JST 2015 Naoyuki Sawa
 - }`Xbhp̃rhɕύX܂B
   uBoehm GCṽo[ẂA7.4.2̂܂܂ŕςĂ܂B
   
   A}`Xbhp̃rh菇łB
   
 - uBoehm GCṽTCg烊NĂ鉺L̃TCgAulibatomic_opsṽ\[XR[h_E[hB
   _E[ht@CURL:
   http://www.ivmaisoft.com/_bin/atomic_ops/libatomic_ops-7.4.2.tar.gz  \clip\keep\libatomic_ops-7.4.2.7zɕۑB
   
 - ulibatomic_ops-7.4.2.7zvWJB
   WJƁulibatomic_ops-7.4.2vƂtH_ôŁAtH_ulibatomic_opsvɕύXB
   
 - ulibatomic_opsvtH_AuBoehm GCṽtH_̒ɈړB
   ȉ̂悤ȃtH_\ɂȂ܂B		@
   gc-7.4.2/					@
   @build/						@
   @cord/						@
   @()/						@
   @libatomic_ops/					@
   @doc/						@
   @m4/						@
   @()/					@
   @tests/		
   @aclocal.m4		
   @AUTHORS		
   @()			
   @TODO			
   @()
   @tools/
   @aclocal.m4
   @allchblk.c
   @()
   @win32_threads.c
   
 - JgtH_AuBoehm GCṽtH_ɂB
 - 'X^eBbNCuŃ}`Xbhp'̃CNt@CAMAKEFILE Ƀl[B
   > ren NT_STATIC_THREADS_MAKEFILE MAKEFILE
   
   ]k
   Ȃ݂'DLLŃ}`Xbhp'̃CNt@Cgc.makȂ̂łAĂ݂Ə肭s܂łB
   doc/README.win32ɐL̂łA̒ʂ()Ă肭sȂ̂ŁA߂܂B
   ʂ́A'X^eBbNCuŃ}`Xbhp'Ƃărh鎖ɂ܂B
   A'DLLŃ}`Xbhp'ƂărhKvꍇ́A炽߂ĎČ悤Ǝv܂B
   
 - uFri Nov 23 16:42:47 JST 2012 Naoyuki Sawavɏ̂ƓlɁAMAKEFILECB
   .c.obj:
     $(cc) $(cdebug) $(cflags) $(cvarsmt) -Iinclude -I$(AO_INCLUDE_DIR) -DALL_INTERIOR_POINTERS -DGC_NOT_DLL -DGC_THREADS -DTHREAD_LOCAL_ALLOC -DPARALLEL_MARK -D_CRT_SECURE_NO_DEPRECATE -DDONT_USE_USER32_DLL $*.c /Fo$*.obj
                                                                                                                                                                                          ~~~~~~~~~~~~~~~~~~~~~ ǉ
   .cpp.obj:
     $(cc) $(cdebug) $(cflags) $(cvarsmt) -Iinclude -I$(AO_INCLUDE_DIR) -DALL_INTERIOR_POINTERS -DGC_NOT_DLL -DGC_THREADS -DTHREAD_LOCAL_ALLOC -D_CRT_SECURE_NO_DEPRECATE -DDONT_USE_USER32_DLL $*.cpp /Fo$*.obj
                                                                                                                                                                          ~~~~~~~~~~~~~~~~~~~~~ ǉ
   {{2015/11/22RgǋL:Lɉ'-DLARGE_CONFIG'w肷鎖ɂ܂BuSun Nov 22 21:02:41 JST 2015 Naoyuki SawaṽRgQƂĉB}}
   
 - uFri Apr 25 10:09:50 JST 2014 Naoyuki Sawavɏ̂ƓlɁAgc-7.4.2/include/gc_config_macros.hCB
   @ gc-7.4.0/include/gc_config_macros.h 235s:
     yCOz# elif defined(_MSC_VER) && _MSC_VER >= 14
     yCz# elif defined(_MSC_VER) && _MSC_VER >= 1400
   A gc-7.4.0/include/gc_config_macros.h 269s:
     yCOz# elif defined(_MSC_VER) && _MSC_VER >= 12
     yCz# elif defined(_MSC_VER) && _MSC_VER >= 1400
   
 - Visual Studio 6.0 ̊ϐݒ肷B
   > "C:\Program Files\Microsoft Visual Studio\VC98\Bin\VCVARS32.BAT"
   
 - gc.librhB
   > nmake nodebug=1 gc.lib
   warning C4047: 'function' : ԐڎQƂق 'void ** '  'long *' ňقȂĂ܂B
   warning C4022: 'InterlockedCompareExchange' : 1 Ԗڂ߲̎̌^Ǎ߲^ƈقȂ܂B
   Ƃxo܂A薳Ǝv̂ŖĉB
   
   ]k
   unmake nodebug=1 allvł͂߂łB
   ^[Qbgallw肷ƁAeXgXC[grh悤Ƃ̂łAeXgXC[g̊eexẽNwɊԈႢL悤ŁANG[ɂȂ܂B
   ǂACuw肪ԈĂ悤łB
   Ƃ肠eXgXC[g͕Kv̂ŁAunmake nodebug=1 gc.libvƂgc.librhΏ\łB
   ȂAeXgXC[g̃NMSVCRT.LIBǉ΃G[NoāAeXgXC[gsΐO݂łB

 - Kvȃt@Ĉ݂cāA͍폜B
   uFri Nov 23 16:42:47 JST 2012 Naoyuki Sawav̎菇̍Ō̕ƓłB
   uFri Nov 23 16:42:47 JST 2012 Naoyuki Sawav̎菇QƂĉB
   
   ܂ŁA}`Xbhp̃rh菇łB
   
   AAvP[V̎gp@łB
   
 - VC++6.0ŁAvWFNg̐ݒȉ̂悤ɕύXĉB
 
 - gp郉^CCuA}`XbhɕύXĉB
   vWFNg̐ݒːݒ̑Ώ:Win32 Debug  C/C++˃JeS:R[hˎgp郉^CCu:}`Xbh(fobO)
   vWFNg̐ݒːݒ̑Ώ:Win32 ReleaseC/C++˃JeS:R[hˎgp郉^CCu:}`Xbh
 
 - VOXbhCu𖳎悤ɁAݒ肵ĉB
   vWFNg̐ݒːݒ̑Ώ:Win32 Debug  ˃N˃JeS:Cvbg˖郉Cu:LIBC,LIBCMT
   vWFNg̐ݒːݒ̑Ώ:Win32 Release˃N˃JeS:Cvbg˖郉Cu:LIBC
 
   ]k
   ̎w肪Kvł闝ŔÃCuAVOXbhCuQƂݒŃrhĂꍇ̂߂łB
   ŏIIɂ́ÃCuA}`XbhCuQƂ悤ɐݒ肵ărh΁A̎w͕svɂȂ܂B
   A'Win32 Debug''LIBCMT'𖳎w͕svɂȂ܂B̃CufobO/[Xŋʂłꍇ̑΍􂾂łB
 
   {{2015/11/17ǋL
   vWFNgC++\[X(*.cpp)܂߂ꍇ́A郉CuɁALIBCPMTDLIBCPMTKvꍇL悤łB
   Ƃ΁ADxLib𗘗pꍇAvWFNgC++\[X܂߂𓾂Ȃ̂łȀꍇAݒL̂悤ɂKvL܂B
   vWFNg̐ݒːݒ̑Ώ:Win32 Debug  ˃N˃JeS:Cvbg˖郉Cu:LIBC,LIBCMT,LIBCPMTD
   vWFNg̐ݒːݒ̑Ώ:Win32 Release˃N˃JeS:Cvbg˖郉Cu:LIBC,LIBCPMT
   }}2015/11/17ǋL
 
   {{2016/02/21ǋL
   L̐ݒł͕słBLIBCDN悤ƂĂ܂LIBCMTDƏՓ˂xo鎖LłB
   vDebugrhłLIBCMTD,ReleaserhłLIBCMTN悤ɂ̂ŁAȉ̂悤Ɏw肷̂mł悤łB
   vWFNg̐ݒːݒ̑Ώ:Win32 Debug  ˃N˃JeS:Cvbg˖郉Cu:LIBC,LIBCD,LIBCPMT,LIBCPMTD,LIBCMT
   vWFNg̐ݒːݒ̑Ώ:Win32 Release˃N˃JeS:Cvbg˖郉Cu:LIBC,LIBCD,LIBCPMT,LIBCPMTD,LIBCMTD
   }}2016/02/21ǋL
 
 - gc.h,,leak_detector.hCN[hOɁAGC_THREADS`ĉB
   `vWFNg̃wb_t@C(/Home/Share/Piece/clip/test.win/extclip.h)ł́Aȉ̂悤Ɏw肷鎖ɂ܂B
   #ifdef  _MT
   #define GC_THREADS
   #endif//_MT
   //#include "gc.h"
   #include "leak_detector.h"
   
   ܂ŁAAvP[V̎gp@łB
   
 - ȏ̂悤ɕύXāAeXgAvP[V쐬ēmF܂B
   _beginthreadex()ŐXbhƁACXbh̗ŃmۂJԂA~ɃKx[WRNV鎖mF܂B
   
   APthreads-w32(/Home/Share/Piece/clip/tool/pthreads/)ŐXbhŃmۂƁAG[~܂B
   _beginthreadex()Ńmۂꍇɏ肭삷̂́A'GC_THREADS'̎wɂBoehm GC_beginthreadex()bvĂ邩łA
   Pthreads-w32Boehm GC֒mĂȂ̂ŁÂ܂܂ł͏肭삵Ȃ̂Ǝv܂B
   ꉞAgc_pthread_redirects.hƂwb_t@CL܂A͖{(=Unix)pthreadpƎv̂ŁAPthreads-w32Ŏĝ͊댯Ǝv܂B
   Pthreads-w32Ńmۂs@ɂẮAЂƂ܂ۗɂāAKvɂȂɒ悤Ǝv܂B
   ȂAPthreads-w32ŃmۂsȂ(mۂs֐gpȂ)APthreads-w32Boehm GC𕹗pĂ薳Ǝv܂B
   
 - Boehm GCgāATuXbhŃmۂsAvP[V́ATuXbh̋N_beginthread()gĂ͂܂B	dv
   _beginthread()ŋNTuXbhŃmۂsƁAGCNɁAuCollecting from unknown threadvG[Ē~܂B
   Ȃ闝ŔABoehm GCIɃXbh̋NbvĂ֐AL̊֐ɌĂ邩łB
   /gc-7.4.2/include/gc.h (1568`1574s) Q
   #   define CreateThread GC_CreateThread
   #   define ExitThread GC_ExitThread
   #   undef _beginthreadex
   #   define _beginthreadex GC_beginthreadex
   #   undef _endthreadex
   #   define _endthreadex GC_endthreadex
   /* #define _beginthread { > "Please use _beginthreadex instead of _beginthread" < } */
   OGC_register_my_thread()GC_unregister_my_thread()ĂяoĊǗȂ΁Aʂ̕@ŃXbhNĂ\܂񂪁A
   ܂̊֐̎dg݂ǂĂȂ̂ŁAo܂ł́ABoehm GCbvĂĂ֐gpSłB
   _ŁA_beginthread()gĂW[́Aclipbpe.ĉŁA{Aclipbpe.c_beginthread()_beginthreadex()ɒu܂B
   L̒us킸ɁAclipbpe.c𗘗pĂdLedSeqC.exerhĎsƁA΂炭uCollecting from unknown threadvG[܂A
   L̒usAdLedSeqC.exerhĎsƁALx傫ȃf[^łuCollecting from unknown threadvoɐɓ삷鎖mF܂B
   COɃG[o鎖ƁACɃG[oȂmF̂ŁAL̏C͓K؂ł鎖mFo܂B
   쐬郂W[AvP[VłA_beginthread()g킸ɁA_beginthreadex()₻̑Boehm GCbvĂ֐gĉB

================================================================================
 * Sun Nov 22 21:02:41 JST 2015 Naoyuki Sawa
 - GCgAvP[VŁA'Fatal error in GC - Too many heap sections'ƂbZ[W{bNXoāAAvP[V~鎖LC܂B
   ̓Iɂ́AdLotTblC.exeő傫ȃf[^RpC悤ƂƂARpC̏IՂŏL̃bZ[W{bNXoāAdLotTblC.exeI܂B
   2015/11/03GC}`XbhāA2015/11/14dLotTblC.exerhȑÕo[Wł́Af[^̃RpCłA̖͏oĂȂƎv܂B
   GC}`XbhłŃrhƁAGCq[v@ɉ炩̏璷āÂ߂'Too many heap sections'ɂȂ̂ł͂ȂƎv܂B

 - ́AGC'heap sections'𑝂₷łB
   Ql:
   Boehm GC++ garbage collector : Too many heap sections Increase MAXHINCR or MAX_HEAP_SECTS
   (http://stackoverflow.com/questions/4728537/boehm-gc-garbage-collector-too-many-heap-sections-increase-maxhincr-or-max-h)
   vɍśAMAKEFILẼRpCIvV'-DLARGE_CONFIG'ǉ邾łB
   ȂAL̃y[Wɂ́Aꂾł'segmentation fault'̂ŕʂ̏CsƏĂ̂łÃAvP[Vł͕ʂ̖͐܂łB
   L̃y[ẂALinuxgccpythonł̗płÃAvP[VWin32Ȃ̂ŁÄႢƎv܂B
   ƂÁA'-DLARGE_CONFIG'ǉ邾ŉ̂ŁAȊO͍̎sĂ܂B

 - y_zƂẮAGC̃rh菇uTue Nov 03 21:42:14 JST 2015 Naoyuki Sawav̎菇ύX_́AL̈_݂̂łB
   uFri Nov 23 16:42:47 JST 2012 Naoyuki SawavŏC_ɉāA'-DLARGE_CONFIG'ǉB
   .c.obj:
     $(cc) $(cdebug) $(cflags) $(cvarsmt) -Iinclude -I$(AO_INCLUDE_DIR) -DALL_INTERIOR_POINTERS -DGC_NOT_DLL -DGC_THREADS -DTHREAD_LOCAL_ALLOC -DPARALLEL_MARK -D_CRT_SECURE_NO_DEPRECATE -DDONT_USE_USER32_DLL -DLARGE_CONFIG $*.c /Fo$*.obj
                                                                                                                                                                                          ~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~ǉ
   .cpp.obj:
     $(cc) $(cdebug) $(cflags) $(cvarsmt) -Iinclude -I$(AO_INCLUDE_DIR) -DALL_INTERIOR_POINTERS -DGC_NOT_DLL -DGC_THREADS -DTHREAD_LOCAL_ALLOC -D_CRT_SECURE_NO_DEPRECATE -DDONT_USE_USER32_DLL -DLARGE_CONFIG $*.cpp /Fo$*.obj
                                                                                                                                                                          ~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~ǉ
