Commit Graph

90 Commits

Author SHA1 Message Date
Seba Gamboa e871b77f41 Increasing docs coverage 2015-10-20 12:16:46 -03:00
cremno 2ee84eb3df remove unnecessary including of <ctype.h>
Not needed anymore since 85075bef75
2015-05-28 10:44:20 +02:00
Hiroshi Mimaki ed15477c74 Pacify MSVC warnings for numeric.c, proc.c, and symbol.c 2014-10-02 13:37:49 +09:00
Yukihiro "Matz" Matsumoto b72e94fa6b mrbconf.h option MRB_USE_ETEXT_EDATA to reduce memory.
on platforms with _etext and _edata, mruby can distinguish string literals so that it avoids memory allocation to copy them.
for example, on my Linux box (x86 32bit), memory consumed by mrbtest decreased from 8,168,203 to 8,078,848 (reduced 88KB).
2014-09-30 23:48:57 +09:00
Yukihiro "Matz" Matsumoto bbf24b8463 mrb_sym2name_len() should initialize lenp even when proper symbol does not exist 2014-09-30 22:46:19 +09:00
Yukihiro "Matz" Matsumoto 7a7dcd12e5 remove unnecessary trailing comma to remove pre C99 declaration error with -Wdeclaration-after-statement 2014-09-30 22:40:55 +09:00
Yukihiro "Matz" Matsumoto 4a55b42984 O(1) mrb_sym2name_len(); close #2591
instead of adding sym->name hash table, linear symbol table is added, and reduced name->sym hash table size.
2014-09-30 20:15:27 +09:00
Yukihiro "Matz" Matsumoto 6057b2e378 change mrb_sym type from uint16_t to uint32_t 2014-09-15 01:48:08 +09:00
Yukihiro "Matz" Matsumoto 9b4ec380d2 use uint16_t instead of short; ref #2568 2014-09-05 00:47:22 +09:00
cremno c219c2a15e use RITE_LV_NULL_MARK for better readability
The comment didn't say why the length is reserved.
Using RITE_LV_NULL_MARK makes things a bit clearer.
2014-08-29 15:53:52 +02:00
cremno 0e28f4b973 add sym_validate_len() to validate symbol length
This also fixes an off-by-one in mrb_check_intern().
2014-08-29 15:53:51 +02:00
cremno 89b27648dd add symbol table overflow check
Since raising an error might intern a few new strings, some symbols need
to be reserved. 8 should be sufficient.

