ChanServ changed the topic of #picolisp to: PicoLisp language | Channel Log: https://irclog.whitequark.org/picolisp/ | Check also http://www.picolisp.com for more information
freeemint has quit [Remote host closed the connection]
freeemint has joined #picolisp
aw- has quit [Ping timeout: 246 seconds]
<clacke_movim> rick42: I think the commenter is precisely correct, but you skipped the "only not as gracefully" part.
<clacke_movim> Python even has a LISP implementation, hy, which generates Python AST as it parses. In effect adding the grace after the fact. :-)
<clacke_movim> In fact, now that I am a Python professional again, I am motivated to learn the core lessons of hy and make Language-Oriented Programming an accessible thing on Python.
orivej_ has quit [Ping timeout: 252 seconds]
<rick42> clacke_movim: smells like cheating :) however, i understand your point. also of note, the poster said "(or any other modern programming language)". so, taken together, i'm still inclined to disagree with the poster.
<rick42> clacke_movim: it's a worthy endeavor to do what you are doing, namely learning how your tools and languages work at a deep level. hats off to you.
<yunfan> clacke_movim: you mean hy?
<clacke_movim> hy does this cool thing where after you have imported hy, it hijacks the import mechanism to look for .hy files and compile them with hy
<clacke_movim> So in your Python module you can just import hy; import my_hy_module and it Just Works
<clacke_movim> I think that could be generalized to the equivalent of Racket's #lang header
<clacke_movim> In racket you just start your .rkt file with #lang mylanguage, and it will load mylanguage/reader and read the file with the exported reader functions. Racket includes several non-parenthesis language in the standard distribution this way, e.g. datalog.
<clacke_movim> So you write syntactic datalog, add #lang datalog at the top, save it as mymodule.rkt, and you can (require mymodule) in your mainline racket module.
freeemint has quit [Remote host closed the connection]
Regenaxer has left #picolisp [#picolisp]
Regenaxer has joined #picolisp
<Regenaxer> *
orivej has joined #picolisp
Regenaxer has left #picolisp [#picolisp]
Regenaxer has joined #picolisp
Regenaxer has left #picolisp [#picolisp]
Regenaxer has joined #picolisp
orivej has quit [Ping timeout: 268 seconds]
tankf33der has joined #picolisp
<beneroth> picolisp will soon fully run on Windows (10 :/): https://devblogs.microsoft.com/commandline/announcing-wsl-2/
<beneroth> "Now that WSL 2 includes its own Linux kernel it has full system call compatibility."
<beneroth> "Initial builds of WSL 2 will be available through the Windows insider program by the end of June 2019."
<beneroth> lol, RMS commented on that MS blog :D
<beneroth> ah no, its fake RMS
<Regenaxer> Cool
<beneroth> is this an appropriate time to joke about Linux on Desktop PC ?
<Regenaxer> Why joke?
<DKordic> Good morning everyone.
<DKordic> Why not?
<beneroth> well the "this year Linux will take over Desktop PCs" is a 20 year old saying or so, being repeated again and again, but the Distros never dented much into that space
<Regenaxer> Hi DKordic
<Regenaxer> beneroth, T
<beneroth> Hi DKordic
<DKordic> Hi Regenaxer, beneroth :)
<beneroth> it's kinda a ironic that now Microsoft will proliferate Linux (just the kernel though, not the GNU system really) to most desktop pcs...
<DKordic> Right.
<DKordic> [[http://metamodular.com/closos.pdf][CLOSOS Specification of a Lisp operating system]] revealed the essence of UNIX in a few footnotes!
<DKordic> [[https://queue.acm.org/detail.cfm?id=3212479][C Is Not a Low Level Language: Your computer is not a fast PDP-11]]!
andyjpb has quit [Ping timeout: 245 seconds]
<beneroth> well C is definitely a 3gen language. but it isn't much more than a platform-independent assembler.
<beneroth> using that angle, one can also attack assembler for being not low level, as 1gen machine code is a lower level (and these days, below that are likely still a few layers of software just pretending to be hardware)
<beneroth> I like this definition from the article: "A programming language is low level when its programs require attention to the irrelevant."
<beneroth> though then I'd view most non-picolisp languages as low level ^^
<beneroth> (the subjectivity lies in what someone sees as irrelevant of course - for my taste, weak static typing is mostly just coding overhead)
<beneroth> good article though, thanks DKordic
<beneroth> good food for people who were surprised by this Spectre drama
<beneroth> the fun is that whole topic (side-channel attacks on CPU caching etc) flies directly into the face of the whole cloud industry (= shared hosting)
<Regenaxer> Good point about the irrelevant details!
<beneroth> yeah, you could put it in pils marketing material ;-)
<beneroth> add it to blaesius
<Regenaxer> indeed
<beneroth> the source for the quote is "Computer science pioneer Alan Perlis": Perlis, A. 1982. Epigrams on programming. ACM SIGPLAN Notices 17(9).
<beneroth> ah, the first recipient of the Turing Award
<beneroth> he worked on ALGOL, so he certainly knew McCarthy then
<beneroth> personally, I mean
<beneroth> ah, here the full source material: http://pu.inf.uni-tuebingen.de/users/klaeren/epigrams.html
<beneroth> I don't think I stumbled over these before.. this is GOLD! starts with "1. One man's constant is another man's variable." bwahaha
<Regenaxer> Cool, thanksI
<beneroth> we have NIL constants in pil :D
orivej has joined #picolisp
<Regenaxer> reading ...
<beneroth> oh I love this "Everything should be built top-down, except the first time."
<Regenaxer> and this "Moral: Structure data late in the programming process"
<beneroth> :)
<Regenaxer> dynamics
<beneroth> fits pil and pilDB well
<Regenaxer> T
<beneroth> doesn't fit relational SQL DBMS well - which was one of the causes of the NoSQL hype, I believe
<beneroth> (though they didn't deliver so well, those NoSQL hipsters...)
<beneroth> I heard those before:
<beneroth> A program without a loop and a structured variable isn't worth writing.
<beneroth> A language that doesn't affect the way you think about programming, is not worth knowing.
<beneroth> thanks DKordic, you made me find this!
<beneroth> OH
<Regenaxer> yeah, thanks
<beneroth> Regenaxer, another one for the blaesius!
<beneroth> "Wherever there is modularity there is the potential for misunderstanding: Hiding information implies a need to check communication."
<beneroth> this goes straight against how encapsulation is done in industry, and against having many layers of software hiding things from each other!
<beneroth> so my original ideas are not so original :D
<beneroth> this is all pure gold
<beneroth> wow
<beneroth> "Sometimes I think the only universal in the computing field is the fetch-execute-cycle."
<beneroth> so he already witnessed the disaster that today's node.js/NPM is :D
<beneroth> "Giving up on assembly language was the apple in our Garden of Eden: Languages whose use squanders machine cycles are sinful. The LISP machine now permits LISP programmers to abandon bra and fig-leaf."
<beneroth> one for our theorizers: "Don't have good ideas if you aren't willing to be responsible for them."
<Regenaxer> yeah
<beneroth> and "The proof of a system's value is its existence." to second it
<beneroth> ha
<beneroth> sorry razzy, and even DKordic, the next weird question about why are things in picolisp the way they are will be answered with that quote :P
<beneroth> (I like you, guys)
<Regenaxer> ;)
<DKordic> ""In theory, theory and practice are the same; in practice, they are quite different. "" -- John Cowan in ##lisp
<Regenaxer> 93. When someone says "I want a programming language in which I need only say what I wish done," give him a lollipop.
<Regenaxer> Put tractatus into my todo list
<beneroth> DKordic, very true
<beneroth> Regenaxer, thanks, do it!
<Regenaxer> Must find the proper place in the tree
<beneroth> thats the problem with lisp coding :D
<Regenaxer> T
<beneroth> the lollipop I would do in a negative branch
<beneroth> it's an insult. a righteous one, but still.
<Regenaxer> Such languages were propagated repeatedly. Always found that stupid
<beneroth> in the positive branch I would add somewhere a point/branch about pil not being a esoteric case study but a practical battle-tested project
<beneroth> well it's the big dream. magic also looks like that, until you found out you have to study years to make the right hand-movements, so you get the dishes cleaned and do not by accident summon the daemons of multiverse destruction
<Regenaxer> The Thermomix of programming! Gives up everything worthwile (in cooking or programming)
<beneroth> T
<beneroth> I didn't know this product, funny, wikipedia has a full "Safety" chapter on its article: "There have been numerous accounts of a Thermomix machine "exploding" and scalding people with hot liquids."
<beneroth> btw. in good news: Java EE is practically killed now (Java Enterprise Server horrors) - Oracle killed it by accident, like OpenOffice et al
Regenaxer has left #picolisp [#picolisp]
Regenaxer has joined #picolisp
orivej has quit [Ping timeout: 252 seconds]
orivej has joined #picolisp
orivej has quit [Ping timeout: 252 seconds]
CORDIC has joined #picolisp
DKordic has quit [Remote host closed the connection]
ubLIX has joined #picolisp
<tankf33der> hi all
<tankf33der> i've solved this https://adventofcode.com/2018/day/15
<tankf33der> and part 1 of day16.
ubLIX has quit [Quit: ubLIX]
<beneroth> hi tankf33der
<beneroth> cool, nice puzzle
<Regenaxer> Hi tankf33der! Did this need the shortest path?
<tankf33der> yea
<Regenaxer> cool!
<beneroth> you used Dijkstra in the end?
orivej has joined #picolisp
<beneroth> Regenaxer, I usually do (case (echo ...))
<Regenaxer> Yes, thats best in the general case
orivej has quit [Ping timeout: 246 seconds]
_whitelogger has joined #picolisp
<Regenaxer> beneroth, nice post with the 'case'
<beneroth> thanks
<Regenaxer> But needs a loop, so NIL is the EOF condition
<Regenaxer> not an error usually
<beneroth> I usually use (loop), not while
<Regenaxer> ok
<beneroth> but yeah
<beneroth> but I think loops only treat (T and (NIL within their top level, not within nested statements, right?
<Regenaxer> right
<beneroth> so a (case ... (NIL ..)) should be fine
<beneroth> just maybe not what you wanna do.. (cancelling the loop) on the other, maybe you wanna throw or quit anyway in such a case
<rick42> Regenaxer, beneroth: nice responses on the ML!
<Regenaxer> Yes, there are many ways
<Regenaxer> Hi rick42 :)
<beneroth> if the input stream is a pipe, and that other process (feeding the pipe) gets killed, then echo would return NIL ?
<rick42> hi Regenaxer :)
<beneroth> rick42, Ahoy and thanks
<rick42> beneroth: o/
<beneroth> case and cond are very handy :)
<Regenaxer> T
<Regenaxer> and need no local variable usually
<Regenaxer> (as you wrote)
orivej has joined #picolisp
<beneroth> T
<beneroth> :)
<beneroth> have a nice evening
<beneroth> bbl
beneroth has quit [Quit: Verlassend]
ubLIX has joined #picolisp
orivej_ has joined #picolisp
orivej has quit [Ping timeout: 252 seconds]
orivej_ has quit [Ping timeout: 250 seconds]
orivej has joined #picolisp
orivej_ has joined #picolisp
orivej has quit [Ping timeout: 244 seconds]
andyjpb has joined #picolisp
orivej_ has quit [Ping timeout: 245 seconds]
ubLIX has quit [Quit: ubLIX]
alexshendi has joined #picolisp
alexshendi has quit [Quit: Yaaic - Yet another Android IRC client - http://www.yaaic.org]
[rg] has joined #picolisp
xkapastel has joined #picolisp
[rg] has quit [Read error: Connection reset by peer]
[rg] has joined #picolisp
[rg] has quit [Quit: Konversation terminated!]
orivej has joined #picolisp
[rg] has joined #picolisp
xkapastel has quit [Quit: Connection closed for inactivity]
[rg] has quit [Quit: Konversation terminated!]