milanj has quit [Quit: This computer has gone to sleep]
ltriant has joined #lisp
igemnace has quit [Read error: Connection reset by peer]
igemnace has joined #lisp
ltriant has quit [Ping timeout: 248 seconds]
atgreen_ has quit [Ping timeout: 276 seconds]
khisanth_ has quit [Ping timeout: 245 seconds]
alexanderbarbosa has joined #lisp
khisanth_ has joined #lisp
_whitelogger has joined #lisp
ltriant has joined #lisp
rippa has joined #lisp
xkapastel has quit [Quit: Connection closed for inactivity]
Necktwi has quit [Ping timeout: 258 seconds]
ebzzry has quit [Quit: WeeChat 2.3]
Necktwi has joined #lisp
ebzzry has joined #lisp
gravicappa has joined #lisp
rippa has quit [Quit: {#`%${%&`+'${`%&NO CARRIER]
CloseToZero has joined #lisp
igemnace has quit [Read error: Connection reset by peer]
xkapastel has joined #lisp
ltriant has quit [Ping timeout: 245 seconds]
igemnace has joined #lisp
vutral has quit [Remote host closed the connection]
ltriant has joined #lisp
milanj has joined #lisp
<beach>
Good morning everyone!
<LdBeth>
Morning
torbo has quit [Remote host closed the connection]
vutral- has quit [Read error: Connection reset by peer]
vlatkoB has joined #lisp
vutral has joined #lisp
vutral has quit [Read error: Connection reset by peer]
alexanderbarbosa has quit [Ping timeout: 264 seconds]
vutral has joined #lisp
milanj has quit [Quit: This computer has gone to sleep]
frgo_ has quit [Remote host closed the connection]
milanj has joined #lisp
sauvin has joined #lisp
milanj has quit [Quit: This computer has gone to sleep]
shka_ has joined #lisp
EvW has joined #lisp
Frobozz has quit [Ping timeout: 268 seconds]
dale has quit [Quit: My computer has gone to sleep]
frgo has joined #lisp
frgo has quit [Ping timeout: 245 seconds]
frgo has joined #lisp
shka_ has quit [Ping timeout: 258 seconds]
nullnullnull has quit [Quit: Leaving]
anewuser has joined #lisp
shrdlu68 has joined #lisp
FennecCode has quit [Quit: ERC (IRC client for Emacs 26.2)]
SaganMan has joined #lisp
slyrus__ has joined #lisp
slyrus1 has joined #lisp
slyrus_ has quit [Ping timeout: 244 seconds]
slyrus2 has quit [Ping timeout: 268 seconds]
ltriant has quit [Quit: leaving]
dmiles has quit [Read error: Connection reset by peer]
dmiles has joined #lisp
quazimodo has joined #lisp
manualcrank has quit [Quit: WeeChat 1.9.1]
EvW has quit [Ping timeout: 250 seconds]
varjag has joined #lisp
dpl has joined #lisp
orivej has joined #lisp
Necktwi has quit [Ping timeout: 248 seconds]
xkapastel has quit [Quit: Connection closed for inactivity]
anewuser has quit [Quit: anewuser]
orivej has quit [Ping timeout: 245 seconds]
Necktwi has joined #lisp
toorevitimirp has joined #lisp
orivej has joined #lisp
toorevitimirp has quit [Quit: WeeChat 1.9.1]
_whitelogger has joined #lisp
igemnace has joined #lisp
Kaisyu7 has quit [Quit: ERC (IRC client for Emacs 26.2)]
Lord_of_Life has quit [Ping timeout: 272 seconds]
femi has quit [Ping timeout: 245 seconds]
Lord_of_Life has joined #lisp
gareppa has joined #lisp
igemnace has quit [Read error: Connection reset by peer]
igemnace_ has joined #lisp
femi has joined #lisp
quazimodo has quit [Ping timeout: 244 seconds]
Necktwi has quit [Ping timeout: 258 seconds]
Necktwi has joined #lisp
t58 has joined #lisp
orivej has quit [Ping timeout: 245 seconds]
jansc has quit [Ping timeout: 246 seconds]
amerlyq has joined #lisp
igemnace has joined #lisp
igemnace_ has quit [Read error: Connection reset by peer]
Ricchi has quit [Remote host closed the connection]
frgo has quit [Read error: Connection reset by peer]
frgo has joined #lisp
cosimone has joined #lisp
Necktwi has quit [Ping timeout: 272 seconds]
mindthelion has quit [Ping timeout: 244 seconds]
cosimone has quit [Quit: WeeChat 2.4]
Necktwi has joined #lisp
techquila has joined #lisp
cosimone has joined #lisp
beach` has joined #lisp
beach` has quit [Remote host closed the connection]
beach has quit [Disconnected by services]
ebrasca has joined #lisp
zooey has quit [Remote host closed the connection]
beach has joined #lisp
zooey has joined #lisp
random-nickname has joined #lisp
pfdietz has quit [Remote host closed the connection]
zotan has quit [Ping timeout: 264 seconds]
zotan has joined #lisp
Kaisyu has quit [Quit: Connection closed for inactivity]
gareppa has quit [Quit: Leaving]
shrdlu68 has quit [Ping timeout: 258 seconds]
karswell has joined #lisp
pmden has joined #lisp
cosimone has quit [Quit: WeeChat 2.4]
makomo has joined #lisp
shrdlu68 has joined #lisp
SaganMan has quit [Quit: WeeChat 1.6]
<beach>
I was listening to a talk (on YouTube) by Kelvin Henney, and he made a good argument against a particular style of laying out an argument list or a parameter list that won't fit on a single line, namely where you put the first argument or parameter on the same line as the function name and then you align the remaining arguments or parameters under the first one.
theblacksquid has joined #lisp
<beach>
The argument against is one of refactoring. One of the most common things to do during refactoring is to rename things.
<beach>
Now, if you rename the function, then the arguments or parameters will likely no longer be aligned.
<beach>
So you create additional work for yourself, or, worse, you miss some cases where you need to realign the arguments or parameters.
<beach>
So, as a safe alternative, he suggests putting the first argument or parameter on a separate line.
<beach>
And I agree with him, because it happened to me.
atgreen_ has joined #lisp
<LdBeth>
it’s like put function name after the line of type declaration in C so grep ^fname( can find the function definition
<LdBeth>
A style made to fit the limited tools
<beach>
Yes, I did that when I still programmed in C.
<no-defun-allowed>
What CL datatypes other than lists, numbers and symbols can you use in ACL2? I can find defstructure (which is close to defstruct) but no vectors so far.
<Xach>
no-defun-allowed: i don't know if anyone here knows about acl2
<Xach>
it is certainly not a topic of discussion that i have ever seen
<no-defun-allowed>
Well then. Would be nice to verify the correctness of a bytecode interpreter+compiler I'm working on.
<Xach>
no-defun-allowed: good luck with it! i think email might work for help
<LdBeth>
#'no-defun-allowed: you define axioms to create data types corresponds to CL data structures
<LdBeth>
#'no-defun-allowed: ACL2 is not suited to verify Lisp programs
<no-defun-allowed>
LdBeth: Hm... Maybe the prover won't be bog slow if we use lists in place of vectors though.
<LdBeth>
Unless you’re willing to program with only well founded recursion
dddddd has joined #lisp
<LdBeth>
And without higher order functions
<LdBeth>
#'no-defun-allowed: the prover supports vector, and it’s not interchangeable with lists in nature
<no-defun-allowed>
Seriously? No higher order functions?
xkapastel has joined #lisp
<LdBeth>
Because it’s first order Boyer Moore Logic
<LdBeth>
You might mimic higher order with only macro
<no-defun-allowed>
I'll have to check how much I'd have to modify to make my code ACL2-friendly then.
<LdBeth>
Typically you don’t write entire program in pure lisp
<LdBeth>
You only write specification for your critical algorithms
Necktwi has quit [Ping timeout: 245 seconds]
<LdBeth>
By pure lisp I mean the lisp language used by ACL2
<no-defun-allowed>
I was looking at a guide for ACL2 and it demonstrated a little bytecode (more accurately, listcode) machine, language compiler and interpreter and proof that the machine would do the same thing as the interpreter.
<LdBeth>
You can’t verify the actual machine or a particular implementation, with ACL2 you can only check the model
m00natic has joined #lisp
karswell has quit [Read error: No route to host]
karswell has joined #lisp
gravicappa has quit [Ping timeout: 272 seconds]
<jdz>
My idea is that you have a model, then you check the model with the tool (be it ACL2 or TLA+ or whatever); but then implementing said model correctly is separate and completely different task.
jmercouris has quit [Remote host closed the connection]
atgreen_ has joined #lisp
FreeBirdLjj has joined #lisp
orivej has joined #lisp
dpl has quit [Read error: Connection reset by peer]
CloseToZero has quit [Quit: WeeChat 2.5]
amerlyq has quit [Ping timeout: 246 seconds]
orivej has quit [Ping timeout: 245 seconds]
amerlyq has joined #lisp
orivej has joined #lisp
random-nickname has quit [Read error: Connection reset by peer]
random-nickname has joined #lisp
Jesin has quit [Quit: Leaving]
Jesin has joined #lisp
orivej has quit [Read error: Connection reset by peer]
orivej has joined #lisp
shrdlu68 has joined #lisp
t58 has joined #lisp
FreeBirdLjj has quit []
sonologico has joined #lisp
orivej has quit [Ping timeout: 245 seconds]
HDurer has quit [Remote host closed the connection]
jprajzne has quit [Quit: jprajzne]
sonologico has quit [Remote host closed the connection]
pmden has quit [Quit: Goodbyeee]
ebrasca has quit [Remote host closed the connection]
orivej has joined #lisp
Guest79914 has joined #lisp
orivej has quit [Ping timeout: 246 seconds]
varjag has joined #lisp
sellout has joined #lisp
m00natic has quit [Remote host closed the connection]
lmln has quit [Quit: Connection closed for inactivity]
<flip214>
Can I tell LPARALLEL:MAKE-KERNEL to use the other scheduler (in central-scheduler.lisp)?
pjb has joined #lisp
orivej has joined #lisp
<flip214>
ah, #-lparallel.with-stealing-scheduler
Guest79914 has quit []
X-Scale has quit [Quit: HydraIRC -> http://www.hydrairc.com <- In tests, 0x09 out of 0x0A l33t h4x0rz prefer it :)]
schweers has quit [Ping timeout: 250 seconds]
FreeBirdLjj has joined #lisp
CrazyEddy has quit [Remote host closed the connection]
froggey has quit [Ping timeout: 246 seconds]
froggey has joined #lisp
CrazyEddy has joined #lisp
cosimone has quit [Quit: WeeChat 2.4]
wigust- has joined #lisp
wigust has quit [Ping timeout: 248 seconds]
random-nickname is now known as random-nick
hdasch has quit [Ping timeout: 246 seconds]
FreeBirdLjj has quit [Remote host closed the connection]
hdasch has joined #lisp
sauvin has quit [Ping timeout: 246 seconds]
dpl has joined #lisp
khisanth_ has quit [Ping timeout: 244 seconds]
gareppa has joined #lisp
khisanth_ has joined #lisp
kajo has quit [Ping timeout: 264 seconds]
cl-arthur has joined #lisp
jansc has joined #lisp
<cl-arthur>
Hi! I want to make some web applications: any reccomendations on the approach? Grab hunchentoot and build on it directly? Grab a higher-level framework? (Which? Why?)
faheem_ has joined #lisp
aoeu256 has joined #lisp
smazga has quit [Ping timeout: 248 seconds]
<aoeu256>
Lisp newbie here: anyone here use static types/contracts for Lisp? is it possible to generate types from doc tests (unit tests?). I'm thinking of creating a unit test "language" that can specify types and tests at the same time which will be a great form of testable documentation.
<cl-arthur>
might well be worth playing with Lisp in its usual dynamic form as a noob :P
smazga has joined #lisp
alexanderbarbosa has joined #lisp
parjanya has quit [Remote host closed the connection]
hiroaki has quit [Ping timeout: 244 seconds]
krwq has quit [Remote host closed the connection]
vlatkoB has quit [Remote host closed the connection]
krwq has joined #lisp
kajo has joined #lisp
shrdlu68 has quit [Ping timeout: 246 seconds]
shrdlu68 has joined #lisp
xkapastel has quit [Quit: Connection closed for inactivity]
karswell has quit [Ping timeout: 244 seconds]
cosimone has joined #lisp
cosimone has quit [Client Quit]
<aeth>
cl-arthur: Like all things medium, I didn't expect much once I saw the URL, and I wasn't disappointed. A macro like that should use the same order as defmethod, with the type coming second in the lambda-list. The macro code also has this (equalp (string (first arg)) "int") for some reason.
cosimone has joined #lisp
<aeth>
Like why? First, that's not how you do a symbol comparison, second you can just... define the type int
milanj has joined #lisp
<aeth>
You also just can't disassemble when you're using declarations in SBCL. sb-disassem:disassemble-code-component shows you the type checks that are being added.
<aeth>
This is the key quote of the article. "I can tell you that I wrote that macro, instead this entire post, while waiting on a flight going from the AmberMD dev meeting to the European Lisp Symposium."
<aeth>
Stuff like this always requires at least two days in practice because you think of the edge cases the next morning.
jansc has quit [Ping timeout: 268 seconds]
<cl-arthur>
"Edge cases the next morning" is fairly typical, yeah.
<Xach>
the key part of the URL is "MartinCracauer", not "medium"
Guest67786 is now known as borodust
borodust has quit [Changing host]
borodust has joined #lisp
amerlyq has quit [Quit: amerlyq]
jansc has joined #lisp
mindCrime has quit [Ping timeout: 248 seconds]
Lord_of_Life_ has joined #lisp
Lord_of_Life has quit [Ping timeout: 248 seconds]
Lord_of_Life_ is now known as Lord_of_Life
nowhere_man has joined #lisp
Ricchi has joined #lisp
gareppa has quit [Quit: Leaving]
jansc has quit [Ping timeout: 272 seconds]
smazga has quit [Quit: leaving]
notzmv has quit [Ping timeout: 245 seconds]
jansc has joined #lisp
xkapastel has joined #lisp
jansc has quit [Ping timeout: 272 seconds]
lucasb has quit [Quit: Connection closed for inactivity]
hiroaki has joined #lisp
gxt has joined #lisp
hiroaki has quit [Ping timeout: 248 seconds]
atgreen_ has quit [Ping timeout: 272 seconds]
Necktwi has quit [Ping timeout: 268 seconds]
dmh has joined #lisp
cosimone has quit [Quit: WeeChat 2.4]
hiroaki has joined #lisp
LiamH has quit [Quit: Leaving.]
theblacksquid has quit [Quit: WeeChat 1.9.1]
milanj has quit [Quit: This computer has gone to sleep]
dmh has left #lisp [#lisp]
milanj has joined #lisp
frgo has quit [Remote host closed the connection]
frgo has joined #lisp
hiroaki has quit [Ping timeout: 248 seconds]
atgreen_ has joined #lisp
oni-on-ion has joined #lisp
shka_ has quit [Ping timeout: 272 seconds]
frgo has quit [Ping timeout: 272 seconds]
dpl has quit [Ping timeout: 244 seconds]
srandon111 has joined #lisp
<srandon111>
hello all guys i wanted to start with some lisp or dialect, but reading here and there seems there are no updates to major lisp dialects except clojure...
<aeth>
Which means most implementations have adopted that de facto standard.
<semz>
i was thinking of the standardized language specifically
<semz>
though it's ironic that i'd be inaccurate while complaining about the same
<no-defun-allowed>
srandon111: Why would you want a language that's still being updated? You'd have to update your code to match the language.
<srandon111>
no-defun-allowed, yes i understand... what about usage share? i mean are there modern modules to do general purpose programming? what dialect of lisp would you suggest?
<no-defun-allowed>
srandon111: This is #lisp, so by law I have to suggest Common Lisp. And, well, no Lisp is that popular, nor is it a good measure of anything.
<no-defun-allowed>
And what do you mean by "general purpose"? I would hope Lisp can do programming, if not we're in a lot of trouble.
<srandon111>
no-defun-allowed, what do you mean nor it is a good measure of anything ?
<srandon111>
no-defun-allowed, basically i was talking about modules to work with http, libpcap, graphics, dataframes or statistics...
<srandon111>
this kind of stuff...
<no-defun-allowed>
It's peer pressure really. I think we got lectured on that as kids.
<aeth>
srandon111: #lisp is Common Lisp and ##lisp is all Lisp languages and #scheme is all Scheme dialects. So you're going to get a biased answer in favor of Common Lisp in #lisp
<no-defun-allowed>
srandon111: I have my opinions, but you can find a lot of libraries on CLiki, for example: https://www.cliki.net/statistics
<semz>
"everyone is doing it so you should be too"
<no-defun-allowed>
Doing something because your peers do sounds a lot like peer pressure to me.
<aeth>
srandon111: Afaik, Emacs Lisp has the most amount of software, but they're mostly messy plugins for the GNU Emacs text editor so please don't use that in production. Beyond that it's probably Clojure then Common Lisp then Racket in terms of package count. The three big Schemes are Racket (which is also sort of not a Scheme), Guile, and Chicken. The rest are far behind in packages.
<no-defun-allowed>
As the wise p_l said: "Let's eat shit, billions of flies can't be wrong"
<aeth>
srandon111: But you definitely can do everything in Common Lisp if you choose to. Especially graphics. Most of #lispgames is working in Common Lisp.
<srandon111>
no-defun-allowed, look basically i am working on network programming and softwares doing spidering and bunch of http requests....
<semz>
that's easily doable in CL
<aeth>
Common Lisp, particularly SBCL, is pretty good at the sort of numerical work that graphics is, and cl-opengl is an excellent OpenGL wrapper.
<srandon111>
aeth, how is the performance of clisp? better than clojure ?
<no-defun-allowed>
CLISP is an implementation of Common Lisp, and it's designed to be very portable rather than performant. There are faster implementations like SBCL and Clozure though.
<aeth>
srandon111: CLISP is an implementation of CL, and probably the worst-performing one (unless you only care about RAM usage) because it's bytecode compiled and then interpreted. Quite a few CLs are natively compiled, and the fastest resulting code is currently produced by SBCL
<aeth>
srandon111: SBCL's performance is excellent, and is better than Clojure. It's not really fair, though, because SBCL is more multiparadigm so it's much better at the sort of mutable numeric arrays things that people use for benchmarks
<no-defun-allowed>
And I would expect them to be faster than Clojure, as they compile to native code rather to the JVM.
<srandon111>
no-defun-allowed, ok i think i will use that quote close to a paragraph title in my these... ahah XD the one from p_l
frgo has joined #lisp
<aeth>
srandon111: on that benchmarks game website, SBCL is 2-5x, mostly 3x, slower than C/C++/Rust in highly optimized high-performance-computing microbenchmarks that absolutely no one is going to actually put that much effort into optimizing in practice.
varjag has quit [Ping timeout: 246 seconds]
<aeth>
But 1.5x-3x the time of C to run a given task is probably what you can usually expect, mostly because CL doesn't autovectorize at all.
<aeth>
s/CL doesn't/SBCL doesn't/
<srandon111>
no-defun-allowed, aeth i was intrigued/interested/curious about lisp and its dialects, i basically liked the idea of interactive development and liked the syntax which seemed strange for someone who comes from java, python, C
<srandon111>
probably i could start with clojure, but actually i am not a fan of JVM
<srandon111>
although i know it's quite performant
<no-defun-allowed>
CL has very good interactive toolage, much better than that for Clojure.
<aeth>
Just because the JVM is performant doesn't mean that JVM languages will run as fast as Java.
<aeth>
SBCL destroys lots of compile-to-C Lisps in performance, even though C is pretty fast.
<no-defun-allowed>
I have to prefix this with "You may have seen better than SLIME, especially if you have used a Smalltalk VM or Lisp machine", but SLIME is reaaaaally good.
cl-arthur has quit [Remote host closed the connection]
<srandon111>
aeth, no-defun-allowed so you suggest sbcl with slime to start ?
<no-defun-allowed>
Yeah. If you're not on Linux where it's close to trivial to install everything, you can use Portacle to get those: https://portacle.github.io
<srandon111>
no-defun-allowed, i'm on linux
<no-defun-allowed>
Which distro?
<srandon111>
arch and manjaro
<srandon111>
basically arch
<aeth>
srandon111: SBCL, CCL, and ECL in that order is what I'd recommend to try. That's roughly sorted by popularity/performance/features.
<no-defun-allowed>
(Might still be good to use Portacle to avoid making some decisions you don't know much about.)
<no-defun-allowed>
Well, `sudo pacman -S sbcl emacs` is step one.
<srandon111>
thanks guys.. another question... which package can i use to do http requests ?
<srandon111>
asynchrounously
<no-defun-allowed>
Then follow the instructions on https://www.quicklisp.org/beta/ (`sbcl --load quicklisp.lisp` is how you load the installer in SBCL)
<no-defun-allowed>
Then to get slime, (ql:quickload :quicklisp-slime-helper) and follow the instructions that gives you. Or, well, just use Portacle if that's a bit much.
Bike has joined #lisp
<srandon111>
no-defun-allowed, ok what about some good book to use?
<srandon111>
or video on youtube which explaines me the basics?
<srandon111>
i would like to know basically how to interact with an unknown module
<srandon111>
what do you do ? you generally check the docs also for lisp? or there are smarter ways ?
<no-defun-allowed>
minion: tell srandon111 about Practical Common Lisp
<minion>
srandon111: please see Practical Common Lisp: pcl-book: "Practical Common Lisp", an introduction to Common Lisp by Peter Seibel, available at http://www.gigamonkeys.com/book/ and in dead-tree form from Apress (as of 11 April 2005).
<no-defun-allowed>
Checking the specification is a bit like reading a dictionary to learn a human language in a way. I would suggest you read some introductory material instead to get a feel for the language.