ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/include/cfperl.h
Revision 1.66 - (view) (download) (annotate) - [select for diffs]
Sat May 26 15:44:03 2007 UTC (17 years ago) by root
Branch: MAIN
CVS Tags: rel-2_1
Changes since 1.65: +29 -31 lines
Diff to previous 1.65
- restore after combined mainboard+harddisk crash
- cleanup/fixes for 2.1 release
- fix invoke to actually do work
- refactor invoke shortcuts, gcc cannot inline
  varargs functions.
- optimised invoke to 4-5 insns in the common case.
- optimised (For no good reason) the int-to-ascii
  conversions of dynbuf_text into division-less and
  branchless code (of which I am pretty proud).
- actually move players to their savebed when they did
  not use one and the map has been reste in the meantime.
  does not kill (yet) when too long.
- enter_map is now handled completely in perl.
- goto is now using generation counting to ensure that only the
  most-recently-issues goto will succeed.
- make some heavy use of __builtin_expect to streamline
  rare callbacks even more.
- optimised thawer.

Revision 1.65 - (view) (download) (annotate) - [select for diffs]
Thu May 24 03:33:29 2007 UTC (17 years ago) by root
Branch: MAIN
Changes since 1.64: +1 -0 lines
Diff to previous 1.64
add books from books.pod via some most dire hacks

Revision 1.64 - (view) (download) (annotate) - [select for diffs]
Sat May 19 00:08:11 2007 UTC (17 years ago) by root
Branch: MAIN
Changes since 1.63: +18 -1 lines
Diff to previous 1.63
- optimise invoke by using an inline check on a bitset (kind of a simplified
  bloom filter for all events).

Revision 1.63 - (view) (download) (annotate) - [select for diffs]
Mon Apr 23 18:09:57 2007 UTC (17 years, 1 month ago) by root
Branch: MAIN
Changes since 1.62: +1 -1 lines
Diff to previous 1.62
- add format utility function.
- split dynbuf into dynbuf and dynbuf_text.
- use dynbuf_text for examine strings instead of
  outputting each line seperately. tried to use stringstreams
  but they add insane overheads (as does std::string, but less so).

Revision 1.62 - (view) (download) (annotate) - [select for diffs]
Tue Apr 17 10:06:33 2007 UTC (17 years, 1 month ago) by root
Branch: MAIN
Changes since 1.61: +18 -5 lines
Diff to previous 1.61
cede less often in background tasks while still reducing jittering

Revision 1.61 - (view) (download) (annotate) - [select for diffs]
Mon Apr 16 11:09:31 2007 UTC (17 years, 1 month ago) by root
Branch: MAIN
Changes since 1.60: +3 -0 lines
Diff to previous 1.60
load archetypes and treasures from perl, make terasures reloadable

Revision 1.60 - (view) (download) (annotate) - [select for diffs]
Mon Apr 16 06:23:41 2007 UTC (17 years, 1 month ago) by root
Branch: MAIN
Changes since 1.59: +0 -1 lines
Diff to previous 1.59
VERY EXPERIMENTAL

- change the way archetypes and treasurelists are being loaded:
  - referring to a nonexisting treasurelist will create an empty one
  - referring to a nonexisting archetype will create an empty one
  - archetypes/treasurelists will overwrite any existing object
    of the same name.

- net effect should be to allow reloading of archetypes and treasurelists
  at runtime at a later stage.

Revision 1.59 - (view) (download) (annotate) - [select for diffs]
Thu Mar 1 19:32:58 2007 UTC (17 years, 2 months ago) by root
Branch: MAIN
CVS Tags: rel-2_0
Changes since 1.58: +2 -2 lines
Diff to previous 1.58
ohne worte

Revision 1.58 - (view) (download) (annotate) - [select for diffs]
Thu Mar 1 12:28:16 2007 UTC (17 years, 2 months ago) by pippijn
Branch: MAIN
Changes since 1.57: +1 -1 lines
Diff to previous 1.57
nano-cleanups

