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
SpookyScarySkele is now known as dTal
_whitelogger has joined #picolisp
aw- has joined #picolisp
alexshendi has joined #picolisp
alexshendi has quit [Ping timeout: 246 seconds]
_whitelogger has joined #picolisp
immasheepherrder has joined #picolisp
immasheepherrder has quit [Quit: leaving]
immasheepherrder has joined #picolisp
alexshendi has joined #picolisp
<immasheepherrder> hi
<Regenaxer> Hi immasheepherrder
<immasheepherrder> New here, been lurking for a week now. Seems like a great community!
<Regenaxer> Thanks :)
<immasheepherrder> I'll probably start asking some rookie questions in the near future, if that's OK. :)
<Regenaxer> Sure, any time! :)
<Regenaxer> No worries
orivej has quit [Ping timeout: 272 seconds]
alexshendi has quit [Quit: qicr for android: faster and better]
immasheepherrder has quit [Quit: leaving]
immasheepherrder has joined #picolisp
immasheepherrder has quit [Client Quit]
immasheepherrder has joined #picolisp
immasheepherrder has quit [Client Quit]
immasheepherrder has joined #picolisp
<immasheepherrder> > All other things equal, 64-bit PicoLisp is usually slower than the 32-bit version, due to a poorer memory cache performance (the cells are twice as large size). On the other hand, arithmetics are faster, due to the additional short number type in pil64.
<immasheepherrder> Whoops, wanted to format that better. The quote is from the bottom of this page: https://picolisp.com/wiki/?pilvsel
<beneroth> Ahoy immasheepherrder, welcome here :)
<beneroth> immasheepherrder, yeah, what is the question? :))
<immasheepherrder> Hi beneroth!
<immasheepherrder> As I mainly do CRUD stuff, I guess the PicoLisp version for me would be the "normal" one, then?
<immasheepherrder> (With "normal" I mean the 32-bit version.)
<beneroth> no, the normal one is currently pil64
<beneroth> as nearly all CPU these days are 64bit
<immasheepherrder> Ah ok, thanks
<beneroth> the only meaningful use of pil32 these days might be if you want to have it's direct C interopability, but most of that you can get with the (native) function in pil64
<beneroth> immasheepherrder, actually a new edition of picolisp (vm implementation) was just finished, pil21 which is picolisp implemented in LLVM (a kind of compiler-standard)
<beneroth> probably this one will become the "primarily" picolisp edition (implementation) soonish
<beneroth> the main advantage is better compatibility, it runs on current androids and on Apple MacOS (which wasn't supported with pil64 because it has a exotic binary format)
<Regenaxer> I think this speed argument isn't true anyway on today's machines
<Regenaxer> Pil64 is in Asm
<beneroth> immasheepherrder, you can still use the older versions, they don't have any known bugs/issues, but the newer implementations have some more functionality and are actively getting extended, so to say
<Regenaxer> right
<Regenaxer> Pil32, Ersatz and Mini are not maintained any more
<beneroth> immasheepherrder, CRUD stuff is actually kinda the main usage of picolisp
<Regenaxer> Pil64 will be replaced by Pil21 soon
<Regenaxer> So, in summary, for a newcomer pil21 is the recomgended way to go :)
<Regenaxer> I'm still working at the docs
<Regenaxer> INSTALL, README, doc/*.html are there
<immasheepherrder> Thanks guys, that's really helpful
<Regenaxer> :)
<Regenaxer> Exactly, even better
<Regenaxer> I think the refs need more tuning or corrections in some details
<Regenaxer> But basically they are done
<Regenaxer> tankf33der, https://git.envs.net/mpech/pil21 is correct too?
<tankf33der> yea
<Regenaxer> What is the diff to https://github.com/picolisp/pil21 ?
<tankf33der> on envs is mine mirror, on github is Mansur's.
<Regenaxer> ah, ok
<immasheepherrder> In case I have suggestions for the docs in the future, where should I post them?
<beneroth> here
<beneroth> or mailing list
<beneroth> or send patch to Regenaxer
<Regenaxer> yeah
<Regenaxer> easiest is here perhaps
<beneroth> immasheepherrder, first errors you will probably get is segfaults - no panic, you mistakenly called a symbol like a function without it's value being a function
<beneroth> you will not manage to do any more segfaults later
<Regenaxer> T
<beneroth> next level of learning picolisp is then being sure about finding a bug but actually using some function wrong, and the reference actually states it cleary (but it's very terse, therefore misreads happen)
<beneroth> or not knowing about a function. there are many :)
<beneroth> then it becomes more and more fun, and then you will start to hate programming in another language ;-)
<beneroth> immasheepherrder, check out rosetta code, that is a good help to get into picolisp: http://rosettacode.org/wiki/PicoLisp
<beneroth> most code there is either from Regenaxer or tankf33der
<Regenaxer> It is a useful place to look for programming examples
<immasheepherrder> Will do!
orivej has joined #picolisp
<immasheepherrder> I'm reading up on Pilog. One thing I was wondering: how portable is data contained in a Pilog database? Is it easy to extract it to a plain text format (or something like GNU recutils, e.g.), or would that require a lot of custom scripting?
<Regenaxer> It is fairly easy to write reports
<Regenaxer> Reports always also generate CSV while displaying the HTML
<Regenaxer> You find examples in the distro
<Regenaxer> (app/sales.l and app/inventory.l)
<Regenaxer> In the easiest case you write a one-liner
<Regenaxer> (for This (collect 'nm '+Item) (prinl (: nr) "\t" (: nm) "\t" (: pr)))
<Regenaxer> dumps all items in the DB
<beneroth> immasheepherrder, custom scripting is kinda needed, but it's much less effort than configuring stuff in other databases
<immasheepherrder> Nice, thanks
<immasheepherrder> As a full-time Java developer It'll probably take some time adjusting to your much much shorter naming conventions.
<Regenaxer> haha, yes, a neccessary gadget
<immasheepherrder> Is there a reason for that, btw? Other than personal preferences? Example: using "nm" as a class field, instead of "name".
<Regenaxer> (I should not tell here that I'm in fact working in 48 columns here)
<Regenaxer> for DB class field it makes sense
<Regenaxer> the names are stored along with the data
<immasheepherrder> Ah ok, so smaller name = smaller size of each record
<Regenaxer> Yes. "name" takes up 2 bytes more in *every* DB objecy
<Regenaxer> But I confess that I'm a bit paranoid about using too long names in general
<Regenaxer> It is easier to read at a single glance
<Regenaxer> (once you are *in* the code)
<beneroth> same applies to most NoSQL databases (to all "document databases" to be specific)
<Regenaxer> I see
<beneroth> (but there you usually just throw more hardware to it)
<beneroth> (green it is only marketing lie)
immasheepherrder has quit [Ping timeout: 240 seconds]
immasheepherrder has joined #picolisp
immasheepherrder has quit [Quit: leaving]
immasheepherrder has joined #picolisp
emacsomancer has quit [Read error: Connection reset by peer]
emacsomancer has joined #picolisp
immasheepherrder has quit [Read error: Connection reset by peer]
immasheepherrder has joined #picolisp
immasheepherrder has quit [Ping timeout: 240 seconds]
immasheepherrder has joined #picolisp
immasheepherrder has quit [Quit: leaving]
immasheepherrder has joined #picolisp
immasheepherrder has quit [Ping timeout: 256 seconds]