Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    Drew Crampsie
    @drewc
    JS rules, can create smaller 'execs' then C :P
    du -h $(readlink `whereis node`)
    32M     /nix/store/2w6ilfh7zmbz9zqvphgxinmbn3wdqa1b-nodejs-12.18.4/bin/node
    Ok, ok, but how big is the linux kernel and glibc?
    drewc @drewc has really gotten back into JS these past couple seasons :P
    taxedtomato
    @taxedtomato:matrix.org
    [m]
    I just want to say thanks for all the cool stuff you guys are working on. Sounds like writing full SPAs in gerbil might be an option in the future!
    Drew Crampsie
    @drewc
    @taxedtomato:matrix.org that is exactly what I am working on, professionally. It most certainly will be an option for many, and quite a wonderful one at that.
    Mike Janger
    @inchingforward
    @drewc Have you written about it anywhere or have a repo? I've got a couple of personal web projects I want to work on and have been checking out the web dev story in different languages over the last month. I'm intrigued by Gerbil enough to dig deeper.
    Drew Crampsie
    @drewc
    @inchingforward I have and do, BUT, things have changed immensely this week on the upstream (Gambit) side, so in all honesty 75% of my "work" is no longer needed, and I need to add some similar things back, but:
    Have a look here for the npm packages: https://github.com/drewc/gxjs
    Don't try to install them, they likely won't work for you at all and they are old, but lol:
    Jaime Fournier
    @ober
    plus include the conversion for years to js years
    That's what does the loading I did at the command line above, and then transpiles the JS code into something smaller more readable and lexically declared for all variable ... no globals.
    Drew Crampsie
    @drewc
    But, lol, though it works great and no spider web of globals, the issue with having the Gambit runtime use "object Environment Records" rather than "declarative Environment Records" is performance. For my tests, with(RTS){ ...}, where RTS is an object I specifically crafted to have the correct properties defined upon first set and always "has" an _ prefixed symbol ,(fib 20) took about 1 second.
    When they are all declared, 0.2 seconds.
    500% difference is well worth the _pollution, which I am thinking of replacing with ᵍpollution, even though it adds 18k to the compressed runtime size 'cause of the extra bits and bytes.
    junkerjoe
    @junkerjoe
    Anyone checked out Goblin? Is Racket trying to compete with Gerbil with actors? https://docs.racket-lang.org/goblins/
    taxedtomato
    @taxedtomato:matrix.org
    [m]
    I don’t think racket has a reason to compete with anything. actor models aren’t exactly novel among schemes either (check out guile’s 8sync). most likely because the actor model predates scheme [citation needed]
    I think I read on c2 wiki about the actor model inspiring scheme but I can’t find it right now. generally, as long as you have first class continuations and tco you can implement an efficient actor system, which is probably why most schemes have one. i’m not an expert though
    salotz
    @salotz
    Goblins implements an Object Capabilities (OCaps) system (like E) and is more oriented towards decentralized trustless communication https://docs.racket-lang.org/goblins/captp.html. The original ActivityPub author is making it. I think there are some good ideas and designs there that would likely be implemented better on top of Gerbil/Gambit than Racket. I think they are using Racket just because it is the "Python" of schemes and is becoming popular.
    The larger project is called "spritely" https://gitlab.com/spritely
    salotz
    @salotz

    I think I read on c2 wiki about the actor model inspiring scheme but I can’t find it right now. generally, as long as you have first class continuations and tco you can implement an efficient actor system, which is probably why most schemes have one. i’m not an expert though

    @drewc educated me on this a while back. Basically Steele and Sussman tried to implement both the actor model and lambda calc and it ended up being the same. Its on the regular wikipedia page now I think. Individual actor systems seem to be wildly different though. I gave up trying to get a universal definition of actors...

    Drew Crampsie
    @drewc
    @salotz Given that there are different parts to play and different entities that play them I think that a universal definition of actors is impossible.
    Having said that, SCHEMERS might be more universal if we were allowed 8 letters in a file name :P
    In short: If you want to enter the Turning Tarpit that is your choice, and if you are a student that's a tarpit you are likely in and yet do not yet know it.
    And the sarcastic closing remark: What match/game are Racket and Gerbil in competition over? What leg are we on, and do away goals count?
    drewc @drewc is watching the pre-season of Vancouver's WCFC right now and we're up by 1 after 54 minutes ... so is pretending he knows anything about computing while watching us press
    Drew Crampsie
    @drewc
    Because I'm watching the commentary I feel like I need to give my personal history on the subject: Have not been a student for about 25 years and used PLT Scheme for a while when starting out as a Lispnik in Aught-Four. PLT became Racket, I did not become an undergrad.
    3-1!
    drewc @drewc ... and we're Vancouver, Vancouver Whitecaps FC! We're the finest football team, Canada has ever seen.
    Drew Crampsie
    @drewc
    @belmarca Our coach is still Marc Dos Santos ... who not only has a good first name (right?) but was born on a certain royal mountain and coached L'impact when they one the USL cup in '09. To make it on topic, that was the second last time I was in Montréal. The last time, in '19, was for Gambit's 30 :)
    To make it even more personal, on my certificat baptismal mes first nom is "André" ... Marc-(Dos Santos)André(Michel Groleau-Crampsie)! :D
    Drew Crampsie
    @drewc
    @belmarca Our coach is still Marc Dos Santos ... who not only has a good first name (right?) but was born on a certain royal mountain and coached L'impact when they won the USL cup in '09. To make it on topic, that was the second last time I was in Montréal. The last time, in '19, was for Gambit's 30 :)
    lol ... tried to s/one/won there
    So many chat apps... should go back to the matrix.
    Marc-André Bélanger
    @belmarca
    @drewc Haha. If your name is Groleau then check this out, if you haven't seen it already :laughing: https://www.youtube.com/watch?v=uX7T3F9En1s
    Drew Crampsie
    @drewc
    :laughing:
    François-René Rideau
    @fare
    is it expected that if you refer to function f before it's defined, it will work if your module was compiled code but not if it was interpreted?
    5 replies
    François-René Rideau
    @fare
    I would like to add something like this in gx-gambc0.scm. Is that alright? What other types shall I add? @vyzo
    (define error-exception-type
      (object-type (with-exception-catcher identity (lambda () (error "foo" 1 2 3)))))
    
    (bind-method! error-exception-type ':wr
      (lambda (obj we)
        (##default-wr we obj)
        (##wr-str we " #;")
        (##wr we (cons* 'error (error-exception-message obj) (error-exception-parameters obj)))) #t)
    1 reply
    François-René Rideau
    @fare
    @vyzo also, may I remove the : after the subcommand in the getopt help?
    3 replies
    that will make it easier to copy/paste the subcommand name
    Marc-André Bélanger
    @belmarca
    We're presenting the Gambit JavaScript FFI at ELS 2021 tomorrow for those interested. https://www.european-lisp-symposium.org/2021/
    Paper is available here https://zenodo.org/record/4711424 . The slides (a RevealJS presentation) should be up later tonight.
    François-René Rideau
    @fare
    Nice!
    Drew Crampsie
    @drewc
    Awesome!
    Marc-André Bélanger
    @belmarca
    Slides are up and should be working fine! https://udem-dlteam.github.io/els2021-presentation
    Jaime Fournier
    @ober
    nice work @belmarca thanks
    Marc-André Bélanger
    @belmarca
    The most important work was Marc's. It's a fun FFI nonetheless :) Hope it helps drew with his work
    patternspandemic
    @patternspandemic
    Regarding the C interface, how does the scheme side work with C functions that return void and communicate their result by mutating their arguments? Such as with this cairo example: cairo-get-current-point. How would this be called in gerbil?
    patternspandemic
    @patternspandemic
    A second question related to interfacing with C: Is it correct to say define-c-struct requires the C struct to have designated a structure tag for use as the struct-name in the form? Is it possible for typedef'd anonymous structs to be redefined and given a struct tag in a c-declare for define-c-struct to work?