Revision 1.57 - (view) (download) (annotate) - [select for diffs]
Fri Feb 16 19:43:41 2007 UTC (17 years, 3 months ago) by root
Branch: MAIN
Changes since 1.56: +8 -7 lines
Diff to previous 1.56
- identified random memory corrutpion bug
- fixed most likely cause for bug above
- rewrote object loader etc. into a simple one-line lookahead
  parser.
- rewrote/cleaned up archetype, treasure, artifact, formula parser.
- some optimisations / cleanups

Revision 1.56 - (view) (download) (annotate) - [select for diffs]
Thu Feb 15 21:07:49 2007 UTC (17 years, 3 months ago) by root
Branch: MAIN
Changes since 1.55: +17 -6 lines
Diff to previous 1.55
- use a simpler, less fancy loader base design (basically a one-line-lookahead
  top-down parser).

Revision 1.55 - (view) (download) (annotate) - [select for diffs]
Tue Feb 13 16:23:31 2007 UTC (17 years, 3 months ago) by root
Branch: MAIN
Changes since 1.54: +1 -0 lines
Diff to previous 1.54
- make server more fragile w.r.t. watchdog on freeze
- try to make a perl backtrace on crash, too.

Revision 1.54 - (view) (download) (annotate) - [select for diffs]
Sun Feb 11 01:38:48 2007 UTC (17 years, 3 months ago) by root
Branch: MAIN
Changes since 1.53: +2 -1 lines
Diff to previous 1.53
- likely fix the memleak problem.
- leave some dbeuggig code in purposely.

Revision 1.53 - (view) (download) (annotate) - [select for diffs]
Thu Feb 1 19:15:39 2007 UTC (17 years, 3 months ago) by root
Branch: MAIN
Changes since 1.52: +4 -0 lines
Diff to previous 1.52
- improve error messages from object_thawer to incldue line numbers
- provide geenric parse error handler
- finish basic design of generic object loader
- implement generic regions loader
- use it to load regions:
  loader_region loader;
  if (!loader.load (filename))
    error;
- regions should now be the very first filetype that could be reloaded at runtime

Revision 1.52 - (view) (download) (annotate) - [select for diffs]
Fri Jan 26 22:06:30 2007 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.51: +2 -1 lines
Diff to previous 1.51
abstractify attachable sv_unmagic operation

Revision 1.51 - (view) (download) (annotate) - [select for diffs]
Tue Jan 23 03:56:45 2007 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.50: +0 -1 lines
Diff to previous 1.50
I knew there was an explanation

Revision 1.50 - (view) (download) (annotate) - [select for diffs]
Tue Jan 9 21:32:42 2007 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.49: +1 -0 lines
Diff to previous 1.49
- added $cf::WAIT_FOR_TICK*
- tuned map-scheduler and player-scheduler
- added $op->inv_recursive
- added objects_size/objects($index) and actives_size/actives($index)
  for access to the object and actives vector.
- more robust player loader
- removed _perl_data attribute support
- SIGINT/TERM/HUP are now safe as they are handled synchronously.
- replaced LOOK_OBJ by client_visible
- cleanups

Revision 1.49 - (view) (download) (annotate) - [select for diffs]
Mon Jan 8 01:19:03 2007 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.48: +1 -0 lines
Diff to previous 1.48
more preperations for player eviction

Revision 1.48 - (view) (download) (annotate) - [select for diffs]
Sun Jan 7 18:01:09 2007 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.47: +1 -1 lines
Diff to previous 1.47
re-enable map reattach, re-enable emergency player save

Revision 1.47 - (view) (download) (annotate) - [select for diffs]
Sun Jan 7 02:39:14 2007 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.46: +12 -10 lines
Diff to previous 1.46
""

