pugscode.org/ | nopaste: sial.org/pbot/perl6 | pugs: [~] <m oo se> (or rakudo:, kp6:, elf: etc.) (or perl6: for all) | irclog: irc.pugscode.org/
Set by Tene on 29 July 2008.
meppl good night 00:02
pugs_svn r21842 | ruoso++ | [smop] adding the test for lexical scopes 00:03
pugs_svn r21843 | ruoso++ | [smop] lexical scope almost implemented! only the lookup implementation is missing! 01:09
ruoso sleep & 01:14
Carrie Which sorts of buildings are more likely to house potentially harmful molds? 05:25
masak Carrie: caves? 05:26
anyways, this seems more of a Perl 5 question than a Perl 6 question to me 05:27
TimToady Webchat appears to be some kind of trollbot, actually; it's been here before... 05:34
masak it's 2008, and we have such things as trollbots. the present grows ever more futuristic. :) 05:44
masak what's the value of $0 at the start of a program/block, before any matches? 05:59
or rather, is it legal to refer to it? 06:00
pugs_svn r21844 | bacek++ | [spec] Unfudge test for rakudo. Hash composer is implemented since r30104 06:17
masak would $str.subst('foo','bar') work like $str.subst(/foo/,'bar') or like $str.subst(rx:g/foo/,'bar') ? 06:49
pugs_svn r21845 | pmurias++ | [STD] handles errors from an eval (grammars need a lineof) 08:36
pugs_svn r21846 | pmurias++ | [sm0p] added a lineof method to unbrake it 08:59
pmurias @tell ruoso the lexical pad is missing from the repo 09:01
lambdabot Consider it noted.
pugs_svn r21847 | ruoso++ | [smop] ruoso-- keeps missing to add files 09:37
riffraff hi 09:58
pmurias @tell ruoso why did you make SMOP__ID__entries and SMOP__ID_lookup static, is there a rule? 11:00
lambdabot Consider it noted.
pmurias i'm porting the elf sm0p backend to m0ld for now, as i don't have enough pugs/haskell skills to come up with a working backend design 11:16
pmurias what's the state of PIL2, i noticed that PIL2 generators are commented out and the ones which don't specify the PIL version are marked deprecated 13:05
s/,/?
pmurias i get an useless use of constant warning when using -Cjson or -Cyaml 13:29
pugs_svn r21848 | pmurias++ | [pugs] a empty m0ld backend placeholder 13:31
pmurias and the output of -Cyaml containes a first line consisting of strange characters 13:36
pugs_svn r21849 | fglock++ | [PCR] added new-engine branch (at misc/pX/fglock/) 14:37
r21850 | fglock++ | [PCR] clean up the release branch 14:40
pmurias diakopter: hi! 14:43
diakopter pmurias: ih 14:44
pmurias what's up? 14:45
diakopter my 9 day absence approached an event horizon 14:46
pmurias i don't understand 14:47
diakopter I was away longer than anticipated 14:48
from some frames of reference 14:49
sudden home change, sudden marriage change, sudden job change, sudden health change 14:50
(s)
pmurias what's the state of yap6? 14:52
diakopter 7ups 14:53
(svn ups)
diakopter oops 14:55
diakopter sry moritz_ for the blatant/destructive elevation of privileges & arbitrary execution security hole 14:57
pmurias the security hole wasn't really important as it's easy to evalbot backends can execute anything they wont 14:59
s/wont/want/g
speckbot r14573 | larry++ | clarify that &foo is a real function even when representing a multiple dispatch 15:00
r14573 | larry++ | s/q:code/quasi/
diakopter backlogs a few tens of thousands of words 15:01
[particle] TimToady: is there a way to see the list of signatures that are contained in &foo? 15:10
like, would &foo.perl do it?
TimToady erm
that might give you the sigs and a whole lot more 15:11
[particle] right, a lot more
but it should list the sigs
narrowing down, is there a way to get just the sigs?
TimToady I suspect using .sig or whatever will just return a multisig
it's just a property, after all 15:12
well, a trait
no such thing as properties in p6 really
TimToady possibly it's even a Junction of sigs, since the ordering is determined by the dispatcher 15:13
[particle] so it's easy to get the info you need to write your own dispatcher 15:14
ok, good.
i like Junction, but Set may be ok, too
TimToady presumably there's gotta be some way, or the standard dispatcher can't do it either :) 15:15
might be more useful to store a partial ordering
[particle] hrmm, what about 'only' 15:16
TimToady what about it?
[particle] how is that distinguished?
i mean, it can't be a junction
it could be a Junction with a constraint of one alternative, if that's possible 15:17
i don't know how to specify that subset, though
TimToady the user shouldn't care how many things there are in a junction
$foo ~~ $bar doesn't need to know the arity of $bar
or the whateverity
TimToady $capture ~~ &foo.sig either works or doesn't 15:18
[particle] when building up the multisigs, the compiler needs to know if it's allowable to add another sig to something that's previously been declared with 'only'
TimToady regardless of whether .sig returns a junction or a signature
[particle] this isn't dispatcher execution, really
TimToady sure, but that's not info in the sigs
[particle] ok 15:19
it has to be stored somewhere, though
TimToady well, at least till the end of scope in the compiler
[particle] at runtime, can you add a sig to something previously declared as only? 15:20
TimToady hmm, if you add a sig to an existing Code, it would depend on how the compiler wrote the call 15:21
TimToady if it uses the same dispatch mechanism, it would be transparent 15:22
but only subs are more likely to be inlined
in which case, I'd say it's erroneous to add a sig to the object
I take onliness to be a strong hint that you can optimize the heck out of the calls 15:23
esp for lexically scoped subs 15:24
[particle] the 'inline' equivalent
that's nice to have
TimToady "is inline" is more of a warning to anyone who is reading the code; the compiler makes its own decision
[particle] sure, that's the same in c 15:25
gcc and msvc anyway
TimToady possibly "is !inline" is more imprtant :) 15:26
[particle] isnt inline
TimToady "is " is really just sugar for ':'
[particle] isnt could be sugar for :!
i'm not quite sure that's getting carried away 15:27
TimToady it bugs the proscriptive grammarian in me
[particle] well, isn't could be made to work
but 'tis uglier
TimToady indeed, but spurious ' will confuse syntax highlighters 15:28
[particle] unless they use the parse tree
TimToady I suppose we could allow ' in identifiers generally as long as they're surrounded by \w 15:29
[particle] as long as ' doesn't mean ::
TimToady presumably same rule for - if we decided to be Lispish 15:30
[particle] yes, it'd be nice not no reach for that shift key so frequently 15:30
TimToady $a-sqrt(2)
can get away with more given strictural defaults 15:31
"No such routine in scope "a-sqrt"
[particle] true, it gives much better errors having strict as default 15:32
TimToady and it would be nicer for poetry to have apostrophes 15:32
[particle] i suppose then we could have .can't and .doesn't methods 15:33
TimToady someone whack me upside the head with a halibut before I do this :) 15:33
[particle] sunday is my 35th birthday. do it for me :) 15:34
TimToady q'foo' is a problem
[particle] i don't see a way around that
TimToady q 'foo' 15:35
[particle] 'foo':q doesn't work
TimToady 'foo':q too
[particle] bad weighting
that's the s///mg problem
TimToady well, at least q'foo' is an immediate parse error on the second ' 15:36
[particle] ws works, but it's another big departure from perl 5
not that there's anything wrong with that
TimToady ws is important in English 15:37
[particle] so an identifier couldn't end in ' ?
TimToady correct
[particle] ah, right, you said \w surrounding
TimToady and 'tis would be Right Out
[particle] yep, no irish poetry (which is some of the best)
'oer is gone too. cya shakespeare6 15:38
TimToady 'twas the decade before Christmas, and all through the net...
that o'er
so okay
[particle] ah yes, and e'er
TimToady I should try putting it into STD and see what hiccups 15:39
but it's sorta just like the _ rule in numbers
[particle] nice to have a working parser 15:40
TimToady I think restricting it to being before alpha would be wise
no $foo-1
[particle] agreed 15:41
damian would have a field day with that
TimToady use apostrophe < ' - + > 15:42
[particle] use inner_alpha < ' - + > 15:43
apostrophe isn't really a grammatical category
use mark < ' - + > 15:44
or use apostrophic <...> 15:45
TimToady blows up on line 3 of parsing STD :)
[particle] hee
TimToady dunno why yet
hmm, my LTMer is losing the * on [\w|<['-]><.alpha>]* 15:48
hmm, that didn't work either... 15:53
TimToady okay, think I snuck it past the LTM using <.identish> [<[ ' \- ]><identish>]* 15:55
I note that $x-$y is saved only by the presence of the second sigil 15:56
whee, parses itself 15:57
now to see how much of t/ we broke...
passes all of sanity 15:58
the fact that we already require space after listops and keywords is helping 15:59
t/blocks is good 16:00
t/builtins is good 16:02
[particle] this is crazy. having a working parser is *awesome*
this may be the first change to the language proven correct (to the extent that tests can prove anything) 16:03
TimToady also have to prove it's parsing it correctly though :) 16:05
but through examples now
[particle] true enough
what's your expectation as to the current correctness of the parsing overall? 16:06
93%?
TimToady but the ident LTM is [_[:alpha:]]\w*(?:['\-][_[:alpha:]]\w*)* which looks right
it'll be a lot higher after I get symbol tables and see what has been swept under the carpet of postdeclarations 16:07
[particle] looks correct to me
TimToady through macros, working on oo
oo good 16:09
[particle] i've installed yaml and moose 16:10
should 'make' be working in src/perl6 ? 16:12
i get STD.pmc did not return a true value 16:13
oh, make clean isn't really cleaning well 16:14
TimToady operators good
[particle] ok, got tre, too
TimToady means the gimme5 failed 16:15
or you don't have tre :)
[particle] I CAN HAZ STD!
it's working.
TimToady Really Hard™ 16:16
[particle] should make clean remove STD5.pm, STD.pmc, and try5.out?
TimToady there is no STD5.pm anymore
STD.pmc is the new black
don't care about try5.out
[particle] ah, ok, so that was old and laying about
ok, then Makefile is fine 16:17
TimToady well, up to regex/propcharset, but that takes half of forever to parse 16:17
[particle] do you parallelize at all? 16:18
TimToady surprised I haven't found a q'foo' yet
no
race conditions in the LTM cache
(disk cache, all the stuff down in lex/)
need to clean all that up at some point 16:19
TimToady rather than store each digraph in a separate file, I plan to have a single file with just lists of rule numbers that could match, and appending is easier to transactionalize 16:20
might run faster too
pugs_svn r21851 | particle++ | remove trailing tab from STD Makefile 16:21
TimToady though NYTProf doesn't report all that much time slurping digraph data
[particle] ok, now i know what to install next :)
how are you running your examples, and profiling them? 16:23
perl -d:NYTProf ???
or have you an alias for that
TimToady I've only ever profiled compiling STD 16:24
but I'll probably do propcharset.t at some point just because it takes soooo loooong 16:25
assuming I don't run out of disk space
[particle] i ran out of disk while creating minicpan 16:29
so i'll have to add another virtual disk to my vm
TimToady so of *course* our TV blows up the night before the Olympics start... 16:31
[particle] /\bq'/ only appears six times in t/ according to ack
and 5 are 'q' 16:32
TimToady what about \bq'[a-zA-Z]
[particle] one is q'STUB: ...' in t/spec/S12-methods/calling_sets.t
line 97
TimToady okay, that one will blow up 16:33
or should
[particle] after half of forever, well find out
TimToady done with that half of forever, working on properties.t now
[particle] how do i run std against t/S12-methods/ ?
TimToady which is about another 1/4 of forever 16:34
tryfile t/spec/S12-methods/calling_sets.t
well, make a t symlink first
[particle] ah, ok. i'm running ./teststd modified to that dir 16:35
but i'll do tryfile next time
TimToady oh wait, yours won't blow up because I didn't check in the ident change 16:37
[particle] er, duh. 16:41
[particle] i could probably try myself 16:44
TimToady well, it's already looking good enough I'm just gonna check it in and see what happens 16:45
pugs_svn r21852 | lwall++ | [STD] allow ' and - in ident (but only before a letter) 16:52
TimToady yes, it did blow up on t/spec/S12-methods/calling_sets.t nicely
feel free to fix it
shower & 16:53
TimToady t/unspecced/sort.t also fails q:to'stuff' 16:58
done, those are the only two failures--looks like you get your "isn't" 17:00
shower really &
[particle] wow! i'll fix after my phone call 17:10
speckbot r14574 | larry++ | allow isolated ' and - in identifiers (only if followed by alpha) 17:35
[particle] hrmm. $1-foo 17:37
or make that $1-foo()
pugs_svn r21853 | particle++ | update tests to match spec from previous commit (trystd++) 17:42
[particle] stupid fingers, that should have been teststd++
TimToady 1 isn't an identifier
but it occurs to me that STD probably won't have caught many \w-\w errors 17:43
so you probably want to ack for those
'tis possible that we enable only apostrophe:<'> by default, and just make it easy to add apostrophe:<-> 17:44
depending on how many problems you find
biab & 17:45
audreyt rehi
[particle] howdy 17:46
pasteling "rhr" at 65.94.11.172 pasted "\w-\w from t" (9 lines, 647B) at sial.org/pbot/31839 17:57
rhr all the \w-\w I can find in t are basically $foo-1 17:58
[particle] and that's just fine
rhr ah, I didn't realize the after-part needs to begin with alpha 18:00
pmurias audreyt: you are aware of the useless use of constant in void context warnings? 18:09
when using -Cyaml
audreyt yes
should be harmless
oh 18:10
hm, maybe not.
ah, slight bitrot from compilation from pil1
a sec. willfix in a bit
pmurias the garbage line is more worring 18:12
the one after the warning with strage chars 18:13
s/worring/worrying/ 18:14
s/strage/strange/
audreyt pmurias: write a hello_world.p6 in the m0ld dir? 18:17
and write a test that calls pugs -CM0ld hello_world.p6 into a m0ld file and then a C file? 18:18
pmurias audreyt: a failing one?
rindolf Hi all. 18:20
Hi audreyt
Hi pmurias
audreyt a failing one. 18:21
pmurias my autotools skills really suck, i could easily put it in the smop t/ 18:22
rindolf pmurias: why aren't you using CMake? 18:23
CMake++ 18:24
ruoso pmurias, about using static ID... I wanted to experiment a different approach, since smop-identifiers.h is becoming bloated...
lambdabot ruoso: You have 2 new messages. '/msg lambdabot @messages' to read them.
pmurias rindolf: dunno, ruoso chose autotools 18:31
rindolf pmurias: ah.
pmurias: for what?
ruoso rindolf, basically, autotools was the way I knew for making C building portable... 18:32
I know that there are Scons and CMake
rindolf ruoso: ah. 18:33
ruoso but as I didn't have any experience with them, and that setting up a basic autotools environment is pretty simple
I didn't have much to think about...
but I'm not against someone taking the job of setting up a different build system
;) 18:34
rindolf ruoso: what is the project?
ruoso rindolf, smop
rindolf ruoso: URL?
ruoso: ah.
pugs_svn r21854 | pmurias++ | [m0ld] 26_m0ld_pugs.p6 - hopefull it meets audreyt++ request
pmurias audreyt: sorry it took so long, fought with autotools too long 18:35
ruoso rindolf, www.perlfoundation.org/perl6/index.cgi?smop
lambdabot Title: SMOP / Perl 6
ruoso pmurias, you're working on getting 'use v6' blocks ported to mold, right? 18:37
pmurias i should be...
ruoso do you think I should implement "if" in slime so I can get 'method lookup' implemented? or do you think I should be able to use if () {} else {}... in v6 blocks with mold soon... 18:38
pmurias i don't think it makes sense to touch slime now, i'll force myself to write an elf backend, or audreyt will start a pugs one soon 18:41
ruoso: a half-measure would be to enable q:m0ld blocks 18:42
rindolf ruoso: Can't locate Cursor.pm in @INC 18:46
pugs_svn r21855 | audreyt++ | * Do not insist on installing a profiling cabal-install dep chain.
rindolf ruoso: search.cpan.org/search?mode=dist&am...ery=Cursor 18:48
lambdabot Title: The CPAN Search Site - search.cpan.org
rindolf ruoso,. pmurias : ping. 18:49
pmurias rindolf: pong
rindolf pmurias: I cannot build SMOP.
pmurias checking
rindolf pmurias: it cannot find Cursor.pm
pmurias: try "svn st"
pmurias cd sm0p;sh brew
rindolf pmurias: what? 18:50
pmurias Cursor.pm is src/perl6/Cursor.pmc
rindolf pmurias: I followed the instructions here - www.perlfoundation.org/perl6/index....op_hacking 18:51
lambdabot Title: SMOP Hacking / Perl 6
pmurias rindolf: type that in the smop directory not everything is intergrated with the Makefile
rindolf pmurias: oh. %-(
pmurias: brew: line 3: cd: ../../../src/perl6/: No such file or directory
ruoso rindolf, I think you need more elements from the pugs repository....
rindolf ruoso: yes, so it seems.
ruoso: please fix the Makefile.cvs
Or the instructions at www.perlfoundation.org/perl6/index....op_hacking 18:52
lambdabot Title: SMOP Hacking / Perl 6
ruoso rindolf, yes... the dependencies on ../../../src/perl6 are quite new...
pmurias and quite temporary hopefully ;)
rindolf ruoso: ah. 18:53
pugs_svn r21856 | pmurias++ | [smop] make makes sm0p and m0ld 18:55
ruoso pmurias, I've added "have pugs compiled in the source tree" to the "In order to compile SMOP, you should:" list... 19:00
is there a good link for a pugs compiling howto?
pugs_svn r21857 | pmurias++ | [smop] merged brew into the (missing) Makefile 19:01
pmurias ruoso: README in the repository root?
ruoso: pugs is not needed yet
ruoso it is, actually... since a recent commit you made ;) 19:02
pmurias compiling that test never succeds as pugs -Cm0ld dosn't work yet 19:03
ruoso hmm... maybe we should take it out of the default target then... 19:04
(at least until it works)
rindolf ruoso, pmurias : so what should I do? 19:06
ruoso rindolf, does 'make all' work? 19:07
pmurias ruoso: i'm fixing make test 19:08
rindolf ruoso: let me try.
ruoso: make all where?
ruoso v6/smop
pugs_svn r21858 | pmurias++ | [smop] make test runs (has failures) 19:09
ruoso pmurias, I still can't make test 19:12
pmurias ruoso: if you're blocked on the lexicals i can hack q:m0ld into sm0p.pl 19:13
ruoso pmurias, please :)
ruoso anxious to have the first Perl 6 "if" in effective smop code ;) 19:14
pmurias ruoso: what's your error?
ruoso it tries to run ../../../pugs -Cm0ld 26_m0ld_pugs.p6 > 26_m0ld_pugs.m0ld 19:15
and I don't have pugs built there
pmurias it's in error ignoring mode 19:16
japhb Is there a $Larry in the house?
pmurias @seen TimToady #you mean 19:17
lambdabot TimToady is in #perl6. I last heard TimToady speak 1h 32m 37s ago.
ruoso pmurias, I have commented out the specific 26_... target and it worked
pmurias to you have a - before the pugs line 19:18
ruoso but that won't make it work... because you'll have an invalid 26_m0ld_pugs.m0ld file
pmurias an empty one 19:19
empty ones are valid now
ruoso oh... I probably have a old mold 19:20
pmurias ruoso: is a q:m0ld preferable to use m0ld;
ruoso pmurias, feel free to choose... I think both are ok... 19:21
pugs_svn r21859 | ruoso++ | [smop] make pugs m0ld compilation non-blocking on error (at least untill it works) 19:22
japhb pmurias: I asked it the way I did (as $Larry) so that if he was watching the channel as a human, he would notice, but by not using his nick, I wouldn't trigger his IRC client to ping him. Just trying to be less of an interruption ... 19:23
TimToady ponders whether he's here or not... 19:24
japhb Like Schroedinger's assistant, you have just collapsed that wave function.
japhb TimToady: I tried reading the backlog, but I'm confused why "can't" is more worthy of relief than "q'foo'"? 19:26
pugs_svn r21860 | pmurias++ | [smop] use m0ld support for sm0p.pl 19:27
japhb The concept of ident being conceptually "underscore/alpha, followed by \w+" is pretty damn ingrained in geek culture (and certainly in my brain), so this is a very odd one to me. Mind you, oddness is not exactly something that Perl6 needs to avoid, I'm just curious why this seemed like a "no brainer", when my gut went the other way -- "this needs heavy thought" 19:28
ruoso pmurias, which file naming should I use? should I still use .sm0p? 19:29
pmurias yes
japhb reflects on Perl6 slowly adding Forth "features" 19:30
ruoso pmurias, can I still reference values that are in the local C scope (like invocant), or should I get it from the capture in the 'use m0ld' block? 19:31
pmurias you can use something like my $reg = $cvariable; 19:32
ruoso right
pmurias got to think of a syntax for c variables
ruoso $¢variable? 19:33
pmurias how to you type the cent? 19:34
ruoso hmm.. in my keyboard... Compose, C, |
but I use an unusual configuration
ruoso hate dead keys
pmurias maybe just ¢variable? 19:35
forcing ¢ on people dosn't feel right, otoh it C-K Ct in vim 19:36
Can't we just use can_not instead of can't? 19:38
In Perl 6 19:39
masak I was surprised at the identifier/character change too 19:40
pugs_svn r21861 | ruoso++ | [smop] renaming lexicalscope to .sm0p so we can "use m0ld" 19:41
masak does it work for variables as well? $will-this-work?
ruoso pmurias, this is really m0ld, right? so I need to keep up with all the registers and stuff...
pmurias, would you mind to port the lookup implementation in www.perlfoundation.org/perl6/index....ementation to smop_s1p_lexicalscope.sm0p? 19:42
lambdabot Title: SMOP Lexical Scope Implementation / Perl 6, tinyurl.com/5ebhte
ruoso have to leave now... will get back later....
pmurias audreyt: do you think syntax sugar like my $a = $b.$c(...) instead of my $a;$a = $b.$c(...); and $a = $b."c"(1) instead of $c="c";$d=1;$a = $b.$c($d) is desirable in m0ld? 19:57
audreyt pmurias: that particular sugar I think is good. 20:09
basically I'd like Sugar>DeSugar mapping 20:10
to have a clear DeSugar>Sugar choice on that level
if there are two Sugar that generates the same DeSugar (not counting the DeSugar itself) then it's more questionable.
making some sense?
pmurias audreyt: yes 20:15
pmurias btw. i read the quasi-quotes paper and the part 1 of SYB, and i think i'll be able to write the quasi-quotes once pugs switches to a ghc which supports it 20:23
audreyt pmurias: most excellent 20:25
pmurias: see regex-qq on hackage and lighttpd-conf-qq
there's also a qq for hs itself!
code.haskell.org/~morrow/code/haskell/metaquote/
lambdabot Title: Index of /~morrow/code/haskell/metaquote
audreyt the use of that is you can embed arbitrary haskell snippet in your dsl 20:26
like of like "string { code } string" in p6 strings
all in all, exciting stuff.
pugs_svn r21862 | pmurias++ | [m0ld] cleaner handling of labels 20:52
pugs_svn r21863 | pmurias++ | [m0ld] my $target = ...call.. syntax sugar 21:13
pmurias mncharity: hi 21:14
pmurias i the default haskell [Char] unicode capable, how do i read in utf8? 21:24
pmurias found what is was looking for 21:26
mncharity hi pmurias 21:28
"STD_red's AST output is broken and horrible", huh?
pugs_svn r21864 | pmurias++ | [m0ld] ¢foo is used to refer to the C variable ¢foo 21:32
pmurias is looking at it again
mncharity: if you have token baz {<foo>};token foo {<bar>};token bar {x}; and match baz against x the resulting Match has a bar Match under the key foo 21:35
ron perl6: sub Fiddle { return 5;} say Fiddle; 21:39
p6eval pugs: OUTPUT[5␤]
..rakudo 29834: OUTPUT[Statement not terminated properly at line 1, near "say Fiddle"␤current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82)␤]
..elf 21864: OUTPUT[Parse error in: /tmp/pnCD7AwoiG␤panic at line 1 column 0 (pos 0): Can't understand next input--giving up␤WHERE: sub Fiddle { return 5;} say Fi␤WHERE:/\<-- HERE␤ STD_red/prelude.rb:99:in `panic'␤ STD_red/std.rb:76:in `scan_unitstopper'␤ STD_red/std.rb:224:in `comp_unit'␤
..STD_r...
pmurias mncharity: it seems sometimes it does, sometimes it doesn't it annoyed me horribly when i attempted to write a STD5_dump_match equivalent for STD_red
ron perl6: sub Faddle () { return 5;} say Faddle; 21:40
p6eval elf 21864: OUTPUT[Parse error in: /tmp/dWmg7xwQFO␤panic at line 1 column 0 (pos 0): Can't understand next input--giving up␤WHERE: sub Faddle () { return 5;} say␤WHERE:/\<-- HERE␤ STD_red/prelude.rb:99:in `panic'␤ STD_red/std.rb:76:in `scan_unitstopper'␤ STD_red/std.rb:224:in `comp_unit'␤
..STD_r...
..pugs: OUTPUT[5␤]
..rakudo 29834: OUTPUT[Statement not terminated properly at line 1, near "say Faddle"␤current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82)␤]
[particle] is it legal to call without parens?
ron shouldn't it be if fn is lower case ?? 21:41
mncharity oh, you're objecting to parse tree flattening? pointless/unneeded nodes were removed for the obvious reason - kiss. re "annoyed me horribly", oh, sorry about that.:( you should mention such things. switching to a regex-engine-equivalent Match tree was always a todo task for when actually swapping in a real regex-engine-based parser.
TimToady case doesn't matter, but you need a semicolon after the }
mncharity s/for when/to be done when/ 21:42
ron perl6: sub Fiddle { return 5;} ; say Fiddle;
p6eval elf 21864, pugs: OUTPUT[5␤]
..rakudo 29834: OUTPUT[Fiddle␤]
ron perl6: sub Faddle () { return 5;}; say Faddle;
p6eval elf 21864, pugs: OUTPUT[5␤]
..rakudo 29834: OUTPUT[Faddle␤]
TimToady ooh, rakudo is doing barewords. ick
ron sub faddle() { return 5;} ; say faddle;
TimToady or it's assuming uppercase is a type
ron perl6: sub faddle() { return 5;} ; say faddle;
p6eval elf 21864, pugs, rakudo 29834: OUTPUT[5␤] 21:43
TimToady looks like the latter is true
still ick
ron I'll look a little further for the moment. Have a good weekend all ... 21:44
pmurias mncharity: re horrible and annoying things the Call and Capture AST nodes deserve an unhonorable mention 21:47
mncharity elaborate? 21:49
pmurias mncharity look at the AST output of $foo.bar(1,2,3,a=>5) 21:51
mncharity looking... 21:52
pmurias the invocant is only defined in the wrong place,arguments receive an Apply(which should be merged with Call anyway) and the named and positionals arguments are stuffed together 21:55
pasteling "mncharity" at 65.96.169.198 pasted "./elf_g -v -e '$foo.bar(1,2,3,a=>5)'" (151 lines, 5K) at sial.org/pbot/31841
pmurias and the method is a string instead of an AST name 21:57
s/name/node
pmurias got to sleep now& 21:57
masak there's a dead link rakudo.org/perl6/index.cgi?download_perl_6 from www.pugscode.org/ 22:00
mncharity Call has an invocant because $x.m($cap) $x is distinct from whatever invocant Capture $cap might have. Apply'ing infix:, can't be merged without checking that the prelude's infix:, hasn't been overridden. my understanding is named and positionals arguments are unavoidably stuffed together at this level. 22:01
the AST output of STD_red no doubt has a great many problems. but my impression is those 4 aren't among them.
mncharity The name as string, yes, that's perhaps excessive kiss. 22:03
TimToady how does $a.$b() come out? 22:04
mncharity looking...
pasteling "mncharity" at 65.96.169.198 pasted "./elf_g -v -e '$a.$b()'" (75 lines, 1.9K) at sial.org/pbot/31842 22:08
mncharity the parse tree looks plausible (this is the old STD expect_term post stuff), but I didn't (hand write) a Match node creation for that case, so it doesn't show up in the ast. 22:09
mncharity for anyone curious, the duplicate dotty entries result from the old STD's EXPR adding non-tree cross links to propagate around operator precedence. 22:13
The Match tree (comp_unit...) is what STD_red generates. The IR (CompUnit(...)) is created from the Match tree by IRx1_FromAST.pm. 22:16
mncharity elf calls the Match tree the AST, and the CompUnin(Var(...)) etc the IR. rakudo calls the IR the AST. pmurias's critiques were about the IR, rather than the AST, and thus not directly a STD_red issue (which only creates the Match AST). Responding about the IR, I too called it the AST... which I herewith clarify. :) 22:22
mncharity Since I was just thinking "we really need to have more project/design discussion/deliberation, I'll sketch out what I see myself as working on. 22:30
elf's backend (ie, compiler) is written in p6, but not it's frontend (parser), and most of the p5 runtime is written in p5. My objective is to have frontend, backend, and most of the runtime, written in p6. And to have a second, common lisp backend, both to force the runtime cleanup, and, because it has a 22:33
very similar compiletime + dynamic-runtime story to p6, to get a *very* fast p6 implementation. Eg, 10-100x faster than p5, rakudo, and pugs. 22:35
Near term goals are to create a STD_blue which uses STD to take code and dump a Match tree ast (as STD_red does), and then a new IRx1_FromAST2.pm which massages that ast into an IR tree. I'm not sure whether to walk through STD.pm, attempting thorough IR coverage, or do "just enough to bootstrap, and then do a fleshing out pass later". 22:39
mncharity STD is currently too slow to use as the primary elf parser. So the next step is to use the STD_blue parsing of regex to get the rx_on_re working. I'm hoping to fudge around needing longest-token, and leave that for someone else to do. Once a STD_blue elf can compile STD.pm, a new elf variant (elf_h?) will discard STD_red and STD_bluee, and use compiled STD.pm directly. 22:45
mncharity At that point, everything but the runtime will be implemented in p6. With some IR analysis and emitter cleanup, focus then shifts to the CL backend. I'm hoping to do "real" p6 oo internals on the CL backend, but continue to fudge it on the p5 backend (I'll leave fighting perlbugs and such to someone else). 22:47
Questions, comments, thoughts, whatever, welcome. 22:48
mncharity (127 people in room, but so very quiet) 23:05
& 23:07
scrottie stiffles a sneeze 23:19
scrottie reads with carefully attention 23:21
Limbic_Region whatcha reading?
scrottie mncharity's state of the elf.
Limbic_Region link? 23:22
scrottie I was afk while he actually said it, doing a few laps on Ridge Racer R4 to clear my mind.
scrottie irclog.perlgeek.de/perl6/today 23:23
lambdabot Title: IRC log for #perl6, 2008-08-08
scrottie there it is.
Limbic_Region thanks 23:50