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
opticdelusion10 has joined #picolisp
opticdelusion10 has quit [Remote host closed the connection]
grym13 has joined #picolisp
grym13 has quit [Read error: Connection reset by peer]
ekkelett25 has joined #picolisp
kencjohnston9 has joined #picolisp
ekkelett25 has quit [Remote host closed the connection]
kencjohnston9 has quit [Remote host closed the connection]
Muzer12 has joined #picolisp
fujin2 has joined #picolisp
Muzer12 has quit [Remote host closed the connection]
fujin2 has quit [Remote host closed the connection]
phreedom_ has joined #picolisp
phreedom_ has quit [Remote host closed the connection]
Guest12588 has joined #picolisp
Guest12588 has quit [Remote host closed the connection]
Roedy0 has joined #picolisp
Roedy0 has quit [Remote host closed the connection]
Kralle16 has joined #picolisp
Kralle16 has quit [Ping timeout: 245 seconds]
lxpz7 has joined #picolisp
lxpz7 has quit [Read error: Connection reset by peer]
dude1231241421 has joined #picolisp
dude1231241421 has quit [Remote host closed the connection]
war940729 has joined #picolisp
war940729 has quit [Remote host closed the connection]
orivej has quit [Ping timeout: 240 seconds]
sh1_ has joined #picolisp
sh1_ has quit [Read error: Connection reset by peer]
thalios15 has joined #picolisp
thalios15 has quit [Remote host closed the connection]
rom150418 has joined #picolisp
rom150418 has quit [Remote host closed the connection]
cryptokid has joined #picolisp
cryptokid has quit [Remote host closed the connection]
jemaclus12 has joined #picolisp
jemaclus12 has quit [Read error: Connection reset by peer]
Jaquee12 has joined #picolisp
Jaquee12 has quit [Ping timeout: 240 seconds]
dayou24 has joined #picolisp
Snert__2 has joined #picolisp
dayou24 has quit [Ping timeout: 240 seconds]
Snert__2 has quit [Remote host closed the connection]
ubLIX has joined #picolisp
stoner1920 has joined #picolisp
stoner1920 has quit [Read error: Connection reset by peer]
il_padrino has joined #picolisp
il_padrino has quit [Remote host closed the connection]
JMoVS4 has joined #picolisp
JMoVS4 has quit [Remote host closed the connection]
pierpal has quit [Read error: Connection reset by peer]
pierpal has joined #picolisp
pierpal has quit [Client Quit]
pierpal has joined #picolisp
pierpal has quit [Read error: Connection reset by peer]
pierpal has joined #picolisp
ubLIX has quit [Quit: ubLIX]
SirKatar20 has joined #picolisp
SirKatar20 has quit [Remote host closed the connection]
xar-9 has joined #picolisp
xar-9 has quit [Read error: Connection reset by peer]
mozzarella22 has joined #picolisp
henkkus29 has joined #picolisp
henkkus29 has quit [Remote host closed the connection]
tristanbob_WSU has joined #picolisp
mozzarella22 has quit [Remote host closed the connection]
tristanbob_WSU has quit [Remote host closed the connection]
murr4y0 has joined #picolisp
BuxiNess16 has joined #picolisp
deko26 has joined #picolisp
deko26 has quit [Remote host closed the connection]
murr4y0 has quit [Remote host closed the connection]
BuxiNess16 has quit [Remote host closed the connection]
r00t-err0r17 has joined #picolisp
r00t-err0r17 has quit [Remote host closed the connection]
kaneda^12 has joined #picolisp
kaneda^12 has quit [Remote host closed the connection]
alexshendi has quit [Ping timeout: 252 seconds]
rob_w has joined #picolisp
tsahyt14 has joined #picolisp
tsahyt14 has quit [Read error: Connection reset by peer]
yang_ has joined #picolisp
BlackIkeEagle26 has joined #picolisp
srid11 has joined #picolisp
yang_ has quit [Remote host closed the connection]
BlackIkeEagle26 has quit [Remote host closed the connection]
srid11 has quit [Remote host closed the connection]
rue_bed24 has joined #picolisp
rue_bed24 has quit [Remote host closed the connection]
Qasker13 has joined #picolisp
Qasker13 has quit [Remote host closed the connection]
r4nt has joined #picolisp
r4nt has quit [Remote host closed the connection]
echelon6 has joined #picolisp
echelon6 has quit [Remote host closed the connection]
mtsd has joined #picolisp
<mtsd> Good morning
<tankf33der> o/
<Regenaxer> Hi mtsd, tankf33der!
<mtsd> Hi Regenaxer!
<mtsd> I'll write some replies to the mailing list, glad that people seem to like it :)
<Regenaxer> Yeah, very nice responses
Tengu4 has joined #picolisp
Tengu4 has quit [Remote host closed the connection]
Afterster25 has joined #picolisp
Afterster25 has quit [Read error: Connection reset by peer]
<aw-> mtsd: really liked the slides, as well as the notes!
<mtsd> Thanks aw- !
Affliction17 has joined #picolisp
Affliction17 has quit [Read error: Connection reset by peer]
<aw-> i've also converted some apps to PicoLisp and significantly reduced LOC
<aw-> and reduced memory footprint
<aw-> converted from Ruby
<Nistur> mornin'
<Regenaxer> Hi Nistur
<Nistur> o7
Fisiu0 has joined #picolisp
Fisiu0 has quit [Remote host closed the connection]
loganlee has joined #picolisp
loganlee has quit [Read error: Connection reset by peer]
nonlinear has quit [Remote host closed the connection]
<mtsd> aw-, goes along with my experience too. Fewer lines of code and smaller runtime footprint
Kuri6 has joined #picolisp
Kuri6 has quit [Remote host closed the connection]
nonlinear has joined #picolisp
newbie_ has joined #picolisp
newbie_ has quit [Client Quit]
<Regenaxer> mtsd, thanks for the deep explanations in the mailing list!
<mtsd> Happy to help! Good to make some contributions :)
<Regenaxer> And good to hear some real-world experiences
<mtsd> I must say, converting the old applications to Pil has been the best programming experience I have been through, so far
<Regenaxer> wow, a tutorial would indeed be cool! But it would be a lot of work
<mtsd> Eye-opening, almost a revelation to find out that you can work this way
<Regenaxer> Glad to hear that :)
<mtsd> It would take some time, butI could start looking into a tutorial
<Regenaxer> No pressure to hurry at least
teto1 has joined #picolisp
c0ncealed2 has joined #picolisp
beingjohnm4 has joined #picolisp
teto1 has quit [Remote host closed the connection]
c0ncealed2 has quit [Read error: Connection reset by peer]
beingjohnm4 has quit [Remote host closed the connection]
zc0nf7 has joined #picolisp
zc0nf7 has quit [Remote host closed the connection]
chalcedony has joined #picolisp
chalcedony has quit [Read error: Connection reset by peer]
Nothing4You_17 has joined #picolisp
Nothing4You_17 has quit [Remote host closed the connection]
Anduck29 has joined #picolisp
orivej has joined #picolisp
Anduck29 has quit [Remote host closed the connection]
orivej has quit [Ping timeout: 240 seconds]
diagnostuck has joined #picolisp
diagnostuck has quit [Remote host closed the connection]
orivej has joined #picolisp
beest has joined #picolisp
beest is now known as Guest47291
Eatsoup_ has joined #picolisp
Eatsoup_ has quit [Remote host closed the connection]
pvtr has joined #picolisp
UncleVasya_ has joined #picolisp
ludkiller3 has joined #picolisp
pvtr has quit [Remote host closed the connection]
benediktg513 has joined #picolisp
ludkiller3 has quit [Read error: Connection reset by peer]
Guest47291 has quit [Remote host closed the connection]
UncleVasya_ has quit [Remote host closed the connection]
benediktg513 has quit [Remote host closed the connection]
ephemer0l17 has joined #picolisp
jxh01725 has joined #picolisp
ephemer0l17 has quit [Remote host closed the connection]
jxh01725 has quit [Remote host closed the connection]
azl_ has joined #picolisp
<freemint> Regenaxer My lightning talk is on the mailing list too. I am not sure what a tutorial you want. But it tries to capture the "code is data, data is code" essence of PicoLisp
<freemint> oh yeah a CSS tutorial i see.
azl_ has quit [Read error: Connection reset by peer]
<Regenaxer> freemint, the one at FrosCon?
<freemint> yes
<Regenaxer> Just received the mail
<Regenaxer> cool
<freemint> Feedback/praise for the improved version (inline ) is appreciated
<Regenaxer> Sure! :)
kenvandine24 has joined #picolisp
<Regenaxer> The other discussion about a tutorial was more in the sense of developing full applications, not the language itself
kenvandine24 has quit [Remote host closed the connection]
<aw-> mtsd: interesting that you ported an SQL to Pil.. I was too lazy so I simply jumped from MySQL to SQLite
Apocalypse2 has joined #picolisp
Guest85807 has joined #picolisp
Guest85807 has quit [Remote host closed the connection]
<Regenaxer> freemint: Good and succingt examples. Well to the point
<Regenaxer> succinct
<freemint> One thing made me curious in mtsd presentation data bases sire is 900k but data compressed is 47k. Is the PicoLisp DB to verbose?
<freemint> I am glad you liked it
Apocalypse2 has quit [Remote host closed the connection]
<Regenaxer> The blocks are usually not full
<freemint> how do write pilIO again?
<Regenaxer> and the payload data is mostly symbols (in PLIO) which are well compressible
<freemint> I am trying to inspect what a (new) looks like
<freemint> Regenaxer i know i thought about using pilIO for code golfing but it turns out more verbose
<Regenaxer> I would not say verbose
<Regenaxer> But it is not much shorter than textual s-exprs
<Regenaxer> No white space
<Regenaxer> The point is more that reading (parsing) is faster
<Regenaxer> because it carries the type informations
<Regenaxer> only numbers take less space, and there is no whitespace in it
<freemint> you trade of size for speed since disc space is cheap
<freemint> perfectly reasonable
<Regenaxer> But as far as the DB is concerned, you have *lots* of the same symbols
<Regenaxer> ie properties
<Regenaxer> so it is well compressable
<freemint> thats why you make them short
<Regenaxer> right
<Regenaxer> No reason to waste space here
<Regenaxer> (out "a" (in "lib.l" (while (read) (pr @]
<Regenaxer> $ ls -l a lib.l
<Regenaxer> -rw-r--r-- 1 u0_a67 u0_a67 8697 Sep 26 12:22 a
<Regenaxer> -rw-r--r-- 1 u0_a67 u0_a67 13514 Sep 5 09:23 lib.l
<Regenaxer> That's about the relation for s-exprs
<Regenaxer> 64 %
<Regenaxer> Depends a lot on white space, and even more comments (if used a lot ;)
RamJett has joined #picolisp
RamJett has quit [Remote host closed the connection]
razzy has quit [Ping timeout: 245 seconds]
<mtsd> Sorry, was away for a bit. Great to see your presentation too, freemint!
<freemint> No big thing
Elpaulo12 has joined #picolisp
<mtsd> As for the database sizes, some space is "wasted" in that the blocks are not always full. The archive i use as an extra backup is a simple text dump of the contents, which compresses very well
<mtsd> So it is just a number of text files with names of people and such things in there
Elpaulo12 has quit [Remote host closed the connection]
razzy has joined #picolisp
<Regenaxer> ah, a dump. Then it is also without the index trees, which take up the major part of a DB
<mtsd> Exactly, just the textual contents of the data. no indexes or anything like that
<Regenaxer> OK
Nikkii16 has joined #picolisp
<Regenaxer> aw-, cool, what VM is that?
<mtsd> In fact, the only reason I do this is that the client was worried about data becoming "locked-in" inside something they would be unable to retrieve it from later
Nikkii16 has quit [Remote host closed the connection]
<aw-> Regenaxer: i made it
<mtsd> So, I gave them way of getting the data out once each night, in a simple, readable, format
freemint has quit [Remote host closed the connection]
zwisch has joined #picolisp
<Regenaxer> aw-, pi3-based?
<Regenaxer> mtsd, usually I export in TAB-separated CSV
<aw-> no, it's just Linux kernel + init script which loads directly into PicoLisp REPL
<Regenaxer> oh, wow!
<mtsd> Regenaxer, same format here. TAB- separated CSV
<mtsd> Cool aw- !!
<Regenaxer> :)
freemint has joined #picolisp
<Regenaxer> aw-, so the whole thing is extremely small?
<Regenaxer> freemint, you missed details about the sizes
<Regenaxer> ah, no
<aw-> yeah ~ 20Mib
<Regenaxer> +
<aw-> could be smaller, but I included the full TinyCore Linux userland, so it's not "completely useless"
<Regenaxer> libs etc
freemint has quit [Read error: Connection reset by peer]
freemint has joined #picolisp
<freemint> i did not ... whitequark to the rescue
<Regenaxer> good :)
<Regenaxer> and it was only about CSV
zwisch has quit [Remote host closed the connection]
<freemint> it would be cool if one day the would be a really compressed pilARCHIVE
<Regenaxer> Just make a TGZ?
<freemint> true that. I was thinkg of byte based code golfing
<aw-> i'll upload VMDK, QCOW2, OVA if anyone wants to try it
<Regenaxer> Then a sweep over the program would be good which renames all symbols
<Regenaxer> using 'zap' + 'name' (+ 'intern' perhaps)
<freemint> how would that make it smaller?
<Regenaxer> if you 'print' or 'pr' it then
<freemint> ah
<Regenaxer> first determining the frequency of use
<Regenaxer> for the shortest names
<freemint> there should be enough one byte Unicode for everybody in a normal program
phildini27 has joined #picolisp
<freemint> but yeah
<Regenaxer> well, not one byte for Unicode
<Regenaxer> would be only 127 symbols
<freemint> mhh damn it you are right
<Regenaxer> UTF8
<Regenaxer> but the most frequent symbols will be less than that
phildini27 has quit [Remote host closed the connection]
<freemint> less than a byte?
SoniEx215 has joined #picolisp
<Regenaxer> less than 127 symbols
<freemint> or less than 127 in total
<Regenaxer> if, car, etc
<freemint> yeah
<Regenaxer> total are more
<Regenaxer> but can be shorter too, 2 or 3 bytes
<Regenaxer> ok, min is 2, tag + name
<Regenaxer> in plio
<Regenaxer> Internal symbols are one byte larger in PLIO than 'printed'
<Regenaxer> transients are one shorter
SoniEx215 has quit [Remote host closed the connection]
<freemint> and we load "golf.l" in the beginning
<Regenaxer> "a" <-> tag+a
<Regenaxer> yes
<Regenaxer> transients are more challeging, as they must be found in the heap
<freemint> golf has a pilIO repl than?
<Regenaxer> internals are just (all)
<freemint> interesting
<Regenaxer> ah, you get also the transients if you load the whole program in a single repl (load)
<Regenaxer> (all T)
<Regenaxer> not wiped yet
<freemint> ???
<Regenaxer> The transient scope
Delf19 has joined #picolisp
<freemint> (having "car" transient) (loading something) ("car" still works?)
<Regenaxer> no
<freemint> what did you try to say than?
<Regenaxer> Then a new 'car' is created
<Regenaxer> You load the whole program, then 'zap' all internals and set new names with 'name'
<Regenaxer> 'name' is not allowed on interned symbols
<Regenaxer> that's why
<Regenaxer> (let S 'car (zap S) (name S "a") (intern S]
<Regenaxer> something like that
<Regenaxer> then (a (1 2 3))
<Regenaxer> Not tried though
<freemint> ohh i get it
Delf19 has quit [Remote host closed the connection]
<freemint> (a (1 2)) a undefibed
omglolbah24 has joined #picolisp
<Regenaxer> hmm
<aw-> ok I added download links if anyone wants to try the pilVM i created: https://a1w.ca/pilvm.html
<freemint> aw- it get's if network drivers from Linux?
steeling16 has joined #picolisp
<Regenaxer> Needs the T
<Regenaxer> (intern (name (zap 'car) "xxx") T)
<Regenaxer> (xxx (1 2 3))
<aw-> freemint: yes
<Regenaxer> I forgot the details atm
omglolbah24 has quit [Remote host closed the connection]
<Regenaxer> Anyway, this works: (let S 'car (zap S) (name S "a") (intern S T]
<Regenaxer> The reason is that (name S "a") creates "a" in the transient scope
<Regenaxer> so *this* "a" is used
<freemint> Magic
<Regenaxer> Very simple once you understand PicoLisp symbols
<freemint> ok then i do not
<Regenaxer> It is all about scope (visibility) and how the reader handles it
steeling16 has quit [Ping timeout: 245 seconds]
<Regenaxer> (car 'L) creates 'L' if it is not in the scope yet (interned)
<Regenaxer> And the reader runs before eval
<Regenaxer> ie "repl"
<Regenaxer> PicoLisp is really REPL all the time
<Regenaxer> It needs to be understood
<freemint> The reader translates code in to a giant pointer salad.
<Regenaxer> well, REL most of the time
<Regenaxer> exactly
<Regenaxer> Here we are concerned about symbols
<Regenaxer> not so many pointers, but an association of names to symbols
<Regenaxer> Reading 'car' always gives the same symbol (if in the same namespace)
<freemint> yes
<Regenaxer> Perhaps more difficult to explain than it actually is
<freemint> i think so
erg29 has joined #picolisp
<Regenaxer> So (for S (all) (zap S) (name S (pack "G" (inc (0)))) (intern S T] should do it
<freemint> are transient symbols and name spaces completely independent or do they i,nfluence each other
<Regenaxer> But 'read' will read new symbols then
<Regenaxer> They are independent
<Regenaxer> externals too
kid7 has joined #picolisp
<freemint> you can not rename NIL ;)
<Regenaxer> true, more checks are needed
<Regenaxer> protected symbols
<Regenaxer> And dumping that to a file is a bit useless
<freemint> (when S does it
<Regenaxer> to load it the base symbols need to be renamed first
erg29 has quit [Read error: Connection reset by peer]
<freemint> Why no just setq a car, setq b cdr ...
<Regenaxer> There are more protected symbols than NIL
<freemint> i did run fine with (when S
<freemint> which are protected too?
kid7 has quit [Remote host closed the connection]
<Regenaxer> OK, right, protection applies to the value only
<Regenaxer> T can be renamed probably
<Regenaxer> (intern (name (zap T) "xxx") T)
<freemint> '(bye) bye -- Undefined
<freemint> i am royally screwed
<Regenaxer> you read a new symbol 'bye'
<Regenaxer> you need the new name of the old 'bye'
<Regenaxer> After renaming T:
<Regenaxer> : uniq
<Regenaxer> -> ((Lst) (let R NIL (filter '((X) (not (idx 'R (cons (hash X) X) xxx))) Lst)))
<Regenaxer> : (== 'a 'a)
<Regenaxer> -> xxx
<Regenaxer> : (=T 'xxx)
<Regenaxer> -> xxx
<Regenaxer> : (=T 'T)
<Regenaxer> -> NIL
<Regenaxer> : T
<Regenaxer> -> NIL
<freemint> that makes sense even if I do not understand how it happens
<freemint> Is there a way to keep the old bindings?
<Regenaxer> Just renamed a single symbol
<Regenaxer> T -> xxx
<Regenaxer> Not really, a symbol has exactly one name
<freemint> could we make the new symbol point to the old?
<Regenaxer> You need a separate association
<Regenaxer> No, it is the *same* symbol
<freemint> (set 'car G12)
<Regenaxer> you could put the old *name* into a property
<Regenaxer> With (set 'car G12) you have a new 'car' with the old value
<freemint> is there a problem with that?
<Regenaxer> other things like properties, or referrences from code, are different
<Regenaxer> No problem, depends what you need
<Regenaxer> All code which called (car ...) now has (G12 ...)
<freemint> I need it to to behave well when I am writing "normal" code
<freemint> yeah I know
<Regenaxer> The whole code is consistent and will run, you just cant 'read' new code
<freemint> I want car to behave like car for new code
<freemint> scary ...
<Regenaxer> you could patch new code
<Regenaxer> replace 'car' with 'G12'
ring025 has joined #picolisp
<Regenaxer> Not very useful ;)
<freemint> ok that could work too
<freemint> If I am understanding it right I want a new shorthand for old functions. as long as I my program behavior does not depend on comparing built-in symbols I should be safe with the setq approach?
ring025 has quit [Read error: Connection reset by peer]
<Regenaxer> yes, not '==' and not using the properties
<Regenaxer> like
<Regenaxer> : (show 'car)
<Regenaxer> doc "@doc/refC.html"
<Regenaxer> car 22966511933
<Regenaxer> *Dbg ((5 . "@src64/subr.l"))
<Regenaxer> -> car
<Regenaxer> This will all be in G12 now
<Regenaxer> And all existing functions call G12
<freemint> mhh then i will keep that approach in mind but got with just setq ... first
<Regenaxer> I would avoid loading more stuff
<Regenaxer> and keep a table with all renames
<Regenaxer> to be used after startup before loaning the modified stuff
<Regenaxer> loading
P4k3_ has joined #picolisp
P4k3_ has quit [Remote host closed the connection]
freeemint has joined #picolisp
freemint has quit [Ping timeout: 260 seconds]
orivej has quit [Ping timeout: 252 seconds]
queso5 has joined #picolisp
queso5 has quit [Remote host closed the connection]
Silentd12 has joined #picolisp
Silentd12 has quit [Remote host closed the connection]
ubLIX has joined #picolisp
kroot_ has joined #picolisp
mtsd has quit [Quit: Leaving]
chedr15 has joined #picolisp
chedr15 has quit [Remote host closed the connection]
kroot_ has quit [Remote host closed the connection]
johu has joined #picolisp
johu has quit [Remote host closed the connection]
freemint has joined #picolisp
freeemint has quit [Ping timeout: 246 seconds]
nh222 has joined #picolisp
freemint has quit [Ping timeout: 240 seconds]
freemint has joined #picolisp
nh222 has quit [Remote host closed the connection]
PDogJr7 has joined #picolisp
Geckom4 has joined #picolisp
Geckom4 has quit [Remote host closed the connection]
qom-1 has joined #picolisp
PDogJr7 has quit [Remote host closed the connection]
pierpal has quit [Ping timeout: 260 seconds]
qom-1 has quit [Remote host closed the connection]
wbs3 has joined #picolisp
wbs3 has quit [Remote host closed the connection]
hucksy_ has joined #picolisp
hucksy_ has quit [Read error: Connection reset by peer]
freemint has quit [Ping timeout: 252 seconds]
pabed has joined #picolisp
freemint has joined #picolisp
pabed has quit [Ping timeout: 252 seconds]
<rick42> hello all
<rick42> freemint: nice lightning talk
<rick42> always hard to figure out what to say in only 5 minutes. good choices
<Regenaxer> Hi rick42!
<rick42> hi Reg!
<rick42> :)
<freemint> thanks rick42
e217 has joined #picolisp
e217 has quit [Remote host closed the connection]
hi1175 has joined #picolisp
hi1175 has quit [Remote host closed the connection]
JPei has joined #picolisp
JPei has quit [Read error: Connection reset by peer]
Izu has joined #picolisp
rob_w has quit [Quit: Leaving]
pierpal has joined #picolisp
Izu has quit [Remote host closed the connection]
xavierb21 has joined #picolisp
xavierb21 has quit [Remote host closed the connection]
<aw-> rick42: hey!
ubLIX has quit [Quit: ubLIX]
benJIman20 has joined #picolisp
TheAvatar28 has joined #picolisp
TheAvatar28 has quit [Remote host closed the connection]
benJIman20 has quit [Remote host closed the connection]
vegai18 has joined #picolisp
vegai18 has quit [Read error: Connection reset by peer]
va7lnx4 has joined #picolisp
orbitz_ has joined #picolisp
orbitz_ has quit [Read error: Connection reset by peer]
va7lnx4 has quit [Read error: Connection reset by peer]
Hydraxis1 has joined #picolisp
Hydraxis1 has quit [Remote host closed the connection]
vector4 has joined #picolisp
cb11 has joined #picolisp
vector4 has quit [Read error: Connection reset by peer]
paulrs has joined #picolisp
cb11 has quit [Ping timeout: 252 seconds]
planigan0 has joined #picolisp
planigan0 has quit [Remote host closed the connection]
paulrs has quit [Ping timeout: 252 seconds]
stephank18 has joined #picolisp
tsp15 has joined #picolisp
pierpal has quit [Quit: Poof]
pierpal has joined #picolisp
stephank18 has quit [Remote host closed the connection]
tsp15 has quit [Remote host closed the connection]
tobasco has joined #picolisp
giammi16 has joined #picolisp
giammi16 has quit [Read error: Connection reset by peer]
tobasco has quit [K-Lined]
Hail_Spacecake8 has joined #picolisp
Kuruk11 has joined #picolisp
Hail_Spacecake8 has quit [Remote host closed the connection]
Kuruk11 has quit [Remote host closed the connection]
freeemint has joined #picolisp
PIBER has joined #picolisp
freemint has quit [Ping timeout: 244 seconds]
PIBER has quit [Read error: No route to host]
television18 has joined #picolisp
television18 has quit [Remote host closed the connection]
Lt_Lemming0 has joined #picolisp
kepler_mach29 has joined #picolisp
Lt_Lemming0 has quit [Remote host closed the connection]
Guest21615 has joined #picolisp
proteusguy has joined #picolisp
kepler_mach29 has quit [Remote host closed the connection]
atrioom_ has joined #picolisp
proteusguy has quit [Remote host closed the connection]
atrioom_ has quit [Read error: Connection reset by peer]
ArmOrAttAk has joined #picolisp
Guest21615 has quit [Ping timeout: 240 seconds]
ArmOrAttAk has quit [Remote host closed the connection]
{AS}11 has joined #picolisp
{AS}11 has quit [Remote host closed the connection]
<rick42> aw-: hey! you are up late! :)
fgaz2 has joined #picolisp
<rick42> can anyone point me to some example code that reads a file and matches lines based on content?
<rick42> reason I have to "reinvent the wheel" is that I can't count on grep existing on Windoze
<rick42> if first arg could be regex that's cool but not required (i can live without it)
<rick42> (grep "foo" "file.txt") -> <returns lines that contain "foo")
<rick42> should work like grep, e.g.
<rick42> (also it's been a while since i've written pil. i forgot a lot. i need reminding. :)
<rick42> thanks
luisjose4 has joined #picolisp
luisjose4 has quit [Remote host closed the connection]
nekaii9 has joined #picolisp
fgaz2 has quit [Read error: Connection reset by peer]
BOKALDO23 has joined #picolisp
<rick42> probably it will have this structure:
<rick42> where <match> matches the input line to "foo" (or whatever is the "match string")
<rick42> (in Infile (make (while <match> to (link @))))
<rick42> T?
nekaii9 has quit [Remote host closed the connection]
BOKALDO23 has quit [Remote host closed the connection]
<rick42> Oops. Correction: (in Infile (make (while (line) (if <match> (link @)))))
<Regenaxer> Yes rick42, that's the right approach
<Regenaxer> You don't even need 'match' if you only want to search for a substring
<Regenaxer> and if you don't need to be line-oriented, it is even easier, eg. just find a string
<Regenaxer> (in InFile (from Str) (till "\n" T))
<Regenaxer> (in InFile (use L (while (setq L (line T)) (and (sub? Str L) (link L]
<rick42> ah ok thanks, Regenaxer!!!
<Regenaxer> :)
<Regenaxer> The first just returns the rest of the first matching line
<Regenaxer> For a more sophisticated pattern, 'match' is good though
radish2 has joined #picolisp
<Regenaxer> (in InFile (use (L @X @Y) (while (setq L (line)) (and (match '("a" @X "b" @Y "c) L) (link (pack L]
<Regenaxer> etc.
<Regenaxer> Many possibilities
<rick42> wow thanks. btw, do we not need (make ...) ?
radish2 has quit [Remote host closed the connection]
<rick42> maybe i should just try it before asking lol :)
* rick42 is being lazy :)
<Regenaxer> Yes, sorry, if 'link' then we need 'make'
<Regenaxer> You could also just 'prinl'
<rick42> ah yes i rememeber prinl being the preferred output writer (unless you like double quotes :)
Fairy7 has joined #picolisp
<Regenaxer> to be exact: Unless you want s-expressiogs
<rick42> and pil quite straightforwardly says "Not making" (when make is missing)
<rick42> ok right!
<Regenaxer> : (prinl '(a (b c (d) e (f))))
<Regenaxer> abcdef
<rick42> : (println '(a (b c (d) e (f))))
<rick42> got it! thanks (again! :)
<rick42> (a (b c (d) e (f)))
jlacroix5 has joined #picolisp
pierpal has quit [Ping timeout: 252 seconds]
pierpal has joined #picolisp
Fairy7 has quit [Remote host closed the connection]
<rick42> for my Windoze users, i believe that minipicolisp will work just fine (for this app i have in mind, only needs local io)
<rick42> yay mini \o/
jlacroix5 has quit [Remote host closed the connection]
<Regenaxer> Yes, good idea
<rick42> btw, when i'm done writing the program (it will be one source file) can I "wrap it" somehow with mini exe and give them one file to drop on their system and run?
<rick42> am i making sense? just trying to make it easy for them
<Regenaxer> yes, mini has a way of "compiling" Lisp sources into "ROM"
<rick42> i'm not physically there to install sw for them is why
<rick42> oooo nice!
<rick42> how?
<Regenaxer> It generates C-structures from the s-exprs
<rick42> wow i had no idea you could do this!
<Regenaxer> The standard libs like lib.l are included that way
<Regenaxer> It is because embedded systems have so little RAM
<rick42> can you point me to a doc that explains this, Regenaxer?
<Regenaxer> so the libs are out of the way
<rick42> how to "bundle"
<Regenaxer> Hmm, there is no doc
<Regenaxer> only the Makefile
<rick42> it is easy to explain hgere?
<rick42> ok
<Regenaxer> I must find out myself
pierpal has quit [Ping timeout: 240 seconds]
<rick42> i will look at Makefile. thanks!
<Regenaxer> The key tool is gen3m.c IIRC
<Regenaxer> sym.d rom.d ram.d: gen3m init.s lib.s pilog.s
<Regenaxer> I./gen3m 0 init.s lib.s pilog.s
marcus_5 has joined #picolisp
marcus_5 has quit [Remote host closed the connection]
<Regenaxer> Hmm, seems the *.s files must be written in a little different syntax
<Regenaxer> no 'de'
<Regenaxer> But symbol value
<Regenaxer> I think you see the systematics
<Regenaxer> The files of course cannot contain any Lisp code executed at 'load' time
<Regenaxer> It is static
goberle1 has joined #picolisp
goberle1 has quit [Read error: Connection reset by peer]
freeemint has quit [Ping timeout: 252 seconds]
freemint has joined #picolisp
xorAxAx13 has joined #picolisp
xorAxAx13 has quit [Read error: Connection reset by peer]
freeemint has joined #picolisp
freemint has quit [Ping timeout: 252 seconds]
ymasson has joined #picolisp
JKL92 has joined #picolisp
JKL92 has quit [Read error: Connection reset by peer]
ymasson has quit [Remote host closed the connection]
thet_m22 has joined #picolisp
thet_m22 has quit [Remote host closed the connection]
LegendaryPotato has joined #picolisp
LegendaryPotato has quit [Remote host closed the connection]
radiofree16 has joined #picolisp
radiofree16 has quit [Remote host closed the connection]
willwh has joined #picolisp
willwh has quit [Remote host closed the connection]
rohitt has joined #picolisp
rohitt has quit [Remote host closed the connection]
nikomo5 has joined #picolisp
pierpal has joined #picolisp
nikomo5 has quit [Remote host closed the connection]
himmAllRight29 has joined #picolisp
bokchoy2 has joined #picolisp
himmAllRight29 has quit [Remote host closed the connection]
bokchoy2 has quit [Read error: Connection reset by peer]
cdr255 has joined #picolisp
cdr255 has quit [Read error: Connection reset by peer]
freeemint has quit [Ping timeout: 252 seconds]
freemint has joined #picolisp
orivej has joined #picolisp
gmaxwell16 has joined #picolisp
vertrex25 has joined #picolisp
vertrex25 has quit [Remote host closed the connection]
<rick42> do you use `not` to check if a list is empty? (didn't seem to find nil? or empty?)
gmaxwell16 has quit [Remote host closed the connection]
Possum1 has joined #picolisp
Fenix2412 has joined #picolisp
mmedvede6 has joined #picolisp
tkaemming_ has joined #picolisp
Possum1 has quit [Read error: Connection reset by peer]
OliverUv21 has joined #picolisp
OliverUv21 has quit [Remote host closed the connection]
<Regenaxer> Yes, 'not'. But it is almost never used
andjjj2325 has joined #picolisp
<Regenaxer> Better are the opposite flow functions, ifn, or, unless, nond, until etc
mmedvede6 has quit [Remote host closed the connection]
tkaemming_ has quit [Read error: Connection reset by peer]
Fenix2412 has quit [Remote host closed the connection]
ds_17 has joined #picolisp
msev-29 has joined #picolisp
Xavier13 has joined #picolisp
msev-29 has quit [Read error: Connection reset by peer]
andjjj2325 has quit [Remote host closed the connection]
ds_17 has quit [Remote host closed the connection]
BrainDamage19 has joined #picolisp
sandeep_25 has joined #picolisp
BrainDamage19 has quit [Read error: Connection reset by peer]
Xavier13 has quit [Remote host closed the connection]
synthmeat21 has joined #picolisp
synthmeat21 has quit [Remote host closed the connection]
sandeep_25 has quit [Read error: Connection reset by peer]
Megaf7 has joined #picolisp
Megaf7 has quit [Read error: Connection reset by peer]
ronny20 has joined #picolisp
ronny20 has quit [Remote host closed the connection]
dwiesner22 has joined #picolisp
andrzej18 has joined #picolisp
HaskellLord69 has joined #picolisp
andrzej18 has quit [Remote host closed the connection]
HaskellLord69 has quit [Remote host closed the connection]
dwiesner22 has quit [Remote host closed the connection]
debhelper18 has joined #picolisp
debhelper18 has quit [Remote host closed the connection]
crs26 has joined #picolisp
crs26 has quit [Read error: Connection reset by peer]
jidar23 has joined #picolisp
terrenal has joined #picolisp
terrenal has quit [Remote host closed the connection]
jidar23 has quit [Remote host closed the connection]
<rick42> Regenaxer: i was in `loop` and I wanted to get out of it (as *one* of my escaping conditions). if there is a better way than `not` in this case please tell me thanks
<Regenaxer> loop and do are special
<Regenaxer> you exit with NIL or T
<rick42> right
<Regenaxer> (while (foo) (bar)) is (loop (NIL (foo)) (bar))
<rick42> one my clauses is (NIL Lst return-val)
<rick42> right
<Regenaxer> good
<Regenaxer> So no 'not' needed?
<rick42> it used to be (T (not Lst) return-val) and then i said to myself "what am i doing?!" :)
<rick42> yes not not needed
<rick42> no not :)
<Regenaxer> :)
cHawk25 has joined #picolisp
datamike53 has joined #picolisp
cHawk25 has quit [Read error: Connection reset by peer]
datamike53 has quit [Read error: Connection reset by peer]
<rick42> had to enter the following for my minin code. heh.
<rick42> (de pre? (Sub Str)
<rick42> (def 'miniPicoLisp-pre? pre?)
<rick42> # make mini's pre? return Str on success like regular picolisp does.
<rick42> (if (miniPicoLisp-pre? Sub Str) Str))
<rick42> So I could say (if (pre? ...) (link @))
eddyb26 has joined #picolisp
eddyb26 has quit [Remote host closed the connection]
freemint has quit [Ping timeout: 252 seconds]
yawkat20 has joined #picolisp
freemint has joined #picolisp
yawkat20 has quit [Remote host closed the connection]
ozzzy_26 has joined #picolisp
ozzzy_26 has quit [Remote host closed the connection]
ubLIX has joined #picolisp
ubLIX has quit [Quit: ubLIX]
groovy2shoes has quit [Ping timeout: 240 seconds]
groovy2shoes has joined #picolisp
eSVG has joined #picolisp
eSVG has quit [Remote host closed the connection]
bear45418 has joined #picolisp
bear45418 has quit [Remote host closed the connection]
pierpal has quit [Ping timeout: 245 seconds]
snacky27 has joined #picolisp
snacky27 has quit [Remote host closed the connection]