Revision 1.46 - (view) (download) (annotate) - [select for diffs]
Mon Jan 1 00:41:03 2007 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.45: +13 -0 lines
Diff to previous 1.45
use freezer api for saving players, too

Revision 1.45 - (view) (download) (annotate) - [select for diffs]
Sun Dec 31 17:17:23 2006 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.44: +1 -1 lines
Diff to previous 1.44
many minor changes everywhere, random maps crash sometimes but design is in place

Revision 1.44 - (view) (download) (annotate) - [select for diffs]
Sun Dec 31 10:28:36 2006 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.43: +1 -0 lines
Diff to previous 1.43
different interface design for c++/perl map handling, some random map framework

Revision 1.43 - (view) (download) (annotate) - [select for diffs]
Sat Dec 30 15:07:59 2006 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.42: +0 -1 lines
Diff to previous 1.42
minor fixes, apartment hopping seems to work now

Revision 1.42 - (view) (download) (annotate) - [select for diffs]
Sat Dec 30 10:16:10 2006 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.41: +48 -2 lines
Diff to previous 1.41
preliminary snapshot check-in, DO NOT USE IN PRODUCTION SYSTEMS
See the Changes file for details

Revision 1.41 - (view) (download) (annotate) - [select for diffs]
Mon Dec 25 11:25:49 2006 UTC (17 years, 5 months ago) by root
Branch: MAIN
Changes since 1.40: +79 -71 lines
Diff to previous 1.40
- small, but subtle, rewrite of object management
- perl will now keep attachable objects alive
- objects are now refcounted
- refcouts need to be tested explicitly (refcnt_chk)
- explicit destroy is required current
- explicit destroy asks "nicely" for the object to self destruct, if possible
- refcounts will be used during mortal killing
- minor bugfixes, optimisations etc.
- some former hacks removed.

Revision 1.40 - (view) (download) (annotate) - [select for diffs]
Tue Dec 19 04:58:04 2006 UTC (17 years, 5 months ago) by root
Branch: MAIN
Changes since 1.39: +3 -3 lines
Diff to previous 1.39
- separate all comamnds into immediate/socket-level and queued/player-level
- clean up player command handling, handle up to 8 commands/tick

Revision 1.39 - (view) (download) (annotate) - [select for diffs]
Sat Dec 16 21:40:26 2006 UTC (17 years, 5 months ago) by root
Branch: MAIN
Changes since 1.38: +4 -0 lines
Diff to previous 1.38
- clean up some code
- fix some possible (minor) bugs
- use a bitset for anims_sent
- fix a memory leak
- removed dead code

Revision 1.38 - (view) (download) (annotate) - [select for diffs]
Sat Dec 16 03:08:26 2006 UTC (17 years, 5 months ago) by root
Branch: MAIN
Changes since 1.37: +15 -2 lines
Diff to previous 1.37
- socket i/o is completely asynchronous now
- some command sare handled immediately
- others (most palying related commands) are queued
  for later (as of now synchronous) processing
- specifying a max queue length (in seconds) is possible, but disabled
- also add some syntax sugar for network code

Revision 1.37 - (view) (download) (annotate) - [select for diffs]
Fri Dec 15 19:59:19 2006 UTC (17 years, 5 months ago) by root
Branch: MAIN
Changes since 1.36: +1 -1 lines
Diff to previous 1.36
the rename for sanity campaign hits
you died
- renamed stuff
- partially updated copyrights
- some cleanups

Revision 1.36 - (view) (download) (annotate) - [select for diffs]
Thu Dec 14 20:39:54 2006 UTC (17 years, 5 months ago) by root
Branch: MAIN
Changes since 1.35: +48 -0 lines
Diff to previous 1.35
- implement c++ interface to Event->io watchers
- cut number of write()'s the server does in half

