Coder Social home page Coder Social logo

emaculation / sheepshaver Goto Github PK

View Code? Open in Web Editor NEW
14.0 14.0 3.0 4.73 MB

MacOS run-time environment for BeOS and Linux

License: GNU General Public License v2.0

Makefile 0.95% C++ 68.27% C 24.28% Objective-C 0.51% Objective-C++ 1.00% Roff 0.02% Shell 0.16% M4 4.27% Assembly 0.43% Perl 0.12%

sheepshaver's People

Contributors

amade avatar asvitkine avatar asvitkine-chromium avatar atmaxinger avatar atsampson avatar b- avatar charlesjs avatar coderforlife avatar davidludwig avatar drlex0 avatar ianfixes avatar ifernandez avatar jvernet avatar kallisti5 avatar kanjitalk755 avatar lubert avatar masaq- avatar rakslice avatar retokromer avatar rickyzhang82 avatar vasi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

ianfixes cunei

sheepshaver's Issues

emul_ppc.cpp: complete instruction set

Complete PowerPC instructions set

Instructions to add

  • addme
  • addmeo
  • addze
  • addzeo
  • dcbst
  • dcbt
  • dcbtst
  • divwuo
  • fabs
  • fadd
  • fadds
  • fcmpo
  • fcmpu
  • fctiw
  • fctiwz
  • fdiv
  • fdivs
  • fmadd
  • fmadds
  • fmr
  • fmsub
  • fmsubs
  • fmul
  • fmuls
  • fnabs
  • fneg
  • fnmadd
  • fnmadds
  • fnmsub
  • fnmsubs
  • fres
  • frsp
  • frsqrte
  • fsel
  • fsqrt
  • fsqrts
  • fsub
  • fsubs
  • lfdu
  • lfdux
  • lfdx
  • lfs
  • lfsu
  • lfsux
  • lfsx
  • lhbrx
  • lwbrx
  • mcrfs
  • mcrxr
  • mtfsb0
  • mtfsb1
  • mtfsfi
  • mulhwu
  • mullwo
  • nego
  • sc
  • stfdu
  • stfdux
  • stfdx
  • stfs
  • stfsu
  • stfsux
  • stfsx
  • sthbrx
  • stwbrx
  • subfo
  • subfme
  • subfmeo
  • subfze
  • subfzeo
  • tw
  • twi

Instructions to check

  • crxor
  • creqv

Reference

/*
TODO:
addme
addmeo
addze
addzeo
dcbst
dcbt
dcbtst
divwuo
fabs
fadd
fadds
fcmpo
fcmpu
fctiw
fctiwz
fdiv
fdivs
fmadd
fmadds
fmr
fmsub
fmsubs
fmul
fmuls
fnabs
fneg
fnmadd
fnmadds
fnmsub
fnmsubs
fres
frsp
frsqrte
fsel
fsqrt
fsqrts
fsub
fsubs
lfdu
lfdux
lfdx
lfs
lfsu
lfsux
lfsx
lhbrx
lwbrx
mcrfs
mcrxr
mtfsb0
mtfsb1
mtfsfi
mulhwu
mullwo
nego
sc
stfdu
stfdux
stfdx
stfs
stfsu
stfsux
stfsx
sthbrx
stwbrx
subfo
subfme
subfmeo
subfze
subfzeo
tw
twi
CHECK:
crxor
creqv
*/

Remove compile-time dependencies on BasiliskII

ag BasiliskII in this repo yields some concerning entries:

Makefile
16:B2_TOPDIR := ../BasiliskII
37:	cd $(TMPDIR); cvs export -D "$(ISODATE)" BasiliskII SheepShaver

src/MacOSX/XcodeBuildHowTo.txt
15:1. A complete 'macemu' git checkout of SheepShaver and BasiliskII.

