diff --git a/mrbgems/hal-posix-socket/mrbgem.rake b/mrbgems/hal-posix-socket/mrbgem.rake deleted file mode 100644 index 14dca040a..000000000 --- a/mrbgems/hal-posix-socket/mrbgem.rake +++ /dev/null @@ -1,8 +0,0 @@ -MRuby::Gem::Specification.new('hal-posix-socket') do |spec| - spec.license = 'MIT' - spec.author = 'mruby developers' - spec.summary = 'POSIX HAL for mruby-socket (Linux, macOS, BSD, Unix)' - - # HAL gem depends on feature gem - brings in mruby-socket automatically - spec.add_dependency 'mruby-socket', core: 'mruby-socket' -end diff --git a/mrbgems/hal-win-socket/mrbgem.rake b/mrbgems/hal-win-socket/mrbgem.rake deleted file mode 100644 index d959c87e6..000000000 --- a/mrbgems/hal-win-socket/mrbgem.rake +++ /dev/null @@ -1,12 +0,0 @@ -MRuby::Gem::Specification.new('hal-win-socket') do |spec| - spec.license = 'MIT' - spec.author = 'mruby developers' - spec.summary = 'Windows HAL for mruby-socket (Windows, MinGW)' - - # HAL gem depends on feature gem - brings in mruby-socket automatically - spec.add_dependency 'mruby-socket', core: 'mruby-socket' - - # Link Windows socket libraries - spec.linker.libraries << "wsock32" - spec.linker.libraries << "ws2_32" -end diff --git a/mrbgems/mruby-socket/mrbgem.rake b/mrbgems/mruby-socket/mrbgem.rake index 0702f5e0d..a0586944d 100644 --- a/mrbgems/mruby-socket/mrbgem.rake +++ b/mrbgems/mruby-socket/mrbgem.rake @@ -8,30 +8,4 @@ MRuby::Gem::Specification.new('mruby-socket') do |spec| spec.add_dependency('mruby-io', :core => 'mruby-io') spec.add_dependency('mruby-error', :core => 'mruby-error') # spec.add_dependency('mruby-mtest') - - # Check if HAL gem is loaded - # HAL gems must be explicitly specified in build config (recommended) or via auto-selection below - spec.build.gems.one? { |g| g.name =~ /^hal-.*-socket$/ } or begin - # No HAL found - determine appropriate error message or auto-load - suggested_hal = if spec.for_windows? - 'hal-win-socket' - elsif RUBY_PLATFORM =~ /linux|darwin|bsd/ - 'hal-posix-socket' - else - nil - end - - if suggested_hal - # Auto-load HAL gem for convenience (for development) - # This works because HAL gems declare dependency on mruby-socket - warn "mruby-socket: No HAL specified, loading #{suggested_hal} (explicit selection recommended)" - spec.build.gem core: suggested_hal - else - # Unknown platform - fail with helpful message - fail "mruby-socket: No HAL available for platform '#{RUBY_PLATFORM}'.\n" \ - "Please specify HAL gem explicitly in your build config:\n" \ - " conf.gem core: 'hal-posix-socket' # For Linux/macOS/BSD\n" \ - " conf.gem core: 'hal-win-socket' # For Windows" - end - end end diff --git a/mrbgems/hal-posix-socket/src/socket_hal.c b/mrbgems/mruby-socket/ports/posix/socket_hal.c similarity index 90% rename from mrbgems/hal-posix-socket/src/socket_hal.c rename to mrbgems/mruby-socket/ports/posix/socket_hal.c index 1cc08c5af..93e7a77ec 100644 --- a/mrbgems/hal-posix-socket/src/socket_hal.c +++ b/mrbgems/mruby-socket/ports/posix/socket_hal.c @@ -137,21 +137,3 @@ mrb_hal_socket_unix_path(mrb_state *mrb, const char *sockaddr, size_t socklen) return mrb_str_new_cstr(mrb, ((const struct sockaddr_un*)sockaddr)->sun_path); } - -/* - * Gem initialization - */ - -void -mrb_hal_posix_socket_gem_init(mrb_state *mrb) -{ - (void)mrb; - /* HAL interface functions are called by mruby-socket gem */ -} - -void -mrb_hal_posix_socket_gem_final(mrb_state *mrb) -{ - (void)mrb; - /* Cleanup handled by mrb_hal_socket_final called from mruby-socket */ -} diff --git a/mrbgems/hal-win-socket/src/socket_hal.c b/mrbgems/mruby-socket/ports/win/socket_hal.c similarity index 92% rename from mrbgems/hal-win-socket/src/socket_hal.c rename to mrbgems/mruby-socket/ports/win/socket_hal.c index f052a0998..232686b1a 100644 --- a/mrbgems/hal-win-socket/src/socket_hal.c +++ b/mrbgems/mruby-socket/ports/win/socket_hal.c @@ -156,21 +156,3 @@ mrb_hal_socket_unix_path(mrb_state *mrb, const char *sockaddr, size_t socklen) "unix_path unsupported on Windows"); return mrb_nil_value(); } - -/* - * Gem initialization - */ - -void -mrb_hal_win_socket_gem_init(mrb_state *mrb) -{ - (void)mrb; - /* HAL interface functions are called by mruby-socket gem */ -} - -void -mrb_hal_win_socket_gem_final(mrb_state *mrb) -{ - (void)mrb; - /* Cleanup handled by mrb_hal_socket_final called from mruby-socket */ -}