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
alexshendi has quit [Ping timeout: 259 seconds]
jibanes has quit [Ping timeout: 245 seconds]
jibanes has joined #picolisp
ubLIX has quit [Quit: ubLIX]
aw- has quit [Ping timeout: 245 seconds]
aw- has joined #picolisp
<anddam> unlimited stack meaning there is proper tail call in the recursion?
<anddam> tankf33der: ^^
<Regenaxer> Hi anddam! No, there is no tail call in pil. It always really recurses
<Regenaxer> It is ulimit -s unlimited
<beneroth> Good morning anddam, Regenaxer :)
<Regenaxer> Hi beneroth :)
<beneroth> anddam, so unrestricted memory usage - until linux runs out of memory
<beneroth> Regenaxer, I wondered how to define a joint which in one entity is a +List property and in the other entity consists of two (non-List) properties ?
<beneroth> possible?
<Regenaxer> You mean a +Bag?
<Regenaxer> +Bag does not work reliably with +Joint iirc
<beneroth> no, not two properties in one
<beneroth> but two separate properties which are connected to the same single +Joint property in the other entity
<Regenaxer> Well, this would be a bag, no?
<Regenaxer> A bag is a list of varying types
<beneroth> I don't see the need for a bag
<Regenaxer> How would that look syntactically?
<Regenaxer> A +Joint is connected to a single relation on the other side
<beneroth> yeah, so my use case is not possible (not without creating a new type, e.g. +MultiJoint or such...)
<beneroth> I expected it so :)
<Regenaxer> I think it is a +Bag
<beneroth> use case: (class +Contact +Entity) (rel email (+Joint) contacts (+Email)) (rel email-old (+Joint) contacts (+Email)) (class +Email +Entity) (rel contacts (+List +Joint) ??? (+Contact)
<beneroth> so as a graph: two edges (at one node) becoming merged into one (at the other node)
<Regenaxer> This cannot work, as both point to the same relation.
<beneroth> aye :)
<beneroth> thanks for confirmation :)
<Regenaxer> The joint does not know what to do if it changes
<Regenaxer> which one to change on the other side
<beneroth> T, it kinda becomes directed
<beneroth> T
<Regenaxer> Perhaps use two sub-classes?
<beneroth> I'm not sure yet if my use case is meaningful :)
<beneroth> T, that would be nicer
<Regenaxer> Mails are changed to old
<Regenaxer> ie set!
<beneroth> yeah I got what you meant :)
<beneroth> or, for such cases probably better, drop the joint and make it +Ref +Link instead
<Regenaxer> Joint is fine, but put both into the same
<Regenaxer> same list
<Regenaxer> and distinguish between old and new by the type or a flag or so
<beneroth> what if the same email address is a new for one contact and old for another? :P
<Regenaxer> Ok, I see
<Regenaxer> they are shared
<beneroth> maybe unlikely with personal address, but possible with company/system addresses
<beneroth> aye
<beneroth> sounds like +Ref to me. or two +Joint properties in email
<Regenaxer> +List +Ref should work then
<Regenaxer> T
<beneroth> yeah +List +Ref should be the more proper one, as this is kinda the real intention (finding contacts by email)
<beneroth> thanks :)
<Regenaxer> :)
<beneroth> if you got 5 more min: when to use +Idx +Fold and when +IdxFold ? :D
<Regenaxer> I always look into doc/search
<Regenaxer> is that public?
<Regenaxer> It is either (+Fold +Idx +String) or (+IdxFold +String)
<beneroth> it's public
<Regenaxer> I think +Idx +Fold is not useful
<beneroth> ah yes
<beneroth> mistyped
<beneroth> but same question xD
<beneroth> ah I see
<Regenaxer> Most often I use +IdxFold
<beneroth> ok
<Regenaxer> Let me check
<Regenaxer> I use +Fold +Idx too
<beneroth> looks like +IdxFold produces less index keys than +Fold +Idx, but that includes the original value which appears not be used as index key in +Fold +Idx ?
<Regenaxer> It is good if white space should not be relevant
<Regenaxer> yes
<beneroth> good point
<beneroth> perfect answer "It is good if white space should not be relevant" :D
<Regenaxer> hmm, not sure ;)
<beneroth> I see now
<Regenaxer> the differences are small
<beneroth> no, its the real thing, first fold, or first split...
<beneroth> aye
<beneroth> therefore I asked :)
<beneroth> thanks
<Regenaxer> I use it mostly for emails
aw- has quit [Ping timeout: 255 seconds]
razzy has quit [Ping timeout: 268 seconds]
rob_w has joined #picolisp
aw- has joined #picolisp
razzy has joined #picolisp
<wuehlmaus> is there a possibility to exclude file completion? when i use tab in my home dir. i get far too many completions
<wuehlmaus> so i normally enter a new directory so that i don't get disturbed by file names
<anddam> beneroth: 'morning
<wuehlmaus> moin btw :-)
<Regenaxer> Hi wuehlmaus!
<Regenaxer> Not press TAB?
<wuehlmaus> hi, Alex
<wuehlmaus> i press it because i want to learn about functions
<wuehlmaus> so not pressing is not that good :-)
<Regenaxer> I see
<Regenaxer> But after the second char there should not be so many matches any more
<wuehlmaus> so my solution isn't so bad as a work around
<Regenaxer> Another dir might be invonvenient
<Regenaxer> You can also use 'what'
<Regenaxer> : (what "m@r")
<Regenaxer> -> (mar mapcar member)
ubLIX has joined #picolisp
orivej has quit [Ping timeout: 246 seconds]
ubLIX has quit [Ping timeout: 255 seconds]
<wuehlmaus> oh nice, i did not know about what, helpful and more my taste
<Regenaxer> Yes, and also more useful
<Regenaxer> eg. (mapc pp (what "m@r"))
<Regenaxer> Not for these functions though, as they are built-ins and thus only numbers
<Regenaxer> or NIL for 'mar'
<Regenaxer> For long lists 'more' is better than 'mapc' here
<wuehlmaus> very nice and i think it's unique, isn't it?
<Regenaxer> Unique in which range?
<Regenaxer> Must go - afp bbl
<wuehlmaus> (
<wuehlmaus> i mean no other lisp has that
orivej has joined #picolisp
<Regenaxer> ret
<Regenaxer> I think all Lisps have something similar
<Regenaxer> As it is so very simple
<Regenaxer> moment, brb
Regenaxer has left #picolisp [#picolisp]
Regenaxer has joined #picolisp
ubLIX has joined #picolisp
<Regenaxer> Perhaps best for investigating is 'more' with 'help':
<Regenaxer> : (more (what "map@") help)
<wuehlmaus> very cool!
aw- has quit [Quit: Leaving.]
<Regenaxer> sebboh, would you mind testing also PilBox on your Android 5.1.1 device?
<Regenaxer> Version 19.3.20 needed a change where I'm not 100% sure whether it conflicts with older Androids
<Regenaxer> Goolge is horrible, they break lots of things with each Android version
rob_w has quit [Remote host closed the connection]
<wuehlmaus> plus, google search is oh so intelligent and gives me so many results i did not search for
<sebboh> Alex, pilbox 19.3.20 appears in Play Store when I search from my device.
<Regenaxer> Great, so it is already available. I released this morning
<sebboh> installed. It opens. [X]\n\nPilBox = arm64\nOS/CPU = armeabi-v7a
<Regenaxer> OK, so we need arm32.zip
<sebboh> The [X] is like, a box with an X in it. (missing glyph?)
<Regenaxer> can you download it and share with pilbox
<Regenaxer> I think [X] is a sad emoticon
<Regenaxer> Seems phone is not utf8 :)
<sebboh> I only read 1% of the picolisp mailing list.
<Regenaxer> No problem, this was not discussed in the list anyway
<Regenaxer> The message means thay pilbox is 64 bit but the CPU is 32
<Regenaxer> The arm32 plugin should fix it
<Regenaxer> it uses emu
<sebboh> You mean the phone doesn't use a font by default that has that glyph.. Surely you realize that "sad emoticon" works in other apps. ;) Maybe they specify font or something--but, of course, this is not my area of expertise
<Regenaxer> Not sure, it is a WebView, and I specify utf8
<Regenaxer> Not important
<Regenaxer> it is ☹
<Regenaxer> (does it work in irc?)
<Regenaxer> ie a 16-bit unicode in utf8
<sebboh> it works in my irc. I'm using .. let's see... windows 10 running msys2-mintty ssh'd to a debian vm, tmux, ssh to a debian physical machine, tmux, ssh to an ubuntu box, tmux, weechat. Hi. And the emoji works. It's not double-wide though.
<sebboh> I will get the zip onto the phone soon
<Regenaxer> right, single width like ☺ too
Regenaxer has left #picolisp [#picolisp]
Regenaxer has joined #picolisp
<Regenaxer> Good, if you download arm32.zip, you can either click on it to install, or long-press and then share
<Regenaxer> On some phones only one of the two seems to work
razzy has quit [Ping timeout: 255 seconds]
<sebboh> java.io.FileNotFoundException: /data/data/de.software_lab.pilbox/files/PIL-/storage/sdcard0/download/arm32: open failed: ENOENT (No such file or directory)
<sebboh> clicking to install seemed to cause the installation to be attempted. How did the phone know what to do with the zip?
<sebboh> I know a little about Android "Intents". That's how 'share' works.
<sebboh> It starts a process with the path to the file as an argument, is that right? But.. so is pilbox registered for all .zip? Or does android look inside zip contents?
<Regenaxer> Hmm, this looks strange
<Regenaxer> But clicking installed it?
<Regenaxer> So if you start it, you should see a white page with two icons on top
<Regenaxer> Yes, PilBox tells Android that it accepts ZIPs
<Regenaxer> it does this with an <intent-filter> in AndroidManifest.xml
<Regenaxer> <data android:mimeType="application/zip"
<sebboh> ok. Well the installation was started but I see no indication that it finished. just that java exception. no response to taps on that screen.. so I used the 'square button' to view a list of open apps (or tasks or whatever). This showed me that the exception text I pasted was displayed in the File Manager window. Ok. It was still stuck, so I closed it from this "square" screen. Then I try to start
<sebboh> pilbox and it hangs, "PilBox isn't responding. Do you want to close it?" "Report, Wait, OK"
<Regenaxer> :(
<sebboh> Do you get the output of Report?
<Regenaxer> The PilBox = arm64 message did not appear any more?
<sebboh> correct it does not appear
<Regenaxer> Not sure about the report
<Regenaxer> What if you pass arm32 once more?
<sebboh> then I won't try 'Report', the play store can be cruel to developers.
<sebboh> I don't know what the button does.
<Regenaxer> What seems to work best for customers where I saw such installation problems
<Regenaxer> was clicking on the zip in Chrome
<Regenaxer> then immediately when "Open" pops up on the bottom
<Regenaxer> click on that "Open"
<sebboh> understood. How nice for those users. ;)
<Regenaxer> :)
<Regenaxer> It is only for 32 bit devices, which become rare with time
<sebboh> I am going to wipe the ~ for the pilbox app.
<Regenaxer> Which ~ ?
<sebboh> yeah in a few months I'll have some new device I'm sure
<sebboh> I mean I'll go into Settings > Apps > Downloaded > PilBox > Clear Data
<sebboh> and then try again
<Regenaxer> OK, cant harm now
<sebboh> exactly once.
<Regenaxer> Is this a Samsung device?
<sebboh> I suspect I may have tried the installation of arm32.zip twice
<Regenaxer> This is no problem
<sebboh> no it is a Alcatel.
<Regenaxer> ah, ok
<Regenaxer> Installing many times is ok, just a hand full of files
<sebboh> ok after Clear Data (which is similar to reinstalling the app, I think), then I used Share on the zip file. Pilbox is a share option. I select it. Black screen. Time passes.. "Report, Wait, OK"
<Regenaxer> uh
<Regenaxer> So the share seems to have worked
<Regenaxer> Problems I observed so far were always that it did not pass the intent to PilBox
<sebboh> I think pilbox was started with the path to the zip as a parameter
<Regenaxer> hmm, is it an Arm CPU ?
<sebboh> Gosh I hope so. :)
<Regenaxer> Usually not a path, but a direct InputStream
<Regenaxer> If it is not Arm, we are out of luck, I have no PicoLisp binary then
<sebboh> Oh, it pushes the file contents over a stream? yuck... :)
<Regenaxer> I think so
<sebboh> (it is surely arm, let's check uname)
<Regenaxer> It is a ZipInputStream to be exact
<sebboh> armv7l
<Regenaxer> good
<Regenaxer> on Termux?
<sebboh> yes
<Regenaxer> You could unpack the zip to a directory
<sebboh> I can
<Regenaxer> and start bin/picolisp
<Regenaxer> Perhaps we see some error message
<sebboh> $ ./bin/picolisp
<sebboh> WARNING: linker: ./bin/picolisp: unused DT entry: type 0x6ffffffe arg 0x2680
<sebboh> WARNING: linker: ./bin/picolisp: unused DT entry: type 0x6fffffff arg 0x2
<sebboh> CANNOT LINK EXECUTABLE: cannot locate symbol "__register_atfork" referenced by "./bin/picolisp"...
<sebboh> $
<Regenaxer> What says 'file bin/picolisp' ?
<sebboh> ok but this is the last time I use my phone in my cubicle this morning
<Regenaxer> :)
<Regenaxer> It should be
<Regenaxer> ELF 32-bit LSB pie executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /system/bin/linker, stripped
<sebboh> ./bin/picolisp: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /system/bin/linker, stripped
<Regenaxer> ok
<sebboh> What's "pie executable" vs "shared object"?
<sebboh> my linux is 3.10.xxx
<Regenaxer> It also does not run here in Termux:
<Regenaxer> CANNOT LINK EXECUTABLE "picoLisp/bin/picolisp.arm32": "/data/data/com.termux/files/usr/lib/libtermux-exec.so" is 64-bit instead of 32-bit
<Regenaxer> Aborted
<sebboh> s/linux/android's linux kernel version/
<Regenaxer> Termux doest have the right libs probably
<Regenaxer> "pie" means position independent executable
<Regenaxer> This is required for Android and OK
<Regenaxer> hmm, sorry, lets give up
<Regenaxer> Wasting your time
<sebboh> ok. If I get a chance to sit in front of my desktop for a while tonight, I'll try what I can and post results here. I am still interested in PentiBoard logcat output
<Regenaxer> Yeah, Penti should be easier
<Regenaxer> pure Java
<Regenaxer> but needs a multi touch display
<sebboh> correct--the device of mine that only had two touch points was a different one.
<Regenaxer> Dont worry, I'm glad for every info I can get
<Regenaxer> ok
wuehlmaus has quit [Quit: Aus, die Maus]
wuehlmaus has joined #picolisp
razzy has joined #picolisp
razzy has quit [Ping timeout: 245 seconds]
orivej has quit [Ping timeout: 268 seconds]
ubLIX has quit [Ping timeout: 246 seconds]
f8l has joined #picolisp
tankf33der has quit [Ping timeout: 252 seconds]
tankf33der has joined #picolisp
alexshendi has joined #picolisp
ubLIX 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]
orivej has joined #picolisp
razzy has joined #picolisp
libertas_ has joined #picolisp
libertas has quit [Ping timeout: 245 seconds]
ubLIX has quit [Quit: ubLIX]
ubLIX has joined #picolisp
f8l has quit [Ping timeout: 246 seconds]
f8l has joined #picolisp
alexshendi has joined #picolisp
orivej_ has joined #picolisp
orivej has quit [Ping timeout: 245 seconds]
aw- has joined #picolisp
libertas has joined #picolisp