Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Jan 16 2019 10:27
  • Dec 03 2018 22:30
    PrimordialHelios closed #55
  • Dec 03 2018 22:30
    PrimordialHelios commented #55
  • Dec 03 2018 21:57
    PrimordialHelios commented #55
  • Dec 03 2018 21:22
    PrimordialHelios opened #55
  • Sep 21 2018 23:49
    0xflotus opened #54
  • Sep 21 2018 23:49
  • Jun 21 2018 13:28
  • Apr 05 2018 01:02
  • Jan 29 2018 18:29

    anko on master

    Downgrade source-map to ^0.6.0 … (compare)

  • Jan 24 2018 00:30

    anko on master

    Cleanup: rearranging for ease o… Travis: Test on Node v9, stop t… Update npm dependencies (compare)

  • Jul 30 2017 15:49
    alandipert commented #53
  • Jul 30 2017 11:33

    anko on master

    Travis: Test on Node 8, drop 0.… Use prepare npm script instead … (compare)

  • Jul 30 2017 11:24
    anko commented #53
  • Jul 30 2017 11:20
    anko commented #53
  • Jul 30 2017 11:18

    anko on master

    0.7.6 (compare)

  • Jul 30 2017 11:18

    anko on v0.7.6

    (compare)

  • Jul 30 2017 11:13
    anko closed #53
  • Jul 30 2017 11:13

    anko on master

    Let `return` take 0 arguments … (compare)

  • Jul 30 2017 05:59
    alandipert opened #53
Claudia Meadows
@isiahmeadows
Wow...
Leo Horie
@lhorie
that's bigcorp for ya
Claudia Meadows
@isiahmeadows
:+1:
Peter
@11111000000
@anko any plans for write the compiler on eslisp self?
Antti Korpi
@anko

Picking out things I can answer:

@isiahmeadows

Have you tried my a = -> [.. for &] function? I (and apparently several others) found it useful for nicely interacting with JS vdom libraries like Mithril and React.

(:point_up: June 16, 2016 9:09 AM)
I hadn't thought of that. It's a little more syntax, but definitely more useful, since it works with more libraries.

@lhorie

is eslisp still active?

(:point_up: June 16, 2016 4:16 PM)
In the sense of "I'm still working on it", yes. It's just hard, I want to do it right, and my perfectionism is crippling, which combine to super-slow-progress sometimes.

@11111000000

any plans for write the compiler on eslisp self?

Yes, once it's concise and stable enough.

