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
alexshendi has quit [Read error: Connection reset by peer]
alexshe20 has joined #picolisp
alexshe20 has quit [Read error: Connection reset by peer]
alexshendi has joined #picolisp
alexshe67 has joined #picolisp
alexshendi has quit [Ping timeout: 265 seconds]
alexshe67 has quit [Ping timeout: 260 seconds]
alexshendi has joined #picolisp
alexshendi has quit [Read error: Connection reset by peer]
alexshendi has joined #picolisp
alexshe79 has joined #picolisp
alexshendi has quit [Read error: Connection reset by peer]
alexshendi has joined #picolisp
alexshendi has quit [Read error: Connection reset by peer]
alexshe53 has joined #picolisp
alexshe79 has quit [Ping timeout: 268 seconds]
aw- has joined #picolisp
alexshe53 has quit [Quit: -a- IRC for Android 2.1.59]
Regenaxer has quit [*.net *.split]
stux|away has quit [*.net *.split]
mabi has quit [*.net *.split]
stux|away has joined #picolisp
mabi has joined #picolisp
Regenaxer has joined #picolisp
rob_w has joined #picolisp
v_m_v has joined #picolisp
<aw-> Regenaxer: hi
<aw-> what does this mean "But on the other hand, this problem will soon time out. "
<aw-> ?
<aw-> i'm trying to understand why you want to delay the 'minimum version' of LLVM in INSTALL file
<Regenaxer> Hi aw-! I meant that LLVMs older than 7 will disappear
<Regenaxer> Not delay, no need at the Moment
<Regenaxer> Only if it should happen that we need >= 11 for example
<aw-> older than 7 will disappear?
<aw-> why?
<beneroth> Regenaxer, well what is the current minimum version? I doubt that LLVM 1 is enough?
<aw-> i've got llvm 7 on my debian 10 machine
<Regenaxer> As tankf33der investigated, pil needs >= 7
<aw-> and llvm-8
<beneroth> Regenaxer, thx
<Regenaxer> yes, fine
<aw-> ok if it needs >= 7 then that should go in the INSTALL file
<beneroth> so minimum version is LLVM 7 and this will stay this way for the foreseeable future?
<aw-> requiring llvm 11 is a bit premature i think
<beneroth> aw-, agreed
<Regenaxer> Keep it simple
<Regenaxer> why write things noone needs?
<aw-> its just 1 line
<Regenaxer> Less than 7 will have other problems too probably
<aw-> requires LLVM 8+
<Regenaxer> Outdated OS
<beneroth> hehee
<beneroth> you are right
<beneroth> but
<beneroth> updated environments are more often wishful thinking than lived practice
<beneroth> yes it's dumb and we have a lot of problems because of it :)
<Regenaxer> yeah
<beneroth> old MacOS hardware cannot be upgraded, even when the hardware is still fine.
<beneroth> similar with solaris servers
<beneroth> and then there are fields like medical equipment which need expensive re-certification whenever a small change is done, therefore they stay on old stuff forever (mostly Windows XP afaik)
<beneroth> so if someone likes to use picolisp on such a computer, it would be nice to know the minimum LLVM version, as the one on board might be actually older
<Regenaxer> If we start this, we'll have to write versions for everything
<beneroth> T
<aw-> beneroth: i agree
<razzy> I have too little information to have oppinion
<razzy> I am reading blog and tutorial, testing family.l DB. How do i put number to +Joint relation? how do i remove specific relation?
<Regenaxer> Hi razzy! A +Joint always refers to another +Entity object
<razzy> Regenaxer: i was thinking making new (class +Number-Joint +Number +Joint)
<razzy> btw, Good day Regenaxer, everyone!
v_m_v has quit [Remote host closed the connection]
v_m_v has joined #picolisp
<v_m_v> How I can just run PiL script without going into repl?
<aw-> v_m_v: pil ./script
<aw-> or pil ./script -bye
<aw-> you can also add a shebang at the top of the pil script
<aw-> #!/usr/bin/env pil
<aw-> and then chmod +x ./script
<aw-> then you'll be able to call it like ./script
<v_m_v> thank you ! :)
<aw-> and you can add (bye) at the end of the script so it doesn't drop to the repl
Nistur has quit [Ping timeout: 268 seconds]
Nistur has joined #picolisp
razzy has quit [Ping timeout: 265 seconds]
razzy has joined #picolisp
clacke has joined #picolisp
razzy has quit [Ping timeout: 265 seconds]
razzy has joined #picolisp
razzy has quit [Ping timeout: 250 seconds]
aw- has quit [Ping timeout: 245 seconds]
razzy has joined #picolisp
<v_m_v> Do I need to specify indexes for numbers and if so ...how big they should be?
rob_w has quit [Remote host closed the connection]
<Regenaxer> v_m_v, you mean the keys are numbers?
<v_m_v> I mean ..I have a field with number and I would like to build search based on that field.
<Regenaxer> You can use any s-expression as keys
<Regenaxer> yes
<v_m_v> I know that I need indexes to search my strings ...but what about numbers ... +Ref will be fine?
<Regenaxer> Look at the demo "app", it has numeric item numbers
<Regenaxer> yes, (+Ref +Number) or (+Key +Number)
<v_m_v> I see. How big they should be ? I mean in (dbs) I am declaring indexes sizes ...right ?
<Regenaxer> Not just index sizes, but for any data
<Regenaxer> I use 4 for most indexes
<Regenaxer> gives a block size of 1024
<Regenaxer> Only for huge indexes (many millions of objects to index) I use 5 or 6
<Regenaxer> E.g. in the OpenStreetMap demo, I used 6 (4096 bytes per block)
<Regenaxer> No worry anyway, there is not much difference
<v_m_v> So in dbs I need to put all of my DB fields to specify the size for that field?
<Regenaxer> The OSM demo has more than 340 million nodes and55 millon ways
<Regenaxer> Not the DB fields
<Regenaxer> The classes for objects, and the index spec
<v_m_v> I see.
<v_m_v> Can I change it in the future? Or I have to remove and recreate the whole DB?
<Regenaxer> Yes, needs a rebuild
<Regenaxer> It is an optimization
<Regenaxer> I dump and then load it
<Regenaxer> 'dumpDB' and 'loadDB' in @lib/too.l
<Regenaxer> But havin non-optimal block sizes is not a real problem
<v_m_v> I see.
<Regenaxer> Each object autotatically takes as many blocks as it needs
<Regenaxer> And too big blocks waste a little space :)
<v_m_v> Can you tell me also how to import one pil files into another? I am trying with (load "filename.l") but my PiL can not find it ...they are in the same folder.
<Regenaxer> The load is not relative to the currently loading file, but relative to the current working directory
<v_m_v> I have to setup the current working directory ?
<Regenaxer> You could get the directory of the file being loded with (file)
<Regenaxer> Ne
<Regenaxer> No
<Regenaxer> The current dir where you started pil
<Regenaxer> You can (cd "foo/bar") though
<Regenaxer> or (chdir "foo/bar" (doSomething))
<Regenaxer> or do (load (pack (car (file)) ...
<Regenaxer> this way it does a relative path load
<Regenaxer> (load (pack (car (file)) "foo.l") (pack (car (file)) "bar.l"))
<Regenaxer> I never did that though
<v_m_v> Hmm still can not find that file :/
<Regenaxer> What error do you see?
<v_m_v> "db.l" -- Open error: No such file or directory
<v_m_v> Which is strange...in the same folder there is db.l
<Regenaxer> in the current working directory?
<Regenaxer> $ pil +
<Regenaxer> : (load "db.l")
<Regenaxer> ?
<Regenaxer> so db.l is expected in the same dir where you started pil
<v_m_v> Hmm I am using repl in Emacs...
<Regenaxer> oh
<Regenaxer> Sorry, I can't help here
<v_m_v> You are not using emacs ?:D
<Regenaxer> nope
<Regenaxer> I'm a vi guy, and now of course Vip
<v_m_v> Then how you are sending code into repl ?
<Regenaxer> Why would you "send" code?
<Regenaxer> I type expressions, or repeat from history, or 'load' files
<Regenaxer> In Vip you can eval expressions with ^E
<Regenaxer> but I do that seldom
<v_m_v> I see. Thank you for your help :)
<Regenaxer> welcome :)
<Regenaxer> There are emacs users here too, if you wait a little someone will answer
<beneroth> v_m_v, use (pwd) to get the current dir (in which the process is executing)
* beneroth is not using the emacs repl but a separate terminal window, sorry
* beneroth uses i3wm tiling window manager, so he finds the tiling within emacs mostly pointless (multiple views on same buffer are great though!)
<Regenaxer> Thanks beneroth :)
<Regenaxer> So everyone uses his own private world :)
<beneroth> v_m_v, this relative path stuff is same as with loading dll's/.so's in other stacks. you always have a directory in which the process works
<beneroth> Regenaxer, yeah, the lisp curse :)
<Regenaxer> :)
<beneroth> everyone capable of creating a meaningful standard is capable to not need one
<Regenaxer> true
<beneroth> but that of course creates a barrier of entry
<Regenaxer> freedom is better
<beneroth> freedom allows everyone to come up with a better standard, instead of the project dying in a dead end
<Regenaxer> yep
<beneroth> <Regenaxer> You can use any s-expression as keys
<beneroth> well..Lists ? :P
<beneroth> list values
<Regenaxer> yes
<Regenaxer> In fact, only +Key uses atoms
<beneroth> I know why
<Regenaxer> +Ref already creates a cons pair as key
<Regenaxer> or you can (+Ref +List +String) but probably not very useful
<Regenaxer> (+List +Ref +String) is more useful
<Regenaxer> BUT: Some Pilog functionality assumes atomic keys
<Regenaxer> i.e. it thinks it gets a *range* if it sees a list
<v_m_v> Guys, how to compare something to Nil ?
<v_m_v> just = ?
<Regenaxer> No, just nothing ;)
<Regenaxer> (off A) (unless A ...)
<v_m_v> (if (somethingThatCanBeNill) (code) (code...)) ?
<Regenaxer> yes
<Regenaxer> (unless A is the same as (when (not A)
<beneroth> v_m_v, use (not)
<Regenaxer> and also (when (== A NIL)
<beneroth> NIL is the empty list is false
<Regenaxer> Usually 'not' is not needed, as most flow function have a inverse version
<Regenaxer> if <-> ifn
<Regenaxer> when <-> unless
<Regenaxer> while <-> until
<Regenaxer> cond <-> nond
<beneroth> Regenaxer, yeah (+Key +Any) and (+Ref +Any) works well
<beneroth> with list values
<Regenaxer> yes
v_m_v has quit [Remote host closed the connection]
v_m_v has joined #picolisp
v_m_v has quit [Remote host closed the connection]
clacke has quit [Remote host closed the connection]
teddydd has joined #picolisp
razzy has quit [Quit: Lost terminal]
aw- has joined #picolisp
aw- has quit [Ping timeout: 264 seconds]
teddydd has quit [Quit: Leaving]