Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - FallenTree

Pages: [1] 2 3 ... 5
1
Drivers / A official statement of FluffOS 3.0
« on: September 07, 2017, 12:57:48 AM »
Status of FluffOS 3.0: FluffOS 3.0 (last release fluffos-3.0-20170831) is actively used by a few big chinese MUDs actively, right now. The primary channel for discussion is via an QQ group .  (a Chinese IM software). I am actively refactoring codebase and fixing any bugs reported anywhere. It's a living driver, with no big issues.

As for the other Libs and general direction of the driver codebase,  this is my statement:

1. The driver will have a rolling release, there will only be 1 version supported at anytime.  No patch will be backported into old releases. If you want to ride the train, then you have to stay with the train, try to migrate to latest version as soon as possible, otherwise it maybe difficult to do so later. (although very few breaking changes are going to be added anyway).
2. The driver will be mostly an runtime config based configurations style. Meaning there are a few knobs in the config file you need to tweak, very very few #define will be added.  That means also you won't need your local_options anymore, just keep your config file.
3. Anything (EFUN, features guarded by runtime config etc) is welcome to be added to the driver,  as long as it has reasonable coding standard and an basic tests.

If you have a lib, and you want to ride the fluffos 3.0 train, you are welcome to do so, I personally will help you find solution for any issues you might encounter during the transition.
If you have a lib, and you don't want to migrate to fluffos 3.0 , that's also fine, no one will force you to migrate, ever. Just ignore FluffOS3 and be happy.

The primary way to reach me is by creating a issue at https://github.com/fluffos/fluffos  .

Thanks.

2
Drivers / new year resolution
« on: December 30, 2015, 11:45:18 PM »
hi all, let's write something you wish to happen to fluffos/mud in 2016

cheers

3
Drivers / WIP: Fluffos 3.0 Alpha 9.0
« on: September 28, 2015, 01:15:16 PM »
Hi all,

It's been a while, and now I present fluffos 3.0-alpha-9.0 to you all.

Major changes:
1. Bundle jemalloc 4.0.3 , build process will build and link to it automatically. Jemalloc will solve memory fragmentation issue.
2. Better formatted  startup logging.
3. new RC(runtime config) system that provides a default value for every option, and output overridden ones on startup.
4. Fixed '\r' translation issue introduced since 7.4
5. Deal with CRLF in both RC configs and read_file, restore_* ,  no more translation needed.

Note:
CYGWIN build is broken for now, as jemalloc is having some trouble compiling under it.

As usual, the code is avaiable at https://github.com/fluffos/fluffos , I havn't tagged a release yet due to CYGWIN issue.

Cheers.

4
Drivers / Fluffos 3.0-alpha-8.1 Releases
« on: June 03, 2015, 11:58:21 AM »
Please checkout

https://github.com/fluffos/fluffos/releases/tag/fluffos-3.0-alpha8.1

fluffos-3.0-alpha8.1
@thefallentree thefallentree released this 2 hours ago

Significant changes
1) This release migrated significant part of local_options into runtime config. Adding set_config() efun, allowing changing runtime config. see src/testsuite/etc/config.test For up-to-date list.
2) Sync thirdparty/libtelnet @ HEAD
3) fix #251 memory accounting int overflow
4) Upgrade object ref counter to uint32, This enables large mud , and more call_outs.
5) Adding runtime config controlled new behavior : Make ed deal with chinese characters. Sprintf ignore ANSI colors.
6) Make replace_program with function reference a warning instead.
7) Restore call_out(0) prevention.
8) Some work on restore_object() to reduce memory usage etc.

Detailed change log in
fluffos:fluffos-3.0-alpha8.0...fluffos:fluffos-3.0-alpha8.1

5
Drivers / Flffos 3.0 alpha8.0
« on: April 14, 2015, 10:36:18 PM »
Long overdue release , download at