Revision 1.35 - (view) (download) (annotate) - [select for diffs]
Thu Dec 14 05:09:32 2006 UTC (17 years, 5 months ago) by root
Branch: MAIN
Changes since 1.34: +9 -6 lines
Diff to previous 1.34
- remove some old socket mode cruft
- preliminarily added attachable client_socket interface to perl
  (untested but also unreachable from perl code atm)

Revision 1.34 - (view) (download) (annotate) - [select for diffs]
Mon Dec 11 23:35:37 2006 UTC (17 years, 5 months ago) by root
Branch: MAIN
Changes since 1.33: +2 -2 lines
Diff to previous 1.33
reduced dependencies on old plug-in api, fixed some bugs and renamed
some methods while I was at it.

Revision 1.33 - (view) (download) (annotate) - [select for diffs]
Mon Dec 11 22:56:57 2006 UTC (17 years, 5 months ago) by root
Branch: MAIN
Changes since 1.32: +10 -9 lines
Diff to previous 1.32
- use new event mechanism for command handling instead of the old plugin system

Revision 1.32 - (view) (download) (annotate) - [select for diffs]
Fri Nov 17 19:40:54 2006 UTC (17 years, 6 months ago) by root
Branch: MAIN
Changes since 1.31: +7 -1 lines
Diff to previous 1.31
* remove arch.h
* use refcounting for archetypes
* cleanup
* strat of generic garbage collector

Revision 1.31 - (view) (download) (annotate) - [select for diffs]
Tue Nov 7 16:30:55 2006 UTC (17 years, 6 months ago) by root
Branch: MAIN
Changes since 1.30: +1 -0 lines
Diff to previous 1.30
re-implement dump and dumpbelow

Revision 1.30 - (view) (download) (annotate) - [select for diffs]
Tue Nov 7 14:58:35 2006 UTC (17 years, 6 months ago) by root
Branch: MAIN
Changes since 1.29: +1 -0 lines
Diff to previous 1.29
- likely fix patch/create variable setters
- abstract away access rights with $ob->may ("xxx") and use it

Revision 1.29 - (view) (download) (annotate) - [select for diffs]
Thu Sep 21 00:05:25 2006 UTC (17 years, 8 months ago) by root
Branch: MAIN
Changes since 1.28: +12 -23 lines
Diff to previous 1.28
further simplify and speed up map saving, fixed
- flag_player_sold was incorrectly saved as "player sold 1"
- flag_has_ready_range was not saved
- flag_is_dust is not in use anymore

not well tested

Revision 1.28 - (view) (download) (annotate) - [select for diffs]
Wed Sep 20 16:46:35 2006 UTC (17 years, 8 months ago) by root
Branch: MAIN
Changes since 1.27: +3 -3 lines
Diff to previous 1.27
*** empty log message ***

Revision 1.27 - (view) (download) (annotate) - [select for diffs]
Sun Sep 17 18:19:19 2006 UTC (17 years, 8 months ago) by root
Branch: MAIN
Changes since 1.26: +2 -0 lines
Diff to previous 1.26
*** empty log message ***

Revision 1.26 - (view) (download) (annotate) - [select for diffs]
Sat Sep 16 22:24:12 2006 UTC (17 years, 8 months ago) by root
Branch: MAIN
Changes since 1.25: +6 -6 lines
Diff to previous 1.25
mapstruct => maptile
removed many ytypedefs in favor of structure tags

Revision 1.25 - (view) (download) (annotate) - [select for diffs]
Sun Sep 10 14:54:02 2006 UTC (17 years, 8 months ago) by root
Branch: MAIN
Changes since 1.24: +7 -0 lines
Diff to previous 1.24
remaining bugfixes

Revision 1.24 - (view) (download) (annotate) - [select for diffs]
Sat Sep 9 21:48:28 2006 UTC (17 years, 8 months ago) by root
Branch: MAIN
Changes since 1.23: +5 -0 lines
Diff to previous 1.23
fix a few ugly pod-constructs on non-pod objects, and a few newly introduced bugs

