Giter VIP home page Giter VIP logo

worldtm's People

worldtm's Issues

Terminal and window class needs to support resizing and move

The terminal and window class needs to support resizing and repositioning
functions.  Once done, resizing the actual terminal, addressed in r2,
should result in World windows resizing and repositioning themselves to
match the new real terminal constraints.


Original issue reported on code.google.com by [email protected] on 5 Dec 2008 at 10:02

Window delta rendering

When drawing to windows, the same character/attribute should not be drawn on 
top of itself.

Original issue reported on code.google.com by [email protected] on 12 Feb 2011 at 4:23

Harden the map agent IPC dispatcher

The map agent agent directly evaluates all incoming messages.  This is insecure 
and vestigial behavior originates from the initial IPC prototype.

The user agent's IPC dispatcher validates all incoming messages first.  This 
behavior should be applied to the map agent as well.

Original issue reported on code.google.com by [email protected] on 6 Feb 2012 at 6:22

Multi-cell avatars

All World entities are currently modeled as a single cell.  Entities will 
initially be enhanced to allow statically arranged multi-celled objects.  
Eventually mutable cell count and random cell arrangements will be implemented.

An implementation of Pong will require paddles implemented as a multi-cell 
avatar in the shape of a long movable block.  Movement, collision, and 
rendering details will be addressed during Pong development.

Original issue reported on code.google.com by [email protected] on 16 Nov 2010 at 7:49

Random World startup crash

There is an issue with World Scheme that is triggered randomly when World 
starts up.  It occurs during the initial map loading and rendering.

The bug needs to be identified and a regtest created which will trigger the 
issue.

Original issue reported on code.google.com by [email protected] on 9 Jun 2010 at 5:19

User State and Credentials DB

No user state is stored beyond the immediate world process.  Users will be 
allowed to register themselves which will keep track of at least the following:
 * login/password
 * chat color
 * last avatar location
 * window layout
 * flags

The following state will be experimental:
 * chat history
 * not-chat messages or logs
 * items (World objects cell based or logical [unimplemented])

Original issue reported on code.google.com by [email protected] on 23 Jan 2012 at 12:55

Implement star topology socket IPC

The current IPC topology implements a tree structure.  For each node in the 
tree, messages are received then rebroadcast to the other connected nodes.

If a World instance hangs, it's port remains used but not released.  Further 
World instances are no longer able to communicate with nodes on ports below the 
unreleased port.  A star topology should alleviate this issue for now.

Original issue reported on code.google.com by [email protected] on 12 Aug 2010 at 11:45

Error handling

comp.c::compVectorVectorRef needs argument count checks.


Evaluating (make-vector-vector 20) halts with a cryptic message ERROR::(9a30b 
9a30b).


The following class definition has semantic errors which, when cause an 
exception as column defaults to null.  The error reported should report the 
variable along with its environment hierarchy in a useful manner.
(define (Class)
  (define (column) ...)
  (define (fun)
    ; Since letrec, call to column is really a
    ; call to undefined letrec var.
    (letrec ((column (column)))...)))

Original issue reported on code.google.com by [email protected] on 9 Feb 2011 at 1:38

Interrupts wake up sleeping threads prematurely

To replicate create an interrupt handler, call sleep then send the interrupt:

(vector-set! SIGNALHANDLERS 2 (lambda () (display 'interrupt) (unthread)))
(signal 2)
(begin (sleep 10000) (display 'DONE))

Hitting ctrl-c will result in "^CinterruptDONE" being displayed.

Original issue reported on code.google.com by [email protected] on 9 Sep 2010 at 8:09

A Moon[tm] server

World is strongly coupled with map data and other files used to create the 
current environment on the development server.  Once the code base stabilizes, 
a minimal configuration and set of data files should be created and included 
with the distribution.

The goal of this issue to facilitate distribution and configuration of the 
World project to other servers.  A "Moon[tm]" environment will be created, 
configured and run independently from the current World[tm] server.  This 
process will be streamlined over time.

Original issue reported on code.google.com by [email protected] on 28 Feb 2011 at 2:49

Design Documents

No design document exists save for brief descriptions in the initial comments 
in each module.

There should be an overall design document as well as sub documents for each 
module.

Original issue reported on code.google.com by [email protected] on 27 Sep 2011 at 4:56

Window object buffer history support

The window objects do not support a buffer larger than the window size nor does 
the window keep state after resizing.  A history buffer needs to be implemented 
facilitating a scrollable message window.

Original issue reported on code.google.com by [email protected] on 11 Aug 2010 at 8:40

World lacks gravity

Currently avatars can be positioned anywhere by moving in one of 8 planar 
directions and two vertical.  Since World is supposed to be a simulation of 
reality, I need to implement gravity along with a few other related actions:

Step climbing
Slope scaling
Jumping
Falling
Floating?

Original issue reported on code.google.com by [email protected] on 26 Oct 2010 at 1:37

Hardware scrolling

Accelerated terminal scrolling is not occurring in some windows due to an 
incorrect 'VisibleCount' member variable in the window object which tracks the 
number of visible characters.  It is used in the "hardwareScrollable?" method.  
The following cases must be considered when updating this variable:

 * Dominate window movement and order shift
 * Movement within and beyond the terminal boundaires
 * Shifting window order (not yet implemented)

A subordinate window motion or shifting will not affect a dominate window's 
VisibleCount.

Original issue reported on code.google.com by [email protected] on 25 Jan 2012 at 8:11

Debugger to catch more exceptions

World crashes a lot.  When it does little information is given to the user
besides a cryptic shell error message and line number.  World Scheme should
handle graceful exceptions or runtime errors by printing, at least, the
following information:

* The current running thread's call stack which includes the pre-compiled
expression string of each frame.

* Active threads and their pre-compiled expression strings.

* Virtual machine register values and current heap dump. This might be
overkill as it may be very large and so may be written to a local file instead.

Original issue reported on code.google.com by [email protected] on 24 Jun 2009 at 1:01

Autonomous World entities

World entities are mainly controlled by connected users.  A richer environment 
requires more autonomous entities.  An Scheme environment to facilitate the 
development of independent entities is required.

Original issue reported on code.google.com by [email protected] on 8 Jan 2011 at 3:53

No cats

What steps will reproduce the problem?
1. There
2. aren't
3. cats

What is the expected output? What do you see instead?
cats.                        no cats!

What version of the product are you using? On what operating system?
meow?

Please provide any additional information below.
*hisss*

Original issue reported on code.google.com by [email protected] on 20 Nov 2008 at 9:28

  • Merged into: #24

Attachments:

binary characters in source

There are many control characters in the source like raw escape and tab 
characters.  These should be converted to their portable ASCII equivalent.

Original issue reported on code.google.com by [email protected] on 5 Oct 2008 at 12:26

Compiler type awareness

A new compiler stage will be added that translates an s-expression into a 
tagable s-expression.  Initially this will be used to include sub expression 
type info.

The first benefit will be used to determine if a combination expression should 
be compiled generically or completely inlined.  A let expression gets compiled 
to a lambda expression plus arguments.  The code emitted can be a single block 
that evaluates the arguments, extends the environment, and evaluates the body.  
Currently all procedure applications are compiled into two blocks:  The 
separate generic closure block and the inlined application code.

Original issue reported on code.google.com by [email protected] on 15 Oct 2011 at 4:47

Sub-surface map rendering

When an avatar walks beneath a cell or area of cells, the avatar and cells 
below the "ceiling" height should be visible.

This should solve rendering of multilevel structures or subterranean areas.  A 
building's roof will be visible unless the avatar walks inside revealing the 
contest of the room instead of the top most ceiling cells.

This will be implemented in two stage.

(1) The initial algorithm will be to determine the height, if any, of the 
closest cell directly above the avatar and to use that starting height when 
scanning down each column for the visible canvas cell.  The entire canvas 
region will be affected.

(2) The next algorithm will do this but only for cell related to the local 
region or enclosure.

Original issue reported on code.google.com by [email protected] on 22 Oct 2010 at 8:35

File I/O development

File I/O is not entirely implemented. It is possible to open and read/write an 
existing file but a new file can't be opened.

I/O based on local file descriptors as well as standard I/O file pointers are 
used.  I/O related code needs to be cleaned up and homogenized.

File and socket I/O unit tests need to be created.

Original issue reported on code.google.com by [email protected] on 11 Aug 2010 at 6:58

Dynamic runtime stack

Often a scheme error will crash during the error handler while it dumps the 
environment and stack.  The atom serializer overuses the stack.  World Scheme 
should catch this and increase the stack count during runtime or a garbage 
collection.

Original issue reported on code.google.com by [email protected] on 13 Sep 2010 at 5:03

Terminal class rewrite

The terminal class, which models the overall character terminal as well as
one or more separate windows, contains many synchronization and race
condition issues.

I did not develop it with a multi-threaded environment in mind.  It was
originally just a proof of concept.  The concept has been proven and a more
robust implementation is now in order.

This needs to be done soon because World[tm] is not stable.

Original issue reported on code.google.com by [email protected] on 3 Dec 2008 at 4:58

Enhanced semaphore implementation

Semaphores in World Scheme are simple integers returned by open-semaphore.
 The kernel resource must be explicitly freed with close-semaphore.  A
semaphore object should be created instead so the World Scheme kernel can
better keep track of their use and removed when no longer needed.

A recent bug in World's text window module was caused by window semaphores
not being explicitly deleted when the window was destroyed.  Scheme's
inherit methodology is for the programmer to be burdened as little as
possible with resource allocation.  Just as memory used by scheme objects,
files and sockets are claimed by the garbage collector, so should semaphores.

Original issue reported on code.google.com by [email protected] on 24 May 2009 at 9:24

Add debugging information to compiled expressions.

Run-time debugging of World Scheme code is difficult and error messages
don't reveal much.  Internal virtual machine instruction blocks should keep
track of the original pre-compiled scheme expressions.  This will allow
run-time error messages to reveal the compiled code as well as the original
scheme.

Original issue reported on code.google.com by [email protected] on 28 Nov 2008 at 2:29

Terminal resize (SIGWINCH) not honored

What steps will reproduce the problem?
1. Resize the terminal used to connect to World[tm].

What is the expected output? What do you see instead?

The talk and map windows render incorrectly from now on.  Only until you 
resize the terminal to the original connection size do things render 
properly.

Please use labels and text to provide additional information.

Original issue reported on code.google.com by [email protected] on 17 Oct 2008 at 4:19

Support 16 and 256 color terminals

Originally World assumed 16 color terminals.  256 color escape sequences are 
supported now but fail to render correctly on 16 color terminals.  The default 
escape sequences to change color should initially be set to the 16 color 
variety.  256 color codes can be enabled on a per-client basis.

World map development will assume 256 color.  A mapping from 256 to 16 will be 
created.  The 256 color palette should require no change.

Original issue reported on code.google.com by [email protected] on 29 Jan 2011 at 10:36

Code Review

Results of a cursory code review by dcoker:

(1) Verify World Scheme runs clean under valgrind
(2) Spaces on either side of every binary operator
(3) Remove dead code
(4) Unit tests with 90% or better test coverage
(5) Line length should be limited to 80 or 120 cols

Original issue reported on code.google.com by [email protected] on 8 Jul 2011 at 7:14

Unit tests

Unit tests should be implemented for the following modules:

scanner
mem
obj
vm
comp
asm

Original issue reported on code.google.com by [email protected] on 30 Apr 2010 at 2:46

Pseudo 3D engine

World requires a 3d engine.  Simple dungeon rendering will be used initially so 
a non-scrolling ray-casting will suffice.  Features timeline:
 * Terminal rendering device
 * 2.5D
 * Smooth scrolling
 * Z-buffer
 * Sprites
 * 3D

Original issue reported on code.google.com by [email protected] on 8 Nov 2011 at 4:18

Terminal escape sequence support

Implement a quick and dirty mouse even handler.

When a mouse click is detected, walk avatar in a straight line to the mouse 
click in the map.

Original issue reported on code.google.com by [email protected] on 9 Jan 2011 at 8:58

Scheme compiler

The current compiler, which translates Scheme at runtime into the virtual 
machine's RTL ,is very basic and non expandable.  It will be replaced by a 
proper compiler module and optimizing infrastructure.

Optimized code blocks could become invalidated after expression or variable 
mutation should be handled by recompiling at runtime.  Example:
(define fn +)
(define (fun x y) (fn x y))
(set! fn -) ; Cause fun's code block to be recompiled if fn was inlined
(fun 5 3)
=> 2

Original issue reported on code.google.com by [email protected] on 18 Aug 2011 at 6:35

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.