https://github.com/fluffos/fluffos/releases/tag/fluffos-3.0-alpha8.0

It's been a while! Way too many commits has been cumulating and the release was delayed by a big code base reorganization.

Here are a few highlights:

1) Huge code base reorganization. Driver code are now organized into 3 groups: base (include shared utils), VM (include LPC VM & compilers) , Packages. There are some driver centric (like networking code) left in the root tree. The VM part is also a bit of a mess, but future effort will continue to refactor them.

There has been a huge amount of header inclusion cleanups, view src/base/README and src/vm/README for details.

BUILD process is also improved, representing a much cleaner build executing structure.

2) Driver now implements a "gametick msec" config option, which defaults to 100ms, HEARTBEAT_INTERVAL compile options is removed, and a new runtime option "heartbeat interval msec" is added.

3) Driver now implements a concept of game-tick, On every game-tick, driver starts a new scheduling round, that includes executing pending call_out, heartbeat and various game related routines. At the end of this round, driver sleeps for "one gametick". Gametick is guaranteed not overlap. (also know as fixed interval scheduling, not fixed rate scheduling) .

With this concept, everything except of networking event in the driver is now executed wrt gametick time, call_out now schedules callback in game time, heartbeat now executes on the boundary of gametick time.

4) In older FluffOS, the driver would periodically attempt to "catch up" with realworld time by executing multiple round of callout/heartbeats in a for loop. This has been removed. call_out_walltime() has been added so LPC can still schedule a event occurring at realworld time. ( A typical usage of this is that you want a call executing every 3600 second in real world time, not the game time).

4) Both call_out and call_out_walltime now accept LPC_FLOAT instead of LPC_INT. the unit is still second, call_out's execution will be rounded to multiply of "gametick msec" , while call_out_walltime can schedule on msec resolution.

For example, if gametick msec is 100ms, callout(..., 0.5) means it will execute callback 5 gameticks later.

6) Continuing rewriting manually managed array to STL containers , reducing memory fragmentation.

Cheers.

6
Drivers / Fluffos.info
« on: December 10, 2014, 12:16:24 AM »
Hi,

I just acquired domain fluffos.info. The plan is to host current website and install discourse (a forum+maillist type of thing). Hopefully create a better discussion place for the future. I am targeting to finish setting it up before new year.

Cheers.

7
Drivers / Code coverage: 49%
« on: October 16, 2014, 11:21:56 PM »
Sth to brighten your day!

FluffOS codebase is not that bad! Pre-existing testsuite covers about 49% of the total code :-D

Enjoy the view from https://coveralls.io/r/fluffos/fluffos

8
Drivers / Status update of fluffos 3.0
« on: October 15, 2014, 05:26:31 PM »
First, a little recap:

Last release of fluffos 3.0 is  fluffos-3.0alpha7.4 ,  which was done , Nov 5, 2013  , almost a year ago. two biggest chinese mud has switched to it without issue (NT, PKUXKX).  More and more people are trying it out in chinese mud community, especially for running under cygwin on windows.

After that, I starte some exploratory work on 1) codebase refactoring, 2) switch to libtelnet, and 3) attempt to add multithreading support in the network stack, 1) is half-assed, 2) is done, and 3) dragged for a long time with no real progress.

Today I made the decision to kill 3) as the goal for 3.0 . I want to get a satisfying codebase out to serve as a future platform for later work.

Here are some of the TODO I have for 3.0, please let me know what you think:

1) finish code base reorganizing, and cleanups, the goal is to untangle the mess of the code has became, make it easier for people to make future changes.
2) remove all malloc nonsense, wrapper etc except sysmalloc and debugmalloc().
3) eliminate all RESIZE, string scratchpad implementations etc in driver, which is suspected to cause memory bloating and performance issues.
4) improve logging and errors if possible.
5) Have a canonical  options file, remove local_options file once and for all, make popular options configurable through runtime config. (like heartbeat_inteval)
6) Support call_out_realtime()  that will trigger base on real time delay, rather than in-game virtual time, this will finally decouple virtual time vs real time, greatly reduce the pressure on cpu on catching up.
7) support configurable driver tick (100ms) , this will inturn support sub second resolution for call_out and heartbeat.
8) Make it possible to compile, and run a LPC file directly on command line