Revision 1.23 - (view) (download) (annotate) - [select for diffs]
Mon Sep 4 13:55:54 2006 UTC (17 years, 8 months ago) by root
Branch: MAIN
Changes since 1.22: +5 -2 lines
Diff to previous 1.22
fix, uhm, bug. da.

Revision 1.22 - (view) (download) (annotate) - [select for diffs]
Mon Sep 4 11:07:59 2006 UTC (17 years, 8 months ago) by root
Branch: MAIN
Changes since 1.21: +43 -8 lines
Diff to previous 1.21
Changes...

- alternative shstr representation, saves code
- use glibs splice memory allocator (seems slower)
- use simpler memory/lifetime management for objects, no recycling

Revision 1.21 - (view) (download) (annotate) - [select for diffs]
Sun Sep 3 22:45:56 2006 UTC (17 years, 8 months ago) by root
Branch: MAIN
Changes since 1.20: +31 -15 lines
Diff to previous 1.20
string scanning (e.g. for patch) is not implemented ATM but should be easy
to add with an alternative constructor for object_thawer.

Rewrote flex scanner to be simpler, faster and more modularised.

Initial speedup: 16%

(ah well)

Revision 1.20 - (view) (download) (annotate) - [select for diffs]
Thu Aug 31 18:59:24 2006 UTC (17 years, 8 months ago) by root
Branch: MAIN
Changes since 1.19: +72 -9 lines
Diff to previous 1.19
*** empty log message ***

Revision 1.19 - (view) (download) (annotate) - [select for diffs]
Thu Aug 31 17:54:14 2006 UTC (17 years, 8 months ago) by root
Branch: MAIN
Changes since 1.18: +26 -11 lines
Diff to previous 1.18
rewrote object serialiser, parser is next

Revision 1.18 - (view) (download) (annotate) - [select for diffs]
Thu Aug 31 09:19:34 2006 UTC (17 years, 8 months ago) by root
Branch: MAIN
Changes since 1.17: +13 -32 lines
Diff to previous 1.17
*** empty log message ***

Revision 1.17 - (view) (download) (annotate) - [select for diffs]
Thu Aug 31 06:23:19 2006 UTC (17 years, 8 months ago) by root
Branch: MAIN
Changes since 1.16: +27 -16 lines
Diff to previous 1.16
*** empty log message ***

Revision 1.16 - (view) (download) (annotate) - [select for diffs]
Wed Aug 30 16:30:37 2006 UTC (17 years, 8 months ago) by root
Branch: MAIN
Changes since 1.15: +34 -5 lines
Diff to previous 1.15
remove compression support, intiialise perl earlier etc. etc.

Revision 1.15 - (view) (download) (annotate) - [select for diffs]
Wed Aug 30 11:02:15 2006 UTC (17 years, 8 months ago) by root
Branch: MAIN
Changes since 1.14: +7 -2 lines
Diff to previous 1.14
introduce overhead in the hope of decreasing it at some point

Revision 1.14 - (view) (download) (annotate) - [select for diffs]
Wed Aug 30 06:06:27 2006 UTC (17 years, 8 months ago) by root
Branch: MAIN
Changes since 1.13: +1 -1 lines
Diff to previous 1.13
improve thawer interface, implement some monster event support

Revision 1.13 - (view) (download) (annotate) - [select for diffs]
Mon Aug 28 16:52:51 2006 UTC (17 years, 8 months ago) by root
Branch: MAIN
Changes since 1.12: +10 -3 lines
Diff to previous 1.12
disable old-style plug-ins, implement attach-field for map headers and map attachments

Revision 1.12 - (view) (download) (annotate) - [select for diffs]
Mon Aug 28 14:05:24 2006 UTC (17 years, 8 months ago) by root
Branch: MAIN
Changes since 1.11: +14 -13 lines
Diff to previous 1.11
improved,more automatic freezer

