Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • May 05 20:29
    Chemaclass closed #268
  • May 05 20:29
    Chemaclass commented #268
  • May 05 20:28
    Chemaclass labeled #271
  • May 05 20:28
    Chemaclass assigned #271
  • May 05 20:25
    Chemaclass review_requested #253
  • May 05 20:24
    Chemaclass synchronize #253
  • May 05 20:24

    Chemaclass on implementing-gacela-framework

    Handle errors in PhelConfig whe… (compare)

  • May 05 19:57
    mabasic commented #246
  • May 05 19:56
    mabasic opened #271
  • May 05 19:53
    mabasic synchronize #246
  • May 05 19:40
    jenshaase commented #270
  • May 05 19:33
    Chemaclass commented #270
  • May 05 19:32

    Chemaclass on documentation-data-structures

    (compare)

  • May 05 19:32

    Chemaclass on master

    Update documentation for data s… Minor improvements for the data… Merge pull request #270 from ph… (compare)

  • May 05 19:32
    Chemaclass closed #270
  • May 05 19:14
    jenshaase synchronize #270
  • May 05 19:14

    jenshaase on documentation-data-structures

    Minor improvements for the data… (compare)

  • May 05 17:37
    mabasic commented #246
  • May 05 17:35
    mabasic synchronize #246
  • May 05 17:26
    mabasic synchronize #246
Mario Bašić
@mabasic
I expected to find a (strlen x) function. But php/strlen does the job.
Mario Bašić
@mabasic
Is there a Phel function for explode ? It would seem that most of php functions for strings and arrays and to be used with (php/.. I was also looking for str_replace.
Jens Haase
@jenshaase
There are so many Php function. I will not wrap every function in phel.
Jose Maria Valera Reales
@Chemaclass
I would also say that. I think it's ok to use the native PHP functions for most of the common things such as strlen or similar.
But well, in case anyone find/does some interesting functions for phel that might get an additional advantage of having them in phel and not in native-php, then feel free and welcome to create a PR with it :)
Mario Bašić
@mabasic
It kind of makes sense. Making a 1 to 1 conversion is a big job, and the benefits are not really there, because (php/strlen "") instead of (strlen "") is trivial.
Mario Bašić
@mabasic
I'm really excited to share my code with you guys. Just a few things left before doing so.
Mario Bašić
@mabasic
Believe it or not, the website is complete: https://mariobasic.com/
The source code is here: https://github.com/mabasic/mariobasic-n7
Let me know what you think :)
There are some bugs that I need to polish like mobile experience etc.
Jose Maria Valera Reales
@Chemaclass
Pretty cool, @mabasic! 👌🏻👏
Jose Maria Valera Reales
@Chemaclass

Adding re-seq phel function 👉 phel-lang/phel-lang#259

Returns a sequence of successive matches of pattern in string.

lonelos
@lonelos

Let me know what you think :)

Nice job my fellow countryman. Just started exploring Phel and found this gem, thank you :)

Mario Bašić
@mabasic

Let me know what you think :)

Nice job my fellow countryman. Just started exploring Phel and found this gem, thank you :)

Thank you :heart:

Mario Bašić
@mabasic
@jenshaase Regarding PHP interop (calling phel from php). I haven't tested that part yet, but have you seen this article https://www.simonholywell.com/post/2016/10/importing-and-aliasing-php-functions/. I remember discussing something about not being able to call phel functions directly from php...
Jens Haase
@jenshaase
Problem is, that standard autoloading is not working in this case. Autloading only works for classes and not functions
metehan
@metehan
actuallly I just came back to gitter to see if you finished your website
oh it doesn't have permissive license :(
anyway congratulations for the website :)
Mario Bašić
@mabasic
@metehan Usually I use MIT license, but considering that this time I have my personal information in the source code it made no sense to allow everyone to use my personal information. Maybe there is a license for this case, but I don't know which one.
metehan
@metehan
phel extenstion for VS code is pretty fine but maybe we can integrate some paredit functionaly
now I use calva instead of phel extension. it gives bad coloring and thinks my core is wrong but without paredit coding lisp is hard
metehan
@metehan
is there any html to ignore itself lets say in clojurescript if you write [:<> [:p "as"] [:p "sda"]] the [:<> ]element will be ignored and [:pelements will be forwarded to parent of [:<>
Jens Haase
@jenshaase
You can use an array for that: (html @[[:p "a"] [:p "b"]])
6 replies
Mario Bašić
@mabasic
Interesting, did not know that. I just figured that it works like React JSX meaning that you need to have one "root" component.
@metehan The one thing that was really helpful when coding Phel is bracket matching in vscode. That is basically all that one would need. After some time you get used to working with brackets. The extension could provide symbols which would show functions and variables defined in a document. That would be helpful, but I managed without it.
@metehan Regarding the license, I will look into it at some point in the future. I'm currently busy with other projects, so I will have to circle back to this.
1 reply
metehan
@metehan

@metehan ...Phel is bracket matching in vscode. That is basically all that one would need...

it's totally not "all one would need" :) you came from php as your website indicates. I can't imagine an effective coding experience without paredit on a lisp language. You should install calva paredit. after you try it then there is no way back from lisp family languages ;)

thank you Jens for the sample
Sean Walker
@swlkr
theres also parinfer if youre into that
metehan
@metehan
for now I am happy with calva and without phel support. parinfer is fine but not complete; travelling through sexps , barfing and slurping are missing.
Mario Bašić
@mabasic
@jenshaase Do you think that including links to my website source code and/or phel-json library would be good to have on the phel website somewhere? Maybe like examples or something like that...
2 replies
kloimhardt
@kloimhardt
Just published a 100 loc Phel backend for the canonical "guestbook" web-example. Thank you @mabasic for the inspiration.
Mario Bašić
@mabasic
@kloimhardt Nice! I'm glad that my code has helped you in some way :heart:
Jens Haase
@jenshaase
Hi everybody. I just want to inform you that I'm working on a pretty big change regarding Phel's data structures. I will replace the existing data structure with new persistent data structures similar to Clojure's data structures. This will break a few things in the next version, but I think it's worth it. If you want you can have a sneak peek by looking a the Pull Request: phel-lang/phel-lang#244
1 reply
Mario Bašić
@mabasic
@kloimhardt Can you add your project here: phel-lang/phel-lang#261 ?
kloimhardt
@kloimhardt
@mabasic project added. At the moment I am using your splendid JSON library to performantly exchange data between cljs<->phel. But with JSON, sending data of the form [:key1 {:key2 2} :key3] is tricky. I wonder whether in the new Pull Request there exists some kind of "read-string" function which would perfectly fit reading a String of cljs/EDN data into the new Phel data structures. One would lose performance by sending a String instead of JSON, but it would be very convenient.
kloimhardt
@kloimhardt
I made a reactive todo-MVC. For this I ported qlkit to Phel. Whilst its core is only 60 loc for the backend, it uses a Graphql variant for cljs<->Phel communication. The necessary data is held in the client-state and server updates are done asynchronously (except at app initialization). This means that the backend execution speed is not crucial. It is on-line here.
2 replies
Mario Bašić
@mabasic
This is maybe first of its kind, but I've rewritten JS on my personal website to F#. Now the backend is written with Phel and frontend is written with F#: https://github.com/mabasic/mariobasic-n7/tree/main/resources/js
Jose Maria Valera Reales
@Chemaclass
The project has already over 1000 commits! 🥳👏
1 reply
Jose Maria Valera Reales
@Chemaclass
I mentioned Phel in my latest post about OSS: https://chemaclass.medium.com/open-source-software-bc9f995354eb I hope you like it 🤘
Mario Bašić
@mabasic

@jenshaase Urgent! My server was losing disk space and after some analysis I found out that my /tmp directory was getting filled with files called like this: __phelV5EVe6. After opening one file I found this inside:

<?php
// /home/mabasic/apps/mariobasic-n7/vendor/phel-lang/phel-lang/src/php/Runtime/../../phel/core.phel
// ;;AA8MA,CAAC,wCAAD,CAAA,CAAM,CAAC,uCAAD,CAAA,uEAAA,iCAAA,CAAN,CAAA
($GLOBALS["__phel"]["phel\\core"]["load"])(($GLOBALS["__phel"]["phel\\core"]["str"])("/home/mabasic/apps/mariobasic-n7/vendor/phel-lang/phel-lang/src/phel", "/core/basic-constructors.phel"));

Could it be that Phel writes files to /tmp every time it compiles and then leaves the files behind?

Part of the output from sudo ls /tmp:

__phel7kD9MI  __phelFWpISU  __phelNGteJW  __phelV5DQBD  __phelcpOhI6  __phelkX5eqG  __phelsIASPq
__phel7kDJIx  __phelFWpIhm  __phelNGtgI8  __phelV5E0X9  __phelcpOo8c  __phelkX5z4k  __phelsIAYT8
__phel7kDg3Q  __phelFWpMeZ  __phelNGthKp  __phelV5E3nV  __phelcpP282  __phelkX6Y5Y  __phelsIAaqg
__phel7kDkmo  __phelFWpUFb  __phelNGtkqE  __phelV5EDkB  __phelcpP4Lf  __phelkX6n8z  __phelsIAfCo
__phel7kDlvR  __phelFWpdFe  __phelNGtnkL  __phelV5EHVk  __phelcpPJCf  __phelkX6ssK  __phelsIAjSo
__phel7kDoiH  __phelFWpigT  __phelNGtwcC  __phelV5EJ5d  __phelcpPtHY  __phelkX6tut  __phelsIAsxZ
__phel7kEEEP  __phelFWqJYK  __phelNGu5Va  __phelV5EVe6  __phelcpPueP  __phelkX6wp3  __phelsIAwag
Jens Haase
@jenshaase
Yes that is the case.
Mario Bašić
@mabasic
Can that be avoided somehow? It was taking over 6 GB on my server
Jens Haase
@jenshaase
You could simply remove the files. Maybe a Cron job would help for now.
Mario Bašić
@mabasic
I could not remove the files using sudo rm __phel* because there were too many files for bash. I had to use find . -maxdepth 1 -name "__phel*" -print0 | xargs -0 rm from inside /tmp directory
Jens Haase
@jenshaase
Ok
Mario Bašić
@mabasic
Is there a plan not to place the files there? Should I open a issue on github for this?
Jens Haase
@jenshaase
The compile command it the way to go
I will work on this after the next release