Skip to content

Latest commit

 

History

History
397 lines (273 loc) · 17.1 KB

2020-08-07.md

File metadata and controls

397 lines (273 loc) · 17.1 KB

< 2020-08-07 >

2,290,712 events, 1,161,921 push events, 1,813,299 commit messages, 140,326,084 characters

Friday 2020-08-07 00:19:01 by MissKay1994

Fixes to weird things red did

Fuck you, this is how things should be in my opinion, so I'm doining it anyways


Friday 2020-08-07 05:18:18 by quietly-turning

detangle TargetScore,Pacemaker,ActionOnTargetMiss

In August, I met Monique and we twirled circles arm-in-arm during outside time until the nurses scolded us, barely able to contain their own smiles. In September, I met a person younger than me with a heroin addiction who explained that she was howling in the group room because that's what wolves do and I wondered what would happen to her two children. In November, I roomed with a pedophile hiding from the authorities and his nightly confessions to me in that dark room we shared still echo in my mind.

In December, I watched a young man be wheeled back to the group room post-ECT every other morning. They'd ask him how he was feeling, and he'd struggle to control his trembling jaw long enough to get the word "good" out. "Do you think the ECT is helping?" they would ask, but he never responded. I imagine I experienced a similar disconnect when I started ECT sessions the following month.

Why is it that the things we have so much trouble saying out loud still find ways to make themselves known?

I met Mary in June.

Mary had tried to end her life by taking a razor to her arms and allowing her body to bleed out in her bathtub. She did not lose enough blood to die, only enough to significantly weaken her body. Unable to climb out after realizing she was likely going to live, Mary lay in a bathtub of her blood for nearly 24 hours until her husband got back on Sunday night, found her, and rushed her to the hospital.

Prior to taking the razor to the arteries in her arms, however, she'd also cut up her feet, her calves, her thighs, her stomach, her chest, and her face.

The hospital stitched and bandaged her arms, but the rest of her lacerations were too small and shallow to bother with. Still, many were enough to constantly reopen and bleed through motion. Quietly plodding from her bedroom to the group room, she left a trail of blood on the dim linoleum.

At the time, I'd wondered why she would do this. Why would you go out of your way to disfigure yourself?

Should you have to continue living, visible scars can sometimes say what words can't, like please keep a safe distance; you don't want to catch whatever I have.


Friday 2020-08-07 14:49:20 by NewsTools

Created Text For URL [sundiatapost.com/stop-harassing-my-life-juliet-ibrahim-warns-ex-boyfriend-iceberg-slim/]


Friday 2020-08-07 15:26:02 by Fray2

Merge pull request #342 from carrotman2013/master

fuck your fucking scout ok?


Friday 2020-08-07 15:34:18 by Marcus Ofenhed

Got streaming to work. Information to the user is lacking, though, and code is ugly as hell.

Coding C# did not make me very happy, so this project might very well die with this commit.


Friday 2020-08-07 16:10:21 by NewsTools

Created Text For URL [www.theguardian.com/lifeandstyle/2020/aug/07/my-son-left-his-pregnant-girlfriend-after-she-stuck-by-him-in-prison-can-i-get-over-the-shame]


Friday 2020-08-07 16:53:38 by Marko Grdinić

"```fs type InferEnv = {term : System.Collections.Generic.Dictionary<string, T> list; ty : System.Collections.Generic.Dictionary<string, T> list}


I have this.