If the real limit has been reached, mrb_bug() is called.
2014-08-27 12:51:10 +02:00
Yukihiro "Matz" Matsumoto 206f89e209 add MRB_API modifiers to mruby API functions 2014-08-04 00:47:08 +09:00
Jun Hiroe 18d8f9d124 Refactor sym_equal() in symbol.c 2014-07-27 15:56:21 +09:00
Yukihiro "Matz" Matsumoto c4268f67d0 UINT16_MAX as symbol length is reserved; ref #2294 2014-05-19 18:43:32 +09:00
kyab 1405f3a514 Fix MSVC warning for symbol.c 2014-04-29 13:00:11 +09:00
Yukihiro "Matz" Matsumoto 48f36d3f0e better integer size assertion suggested by usak 2014-04-25 04:33:08 +09:00
Yukihiro "Matz" Matsumoto 320f0711f0 remove -Wsign-compare warnings 2014-04-25 02:33:33 +09:00
Yukihiro "Matz" Matsumoto 5138f62d6b resolve conflict 2014-04-15 10:55:46 +09:00
Yukihiro "Matz" Matsumoto 10db9e62b6 fixed wrong use of pointer reference found by @tsahara; ref #2059 2014-04-14 16:48:23 +09:00
cremno 649081661a reduce RSTRING_PTR usage 2014-04-14 00:58:34 +02:00
Yukihiro "Matz" Matsumoto 18ee842bea replace memcpy() with a magic number by two assignments as suggested by @cremno; close #2048 2014-04-12 14:28:43 +09:00
ksss 8d15ef2e89 Use bool macro KHASH_DEFINE and KHASH_DECLARE 2014-04-02 13:38:43 +00:00
Yukihiro "Matz" Matsumoto 180b3d5678 change mrb_int to size_t that would take strlen() 2014-03-19 00:17:03 +09:00
Yukihiro "Matz" Matsumoto c476c1b528 symbol length type to be mrb_int 2014-03-15 15:43:40 +09:00
ksss 58a5e832d9 fix sym_intern argument type 2014-03-11 09:12:56 +09:00
Yukihiro "Matz" Matsumoto 86a48b7c48 Merge pull request #1840 from ksss/bit-field
set bit field for mrb_bool
2014-03-10 22:24:36 +09:00
ksss a53dd33eaa set bool macro 2014-03-10 13:18:34 +00:00
ksss 49a048c544 set bit field for mrb_bool 2014-03-10 13:14:07 +00:00
ksss 4070b5987a embed small string
use flags 4 for *this object is embed*
use flags 8~64 for *embed string length*
2014-03-06 13:12:08 +00:00
Yukihiro "Matz" Matsumoto ebd976be84 initialize sname before interning 2014-02-25 10:43:16 +09:00
cremno 4507985c3e use mrb_bool, FALSE and TRUE more
It doesn't matter to me if one is using FALSE/TRUE instead of 1/0
but I prefer a type (alias) which emphasizes boolean vars to int.
I changed 1/0 to FALSE/TRUE anyway.
2014-01-31 18:00:36 +01:00
cremno aa655b9ee1 remove superfluous includes
- reduce compile time by a little bit (full-core: ~0.7s for me)
- thanks to 'include-what-you-use' for some help
- include Standard C header files before any other (coding style)
2014-01-07 17:56:30 +01:00
Yukihiro "Matz" Matsumoto c6ceed22d9 rename mrb_intern_litral -> mrb_intern_static 2013-12-25 08:40:26 +09:00
Yukihiro "Matz" Matsumoto bc7a6e88a1 zero copy C literal strings in symbol table 2013-12-24 08:27:42 +09:00
Yukihiro "Matz" Matsumoto 55ef024e83 Merge pull request #1615 from crimsonwoods/remove_strong_coupling_by_khash
Remove 'mrb_state' field from 'kh_xxx_t' structure.
2013-12-23 04:31:58 -08:00
crimsonwoods 370ad6fade Remove 'mrb_state' field from 'kh_xxx_t' structure.
'kh_xxx_t' requires 'mrb_state' to allocate, free, and compute hash value.
But 'mrb_state' should not be held by 'kh_xxx_t' and 'mrb_state' should be
supplied from outside.
2013-12-23 00:33:07 -08:00
h2so5 a94be45546 change behavior of mrb_sym2str 2013-12-23 03:27:56 +09:00
Yukihiro "Matz" Matsumoto 9c6398a444 rename mrb_intern2() to mrb_intern(); huge API incompatibility; close #1513 2013-11-29 08:47:28 +09:00
Yukihiro "Matz" Matsumoto 6b015ec775 define Class#new in ruby to call #initialize 2013-08-13 16:55:06 +09:00
Jun Hiroe 8e42868600 Repalace int with mrb_bool because a return value is boolean. 2013-07-15 23:17:12 +09:00
Jun Hiroe 883c45b931 Replace mrb_intern() func with mrb_intern2() func or mrb_intern_cstr() func. 2013-07-12 01:00:50 +09:00
Daniel Bovensiepen 373122a299 Merge upstream 2013-06-15 03:53:50 +08:00
Daniel Bovensiepen fd6e624ba7 Add ISO Number to Symbol 2013-06-17 04:50:54 +08:00
Yukihiro "Matz" Matsumoto 5c68195c88 mrb_str_new_static(): zero copy string creation 2013-04-28 02:47:22 +09:00
Yukihiro "Matz" Matsumoto e63b086f1e rename mrb_interned API functions 2013-04-26 10:57:08 +09:00
Yukihiro "Matz" Matsumoto c99b72b20d Merge branch 'suppress_intern' of https://github.com/crimsonwoods/mruby into crimsonwoods-suppress_intern 2013-04-26 09:18:39 +09:00
crimsonwoods bd1b925931 modify the type of return value (mrb_bool => mrb_value). 2013-04-25 09:51:20 +09:00
Yukihiro "Matz" Matsumoto 30d580ecbc rename every ARGS_XXX to MRB_ARGS_XXX; ref #1206 2013-04-25 09:47:36 +09:00
crimsonwoods 8682b06953 add new functions to check if symbols are interned without registration. 2013-04-25 09:27:00 +09:00