Commit Graph

248 Commits (111df1312bac8ea9bb0a60bd572f82493d6eedac)

Author SHA1 Message Date
lethosor 65382473f7 Ruby: stop cpp_new from truncating vtable pointers
This fixes a crash in levers.rb, for instance.
2017-06-10 17:22:52 -04:00
lethosor c3d5663320 Ruby: use Gui module to get selected unit
This allows "exterminate it" to work from command-prompt, among other things.

Fixes #1100
2017-06-06 23:34:34 -04:00
lethosor 4dff218976 ruby: fix crash when unloading plugin on Windows 2017-05-09 13:49:07 -04:00
Ben Rosser f0d4a1f563 Add DOWNLOAD_RUBY option to Ruby plugin cmake, defaulting to ON
If DOWNLOAD_RUBY is set to OFF, the build will not attempt to download
a prebuilt libruby.so and not fire a warning that one is not present.
This may be desired if one wants to link dfhack against a newer system
libruby.so, now that dfhack supports ruby 2.x and also supports linking
against system libruby (at least, on Linux), as per the following commit:

df9b5bca73

This also allows the dfhack build to proceed without network access
(once all submodules have been fetched), which at least some Linux
distributions, like Fedora, require.

By default DOWNLOAD_RUBY is set to ON, so this should not change
the behavior of default builds.

I tested that when DOWNLOAD_RUBY is set to OFF, dfhack still launches
and that the Ruby plugin still functions, e.g. by running
```rb_eval puts('Hello world.')``` in the dfhack console.
2017-01-20 17:40:14 -05:00
Kelly Kinkade 439e13643c better hack to make ruby work on win64 2016-12-13 23:55:20 -06:00
jj 8488b1a953 ruby: use correct raw string length with encodings 2016-12-05 10:29:16 +01:00
lethosor dd28079f30 Fix ruby.cpp compilation on win64 2016-11-22 22:43:48 -05:00
lethosor df9b5bca73 Allow ruby plugin to try more than one library path, including libruby.so on Linux 2016-11-17 10:31:48 -05:00
lethosor 8d9b888410 Revert "fixed MD5 hash of win64 ruby lib."
Unable to get anything other than 8a856 for the extracted library on my end

This reverts commit fbaf2697cb.
2016-11-14 14:16:43 -05:00
Japa Illo fbaf2697cb fixed MD5 hash of win64 ruby lib. 2016-11-08 15:10:43 +05:30
lethosor 2e6c7a90be fix whitespace 2016-10-31 01:58:40 -04:00
lethosor 9e97ccbb50 Use system libruby on osx64 (since ruby 1.8 and 2 are supported now) 2016-10-29 19:08:54 -04:00
lethosor 4e7f2b9579 win64 ruby 2 2016-10-29 19:00:28 -04:00
jj c640006069 ruby: some more updates for x64, fix df_flagarray size 2016-10-28 16:40:14 +02:00
lethosor d62d263793 ruby: Fix potential onupdate crash when cur_year is missing 2016-10-26 20:55:16 -04:00
lethosor cf329c7ceb Ruby: fix Qnil and Qtrue constants with 64-bit Ruby 2.x
These have different values on x64 Ruby 2.x (see USE_FLONUM in ruby.h in the
ruby source). This was causing dump_rb_error to crash, since it was walking an
array until it got to Qnil (but thinking Qnil was 4 instead of 8) and trying to
print each element as a string. There were probably more subtle issues with
Qnil and Qtrue being wrong too.
2016-10-26 20:44:35 -04:00
lethosor defedb351e Fix raw_vcall crash on Linux/OS X x64 2016-10-26 09:34:14 -04:00
lethosor 3df74de021 Fix rb_dfget_vtable_ptr on x64
This was causing rb_dfget_rtti_classname to receive a truncated pointer and
crash
2016-10-21 11:46:53 -04:00
jj 97f29229cd ruby: fix weird freeze when printing large strings to the console on linux64 2016-10-21 17:00:02 +02:00
jj f586692ed6 plugins/ruby: update for 64bits 2016-10-21 14:52:26 +02:00
lethosor 2806fe73a9 ruby: Support for loading Ruby 2.x libruby
Check for rb_float_new and rb_float_new_in_heap, as documented in #271
2016-10-08 17:01:52 -04:00
lethosor 714ba1a030 Warn if ruby library is missing instead of breaking installation 2016-09-26 18:28:59 -04:00
lethosor caa6a81669 Add ruby library for linux x64
Built by @dseguin: https://github.com/DFHack/dfhack/pull/989