9
Dead Souls Support / Dead-souls on fluffos 3.0
« on: October 01, 2014, 06:33:53 PM »
Hi,

Has anyone tried to run deadsouls on fluffos 3.0alpha7 ? Is it going to be hard?  If I want to try it myselves where do I start?

Thanks

10
Drivers / FluffOS 3.0 now works under CYGWIN
« on: November 12, 2013, 11:17:45 PM »
Hi,

Great news to report:  FluffOS 3.0alpha8 (current HEAD) is now working under CYGWIN32/64.  I would love you guys to try it by following instructions on  http://fluffos.github.io/build.html

NOTE: driver built this way still require all your mudlib file to have unix-line ending.  (some more work need to make it read CRLF without problem), but all functionality should be there, please give it a try and let me know how things goes.

attached proof!

11
Drivers / FluffOS 3.0-alpha7.4
« on: November 06, 2013, 12:56:15 AM »
Download at: https://github.com/fluffos/fluffos/releases/tag/fluffos-3.0-alpha7.4

Sorry for the delay,  it's time for a new release before things get out of hand.  this version has been running in biggest china mud for almost a month, no stability issues,should be good to go.

Also, this includes cygwin compile and freebsd fixes, which is not yet complete but with proper knowledge you can now get them to compile under gcc 4.8.

Cheers!


3.0 vs 2.0 Summary

https://github.com/fluffos/fluffos/blob/next-3.0/ChangeLog.fluffos-3.x

FluffOS 3.0-alpha7.4
New features

PACKAGE_DB: MYSQL NewDecimal Type This is needed in my system for read a column SUM(xxx) in a SELECT. (Zoilder)
Various time tracking efun uses real world time as it should be.
Driver now calls reclaim_objects() automatically.
Default evaluator stack has been increased to 6000. Bug Fix:
Sending string over UDP port now doesn't contain trailing \0. Misc
Moved many internal options to options_internal.
Optimized funciton lookup cache, also increased default cache size. (CPU saver!)
New tick_event loop and callback tree implementation.
Adjusted backend() loop, should have no behavior change.
Adding back 32bit compile mode test.
various compile fixing, althrough not complete, but should be compileable under CYGWIN64 and freebsd using gcc 4.8.
FluffOS 3.0-alpha7.3

User command execution is now integrated into event loop. (at least 10% CPU decrease and better fairness among users).
Fixed unique_mapping() crash when callback returns new objects/array etc.
Fixed memory corruption issue with unsupported TELNET environment negoation.
Fixed memory corruption when reading 0 length file.
restored USE_ICONV in auto testing.
Moved many options into options_internal.h, all the local_options override still works. edit_source will print out "extra" defines local_options contains. This pave the road for reducing complexity of options.h in the future.
ALLOW_INHERIT_AFTER_FUNCTION is now default, no crash anymore.
Previously if a user object is destructed, the message in the buffer would be lost. Now the driver will correctly send them out before terminating connection.
FluffOS 3.0-alpha7.2

unique_mapping() crash when callback returns a non-shared string.
move some outdated doc to /doc/archive.
some format change in EFUN/APPLY doc.
FluffOS 3.0-alpha7.1

disable_commands() change is reverted, not thought through.
enable_commands() now accepts a int instead (see 3.0 vs 2.0)
FluffOS 3.0-alpha7

Check c++11 capability during configuring.
new LPC predefine "CXXFLAGS."
Fixes cmud/zmud problem with TCP_NODELAY with MCCP.
new debug macro "-dadd_action" to show add_action related logs.
disable_commands() now accepts one int argument. (see 3.0 vs 2.0).

