svn switch --relocate svn.openfoundry.org/pugs svn.pugscode.org/pugs/ | run.pugscode.org | spec.pugscode.org | paste: sial.org/pbot/perl6 | pugs.blogs.com | dev.pugscode.org/
Set by putter on 11 February 2007.
00:08 CardinalNumber is now known as ProperNoun
Caelum where is the current pugs version number? 00:24
allbery_b I have 6.2.13 (r15352) built here 00:27
(pugs -v)
jisom r15353 seems to be the last commit
offby1 Caelum: "svn info svn.pugscode.org/pugs"
lambdabot Title: Revision 15353: /
allbery_b ye[p but I haven't rebuilt in the past hour :> )
offby1 weird. Did lambdabot just run that command? 00:28
(pugs -v)
nooby flooby: "svn info svn.pugscode.org/pugs"
lambdabot Title: Revision 15353: /
moritz offby1: no, it cited the url's title
offby1 weird indeed.
oh, it fetched the URL.
moritz ?eval 1
00:28 evalbot_r15344 is now known as evalbot_r15353
evalbot_r15353 1 00:28
Juerd I've been so busy that I hadn't even noticed that since November, I've not been subscribed to p6l 00:40
(config mistake)
moritz slightly OT: Apache2: how do I filter the output of mod_perl or mod_python with the INCLUDES output filter? 00:42
00:46 fglock joined
offby1 where should I send a random perl6 suggestion? Namely that "localtime", in scalar context, include the time zone along with the date and time 00:47
svnbot6 r15354 | fglock++ | kp6 - added a prototype C implementation (with metamodel) 00:51
r15354 | fglock++ | v6/v6-KindaPerl6/examples$ gcc kp6-example.c
Juerd offby1: [email@hidden.address] 00:59
offby1: You may want to subscribe before posting
offby1 thanks.
01:01 ashleyb joined
Caelum the debian packages are pretty out of date 01:04
moritz Caelum: if you want freshly built deb packages for i386 I could upload some
Caelum: they are just without the parrot backend, which is somewhat out of date as well ;) 01:05
Caelum seriously? I tried building a pugs deb, but the debian/ directory wasn't working
Caelum just built a 0.4.8 parrot
moritz Caelum: could you please post me an error message 01:06
with pastebot or mail to [email@hidden.address]
Caelum will do
moritz Caelum: if you remove 'parrot' from the embed-line in debian/rules it should build fine 01:07
Caelum: does a "normal" 'make' or 'make soon' work for you?
Caelum hasn't tried in like a month
moritz I fixed some minor issues the other day... for example a non-working patch 01:08
Caelum err, parrot is 0.4.9 now... seems to build OK with the debian patch
ahh yeah, I remember that
moritz anyway, pugs builds will be at moritz.faui2k3.org/debian/pugs/ as soon as my damned slow upload is finished ;) 01:09
Caelum cool! :)
Juerd is skimming over 400 p6l messages 01:13
Juerd missed a lot of cool stuff
jql a zillion synopsis spawn[ed||ing] discussions
01:16 fglock left
Caelum avoids building parrot with 5.9.5 01:17
jisom 5.9.5 what?
Caelum bleadperl 01:19
01:19 gnuvince_ joined
jisom eh, can't have the cutting edge of everything at once 01:20
moritz unless you manufacture knifes ;) 01:21
jisom preferably not the handles too 01:22
01:28 ashelyb_ joined 02:12 ashleyb joined 02:19 dmq joined 02:27 ashelyb_ joined 02:29 Ziggy6 joined
Caelum anyone want some parrot 0.4.9 debs? I finally got them built after 2 hours... 02:33
Caelum 's debian-fu is very rusty
wolverian I'm sure debian would like 'em? :) 02:38
Caelum is not a dev anymore...can't do an NMU 02:39
02:40 ashleyb joined
mugwump Caelum: share your debian/ files? 02:56
Caelum crap, can't put anything on my shell, scp doesn't work... 03:04
mugwump: I did an apt-get source parrot to get the latest diff, apply to svn tree, edit debian/rules to change $(MAKE) install to $(MAKE) reallyinstall, run dch to up the changelog and make sure it says 0.4.9 in the debian/ directory, also rm debian/control and fakeroot debian/rules debian/control before doing the build, that should be it 03:06
Caelum home & 03:07
mugwump oh you committed to svn? drat, missed ya :)
03:08 jdv79 joined, ProperNoun joined
mugwump hmm, last change to debian/ was in r12841 :) 03:08
03:24 _jcrigby joined 03:26 weinig is now known as weinig|away 03:29 cognominal left, cognominal joined
svnbot6 r15355 | putter++ | misc/pX/Common/yet_another_regex_engine - some progress. 04:01
r15355 | putter++ | Regexp_Module.pm - Bugfixes and refactoring.
r15355 | putter++ | Fixed one _very_ long standing "thinko" bug with repetition. It dated back to the original regex engine spike a year ago. So there are many variants of it scattered around Common. :(
r15355 | putter++ | PerlMix.pm - created. Non-working first draft of a dsl base/prototype class.
r15355 | putter++ | LangPugsRegexTests.pm - created. Non-working first draft of a dsl using PerlMix. It is intended to parse the small p6 dialect used in pugs t/regex/ test files, so the pugs regex testsuite can be run directly from p5.
r15355 | putter++ | OPP.pl - moved elsewhere, as the new opp in Perl-6.0.0-STD.pm should be explored instead.
putter For the curious/puzzled, yet_another_regex_engine has had a mission creep metastasis. 04:02
It looks like it might be possible to architect things so that creating your own p6 variant is as simple as creating a new p5 package, and mix-n-matching from grammars and grammar fragments, regex implementations, compilers, and runtimes. We'll see. It should at least be possible to reach out and use the pugs t/regex/ suite (much of it written in a very simple p6 dialect). 04:08
Also a framework for creating a fully spec p6 regex engine. Including dynamic modification games. 04:10
jql so then 'use 6' will be a pragma importing the perl6 "defaults" for all those options? 04:13
04:14 mako132 joined
Ziggy6 putter: do you intend to include grammar/rule support in yet_another_regex_engine? 04:19
putter Ziggy6: oh yeah. 75% of the parrot rule tests are passing, though that's not saying much. Lots of stuff is still missing. I got distracted by mission creep. 04:22
svnbot6 r15356 | putter++ | yet_another_regex_engine/Regexp_ModuleA.pm - filename correction.
r15356 | putter++ | Regexp_ModuleA.pm was misnamed Regexp_Module.pm in svn. For the entire month of its existence.
r15356 | putter++ | I gather no one tried running prove t/re_tests.t or prove t/rx.t. Ever. That's just depressing.
04:23 jisom joined
putter jql: there is a first-draftish variation on v6.pm in Common/ . basically it allows user and code to control which module gets to handle a 'use v6-alpha;' declaration. 04:24
04:24 jisom left, jisom joined
putter jql: under p5, "use v6-alpha;" loads a module v6.pm. The current v6.pm is perl5/Pugs-Compiler-Perl6/lib/v6.pm, and is hardwired to Pugs-Compiler-Perl6. 04:27
the hack draft new v6.pm defaults to Pugs-Compiler-Perl6, but will happily hand off to a different module if requested. 04:28
the LangPugsRegexTests.pm hack is envisioned running as $ pwd => pugs $ PERL5_V6_IMPLEMENTATION=LangPugsRegexTests prove t/regex/... 04:30
the environment variable requests v6.pm to hand off to the LangPugsRegexTests module which pretends to understand the small dialect of p6 used in pugs's t/regex/ test files. 04:31
(current state is a non-working first draft based on a single test file. <-- expectation management:) 04:32
04:32 amnesiac joined
putter The p5 and p6 engines are build as an m-expression (ie, foo(bar(hee),qux)) grammar spec (rather than directly using rules), which creates an ast, from which some backend components are assembled. 04:34
The objective for the m-expr based grammars is to get "high passes" on the test suites, thus exercising the backend. 04:35
Then, next to LangPugsRegexTests, the other thing I'd like to see so I can hand off this exercise is a "Regex2.pm", which uses real regex foo {} statements. Initially based on the m-expr grammars, and then maturing from there. 04:37
Oh, well, the third Lang I'd like to see is of course an attempt to implement Perl-6.0.0-STD.pm. 04:39
Or more than one. :)
Regexp_ModuleA's current code state is very highly crufty, with a lot of refactoring churn. My hope is shortly after PerlMix starts working (not tonight;), it can serve as a stable base for folks to start playing. 04:43
Ziggy6: to see what's currently working, you can just $ perl -w Regexp_ModuleA.pm --repl6 or run one of the testsuites as described at the top of README. 04:47
tene PerlMix?
putter sigh. have to rename it. perhaps refactor. it is a module which can both be used as a language (use PerlMix;) and as a baseclass for your own language implementations. use PerlMix; source filters your file, handing it to a compile method. PerMix's compile method uses a grammar (which is just another method, and thus also overridable). the 04:51
default grammar understands p5 lines, regex decls, and a "BEGIN"-ish construct whose contents get eval()ed during the regex run. 04:52
that's the rough plan anyway.
svn.pugscode.org/pugs/misc/pX/Commo...exTests.pm shows how it is currently envisioned being used. LPRT both uses it as a language (its written in PerlMix), and as its baseclass (it is intended to be used with the v6.pm hook). 04:54
lambdabot tinyurl.com/ytosh5
putter But all this is a late evening's hackery, and so subject to radical change. I was hoping to have it working this weekend, but oh well.
The .t file it was drafted against was svn.pugscode.org/pugs/t/regex/from_.../anchors.t 04:56
but the nice thing is that if the dialect of p6 used in t/regex/ looks to diverse (ie, ok() used with too many needless syntactic variations), the tests themselves can be cleaned up (which should probably happen anyway). 04:58
s/to diverse/too diverse/
tene: PerlMix because it implements a mix of p5 and whatever, with the notable whatever being bits of p6. thus PerlMix. 04:59
sooo going to change. 05:00
any last questions, comments, odd body noises? 05:01
just about end of day for mee
good night all & 05:07
05:46 PupUser35a77e joined 05:47 PupUser35a77e left 06:14 BooK joined 06:19 |mjk| joined 06:46 devogon joined 06:48 wilx joined 06:51 rfordinal_ joined 07:44 iblechbot joined 08:33 marmic joined 08:36 rfordinal_ is now known as rfordinal 08:53 rindolf joined 08:58 dakkar joined
rindolf Hi all. 09:21
moritz hi rindolf ;)
rindolf: what's up?
rindolf moritz: hi. What's up?
moritz: I'm fine.
moritz: I'm at work now.
And we were able to get our card working properly in the VMware ESX machine. 09:22
Plus, we had a very successful Tel Aviv Linux club meeting yesterday (with a collective supper at a cafƩ afterwards) despite the fact I only publicised it a short time beforehand. 09:23
So I'm happy.\
moritz that's good
I just got up and I'm still half asleep ;)
rindolf moritz: OK.
moritz: I got up at 07:30 today. 09:24
moritz rindolf: which timezone are you in? ;) 09:25
audreyt update: I'm still using this semibroken Asus laptop; the turned-in-for-HD-replacement MacBook will take another 24 hours to arrive :/
lambdabot audreyt: You have 6 new messages. '/msg lambdabot @messages' to read them.
09:34 dec joined
gaal heya. how do I get svk to honor an http_proxy? 09:37
09:37 jrockway_ joined
clkao .subversion/servers 09:38
audreyt gaal: subversion.tigris.org/faq.html#proxy
lambdabot Title: subversion: Subversion FAQ
gaal cheers
shay hello 09:48
rindolf, I'm finally free :) 09:49
09:51 Fuzie joined
Fuzie hello folks :) 09:53
09:53 Fuzie is now known as lichtkind
tene heya 09:53
lichtkind im going to officially announce the official perl6 tutorial ok ? 09:57
tene link? 09:58
lichtkind mom
its currently only in german but haltready
halfready 09:59
tene kk
lichtkind you still want the lin?
tene Sure.
lichtkind wiki.perl-community.de/bin/view/Wis...l6Tutorial 10:00
lambdabot Title: PerlCommunityWiki ōæ½xBB Wissensbasis ōæ½xBB Perl6Tutorial
10:02 andara joined
lichtkind i just wanted to ask if there is another tut i dont know about 10:02
10:02 Southen joined
tene Heh, not in a language I could help translate. 10:03
lichtkind cool
tene lichtkind: just stuff in pugs/examples/ and pugs/docs/
lichtkind i can also but help is always appreciated
tene there's examples/cookbook/ , but that's not quite a tutorial, and needs a lot of filling out, I think. 10:04
lichtkind i know 10:06
i have the trunk here 10:07
and reading it since some month
i would want to start such effort without some research :)
10:08 buetow joined
lichtkind tene are you german? 10:08
tene lichtkind: nope 10:11
Just an arrogant, ignorant american.
lichtkind tene not all are like that
tene but you understand german 10:12
tene No, I don't.
You missed my negative.
"not in a language I could help translate"
lichtkind ahh
meppl good night 10:13
lichtkind yes im currently im multithreadding mode, it doesnt work as well
good night meppl
tene Heh, I know what that's like.
meppl ;)
tene Seeya, meppl.
meppl ;)
moritz lichtkind: in which document format do you want to write the english version of the tutorial? pod? 10:14
lichtkind tene im online since days so i organize a bit whats your standing in perl6 community?
tene I have no standing at all.
lichtkind moritz yes trunk version will be pod i think
tene so just interested? 10:15
tene I touched up Net::IRC::OO, fixed a bug in Net::IRC, and commited a test for pugs crashing hard on eval()'ing some strange yaml
I've answered a few questions on this channel. 10:16
Pretty mundane. :)
lichtkind tene but more than i did, in perl6 terms im what audrey calls english hacker :) 10:17
moritz tene: then perhaps we both have the same level of ignorance ;)
tene I stay pretty up-to-date on events in p6-land, I just don't have my mind together enough lately to do anything here. 10:18
Staying up-to-date while I work on upgrading my sanity. 10:19
10:19 _newbie_ joined
moritz sanity is for whimps ;) 10:20
tene Yes, and I'm a wimp that needs sanity in order to get anything done. 10:21
Lately I've barely had enough sanity to keep up at work and holding my life together.
lichtkind tene thatswhy you like perl6 more :) 10:22
i did also pause approx. 3 month
tene you will see my mail on perl6-announce 10:31
10:34 DebolazX joined 10:41 IllvilJa joined 11:16 ruoso joined
rindolf moritz: I'm in Israeli Standard Time. 11:19
shay: congrats!
I saw gaal when he exited the restaurant I was dining in. 11:21
I wonder if he works nearby. 11:22
mugwump 00:21 < gitte> OTOH if you know that the input is timestamp+tz, why not roll your own parser? 11:26
00:21 < mugwump> because I don't like writing C ? :)
00:21 < gitte> :-) You should really stop worrying and learn to love C.
00:22 < mugwump> I miss continuations and closures too much though
00:23 < gitte> What exactly do you mean by "continuations and closures" in this context?
11:36 chris2 joined 12:06 gaal joined, _jcrigby joined, rgs joined, lichtkind joined, chris2 joined, IllvilJa joined, DebolazX joined, dec joined, marmic joined, devogon joined, BooK joined, dmq joined, stevan_ joined, araujo joined, xinming_ joined, beppu joined, Digital joined, drbean joined, ofer0 joined, shay joined, TimToady joined, revdiablo joined, nperez joined, miyagawa joined, pjcj_ joined, lampus joined, avar joined, lumi_ joined, SCalimlim joined, mr_ank joined, rafl joined, yhsuan joined, Khisanth joined, smash joined, nekokak joined, ajs_home joined, Debolaz joined, Maddingue joined, lambdabot joined, masak joined, ludwig- joined, diotalevi joined, GeJ joined, autark joined, broquaint joined, svnbot6 joined, LCamel joined, jabbot joined, jiing joined, scw joined, Yappo joined, devbot6 joined, hcchien joined, cj joined, felipe joined, jql joined, perlbot joined, knewt joined, cls_bsd joined, meppl joined, statico joined, moritz joined, shay|p6 joined, nipotan joined, PerlJam joined, Juerd joined, wolverian joined, tcliou joined, kcwu joined, Southen joined 12:07 ingy joined 12:08 f0rth joined, audreyt joined 12:09 Shabble joined 12:15 idiotmax joined 12:16 Caelum_ joined 12:25 drupek12212157 joined 12:28 Grrrr joined 12:38 polettix joined 12:39 ruoso joined 12:41 orafu joined 12:44 mj41_ joined 12:46 Ziggy6 joined 12:50 Bit-Man joined 13:04 fglock joined 13:06 IllvilJa joined
fglock I'm back to the net after 1 month :) 13:15
dmq how bad where the withdrawal symptoms? 13:17
Ziggy6 hello fglock :) 13:18
fglock dmq: I missed the immediate feedback
Ziggy6: hi! 13:19
Ziggy6 i've got dozens of questions, trying to prioritize them :)
fglock I worked a bit on a C backend for kp6 13:20
Ziggy6 i saw that
but
lichtkind dmq hi man
Ziggy6 my question is: what's the motivation behind a C backend, isn't that what Parrot does?
fglock the performance is good enough that some things can be written in p6, instead of C 13:22
like the GC, for example
Ziggy6 so you're unhappy with perl5's backend performance
SamB I don't see how you can write a GC in a managed language... 13:23
13:24 nipotan is now known as nipotaway
fglock Ziggy6: I started coding Code.pm, and I noticed I was going too low level on it - so I thought about trying it in C 13:24
Ziggy6 could we use C++ for this backend? :D 13:25
moritz no
Ziggy6 why not?
fglock SamB: it would still use some low level C, but some high level decisions can be made in p6. It was just an example, anyway
Ziggy6 moritz: do you hate C++?
moritz Ziggy6: no; read www.parrotcode.org/faq/ 13:26
lambdabot Title: Parrot FAQ - parrotcode:
fglock Ziggy6: the reason to use C was because I needed to write the object system anyway, so C++ was not really necessary
I'm not against C++ or Parrot :) 13:28
13:28 rhizo joined
Ziggy6 fglock: C++ would speed the development a bit, you could for example use stl map instead of handcoded hashes 13:28
lichtkind juerd are you there? 13:29
Ziggy6 then perhaps i could rewrite your existing backend in C++ but i don't see how you will interface kp6 with it
fglock Ziggy6: the plan is actually to have several hash implementations, depending on usage pattern
for performance tuning 13:30
Juerd lichtkind: Yes, and will be for the next 2 minutes.
Ziggy6 my initial impresion was the hash_key and the method name are redundant
fglock that's what parrot does, too
13:30 rodi joined
fglock hash_key is about 3x faster 13:30
for method dispatch 13:31
13:31 rashakil joined
Ziggy6 but neither scales well :D 13:31
fglock no, but it works well for small classes - which good enough for Str, Int 13:32
user-defined classes would use plain hashes
13:33 the_dormant joined
fglock it would be nice to try out a C++ version 13:33
Juerd lichtkind: Gone now
Ziggy6 anyway, i guess i'm thinking too early about performance, being forced by the low-levelness of the language
my main concern is how you are going to interface kp6 with the C backend
fglock it needs an ast processor, that extracts closures into C "blessed subs", and an emitter 13:36
the C closure class was not written yet, but there exists a p5 prototype that can be translated
lichtkind moritz are you there? 13:37
Ziggy6 so eval() won't be possible 13:38
moritz lichtkind: pong ;)
kolibrie fglock: welcome back
13:38 IllvilJa joined
lichtkind moritz shit i cants you send private msg 13:39
moritz lichtkind: me not either... 13:40
lichtkind: you could join ircnet and /msg me there
lichtkind url?
moritz lichtkind: for example irc.uni-erlangen.de 13:41
13:41 kanru joined
lichtkind moritz fine conecting.. 13:42
fglock Ziggy6: I think eval is possible, if the code is represented as an object with s-expressions
interpreter-like
Ziggy6 it's too complicated and not very usefull I guess 13:44
eval() is planned for kp6?
13:51 IllvilJa joined, rodi joined, rhizo joined, fglock joined, Bit-Man joined, Ziggy6 joined, mj41_ joined, orafu joined, polettix joined, f0rth joined, ingy joined, clkao joined, obra joined, gugod joined, yves joined, pnu joined, sri_ joined, lidden joined, nothingmuch joined, charsbar_ joined, gaal joined, _jcrigby joined, rgs joined, lichtkind joined, DebolazX joined, dec joined, marmic joined, devogon joined, BooK joined, dmq joined, stevan_ joined, araujo joined, xinming_ joined, beppu joined, Digital joined, drbean joined, ofer0 joined, shay joined, TimToady joined, revdiablo joined, nperez joined, miyagawa joined, pjcj_ joined, lampus joined, avar joined, lumi_ joined, SCalimlim joined, mr_ank joined, rafl joined, yhsuan joined, Khisanth joined, smash joined, nekokak joined, ajs_home joined, Debolaz joined, Maddingue joined, lambdabot joined, masak joined, ludwig- joined, diotalevi joined, GeJ joined, autark joined, broquaint joined, svnbot6 joined, LCamel joined, jabbot joined, jiing joined, scw joined, Yappo joined, devbot6 joined, hcchien joined, cj joined, felipe joined, jql joined, perlbot joined, knewt joined, cls_bsd joined, meppl joined, statico joined, moritz joined, shay|p6 joined, nipotaway joined, PerlJam joined, Juerd joined, wolverian joined, tcliou joined, kcwu joined, Southen joined, rashakil joined, audreyt joined, Elastri joined, weinig joined, SamB joined, cookys joined, Eidolos joined, Gothmog_ joined, baest joined, ajs joined, Flimzy joined, TreyHarris joined, silug joined, rhr joined, takesako__ joined, kolibrie joined, spo0nman joined, stef_ joined, mugwump joined, Odin- joined, jamessan joined, nnunley joined, rfordinal joined, wilx joined, bsb joined, Patterner joined, forsaken joined, [M]erk joined, allbery_b joined, integral joined, [particle] joined, qmole joined, Southen joined
pasteling "Ziggy6" at 141.85.0.67 pasted "kp6 error" (5 lines, 228B) at sial.org/pbot/23179 13:52
Ziggy6 fglock: the current version of kp6 doesn't compile, see above paste
13:53 ajs_ joined 13:54 bonesss joined
Ziggy6 also, sial.org/pbot/23181 13:57
lambdabot Title: Paste #23181 from "Ziggy6" at 141.85.0.67
fglock Ziggy6: I've got some pending checkins to do - one sec
Ziggy6: does this work? echo ' class X { say not( true(0)); } ' | perl kp6-perl5.pl 14:00
14:01 theorbtwo joined
Ziggy6 it works, but it outputs unusable code as in sial.org/pbot/23181 14:01
lambdabot Title: Paste #23181 from "Ziggy6" at 141.85.0.67
fglock Ziggy6: ah - it has some debugging text inside 14:05
14:06 Limbic_Region joined
fglock Ziggy6: fixed in next commit 14:09
kp6-dump-ast.pl is outdated - it is not currently working 14:10
svnbot6 r15357 | fglock++ | kp6 - removed a debug 'print' from Pad.pm
Ziggy6 fglock: 10x, it works now, but the ast dumper still fails 14:11
fglock Ziggy6: I misplaced the BEGIN block impl in kp6-perl5 - kp6-dumpast is missing that :( 14:12
needs refactoring
14:12 rindolf joined
fglock the ast is only generated after BEGIN blocks are executed 14:13
Ziggy6 ah, i was hoping i could start understanding kp6 using dumpast, but it seems i have to dive in anyway
fglock or rather, they are done together 14:14
ok, I'll try to fix that!
Ziggy6: kp6-perl5, uncomment line #141 - this will dump ast 14:16
a command line switch would be nice 14:17
Ziggy6 thanks, will do :) 14:18
14:18 weinig is now known as weinig|bbl
rindolf gaal: here? 14:18
[particle] parrot uses --target=PAST 14:20
fglock Ziggy6: I planned to have a command line like: kp6 metamodel,emit_perl5 / kp6 lexical_subs,dump_ast -- specify which plugins to run
kp6 emit_parrot :) 14:21
[particle] welcome back, fglock
fglock [particle]: thanks!
I was reading the parrot source code in the weekend :) 14:22
after trying the kp6-C emitter
[particle] what did you find? 14:23
rindolf Hi fglock, [particle] .
stevan_ @lambdacamels: search.cpan.org/~gruber/Sub-PatMat-.../PatMat.pm 14:24
lambdabot Unknown command, try @list
fglock rindolf: hi
[particle]: I was particularly interested in a 'Closure' class implementation 14:25
I'm not sure how is it called in parrot
14:31 ruz joined
fglock [particle]: I'm thinking of an api like this: svn.pugscode.org/pugs/v6/v6-KindaPe...l5/Code.pm 14:31
svnbot6 r15358 | audreyt++ | * unTODO two passing tests related to cross metaops.
lambdabot tinyurl.com/yqtpk3
fglock I think it can be built using parrot ops, but it may need some internals knowledge
audreyt: hi! glad to know you are better 14:32
14:34 rindolf joined
[particle] sometimes it seems everything in parrot requires internals knowledge 14:35
but that's changing
we have examples and tests for closures you may find helpful, i'll dig them up
rindolf Hi all. 14:36
14:38 ProperNoun joined
svnbot6 r15360 | Ziggy6++ | r15382@viggy: andrei | 2007-02-26 17:35:42 +0200 14:38
r15360 | Ziggy6++ | kp6: Added commandline switches --ast and --perl5, the default being --perl5
Ziggy6 oops, i guess i messed up something, i'm new to svk :D 14:39
14:43 TreyHarris joined 14:49 the_dormant left, the_dormant joined 14:52 Lorn joined 14:54 TreyHarris joined, fglock left
baest Ziggy6: could be that you need the --verbatim flag on svk push. Not sure, i'm also new to svk 14:54
Ziggy6 i think i should have used svk up and svk ci 14:56
but i didn't intend for dev.pugscode.org/changeset/15359 to happen, i'm still trying to understand why it did and how to fix it 14:57
lambdabot Title: Changeset 15359 - Pugs - Trac
14:58 nipra joined
gaal rindolf: am now 14:58
rindolf gaal: hi. 14:59
gaal: do you work in Hertzilya Pituakh?
gaal I am out of order and fragmented 15:00
Sub::PatMatch is cool! but since there's no binding done maybe it's not a good name
but since I'm standards-compliant I work most everywhere 15:02
rindolf gaal: :-) 15:03
15:04 gnuvince joined
svnbot6 r15361 | audreyt++ | * Change "Perl6" to "Perl 6" in the ASCII art banner of Pugs. 15:05
15:07 forsaken joined
gaal S::PM is inspired by another S::PM, which claims: 15:07
"Functional languages' compilers usually optimize away the pattern matching overhead of evaluating the conditions for every call until a matching condition is found. This is mostly possible because of their static typing system which Perl proudly lacks"
I don't see how this is generally true. function variants are desugared to case statements after all 15:08
-- search.cpan.org/~smueller/Sub-Patte...atching.pm 15:09
lambdabot Title: Sub::PatternMatching - Functional languages' Pattern Matching for Perl subs - se ..., tinyurl.com/2esuo6
allbery_b hm? where exactly you put the conditions isn't really significant. using type information to optimize away the condition still works 15:10
gaal since variant constructors are not available to the type system I'm not even sure if the compiler can inline a function case
consider f :: Maybe a -> ...
allbery_b (since purity means you can move stuff like that around without changing the meaning) 15:11
gaal f Nothing = ...
f Just x = ...
Grrrr gaal: it was not "inspired", exactly; the Sub-PatternMatching syntax is too horrid
gaal now I have a consumer of f and a path that can only have a Just x value
sure, the compiler may be smart enough to figure that out and inline just the Just case of f into the consumer 15:12
but it's not like it's guaranteed to happen
15:12 rfordinal_ joined
allbery_b no, it's not guaranteed. but FP / purity means it's easier for the compiler to find and optimize it 15:12
gaal I agree; but this is not part of the static type system 15:13
allbery_b (both the guarantees of the type system, and the fact that a pure expression can be moved around with fewer worries)
yeh, as I said, it's more closely related to purity
but I think the static typing thing is more getting at that in e.g. perl you can't even be certain at runtime that you have a Maybe a 15:14
(at least, nowhgere nnear as easily as when the type system guarantees it)
gaal and sure, that you *don't* have IO a :-)
allbery_b given both constraints (strong typing and purity) the compiler has a much easier job of inlining just the part that applies 15:15
I'm willing to be lenient on iti because many people even who know FP don't quie have straight how the various aspects of it interact, and think of the strong typing instead of other aspects like purity 15:16
gaal I'm not saying FP compilers aren't better off when it comes to these optimization techniques. Of course they are :) Just that the comment in that doc is perhaps a little misleading
that paragraph I quoted continues: "Therefore, using this module for pattern matching currently takes an O(n) performance hit for every call to the patternmatching function. n is the number of branches, sets of conditions." 15:17
this suggests that FP magically gets you better than O(n)
when in fact there's no such promise
allbery_b yeh 15:18
gaal that's all I'm claiming.
(FWIW: how many programmers know how to tell whether a function variant was inlined?) 15:19
devbot6 dev: Ticket #20 (task created): HsBridge.pm for yet_another_regex_engine <dev.pugscode.org/ticket/20>
gaal (I don't.)
allbery_b afaik you need to -dump-simpl and read the core :) 15:20
and have #haskell nearby to help you interpret it :)
15:21 IllvilJa left 15:23 Elastri_ joined
gaal #haskell :: (BigOh a) => Program -> a -> Program 15:24
15:38 diakopter joined 15:39 diakopter left, diakopter joined 15:48 stevan_ joined
svnbot6 r15362 | lwall++ | missing } noticed by aufrank++ 15:51
15:58 jrockway joined 16:01 mako132 joined
svnbot6 r15363 | audreyt++ | * Pugs.Compat - Eliminate one case of 32k-per-%ENV-access space 16:09
r15363 | audreyt++ | leaks on Win32 by using getEnv instead of statically-allocated
r15363 | audreyt++ | Win32 API calls.
16:12 fglock joined 16:13 the_dormant left 16:14 the_dormant joined
jrockway heh, the win32 api leaks? 16:16
moritz tell me something new ;) 16:19
jrockway i would assume with the millions of users that they would run valgrind and just fix them :) 16:21
guess i'm wrong though
moritz jrockway: fix windows API? how? 16:22
jrockway: it's all controlled by one big company, you know...
jrockway right
Ziggy6 valgrind is linux only
jrockway i assume microsoft would have fixed it by now :)
but i guess adding DRM to individual memory cells was more important 16:23
moritz ...and punching holes in UAC
or something ;)
Ziggy6 jrockway: win32 api is full of bugs, developers usually work around them
16:29 felipe joined 16:36 chris2 joined
fglock my talk on "bootstrapping perl6" was rejected by FISL-2007 :( 16:51
moritz fglock: what's FISL? 16:52
svnbot6 r15364 | audreyt++ | * Pugs.Parser.Operators - Eliminate another space leak in
r15364 | audreyt++ | filterFun; heap usage during parsing should be back to
r15364 | audreyt++ | constant now.
moritz Federal Insured Student Loan? 16:53
Ziggy6 @google FISL-2007
@g FISL-2007
lambdabot Maybe you meant: gazetteer get-shapr ghc girl19 google gsite gwiki . v
br-linux.org/linux/fisl-2007-palestras-aprovadas
Title: Fisl 2007: Saiu a primeira chamada das palestras aprovadas | BR-Linux.org
moritz is that spanish?
fglock fisl.softwarelivre.org/8.0/www/?q=en
portuguese 16:54
lambdabot Title: 8th International Free Software Forum | 12, 13 e 14 de Abril de 2007
moritz cheers
fglock mm - I guess I would find more fun in parrot if I wrote my own pmcs 16:55
16:58 CardinalNumber joined
svnbot6 r15365 | audreyt++ | * Pugs.Parser.Program: Make decodeProgram sufficiently 17:02
r15365 | audreyt++ | chunky-lazy so memory use stays constant for source
r15365 | audreyt++ | code size >4k.
17:10 buetow joined
[particle] fglock: wrt closures, you're probably looking for the 'newclosure' op 17:12
fglock [particle]: what's the plan for lazy lists in parrot? 17:13
[particle] we'll need a pmc for that
fglock I could probably work on that
[particle] i'm working on implementing generators 17:14
since we have continuations built in, that's the way to go
we'd love to have lazy lists... that'd be great!
fglock can you clone continuations? I mean, does it clone lexicals?
[particle] i believe so 17:15
tests are in t/pmc/sub.t
fglock looking
[particle] yes, you can clone
17:15 ProperNoun joined 17:22 GabrielVieira joined 17:25 rindolf joined
rindolf Hi all. 17:25
audreyt: here?
moritz rindolf: it will strongly depend on your notion of "here" *duck* 17:27
offby1 it depends on what the meaning of "is" is.
rindolf moritz: OK.
17:28 forsaken joined 17:34 maskd joined
TimToady I think it depends mostly on the definition of audreyt... 17:41
17:43 xerox joined
svnbot6 r15366 | lwall++ | route around pugs curly damage 17:43
rindolf Hi offby1, TimToady 17:44
TimToady: how was your weekend?
17:46 penk joined, GabrielVieira2 joined, ashleyb joined
dmq @msg juerd fixed the xml bug 17:48
lambdabot Not enough privileges
dmq hmm
audreyt dmq: @tell not @msg 17:49
dmq oh
heh
@tell juerd fixed the bug in the regex engine that your xml validator found. thanks.
lambdabot Consider it noted.
dmq talk about crazy regexes by the way. 17:50
he wrote a spec compliant regex for validating xml. very insane.
audreyt we're aware of that :)
rgs who?
PerlJam dmq: Since you're the defacto perl 5 regex guru and you're hanging out on #perl6, does that mean that you're going to tweak the perl6 regex engine too? :)
dmq juerd.
heh.
not sure if there is room in my brain to be competent in both. 17:51
audreyt well with luck I hope it'll be the same engine eventually :)
dmq but im sure at some point ill take a look.
moritz I didn't even knew that you can parse xml with regexes
audreyt a regex that parses xml is very ex, and very not reg, indeed 17:52
dmq last time i checked it was in parrot bytecode tho, which was a little offputting.
moritz ok ;)
audreyt dmq: there's a couple implementation in perl 5
dmq: one is in pugs/misc/pX/Common/yet_another_regex engine, another is on CPAN as Pugs::Compiler::Rule (and also pugs/perl5/Pugs-Compiler-Rule) 17:53
dmq well there you go, then i am helping. :-)
17:53 thepler joined
dmq thing was part of the motivation for doing the stuff i have been was to improve my C skills. 17:54
audreyt one way you can help is helping avar getting ::Plugin working :)
dmq so doing stuff in either Perl or PBC sort of misses the point.
ive been doing my best.
audreyt ideally, we'd like a roundtripped-to-userland-and-back ::Plugin to pass all re tests in perl5 regression tests 17:55
dmq we broke re:engine::PCRE in order to make ::Plugin easier to do
sure.
audreyt should it Just Work, or (as far as you know) there's known problems?
dmq it being what? 17:56
::Plugin?
audreyt having a ::Plugin that simply, in its comp hook
construct a qr// and save to stash
and in its exec hook
rindolf Hi audreyt
audreyt simply retrieve the stash and match
rindolf audreyt: what's up? How are you feeling?
17:56 GabrielVieira2 is now known as GabrielVieira
audreyt rindolf: feeling okay. about to sleep. will get $real_laptop back tomorrow 17:57
dmq well i think it should work.
rindolf audreyt: good.
dmq there are structural flaws that are yet to be resolved.
rindolf audreyt: what's your $fake_laptop?
dmq when qr// was introduced I dont think anybody realized how it might interact with (??{..}). 17:58
Actually, when qr// was introduced I dont think the full ramifications of it were completely understood.
17:58 xinming joined
dmq So there are some serious issues with potential corruption because of the way we store match results. 17:58
audreyt would it be better if we simply stash the textual regex/flags 17:59
dmq there is also still a lot of global state...
audreyt and recompile during exec()?
s/better/less flaky/
dmq no not necessarily.
audreyt rindolf: a random asus M2C with WinXP
dmq the issues are deeper than that. its mostly an issue of tuits, and perhaps funding, to resolve it.
gaal remoose 18:00
dmq im starting to apply for work so ill have dramatically less time to hack the engine.
although rgs has been encouraging me to apply for a grant, which i will do if i can come up with a design that has a decent chance of solving the deeper issues. 18:01
18:01 Daveman joined
dmq one note to p6 implementors, putting match results in the regexp object is not a good plan. 18:01
audreyt uh. and perl5 does that?
<- blissfully ignorant
Juerd dmq: Neat! 18:02
dmq++
dmq i can totally see how it made sense before qr// but once you have a qr// type construct its not cool.
Juerd dmq++
But I have to go now (fucking server broke down, have to build one out of used spare parts)
dmq juerd, i make no promises that try() will work, and i think you should replace the \xDE\xAD\xBE\xEF with (*FAIL).
rindolf audreyt: ouch! 18:03
Juerd Already have
dmq cool.
actually if you dont mind i wouldnt mind seeing the generator script.
Juerd You're actually using a rather old version, because the latest doesn't exhibit the bug ;)
dmq id like to torture it somewhat to see if i can get the buffer overrun to happen again
Juerd I worked around the A-B problems by hardcoding them
dmq yes, thats something you should mention to larry. its a really weird requirement that maybe he should know about. 18:04
er, timtoady i mean.
dmq not having been introduced properly yet
Juerd dmq: tnx.nl/6058YAIV
lambdabot Title: TNX
dmq audreyt: yes p5 does that. 18:05
Juerd dmq: It's two requirements. The w3 people themselves don't use it consistently. This grammar can /never/ be automatically converted.
specbot6 r13704 | larry++ | Made one-pass parsing rule explicit so that tests can refer to it.
Juerd And I think Perl 6 already does A-B
dmq match data is stored in the same structure as the compiled pattern. presumably for efficiency sake, which made sense before qr//
Juerd [ A && <! B > ], iirc
dmq juerd: for classes yes. but for non classes?
Juerd Perhaps <!before B> 18:06
Assuming the RHS of && is limited to whatever A matched.
svnbot6 r15367 | lwall++ | Add test of one-pass parsing of regex character classes.
dmq but it has to be bounded
Juerd I think it'll have to be, for && to make sense at all
though "barfoo" ~~ /foo && bar/ being true also makes some kind of sense 18:07
Sorry, really gotta build that machine
dmq waves
gaal whatdefines removeCRLF? 18:08
and how come it works when mentioned before decoding?
*called
audreyt gaal: removeCRLF is defined just below
why not?
gaal oh, local func. last place I looked<tm> 18:09
because, what encoding is the \n?
previously there was
removeCRLF $ decode 18:10
now there's decode $ removeCRLF
also, is decodeUTF8 really inlined where it's used? 18:13
audreyt sure it is 18:14
it's got INLINE
TimToady I think && should have the same semantics as & except for the sequence point. 18:15
meaning / foo && <!before bar> / can never match
would have to be written /foo && <!before bar> .* /
to make it end the same place. 18:16
PerlJam Hmm.
svnbot6 r15368 | audreyt++ | * gaal++ pointed that for all non-UTF8 unicode encodings 18:17
r15368 | audreyt++ | we need to removeCRLF _after_ the decoding, not _before_.
r15368 | audreyt++ | (for UTF8 it's the same thing, so we preserve better chunkiness.)
18:17 dec_ joined
audreyt gaal: re really-inlined, note that GHC has cross-module inlining 18:18
PerlJam TimToady: / foo && .{3} / matches, correct? Is there a way to get an unbounded quantifier to do the same? / foo && .* / (It seems like it could do so eventually via backtracking)
gaal oh, for some reason I misremembered the pragma as "a nudge", like inline in C/C++ more or less, not the sledgehammer the userdoc seciton I just reread says
audreyt i.e. it saves the Core AST for all inlinable things, and INLINE forces that, and it does inline the AST when linking
*importing
TimToady both of those match, but yes, the .* version might take longer unless it's in the DFA area
and by definition the right side of && is outside the DFA area 18:19
PerlJam ah, okay
TimToady & can build dfa of both sides, presumably
gaal audreyt: excellent, thanks for the 'splaining
18:20 wilx` joined
gaal (splainage?) 18:20
18:21 andara left, rashakil joined
TimToady TimToady's Lament: The pain in reign falls mainly in the 'splain. 18:22
rindolf TimToady: :-) 18:23
TimToady: did you make it up now?
TimToady speaking of which, my weekend was rainy
yes
rindolf TimToady: do you live in Oregon?
TimToady seems like it during El NiƱo years... 18:24
rindolf TimToady: may I attribute this quote to Larry Wall?
TimToady sure 18:25
rindolf TimToady: in my fortunes' file?
TimToady: OK.
PerlJam rindolf: who else would you attribute it to?
rindolf PerlJam: "TimToady"
18:25 fglock joined
TimToady Basically, northern California joins the Pacific Northwet during El NiƱo... 18:25
gaal The pain in rein goes mainly in the dentist's bill, since when you get a gift horse you don't check its teeth.
fglock audreyt: re colabti.de/irclogger/irclogger_log/...9,Mon#l153 (politicking) - sorry about that 18:26
lambdabot Title: #perl6 2007-02-19,Mon, tinyurl.com/2cbrpr
dmq timtoady: the problem juerd was dealing with was this nasty w3 construct PATA-PATB where PATA must match, but PATB maynot, but only in the part that PATA matched.
TimToady I think && handles that naturally if you assume same length semantics
PerlJam rindolf: Can you verify that TimToady is indeed Larry Wall? ;-) 18:27
dmq for instance they had something like ([class]+) - '-'
rindolf PerlJam: I have verified his 2048-bit PKE using state-of-the-art and cutting-edge biometric identification system. 18:28
dmq im doubtful i properly grok &&, all i know is i couldnt think of a sane way to do it in p5 regex.
TimToady so you want something like <[class]>+ & <!before -> .*
audreyt fglock: hey. no need to be sorry at all.
TimToady or <[class]>+ & <!before .* -> .* 18:29
dmq i guess so, except it has to work as part of a larger pattern, so you could have / X (Y+ - Z)/
PerlJam -> naturally chunks together all too well
audreyt fglock: we cleared that up with chromatic long ago, and it's all fine now :)
TimToady or <[class]>+ & [<!before -> .]* 18:30
dmq .... where X might match Z
18:30 IllvilJa joined
TimToady or <[class]>+ & <-[-]>* 18:30
dmq but would that work if X matched Z? 18:31
TimToady PerlJam: yea, -> should probably be spaced
dmq for the '-' example they were just being stupid. but there was another one that was more complex. 18:32
TimToady dmq: why wouldn't it work?
18:33 shlomif joined
TimToady the point of & is that it constrains both sides against the same substring, which is exactly what you want. 18:33
so X has nothing to do with it
dmq ah ok, i didnt get that part. i did say i didnt grok the &&. 18:34
cool, glad you have it sorted. :-)
fyi: they were being lazy about writing <[class]-[-]> - <[class]-[-]> 18:35
if i remember the new charclass syntax properly.
er i mean <[class]-[-]>+ - <[class]-[-]>+
TimToady but that should just construct an anonymous class that is missing - 18:38
shouldn't need &
dmq they had a more complex example that probably needed the &. 18:39
TimToady k
dmq but i agree with that.
case
fglock I wonder if it would be sane to link p5 to kp6-C, and reuse unicode/regex/memory management
dmq anyway, nice chatting, gf is waiting for me to go to dinner.
TimToady enjoy
dmq you might want to take a look at that ebf, if only for a good laugh. 18:40
specbot6 r13705 | larry++ | apostrophe illiteracy... 18:44
moritz if :10(99) works, should :16(FF) work as well? 18:49
avar perks up at long-gone ::Plugin discussion and goes back to hacking
I was kicking match variables into ::Plugin the other day, there's still some odd issues with it 18:50
perl issued undefined value warnings if $1 et al weren't untainted, I didn't get $+{} working yet and so on:) 18:51
shlomif Hi avar 18:53
avar hia
shlomif avar: are you seeing the end of the winter over there in the frozen north?
18:55 shlomi joined
avar sorry, don't have time to chat:/ 18:56
18:56 justatheory joined 18:57 ludan joined 19:03 shlomi is now known as rindolf, Ziggy6 left
Juerd 19:28 < TimToady> so you want something like <[class]>+ & <!before -> .* 19:06
TimToady: No, more like <!before .* ->
TimToady: But the RHS of & bound to the length of what the LHS matched 19:07
TimToady: So your second guess was correct, iff & works like that.
19:07 Ziggy6 joined
PerlJam not having that sequence point sure makes it seem like that won't always work right 19:09
19:10 bernhard joined
jrockway btw, there's a #haskell on irc.perl.org for perlers learning haskell 19:21
feel free to join :)
(and recruit The Next Generation Of Pugs Hackers [tm])
moritz I hope pugs will be finalized before we need a whole new generation ;) 19:28
19:33 Caelum_ is now known as Caelum
nothingmuch would guess they already are aware of pugs 19:34
Caelum what does "ghc6601_0.hc:(.text+0x622): undefined reference to `PugsziEmbedziParrot_de8C'" mean? 19:36
19:38 justatheory joined
gaal Caelum: try killing Parrot.{hi,hs,o} in dist/ and running make again 19:40
(yes, .hs too; it's regenerated from .hsc) 19:41
er, the .hs though is in src/ of course 19:42
Caelum I did a find . -regex '.*/Parrot\.\(h[is]\|o\)' -exec rm {} \; and make but get the same error 19:49
gaal hm try wiping Embed/ in dist/ then 19:50
and Embed.* possibly too
dist only, not src/ this time
if all else fails, make clean and make again 19:51
19:51 dduncan joined 19:56 theorbtwo joined
gaal avar: 20:04
@pl \x -> x + 42
lambdabot (42 +)
20:14 dec_ is now known as dec
[particle] what's the difference between Bit and Bool? 20:19
Juerd A Bit is 0 or 1. 20:21
A Bool is false or true.
fglock Bool is an enum (afaik)
Bool declares True and False
Juerd $bit << 2 makes sense, $bool << 2 does not.
[particle] can a Bool be undef?
it seems a Bit can
Juerd [particle]: IIRC, all ucfirst can.
20:21 lichtkind joined
fglock a Bit container can be undef, but a Bit cannot 20:22
[particle] S02:709 -- Bit Perl single bit (allows traits, aliasing, undef, etc.)
i guess that's the container, then 20:23
it's in section "Immutable types"
i've got to wonder what the difference between 'bit' and 'bool' is, then (native types) 20:25
fglock bool doesn't promise to be 1-bit (afaik) 20:27
[particle] darned two-bit booleans! 20:28
allbery_b that sounds like a dailywtf 20:29
bool = true | false | maybe | somethingelse ... 20:30
avar [particle]: Implementation wise: none? It's there to implement object objecty-sugar I would guess
baest more likely 32 or 64 bit booleans
[particle] is considering the state of parrot's native type support wrt perl 6 types
our boolean array uses bits, but a boolean uses a byte 20:31
baest i think several implentations mapped defined a bool as an int. At least i remeber something like that
[particle] so, an array of 32 booleans is the same size as one
avar bit/bool would be a PMC wrapping an int that knew whether it was Int::1 or Bool::True ? 20:32
no idea though:)
[particle] i imagine the hll 'Bool::True' is dealt with by the parser
no, maybe that info is carried into the ast 20:33
anyway, it's likely optimized out before vm opcodes are generated 20:34
so, unless there are semantic differences between bit and bool, they'll be implemented the same way, which is by a parrot IREG
however, we'll have to fudge uint, since parrot only has signed integers natively 20:35
20:45 stevan_ joined 20:55 fglock left 21:03 forsaken joined 21:23 ludan joined 21:30 eric256 joined
eric256 how can i get the actual values from a junction that cause the success? 21:32
?eval asy any(1,2,3) > all(1,2,);
21:32 evalbot_r15353 is now known as evalbot_r15368
evalbot_r15368 Error: No compatible subroutine found: "&asy" 21:32
eric256 ?eval say any(1,2,3) > all(1,2,);
evalbot_r15368 OUTPUT[all(VJunc any(VBool False,VBool True))ā¤] Bool::True
eric256 but i'm looking for it to say '3' i tried .values and searching the example/documentation with no luck.. ideas? 21:33
21:39 Macae joined
avar ?eval $?OS 21:45
evalbot_r15368 \"linux"
avar ?eval $?BLOCK 21:46
evalbot_r15368 \undef
avar tries to recall the compiler twigil..
say "I'm on" ~~ $?OS.unix ?? "UNIX" !! "Something else"; 21:47
I was wondering in general how L<Configure> would work in Perl:) 21:48
*Perl 6
eric256 ?eval say 'Perl ' ~ any('6 rocks', 'rules!', 'is da bomb').pick; 22:02
evalbot_r15368 OUTPUT[Perl rules!ā¤] Bool::True
offby1 is "pick" random? 22:03
moritz ?eval <1 2 3 4>.pick
evalbot_r15368 "4"
moritz ?eval <1 2 3 4>.pick
eric256 yea i didn't need the any in there ;)
moritz offby1: I guess so
evalbot_r15368 "2"
offby1 slow, too :-)
eric256 i think its eval bot thats slow 22:04
22:12 wilx joined
offby1 yeah, I know. 22:13
eric256 ?eval ~any(1,2,3) 22:17
evalbot_r15368 ("1" | "2" | "3")
eric256 i still can't figure out how to access the actual values that caused a condition with junctions to pass 22:18
Limbic_Region eric256 - I wrote the list about this some time ago 22:19
eric256 - at that time, the answer was write your own operator to act on the junctions 22:20
eric256 - but now I think the same thing can be done with sets
but I would need to research the emails to make sure I am remembering correctly
by default - the sugar isn't there
eric256 which is my second issue....finding out if sets even exist yet :-)
Limbic_Region they do theoretically
not sure if they are implemented
but knowing fglock - I would have to say yes 22:21
in any case, the behavior seems inconsistent given .pick - but that's just me
Limbic_Region wanders off again
eric256 that seems silly, since the junction comparison returns and object wouldn't it be easy to pass along a set of the elements ...bah. ;) i want to be able to do my @high = any(@scores) > 100; ;)
22:22 Psyche^ joined
eric256 hehe i found the thread and it looks like know one mentioned which S to look in to find sets. 22:26
Limbic_Region eric256 - I am not sure it is "THE" thread 22:28
since when I first brought it up, sets weren't in 22:29
but likely a similar thread after the fact
it has come up here on the channel before too
eric256 well maybe not, but its one where you asked about it and mentioned you'd asked a year ago ;) so it was your followup to THE thread i think ;)
Limbic_Region TimToady, fglock, audreyt all should be able to point you in the right direction though
heh 22:30
yeah
eric256 tries googling using "set" agian and waits for the huge number of misleading hits
TimToady ?eval say list(1..10) < 6
evalbot_r15368 OUTPUT[12345ā¤] Bool::True
eric256 i wonder if we could autogenerate an index to the docs 22:31
TimToady (except it's currently each() that is specced to do that)
eric256 list?
Limbic_Region eric256 - the original thread was "Malfunction Junction, what's your function?" 2005-04-28
TimToady look for Set and KeySet
eric256 ?eval say list(1,2,3,4) > list(2,3);
evalbot_r15368 OUTPUT[34ā¤] Bool::True
Limbic_Region eric256 - the follow up (from me anyway) was "Do junctions support the intersection of lists" 2006-04-06 22:32
eric256 wow...didn't even know 'list' existed....thanks L~R i think i remember that from the first time around.. yea that followup was what i found
thanks timtoady
TimToady you only get one list though
your eval was doing >2 22:33
and like I said, it was recently changed to each(), but pugs hasn't caught up with that yet.
eric256 pugs or the docs apparently...where would i be looking to see discriptions of list or each? 22:35
tene ?eval list(1..10) % 2 == 0
evalbot_r15368 Bool::True
eric256 S02 talkes about KeySet but only in a vague no idea how you'd use it type way ;)
?eval say list(list(1,2,3,4) > 2) > 3 22:36
evalbot_r15368 OUTPUT[4ā¤] Bool::True
TimToady list() > 3 was an early attempt at easy list comprehensions. 22:37
it's just syntactic sugar for a grep.
we might not keep it, now that we have more general list comprehensions.
eric256 yea but its tasty ;) 22:38
22:38 devogon joined
TimToady grep for 'comprehension' for the more general forms 22:38
eric256 @results = any(@values) ~~ all(@rules); would be cool.
lambdabot Unknown command, try @list
eric256 S02 for those reading along at home ;) 22:39
22:40 Psyche^ is now known as Patterner 22:41 gnuvince_ joined
eric256 is there any pod syntax to specify something that should be indexed? so that when you put a definition of each you could somehow flag it to show up in an index? my problem is mostly that i don't know where to look and often i dont' know what it is called now. so an index to scan could be quite helpfull 22:41
TimToady for example: @results = ($_ when all(@rules)) for @values
people sometimes use X<> for that. 22:42
22:43 explorer joined
TimToady but if we keep the list/each shortcut it's just @results = each(@values) ~~ all(@rules) 22:43
eric256 ahh thats pretty darn close to what i was looking for. thanks
tene and what is @rules a list of? 22:44
eric256 match objects i would expect
TimToady ?eval @results = list(1..100) ~~ all(/3/,/7/) 22:45
evalbot_r15368 (no output)
22:45 Caelum joined
TimToady ?eval @results = list(1..100) ~~ all(/7/) 22:45
evalbot_r15368 (no output)
TimToady ?eval @results = list(1..100) ~~ /7/
evalbot_r15368 [7, 17, 27, 37, 47, 57, 67, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 87, 97]
TimToady looks like all() not auththreading right
eric256 doesn't look like its playing nice yet
TimToady *auto 22:46
?eval @results = list(1..100) ~~ (/7/ | /3/)
evalbot_r15368 (no output)
TimToady ?eval @results = list(1..100) ~~ (7 | 3)
evalbot_r15368 [3, 7]
TimToady looks like patterns aren't autothreading 22:47
?eval @results = list(1..100) ~~ ({ $_ % 7 } | { $_ % 3} )
moritz so does ~~ substitute p5s grep?
evalbot_r15368 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100]
moritz (among other things of course ) 22:48
eric256 not grep, regex...now its SmartMatch
moritz ok, p6 still has grep
TimToady whoops, misplaced a paren 22:50
22:50 stevan_ joined
TimToady it's @results = ($_ when all(@rules) for @values) 22:51
basically, I recently relaxed the nested modifiers restriction to allow an if-ish one inside a loop-ish one.
plus treating the inside of (...) like a statement 22:52
22:53 explorer joined
dmq if i wanted to use perl6 to support interval notation the unbalanced parens wouldnt necessarily be an issue would it? 22:53
TimToady not to perl 6 22:54
dmq stupid question i guess just something that occured to me.
TimToady it'll drive any syntax highlighter completely bonkers though.
dmq heh
s/perl\K6/ 6/
:-)
TimToady you'd just have a term token that doesn't require its opener to match its closer 22:55
dmq cool.
TimToady I suspect we'll already get a certain amount of heartburn from the fact that <( doesn't have to match )> in P6 regex. 22:57
which maybe means we should have used something other than parens in that token. 22:58
22:59 Macae left
TimToady but that's probably on a level that a syntax highlighter can deal with, assuming it can have a regex mode. 22:59
the worse problem is that parsing something like (1,100] would require an awful lookahead to distinguish it from ordinary parens. 23:00
that's why I went with 1^..100 instead 23:01
offby1 nice to know you're keeping syntax highlighting in mind -- my big fear is that there'll never be a decent Emacs mode for perl6 23:04
eric256 is there a way to define custom operators that would have values inside the operator? such as (1,100] were presumably the operator is (,] with two values imbeded in it? 23:07
TimToady what I'm hoping is that the grammar will be such that we can ask a grammar to spit out a highlighter for an editor, even if you're in some custom language.
yes, but you have to have sufficient clue to know when to switch into a sublanguage
and for (1,100] that involves lookahead to the ], probably 23:08
23:08 demq joined
TimToady mathematicians are great at coming up with syntax that looks good to a human but drives computers crazy 23:08
but that's essentially the process that happens when you switch into a sublanguage such as inside rx// 23:09
where < means something entirely different than outside
now if you had a token that was "interval (,100]" you wouldn't need the lookahead.
you'd just need the sublanguage
moritz mathematicians are weird anyway ;) 23:11
TimToady most people waste single matching bracket pairs at a time. leave it to the mathematicians to figure out how to waste both parens and square brackets at the same time... 23:12
23:12 polettix joined
offby1 they have an infinite supply, so they're not really wasting them ... 23:13
or at least until their pencil lead runs out.
TimToady there's always chalk...
interesting that chalk comes from southern England, and graphite from northern England. that could explain a lot. 23:14
eric256 drools over his liquid graphit pencil some before returning to work
offby1 never noticed fights between the chalk-fanciers and the pencil-fanciers in school, but then he dropped out 23:15
TimToady well, of course "offby1" wouldn't grok (pencil,chalk] :) 23:16
offby1 it'd probably be (pencil, chalk) or even [pencil, chalk] -- I'm not above being off by 2 23:17
moritz chalk and blackboar where the first primitive wikis ;)
TimToady nah, cave wall and charcoal, I think
Booga, booga! Wiki wiki! 23:18
moritz TimToady: but cave walls aren't that easiy whipped clean
s/whipped/wiped/ ;)
TimToady and how often do you wipe clean your wiki?
eric256 yea once you've drawn on them with your enemies blood its all down hill from there
moritz sometimes english is harder than perl ;)
TimToady hmm, what if half the cave paintings were actually spam... 23:19
offby1 jerks awake
whipped cream? Where?
moritz TimToady: what did they sell? buffalos? 23:20
23:20 IllvilJa left
moritz TimToady: or "extra sharp stone blades"? porn? 23:20
TimToady buffalos? perhaps, under the category "bogus stock" 23:22
eric256 accidentaly tried to open a directory of 50k files with vi....and now thinks that wasn't a good plan
23:23 weinig|bbl is now known as weinig
TimToady I've notice that vim doesn't take at all kindly to being interrupted while starting up. Last time I tried that I ended up having to kill the shell from another window... 23:23
offby1 wouldn't take kindly to being killed, either 23:24
eric256 yea i just had to open a new ssh and beat it over the head..
now to see how long sa-learn takes to learn 56k messages ;)
23:26 gnuvince_ joined 23:28 Aankhen`` joined
demq (mathematicians are great at coming up with syntax that looks good to a human but drives computers crazy)++++ 23:31
Gothmog_ ;-)
demq now theres a good email sig quote. 23:32
hrm, i appear to have gotten fatter 23:33
23:33 demq is now known as dmq
dmq ah, much better 23:34
moritz QM is nice, with vectors/states like <a| and |b> and matrices like <a|H|b> etc
and of course < and > still available als comparison operators
masak does pre- and postincrement return an rvalue? why? 23:39
it requires an lvalue, so why not provide one? 23:40
at least for pre- it seems to make sense 23:41
but maybe allowing it for preincrement but not for postincrement would be asking for trouble...
& # much needed sleep 23:42
23:43 beppu joined 23:48 Caelum joined
eric256 ?eval $x++ = 0; say $x; 23:53
evalbot_r15368 Error: Can't modify constant item: VInt 0
eric256 must have misunderstoo masak 23:54
hehe i thought you said lvalue not rvalue
tene ?eval ++$x = 0; $x
evalbot_r15368 Error: Can't modify constant item: VInt 1
eric256 processing spam at 1.78msg/sec for a total of 21minutes...not too shabby