Closes dfhack/dfhack#989
2016-09-26 17:46:50 -04:00
lethosor 7abb82b6d1 Switch to downloading 32-bit libruby on Linux and Windows 2016-09-26 17:36:57 -04:00
lethosor 888a09bed5 Switch to downloading OS X libruby 2016-09-26 17:24:35 -04:00
lethosor bbaf129adf Fix ruby codegen for bitfields/enums with long base-type 2016-08-27 15:24:53 -04:00
lethosor 1b11c46a98 ruby.cpp: uint32_t -> uintptr_t 2016-08-10 15:24:07 -04:00
Lethosor 6e741b1a80 Merge pull request #969 from Qartar/win64
Minor fixes/updates for Visual Studio 2015 Win64
2016-08-10 15:15:44 -04:00
Carter Bray 5fef2ad075 Add windows container sizes to ruby codegen 2016-08-07 10:11:17 -07:00
lethosor ddbb1b5bb8 ruby: Update sizes for some types
Many are still incomplete on x64, especially on Windows
2016-08-05 17:29:24 -04:00
lethosor dbd2e71920 Ruby codegen integer improvements
- Add uint64_t
- Add special case for long on different platforms
- Require OS and architecture to be specified

NOTE: integer alignment on x64 is probably still incorrect
2016-08-05 17:12:07 -04:00
lethosor ef569dc5a1 Pass OS and architecture to ruby codegen explicitly
- Passing the architecture is needed to determine sizeof(long)
- Passing the OS prevents potential issues when cross-compiling between Windows
  and non-Windows (although this is unlikely)
2016-08-05 17:09:25 -04:00
Carter Bray 9da2dcb8a2 Fix raw_vcall on Win64 builds
MSVC's call conventions on x64 are the same for normal function calls and
member function calls (with the addition of the implicit 'this'
parameter).
2016-07-31 17:01:57 -07:00
PeridexisErrant 273c22f606 Shorten "ls" help for plugins
I think that's all of them.
2016-04-15 16:28:41 +10:00
Ben Lubar afa1199f98 Add support for grates and bars to Ruby.
See also: DFHack@248331a1967d2527a13bcf259f35bffe4dec86b8, DFHack#808
2016-01-31 15:19:58 -06:00
Ben Lubar 197e5ca2d9 update the name of the pressure plate field in ruby
https://github.com/DFHack/dfhack/blob/0.42.04-alpha2/library/modules/Buildings.cpp#L365-L371
2016-01-30 08:46:16 -06:00
Ben Lubar aab5c61923 set well bucket z correctly when allocating it in ruby
https://github.com/DFHack/dfhack/blob/0.42.04-alpha2/library/modules/Buildings.cpp#L347-L352
2016-01-29 14:51:32 -06:00
lethosor 786581689f Move get_dfhack_version() to a separate namespace and add a few other version-related functions 2015-04-02 16:37:58 -04:00
lethosor 6a64525284 Include a ruby library for OS X
See #560
2015-02-21 21:53:08 -05:00
lethosor d7897caec7 Display a more user-friendly error message when the ruby library is not available 2015-02-21 21:50:25 -05:00
lethosor 0f77a1a578 Move DFHack version to a separate (static) library
This allows the DFHack version to be changed without recompiling
everything
2015-02-19 12:08:23 -05:00
lethosor 10cfef0553 Fix whitespace issues 2015-02-14 22:53:06 -05:00
Yoann Guillot 889bd06ffc ruby: fix windows platform detection 2014-11-16 13:00:38 +01:00
Yoann Guillot 8042c5d342 ruby: load arch-specific ruby-autogen 2014-11-14 12:49:08 +01:00
Yoann Guillot 696380e749 ruby: distinguish ruby-autogen.rb name based on architecture 2014-11-14 12:47:42 +01:00
Yoann Guillot e2229f6a6a ruby: remove DL_RUBY cmake option 2014-11-14 12:38:24 +01:00
jj eed684a8df fix superdwarf 2014-09-26 11:39:05 +02:00
jj 0766538ecd ruby: add df.print_color(col, string) 2014-09-25 15:53:03 +02:00
jj 1a38c72763 ruby: add stl-fstream to codegen 2014-09-25 13:19:00 +02:00
jj c894346639 ruby: call RUBY_INIT_STACK 2014-09-19 21:38:22 +02:00