Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
    Jakub T. Jankiewicz
    @jcubic
    Wellcome to Gitter Chat
    diego
    @dieggsy
    Hello! I just had a question about how r7rs-compliant LIPS is ?
    Fabjokoci9
    @fabjokoci9_twitter
    Hello , i wanted to ask something about common lisp
    becca248
    @becca248
    Hello! I'm on my lunch break, so I apologize if I ask a question and subsequently disappear for several hours.
    I saw this tweet: "(λ LIPS) @lips_lang
    Jan 4 LIPS #Scheme just got its first issue created by other than @jcubic and bots. It was confusion with latest NPM and Beta versions. LIPS need better docs and better README. Also new website is coming. #lips #JavaScript #OpenSource #FOSS #FLOSS #OSS"
    I am wondering if I might be able to assist in any way? I'm a technical writer looking for more backend practice, but don't have current familiarity with LIPS.
    Jakub T. Jankiewicz
    @jcubic
    hi, did notice the messages
    @dieggsy Beta have pretty good compatibility with r7rs but no continuations and TCO, and syntax-rules have limitations. I plan to implement rest of r7rs functions in 1.0 not sure about import and modules though.
    @fabjokoci9_twitter I'm not much experienced with CL but you can ask. https://dontasktoask.com/
    Jakub T. Jankiewicz
    @jcubic
    @becca248 LIPS is Scheme implementation written in JavaScript, if you want to help you can look at doc string in JS file (src/lips.js) and in lib/ directory there are scm file. Each Scheme function have documentation that explain what particular function do. Those can be improved and checked for errors like typos etc.
    LaneSun
    @LaneSun

    Hi, I am a programmer planning to use LIPS for my own project and I would like to know which of the following is the future direction of LIPS development:

    1. try to maintain a minimal core library (similar to the X11 philosophy), possibly using a mechanism similar to the extension library to add functionality
    2. try to continuously add new features to the core library to make it more powerful and bigger at the same time

    I chose LIPS because it is lightweight and easier to extend, but when I browsed the project roadmap, I found that there are some planned additional features (such as Picture language), so I would like to know the future direction.

    The above text was translated using a web translator, I am not very familiar with English (but I can read it normally without problems), so please understand if there are any grammatical errors.

    Jakub T. Jankiewicz
    @jcubic
    any additional features like picture language will only be as example or as additional library, that is on a roadmap For instance I plan to have some SRFI supported but they will be in different files, not part of the core. Base will only have functions from R7RS that I plan to be in core. I'm also not sure how library support will change it since it seems that core of scheme is also divided into modules (libraries) so in the future the core can be even smaller and stuff will be moved into the libraries (external files).
    LaneSun
    @LaneSun
    That's really exciting. I'd like to ask additionally, will the repo consider accepting possible pull requests so that extensions (such as compilers) developed by third parties are gathered into the main repo (like Three.js), or do you want third parties to manage their extensions on their own (like JQuery)?
    Jakub T. Jankiewicz
    @jcubic
    Extensions would probably be just R7RS libraries but I think they should be separated repositories. I would probably need some kind of installation for them. I like how deno work with packages where you just install package from URL, I could use isomorphic-git to get git repo in order to install the library. I was also thinking about some kind of bundler where local packages can be used to generate single file that can be loaded by LIPS. On devel branch I've created dumb compiler on master it compile code as data into JSON file and on devel it was replaced with binary format CBOR,but before new beta is published I need to include CBOR library for browser.
    LaneSun
    @LaneSun
    This is a much more advanced and complete project than I expected, it really feels like a 21st century Scheme, not just a compiler, but a new Web-oriented Scheme, doesn't it?
    I'm an experienced front-end developer, and a beginner in Lisp, but I love Lisp, and I want to combine it with Web which I see as the most promising platform of the future, so I'd be happy to help write some of the code if you need it, and I'm a college student, so I think I can spare some time for it.
    Jakub T. Jankiewicz
    @jcubic
    if you can write some code that would be great.
    metehan
    @metehan
    @jcubic Hi, Is it possible to create exact same thing as this sample with your project: https://blacksmith2d.io/Docs/Examples/Sprites/Cache-As-Bitmap-Dynamic extending an object and defining variables using "this"
    Jakub T. Jankiewicz
    @jcubic
    @metehan there is define-class macro that you can use:
    (definne-class MyGame GameObject
       (constructor (lambda (self) ...)))
    but I think that I've forget about (super) when implementing this macro
    in lambda both works self and this so you can use (set! self.x 10) or (set! this.x 10) but I think that self looks better.
    LaneSun
    @LaneSun

    I made a top-down scanner with LL method. It can create a text scanner from rules like this:

    Article {
        |Title Paragraph*|
        Paragraph {
            |(Word Whitespace)+ <\n>+|
            Word {
                |<[a-zA-Z]>+|
            }
            Whitespace {
                |< >+|
            }
        }
    }

    and here is the repo.

    Will it make any help?

    metehan
    @metehan
    const provider = new ethers.providers.Web3Provider(window.ethereum)

    I was trying to write above line I tried many different style none of them worked:

    ;(define provider (new (. ethers providers Web3Provider ) (. window "ethereum")))
    ;(define prov (new (Web3Provider (providers (. ethers)) (. window "ethereum"))))
    ;(define provider (new (((. ethers) providers "Web3Provider") (. window "ethereum"))))
    (define provider (new ((((. ethers) providers) Web3Provider) (. window "ethereum"))))
    ((. console "log") prov)
    `

    How I can write it

    Jakub T. Jankiewicz
    @jcubic
    for beta version it's:
    (define provider (new ethers.providers.Web3Provider window.ethereum))
    unless you want to use deprecated 0.20 version

    first will work in 0.20 when used ..:

    (define provider (new (.. ethers providers Web3Provider ) (. window "ethereum")))

    that is a macro, . is a a function so it accept variable and symbol or string.

    metehan
    @metehan
    thank you. is beta version fine for production?
    metehan
    @metehan
    I am using v. 0.20.1 currently
    Jakub T. Jankiewicz
    @jcubic
    1.0-beta it's like complete new language. I decded that I want fully R7RS scheme not just lisp based on Scheme. It's huge improvement.
    But I would check first if you don't see any performance issues, but I think that both versions will be slow on same occasions, There is one change that make it slower access of symbols with dots that need to have a logic to check if it's not object.