beneroth changed the topic of #picolisp to: PicoLisp language | The scalpel of software development | Channel Log: https://libera.irclog.whitequark.org/picolisp | Check www.picolisp.com for more information
seninha has quit [Remote host closed the connection]
pablo_escoberg has quit [Quit: Client closed]
inara` has quit [Quit: Leaving]
inara has joined #picolisp
<tankf33der> Morning
<tankf33der> picolisp on first page of hackers news
<tankf33der> go and vote up
<abu[7]> Cool!
beneroth has quit [Ping timeout: 245 seconds]
beneroth has joined #picolisp
<tankf33der> benchmark between LLVM versions
<tankf33der> by this code
<tankf33der> http://ix.io/4Clc
<abu[7]> Quite some differences
<abu[7]> Is it the quality of the generated code?
<tankf33der> maybe
beneroth has quit [Remote host closed the connection]
beneroth has joined #picolisp
seninha has joined #picolisp
seninha has quit [Remote host closed the connection]
seninha has joined #picolisp
seninha has quit [Quit: Leaving]
seninha has joined #picolisp
seninha has quit [Remote host closed the connection]
seninha has joined #picolisp
f8l has joined #picolisp
seninha_ has joined #picolisp
seninha has quit [Ping timeout: 246 seconds]
seninha_ has quit [Ping timeout: 260 seconds]
<abu[7]> Released Pil21 with 'lint' extended as discussed yesterday
<abu[7]> It checks also for lower case variables now
<tankf33der> is it correct way to lint a function? :
<tankf33der> (load "mike.l")
<tankf33der> (lint 'foo)
<tankf33der> ?
<abu[7]> yes, good
<abu[7]> I usually just do (lintAll)
<abu[7]> or (more (lintAll)) if there are many issues
<tankf33der> http://ix.io/4Cmj
<tankf33der> why (lintAll) do not see 'foo ?
pablo_escoberg has joined #picolisp
<abu[7]> Strange, yes. It is because 'foo' is not recognized as a function
<abu[7]> (getd 'foo)
<abu[7]> (pp 'foo)
<abu[7]> I think this is because of the T
<tankf33der> yeah
<abu[7]> getd believes it is data and not a function
<tankf33der> if replace T by NIL then will be the same
<abu[7]> yes
<abu[7]> (vi 'getd)
<abu[7]> then click on funq
<abu[7]> It does some heuristics to distinguish a function from plain data
<abu[7]> (lintAll) should be more clever
<abu[7]> or, better less clever
<tankf33der> http://ix.io/4Cmn
<tankf33der> why lint or pp do not see sandpile function from this files?
<tankf33der> why lint or pp do not see sandpile function from this file?
<abu[7]> Sorry, I'm on the road
<abu[7]> will look later
<tankf33der> ok
<pablo_escoberg> Are there any cryptographic primitives built in to Pil (e.g. bcrypt for password hashing) or do I need to go to `native` for that?
<abu[7]> I call ccrypt, see the Vip sources
<pablo_escoberg> TY
<aw-> worked fine when i first wrote it (2015) ahahahaaa
<aw-> still seems to build fine and all tests pass with pil21
<aw-> but the C lib hasn't been updated in just as long.. no idea if it's still secure
<aw-> it also compiles/tests fine with the "future" branch (2017)
<aw-> for what it's worth haha
<pablo_escoberg> Thanks, but I found argon2id, which appears to be the standard these days.  Won the competition the same year you wrote the bcrypt implementation :D
<pablo_escoberg> I was just checking if there was anything standard builtin that you guys use, but `native` is fine for this kind of thing.
<aw-> yeah i wouldn't do it without native anyways
<aw-> tankf33der wrote a million encryption things in picolisp
<aw-> and the ones without native are awfully slow
<pablo_escoberg> good to know!
<pablo_escoberg> although in this case slowness is a virtue...
<aw-> tankf33der: ;) ;)
<aw-> pablo_escoberg: well, no.. you don't understand what i mean by slow
<pablo_escoberg> Holy crap!  That's a lot of cryptographic primitives!
<pablo_escoberg> But yeah, I'll just use argon2id.
<aw-> you don't want the hash computing to be slowed by the code, but rather by the complexity. If you write in picolisp (without native) and it takes 1 minute to compute, and some hacker uses a C version and it takes 1 second, well you're screwed.
<aw-> conversely, why would you want to spend 1 minute computing a hash when you can do it in 1 second?
<aw-> so.. use native
<pablo_escoberg> If they get access to the raw DB, yes.  But as long as they are trying to brute force remotely, slowness is good.
<pablo_escoberg> but yeah, I'll use native.
<aw-> and yes tankf33der is awesome, Mike has written lots of good code and shared it generously
<pablo_escoberg> (y) (y) (y)
<aw-> pablo_escoberg: i'm not sure what you're trying to secure, but if you think remote access to a DB is your only weak point that needs to be secured, then you're going to have trouble down the road
<aw-> there's sooo many threat factors to think about, if you're trying to protect user passwords or other information, you HAVE to think of the possibility of someone gaining access to the raw DB
<pablo_escoberg> of course.  I will properly salt the passwords and make sure everything is hardened against physical access, etc.  I was just pointing out that in this specific case, slowness isn't an issue.
<aw-> either through a backup or missing parens which allows someone to upload a script
<pablo_escoberg> sure.  The first thing I'm building probably won't require heavy security, but I don't want to get into any bad habits.
<aw-> hmmm
<aw-> many red flags so far, i wouldn't trust your software just based on what you've written in this public chat
<aw-> security must NEVER be an afterthought
<pablo_escoberg> it isn't.  I'm starting by making sure my passwords are securely hashed and I'm not even protecting anything valuable yet.
<aw-> but it's your project so doesn't matter until you release it
<pablo_escoberg> My security attitude is always assume the data is a lot more valuable than it is.
<pablo_escoberg> It may not meet your standards, but it's worked so far.
<aw-> ¯\_(ツ)_/¯
<abu[7]> ret
<abu[7]> tankf33der: 'sandpile' looks OK, no?
<abu[7]> : (symbols 'simul 'pico)
<abu[7]> : (lint 'sandpile)
<abu[7]> -> NIL
pablo_escoberg has quit [Quit: Client closed]
<tankf33der> Ah, NIL is from lint, ok then
<abu[7]> good
<abu[7]> I think 'lintAll' should use its own version of getd
<abu[7]> hmm, it is even simpler
<abu[7]> I don't call fun? or getd in lintAll at all
<abu[7]> Now lintAll also finds the above case
<abu[7]> I released it
<tankf33der> Thanks
<abu[7]> Let's see how it "feels" ;)
<abu[7]> 'lint' is always very heuristical, bevause it cannot well know what is data and what is code
<tankf33der> tested. seems all ok
<tankf33der> afk.
<abu[7]> Thanks!
seninha has joined #picolisp
seninha has quit [Quit: Leaving]
stultulo has joined #picolisp
f8l has quit [Ping timeout: 245 seconds]
chexum has quit [Ping timeout: 240 seconds]
chexum has joined #picolisp
stultulo has quit [Ping timeout: 250 seconds]
stultulo has joined #picolisp
seninha has joined #picolisp
seninha has quit [Remote host closed the connection]
seninha has joined #picolisp
seninha has quit [Quit: Leaving]