Revision 1.11 - (view) (download) (annotate) - [select for diffs]
Mon Aug 28 07:07:41 2006 UTC (17 years, 8 months ago) by root
Branch: MAIN
Changes since 1.10: +9 -9 lines
Diff to previous 1.10
better but more wasteful serialisation support, perl can invoke events, fixes

Revision 1.10 - (view) (download) (annotate) - [select for diffs]
Sun Aug 27 17:59:26 2006 UTC (17 years, 9 months ago) by root
Branch: MAIN
Changes since 1.9: +9 -9 lines
Diff to previous 1.9
fixes, objects on maps get instantiated properly

Revision 1.8 - (view) (download) (annotate) - [select for diffs]
Sun Aug 27 16:15:12 2006 UTC (17 years, 9 months ago) by root
Branch: MAIN
Changes since 1.7: +35 -11 lines
Diff to previous 1.7
first, untested persistent objetc storage for players and objects, not yte for maps

Revision 1.9 - (view) (download) (annotate) - [select for diffs]
Sun Aug 27 15:24:21 2006 UTC (17 years, 9 months ago) by root
Branch: MAIN
Changes since 1.8: +6 -5 lines
Diff to previous 1.8
further refinements

Revision 1.7 - (view) (download) (annotate) - [select for diffs]
Sat Aug 26 23:36:32 2006 UTC (17 years, 9 months ago) by root
Branch: MAIN
Changes since 1.6: +30 -35 lines
Diff to previous 1.6
intermediate check-in, per-object events work

Revision 1.6 - (view) (download) (annotate) - [select for diffs]
Sat Aug 26 08:44:06 2006 UTC (17 years, 9 months ago) by root
Branch: MAIN
Changes since 1.5: +67 -10 lines
Diff to previous 1.5
many, many cleanups

Revision 1.5 - (view) (download) (annotate) - [select for diffs]
Fri Aug 25 17:11:53 2006 UTC (17 years, 9 months ago) by root
Branch: MAIN
Changes since 1.4: +11 -6 lines
Diff to previous 1.4
converted more events, broken per-object events (needs map support), lots of fixes

Revision 1.4 - (view) (download) (annotate) - [select for diffs]
Fri Aug 25 15:21:56 2006 UTC (17 years, 9 months ago) by root
Branch: MAIN
Changes since 1.3: +3 -1 lines
Diff to previous 1.3
Move callback checks to C++ and short-circuit when no callback exists
for an event: No perl is touched when an event doesn't have a callback registered,
so this is very fast (compared to the old way).

Revision 1.3 - (view) (download) (annotate) - [select for diffs]
Fri Aug 25 13:24:50 2006 UTC (17 years, 9 months ago) by root
Branch: MAIN
Changes since 1.2: +32 -17 lines
Diff to previous 1.2
Implemented a rough outline of the new event system and made use of it
for a number of events. The corresponding plugin-events have been disabled.

Revision 1.2 - (view) (download) (annotate) - [select for diffs]
Thu Aug 24 17:29:30 2006 UTC (17 years, 9 months ago) by root
Branch: MAIN
Changes since 1.1: +45 -0 lines
Diff to previous 1.1
- fix extmap protocol
- lay foundation for new event interface (not used, not tested)
- "slow down" in-game time specials

Revision 1.1 - (view) (download) (annotate) - [select for diffs]
Thu Aug 24 13:13:49 2006 UTC (17 years, 9 months ago) by root
Branch: MAIN
- added cfperl.h, soon to be used by events
- no perl == exit, its no longer optional
- moved server main loop entirely in perl
- removed lots of unneeded timekeeping cruft

Convenience Links

Links to HEAD: (view) (download) (annotate) Links to rel-2_1: (view) (download) (annotate)

Compare Revisions

This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, select a symbolic revision name using the selection box, or choose 'Use Text Field' and enter a numeric revision.

  Diffs between and
  Type of Diff should be a