12
Drivers / Gather output of mud_status(1)
« on: September 06, 2013, 12:31:04 PM »
Hi,

I want to gather some data the output of mud_status(1) ,  just execute this in your mud's busiest moment and past the output here:

you can simply do "eval write(mud_status(1));"

This efun prints out some statistics of various aspect of the driver that I'm optimizing. (FluffOS 2.x also works)

Cheers.

13
Drivers / Virtual time in fluffos
« on: September 04, 2013, 02:28:54 AM »
Hey guys, I'm currently doing callout eventloop integration and here is a question:

FluffFOS since 2.0 has switched to a virtual timing system, virtual time plays catch up with real time,  (it executes multiple rounds together, if you've previously lost some time) that means when you add a call_out , you are actually delaying to a virtual time it will execute several time in a loop until it catches up,  So, visually it would be like this

...X....X....XX...X...X...X...XXX...XX....

It is actually pretty good,  smoothing inevitable delays into some small chunk that is easier to deal, while also prevent losing heartbeats. However, this means some call_outs() are actually executed early (they were targeted to a delay of virtual time, which will advance fast).

While working on integerating callout and heartbeat into eventloop i realized above and i am using a different model, in my model

call_outs corresponds to real time , when you say call_out(1), it will always be executed in no less than 1 seconds.  Heartbeat is still under virtual time,  so that we could have

1) try to keep up with real time by executing heartbeat faster

X...XX....X...XX....X...XX  (X means heart_beat execution)

2)  or simply drop heart_beat when things delay too much

X....X....X.............X (some thing happened cause delay and driver only execute one round of heartbeat and reset heartbeat).

So it boils down whether we would accept losing heart_beats() in time of lag.  by time T we should have executed T/interval s of heart_beats but due to execution time loss we only executed X , should driver catch up ? or should river silent ignore? Which one do you prefer?

14
Drivers / Fluffos 3.0 alpha7.3
« on: August 19, 2013, 10:54:54 PM »
https://github.com/fluffos/fluffos/releases/tag/fluffos-3.0-alpha7.3

Fluffos 3.0 (alpha7.3)
  sunyc released this a minute ago

3.0 vs 2.0 Summary

https://github.com/fluffos/fluffos/blob/next-3.0/ChangeLog.fluffos-3.x

FluffOS 3.0-alpha7.3

User command execution is now integrated into event loop. (at least 10% CPU decrease and better fairness among users).
Fixed unique_mapping() crash when callback returns new objects/array etc.
Fixed memory corruption issue with unsupported TELNET environment negoation.
Fixed memory corruption when reading 0 length file.
restored USE_ICONV in auto testing.
Moved many options into options_internal.h, all the local_options override still works. edit_source will print out "extra" defines local_options contains. This pave the road for reducing complexity of options.h in the future.
ALLOW_INHERIT_AFTER_FUNCTION is now default, no crash anymore.
Previously if a user object is destructed, the message in the buffer would be lost. Now the driver will correctly send them out before terminating connection.
FluffOS 3.0-alpha7.2

unique_mapping() crash when callback returns a non-shared string.
move some outdated doc to /doc/archive.
some format change in EFUN/APPLY doc.
FluffOS 3.0-alpha7.1

disable_commands() change is reverted, not thought through.
enable_commands() now accepts a int instead (see 3.0 vs 2.0)
FluffOS 3.0-alpha7

Check c++11 capability during configuring.
new LPC predefine "__CXXFLAGS__."
Fixes cmud/zmud problem with TCP_NODELAY with MCCP.
new debug macro "-dadd_action" to show add_action related logs.
disable_commands() now accepts one int argument. (see 3.0 vs 2.0).

15
General / Thanks for fixing the forum
« on: August 19, 2013, 02:18:27 PM »
Had me worried for a sec.

Pages: [1] 2 3 ... 5