src/MacOSX/SheepShaver_Xcode8.xcodeproj/project.pbxproj
154:		082AC26114AA59F000071F5E /* lowmem.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = lowmem.c; path = ../../../BasiliskII/src/Unix/Darwin/lowmem.c; sourceTree = SOURCE_ROOT; };

src/MacOSX/SheepShaver.xcodeproj/project.pbxproj
220:		082AC26114AA59F000071F5E /* lowmem.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = lowmem.c; path = ../../../BasiliskII/src/Unix/Darwin/lowmem.c; sourceTree = SOURCE_ROOT; };

Duplicate files as necessary to make these projects stand alone. Open other issues as necessary if we need to create a shared component (as a separate repo).

drop BeOS support

I suggest to drop BeOS support here, because today it would really make more sense to emulate BeOS on macOS rather than to emulate MacOS on BeOS.

And update the project title: SheepShaver works fine on Windows 10:
screenshot 2019-03-03 at 10 56 28

Recover or re-create `ppc-testresults.dat.bz2`

From doc/PowerPC-Testsuite.md:

It is recommended that you first run the tester on a native PowerPC platform to generate a results file. For reference, here is the [[this>projects/ppctester/files/ppc-testresults.dat.bz2|PowerPC Emulator Tester results file]] I use for SheepShaver. This was generated with AltiVec tests enabled. This is for revision 1.30+ of the file. md5sum is: ''3e29432abb6e21e625a2eef8cf2f0840''.

We should do that, and save the file here for posterity.

drop Amiga support

I suggest to drop Amiga support here, because today it would really make more sense to emulate Amiga on macOS rather than to emulate MacOS on Amiga.

Factor all duplicate files into a shared library.

Creating a shared library seems to be the best path forward for deduplicating the 226 files in BasiliskII that are used directly by Sheepshaver.

Encoded paths

These files contain references to BasiliskII files, found using

ag -l '\.\.\/BasiliskII' SheepShaver | awk '{print "- [ ] `" $1 "`"}'`  
  • Makefile
  • src/MacOSX/SheepShaver.xcodeproj/project.pbxproj
  • src/MacOSX/SheepShaver_Xcode8.xcodeproj/project.pbxproj

Symlinked files

Note to self: this listing doesn't properly handle printing the full source subdirectories

To generate this list of symlinks that need to be deduplicated, it's 3 steps:

# 1. get the repo that we'll be migrating from (assume rev `c3e312f`)
git clone https://github.com/kanjitalk755/macemu

# 2. make a copy, the effect of which is replacing all symlinks
#     with copies of their targets
cp -r macemu macemu_migration

# 3. draw the rest of the owl
cd macemu_migration
git status | grep "^\t" | awk '{print $2}' | xargs -I{} echo "dirname {}" | sh | sort | uniq | xargs -I{} echo "cd ../BasiliskII && ls -l {}/*" | sh | grep -- "->" | awk '{print "- [ ] " $9 " " $10 " " $11}'
  • SheepShaver/src/SDL -> ../../BasiliskII/src/SDL
  • SheepShaver/src/adb.cpp -> ../../BasiliskII/src/adb.cpp
  • SheepShaver/src/audio.cpp -> ../../BasiliskII/src/audio.cpp
  • SheepShaver/src/cdrom.cpp -> ../../BasiliskII/src/cdrom.cpp
  • SheepShaver/src/disk.cpp -> ../../BasiliskII/src/disk.cpp
  • SheepShaver/src/extfs.cpp -> ../../BasiliskII/src/extfs.cpp
  • SheepShaver/src/pict.c -> ../../BasiliskII/src/pict.c
  • SheepShaver/src/prefs.cpp -> ../../BasiliskII/src/prefs.cpp
  • SheepShaver/src/scsi.cpp -> ../../BasiliskII/src/scsi.cpp
  • SheepShaver/src/slirp -> ../../BasiliskII/src/slirp
  • SheepShaver/src/sony.cpp -> ../../BasiliskII/src/sony.cpp
  • SheepShaver/src/xpram.cpp -> ../../BasiliskII/src/xpram.cpp
  • SheepDriver -> ../../../BasiliskII/src/BeOS/SheepDriver
  • SheepNet -> ../../../BasiliskII/src/BeOS/SheepNet
  • audio_beos.cpp -> ../../../BasiliskII/src/BeOS/audio_beos.cpp
  • extfs_beos.cpp -> ../../../BasiliskII/src/BeOS/extfs_beos.cpp
  • scsi_beos.cpp -> ../../../BasiliskII/src/BeOS/scsi_beos.cpp
  • serial_beos.cpp -> ../../../BasiliskII/src/BeOS/serial_beos.cpp
  • sys_beos.cpp -> ../../../BasiliskII/src/BeOS/sys_beos.cpp
  • timer_beos.cpp -> ../../../BasiliskII/src/BeOS/timer_beos.cpp
  • xpram_beos.cpp -> ../../../BasiliskII/src/BeOS/xpram_beos.cpp
  • sigsegv.h -> ../../../BasiliskII/src/CrossPlatform/sigsegv.h
  • video_blit.cpp -> ../../../BasiliskII/src/CrossPlatform/video_blit.cpp
  • video_blit.h -> ../../../BasiliskII/src/CrossPlatform/video_blit.h
  • video_vosf.h -> ../../../BasiliskII/src/CrossPlatform/video_vosf.h
  • vm_alloc.cpp -> ../../../BasiliskII/src/CrossPlatform/vm_alloc.cpp
  • vm_alloc.h -> ../../../BasiliskII/src/CrossPlatform/vm_alloc.h
  • AudioBackEnd.cpp -> ../../../BasiliskII/src/MacOSX/AudioBackEnd.cpp
  • AudioBackEnd.h -> ../../../BasiliskII/src/MacOSX/AudioBackEnd.h
  • AudioDevice.cpp -> ../../../BasiliskII/src/MacOSX/AudioDevice.cpp
  • AudioDevice.h -> ../../../BasiliskII/src/MacOSX/AudioDevice.h
  • MacOSX_sound_if.cpp -> ../../../BasiliskII/src/MacOSX/MacOSX_sound_if.cpp
  • MacOSX_sound_if.h -> ../../../BasiliskII/src/MacOSX/MacOSX_sound_if.h
  • audio_macosx.cpp -> ../../../BasiliskII/src/MacOSX/audio_macosx.cpp
  • autorelease.h -> ../../../BasiliskII/src/MacOSX/autorelease.h
  • clip_macosx.cpp -> ../../../BasiliskII/src/MacOSX/clip_macosx.cpp
  • clip_macosx64.mm -> ../../../BasiliskII/src/MacOSX/clip_macosx64.mm
  • extfs_macosx.cpp -> ../../../BasiliskII/src/MacOSX/extfs_macosx.cpp
  • macos_util_macosx.h -> ../../../BasiliskII/src/MacOSX/macos_util_macosx.h
  • sys_darwin.cpp -> ../../../BasiliskII/src/MacOSX/sys_darwin.cpp
  • utils_macosx.h -> ../../../BasiliskII/src/MacOSX/utils_macosx.h
  • utils_macosx.mm -> ../../../BasiliskII/src/MacOSX/utils_macosx.mm
  • audio_oss_esd.cpp -> ../../../BasiliskII/src/Unix/audio_oss_esd.cpp
  • bincue_unix.cpp -> ../../../BasiliskII/src/Unix/bincue_unix.cpp
  • bincue_unix.h -> ../../../BasiliskII/src/Unix/bincue_unix.h
  • clip_unix.cpp -> ../../../BasiliskII/src/Unix/clip_unix.cpp
  • config.guess -> ../../../BasiliskII/src/Unix/config.guess
  • config.sub -> ../../../BasiliskII/src/Unix/config.sub
  • cpr.sh -> ../../../BasiliskII/src/Unix/cpr.sh
  • disk_sparsebundle.cpp -> ../../../BasiliskII/src/Unix/disk_sparsebundle.cpp
  • disk_unix.h -> ../../../BasiliskII/src/Unix/disk_unix.h
  • ether_unix.cpp -> ../../../BasiliskII/src/Unix/ether_unix.cpp
  • extfs_unix.cpp -> ../../../BasiliskII/src/Unix/extfs_unix.cpp
  • keycodes -> ../../../BasiliskII/src/Unix/keycodes
  • ldscripts -> ../../../BasiliskII/src/Unix/ldscripts
  • m4 -> ../../../BasiliskII/src/Unix/m4
  • posix_sem.cpp -> ../../../BasiliskII/src/Unix/posix_sem.cpp
  • rpc.h -> ../../../BasiliskII/src/Unix/rpc.h
  • rpc_unix.cpp -> ../../../BasiliskII/src/Unix/rpc_unix.cpp
  • semaphore.h -> ../../../BasiliskII/src/Unix/semaphore.h
  • serial_unix.cpp -> ../../../BasiliskII/src/Unix/serial_unix.cpp
  • sshpty.c -> ../../../BasiliskII/src/Unix/sshpty.c
  • sshpty.h -> ../../../BasiliskII/src/Unix/sshpty.h
  • strlcpy.c -> ../../../BasiliskII/src/Unix/strlcpy.c
  • strlcpy.h -> ../../../BasiliskII/src/Unix/strlcpy.h
  • sys_unix.cpp -> ../../../BasiliskII/src/Unix/sys_unix.cpp
  • tinyxml2.cpp -> ../../../BasiliskII/src/Unix/tinyxml2.cpp
  • tinyxml2.h -> ../../../BasiliskII/src/Unix/tinyxml2.h
  • tunconfig -> ../../../BasiliskII/src/Unix/tunconfig
  • vhd_unix.cpp -> ../../../BasiliskII/src/Unix/vhd_unix.cpp
  • xpram_unix.cpp -> ../../../BasiliskII/src/Unix/xpram_unix.cpp
  • b2ether -> ../../../BasiliskII/src/Windows/b2ether
  • cd_defs.h -> ../../../BasiliskII/src/Windows/cd_defs.h
  • cdenable -> ../../../BasiliskII/src/Windows/cdenable
  • clip_windows.cpp -> ../../../BasiliskII/src/Windows/clip_windows.cpp
  • ether_windows.cpp -> ../../../BasiliskII/src/Windows/ether_windows.cpp
  • ether_windows.h -> ../../../BasiliskII/src/Windows/ether_windows.h
  • extfs_windows.cpp -> ../../../BasiliskII/src/Windows/extfs_windows.cpp
  • posix_emu.cpp -> ../../../BasiliskII/src/Windows/posix_emu.cpp
  • posix_emu.h -> ../../../BasiliskII/src/Windows/posix_emu.h
  • prefs_editor_gtk.cpp -> ../../../BasiliskII/src/Windows/prefs_editor_gtk.cpp
  • router -> ../../../BasiliskII/src/Windows/router
  • serial_windows.cpp -> ../../../BasiliskII/src/Windows/serial_windows.cpp
  • sys_windows.cpp -> ../../../BasiliskII/src/Windows/sys_windows.cpp
  • timer_windows.cpp -> ../../../BasiliskII/src/Windows/timer_windows.cpp
  • util_windows.cpp -> ../../../BasiliskII/src/Windows/util_windows.cpp
  • util_windows.h -> ../../../BasiliskII/src/Windows/util_windows.h
  • xpram_windows.cpp -> ../../../BasiliskII/src/Windows/xpram_windows.cpp
  • audio_dummy.cpp -> ../../../BasiliskII/src/dummy/audio_dummy.cpp
  • clip_dummy.cpp -> ../../../BasiliskII/src/dummy/clip_dummy.cpp
  • prefs_editor_dummy.cpp -> ../../../BasiliskII/src/dummy/prefs_editor_dummy.cpp
  • scsi_dummy.cpp -> ../../../BasiliskII/src/dummy/scsi_dummy.cpp
  • serial_dummy.cpp -> ../../../BasiliskII/src/dummy/serial_dummy.cpp
  • adb.h -> ../../../BasiliskII/src/include/adb.h
  • audio.h -> ../../../BasiliskII/src/include/audio.h
  • audio_defs.h -> ../../../BasiliskII/src/include/audio_defs.h
  • cdrom.h -> ../../../BasiliskII/src/include/cdrom.h
  • clip.h -> ../../../BasiliskII/src/include/clip.h
  • debug.h -> ../../../BasiliskII/src/include/debug.h
  • disk.h -> ../../../BasiliskII/src/include/disk.h
  • extfs.h -> ../../../BasiliskII/src/include/extfs.h
  • extfs_defs.h -> ../../../BasiliskII/src/include/extfs_defs.h
  • pict.h -> ../../../BasiliskII/src/include/pict.h
  • prefs.h -> ../../../BasiliskII/src/include/prefs.h
  • scsi.h -> ../../../BasiliskII/src/include/scsi.h
  • serial.h -> ../../../BasiliskII/src/include/serial.h
  • serial_defs.h -> ../../../BasiliskII/src/include/serial_defs.h
  • sony.h -> ../../../BasiliskII/src/include/sony.h
  • sys.h -> ../../../BasiliskII/src/include/sys.h
  • timer.h -> ../../../BasiliskII/src/include/timer.h
  • xpram.h -> ../../../BasiliskII/src/include/xpram.h
  • SheepShaver/src/BeOS/SheepDriver -> ../../../BasiliskII/src/BeOS/SheepDriver
  • SheepShaver/src/BeOS/SheepNet -> ../../../BasiliskII/src/BeOS/SheepNet
  • SheepShaver/src/BeOS/audio_beos.cpp -> ../../../BasiliskII/src/BeOS/audio_beos.cpp
  • SheepShaver/src/BeOS/extfs_beos.cpp -> ../../../BasiliskII/src/BeOS/extfs_beos.cpp
  • SheepShaver/src/BeOS/scsi_beos.cpp -> ../../../BasiliskII/src/BeOS/scsi_beos.cpp
  • SheepShaver/src/BeOS/serial_beos.cpp -> ../../../BasiliskII/src/BeOS/serial_beos.cpp
  • SheepShaver/src/BeOS/sys_beos.cpp -> ../../../BasiliskII/src/BeOS/sys_beos.cpp
  • SheepShaver/src/BeOS/timer_beos.cpp -> ../../../BasiliskII/src/BeOS/timer_beos.cpp
  • SheepShaver/src/BeOS/xpram_beos.cpp -> ../../../BasiliskII/src/BeOS/xpram_beos.cpp
  • SheepShaver/src/CrossPlatform/sigsegv.h -> ../../../BasiliskII/src/CrossPlatform/sigsegv.h
  • SheepShaver/src/CrossPlatform/video_blit.cpp -> ../../../BasiliskII/src/CrossPlatform/video_blit.cpp
  • SheepShaver/src/CrossPlatform/video_blit.h -> ../../../BasiliskII/src/CrossPlatform/video_blit.h
  • SheepShaver/src/CrossPlatform/video_vosf.h -> ../../../BasiliskII/src/CrossPlatform/video_vosf.h
  • SheepShaver/src/CrossPlatform/vm_alloc.cpp -> ../../../BasiliskII/src/CrossPlatform/vm_alloc.cpp
  • SheepShaver/src/CrossPlatform/vm_alloc.h -> ../../../BasiliskII/src/CrossPlatform/vm_alloc.h
  • SheepShaver/src/MacOSX/AudioBackEnd.cpp -> ../../../BasiliskII/src/MacOSX/AudioBackEnd.cpp
  • SheepShaver/src/MacOSX/AudioBackEnd.h -> ../../../BasiliskII/src/MacOSX/AudioBackEnd.h
  • SheepShaver/src/MacOSX/AudioDevice.cpp -> ../../../BasiliskII/src/MacOSX/AudioDevice.cpp
  • SheepShaver/src/MacOSX/AudioDevice.h -> ../../../BasiliskII/src/MacOSX/AudioDevice.h
  • SheepShaver/src/MacOSX/MacOSX_sound_if.cpp -> ../../../BasiliskII/src/MacOSX/MacOSX_sound_if.cpp
  • SheepShaver/src/MacOSX/MacOSX_sound_if.h -> ../../../BasiliskII/src/MacOSX/MacOSX_sound_if.h
  • SheepShaver/src/MacOSX/audio_macosx.cpp -> ../../../BasiliskII/src/MacOSX/audio_macosx.cpp
  • SheepShaver/src/MacOSX/autorelease.h -> ../../../BasiliskII/src/MacOSX/autorelease.h
  • SheepShaver/src/MacOSX/clip_macosx.cpp -> ../../../BasiliskII/src/MacOSX/clip_macosx.cpp
  • SheepShaver/src/MacOSX/clip_macosx64.mm -> ../../../BasiliskII/src/MacOSX/clip_macosx64.mm
  • SheepShaver/src/MacOSX/extfs_macosx.cpp -> ../../../BasiliskII/src/MacOSX/extfs_macosx.cpp
  • SheepShaver/src/MacOSX/macos_util_macosx.h -> ../../../BasiliskII/src/MacOSX/macos_util_macosx.h
  • SheepShaver/src/MacOSX/sys_darwin.cpp -> ../../../BasiliskII/src/MacOSX/sys_darwin.cpp
  • SheepShaver/src/MacOSX/utils_macosx.h -> ../../../BasiliskII/src/MacOSX/utils_macosx.h
  • SheepShaver/src/MacOSX/utils_macosx.mm -> ../../../BasiliskII/src/MacOSX/utils_macosx.mm
  • SheepShaver/src/Unix/audio_oss_esd.cpp -> ../../../BasiliskII/src/Unix/audio_oss_esd.cpp
  • SheepShaver/src/Unix/bincue_unix.cpp -> ../../../BasiliskII/src/Unix/bincue_unix.cpp
  • SheepShaver/src/Unix/bincue_unix.h -> ../../../BasiliskII/src/Unix/bincue_unix.h
  • SheepShaver/src/Unix/clip_unix.cpp -> ../../../BasiliskII/src/Unix/clip_unix.cpp
  • SheepShaver/src/Unix/config.guess -> ../../../BasiliskII/src/Unix/config.guess
  • SheepShaver/src/Unix/config.sub -> ../../../BasiliskII/src/Unix/config.sub
  • SheepShaver/src/Unix/cpr.sh -> ../../../BasiliskII/src/Unix/cpr.sh
  • SheepShaver/src/Unix/disk_sparsebundle.cpp -> ../../../BasiliskII/src/Unix/disk_sparsebundle.cpp
  • SheepShaver/src/Unix/disk_unix.h -> ../../../BasiliskII/src/Unix/disk_unix.h
  • SheepShaver/src/Unix/ether_unix.cpp -> ../../../BasiliskII/src/Unix/ether_unix.cpp
  • SheepShaver/src/Unix/extfs_unix.cpp -> ../../../BasiliskII/src/Unix/extfs_unix.cpp
  • SheepShaver/src/Unix/keycodes -> ../../../BasiliskII/src/Unix/keycodes
  • SheepShaver/src/Unix/ldscripts -> ../../../BasiliskII/src/Unix/ldscripts
  • SheepShaver/src/Unix/m4 -> ../../../BasiliskII/src/Unix/m4
  • SheepShaver/src/Unix/posix_sem.cpp -> ../../../BasiliskII/src/Unix/posix_sem.cpp
  • SheepShaver/src/Unix/rpc.h -> ../../../BasiliskII/src/Unix/rpc.h
  • SheepShaver/src/Unix/rpc_unix.cpp -> ../../../BasiliskII/src/Unix/rpc_unix.cpp
  • SheepShaver/src/Unix/semaphore.h -> ../../../BasiliskII/src/Unix/semaphore.h
  • SheepShaver/src/Unix/serial_unix.cpp -> ../../../BasiliskII/src/Unix/serial_unix.cpp
  • SheepShaver/src/Unix/sshpty.c -> ../../../BasiliskII/src/Unix/sshpty.c
  • SheepShaver/src/Unix/sshpty.h -> ../../../BasiliskII/src/Unix/sshpty.h
  • SheepShaver/src/Unix/strlcpy.c -> ../../../BasiliskII/src/Unix/strlcpy.c
  • SheepShaver/src/Unix/strlcpy.h -> ../../../BasiliskII/src/Unix/strlcpy.h
  • SheepShaver/src/Unix/sys_unix.cpp -> ../../../BasiliskII/src/Unix/sys_unix.cpp
  • SheepShaver/src/Unix/tinyxml2.cpp -> ../../../BasiliskII/src/Unix/tinyxml2.cpp
  • SheepShaver/src/Unix/tinyxml2.h -> ../../../BasiliskII/src/Unix/tinyxml2.h
  • SheepShaver/src/Unix/tunconfig -> ../../../BasiliskII/src/Unix/tunconfig
  • SheepShaver/src/Unix/vhd_unix.cpp -> ../../../BasiliskII/src/Unix/vhd_unix.cpp
  • SheepShaver/src/Unix/xpram_unix.cpp -> ../../../BasiliskII/src/Unix/xpram_unix.cpp
  • mkstandalone -> ../../../../BasiliskII/src/Unix/Darwin/mkstandalone
  • pagezero.c -> ../../../../BasiliskII/src/Unix/Darwin/pagezero.c
  • testlmem.sh -> ../../../../BasiliskII/src/Unix/Darwin/testlmem.sh
  • audio_irix.cpp -> ../../../../BasiliskII/src/Unix/Irix/audio_irix.cpp
  • NetDriver -> ../../../../BasiliskII/src/Unix/Linux/NetDriver
  • scsi_linux.cpp -> ../../../../BasiliskII/src/Unix/Linux/scsi_linux.cpp
  • SheepShaver/src/Unix/Darwin/mkstandalone -> ../../../../BasiliskII/src/Unix/Darwin/mkstandalone
  • SheepShaver/src/Unix/Darwin/pagezero.c -> ../../../../BasiliskII/src/Unix/Darwin/pagezero.c
  • SheepShaver/src/Unix/Darwin/testlmem.sh -> ../../../../BasiliskII/src/Unix/Darwin/testlmem.sh
  • SheepShaver/src/Unix/Irix/audio_irix.cpp -> ../../../../BasiliskII/src/Unix/Irix/audio_irix.cpp
  • SheepShaver/src/Unix/Linux/NetDriver -> ../../../../BasiliskII/src/Unix/Linux/NetDriver
  • SheepShaver/src/Unix/Linux/scsi_linux.cpp -> ../../../../BasiliskII/src/Unix/Linux/scsi_linux.cpp
  • SheepShaver/src/Windows/b2ether -> ../../../BasiliskII/src/Windows/b2ether
  • SheepShaver/src/Windows/cd_defs.h -> ../../../BasiliskII/src/Windows/cd_defs.h
  • SheepShaver/src/Windows/cdenable -> ../../../BasiliskII/src/Windows/cdenable
  • SheepShaver/src/Windows/clip_windows.cpp -> ../../../BasiliskII/src/Windows/clip_windows.cpp
  • SheepShaver/src/Windows/ether_windows.cpp -> ../../../BasiliskII/src/Windows/ether_windows.cpp
  • SheepShaver/src/Windows/ether_windows.h -> ../../../BasiliskII/src/Windows/ether_windows.h
  • SheepShaver/src/Windows/extfs_windows.cpp -> ../../../BasiliskII/src/Windows/extfs_windows.cpp
  • SheepShaver/src/Windows/posix_emu.cpp -> ../../../BasiliskII/src/Windows/posix_emu.cpp
  • SheepShaver/src/Windows/posix_emu.h -> ../../../BasiliskII/src/Windows/posix_emu.h
  • SheepShaver/src/Windows/prefs_editor_gtk.cpp -> ../../../BasiliskII/src/Windows/prefs_editor_gtk.cpp
  • SheepShaver/src/Windows/router -> ../../../BasiliskII/src/Windows/router
  • SheepShaver/src/Windows/serial_windows.cpp -> ../../../BasiliskII/src/Windows/serial_windows.cpp
  • SheepShaver/src/Windows/sys_windows.cpp -> ../../../BasiliskII/src/Windows/sys_windows.cpp
  • SheepShaver/src/Windows/timer_windows.cpp -> ../../../BasiliskII/src/Windows/timer_windows.cpp
  • SheepShaver/src/Windows/util_windows.cpp -> ../../../BasiliskII/src/Windows/util_windows.cpp
  • SheepShaver/src/Windows/util_windows.h -> ../../../BasiliskII/src/Windows/util_windows.h
  • SheepShaver/src/Windows/xpram_windows.cpp -> ../../../BasiliskII/src/Windows/xpram_windows.cpp
  • SheepShaver/src/dummy/audio_dummy.cpp -> ../../../BasiliskII/src/dummy/audio_dummy.cpp
  • SheepShaver/src/dummy/clip_dummy.cpp -> ../../../BasiliskII/src/dummy/clip_dummy.cpp
  • SheepShaver/src/dummy/prefs_editor_dummy.cpp -> ../../../BasiliskII/src/dummy/prefs_editor_dummy.cpp
  • SheepShaver/src/dummy/scsi_dummy.cpp -> ../../../BasiliskII/src/dummy/scsi_dummy.cpp
  • SheepShaver/src/dummy/serial_dummy.cpp -> ../../../BasiliskII/src/dummy/serial_dummy.cpp
  • SheepShaver/src/include/adb.h -> ../../../BasiliskII/src/include/adb.h
  • SheepShaver/src/include/audio.h -> ../../../BasiliskII/src/include/audio.h
  • SheepShaver/src/include/audio_defs.h -> ../../../BasiliskII/src/include/audio_defs.h
  • SheepShaver/src/include/cdrom.h -> ../../../BasiliskII/src/include/cdrom.h
  • SheepShaver/src/include/clip.h -> ../../../BasiliskII/src/include/clip.h
  • SheepShaver/src/include/debug.h -> ../../../BasiliskII/src/include/debug.h
  • SheepShaver/src/include/disk.h -> ../../../BasiliskII/src/include/disk.h
  • SheepShaver/src/include/extfs.h -> ../../../BasiliskII/src/include/extfs.h
  • SheepShaver/src/include/extfs_defs.h -> ../../../BasiliskII/src/include/extfs_defs.h
  • SheepShaver/src/include/pict.h -> ../../../BasiliskII/src/include/pict.h
  • SheepShaver/src/include/prefs.h -> ../../../BasiliskII/src/include/prefs.h
  • SheepShaver/src/include/scsi.h -> ../../../BasiliskII/src/include/scsi.h
  • SheepShaver/src/include/serial.h -> ../../../BasiliskII/src/include/serial.h
  • SheepShaver/src/include/serial_defs.h -> ../../../BasiliskII/src/include/serial_defs.h
  • SheepShaver/src/include/sony.h -> ../../../BasiliskII/src/include/sony.h
  • SheepShaver/src/include/sys.h -> ../../../BasiliskII/src/include/sys.h
  • SheepShaver/src/include/timer.h -> ../../../BasiliskII/src/include/timer.h
  • SheepShaver/src/include/xpram.h -> ../../../BasiliskII/src/include/xpram.h
  • SheepShaver/src/kpx_cpu/src/cpu/jit/x86/codegen_x86.h -> ../../../../../../../BasiliskII/src/uae_cpu/compiler/codegen_x86.h

Symlinked directories

To generate this list of symlinks that need to be deduplicated, it's 3 steps:

# 1. get the repo that we'll be migrating from (assume rev `c3e312f`)
git clone https://github.com/kanjitalk755/macemu

# 2. make a copy, the effect of which is replacing all symlinks
#     with copies of their targets
cp -r macemu macemu_migration

# 3. draw the rest of the fucking owl
git status |grep deleted| grep "^\t" | awk '{print "cd ../BasiliskII && ls -ld  " $2}' | sh | awk "{print \"sh -c 'cd \" \$9 \" && find . -type f | xargs -I{} echo \\\"\" \$9 \"/{} \" \$11 \"/{}\\\" '\" }"  | sh | sed -e 's|/./|/|g' | awk '{print "- [ ] `" $1 "` `" $2 "`"}'
  • SheepShaver/src/BeOS/SheepDriver/sheep_driver.h -> ../../../BasiliskII/src/BeOS/SheepDriver/sheep_driver.h
  • SheepShaver/src/BeOS/SheepDriver/Makefile -> ../../../BasiliskII/src/BeOS/SheepDriver/Makefile
  • SheepShaver/src/BeOS/SheepDriver/sheep_driver.c -> ../../../BasiliskII/src/BeOS/SheepDriver/sheep_driver.c
  • SheepShaver/src/BeOS/SheepNet/sheep_net.h -> ../../../BasiliskII/src/BeOS/SheepNet/sheep_net.h
  • SheepShaver/src/BeOS/SheepNet/Makefile -> ../../../BasiliskII/src/BeOS/SheepNet/Makefile
  • SheepShaver/src/BeOS/SheepNet/sheep_net.cpp -> ../../../BasiliskII/src/BeOS/SheepNet/sheep_net.cpp
  • SheepShaver/src/SDL/xpram_sdl.cpp -> ../../BasiliskII/src/SDL/xpram_sdl.cpp
  • SheepShaver/src/SDL/keycodes -> ../../BasiliskII/src/SDL/keycodes
  • SheepShaver/src/SDL/video_sdl2.cpp -> ../../BasiliskII/src/SDL/video_sdl2.cpp
  • SheepShaver/src/SDL/SDLMain.h -> ../../BasiliskII/src/SDL/SDLMain.h
  • SheepShaver/src/SDL/audio_sdl.cpp -> ../../BasiliskII/src/SDL/audio_sdl.cpp
  • SheepShaver/src/SDL/prefs_sdl.cpp -> ../../BasiliskII/src/SDL/prefs_sdl.cpp
  • SheepShaver/src/SDL/SDLMain.m -> ../../BasiliskII/src/SDL/SDLMain.m
  • SheepShaver/src/SDL/video_sdl.cpp -> ../../BasiliskII/src/SDL/video_sdl.cpp
  • SheepShaver/src/Unix/Linux/NetDriver/Makefile -> ../../../../BasiliskII/src/Unix/Linux/NetDriver/Makefile
  • SheepShaver/src/Unix/Linux/NetDriver/README.md -> ../../../../BasiliskII/src/Unix/Linux/NetDriver/README.md
  • SheepShaver/src/Unix/Linux/NetDriver/sheep_net.c -> ../../../../BasiliskII/src/Unix/Linux/NetDriver/sheep_net.c
  • SheepShaver/src/Unix/ldscripts/linux-x86_64.ld -> ../../../BasiliskII/src/Unix/ldscripts/linux-x86_64.ld
  • SheepShaver/src/Unix/ldscripts/linux-i386.ld -> ../../../BasiliskII/src/Unix/ldscripts/linux-i386.ld
  • SheepShaver/src/Unix/ldscripts/linux-ppc.ld -> ../../../BasiliskII/src/Unix/ldscripts/linux-ppc.ld
  • SheepShaver/src/Unix/ldscripts/freebsd-i386.ld -> ../../../BasiliskII/src/Unix/ldscripts/freebsd-i386.ld
  • SheepShaver/src/Unix/m4/esd.m4 -> ../../../BasiliskII/src/Unix/m4/esd.m4
  • SheepShaver/src/Unix/m4/egrep.m4 -> ../../../BasiliskII/src/Unix/m4/egrep.m4
  • SheepShaver/src/Unix/m4/gtk.m4 -> ../../../BasiliskII/src/Unix/m4/gtk.m4
  • SheepShaver/src/Unix/m4/gettext.m4 -> ../../../BasiliskII/src/Unix/m4/gettext.m4
  • SheepShaver/src/Unix/m4/gtk-2.0.m4 -> ../../../BasiliskII/src/Unix/m4/gtk-2.0.m4
  • SheepShaver/src/Windows/b2ether/inc/ntddpack.h -> ../../../BasiliskII/src/Windows/b2ether/inc/ntddpack.h
  • SheepShaver/src/Windows/b2ether/inc/b2ether_hl.h -> ../../../BasiliskII/src/Windows/b2ether/inc/b2ether_hl.h
  • SheepShaver/src/Windows/b2ether/driver/b2ether.h -> ../../../BasiliskII/src/Windows/b2ether/driver/b2ether.h
  • SheepShaver/src/Windows/b2ether/driver/b2ether_read.c -> ../../../BasiliskII/src/Windows/b2ether/driver/b2ether_read.c
  • SheepShaver/src/Windows/b2ether/driver/DEBUG.H -> ../../../BasiliskII/src/Windows/b2ether/driver/DEBUG.H
  • SheepShaver/src/Windows/b2ether/driver/b2ether_write.c -> ../../../BasiliskII/src/Windows/b2ether/driver/b2ether_write.c
  • SheepShaver/src/Windows/b2ether/driver/MAKEFILE -> ../../../BasiliskII/src/Windows/b2ether/driver/MAKEFILE
  • SheepShaver/src/Windows/b2ether/driver/OEMSETUP.INF -> ../../../BasiliskII/src/Windows/b2ether/driver/OEMSETUP.INF
  • SheepShaver/src/Windows/b2ether/driver/b2ether.c -> ../../../BasiliskII/src/Windows/b2ether/driver/b2ether.c
  • SheepShaver/src/Windows/b2ether/driver/SOURCES -> ../../../BasiliskII/src/Windows/b2ether/driver/SOURCES
  • SheepShaver/src/Windows/b2ether/driver/b2ether_openclose.c -> ../../../BasiliskII/src/Windows/b2ether/driver/b2ether_openclose.c
  • SheepShaver/src/Windows/b2ether/nt5/b2ether.h -> ../../../BasiliskII/src/Windows/b2ether/nt5/b2ether.h
  • SheepShaver/src/Windows/b2ether/nt5/b2ether_read.c -> ../../../BasiliskII/src/Windows/b2ether/nt5/b2ether_read.c
  • SheepShaver/src/Windows/b2ether/nt5/b2ether64.sln -> ../../../BasiliskII/src/Windows/b2ether/nt5/b2ether64.sln
  • SheepShaver/src/Windows/b2ether/nt5/b2ether_write.c -> ../../../BasiliskII/src/Windows/b2ether/nt5/b2ether_write.c
  • SheepShaver/src/Windows/b2ether/nt5/B2Win2k.inf -> ../../../BasiliskII/src/Windows/b2ether/nt5/B2Win2k.inf
  • SheepShaver/src/Windows/b2ether/nt5/B2Win7Vista-x64.inf -> ../../../BasiliskII/src/Windows/b2ether/nt5/B2Win7Vista-x64.inf
  • SheepShaver/src/Windows/b2ether/nt5/MAKEFILE -> ../../../BasiliskII/src/Windows/b2ether/nt5/MAKEFILE
  • SheepShaver/src/Windows/b2ether/nt5/b2ether.rc -> ../../../BasiliskII/src/Windows/b2ether/nt5/b2ether.rc
  • SheepShaver/src/Windows/b2ether/nt5/NTDDPACK.H -> ../../../BasiliskII/src/Windows/b2ether/nt5/NTDDPACK.H
  • SheepShaver/src/Windows/b2ether/nt5/b2ether.c -> ../../../BasiliskII/src/Windows/b2ether/nt5/b2ether.c
  • SheepShaver/src/Windows/b2ether/nt5/b2ether64.vcxproj -> ../../../BasiliskII/src/Windows/b2ether/nt5/b2ether64.vcxproj
  • SheepShaver/src/Windows/b2ether/nt5/SOURCES -> ../../../BasiliskII/src/Windows/b2ether/nt5/SOURCES
  • SheepShaver/src/Windows/b2ether/nt5/b2ether_openclose.c -> ../../../BasiliskII/src/Windows/b2ether/nt5/b2ether_openclose.c
  • SheepShaver/src/Windows/b2ether/multiopt.h -> ../../../BasiliskII/src/Windows/b2ether/multiopt.h
  • SheepShaver/src/Windows/b2ether/packet32.cpp -> ../../../BasiliskII/src/Windows/b2ether/packet32.cpp
  • SheepShaver/src/Windows/cdenable/eject_nt.h -> ../../../BasiliskII/src/Windows/cdenable/eject_nt.h
  • SheepShaver/src/Windows/cdenable/ntcd.cpp -> ../../../BasiliskII/src/Windows/cdenable/ntcd.cpp
  • SheepShaver/src/Windows/cdenable/cache.h -> ../../../BasiliskII/src/Windows/cdenable/cache.h
  • SheepShaver/src/Windows/cdenable/cdenable.h -> ../../../BasiliskII/src/Windows/cdenable/cdenable.h
  • SheepShaver/src/Windows/cdenable/eject_nt.cpp -> ../../../BasiliskII/src/Windows/cdenable/eject_nt.cpp
  • SheepShaver/src/Windows/cdenable/cache.cpp -> ../../../BasiliskII/src/Windows/cdenable/cache.cpp
  • SheepShaver/src/Windows/cdenable/ntcd.h -> ../../../BasiliskII/src/Windows/cdenable/ntcd.h
  • SheepShaver/src/Windows/router/tcp.h -> ../../../BasiliskII/src/Windows/router/tcp.h
  • SheepShaver/src/Windows/router/dump.h -> ../../../BasiliskII/src/Windows/router/dump.h
  • SheepShaver/src/Windows/router/ftp.cpp -> ../../../BasiliskII/src/Windows/router/ftp.cpp
  • SheepShaver/src/Windows/router/dynsockets.cpp -> ../../../BasiliskII/src/Windows/router/dynsockets.cpp
  • SheepShaver/src/Windows/router/icmp.h -> ../../../BasiliskII/src/Windows/router/icmp.h
  • SheepShaver/src/Windows/router/router_types.h -> ../../../BasiliskII/src/Windows/router/router_types.h
  • SheepShaver/src/Windows/router/arp.cpp -> ../../../BasiliskII/src/Windows/router/arp.cpp
  • SheepShaver/src/Windows/router/tcp.cpp -> ../../../BasiliskII/src/Windows/router/tcp.cpp
  • SheepShaver/src/Windows/router/iphelp.cpp -> ../../../BasiliskII/src/Windows/router/iphelp.cpp
  • SheepShaver/src/Windows/router/ftp.h -> ../../../BasiliskII/src/Windows/router/ftp.h
  • SheepShaver/src/Windows/router/ipsocket.cpp -> ../../../BasiliskII/src/Windows/router/ipsocket.cpp
  • SheepShaver/src/Windows/router/router.cpp -> ../../../BasiliskII/src/Windows/router/router.cpp
  • SheepShaver/src/Windows/router/dynsockets.h -> ../../../BasiliskII/src/Windows/router/dynsockets.h
  • SheepShaver/src/Windows/router/mib/interfaces.cpp -> ../../../BasiliskII/src/Windows/router/mib/interfaces.cpp
  • SheepShaver/src/Windows/router/mib/interfaces.h -> ../../../BasiliskII/src/Windows/router/mib/interfaces.h
  • SheepShaver/src/Windows/router/mib/mibaccess.h -> ../../../BasiliskII/src/Windows/router/mib/mibaccess.h
  • SheepShaver/src/Windows/router/mib/mibaccess.cpp -> ../../../BasiliskII/src/Windows/router/mib/mibaccess.cpp
  • SheepShaver/src/Windows/router/udp.cpp -> ../../../BasiliskII/src/Windows/router/udp.cpp
  • SheepShaver/src/Windows/router/arp.h -> ../../../BasiliskII/src/Windows/router/arp.h
  • SheepShaver/src/Windows/router/iphelp.h -> ../../../BasiliskII/src/Windows/router/iphelp.h
  • SheepShaver/src/Windows/router/icmp.cpp -> ../../../BasiliskII/src/Windows/router/icmp.cpp
  • SheepShaver/src/Windows/router/router.h -> ../../../BasiliskII/src/Windows/router/router.h
  • SheepShaver/src/Windows/router/ipsocket.h -> ../../../BasiliskII/src/Windows/router/ipsocket.h
  • SheepShaver/src/Windows/router/dump.cpp -> ../../../BasiliskII/src/Windows/router/dump.cpp
  • SheepShaver/src/Windows/router/udp.h -> ../../../BasiliskII/src/Windows/router/udp.h
  • SheepShaver/src/slirp/main.h -> ../../BasiliskII/src/slirp/main.h
  • SheepShaver/src/slirp/tcp.h -> ../../BasiliskII/src/slirp/tcp.h
  • SheepShaver/src/slirp/cksum.c -> ../../BasiliskII/src/slirp/cksum.c
  • SheepShaver/src/slirp/ip_icmp.h -> ../../BasiliskII/src/slirp/ip_icmp.h
  • SheepShaver/src/slirp/slirp.c -> ../../BasiliskII/src/slirp/slirp.c
  • SheepShaver/src/slirp/tcp_timer.c -> ../../BasiliskII/src/slirp/tcp_timer.c
  • SheepShaver/src/slirp/debug.h -> ../../BasiliskII/src/slirp/debug.h
  • SheepShaver/src/slirp/mbuf.c -> ../../BasiliskII/src/slirp/mbuf.c
  • SheepShaver/src/slirp/tcpip.h -> ../../BasiliskII/src/slirp/tcpip.h
  • SheepShaver/src/slirp/tcp_output.c -> ../../BasiliskII/src/slirp/tcp_output.c
  • SheepShaver/src/slirp/icmp_var.h -> ../../BasiliskII/src/slirp/icmp_var.h
  • SheepShaver/src/slirp/tftp.c -> ../../BasiliskII/src/slirp/tftp.c
  • SheepShaver/src/slirp/misc.h -> ../../BasiliskII/src/slirp/misc.h
  • SheepShaver/src/slirp/bootp.h -> ../../BasiliskII/src/slirp/bootp.h
  • SheepShaver/src/slirp/ctl.h -> ../../BasiliskII/src/slirp/ctl.h
  • SheepShaver/src/slirp/tcp_var.h -> ../../BasiliskII/src/slirp/tcp_var.h
  • SheepShaver/src/slirp/tcp_subr.c -> ../../BasiliskII/src/slirp/tcp_subr.c
  • SheepShaver/src/slirp/udp.c -> ../../BasiliskII/src/slirp/udp.c
  • SheepShaver/src/slirp/ip_input.c -> ../../BasiliskII/src/slirp/ip_input.c
  • SheepShaver/src/slirp/sbuf.c -> ../../BasiliskII/src/slirp/sbuf.c
  • SheepShaver/src/slirp/socket.c -> ../../BasiliskII/src/slirp/socket.c
  • SheepShaver/src/slirp/if.c -> ../../BasiliskII/src/slirp/if.c
  • SheepShaver/src/slirp/tcp_timer.h -> ../../BasiliskII/src/slirp/tcp_timer.h
  • SheepShaver/src/slirp/debug.c -> ../../BasiliskII/src/slirp/debug.c
  • SheepShaver/src/slirp/mbuf.h -> ../../BasiliskII/src/slirp/mbuf.h
  • SheepShaver/src/slirp/tcp_input.c -> ../../BasiliskII/src/slirp/tcp_input.c
  • SheepShaver/src/slirp/ip_icmp.c -> ../../BasiliskII/src/slirp/ip_icmp.c
  • SheepShaver/src/slirp/slirp.h -> ../../BasiliskII/src/slirp/slirp.h
  • SheepShaver/src/slirp/VERSION -> ../../BasiliskII/src/slirp/VERSION
  • SheepShaver/src/slirp/tftp.h -> ../../BasiliskII/src/slirp/tftp.h
  • SheepShaver/src/slirp/COPYRIGHT -> ../../BasiliskII/src/slirp/COPYRIGHT
  • SheepShaver/src/slirp/libslirp.h -> ../../BasiliskII/src/slirp/libslirp.h
  • SheepShaver/src/slirp/ip.h -> ../../BasiliskII/src/slirp/ip.h
  • SheepShaver/src/slirp/misc.c -> ../../BasiliskII/src/slirp/misc.c
  • SheepShaver/src/slirp/bootp.c -> ../../BasiliskII/src/slirp/bootp.c
  • SheepShaver/src/slirp/socket.h -> ../../BasiliskII/src/slirp/socket.h
  • SheepShaver/src/slirp/if.h -> ../../BasiliskII/src/slirp/if.h
  • SheepShaver/src/slirp/slirp_config.h -> ../../BasiliskII/src/slirp/slirp_config.h
  • SheepShaver/src/slirp/sbuf.h -> ../../BasiliskII/src/slirp/sbuf.h
  • SheepShaver/src/slirp/udp.h -> ../../BasiliskII/src/slirp/udp.h
  • SheepShaver/src/slirp/ip_output.c -> ../../BasiliskII/src/slirp/ip_output.c

Enable actual build tests in Travis / OSX

Travis is running a null test right now as proof of concept for OSX. Replace with a build test

Build Matrix

macOS 64-bit JIT
Linux 32-bit JIT
MinGW 32-bit ---

How To Build

These builds need to be installed SDL2 framework/library.

macOS

  1. Open SheepShaver/src/MacOSX/SheepShaver_Xcode8.xcodeproj
  2. Set Build Configuration to Release
  3. Build

Linux(x86)

$ cd macemu/SheepShaver
$ make links
$ cd src/Unix
$ ./autogen.sh
$ make

also:
https://www.emaculation.com/doku.php/compiling_sheepshaver_basilisk

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.