Claudia Meadows
@isiahmeadows
@anko
It's just hard, I want to do it right, and my perfectionism is crippling, which combine to super-slow-progress sometimes.
I can relate. I've spent the last few months working on Thallium, a JS testing framework, and I've been a bit slow as well. It's incredibly extensible and modular, but it's taken until now for me to feel comfortable using it in toy projects. And even then, it's lacking certain things.
Claudia Meadows
@isiahmeadows
I'll note that it's already more flexible than even Mocha and Tape (most the rest are about as flexible as an immutable object).
Matthew
@Hedgepig
Hi, is this the right place to ask for help? Having trouble with multiple return array
Claudia Meadows
@isiahmeadows
Yeah, but I'll note that this project is barely alive. I'm mostly here as a PL nerd (don't really use it), but @anko could probably help you.
Matthew
@Hedgepig
Ah fair enough. Even the example code for array returns wouldn't work. Don't know if it's a bug
Claudia Meadows
@isiahmeadows
What's your code look like (caller and callee)?
I do know a few things.
Matthew
@Hedgepig
(macro v
    (lambda (name val)
      (return (array
        `(var one ,"test")
        `(var another "test"))
      )))

(v)
Claudia Meadows
@isiahmeadows
I think you have to use (. this multi) instead of array IIRC. The docs should tell you what to use, though. (I remember it changing a while back.)
Matthew
@Hedgepig
I will give it a go, but yeah, it looked like that changed to just array
This didn't work, is the code right?
(macro v
    (lambda (name val)
      (return ((. this multi)
        `(var one ,"test")
        `(var another "test"))
      )))

(v)
Claudia Meadows
@isiahmeadows
I thought it should, but I don't know. Like I said, @anko is probably the best to help you at this point.
I was mostly asking in case it was just a language agnostic programming error.
Matthew
@Hedgepig
ah fair enough
thanks anyway
Claudia Meadows
@isiahmeadows
:smile:
Antti Korpi
@anko

Sorry for the ridiculous delay, and for being indistinguishable from dead. :smile:

@Hedgepig This works for me:

(macro v
    (lambda (name val)
      (return (array
        `(var one "test")
        `(var another "test"))
      )))

(v)

I just removed the , before the first "test", assuming it was a typo. If it was intentional, what output did you expect?

The relevant unit test is here.

Matthew
@Hedgepig
No problem, I will give it a go when I have time. Just a shame this does not use es6 constructs, let and const would be useful.
Antti Korpi
@anko

The built-in macros don't support ES6 yet, because I haven't figured out some details (like #23 on dynamic property names in property expressions). I'd rather only add them all at once, to keep things clear.

However, you can add them yourself if you want them. If you write a macro that returns a valid estree object (including the ES6 extensions), then eslisp will happily compile it:

(macro const
    (lambda (name val)
      (return (object
                "type" "VariableDeclaration"
                "kind" "const"
                "declarations" (array
                                 (object
                                   "type" "VariableDeclarator"
                                   "id" ((. this compile) name)
                                   "init" ((. this compile) val)))))))

(const a 5)

That outputs const a = 5;.

For a let, change "kind" "const" to "kind" "let". You might find this JS-to-estree parser sandbox helpful if you'd like to play with ES6 features more complex than let and const.

Relevant tests here. This is exactly how the built-in macros work internally too.

Claudia Meadows
@isiahmeadows
@anko Optimally, that should be compile-time checked, but that's non-trivial to do. (You have to address scoping, but you already kind of have to when dealing with function-scoped macros that shadow an outer one.)
ven
@vendethiel
(macro defn (name params body)
  `(set ,name (lambda ,params (return body))
:P
Antti Korpi
@anko
@isiahmeadows What do you mean should be compile-time checked? Guessing you mean validity of the given estree object should be compile-time checked: eslisp currently runs the final AST through esvalid as a sanity check before compiling to JS, and throws any errors it reports. Esvalid's ES6-support is unfortunately incomplete though: estools/esvalid#7
Claudia Meadows
@isiahmeadows
Not exactly (but that would be nice). I was specifically referring to let and const should be checked - duplicate declarations are errors, and const bindings are read-only.
ven
@vendethiel
@anko Really happy to see you back to working on the project :D.
Antti Korpi
@anko
@vendethiel :+1:. I took a break and have some new ideas now, I'll probably be breaking everything.
Antti Korpi
@anko
In fact, I already did: #50. :sweat_smile:
Raymond W. Ko
@raymond-w-ko
Doesn't matter, I'll still use it in production :shipit:
;-)
Antti Korpi
@anko
Open source is Schrödinger's Volunteering. It always surprises me to find people are using my random code and libraries. The only window I have into it is when I break them and get bug reports, or when I check npm dependents for fun. I've been doing this for a while but it still feels strange. How many eyes are on me right now? Am I on someone's Twitch stream? Aaaaaaa.
Raymond W. Ko
@raymond-w-ko
Twitch Plays eslisp :clap:
Antti Korpi
@anko
One day :pray:
Claudia Meadows
@isiahmeadows

@anko

Open source is Schrödinger's Volunteering.

This is so true... :smile:

Matthew
@Hedgepig
I am also glad you're still working at this, I have yet to see a js lisp implementation that inspires me as much.
Alan Dipert
@alandipert
just showed up to say, <3 eslisp. brilliant idea, execution
also really happy to see how straightforward it is to add support for e.g. const in userland
i am curious to see how others set up their esl applications. i have begun to experiment here: https://github.com/alandipert/esl-lab
Antti Korpi
@anko
Thanks for your words @Hedgepig and @alandipert. :bow: I hope my slow pace of progress isn't too disappointing.
Alan Dipert
@alandipert
to the contrary, the slow pace makes it easy to keep up :smile:
Daniel Rodríguez Rivero
@danielo515
Hello
What is the status of this project?
Antti Korpi
@anko

@danielo515 Hi! It has stalled, because of me. I want to continue, but I've
had a years-long stretch of depression (generally feeling like shit, with
occasional okay parts), which has made it next to impossible to work on huge
ambitious optimistic stuff like eslisp most days. I've finally managed to drag
myself to a therapist, so treatment starts next week. It might help? Or not?

I have no certainty to offer unfortunately.

ven
@vendethiel
Sucks to hear... Hopefully it gets better! Been following this for quite a while, but nothing is worth burning out for.
Daniel Rodríguez Rivero
@danielo515
Sorry to hear taht