```fs
    let assert_bound_vars env a =
        let keys_of m = Map.fold (fun s k _ -> Set.add k s) Set.empty m
        assert_bound_vars' top_env (keys_of env.term) (keys_of env.ty) (Choice1Of2 a) |> errors.AddRange

The keys being like this will really make things harder won't they?

    let assert_bound_vars env a =
        let keys_of (m : InferField) = m |> List.fold (fun s x -> Seq.foldBack Set.add x.Keys s) Set.empty
        assert_bound_vars' top_env (keys_of env.term') (keys_of env.ty') (Choice1Of2 a) |> errors.AddRange

Done with this.

5:25pm. I have to admit, this particular feature is making me second guess myself.

            | Ok x ->
                let to_dict (x : Map<string,T>) = System.Collections.Generic.Dictionary(x)
                let env = {term' = to_dict(x.term) :: env.term'; ty' = to_dict(x.ty) :: env.ty'}
                term env s on_succ

Do I really want to be opening new scope on every single variable? Do I really want to create a new dictionary on every let statemnet and such.

No, not really.

I do not think this particular feature is really that important. One thing I should do is kind inference in term foralls.

5:30pm. It is a good thing I commit earlier. I had a feeling that I might not necessarily want to commit to this change.

You rarely want to prove equalities between terms when doing regular programming. The thing that is really important to support is the wildcard. And I already do.

        | RawTVar(r,n) ->
            match v n with
            | Some x -> unify r s x
            | None -> errors.Add(r, UnboundVariable)

That feature that I wanted is not worth wrecking the infer function for. Later I will hack the parser to allow for more flexible forall patterns in terms, but for now let me go with what I have.

I won't be starting work on patterns and let statements today. Instead let me replace eval with infer.

    match x with
    | Choice1Of2 x -> term env v x
    | Choice2Of2 x -> ty env v x

Let me allow passing of local envs as an argument to infer, because often I want more than just the global one.

{term=Map.empty; ty=Map.empty}

5:40pm. Focus me. Let me just replace eval and I'll take a break. It is roughly the time that I start finishing up anyway.

5:45pm. You know what...

| RawTTerm(_,a) -> assert_bound_vars env a

That is a bit strange, I remember returning TySymbol "<term>" somewhere. Rather than making a special case for RealNominals, why don't I allow their destructuring in the top down segment? Except rather than having the actual thing, I will instead pretend the type is this thing.

Yeah, it would make the type system inconsistent, but it is not like it is exactly watertight in the first place what with being able to get the real segment stuff wrong.

| RawTTerm(r,a) -> assert_bound_vars env a; unify r s (TySymbol "<term>")

And this is actually useful behavior. It might be plausible that even a real nominal might have top down parts.

What I can't afford would be for metavariables to be left in.

5:55pm.

let top_type (name : VarString, vars : TypeVar list, expr : RawTExpr) (top_env : Env) =
    let vars = typevars vars
    let body =
        assert_bound_vars top_env Set.empty (set_vars vars) (Choice2Of2 expr)
        infer top_env {term=Map.empty; ty=add_vars Map.empty vars} (Choice2Of2 expr)
    let inl = List.foldBack (fun x s -> TyInl(x,s)) vars body
    {top_env with ty = Map.add name inl top_env.ty}

This is really good.

I can make do with this.

type HigherOrderCases =
    | HOCUnion of (string * TT) list * Map<string,T>
    | HOCNominal of (string * TT) list * T
    | HOCRealNominal of (string * TT) list * RawTExpr

Let me remove the real nominal case from here.

6pm. Let me take a short break.

6:25pm. Done with lunch. Let me deal with the rest of the cases and I will call it a day.

| HOCRealNominal of (string * TT) list * RawTExpr

Let me remove this thing.

let top_higher_order (l : TopHigherOrder list) hoc (top_env : Env) =
    let top_env =
        List.fold (fun s (HOUnion(name,i,vars,_) | HONominal(name,i,vars,_)) ->
            let tt = List.foldBack (fun (_,x) s -> KindFun(x,s)) vars KindStar
            Map.add name (TyHigherOrder(i,tt)) s
            ) top_env.ty l
        |> fun ty -> {top_env with ty=ty}
    let errors = ResizeArray()
    let hoc =
        List.fold (fun hoc x ->
            match x with
            | HOUnion(_,i,vars,l) ->
                List.fold (fun cases expr ->
                    try assert_bound_vars top_env Set.empty (set_vars vars) (Choice2Of2 expr)
                        match infer top_env {term=Map.empty; ty=add_vars Map.empty vars} (Choice2Of2 expr) with
                        | TyPair(TySymbol x, b) ->
                            if Map.containsKey x cases then errors.Add(range_of_texpr expr, DuplicateKeyInUnion); cases
                            else Map.add x b cases
                        | _ -> errors.Add (range_of_texpr expr, ExpectedSymbolAsUnionKey); cases
                    with :? TypeErrorException as x -> errors.AddRange(x.Data0); cases
                    ) Map.empty l
                |> fun l -> Map.add i (HOCUnion(vars,l)) hoc
            | HONominal(_,i,vars,expr) ->
                try assert_bound_vars top_env Set.empty (set_vars vars) (Choice2Of2 expr)
                    Map.add i (HOCNominal(vars, infer top_env {term=Map.empty; ty=add_vars Map.empty vars} (Choice2Of2 expr))) hoc
                with :? TypeErrorException as x -> errors.AddRange(x.Data0); hoc
            ) hoc l
    if 0 < errors.Count then raise (TypeErrorException (errors |> Seq.toList))
    hoc, top_env

This came out quite nice.

Yeah, simplifying things like this is how things should go.

6:30pm.

let top_prototype (name,a,vars,expr) (top_env : Env) =
    let tt = List.foldBack (fun (_,x) s -> KindFun(x,s)) vars KindStar
    let l = (a,tt) :: vars
    assert_bound_vars top_env Set.empty (set_vars vars) (Choice2Of2 expr)
    let body =
        infer top_env {term=Map.empty; ty=add_vars Map.empty vars} (Choice2Of2 expr)
        |> List.foldBack (fun a b -> TyForall(a,b)) l
    {top_env with term = Map.add name body top_env.term}

And with this I am done for the day.

6:35pm. Right now the typechecker file is at 520 lines of code.

Wasn't it like 650 yesterday? Did I really trim this much? I see that one of the previous entries says 600. So I did trim quite a bit.

Good.

6:40pm. So I have only the let statements and patterns left. I should be able to deal with that tomorrow.

6:45pm. Right now I am not as tired as I was yesterday, but current time is not really the point to be starting anything new.

The way to do let statements and patterns is something I've thought through in the depth by this point. There will be very little to stop me from finishing the typechecker tomorrow.

At that point I will be able to turn my attention to editor support matters once again. It is hard to put into words just how great my progress is. I am close to having the typechecker - the one of the main challenges of the new language licked clean.

I sure wish I had these skills back in 2017. I seem to be learning that there is a very clear difference between truth and utility, and potential power and utility over and over again.

6:55pm. Time for some fun. I am out."


Friday 2020-08-07 20:50:21 by AlιAѕѕaѕѕιN

Fix a bug with surfing npc on objects

Why the fuck you would want to ever do that? It took me one hour to find that after seeing my objects are invalidated and getting overwritten

Also please remove FCNPC_SetSurfingDynamicObject and FCNPC_GetSurfingDynamicObject That's not how you implement a system


Friday 2020-08-07 21:18:42 by ChrisANG

Initial push of the female half-dragon noble crowning gifts.

Crowning is not implemented yet, and a lot of this could use re-organizing.

All three are living artifacts. Each has a 1/30th chance to take an action if equipped when there is at least 1 enemy within two squares. Invoking causes them to take an action. Dragonhead shield: -Roar, bite, or breathe fire --Roar: stuns all adjacent (-12 move) and buffs wielder (-10 study) --Bite: 5d8 damage to one adjacent (auto hit at the moment) --Breathe fire: 10d10 fire, doesn't bounce, dragonbreath reflection only, 4 squares long.

Crucifix of the Mad King: -Scream, bless, or create exploding orb --Scream: 1 square knockback w/ -12 move to all adjacent --Bless: -8 study and +8 encouragement to wielder --Vexing orb: explodes after 4-7 turns, dealing 5d10 dark damage in a radius 2 explosion. Ritual Ringed Spear -Buff itself, heal you, or produce spheres --Self buff: +1x fire (molten) or magic (gleaming) for 20-40 turns. While the buff is active the weapon cleaves in melee. --heal you: +30% hp healing or +30% energy recovery --Spheres: 5 dark damage pursuers or 1 flaming orb (emits flaming spheres for 4-7 turns)

Also separate out per-artifact u.foo variables into dedicated per-artifact avar variables.


Friday 2020-08-07 21:34:20 by Abdou-Hidoussi

valgrind I curse you fuck you and fuck your mother and fuck that fucking horse you rode on


Friday 2020-08-07 23:01:23 by Muhframos

Occultist Nerfs / Buffs / Changes

Occultist Changes:

Card Nerfs :

Eldritch Experimenter 2 lun 1/4 -> 1/3 (Whenever this minion takes damage, give another random friendly minion +1/+1)

Star Sculptor 4 lun 3/3 -> Idol Sculptor, 5 lun (Opener: Summon a copy of a friendly minion. It has Guard and can't attack.)

Distortoise 4 lun 3/7 -> 2/8 (Guard. Opener: Deal 3 damage to your champion)

Decaying Colossus 2 lun 2/8 -> 2/7 (At the end of each turn, this takes 1 damage)

Scourge Cultist 2 lun 2/3 -> Hastur's Acolyte, 2/2 (Opener: If a friendly minion died this turn, summon two 1/1 Tentacles with Guard.)

Underwater Horrors 2 Lun -> 3 Lun (Shuffle a minion into its owner's deck. At the end of their turn, they draw it)

Merciless Corruptor 3 Lun 1/1 -> 5 Lun 1/6 (Opener: Give all other minions "Aftermath: Deal 1 damage to all minions.")

Towering Horror 4 lun 6/2 -> 5 Lun 4/2 (Opener: Gain +2 Health for each minion that died this turn.)

Rain of Tentacles 6 Lun -> 7 Lun (Fill your board with 1/1 Tentacles with Guard.)

Cards that were replaced:

Ancient's Aid (2 Lun, Take 3 damage and summon three 1/1 Tentacles with Guard) (Replaced by: Abyssal Protector)

Lash Out (3 Lun, Deal 1 damage to all enemies and summon two 1/1 Tentacles with Guard) (Replaced by: Bloodthirsty Cult)

Mind Flay (2 Lun, Deal 5 damage to a minion, its owner draws 2 cards) (Replaced by: Accumulated Rage)

Unholy Tremors (3 Lun, Deal 1 damage to all minions, twice) (Replaced by: Rite of Worship)

Monolith of Doom (2 Lun 0/5, Opener: Deal 1 damage (Doubles for each Monolith of Doom played this turn) (Replaced by: Volatile Wisdom)

Card Buffs:

Hulking Magmass 8 Lun 6/6 -> Reborn Champion 7 Lun (Guard, Opener: Gain +2/+2 for each minion that died this turn.)

Party Pooper 3 Lun 3/5 -> Abyssal Lurker 5 lun 7/7 (Guard Opener: Shuffle all other friendly minions into your deck.)

Tentacolossus 5 Lun 4/4 -> 4 Lun (Opener: Destroy all friendly Tentacles, gain +2/+2 for each destroyed.)

Abholos 9 Lun 9/7 -> 7 Lun 9/9 (Aftermath: Destroy friendly minions. Resummon this with the combined stats.)

Kahl of the Deep 5 Lun 3/5 -> 4 Lun (Aftermath: Shuffle this into your opponent's deck and give it "When drawn, draw 3 cards")

Astral Anomaly 7 Lun 6/3 (After you cast a spell on this, cast it on all other minions.) -> (Whenever you cast a spell on this, cast it on all other minions.)

Note: I didn't rename the cards that im nerfing or buffing but they are all in this pull request. Should i do this differently?


< 2020-08-07 >