]> git.lizzy.rs Git - nothing.git/log
nothing.git
5 years ago(#625) Introduce print_expr_as_c
rexim [Sat, 2 Feb 2019 16:35:16 +0000 (23:35 +0700)]
(#625) Introduce print_expr_as_c

5 years ago(#625) Additional work
rexim [Sat, 2 Feb 2019 16:35:06 +0000 (23:35 +0700)]
(#625) Additional work

5 years ago(#625) Remove fclose_lt from lt_adapters unit
rexim [Sat, 2 Feb 2019 16:34:50 +0000 (23:34 +0700)]
(#625) Remove fclose_lt from lt_adapters unit

5 years ago(#625) Remove platforms_save_to_file
rexim [Sat, 2 Feb 2019 16:34:24 +0000 (23:34 +0700)]
(#625) Remove platforms_save_to_file

5 years agoMerge pull request #664 from tsoding/658
Alexey Kutepov [Sun, 27 Jan 2019 16:41:29 +0000 (23:41 +0700)]
Merge pull request #664 from tsoding/658

(#658) Make bodies stay on each other

5 years ago(#658) Modify velocity to prevent body sinking
rexim [Sun, 27 Jan 2019 16:20:08 +0000 (23:20 +0700)]
(#658) Modify velocity to prevent body sinking

5 years ago(#658) Introduce vec_sub
rexim [Sun, 27 Jan 2019 16:19:53 +0000 (23:19 +0700)]
(#658) Introduce vec_sub

5 years ago(#658) Make rect_impulse return the orientation
rexim [Sun, 27 Jan 2019 16:19:39 +0000 (23:19 +0700)]
(#658) Make rect_impulse return the orientation

5 years ago(#658) Fix corrupted level file
rexim [Sun, 27 Jan 2019 16:19:25 +0000 (23:19 +0700)]
(#658) Fix corrupted level file

5 years agoRemove TODO(#653)
rexim [Sun, 27 Jan 2019 15:26:27 +0000 (22:26 +0700)]
Remove TODO(#653)

5 years agoRemove TODO(#628)
rexim [Sun, 27 Jan 2019 15:26:27 +0000 (22:26 +0700)]
Remove TODO(#628)

5 years agoRemove TODO(#603)
rexim [Sun, 27 Jan 2019 15:26:27 +0000 (22:26 +0700)]
Remove TODO(#603)

5 years agoRemove TODO(#578)
rexim [Sun, 27 Jan 2019 15:26:27 +0000 (22:26 +0700)]
Remove TODO(#578)

5 years agoRemove TODO(#616)
rexim [Sun, 27 Jan 2019 15:26:27 +0000 (22:26 +0700)]
Remove TODO(#616)

5 years agoRemove TODO(#615)
rexim [Sun, 27 Jan 2019 15:26:26 +0000 (22:26 +0700)]
Remove TODO(#615)

5 years agoRemove TODO(#614)
rexim [Sun, 27 Jan 2019 15:26:26 +0000 (22:26 +0700)]
Remove TODO(#614)

5 years agoRemove TODO(#615)
rexim [Sun, 27 Jan 2019 15:26:26 +0000 (22:26 +0700)]
Remove TODO(#615)

5 years agoRemove TODO(#616)
rexim [Sun, 27 Jan 2019 15:26:26 +0000 (22:26 +0700)]
Remove TODO(#616)

5 years ago(#658) Recent velocities of bodies when the collide
rexim [Sun, 27 Jan 2019 15:24:29 +0000 (22:24 +0700)]
(#658) Recent velocities of bodies when the collide

5 years ago(#658) Modify rb.lisp to reproduce #658
rexim [Sun, 27 Jan 2019 15:24:09 +0000 (22:24 +0700)]
(#658) Modify rb.lisp to reproduce #658

5 years agoMerge pull request #663 from tsoding/656
Alexey Kutepov [Sat, 26 Jan 2019 18:33:57 +0000 (01:33 +0700)]
Merge pull request #663 from tsoding/656

(#656) Render Rigid Body id in Debug mode

5 years ago(#656) Render Rigid Body id in Debug mode
rexim [Sat, 26 Jan 2019 17:54:15 +0000 (00:54 +0700)]
(#656) Render Rigid Body id in Debug mode

5 years agoMerge pull request #662 from tsoding/661
Alexey Kutepov [Sat, 26 Jan 2019 17:35:20 +0000 (00:35 +0700)]
Merge pull request #662 from tsoding/661

(#661) Story rigid bodies as rects

5 years ago(#661) Story rigid bodies as rects
rexim [Sat, 26 Jan 2019 17:28:08 +0000 (00:28 +0700)]
(#661) Story rigid bodies as rects

5 years agoMerge pull request #660 from tsoding/650
Alexey Kutepov [Wed, 23 Jan 2019 18:07:11 +0000 (01:07 +0700)]
Merge pull request #660 from tsoding/650

(#650) Do not assert the_stick_of_joy in LevelPicker

5 years ago(#650) Do not assert the_stick_of_joy in LevelPicker
rexim [Wed, 23 Jan 2019 18:01:57 +0000 (01:01 +0700)]
(#650) Do not assert the_stick_of_joy in LevelPicker

5 years agoMerge pull request #652 from tsoding/647
Alexey Kutepov [Wed, 23 Jan 2019 05:56:35 +0000 (12:56 +0700)]
Merge pull request #652 from tsoding/647

(#647) Implement rigid_bodies_collide_with_itself

5 years ago(#647) fix max_int64
rexim [Wed, 23 Jan 2019 05:49:09 +0000 (12:49 +0700)]
(#647) fix max_int64

5 years agoAdd TODO(#657)
rexim [Wed, 23 Jan 2019 05:46:16 +0000 (12:46 +0700)]
Add TODO(#657)

5 years agoAdd TODO(#656)
rexim [Wed, 23 Jan 2019 05:46:15 +0000 (12:46 +0700)]
Add TODO(#656)

5 years agoAdd TODO(#655)
rexim [Wed, 23 Jan 2019 05:46:14 +0000 (12:46 +0700)]
Add TODO(#655)

5 years agoAdd TODO(#654)
rexim [Wed, 23 Jan 2019 05:46:14 +0000 (12:46 +0700)]
Add TODO(#654)

5 years agoAdd TODO(#653)
rexim [Wed, 23 Jan 2019 05:46:13 +0000 (12:46 +0700)]
Add TODO(#653)

5 years ago(#647) Introduce an actual translation unit
rexim [Wed, 23 Jan 2019 05:40:55 +0000 (12:40 +0700)]
(#647) Introduce an actual translation unit

5 years ago(#647) Typo
rexim [Wed, 23 Jan 2019 04:54:37 +0000 (11:54 +0700)]
(#647) Typo

5 years ago(#647) Additional work
rexim [Wed, 23 Jan 2019 04:54:05 +0000 (11:54 +0700)]
(#647) Additional work

5 years ago(#647) Unhardcode testing rigid bodies to a separate script
rexim [Wed, 23 Jan 2019 04:53:34 +0000 (11:53 +0700)]
(#647) Unhardcode testing rigid bodies to a separate script

5 years ago(#647) Make (game level body-add) return the id of the added body
rexim [Wed, 23 Jan 2019 04:53:10 +0000 (11:53 +0700)]
(#647) Make (game level body-add) return the id of the added body

5 years ago(#647) Fix Rigid Bodies hanging when the count == 0
rexim [Wed, 23 Jan 2019 04:52:36 +0000 (11:52 +0700)]
(#647) Fix Rigid Bodies hanging when the count == 0

5 years ago(#647) Rigid Body helper functions
rexim [Wed, 23 Jan 2019 04:43:16 +0000 (11:43 +0700)]
(#647) Rigid Body helper functions

1. (game level body) -> (game level body-push)
2. Introduce (game level body-add)

5 years ago(#647) Additional work
rexim [Wed, 23 Jan 2019 04:33:50 +0000 (11:33 +0700)]
(#647) Additional work

5 years ago(#647) Remove dead code
rexim [Wed, 23 Jan 2019 04:33:36 +0000 (11:33 +0700)]
(#647) Remove dead code

5 years ago(#647) Merge collision functions
rexim [Wed, 23 Jan 2019 04:33:19 +0000 (11:33 +0700)]
(#647) Merge collision functions

5 years ago(#647) formatting
rexim [Wed, 23 Jan 2019 04:26:26 +0000 (11:26 +0700)]
(#647) formatting

5 years ago(#647) Implement rigid_bodies_collide_with_itself
rexim [Wed, 23 Jan 2019 04:19:28 +0000 (11:19 +0700)]
(#647) Implement rigid_bodies_collide_with_itself

5 years ago(#647) Introduce rect_impulse
rexim [Tue, 22 Jan 2019 04:38:50 +0000 (11:38 +0700)]
(#647) Introduce rect_impulse

5 years ago(#647) No need for float versions of min/max
rexim [Tue, 22 Jan 2019 04:23:22 +0000 (11:23 +0700)]
(#647) No need for float versions of min/max

They already exist in math.h

5 years ago(#647) Introduce math/extrema.h
rexim [Tue, 22 Jan 2019 04:19:31 +0000 (11:19 +0700)]
(#647) Introduce math/extrema.h

5 years ago(#647) Remove signf
rexim [Tue, 22 Jan 2019 04:04:49 +0000 (11:04 +0700)]
(#647) Remove signf

5 years ago(#647) Commands for applying force to rigid bodies
rexim [Tue, 22 Jan 2019 03:38:41 +0000 (10:38 +0700)]
(#647) Commands for applying force to rigid bodies

5 years ago(#647) Improve impulse resolution
rexim [Sun, 20 Jan 2019 17:03:03 +0000 (00:03 +0700)]
(#647) Improve impulse resolution

5 years agoAdd TODO(#649)
rexim [Sun, 20 Jan 2019 06:29:08 +0000 (13:29 +0700)]
Add TODO(#649)

5 years agoSquashing two TODOs related to a single issue together
rexim [Sun, 20 Jan 2019 06:27:37 +0000 (13:27 +0700)]
Squashing two TODOs related to a single issue together

[Snitch](https://github.com/tsoding/snitch) creates a single issue per TODO

5 years agoMerge pull request #648 from abridgewater/ebisp-closures
Alexey Kutepov [Sun, 20 Jan 2019 06:22:51 +0000 (13:22 +0700)]
Merge pull request #648 from abridgewater/ebisp-closures

Ebisp closures

5 years agoebisp/interpreter: Use closed-over environment as basis for lambda calls
Alastair Bridgewater [Sun, 20 Jan 2019 03:15:57 +0000 (22:15 -0500)]
ebisp/interpreter: Use closed-over environment as basis for lambda calls

  * Instead of extending our caller Scope with a frame containing
the arguments for the new function, create a new Scope from the
environment stored in the lambda and extend that with the new
frame.

  * This is a MAJOR semantic change to the language.  Because the
caller environment is not passed to the callee, we end up with
lexical (instead of dynamic) scope (issue #338).  Because we use
the environment stored in the lambda, we end up with closures
(issue #620).  And because the environment mutates its value cells,
the closures are mutable as well.

  * ((lambda (x) (defun foo () (set x (+ x 1)))) 0) now creates a
global function called "foo" that returns successive integers from
1 each time it's called.  And doesn't leak unreclaimable memory
each time it's called.

5 years agoebisp/: Close over Scope expr as environment when making lambdas
Alastair Bridgewater [Sun, 20 Jan 2019 03:06:14 +0000 (22:06 -0500)]
ebisp/: Close over Scope expr as environment when making lambdas

  * Store the environment at lambda-creation time as part of the
lambda, arranging for it to be recognized by the garbage collector.

  * This doesn't yet USE the environment, so there's no semanitc
change yet, but it's the next-to-last step towards doing so.

5 years agoebisp/scope: Re-use Scope CONSes where possible
Alastair Bridgewater [Sun, 20 Jan 2019 02:46:17 +0000 (21:46 -0500)]
ebisp/scope: Re-use Scope CONSes where possible

  * First, by mutating existing CONSes ("value cells") when we set
a value in a scope with an existing binding, we prevent runaway
allocation of un-collectable garbage.  If we simply shadow the
existing binding then it can't be reclaimed until the new binding
is discarded, and at global scope that means that it can't be
reclaimed until the global scope is destroyed.

  * Second, by preserving the "spine" of the environment list, we
can "close over" that environment by taking a reference to the
"spine", and can view all subsequent changes (outside of a new
binding being added by push_scope_frame()).

  * There seems to be an impossible case in set_scope_value_impl():
scope.expr is initialized to a CONS and only possibly changed to
something else by pop_scope_frame(), which is only used in a pair
with push_scope_frame(), thus having no net effect on the type.
So how can it ever not be a CONS?

5 years agoebisp/: Use ATOM_LAMBDA instead of bare "lambda" forms
Alastair Bridgewater [Sun, 20 Jan 2019 01:20:24 +0000 (20:20 -0500)]
ebisp/: Use ATOM_LAMBDA instead of bare "lambda" forms

  * First off, this gives us faster lambda_p().  No more parsing
list structure to determine if we have a lambda each time we call
a function, it becomes a simple type-test.

  * Second, this now gives us a single mechanism for creating
lambdas, making it easier to modify the structure of a lambda in
the future (such as for storing a closure environment).

  * Third, this is a semantic change to the language: We can no
longer construct a valid lambda using calls to (list), (quote), or
(quasiquote); they must always be created by (defun), (lambda), or
(λ).

5 years agoebisp/: Create ATOM_LAMBDA as a wrapper around an args_list and body
Alastair Bridgewater [Sun, 20 Jan 2019 01:09:57 +0000 (20:09 -0500)]
ebisp/: Create ATOM_LAMBDA as a wrapper around an args_list and body

  * This gives us a typed ATOM, with structure known to the GC,
that can contain the information currently associated with a
lambda.

  * This is a lead-in to faster lambda_p(), to closures, and to
lexical scope.

  * As a minor note, due to lambdas becoming closures in the
future, ATOM_LAMBDAs have "identity"; that is, they are only equal
to each other if they are the same object in memory.

5 years agoebisp/std: Validate arglist to defun in the same way as for lambda
Alastair Bridgewater [Sun, 20 Jan 2019 03:29:19 +0000 (22:29 -0500)]
ebisp/std: Validate arglist to defun in the same way as for lambda

  * One one level, this is simply for parallelism, but on another
it covers one particular failure mode (a malformed arglist for a
named function) in a slightly cleaner manner.

5 years agoebisp/gc: Prevent stack blow-out in gc_traverse_expr() on cyclic structure
Alastair Bridgewater [Sun, 20 Jan 2019 03:05:28 +0000 (22:05 -0500)]
ebisp/gc: Prevent stack blow-out in gc_traverse_expr() on cyclic structure

  * If we manage to construct a cyclic list structure and then
attempt to run a GC while any part of the cycle is still "live",
gc_traverse_expr() was attempting to traverse the entire cycle to
the end before marking any given cell in the cycle as having been
visited.

  * Mark cells as being visited before attempting to visit the
values to which they refer, causing gc_traverse_expr() to return
without further processing when it encounters a cycle.

  * This might-or-might-not be issue #578.  There's not enough
context in the issue description for me to be certain.

5 years agoebisp/repl: Use constructor to create scope, not an explicit initializer
Alastair Bridgewater [Sun, 20 Jan 2019 02:45:52 +0000 (21:45 -0500)]
ebisp/repl: Use constructor to create scope, not an explicit initializer

  * This looks to be a lingering bit of code duplication, probably
created before the constructor.  Just use the constructor.

5 years agoMerge pull request #646 from tsoding/639
Alexey Kutepov [Sat, 19 Jan 2019 18:46:06 +0000 (01:46 +0700)]
Merge pull request #646 from tsoding/639

(#639) Rigid bodies interactions

5 years agoAdd TODO(#647)
rexim [Sat, 19 Jan 2019 17:39:34 +0000 (00:39 +0700)]
Add TODO(#647)

5 years ago(#639) Introduce rigid_bodies_collide_with_itself
rexim [Sat, 19 Jan 2019 17:37:36 +0000 (00:37 +0700)]
(#639) Introduce rigid_bodies_collide_with_itself

5 years ago(#639) Make rigid bodies interact with platforms
rexim [Sat, 19 Jan 2019 17:18:04 +0000 (00:18 +0700)]
(#639) Make rigid bodies interact with platforms

5 years agoMerge pull request #645 from tsoding/635
Alexey Kutepov [Wed, 16 Jan 2019 04:06:44 +0000 (11:06 +0700)]
Merge pull request #645 from tsoding/635

 (#635) Port essential Rigid_rect functionality to RigidBodies

5 years ago(#635) Remove dead code
rexim [Wed, 16 Jan 2019 04:01:14 +0000 (11:01 +0700)]
(#635) Remove dead code

5 years ago(#635) Port essential Rigid_rect functionality to RigidBodies
rexim [Wed, 16 Jan 2019 03:57:53 +0000 (10:57 +0700)]
(#635) Port essential Rigid_rect functionality to RigidBodies

5 years agoMerge pull request #644 from tsoding/640
Alexey Kutepov [Wed, 16 Jan 2019 02:59:04 +0000 (09:59 +0700)]
Merge pull request #644 from tsoding/640

(#640) Implement rigid_bodies_add

5 years ago(#640) integrate RigidBodies with Level
rexim [Wed, 16 Jan 2019 02:44:43 +0000 (09:44 +0700)]
(#640) integrate RigidBodies with Level

5 years ago(#640) rigid_bodies_add bug
rexim [Wed, 16 Jan 2019 02:44:34 +0000 (09:44 +0700)]
(#640) rigid_bodies_add bug

5 years ago(#640) Rearrange Level structure according to level format
rexim [Wed, 16 Jan 2019 02:38:29 +0000 (09:38 +0700)]
(#640) Rearrange Level structure according to level format

5 years ago(#640) Implement rigid_bodies_add
rexim [Wed, 16 Jan 2019 01:57:39 +0000 (08:57 +0700)]
(#640) Implement rigid_bodies_add

5 years ago(#640) Introduce rigid_bodies_disable
rexim [Wed, 16 Jan 2019 01:53:41 +0000 (08:53 +0700)]
(#640) Introduce rigid_bodies_disable

5 years ago(#640) Make rigid_bodies_add return the id
rexim [Wed, 16 Jan 2019 01:51:18 +0000 (08:51 +0700)]
(#640) Make rigid_bodies_add return the id

5 years ago(#640) Do not allow to remove Rigid Bodies
rexim [Wed, 16 Jan 2019 01:49:56 +0000 (08:49 +0700)]
(#640) Do not allow to remove Rigid Bodies

Close #641

5 years ago(#640) Remove dynarray
rexim [Wed, 16 Jan 2019 01:15:47 +0000 (08:15 +0700)]
(#640) Remove dynarray

It's not type safe

5 years ago(#640) Introduce RigidBodyId
rexim [Mon, 14 Jan 2019 13:29:09 +0000 (20:29 +0700)]
(#640) Introduce RigidBodyId

5 years agoUpdate Contribution Rules
rexim [Mon, 14 Jan 2019 15:25:40 +0000 (22:25 +0700)]
Update Contribution Rules

5 years agoIntroduce roles to the Contribution Rules
rexim [Mon, 14 Jan 2019 15:19:27 +0000 (22:19 +0700)]
Introduce roles to the Contribution Rules

5 years agoUpdate Contribution Rules
rexim [Mon, 14 Jan 2019 14:39:04 +0000 (21:39 +0700)]
Update Contribution Rules

5 years agoUpdate Contribution Rules
rexim [Mon, 14 Jan 2019 13:47:38 +0000 (20:47 +0700)]
Update Contribution Rules

5 years agoMerge pull request #637 from tsoding/635
Alexey Kutepov [Sun, 13 Jan 2019 20:45:34 +0000 (03:45 +0700)]
Merge pull request #637 from tsoding/635

(#635) Partial RigidBodies implementation

5 years agoAdd TODO(#641)
rexim [Sun, 13 Jan 2019 18:41:09 +0000 (01:41 +0700)]
Add TODO(#641)

5 years agoAdd TODO(#640)
rexim [Sun, 13 Jan 2019 18:41:08 +0000 (01:41 +0700)]
Add TODO(#640)

5 years agoAdd TODO(#639)
rexim [Sun, 13 Jan 2019 18:41:08 +0000 (01:41 +0700)]
Add TODO(#639)

5 years agoAdd TODO(#638)
rexim [Sun, 13 Jan 2019 18:41:07 +0000 (01:41 +0700)]
Add TODO(#638)

5 years ago(#635) TODO
rexim [Sun, 13 Jan 2019 18:39:41 +0000 (01:39 +0700)]
(#635) TODO

5 years ago(#635) Implement rigid_bodies_render
rexim [Sun, 13 Jan 2019 18:32:31 +0000 (01:32 +0700)]
(#635) Implement rigid_bodies_render

5 years ago(#635) Implement ctor and dtor of rigid_bodies
rexim [Sun, 13 Jan 2019 18:28:06 +0000 (01:28 +0700)]
(#635) Implement ctor and dtor of rigid_bodies

5 years ago(#635) Implement dynarray
rexim [Sun, 13 Jan 2019 18:00:03 +0000 (01:00 +0700)]
(#635) Implement dynarray

5 years ago(#635) Add dynarray
rexim [Sun, 13 Jan 2019 16:59:10 +0000 (23:59 +0700)]
(#635) Add dynarray

5 years agoMerge pull request #630 from tsoding/628
Alexey Kutepov [Sun, 13 Jan 2019 15:04:31 +0000 (22:04 +0700)]
Merge pull request #630 from tsoding/628

(#628) Add RigidBodies

5 years agoAdd TODO(#636)
rexim [Sun, 13 Jan 2019 14:57:17 +0000 (21:57 +0700)]
Add TODO(#636)

5 years agoAdd TODO(#635)
rexim [Sun, 13 Jan 2019 14:57:16 +0000 (21:57 +0700)]
Add TODO(#635)

5 years agoAdd TODO(#634)
rexim [Sun, 13 Jan 2019 14:57:16 +0000 (21:57 +0700)]
Add TODO(#634)

5 years agoAdd TODO(#633)
rexim [Sun, 13 Jan 2019 14:57:15 +0000 (21:57 +0700)]
Add TODO(#633)

5 years agoAdd TODO(#632)
rexim [Sun, 13 Jan 2019 14:57:15 +0000 (21:57 +0700)]
Add TODO(#632)

5 years agoAdd TODO(#631)
rexim [Sun, 13 Jan 2019 14:57:14 +0000 (21:57 +0700)]
Add TODO(#631)